From: Mark Huang Date: Mon, 23 Oct 2006 20:36:01 +0000 (+0000) Subject: - fix calling convention X-Git-Tag: pycurl-7_13_1~478 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=1d38462c0f3983b50994f00e6602c4c80b4604a8;p=plcapi.git - fix calling convention --- diff --git a/PLC/Methods/UpdateNodeGroup.py b/PLC/Methods/UpdateNodeGroup.py index c9534491..a47591b4 100644 --- a/PLC/Methods/UpdateNodeGroup.py +++ b/PLC/Methods/UpdateNodeGroup.py @@ -4,6 +4,9 @@ from PLC.Parameter import Parameter, Mixed from PLC.NodeGroups import NodeGroup, NodeGroups from PLC.Auth import PasswordAuth +can_update = lambda (field, value): field in \ + ['name', 'description'] + class UpdateNodeGroup(Method): """ Updates a custom node group. @@ -13,31 +16,27 @@ class UpdateNodeGroup(Method): roles = ['admin'] + update_fields = dict(filter(can_update, NodeGroup.fields.items())) + accepts = [ PasswordAuth(), Mixed(NodeGroup.fields['nodegroup_id'], NodeGroup.fields['name']), - NodeGroup.fields['name'], - NodeGroup.fields['description'] + update_fields ] returns = Parameter(int, '1 if successful') - def call(self, auth, nodegroup_id_or_name, name, description): + def call(self, auth, nodegroup_id_or_name, nodegroup_fields = {}): + nodegroup_fields = dict(filter(can_update, nodegroup_fields.items())) + # Get nodegroup information nodegroups = NodeGroups(self.api, [nodegroup_id_or_name]) if not nodegroups: raise PLCInvalidArgument, "No such nodegroup" - nodegroup = nodegroups.values()[0] - # Modify node group - update_fields = { - 'name': name, - 'description': description - } - - nodegroup.update(update_fields) + nodegroup.update(nodegroup_fields) nodegroup.sync() return 1