From: Tony Mack Date: Mon, 9 Nov 2009 02:00:44 +0000 (+0000) Subject: initial checkin X-Git-Tag: sfa-0.9-6~32 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=47f6aff744bc2ad6621d4683e3b4bea3863e01d5;p=sfa.git initial checkin --- diff --git a/sfacomponent/methods/reboot.py b/sfacomponent/methods/reboot.py new file mode 100644 index 00000000..1ad6f47f --- /dev/null +++ b/sfacomponent/methods/reboot.py @@ -0,0 +1,30 @@ +### $Id: reboot.py 15428 2009-10-23 15:28:03Z tmack $ +### $URL: https://svn.planet-lab.org/svn/sfa/trunk/sfa/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 + +class reboot(Method): + """ + Reboot the component + + @param cred credential string specifying the rights of the caller + @return None + """ + + interfaces = ['component'] + + accepts = [ + Parameter(str, "Credential string"), + ] + + 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) + self.api.auth.check(cred, 'reboot') + os.system("/sbin/reboot")