Index: /trunk/Nebulous-Server/Build.PL
===================================================================
--- /trunk/Nebulous-Server/Build.PL	(revision 4878)
+++ /trunk/Nebulous-Server/Build.PL	(revision 4879)
@@ -95,3 +95,4 @@
         'Apache::DBI'           => '0.94',
     },
+    script_files        => 'bin/neb-initdb',
 )->create_build_script;
Index: /trunk/Nebulous-Server/scripts/bench_test.pl
===================================================================
--- /trunk/Nebulous-Server/scripts/bench_test.pl	(revision 4878)
+++ /trunk/Nebulous-Server/scripts/bench_test.pl	(revision 4879)
@@ -14,11 +14,12 @@
 
 my $key = shift || 'foobar';
+            my $fh = $neb->create( $key );
+            close $fh;
 
-timethese( -10,
+timethese( -3,
     {
         'create/delete' => sub {
-            my $fh = $neb->create( $key );
-            close $fh;
-            $neb->delete( $key );
+#            $neb->delete( $key );
+            $neb->stat( $key );
         },
     }
Index: /trunk/Nebulous-Server/scripts/stest.pl
===================================================================
--- /trunk/Nebulous-Server/scripts/stest.pl	(revision 4878)
+++ /trunk/Nebulous-Server/scripts/stest.pl	(revision 4879)
@@ -18,5 +18,5 @@
 
 $neb->create( $fname, 1 );
-$neb->unlock( $fname, 'write' );
+#$neb->unlock( $fname, 'write' );
 $neb->delete( $fname );
 
Index: /trunk/Nebulous/Build.PL
===================================================================
--- /trunk/Nebulous/Build.PL	(revision 4878)
+++ /trunk/Nebulous/Build.PL	(revision 4879)
@@ -95,3 +95,4 @@
         'Apache::DBI'           => '0.94',
     },
+    script_files        => 'bin/neb-initdb',
 )->create_build_script;
Index: /trunk/Nebulous/lib/Nebulous/Client.pod
===================================================================
--- /trunk/Nebulous/lib/Nebulous/Client.pod	(revision 4878)
+++ /trunk/Nebulous/lib/Nebulous/Client.pod	(revision 4879)
@@ -37,6 +37,6 @@
 =head2 Import Parameters
 
-This module accepts a hash as argument to it's C<import> method and exports no
-I<symbols>.
+This module accepts an optional hash as argument to it's C<import> method and
+exports no I<symbols>.
 
     use Nebulous::Client trace => qw( debug );
@@ -84,29 +84,254 @@
 =over 4
 
-=item * create
-
-=item * replicate
-
-=item * cull
-
-=item * lock
-
-=item * unlock
-
-=item * find_instances
-
-=item * find
-
-=item * open
-
-=item * delete
-
-=item * copy
-
-=item * move
-
-=item * delete_instance
-
-=item * stat
+
+=item * create($key, $class, $volume, $comment).
+
+Creates and opens new storage object.
+
+=over 4
+
+=item * key
+
+The storage object key (name).
+
+=item * class 
+
+The storage class.
+
+This parameter is optional.
+
+=item * volume
+
+The preferred storage location of initial instance.
+
+This parameter is optional.
+
+=item * comment 
+
+The storage object comment.
+
+This parameter is optional.
+
+=back
+
+Returns a filehandle or C<undef> on failure.
+
+
+=item * replicate($key, $volume)
+
+Adds an instance to a storage object.
+
+=over 4
+
+=item * key
+
+The storage object key (name).
+
+=item * volume
+
+The preferred storage location of initial instance.
+
+This parameter is optional.
+
+=back
+
+Returns true on success.
+
+
+=item * cull($key)
+
+Removes an instance from a storage object.
+
+=over 4
+
+=item * key
+
+The storage object key (name).
+
+=back
+
+Returns true on success.
+
+
+=item * lock($key, $type, $timeout)
+
+Trys to acquire a lock on a storage object
+
+=over 4
+
+=item * key
+
+The storage object key (name).
+
+=item * type
+
+The type of lock to acquire.  Either C<read> or C<write>.
+
+=item * timeout
+
+The number of seconds to I<try> for a lock.
+
+This parameter is optional.
+
+=back
+
+Returns true on success.
+
+
+=item * unlock($key, $type)
+
+Trys to release a lock on a storage object.
+
+=over 4
+
+=item * key
+
+The storage object key (name).
+
+=item * type
+
+The type of lock to release.  Either C<read> or C<write>.
+
+=back
+
+Returns true on success.
+
+
+=item * find_instances($key, $volume)
+
+Lists all instances of a storage object
+
+=over 4
+
+=item * key
+
+The storage object key (name).
+
+=item * volume
+
+Restrict search to this storage location.
+
+This parameter is optional.
+
+=back
+
+Returns an arrayref of scalars.
+
+
+=item * find($key)
+
+Find any instance of a storage object.
+
+=over 4
+
+=item * key
+
+The storage object key (name).
+
+=back
+
+Returns the path to the instance.
+
+
+=item * open($key, $type)
+
+Open a storage object for read or write.
+
+=over 4
+
+=item * key
+
+The storage object key (name).
+
+=item * type
+
+The type of lock to acquire.  Either C<read> or C<write>.
+
+=back
+
+Returns a filehandle or C<undef> on failure.
+
+
+=item * delete($key)
+
+Delete a storage object and all of it's instances.
+
+=over 4
+
+=item * key
+
+The storage object key (name).
+
+=back
+
+Returns true on success.
+
+
+=item * copy($key, $new_key)
+
+Copy a storage object.
+
+=over 4
+
+=item * key
+
+The source object.
+
+=item * new_key
+
+The destination object.
+
+=back
+
+Returns true on success or C<undef> on failure.
+
+
+=item * move($key, $new_key)
+
+Rename a storage object.
+
+=over 4
+
+=item * key
+
+The source object.
+
+=item * new_key
+
+The destination object.
+
+=back
+
+Returns true on success or C<undef> on failure.
+
+
+=item * delete_instance($uri)
+
+Remove a storage object instance.
+
+=over 4
+
+=item * uri
+
+URI of the instance to remove.
+
+=back
+
+Returns true on success or C<undef> on failure.
+
+=item * stat($key)
+
+View the properties of a storage object.
+
+=over 4
+
+=item * key
+
+The storage object key (name).
+
+=back
+
+Returns an arrayref of scalars.
+
 
 =back
Index: /trunk/Nebulous/scripts/bench_test.pl
===================================================================
--- /trunk/Nebulous/scripts/bench_test.pl	(revision 4878)
+++ /trunk/Nebulous/scripts/bench_test.pl	(revision 4879)
@@ -14,11 +14,12 @@
 
 my $key = shift || 'foobar';
+            my $fh = $neb->create( $key );
+            close $fh;
 
-timethese( -10,
+timethese( -3,
     {
         'create/delete' => sub {
-            my $fh = $neb->create( $key );
-            close $fh;
-            $neb->delete( $key );
+#            $neb->delete( $key );
+            $neb->stat( $key );
         },
     }
Index: /trunk/Nebulous/scripts/stest.pl
===================================================================
--- /trunk/Nebulous/scripts/stest.pl	(revision 4878)
+++ /trunk/Nebulous/scripts/stest.pl	(revision 4879)
@@ -18,5 +18,5 @@
 
 $neb->create( $fname, 1 );
-$neb->unlock( $fname, 'write' );
+#$neb->unlock( $fname, 'write' );
 $neb->delete( $fname );
 
Index: /trunk/Nebulous/t/Test/Nebulous.pm
===================================================================
--- /trunk/Nebulous/t/Test/Nebulous.pm	(revision 4878)
+++ /trunk/Nebulous/t/Test/Nebulous.pm	(revision 4879)
@@ -1,5 +1,5 @@
 # Copyright (C) 2004  Joshua Hoblitt
 #
-# $Id: Nebulous.pm,v 1.4 2005-06-30 02:35:06 jhoblitt Exp $
+# $Id: Nebulous.pm,v 1.5 2005-08-25 23:42:33 jhoblitt Exp $
 
 package Test::Nebulous;
@@ -114,2 +114,12 @@
         key(class_id)
     ) ENGINE=innodb;
+
+DROP TABLE IF EXISTS log;
+CREATE TABLE log (
+    timestamp TIMESTAMP,
+    hostname VARCHAR(255),
+    level VARCHAR(255),
+    sub VARCHAR(255),
+    message VARCHAR(2048) NOT NULL,
+    PRIMARY KEY(timestamp)
+) ENGINE=innodb;
