Changeset 105
- Timestamp:
- 05/14/09 02:09:55 (15 years ago)
- Location:
- LATMOS-Accounts/lib/LATMOS/Accounts
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
LATMOS-Accounts/lib/LATMOS/Accounts/Bases.pm
r103 r105 284 284 sub sync_object { 285 285 my ($self, $srcobj, %options) = @_; 286 $self->is_supported_object($srcobj->type) or return ;286 $self->is_supported_object($srcobj->type) or return ''; 287 287 my @fields = $options{attrs} 288 288 ? @{ $options{attrs} } … … 294 294 } 295 295 if (my $dstobj = $self->get_object($srcobj->type, $srcobj->id)) { 296 return $dstobj->set_c_fields(%data);296 return 'SYNCHED' if ($dstobj->set_c_fields(%data)); 297 297 } elsif(!$options{nocreate}) { 298 return $self->create_c_object($srcobj->type, $srcobj->id, %data);298 return 'CREATE' if ($self->create_c_object($srcobj->type, $srcobj->id, %data)); 299 299 } else { 300 return 0;300 return ''; 301 301 } 302 303 return; 302 304 } 303 305 -
LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Ad/Group.pm
r93 r105 47 47 my ($self, $base, $mode) = @_; 48 48 ( 49 qw(gidNumber description sAMAccountName member memberUID),49 qw(gidNumber description member memberUID), # sAMAccountName: conflict with user 50 50 ($mode !~ /w/ 51 51 ? qw(cn dn) … … 69 69 } 70 70 my $msg = $base->ldap->add($entry); 71 warn $msg->error if ($msg->code); 71 72 return $msg->code ? 0 : 1; 72 73 } … … 115 116 } # else {} # can't happen 116 117 my $mesg = $self->{entry}->update($self->base->ldap); 117 if ($mesg->code) {118 warn $mesg->error;119 }120 118 } 121 119 next; … … 133 131 $self->{entry}->add(member => $user->get_field('dn')); 134 132 } # else {} # can't happen 135 my $mesg = $self->{entry}->update($self->base->ldap);136 if ($mesg->code) {137 warn $mesg->error;138 }139 133 } 140 134 next; -
LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Ad/User.pm
r93 r105 123 123 my ($self, %data) = @_; 124 124 my %ndata; 125 my $res = '0E0'; 125 126 while (my ($f, $val) = each(%data)) { 126 127 $f eq 'memberOf' and do { … … 137 138 } # else {} # can't happen 138 139 my $mesg = $self->{entry}->update($self->base->ldap); 139 if ($mesg->code) {140 warn $mesg->error;141 }142 140 } 143 141 next; -
LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Ad/objects.pm
r92 r105 121 121 122 122 foreach (keys %fields) { 123 $self->get_field_name($_, 'w') or return;123 $self->get_field_name($_, 'w') or next; 124 124 $self->_populate_entry($self->{entry}, $_, $fields{$_}); 125 125 } -
LATMOS-Accounts/lib/LATMOS/Accounts/Synchro.pm
r103 r105 118 118 # TODO optimize this, using rev of objects 119 119 120 warn "Sync objects $otype\n";121 120 foreach my $destbase (@obj_dest_base) { 122 121 $callback->($otype, $destbase); … … 134 133 $self->val($self->from->label, $destbase->label), 135 134 ); 136 warn "objects $otype " . $self->from->label . " => " . $destbase->label . "\n";137 135 my @common_fields = $options{attr_cb}->($self->from, $destbase, $otype) or return; 138 warn "Synching fields: " . join(', ', sort @common_fields) . "\n";139 136 my %exists = map { $_ => 1 } $destbase->list_objects($otype); 140 137 foreach my $uid (@lobjfrom) { 141 138 my $sobj = $self->from->get_object($otype, $uid); 142 $destbase->sync_object( 143 $sobj, 144 nocreate => ($self->{options}{nocreate} || $options{nocreate}), 145 ) unless($self->{options}{test}); 146 warn " $otype $uid: synched\n"; 139 if (!$self->{options}{test}) { 140 my $res = $destbase->sync_object( 141 $sobj, 142 nocreate => ($self->{options}{nocreate} || $options{nocreate}), 143 ); 144 if (defined $res) { 145 printf( 146 "%s::%s::%s => %s (%s)\n", 147 $self->from->label, $otype, $uid, 148 $destbase->label, $res 149 ) if ($res); 150 } else { 151 warn sprintf( 152 "Error syncing %s::%s::%s => %s\n", 153 $self->from->label, $otype, $uid, $destbase->label 154 ); 155 } 156 } 147 157 } 148 158 } … … 159 169 foreach (keys %exists) { 160 170 if (!$srcexists{$_}) { 161 warn "delete $otype$_\n";171 print "delete " . $destbase->name . '::' . $otype . '::' . "$_\n"; 162 172 $destbase->delete_object($otype, $_); 163 173 }
Note: See TracChangeset
for help on using the changeset viewer.