Index: trunk/Nebulous-Server/bin/neb-cabadd
===================================================================
--- trunk/Nebulous-Server/bin/neb-cabadd	(revision 26292)
+++ trunk/Nebulous-Server/bin/neb-cabadd	(revision 39926)
@@ -19,5 +19,5 @@
 use Pod::Usage qw( pod2usage );
 
-my ($db, $dbhost, $dbuser, $dbpass, $cname, $location);
+my ($db, $dbhost, $dbuser, $dbpass, $cname, $location, $site_id, $update, $cab_id);
 
 $db     = $ENV{'NEB_DB'} unless $db;
@@ -33,9 +33,12 @@
     'cname|n=s'         => \$cname,
     'location|l=s'      => \$location,
+    'site_id|s=s'       => \$site_id,
+    'cab_id=s'          => \$cab_id,
+    'update|u'          => \$update,
 ) || pod2usage( 2 );
 
 pod2usage( -msg => "Unknown option: @ARGV", -exitval => 2 ) if @ARGV;
-pod2usage( -msg => "Required options: --db --user --pass --cname", -exitval => 2 )
-    unless $db && $dbuser && $dbpass && $cname;
+pod2usage( -msg => "Required options: --db --user --pass --cname --site_id", -exitval => 2 )
+    unless $db && $dbuser && $dbpass && $cname && $site_id;
 
 my $dbh = DBI->connect(
@@ -52,11 +55,30 @@
 my $sql = Nebulous::Server::SQL->new();
 
-print "Adding cabinet...";
-
-my $query = $dbh->prepare( $sql->new_cabinet );
-$query->execute( $cname, $location);
-
-print " OK\n";
-
+if (defined($update)) {
+    unless ($cname && $location && $site_id && $cab_id) {
+	pod2usage( -msg => "Required options for update: --db --user --pass --cname --site_id --location --cab_id", -exitval => 2 );
+    }
+    print "Updating cabinet...";
+    my $query = $dbh->prepare( $sql->update_cabinet );
+    # Check query: 
+#        UPDATE cabinet SET
+#           location = ?,
+#           name     = ?,
+#           site_id  = ? 
+#        WHERE cab_id = ?
+
+    $query->execute( $location, $cname, $site_id, $cab_id );
+    
+    print "OK\n";
+
+}
+else {
+    print "Adding cabinet...";
+    
+    my $query = $dbh->prepare( $sql->new_cabinet );
+    $query->execute( $cname, $location, $site_id);
+    
+    print " OK\n";
+}
 __END__
 
@@ -69,5 +91,5 @@
 =head1 SYNOPSIS
 
-    neb-cabadd --cname <cabinet name> --location <cabinet location>
+    neb-cabadd --cname <cabinet name> --location <cabinet location> --site_id <site_id>
     [--db <database>] [--user <username>] [--pass <password>] [--host <hostname]
 
@@ -89,4 +111,8 @@
 
 Description of the location of the cabinet.
+
+=item * --site_id <site_id>
+
+Numerical value of the location's site.  Default = 0.
 
 =item * --db|-d <database>
