--- nfo/perl/libs/OEF/Script/AbstractFeeder.pm 2003/02/09 16:27:06 1.1 +++ nfo/perl/libs/OEF/Script/AbstractFeeder.pm 2004/06/19 01:49:07 1.6 @@ -1,9 +1,27 @@ #!/usr/bin/perl ## -------------------------------------------------------------------------------- -## $Id: AbstractFeeder.pm,v 1.1 2003/02/09 16:27:06 joko Exp $ +## $Id: AbstractFeeder.pm,v 1.6 2004/06/19 01:49:07 joko Exp $ ## -------------------------------------------------------------------------------- ## $Log: AbstractFeeder.pm,v $ +## Revision 1.6 2004/06/19 01:49:07 joko +## enabled verbosing with Data::Transfer::Sync +## minor patch to option processing +## +## Revision 1.5 2003/02/22 16:53:42 joko +## minor update: debugging +## +## Revision 1.4 2003/02/20 21:11:15 joko +## renamed module +## modified runtime namespace hierarchy +## +## Revision 1.3 2003/02/14 14:18:36 joko +## + new get-/setter-methods +## +## Revision 1.2 2003/02/11 09:48:57 joko +## - moved notice output out of this module +## + some fixes +## ## Revision 1.1 2003/02/09 16:27:06 joko ## + initial commit ## @@ -18,12 +36,13 @@ #use base 'OEF::Component::Task'; use base qw( DesignPattern::Object - DesignPattern::Object::Logger + DesignPattern::Logger ); use Data::Dumper; use Getopt::Long; +use Data::Transfer::Sync; # get logger instance @@ -48,7 +67,7 @@ exit; } -sub getoptions { +sub readoptions { my $self = shift; GetOptions( @@ -67,6 +86,18 @@ ); } +sub getoptions { + my $self = shift; + return $self->{opt}; +} + +sub setoptions { + my $self = shift; + my $options = shift; + # FIXME: is this really true? + $self->{opt} = $options; +} + sub getoptions_old { my $self = shift; GetOptions( @@ -105,60 +136,23 @@ my $self = shift; $self->_before_run(); $self->prepare(); - $self->tellWhatIAmDoing(); + #$self->tellWhatIAmDoing(); + #$self->_tellWhatIWillDo(); $self->sync(); } -my $c_string_default = ''; -sub c_string { - my $value = shift; - $value ||= "[$c_string_default]"; - return $value; -} - -sub tellWhatIAmDoing { - my $self = shift; - - $c_string_default = 'n/a'; - my $source = c_string($self->{opt}->{'source'}); - my $source_node = c_string($self->{opt}->{'source-node'}); - my $source_type = c_string($self->{opt}->{'source-type'}); - my $target = c_string($self->{opt}->{'target'}); - my $target_node = c_string($self->{opt}->{'target-node'}); - my $target_type = c_string($self->{opt}->{'target-type'}); - - my $mapping_module = c_string($self->{opt}->{'mapping-module'}); - my $mode = uc c_string($self->{opt}->{'mode'}); - - my $ql = "$mode INTO $source NODE $source_node TYPE $source_type SELECT NODE $target_node TYPE $target_type FROM $target USING MODULE $mapping_module;"; - #$logger->notice( __PACKAGE__ . ": $ql" ); - $logger->notice( $ql ); - - return; - - my $actioning = ucfirst $self->{opt}->{'action'} . 'ing'; - - # FIXME: this is weird! - my $long = <notice( __PACKAGE__ . ": $long" ); - -} - sub prepare { my $self = shift; + #print Dumper($self->{opt}); + #exit; + # TODO: # - move this to Data::Transfer::Sync::checkOptions!!! # - use 'syncable'??? #if ($self->{app}->{config}->{databases}->{$self->{opt}->{target}}->{syncable}) { + $self->{opt}->{action} ||= ''; my $mode = ''; my $erase = 0; @@ -194,33 +188,56 @@ # is api-version specified? my $sync_version = $self->{opt}->{sv}; $sync_version ||= 'V1'; + #$sync_version = 'V2'; + + #print "version: $sync_version", "\n"; # create a new synchronization object - my $sync = Data::Transfer::Sync->new( 'sync_version' => $sync_version ); + my $sync = Data::Transfer::Sync->new( 'sync_version' => $sync_version, __parent => $self, verbose => 1 ); # trace #print Dumper($self); + #print Dumper($self); + #exit; + + # checks + if (!$self->{app}->{storage}->{$self->{opt}->{source}}) { + $logger->critical("Sync source storage handle undefined!"); + } + if (!$self->{app}->{storage}->{$self->{opt}->{target}}) { + $logger->critical("Sync target storage handle undefined!"); + } # configure the synchronization-object $sync->configure( source => { storage => { #handle => $mapiStorage, - handle => $self->{app}->{$self->{opt}->{source}}, - writeProtected => 1, + handle => $self->{app}->{storage}->{$self->{opt}->{source}}, + #isIdentAuthority => $self->{app}->{config}->{{$self->{opt}->{source}}, + #isChecksumAuthority => 1, + #writeProtected => 1, }, }, target => { storage => { #handle => $ldapStorage, - handle => $self->{app}->{$self->{opt}->{target}}, - idAuthority => 1, - isChecksumAuthority => 1, - writeProtected => 0, + handle => $self->{app}->{storage}->{$self->{opt}->{target}}, + #idAuthority => 1, + #isChecksumAuthority => 1, + #isWriteProtected => 0, }, }, verbose => 1, ); + + # TODO: +=pod + $sync->configure( + 'source.storage.handle' => ..., + 'target.storage.handle' => ..., + ); +=cut # trace #print Dumper($sync);