/[cvs]/nfo/perl/scripts/outlook2ldap/libs/Torus/Core.pm
ViewVC logotype

Diff of /nfo/perl/scripts/outlook2ldap/libs/Torus/Core.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1 by joko, Sat Jan 18 15:38:10 2003 UTC revision 1.3 by joko, Sun Jan 19 03:35:25 2003 UTC
# Line 1  Line 1 
1    ##    ------------------------------------------------------------------------
2    ##    $Id$
3    ##    ------------------------------------------------------------------------
4    ##    $Log$
5    ##    Revision 1.3  2003/01/19 03:35:25  joko
6    ##    + added cvs-header
7    ##
8    ##    ------------------------------------------------------------------------
9    
10    
11  package Torus::Core;  package Torus::Core;
12    
13  require Exporter;  use base qw(
14  our @ISA = qw(Exporter);    DesignPattern::Object
15  our @EXPORT = qw( );    DesignPattern::Object::Logger
16    );
17    
18  use strict;  use strict;
19  use warnings;  use warnings;
20    
21    use Data::Dumper;
22    
23  use loadConfig;  use loadConfig;
24  use Torus::Driver::ldap;  use Data::Storage;
25    use Data::Storage::Locator;
26    use Data::Transfer::Sync;
27    
28    my $logger = Log::Dispatch::Config->instance;
29    
30    
31  my $DEBUGLEVEL = $config->get("debug_level");  my $DEBUGLEVEL = $config->get("debug_level");
32  my $TRACELEVEL = $config->get("trace_level");  my $TRACELEVEL = $config->get("trace_level");
# Line 48  sub addItem { Line 66  sub addItem {
66    
67  }  }
68    
69    sub startSync {
70    
71      my $self = shift;
72      my $opts = shift;
73    
74    #print Dumper($opts);
75    #exit;
76    
77      my $host = $config->get("ldapserver_host");
78      my $binddn = $config->get("ldapserver_binddn");
79      my $pass = $config->get("ldapserver_pass");
80      my $basedn = $config->get("ldapserver_basedn");
81      
82      my $dsn = "ldap:host=$host;binddn='$binddn';pass=$pass";
83      $logger->info(__PACKAGE__ . "->startSync: using dsn: $dsn");
84    
85      my $ldapLocator = Data::Storage::Locator->new(
86        ldap => {
87          type => "NetLDAP",
88    #      dsn => "ldap:host=192.168.1.56;binddn='cn=root, dc=labnet, dc=de';pass=Geheim",
89    #      dsn => "ldap:host=192.168.10.150;binddn='cn=root, o=netfrag.org, c=de';pass=secret",
90          dsn => $dsn,
91    #      basedn => "o=netfrag.org, c=de",
92          basedn => $basedn,
93          #schema => 'BizWorks::BackendDbSchema',
94          #classnames => [qw( SystemEvent LangText )],
95          #classnames => [qw( SystemEvent Person Address LangText )],
96          #test_availability => 1,
97          #test_integrity => 1,
98          #test_emptyness => 1,
99          # TODO: re-enable this! (multiple-target-logging!)
100          #logger => 1,
101          want_transactions => 0,
102          syncable => 1,
103        },
104      );
105      my $ldapStorage = Data::Storage->new($ldapLocator);
106      $ldapStorage->connect();
107    
108      my $mapiStorage;
109      
110    
111      # create a new synchronization object
112      my $sync = Data::Transfer::Sync->new();
113    
114      # read, mungle & check the options
115        $sync->prepareOptionsV2($opts);
116    
117        if (!$sync->checkOptionsV2()) {
118          $logger->critical( __PACKAGE__ . "->startSync: 'Data::Transfer::Sync::checkOptions' failed.");
119          return;
120        }
121    
122    #print Dumper($opts);
123    
124    
125    =pod
126      # branch to execution path for special targets
127      # detect for option 'handler' which could be a CODEref
128        if ($opts->{handler} && ref $opts->{handler} eq 'CODE') {
129          $logger->info( __PACKAGE__ . "->startSync: Running (special handler code - no generic sync!) on '$opts->{target}' with MODE $opts->{mode}, NODE $opts->{target_node}");
130          $opts->{handler}->($self, $opts);
131          return;
132        }
133    =cut
134      
135      # configure synchronization-object
136      $sync->configureV2(
137          #L => $self->{bizWorks}->{$opts->{source}},
138        source => {
139          storage => {
140            handle => $mapiStorage,
141            writeProtected => 1,
142          },
143        },
144        #R => $self->{bizWorks}->{$opts->{target}},
145        target => {
146          storage => {
147            handle => $ldapStorage,
148            idAuthority => 1,
149            checksumAuthority => 1,
150            writeProtected => 0,
151          },
152        },
153        verbose => 1,
154      );
155      
156      # patch options
157      $opts->{source} = "L:$opts->{source_node}" if $opts->{source_node};
158      $opts->{target} = "R:$opts->{target_node}" if $opts->{target_node};
159    
160    #print Dumper($opts);
161    
162      $sync->syncNodes($opts);
163    
164    }
165    
166  1;  1;

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.3

MailToCvsAdmin">MailToCvsAdmin
ViewVC Help
Powered by ViewVC 1.1.26 RSS 2.0 feed