Changeset 182
- Timestamp:
- 12/27/05 11:08:35 (18 years ago)
- Location:
- trunk/soft/ObsData
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/soft/ObsData/ObsData/Repository.pm
- Property cvs2svn:cvs-rev changed from 1.62 to 1.63
r181 r182 390 390 =cut 391 391 392 my $checks = {393 archive_exists => sub {394 my ($self) = @_;395 my $res;396 if($self->{status}->SectionExists($self->{archivefile})) {397 $res = 1;398 } else {399 $res = 0;400 }401 return(402 $res,403 $self->logging(0,404 "%s/%s is%s new archive",405 $self->{dir},406 $self->{archivefile},407 $res ? " not" : "",408 )409 );410 },411 412 archive_size => sub {413 my ($self) = @_;414 my $res;415 if (defined(my $oldsize = $self->getvalue('size')) &&416 defined(my $size = (stat("$self->{dir}/$self->{archivefile}"))[7])) {417 my $res = $size <=> $oldsize;418 return $res, $self->logging(0,419 "Size for %s/%s %s",420 $self->{dir},421 $self->{archivefile},422 $res == 0 ?423 sprintf("does not differ (%d)", $size) :424 sprintf("differ %d => %d", $oldsize, $size)425 );426 }427 },428 429 archive_mtime => sub {430 my ($self) = @_;431 my $res;432 if (defined(my $oldmtime = $self->getvalue('mtime')) &&433 defined(my $mtime = (stat("$self->{dir}/$self->{archivefile}"))[9])) {434 my $res = $mtime <=> $oldmtime;435 return $res, $self->logging(0,436 "Mtime for %s/%s %s",437 $self->{dir},438 $self->{archivefile},439 $res == 0 ?440 sprintf("does not differ (%d)", $mtime) :441 sprintf("differ %d => %d", $oldmtime, $mtime)442 );443 }444 },445 446 dest_exists => sub {447 my ($self, $check, $datafile, $dest) = @_;448 if (-e $dest) {449 return 1, "$dest exists";450 } else {451 return 0, "$dest don't exists";452 }453 },454 455 data_extracted => sub {456 my ($self, $check, $datafile) = @_;457 my $last_process = $self->get_data_value($datafile, 'processtime');458 if ($last_process) {459 $self->logging(0, "%s/%s has been already processed at %s",460 $self->{archivefile},461 $datafile,462 scalar(localtime($last_process)),463 );464 }465 $last_process466 },467 };468 469 392 #sub DESTROY { 470 393 # my ($self) = @_; … … 472 395 # $self->SUPER::DESTROY(); 473 396 #} 474 475 =head3 do_check($check, @args)476 477 Perform $check with @args if exists and return result of check478 479 =cut480 481 sub do_check {482 my ($self, $check, @args) = @_;483 484 if (!$checks->{$check}) {485 die $self->logging(5,486 "check %s does not exists, exiting now",487 $check488 );489 }490 491 return $checks->{$check}->($self, $check, @args);492 }493 494 sub populate_event {495 my ($self, $oevent, @args) = @_;496 my ($code, $text);497 498 for ($oevent->id) {499 /^do_archive$/ and do {500 foreach my $t (qw(archive_size archive_mtime archive_exists)) {501 ($code, $text) = $self->do_check($t);502 $oevent->add_test($t, $text, $code);503 }504 last;505 };506 /^do_data$/ and do {507 last;508 };509 /^overwrite$/ and do {510 ($code, $text) = $self->do_check('dest_exists', @args);511 $oevent->add_test('dest_exists', $text, $code);512 last;513 };514 }515 }516 397 517 398 =head3 default_choice($oevent) … … 536 417 }; 537 418 } 538 }539 540 =head3 do_continue($why, $message, @args)541 542 Perform default or call the interactive callback.543 544 $why is the reason of the call545 @args are argument to passed to callback546 547 =cut548 549 sub do_continue {550 my ($self, $why, $message, @args) = @_;551 552 $self->logging(0, "Event($why): $message");553 my $oevent = ObsData::Event->new($why, $message);554 $self->populate_event(555 $oevent, @args556 );557 558 my $res =559 $self->{interactive_callback} ?560 $self->{interactive_callback}->($self, $oevent) :561 $self->default_choice($oevent);562 $self->logging(0, "Event(%s): Result: %s", $why, $res);563 return($res);564 419 } 565 420 -
trunk/soft/ObsData/t/OR-03.t
- Property cvs2svn:cvs-rev changed from 1.13 to 1.14
r176 r182 9 9 use_ok('ObsData'); 10 10 use_ok('ObsData::Repository'); 11 use ObsData::Event; 11 12 12 13 my $o = ObsData->new('testdata/obsdata-conftest', logfile => "testdata/obsdata.log"); … … 52 53 ok($or->get_data_value('ozone34', 'BAR') eq 'BAR', "can get a value"); 53 54 54 ok($or->do_continue('overwrite', '-', 'a', 'a') eq 1, "Perform do_continue"); 55 my $oe = ObsData::Event->new('overwrite', '--'); 56 ok($or->ask_user($oe), "Ask user"); 55 57 ok($callbackwhy eq 'overwrite', "arg are properly passed to callback"); 56 58 ok($or->list_archive, "Can list archive content"); -
trunk/soft/ObsData/t/OR-04.t
- Property cvs2svn:cvs-rev changed from 1.2 to 1.3
r169 r182 4 4 use warnings; 5 5 6 use Test::More tests => 8;6 use Test::More tests => 3; 7 7 use File::Temp qw(tempdir); 8 8 … … 28 28 ); 29 29 isa_ok($or, "ObsData::Repository::dir::archive"); 30 ok($or->do_check('archive_exists'), "can perform check archive_exists");31 ok(!$or->do_check('archive_size'), "can perform check archive_size");32 ok(!$or->do_check('archive_mtime'), "can perform check archive_mtime");33 ok($or->do_check('dest_exists', 'ozone34', '34/ozone34'), "can perform check dest_exists");34 ok($or->do_check('data_extracted', 'ozone34'), "can perform check data_extracted");35 30 } 36 31
Note: See TracChangeset
for help on using the changeset viewer.