IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 24362


Ignore:
Timestamp:
Jun 9, 2009, 2:42:18 PM (17 years ago)
Author:
jhoblitt
Message:

rename Nebulous::Key->soft_volume Nebulous::Key->hard_volume and invert the semantics

Location:
trunk/Nebulous-Server
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/Nebulous-Server/Changes

    r24347 r24362  
    2020    - change 'log_level' param to 'trace'
    2121    - refactor ->find_objects() functionality
     22    - rename Nebulous::Key->soft_volume Nebulous::Key->hard_volume and invert
     23      the semantics
    2224     
    23250.16
  • trunk/Nebulous-Server/lib/Nebulous/Key.pm

    r24306 r24362  
    88use warnings FATAL => qw( all );
    99
    10 our $VERSION = '0.02';
     10our $VERSION = '0.03';
    1111
    1212use base qw( Exporter Class::Accessor::Fast );
     
    2323);
    2424
    25 __PACKAGE__->mk_ro_accessors(qw( path volume soft_volume ));
     25__PACKAGE__->mk_ro_accessors(qw( path volume hard_volume ));
    2626
    2727sub parse_neb_key
     
    4242   
    4343    my $volume_name;
    44     my $soft_volume;
     44    my $hard_volume;
    4545    # if this is a valid uri
    4646    if (defined $scheme) {
     
    7171        if (defined $volume_info->{volume} and $volume_info->{volume} ne 'any') {
    7272            $volume_name = $volume_info->{volume};
    73             $soft_volume = $volume_info->{soft_volume};
     73            $hard_volume = $volume_info->{hard_volume};
    7474        }
    7575
     
    8484        if (defined $volume_info->{volume} and $volume_info->{volume} ne 'any') {
    8585            $volume_name = $volume_info->{volume};
    86             $soft_volume = $volume_info->{soft_volume};
     86            $hard_volume = $volume_info->{hard_volume};
    8787        }
    8888    }
     
    9999    return __PACKAGE__->new({
    100100        volume      => $volume_name,
    101         soft_volume => $soft_volume,
     101        hard_volume => $hard_volume,
    102102        path        => $path,
    103103    });
     
    110110    return unless defined $volume;
    111111
    112     my $soft_volume;
     112    my $hard_volume;
    113113    # check to see if there is a tilde and remove it if found
    114     unless (defined $volume and $volume =~ s/^~//) {
    115         $soft_volume = 1;
     114    if (defined $volume and $volume =~ s/^~//) {
     115        $hard_volume = 1;
    116116    }
    117117
    118     return({ volume => $volume, soft_volume => $soft_volume });
     118    return({ volume => $volume, hard_volume => $hard_volume });
    119119}
    120120
     
    125125
    126126    my $path        = $self->path;
    127     my $volume      = $self->volume || "";
    128     my $soft_volume = $self->soft_volume ? '~' : "";
    129 
    130     return "neb://${soft_volume}${volume}/$path";
     127    my $volume      = $self->volume || '';
     128    my $hard_volume = $self->hard_volume ? '~' : '';
     129
     130    return "neb://${hard_volume}${volume}/$path";
    131131}
    132132
  • trunk/Nebulous-Server/lib/Nebulous/Server.pm

    r24355 r24362  
    229229    if (defined $vol_name
    230230        and not $self->_is_valid_volume_name($key, $key->volume)) {
    231         if ($key->soft_volume) {
     231        unless ($key->hard_volume) {
    232232            $log->warn( "$vol_name is not a known volume name" );
    233233            $vol_name = undef;
     
    238238       
    239239    my ($vol_id, $vol_host, $vol_path, $vol_xattr)
    240         = $self->_get_storage_volume($key, $vol_name, $key->soft_volume);
     240        = $self->_get_storage_volume($key, $vol_name, $key->hard_volume);
    241241
    242242    my $parent_id = $self->_resolve_dir_parent_id(key => $key, create => 1);
     
    705705    if (defined $vol_name
    706706        and not $self->_is_valid_volume_name($key, $key->volume)) {
    707         if ($key->soft_volume) {
     707        unless ($key->hard_volume) {
    708708            $log->warn( "$vol_name is not a known volume name" );
    709709            $vol_name = undef;
     
    777777            $db->rollback;
    778778            # handle soft volumes
    779             if (defined $vol_name and defined $key->soft_volume) {
     779            if (defined $vol_name and not defined $key->hard_volume) {
    780780                $log->debug("retrying with 'any' volume");
    781781                return $self->replicate_object($key->path, 'any');
     
    14461446    my $sql = $self->sql;
    14471447
    1448     unless ($key) {
    1449         $log->warn("key was undefined after validate_pos(), trying again...");
    1450         return $self->find_instances(@_);
    1451     }
     1448#    unless ($key) {
     1449#        $log->warn("key was undefined after validate_pos(), trying again...");
     1450#        return $self->find_instances(@_);
     1451#    }
    14521452
    14531453    # vol_name overrides the key implied volume
     
    14641464    if (defined $vol_name
    14651465        and not $self->_is_valid_volume_name($key, $key->volume)) {
    1466         if ($key->soft_volume) {
     1466        if ($key->hard_volume) {
     1467            $log->logdie("$vol_name is not a valid volume name");
     1468        } else {
    14671469            $log->warn( "$vol_name is not a known volume name" );
    14681470            $vol_name = undef;
    1469         } else {
    1470             $log->logdie("$vol_name is not a valid volume name");
    14711471        }
    14721472    }
     
    15011501        $db->rollback;
    15021502        # handle soft volumes
    1503         if (defined $vol_name and defined $key->soft_volume) {
     1503        if (defined $vol_name and not defined $key->hard_volume) {
    15041504            $log->debug("retrying with 'any' volume");
    15051505            return $self->find_instances($key->path, 'any');
     
    17941794    use warnings;
    17951795
    1796     my ($key, $name, $soft_volume) = @_;
     1796    my ($key, $name, $hard_volume) = @_;
    17971797
    17981798    my $sql = $self->sql;
     
    18131813                # if a volume name was specified, and is soft, and we failed to
    18141814                # find it, fall back to any volume
    1815                 if ($soft_volume) {
     1815                unless ($hard_volume) {
    18161816                    ($vol_id, $vol_host, $vol_path, $xattr) = $self->_get_storage_volume($key);
    18171817                    return; # this just returns out of the eval not from the subroutine
     
    18311831            unless ($rows > 0) {
    18321832                $query->finish;
    1833                 $log->logdie("no storage volume is available for key: $key volume: $name soft: $soft_volume");
     1833                $log->logdie("no storage volume is available for key: $key volume: $name hard_volume: $hard_volume");
    18341834            }
    18351835        }
     
    19621962    my $sql = $self->sql;
    19631963
     1964    # the volume name implied by the key is ignored.  $key is only needed to
     1965    # select a database connection
    19641966    eval {
    19651967        $key = parse_neb_key($key);
  • trunk/Nebulous-Server/t/08_server_find_instances.t

    r24356 r24362  
    109109like($@, qr/no instances on storage volume/, 'instances on a different volume');
    110110
    111 
    112111Test::Nebulous->setup;
    113112
  • trunk/Nebulous-Server/t/75_parse_neb_key.t

    r24304 r24362  
    1010use Test::More;
    1111
    12 plan tests => 103;
     12plan tests => 106;
    1313
    1414use lib qw( ./t ./lib );
     
    2828    is($key->path, 'foo/bar/baz/quix', 'path');
    2929    is($key->volume, undef, 'volume name');
    30     is($key->soft_volume, undef, 'soft volume name');
     30    is($key->hard_volume, undef, 'soft volume name');
    3131}
    3232
     
    3636    is($key->path, 'foo/bar/baz/quix', 'path');
    3737    is($key->volume, undef, 'volume name');
    38     is($key->soft_volume, undef, 'soft volume name');
     38    is($key->hard_volume, undef, 'soft volume name');
    3939}
    4040
     
    4444    is($key->path, 'foo/bar/baz/quix', 'path');
    4545    is($key->volume, undef, 'volume name');
    46     is($key->soft_volume, undef, 'soft volume name');
     46    is($key->hard_volume, undef, 'soft volume name');
    4747}
    4848
     
    5252    is($key->path, 'foo/bar/baz/quix', 'path');
    5353    is($key->volume, undef, 'volume name');
    54     is($key->soft_volume, undef, 'soft volume name');
     54    is($key->hard_volume, undef, 'soft volume name');
    5555}
    5656
     
    6060    is($key->path, 'foo/bar/baz/quix', 'path');
    6161    is($key->volume, undef, 'volume name');
    62     is($key->soft_volume, undef, 'soft volume name');
     62    is($key->hard_volume, undef, 'soft volume name');
    6363}
    6464
     
    6868    is($key->path, 'foo/bar/baz/quix', 'path');
    6969    is($key->volume, undef, 'volume name');
    70     is($key->soft_volume, undef, 'soft volume name');
     70    is($key->hard_volume, undef, 'soft volume name');
    7171}
    7272
     
    7777    is($key->path, 'foo/bar/baz/quix', 'path');
    7878    is($key->volume, 'boing', 'volume name');
    79     is($key->soft_volume, 1, 'soft volume name');
     79    is($key->hard_volume, undef, 'soft volume name');
    8080}
    8181
     
    8585    is($key->path, 'foo/bar/baz/quix', 'path');
    8686    is($key->volume, 'boing', 'volume name');
    87     is($key->soft_volume, undef, 'soft volume name');
     87    is($key->hard_volume, 1, 'soft volume name');
    8888}
    8989
     
    9494    is($key->path, 'bar/baz/quix', 'path');
    9595    is($key->volume, 'foo', 'volume name');
    96     is($key->soft_volume, 1, 'soft volume name');
     96    is($key->hard_volume, undef, 'soft volume name');
    9797}
    9898
     
    102102    is($key->path, 'bar/baz/quix', 'path');
    103103    is($key->volume, 'foo', 'volume name');
    104     is($key->soft_volume, 1, 'soft volume name');
     104    is($key->hard_volume, undef, 'soft volume name');
    105105}
    106106
     
    110110    is($key->path, 'bar/baz/quix', 'path');
    111111    is($key->volume, 'foo', 'volume name');
    112     is($key->soft_volume, 1, 'soft volume name');
     112    is($key->hard_volume, undef, 'soft volume name');
    113113}
    114114
     
    118118    is($key->path, 'bar/baz/quix', 'path');
    119119    is($key->volume, 'foo', 'volume name');
    120     is($key->soft_volume, 1, 'soft volume name');
     120    is($key->hard_volume, undef, 'soft volume name');
    121121}
    122122
     
    126126    is($key->path, 'bar/baz/quix', 'path');
    127127    is($key->volume, 'foo', 'volume name');
    128     is($key->soft_volume, 1, 'soft volume name');
     128    is($key->hard_volume, undef, 'soft volume name');
    129129}
    130130
     
    135135    is($key->path, 'bar/baz/quix', 'path');
    136136    is($key->volume, 'foo', 'volume name');
    137     is($key->soft_volume, undef, 'soft volume name');
     137    is($key->hard_volume, 1, 'soft volume name');
    138138}
    139139
     
    144144    is($key->path, 'bar/baz/quix', 'path');
    145145    is($key->volume, 'boing', 'volume name');
    146     is($key->soft_volume, 1, 'soft volume name');
     146    is($key->hard_volume, undef, 'soft volume name');
    147147}
    148148
     
    152152    is($key->path, 'bar/baz/quix', 'path');
    153153    is($key->volume, 'boing', 'volume name');
    154     is($key->soft_volume, undef, 'soft volume name');
     154    is($key->hard_volume, 1, 'soft volume name');
    155155}
    156156
     
    160160    is($key->path, 'bar/baz/quix', 'path');
    161161    is($key->volume, 'foo', 'volume name');
    162     is($key->soft_volume, 1, 'soft volume name');
     162    is($key->hard_volume, undef, 'soft volume name');
    163163}
    164164
     
    169169    is($key->path, 'bar/baz/quix', 'path');
    170170    is($key->volume, undef, 'volume name');
    171     is($key->soft_volume, undef, 'soft volume name');
     171    is($key->hard_volume, undef, 'soft volume name');
    172172}
    173173
     
    178178    is($key->path, 'bar/baz/quix', 'path');
    179179    is($key->volume, undef, 'volume name');
    180     is($key->soft_volume, undef, 'soft volume name');
     180    is($key->hard_volume, undef, 'soft volume name');
    181181}
    182182
     
    186186    is($key->path, 'bar/baz/quix', 'path');
    187187    is($key->volume, undef, 'volume name');
    188     is($key->soft_volume, undef, 'soft volume name');
     188    is($key->hard_volume, undef, 'soft volume name');
    189189}
    190190
     
    195195    is($key->path, 'bar/baz/quix', 'path');
    196196    is($key->volume, 'foo', 'volume name');
    197     is($key->soft_volume, undef, 'soft volume name');
     197    is($key->hard_volume, 1, 'soft volume name');
    198198}
    199199
     
    205205    is($key->path, 'foo/bar/baz/quix', 'path');
    206206    is($key->volume, undef, 'volume name');
    207     is($key->soft_volume, undef, 'soft volume name');
     207    is($key->hard_volume, undef, 'soft volume name');
    208208}
    209209
     
    213213    is($key->volume, undef, 'volume name');
    214214    is($key->path, 'foo/bar/baz/quix', 'path');
    215     is($key->soft_volume, undef, 'soft volume name');
     215    is($key->hard_volume, undef, 'soft volume name');
    216216}
    217217
     
    221221    is($key->path, 'foo/bar/baz/quix', 'path');
    222222    is($key->volume, undef, 'volume name');
    223     is($key->soft_volume, undef, 'soft volume name');
     223    is($key->hard_volume, undef, 'soft volume name');
    224224}
    225225
     
    230230    is($key->path, '', 'path');
    231231    is($key->volume, undef, 'volume name');
    232     is($key->soft_volume, undef, 'soft volume name');
     232    is($key->hard_volume, undef, 'soft volume name');
    233233}
    234234
     
    238238    is($key->path, '', 'path');
    239239    is($key->volume, undef, 'volume name');
    240     is($key->soft_volume, undef, 'soft volume name');
     240    is($key->hard_volume, undef, 'soft volume name');
    241241}
    242242
     
    246246    is($key->path, '', 'path');
    247247    is($key->volume, undef, 'volume name');
    248     is($key->soft_volume, undef, 'soft volume name');
     248    is($key->hard_volume, undef, 'soft volume name');
    249249}
    250250
     
    254254    is($key->path, '', 'path');
    255255    is($key->volume, undef, 'volume name');
    256     is($key->soft_volume, undef, 'soft volume name');
     256    is($key->hard_volume, undef, 'soft volume name');
    257257}
    258258
     
    262262    is($key->path, '', 'path');
    263263    is($key->volume, undef, 'volume name');
    264     is($key->soft_volume, undef, 'soft volume name');
     264    is($key->hard_volume, undef, 'soft volume name');
    265265}
    266266
     
    270270    is($key->path, '', 'path');
    271271    is($key->volume, undef, 'volume name');
    272     is($key->soft_volume, undef, 'soft volume name');
     272    is($key->hard_volume, undef, 'soft volume name');
     273}
     274
     275# stringification
     276
     277{
     278    my $txt = 'neb:///bar/baz';
     279    my $key = parse_neb_key($txt);
     280
     281    is("$key", $txt, "stringified");
     282}
     283
     284{
     285    my $txt = 'neb://foo.0/bar/baz';
     286    my $key = parse_neb_key($txt);
     287
     288    is("$key", $txt, "stringified");
     289}
     290
     291{
     292    my $txt = 'neb://~foo.0/bar/baz';
     293    my $key = parse_neb_key($txt);
     294
     295    is("$key", $txt, "stringified");
    273296}
    274297
Note: See TracChangeset for help on using the changeset viewer.