Index: trunk/Nebulous-Server/lib/Nebulous/Server.pm
===================================================================
--- trunk/Nebulous-Server/lib/Nebulous/Server.pm	(revision 16184)
+++ trunk/Nebulous-Server/lib/Nebulous/Server.pm	(revision 16221)
@@ -1,5 +1,5 @@
 # Copyright (c) 2004  Joshua Hoblitt
 #
-# $Id: Server.pm,v 1.46 2008-01-23 00:46:06 jhoblitt Exp $
+# $Id: Server.pm,v 1.47 2008-01-25 01:53:28 jhoblitt Exp $
 
 package Nebulous::Server;
@@ -158,4 +158,15 @@
     $log->debug( "entered - @_" );
 
+    {
+        my $volume;
+        ($volume, $key) = parse_neb_key($key);
+#        if (defined $volume) {
+#            die "$volume is not a valid volume name"
+#                unless $self->_is_valid_volume_name($volume);
+#        }
+        $vol_name ||= $volume;
+
+    }
+
     my ($uri, $vol_id);
     eval {
@@ -257,4 +268,8 @@
     $log->debug("entered - @_");
 
+    # ignore volumes
+    $key    = parse_neb_key($key);
+    $newkey = parse_neb_key($newkey);
+
     eval {
         # rename storage_object
@@ -309,4 +324,14 @@
 
     $log->debug("entered - @_");
+
+    {
+        my $volume;
+        ($volume, $key) = parse_neb_key($key);
+        if (defined $volume) {
+            die "$volume is not a valid volume name"
+                unless $self->_is_valid_volume_name($volume);
+        }
+        $vol_name ||= $volume;
+    }
 
     my ($uri, $vol_id);
@@ -395,4 +420,7 @@
 
     $log->debug( "entered - @_" );
+
+    # ignore volume
+    $key = parse_neb_key($key);
 
     my $so_id;
@@ -495,4 +523,7 @@
     $log->debug( "entered - @_" );
 
+    # ignore volume
+    $key = parse_neb_key($key);
+
     my $so_id;
     my $read_lock;
@@ -604,4 +635,7 @@
     $log->debug("entered - @_");
 
+    # ignore volume
+    $key = parse_neb_key($key);
+
     eval {
         my $query;
@@ -672,4 +706,7 @@
     $log->debug("entered - @_");
 
+    # ignore volume
+    $key = parse_neb_key($key);
+
     my $query;
     eval {
@@ -718,4 +755,7 @@
     $log->debug("entered - @_");
 
+    # ignore volume
+    $key = parse_neb_key($key);
+
     my $query;
     eval {
@@ -763,4 +803,7 @@
     $log->debug("entered - @_");
 
+    # ignore volume
+    $key = parse_neb_key($key);
+
     my $query;
     eval {
@@ -862,4 +905,14 @@
 
     $log->debug("entered - @_");
+
+    {
+        my $volume;
+        ($volume, $key) = parse_neb_key($key);
+        if (defined $volume) {
+            die "$volume is not a valid volume name"
+                unless $self->_is_valid_volume_name($volume);
+        }
+        $vol_name ||= $volume;
+    }
 
     my $query;
@@ -1008,4 +1061,7 @@
     $log->debug("entered - @_");
 
+    # ignore volume
+    $key = parse_neb_key($key);
+
     my $stat;
     eval {
@@ -1055,4 +1111,5 @@
             # %free, name, avaiable, allocate
             $rows = $query->execute(0.95, $name, 1, 1);
+            # XXX destinguish between non-existant and unaviable
             unless ($rows > 0) {
                 $query->finish;
