X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=PLC%2FMethods%2FDeleteSliceAttribute.py;h=ea3ecb2087fc96f918a458b4a4deb45a5b91d200;hb=03f03eb21ef66571e98d61c0b0c56bdb861062a7;hp=7584f467d0b690d3f5fe99df54e6fd56bd6c6071;hpb=e347fc823bbba9d88a3fddf07d5c21024dfd1e55;p=plcapi.git diff --git a/PLC/Methods/DeleteSliceAttribute.py b/PLC/Methods/DeleteSliceAttribute.py index 7584f46..ea3ecb2 100644 --- a/PLC/Methods/DeleteSliceAttribute.py +++ b/PLC/Methods/DeleteSliceAttribute.py @@ -28,6 +28,9 @@ class DeleteSliceAttribute(Method): returns = Parameter(int, '1 if successful') + object_type = 'Slice' + + def call(self, auth, slice_attribute_id): slice_attributes = SliceAttributes(self.api, [slice_attribute_id]) if not slice_attributes: @@ -39,6 +42,9 @@ class DeleteSliceAttribute(Method): raise PLCInvalidArgument, "No such slice" slice = slices[0] + if slice['peer_id'] is not None: + raise PLCInvalidArgument, "Not a local slice" + assert slice_attribute['slice_attribute_id'] in slice['slice_attribute_ids'] if 'admin' not in self.caller['roles']: @@ -51,8 +57,9 @@ class DeleteSliceAttribute(Method): if slice_attribute['min_role_id'] is not None and \ min(self.caller['role_ids']) > slice_attribute['min_role_id']: - raise PLCPermissionDenied, "Not allowed to delete the specified attribute" + raise PLCPermissioinDenied, "Not allowed to delete the specified attribute" slice_attribute.delete() + self.object_ids = [slice_attribute['slice_attribute_id']] return 1