--- nfo/perl/libs/Data/Transfer/Sync.pm 2002/12/13 21:49:34 1.7 +++ nfo/perl/libs/Data/Transfer/Sync.pm 2002/12/15 02:03:09 1.8 @@ -1,4 +1,4 @@ -## $Id: Sync.pm,v 1.7 2002/12/13 21:49:34 joko Exp $ +## $Id: Sync.pm,v 1.8 2002/12/15 02:03:09 joko Exp $ ## ## Copyright (c) 2002 Andreas Motl ## @@ -6,6 +6,10 @@ ## ## ---------------------------------------------------------------------------------------- ## $Log: Sync.pm,v $ +## Revision 1.8 2002/12/15 02:03:09 joko +## + fixed logging-messages +## + additional metadata-checks +## ## Revision 1.7 2002/12/13 21:49:34 joko ## + sub configure ## + sub checkOptions @@ -319,12 +323,33 @@ # check partners/nodes: does partner exist / is node available? foreach my $partner (keys %{$self->{meta}}) { - next if $self->{meta}->{$partner}->{storage}->{locator}->{type} eq 'DBI'; # for DBD::CSV - re-enable for others + + # 1. check partners & storages + if (!$self->{meta}->{$partner}) { + $logger->critical( __PACKAGE__ . "->syncNodes: Could not find partner '$partner' in configuration metadata." ); + return; + } + + my $dbkey = $self->{meta}->{$partner}->{dbkey}; + + if (!$self->{meta}->{$partner}->{storage}) { + $logger->critical( __PACKAGE__ . "->syncNodes: Could not access storage of partner '$partner' (named '$dbkey'), looks like a configuration-error." ); + return; + } + + # TODO: + # 2. check if partners (and nodes?) are actually available.... + # eventually pre-check mode of access-attempt (read/write) here to provide an "early-croak" if possible + + # 3. check nodes + next if $self->{meta}->{$partner}->{storage}->{locator}->{type} eq 'DBI'; # HACK for DBD::CSV - re-enable for others + # get node-name my $node = $self->{meta}->{$partner}->{node}; if (!$self->{meta}->{$partner}->{storage}->existsChildNode($node)) { - $logger->critical( __PACKAGE__ . "->syncNodes: Could not reach \"$node\" at \"$partner\"." ); + $logger->critical( __PACKAGE__ . "->syncNodes: Could not reach node \"$node\" at partner \"$partner\"." ); return; } + } # TODO: