X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=PLC%2FMethods%2FUpdateNodeGroup.py;h=4c7cec9c24ef8e87d66ac409fafc4dacf606528a;hb=d0c553e8b3a7191514d56cb312552f325c67db90;hp=60882308cd2c07436315f087b06602c54d83064f;hpb=7e7751b60ad5379a11bb78e571bad3df9f5eb02f;p=plcapi.git diff --git a/PLC/Methods/UpdateNodeGroup.py b/PLC/Methods/UpdateNodeGroup.py index 6088230..4c7cec9 100644 --- a/PLC/Methods/UpdateNodeGroup.py +++ b/PLC/Methods/UpdateNodeGroup.py @@ -1,16 +1,17 @@ +# $Id$ +# $URL$ from PLC.Faults import * from PLC.Method import Method from PLC.Parameter import Parameter, Mixed from PLC.NodeGroups import NodeGroup, NodeGroups -from PLC.Auth import PasswordAuth +from PLC.Auth import Auth -can_update = lambda (field, value): field in \ - ['name', 'description'] +can_update = lambda (field, value): field in ['groupname','value'] class UpdateNodeGroup(Method): """ Updates a custom node group. - + Returns 1 if successful, faults otherwise. """ @@ -19,9 +20,9 @@ class UpdateNodeGroup(Method): nodegroup_fields = dict(filter(can_update, NodeGroup.fields.items())) accepts = [ - PasswordAuth(), + Auth(), Mixed(NodeGroup.fields['nodegroup_id'], - NodeGroup.fields['name']), + NodeGroup.fields['groupname']), nodegroup_fields ] @@ -30,13 +31,17 @@ class UpdateNodeGroup(Method): 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] - - nodegroup.update(nodegroup_fields) + # Get nodegroup information + nodegroups = NodeGroups(self.api, [nodegroup_id_or_name]) + if not nodegroups: + raise PLCInvalidArgument, "No such nodegroup %r"%nodegroup_id_or_name + nodegroup = nodegroups[0] + + nodegroup.update(nodegroup_fields) nodegroup.sync() + # Logging variables + self.event_objects = {'NodeGroup': [nodegroup['nodegroup_id']]} + self.message = 'Node group %d updated: %s' % \ + (nodegroup['nodegroup_id'], ", ".join(nodegroup_fields.keys())) return 1