IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 24440 for trunk/Nebulous/lib


Ignore:
Timestamp:
Jun 16, 2009, 2:33:25 PM (17 years ago)
Author:
jhoblitt
Message:

add neb-rm --force flag

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Nebulous/lib/Nebulous/Client.pm

    r24281 r24440  
    1616use Nebulous::Client::Log;
    1717use Nebulous::Util qw( :standard );
    18 use Params::Validate qw( validate validate_pos SCALAR UNDEF );
     18use Params::Validate qw( validate validate_pos SCALAR UNDEF BOOLEAN );
    1919#use SOAP::Lite +trace => [qw( debug )];
    2020use SOAP::Lite;
     
    329329    my $uri = $self->delete_instance($key, @$locations[0]);
    330330
     331    eval {
     332        _nuke_file(_get_file_path(@$locations[0]));
     333    };
     334    if ($@) {
     335        $log->logdie($@);
     336    }
     337
    331338    $log->debug("leaving");
    332339
     
    803810    my $self = shift;
    804811
    805     my ( $key ) = validate_pos( @_,
    806         {
    807             type => SCALAR,
     812    my ($key, $force) = validate_pos( @_,
     813        {
     814            type        => SCALAR,
     815        },
     816        {
     817            type        => BOOLEAN,
     818            optional    => 1,
     819            default     => undef,
     820            callbacks   => {
     821                'is boolean' => sub {
     822                    $_[0] == 0 or $_[0] == 1 or $_[0] == undef;
     823                },
     824            },
    808825        },
    809826    );
     
    817834    # a lock is implicitly removed when the last storage object is deleted
    818835    foreach my $uri ( @$locations ) {
     836        # it is being assumed here that it is better to have files on disk and
     837        # not in the database then the inverse.
     838        my $path;
     839        eval {
     840            $path = _get_file_path( $uri );
     841        };
     842        if ($@) {
     843            if ($force) {
     844                $log->warn($@);
     845                $log->warn("exception ignored because force is in effect");
     846            } else {
     847                $log->logdie($@);
     848            }
     849        }
     850
    819851        $self->delete_instance($key, $uri) or return undef;
     852
     853        eval {
     854            _nuke_file( $path );
     855        };
     856        if ($@) {
     857            if ($force) {
     858                $log->warn($@);
     859                $log->warn("exception ignored because force is in effect");
     860            } else {
     861                $log->logdie($@);
     862            }
     863        }
    820864    }
    821865
     
    9591003    $log->debug( "entered - @_" );
    9601004
    961     # it is being assumed here that it is better to have files on disk and not in
    962     # the database then the inverse.
    963 
    964     my $path;
    965     eval {
    966         $path = _get_file_path( $uri );
    967     };
    968     $log->logdie( $@ ) if $@;
    969 
    9701005    my $response = $self->{ 'server' }->delete_instance($key, $uri);
    9711006    if ( $response->fault ) {
     
    9811016
    9821017    $log->debug( "server deleted instance" );
    983 
    984     eval {
    985         _nuke_file( $path );
    986     };
    987     $log->logdie( $@ ) if $@;
    9881018
    9891019    $log->debug( "leaving" );
Note: See TracChangeset for help on using the changeset viewer.