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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.3 - (show annotations)
Sun Jan 19 03:35:25 2003 UTC (21 years, 5 months ago) by joko
Branch: MAIN
Changes since 1.2: +49 -37 lines
+ added cvs-header

1 ## ------------------------------------------------------------------------
2 ## $Id: Files.pm,v 1.2 2003/01/19 02:14:11 joko Exp $
3 ## ------------------------------------------------------------------------
4 ## $Log: Files.pm,v $
5 ## ------------------------------------------------------------------------
6
7
8 package Torus::Core;
9
10 use base qw(
11 DesignPattern::Object
12 DesignPattern::Object::Logger
13 );
14
15 use strict;
16 use warnings;
17
18 use Data::Dumper;
19
20 use loadConfig;
21 use Data::Storage;
22 use Data::Storage::Locator;
23 use Data::Transfer::Sync;
24
25 my $logger = Log::Dispatch::Config->instance;
26
27
28 my $DEBUGLEVEL = $config->get("debug_level");
29 my $TRACELEVEL = $config->get("trace_level");
30 my $bool_started;
31
32
33 sub addItem {
34
35 my $torusObjectType = shift;
36 my $mapiEntry = shift;
37 my $basedn = shift;
38 my $ldapEntry;
39
40 if (!$bool_started) {
41 Torus::Driver::ldap::connectStore();
42 }
43
44 $bool_started = 1;
45
46 if ($DEBUGLEVEL > 3) {
47 print STDOUT "=" x 3, " ", __PACKAGE__, " ", "=" x 30, "\n";
48 print STDOUT "recieved torus-object (type=$torusObjectType)", "\n";
49 print STDOUT "trying to write to (basedn='$basedn')", "\n";
50 }
51
52 if ($torusObjectType eq 'MapiContact') {
53 $basedn = Torus::Driver::ldap::createOuSafe($basedn);
54 my $entry = Torus::Driver::ldap::prepareEntry($basedn, $mapiEntry);
55 if (my $result = Torus::Driver::ldap::addEntry($entry)) {
56 #my $error = 0;
57 #$error = 1 if $result->code >= 0;
58 #Torus::Driver::ldap::traceEntry($mapiEntry, $entry, { error => $error, prefix => $result->error }) if $TRACELEVEL >= 2;
59 #undef $result;
60 Torus::Driver::ldap::processResult($entry->{identifier}, $result);
61 }
62 }
63
64 }
65
66 sub startSync {
67
68 my $self = shift;
69 my $opts = shift;
70
71 #print Dumper($opts);
72 #exit;
73
74 my $host = $config->get("ldapserver_host");
75 my $binddn = $config->get("ldapserver_binddn");
76 my $pass = $config->get("ldapserver_pass");
77 my $basedn = $config->get("ldapserver_basedn");
78
79 my $dsn = "ldap:host=$host;binddn='$binddn';pass=$pass";
80 $logger->info(__PACKAGE__ . "->startSync: using dsn: $dsn");
81
82 my $ldapLocator = Data::Storage::Locator->new(
83 ldap => {
84 type => "NetLDAP",
85 # dsn => "ldap:host=192.168.1.56;binddn='cn=root, dc=labnet, dc=de';pass=Geheim",
86 # dsn => "ldap:host=192.168.10.150;binddn='cn=root, o=netfrag.org, c=de';pass=secret",
87 dsn => $dsn,
88 # basedn => "o=netfrag.org, c=de",
89 basedn => $basedn,
90 #schema => 'BizWorks::BackendDbSchema',
91 #classnames => [qw( SystemEvent LangText )],
92 #classnames => [qw( SystemEvent Person Address LangText )],
93 #test_availability => 1,
94 #test_integrity => 1,
95 #test_emptyness => 1,
96 # TODO: re-enable this! (multiple-target-logging!)
97 #logger => 1,
98 want_transactions => 0,
99 syncable => 1,
100 },
101 );
102 my $ldapStorage = Data::Storage->new($ldapLocator);
103 $ldapStorage->connect();
104
105 my $mapiStorage;
106
107
108 # create a new synchronization object
109 my $sync = Data::Transfer::Sync->new();
110
111 # read, mungle & check the options
112 $sync->prepareOptionsV2($opts);
113
114 if (!$sync->checkOptionsV2()) {
115 $logger->critical( __PACKAGE__ . "->startSync: 'Data::Transfer::Sync::checkOptions' failed.");
116 return;
117 }
118
119 #print Dumper($opts);
120
121
122 =pod
123 # branch to execution path for special targets
124 # detect for option 'handler' which could be a CODEref
125 if ($opts->{handler} && ref $opts->{handler} eq 'CODE') {
126 $logger->info( __PACKAGE__ . "->startSync: Running (special handler code - no generic sync!) on '$opts->{target}' with MODE $opts->{mode}, NODE $opts->{target_node}");
127 $opts->{handler}->($self, $opts);
128 return;
129 }
130 =cut
131
132 # configure synchronization-object
133 $sync->configureV2(
134 #L => $self->{bizWorks}->{$opts->{source}},
135 source => {
136 storage => {
137 handle => $mapiStorage,
138 writeProtected => 1,
139 },
140 },
141 #R => $self->{bizWorks}->{$opts->{target}},
142 target => {
143 storage => {
144 handle => $ldapStorage,
145 idAuthority => 1,
146 checksumAuthority => 1,
147 writeProtected => 0,
148 },
149 },
150 verbose => 1,
151 );
152
153 # patch options
154 $opts->{source} = "L:$opts->{source_node}" if $opts->{source_node};
155 $opts->{target} = "R:$opts->{target_node}" if $opts->{target_node};
156
157 #print Dumper($opts);
158
159 $sync->syncNodes($opts);
160
161 }
162
163 1;

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