X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=PLC%2FMethods%2FAddSliceAttribute.py;fp=PLC%2FMethods%2FAddSliceAttribute.py;h=af80ee2fe744c6f578562e952d797d7504082238;hb=2fbc54bb18d05d1c8972257a342c3ae162e83c6e;hp=aec3047e5ad011931841a80f13c874227e76e574;hpb=1d36cde819b7bcadb4702e6e5952d66c1ce5d185;p=plcapi.git diff --git a/PLC/Methods/AddSliceAttribute.py b/PLC/Methods/AddSliceAttribute.py index aec3047..af80ee2 100644 --- a/PLC/Methods/AddSliceAttribute.py +++ b/PLC/Methods/AddSliceAttribute.py @@ -86,7 +86,6 @@ class AddSliceAttribute(Method): if node['node_id'] not in slice['node_ids']: raise PLCInvalidArgument, "Node not in the specified slice" - slice_attribute['node_id'] = node['node_id'] # Sliver attribute shared accross nodes if nodegroup is sepcified @@ -98,6 +97,18 @@ class AddSliceAttribute(Method): slice_attribute['nodegroup_id'] = nodegroup['nodegroup_id'] + # Check if slice attribute alreay exists + slice_attribute_check = None + slice_attributes_check = SliceAttributes(self.api, {'slice_id': slice['slice_id'], 'name': attribute_type['name'], 'value': value}) + for slice_attribute_check in slice_attributes_check: + print slice_attribute_check + if 'node_id' in slice_attribute and slice_attribute['node_id'] == slice_attribute_check['node_id']: + raise PLCInvalidArgument, "Sliver attribute already exists" + if 'nodegroup_id' in slice_attribute and slice_attribute['nodegroup_id'] == slice_attribute_check['nodegroup_id']: + raise PLCInvalidArgument, "Slice attribute already exists for this nodegroup" + if node_id_or_hostname is None and nodegroup_id_or_name is None: + raise PLCInvalidArgument, "Slice attribute already exists" + slice_attribute.sync() self.event_objects = {'SliceAttribute': [slice_attribute['slice_attribute_id']]}