- revert incorrect mangling of 'type' slice attribute
authorMark Huang <mlhuang@cs.princeton.edu>
Thu, 16 Nov 2006 17:09:21 +0000 (17:09 +0000)
committerMark Huang <mlhuang@cs.princeton.edu>
Thu, 16 Nov 2006 17:09:21 +0000 (17:09 +0000)
api.py
sliver_vs.py
sm.py

diff --git a/api.py b/api.py
index 4a64c3d..6484f48 100644 (file)
--- a/api.py
+++ b/api.py
@@ -132,7 +132,7 @@ class APIRequestHandler(SimpleXMLRPCServer.SimpleXMLRPCRequestHandler):
             if method_name not in ('Help', 'Ticket'):
                 target_name = args[0]
                 target_rec = database.db.get(target_name)
-                if not target_rec: raise xmlrpclib.Fault(102, 'Invalid argument: the first argument must be a sliver name.')
+                if not (target_rec and target_rec['type'].startswith('sliver.')): raise xmlrpclib.Fault(102, 'Invalid argument: the first argument must be a sliver name.')
                 if not (caller_name in (args[0], 'root') or (caller_name, method_name) in target_rec['delegations']): raise xmlrpclib.Fault(108, 'Permission denied.')
                 result = method(target_rec, *args[1:])
             else: result = method(*args)
index 3c804e6..f93a4f0 100644 (file)
@@ -30,7 +30,7 @@ class Sliver_VS(accounts.Account, vserver.VServer):
     """This class wraps vserver.VServer to make its interface closer to what we need."""
 
     SHELL = '/bin/vsh'
-    TYPE = 'vserver'
+    TYPE = 'sliver.VServer'
 
     def __init__(self, rec):
         try:
diff --git a/sm.py b/sm.py
index fecfbf6..6a89158 100644 (file)
--- a/sm.py
+++ b/sm.py
@@ -61,7 +61,7 @@ def GetSlivers_callback(data, fullupdate=True):
             keys = rec.pop('keys')
             rec.setdefault('keys', '\n'.join([key_struct['key'] for key_struct in keys]))
 
-            rec.setdefault('type', attr_dict.get('type', 'vserver'))
+            rec.setdefault('type', attr_dict.get('type', 'sliver.VServer'))
             rec.setdefault('vref', attr_dict.get('vref', 'default'))
             rec.setdefault('initscript', attr_dict.get('initscript', ''))
             rec.setdefault('delegations', [])  # XXX - delegation not yet supported