* Print username when NM api returns permission denied.
try: next_class.create(self.name, rec['vref'])
finally: self._create_sem.release()
if not isinstance(self._acct, next_class): self._acct = next_class(rec)
- else: self._acct.configure(rec)
if startingup or \
not self.is_running() or \
next_class != curr_class or \
self._acct.initscriptchanged:
- self._acct.start()
+ self.start(rec)
+ else: self._acct.configure(rec)
def ensure_destroyed(self): self._destroy(self._get_class())
- def start(self, d): self._acct.start(delay=d)
+ def start(self, rec, d = 0):
+ self._acct.configure(rec)
+ self._acct.start(delay=d)
def stop(self): self._acct.stop()
raise xmlrpclib.Fault(102, \
'Invalid argument: the first argument must be a sliver name.')
if not caller_name in (target_name, target_rec['delegations']):
- raise xmlrpclib.Fault(108, 'Permission denied.')
+ raise xmlrpclib.Fault(108, '%s: Permission denied.' % caller_name)
try: result = method(target_rec, *args[1:])
except Exception, err: raise xmlrpclib.Fault(104, 'Error in call: %s' %err)
else: result = method(*args)
returns=Parameter(int, '1 if successful'))
@export_to_api(1)
def Start(sliver_name):
- """Run start scripts belonging to the specified sliver"""
+ """Configure and start sliver."""
rec = sliver_name
- accounts.get(rec['name']).start()
+ accounts.get(rec['name']).start(rec)
@export_to_docbook(roles=['nm-controller', 'self'],
accepts=[Parameter(str, 'A sliver/slice name.')],