Index: trunk/Nebulous/lib/Nebulous/Server.pm
===================================================================
--- trunk/Nebulous/lib/Nebulous/Server.pm	(revision 13180)
+++ trunk/Nebulous/lib/Nebulous/Server.pm	(revision 13203)
@@ -1,5 +1,5 @@
 # Copyright (c) 2004  Joshua Hoblitt
 #
-# $Id: Server.pm,v 1.33 2007-05-03 03:21:28 jhoblitt Exp $
+# $Id: Server.pm,v 1.34 2007-05-03 22:10:13 jhoblitt Exp $
 
 package Nebulous::Server;
@@ -244,7 +244,14 @@
         {
             type        => SCALAR,
-        },
-        {
-            type        => SCALAR,
+            callbacks   => {
+                'is valid object key' => sub { $self->_is_valid_object_key($_[0]) },
+            },
+        },
+        # make sure the "newkey" doesn't already exist
+        {
+            type        => SCALAR,
+            callbacks   => {
+                'is not valid object key' => sub { not $self->_is_valid_object_key($_[0]) },
+            },
         },
     );
@@ -382,5 +389,6 @@
 }
 
-sub lock_object {
+sub lock_object
+{
     my $self = shift;
 
@@ -388,4 +396,7 @@
         {
             type        => SCALAR,
+            callbacks   => {
+                'is valid object key' => sub { $self->_is_valid_object_key($_[0]) },
+            },
         },
         {
@@ -501,5 +512,6 @@
 }
 
-sub unlock_object {
+sub unlock_object
+{
     my $self = shift;
 
@@ -507,4 +519,7 @@
         {
             type        => SCALAR,
+            callbacks   => {
+                'is valid object key' => sub { $self->_is_valid_object_key($_[0]) },
+            },
         },
         {
@@ -635,4 +650,7 @@
         {
             type        => SCALAR,
+            callbacks   => {
+                'is valid object key' => sub { $self->_is_valid_object_key($_[0]) },
+            },
         },
         {
@@ -706,4 +724,7 @@
         {
             type        => SCALAR,
+            callbacks   => {
+                'is valid object key' => sub { $self->_is_valid_object_key($_[0]) },
+            },
         },
         {
@@ -751,4 +772,7 @@
         {
             type        => SCALAR,
+            callbacks   => {
+                'is valid object key' => sub { $self->_is_valid_object_key($_[0]) },
+            },
         },
     );
@@ -789,4 +813,7 @@
         {
             type        => SCALAR,
+            callbacks   => {
+                'is valid object key' => sub { $self->_is_valid_object_key($_[0]) },
+            },
         },
         {
@@ -831,5 +858,6 @@
 
 
-sub find_objects {
+sub find_objects
+{
     my $self = shift;
 
@@ -870,5 +898,6 @@
 
 
-sub find_instances {
+sub find_instances
+{
     my $self = shift;
 
@@ -939,5 +968,7 @@
 }
 
-sub delete_instance {
+
+sub delete_instance
+{
     my $self = shift;
 
@@ -983,5 +1014,6 @@
             my $rows = $query->execute( $uri );
             
-            # if we affected something other then one row something very bad has happened
+            # if we affected something other then one row something very bad
+            # has happened
             unless ( $rows == 1 ) {
                 $log->logdie( "affected row count is $rows instead of 1" );
@@ -1016,5 +1048,7 @@
 }
 
-sub stat_object {
+
+sub stat_object
+{
     my $self = shift;
 
@@ -1123,5 +1157,7 @@
 }
 
-sub _is_valid_object_key  {
+
+sub _is_valid_object_key
+{
     my ($self, $key) = @_;
 
@@ -1149,5 +1185,7 @@
 }
 
-sub _is_valid_volume_name  {
+
+sub _is_valid_volume_name
+{
     my ($self, $vol_name) = @_;
 
@@ -1176,5 +1214,7 @@
 }
 
-sub DESTROY {
+
+sub DESTROY
+{
     my $self = shift;
 
