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)
"""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:
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