X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=PLC%2FMethods%2FUpdateNodeGroup.py;h=4c7cec9c24ef8e87d66ac409fafc4dacf606528a;hb=be959d0158ffaff6d50158269f03ba7f2c1da56f;hp=f655c67cc65d4d59d4ba7756b956cb3764d1db02;hpb=e347fc823bbba9d88a3fddf07d5c21024dfd1e55;p=plcapi.git diff --git a/PLC/Methods/UpdateNodeGroup.py b/PLC/Methods/UpdateNodeGroup.py index f655c67..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 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. """ @@ -21,7 +22,7 @@ class UpdateNodeGroup(Method): accepts = [ 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[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