--- nfo/perl/libs/Data/Transfer/Sync.pm 2002/12/13 21:49:34 1.7 +++ nfo/perl/libs/Data/Transfer/Sync.pm 2002/12/19 01:07:16 1.10 @@ -1,4 +1,4 @@ -## $Id: Sync.pm,v 1.7 2002/12/13 21:49:34 joko Exp $ +## $Id: Sync.pm,v 1.10 2002/12/19 01:07:16 joko Exp $ ## ## Copyright (c) 2002 Andreas Motl ## @@ -6,6 +6,16 @@ ## ## ---------------------------------------------------------------------------------------- ## $Log: Sync.pm,v $ +## Revision 1.10 2002/12/19 01:07:16 joko +## + fixed output done via $logger +## +## Revision 1.9 2002/12/16 07:02:34 jonen +## + added comment +## +## 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 @@ -117,7 +127,7 @@ $opts->{erase} ||= 0; #$opts->{import} ||= 0; - $logger->info( __PACKAGE__ . "->prepareOptions( source_node $opts->{source_node} mode $opts->{mode} erase $opts->{erase} prepare $opts->{prepare} )"); + $logger->notice( __PACKAGE__ . "->prepareOptions( source_node $opts->{source_node} mode $opts->{mode} erase $opts->{erase} prepare $opts->{prepare} )"); if (!$opts->{mapping} || !$opts->{mapping_module}) { $logger->warning( __PACKAGE__ . "->prepareOptions: No mapping supplied - please check key 'mappings' in BizWorks/Config.pm"); @@ -319,12 +329,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: @@ -620,6 +651,7 @@ } +# refactor this as some core-function to do a generic dump resolving data-encapsulations of e.g. Set::Object sub _dumpCompact { my $self = shift;