Ignore:
Timestamp:
06/25/20 09:25:24 (4 years ago)
Author:
nanardon
Message:

Make la-rename continue even if rename failed in one base (or object is not found)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/LATMOS-Accounts/lib/LATMOS/Accounts/SynchAccess/base.pm

    r2283 r2416  
    8585} 
    8686 
     87=head2 CB ( @Args ) 
     88 
     89Run callback if set 
     90 
     91=cut 
     92 
     93sub CB { 
     94    my ( $self, @Args ) = @_; 
     95 
     96    if ($self->{cb}) { 
     97        return $self->{cb}->( @Args ); 
     98    } else { 
     99        return 1; 
     100    } 
     101} 
     102 
    87103sub _return_all { 
    88104    my ($self, $sub, @args) = @_; 
     
    90106    foreach my $ba ($self->bases) { 
    91107        my @res = $_->$sub(@args); 
    92         $self->{cb}->($ba, @res) if($self->{cb}); 
     108        $self->CB($ba, @res); 
    93109        push(@allres, @res); 
    94110    } 
     
    114130    foreach ($self->bases) { 
    115131        my $res = $_->$sub(@args); 
    116         $self->{cb}->($_, $res) if($self->{cb}); 
     132        $self->CB($_, $res); 
    117133        $res or do { 
    118134                    la_log(LA_ERR, "SyncA: Erreur call $sub() for %s", $_); 
     
    128144    foreach ($self->bases) { 
    129145        my $res = $_->$sub(@args) and $failure = 1; 
    130         $self->{cb}->($_, $res) if($self->{cb}); 
     146        $self->CB($_, $res); 
    131147    } 
    132148    $failure ? 0 : 1; 
     
    141157    foreach ($self->bases) { 
    142158        if ($_->is_supported_object($otype)) { 
     159            $_->get_object($otype, $uid) or do { 
     160                $_->log(LA_ERR, 
     161                    "Cannot get object $otype/$uid", 
     162                ); 
     163                next; 
     164            }; 
     165 
    143166            my $res = $_->rename_object($otype, $uid, $newuid); 
    144             $self->{cb}->($_, $res) if($self->{cb}); 
     167            $self->CB($_, $res); 
    145168            $res or do { 
    146                 la_log(LA_ERR, 
     169                la_log(LA_WARN, 
    147170                    "Cannot get object $otype/$uid in %s/%s", 
    148171                    $_->type, 
    149172                    $_->label 
    150173                ); 
    151                 return; 
     174                $_->rollback; 
    152175            }; 
    153176        } 
Note: See TracChangeset for help on using the changeset viewer.