From: Faiyaz Ahmed Date: Tue, 9 Sep 2008 16:47:50 +0000 (+0000) Subject: * Explicitly run configure, which sets capabilities and resources, before starting... X-Git-Tag: NodeManager-1.7-34~4 X-Git-Url: http://git.onelab.eu/?p=nodemanager.git;a=commitdiff_plain;h=0fd3392ee63c1ea84db707456a0fcf26a378d211 * Explicitly run configure, which sets capabilities and resources, before starting vserver. * Print username when NM api returns permission denied. --- diff --git a/accounts.py b/accounts.py index 09c8eed..0dbf000 100644 --- a/accounts.py +++ b/accounts.py @@ -114,16 +114,18 @@ class Worker: 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() diff --git a/api.py b/api.py index b099fb8..f8200fb 100644 --- a/api.py +++ b/api.py @@ -63,7 +63,7 @@ class APIRequestHandler(SimpleXMLRPCServer.SimpleXMLRPCRequestHandler): 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) diff --git a/api_calls.py b/api_calls.py index e99a559..cd97e13 100644 --- a/api_calls.py +++ b/api_calls.py @@ -164,9 +164,9 @@ def Destroy(sliver_name): 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.')],