X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=PLC%2FMethods%2FGetSlices.py;h=63dc0b40885b2231faac0f4143d5c3327f23669e;hb=c1aaaec750423d6e35b91ff3eb52d267099785be;hp=9bd90173b213b11869477854570eda8ab9aeda99;hpb=28123352d75d2a6657073d79ceed47659e63158a;p=plcapi.git diff --git a/PLC/Methods/GetSlices.py b/PLC/Methods/GetSlices.py index 9bd9017..63dc0b4 100644 --- a/PLC/Methods/GetSlices.py +++ b/PLC/Methods/GetSlices.py @@ -26,12 +26,13 @@ class GetSlices(Method): Auth(), Mixed([Mixed(Slice.fields['slice_id'], Slice.fields['name'])], + Parameter(str,"name"), + Parameter(int,"slice_id"), Filter(Slice.fields)), Parameter([str], "List of fields to return", nullok = True) ] returns = [Slice.fields] - def call(self, auth, slice_filter = None, return_fields = None): # If we are not admin, make sure to return only viewable @@ -51,6 +52,13 @@ class GetSlices(Method): if slice_filter is None: slice_filter = valid_slice_ids + # Must query at least slice_id (see below) + if return_fields is not None and 'slice_id' not in return_fields: + return_fields.append('slice_id') + added_fields = True + else: + added_fields = False + slices = Slices(self.api, slice_filter, return_fields) # Filter out slices that are not viewable @@ -58,4 +66,10 @@ class GetSlices(Method): 'admin' not in self.caller['roles']: slices = filter(lambda slice: slice['slice_id'] in valid_slice_ids, slices) + # Remove slice_id if not specified + if added_fields: + for slice in slices: + if 'slice_id' in slice: + del slice['slice_id'] + return slices