X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Fmethods%2Freboot.py;h=ae9e9b5d7f5deb899f312dd378d9f509f603fae2;hb=3b521e0a39766c5435dc108200c48a6a084975be;hp=a5e6f27a2eae223e104729e3ff31b3217b85a6aa;hpb=f0ddb37094ee72b2ccf4d3202784752add30d474;p=sfa.git diff --git a/sfa/methods/reboot.py b/sfa/methods/reboot.py index a5e6f27a..ae9e9b5d 100644 --- a/sfa/methods/reboot.py +++ b/sfa/methods/reboot.py @@ -2,7 +2,6 @@ ### $URL: https://svn.planet-lab.org/svn/sfa/trunk/sfacomponent/methods/reboot.py $ import os from sfa.util.faults import * -from sfa.util.misc import * from sfa.util.method import Method from sfa.util.parameter import Parameter, Mixed @@ -22,9 +21,12 @@ class reboot(Method): returns = None - def call(self, cred, request_hash=None): - client_gid = Credential(string=cred).get_gid_caller() - client_gid_str = client_gid.save_to_string(save_parents=True) - self.api.auth.authenticateGid(client_gid_str, [cred], request_hash) + def call(self, cred): + # validate the cred self.api.auth.check(cred, 'reboot') - os.system("/sbin/reboot") + # send the call to the right manager + manager_base = 'sfa.managers' + mgr_type = self.api.config.SFA_CM_TYPE + manager_module = manager_base + ".component_manager_%s" % mgr_type + manager = __import__(manager_module, fromlist=[manager_base]) + manager.reboot()