Changeset 46
- Timestamp:
- 11/23/05 15:33:24 (19 years ago)
- Location:
- trunk/soft/ObsData
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/soft/ObsData/ObsData.pm
- Property cvs2svn:cvs-rev changed from 1.10 to 1.11
r44 r46 46 46 -allowcontinue => 1 47 47 ), 48 verbose => 1, 48 verbose => defined($options{verbose}) ? $options{verbose} : 1, 49 logcallback => $options{logcallback}, 50 dir => $options{dir}, 51 49 52 }; 50 53 … … 55 58 $obsdata->{config} or return undef; 56 59 57 $obsdata->{dir} = $options{dir} || $obsdata->{config}->val('global', 'dir');58 59 60 bless($obsdata, $class); 61 60 62 } 61 63 … … 73 75 my ($self) = @_; 74 76 77 if (! ($self->{dir} ||= $self->{config}->val('global', 'dir'))) { 78 $self->loging(5, "Data directory not defined", $self->{dir}); 79 return 0; 80 } 81 82 if (! -d $self->{dir}) { 83 $self->loging(5, "Data directory %s does not exists", $self->{dir}); 84 return 0; 85 } 86 75 87 if (!open($self->{loghandle}, ">> $self->{dir}/logs/obsdata.log")) { 88 $self->{loghandle} = undef; 76 89 $self->loging(5, "Can't open log file %s, exiting", "$self->{dir}/logs/obsdata.log"); 77 90 return 0; … … 84 97 my ($self, $level, $fmt, @val) = @_; 85 98 my $msg = sprintf($fmt, @val); 86 my $logh = $self->{loghandle} || \*STDERR;99 my $logh = $self->{loghandle}; 87 100 if($level >= 0 && $level >= $self->{verbose}) { 88 101 if ($self->{logcallback}) { 89 102 $self->{logcallback}->($level, $msg); 90 103 } 91 printf $logh 92 "[%s] %s %s\n", $loglevel[$level] || "coin", 93 strftime("%b %d %H:%M:%S %Y", gmtime), 94 $msg; 104 if ($logh) { 105 printf $logh 106 "[%s] %s %s\n", $loglevel[$level] || "coin", 107 strftime("%b %d %H:%M:%S %Y", gmtime), 108 $msg; 109 } 95 110 } 96 111 $msg … … 98 113 99 114 sub init_repository { 100 my ($ dir) = @_;101 102 if (!-d $ dir) {103 mkdir $ diror return 0;104 } 105 106 if (!-d "$ dir/logs") {107 mkdir "$ dir/logs" or return 0;115 my ($self) = @_; 116 117 if (!-d $self->{dir}) { 118 mkdir $self->{dir} or return 0; 119 } 120 121 if (!-d "$self->{dir}/logs") { 122 mkdir "$self->{dir}/logs" or return 0; 108 123 } 109 124 110 my $db = DBI->connect("dbi:SQLite:dbname=$ dir/obsdata.db","","",125 my $db = DBI->connect("dbi:SQLite:dbname=$self->{dir}/obsdata.db","","", 111 126 { RaiseError => 1, AutoCommit => 1} 112 127 ) or return 0; 113 128 114 my $odr = ObsData->new(undef, dir => $dir); 115 $odr->load or return 0; 116 $odr->loging(1, "Repository succefully created in %s", $dir); 129 $self->load or return 0; 130 $self->loging(1, "Repository succefully created in %s", $self->{dir}); 117 131 118 132 1; … … 231 245 } 232 246 247 sub find_file_obs { 248 my ($self, $obs) = @_; 249 my %datadir = $self->list_obsdatadir($obs); 250 $self->loging(0, "Starting %s() for %s", (caller(0))[3], $obs); 251 252 foreach my $datatype (keys %datadir) { 253 if(opendir(my $dirhandle, $datadir{$datatype})) { 254 close($dirhandle); 255 } else { 256 $self->loging(5, "can't open directory %s set for %s", $datadir{$datatype}, $obs); 257 } 258 } 259 } 260 233 261 1; -
trunk/soft/ObsData/t/O-01.t
- Property cvs2svn:cvs-rev changed from 1.4 to 1.5
r43 r46 1 1 # $Id$ 2 2 3 use Test::More tests => 5;3 use Test::More tests => 4; 4 4 5 5 use_ok('ObsData'); … … 9 9 can_ok('ObsData', qw(list_obs list_obsdatadir list_typedatadir get_datadir getvalue is_obs)); 10 10 11 ok(ObsData->new('testdata/obsdata-conftest'), "Can create object");12 11 ok(!ObsData->new('testdata/wrongfile'), "Return an error on bad file"); -
trunk/soft/ObsData/t/O-02.t
- Property cvs2svn:cvs-rev changed from 1.5 to 1.6
r43 r46 1 1 # $Id$ 2 2 3 use Test::More tests => 1 5;3 use Test::More tests => 16; 4 4 use File::Temp qw(tempdir); 5 5 … … 7 7 8 8 my $td = tempdir; 9 ok(ObsData::init_repository($td), "Can initialize repos data"); 9 { 10 my $o = ObsData->new(undef, dir => $td); 11 ok($o->init_repository($td), "Can initialize repos data"); 10 12 ok(-f "$td/obsdata.db", "db is really create"); 11 13 ok(-d "$td/logs", "log directory exists"); 14 } 12 15 13 16 ok(my $o = ObsData->new('testdata/obsdata-conftest', dir => $td), "Can create object"); 17 ok($o->load, "can load repository"); 14 18 ok($o->is_obs('ohp'), "Isobs works"); 15 19 ok(!$o->is_obs('ozone'), "Isobs works");
Note: See TracChangeset
for help on using the changeset viewer.