X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=PLC%2FMethods%2FBootGetNodeDetails.py;h=2f5056d9dead05bc889165b541e65381ee778b07;hb=fbc8feb0a370d9da9088f84b18a458a029d0f979;hp=4a87792695aead7140dbff964251d2670773f5f2;hpb=8a487f290fe09f77b4e1c1bf7ddb38a5ab4832e6;p=plcapi.git diff --git a/PLC/Methods/BootGetNodeDetails.py b/PLC/Methods/BootGetNodeDetails.py index 4a87792..2f5056d 100644 --- a/PLC/Methods/BootGetNodeDetails.py +++ b/PLC/Methods/BootGetNodeDetails.py @@ -11,7 +11,10 @@ class BootGetNodeDetails(Method): node session value. """ + roles = ['node'] + accepts = [BootAuth()] + returns = { 'hostname': Node.fields['hostname'], 'boot_state': Node.fields['boot_state'], @@ -20,11 +23,12 @@ class BootGetNodeDetails(Method): 'session': Session.fields['session_id'], } - def call(self, auth, update_fields): + def call(self, auth): details = { 'hostname': self.caller['hostname'], 'boot_state': self.caller['boot_state'], - 'model': self.caller['model'], + # XXX Boot Manager cannot unmarshal None + 'model': self.caller['model'] or "", } # Generate a new session value @@ -35,7 +39,17 @@ class BootGetNodeDetails(Method): details['session'] = session['session_id'] if self.caller['nodenetwork_ids']: - details['networks'] = NodeNetworks(self.api, self.caller['nodenetwork_ids']).values() - + details['networks'] = NodeNetworks(self.api, self.caller['nodenetwork_ids']) + # XXX Boot Manager cannot unmarshal None + for network in details['networks']: + for field in network: + if network[field] is None: + if isinstance(network[field], (int, long)): + network[field] = -1 + else: + network[field] = "" + + self.messge = "Node request boot_state (%s) and networks" % \ + (details['boot_state']) return details