git://git.onelab.eu
/
plcapi.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
merge from head - 1.21
[plcapi.git]
/
PLC
/
Methods
/
GetSlices.py
diff --git
a/PLC/Methods/GetSlices.py
b/PLC/Methods/GetSlices.py
index
61f61c0
..
b2ddfde
100644
(file)
--- a/
PLC/Methods/GetSlices.py
+++ b/
PLC/Methods/GetSlices.py
@@
-3,6
+3,7
@@
from PLC.Parameter import Parameter, Mixed
from PLC.Filter import Filter
from PLC.Auth import Auth
from PLC.Persons import Person, Persons
from PLC.Filter import Filter
from PLC.Auth import Auth
from PLC.Persons import Person, Persons
+from PLC.Sites import Site, Sites
from PLC.Slices import Slice, Slices
class GetSlices(Method):
from PLC.Slices import Slice, Slices
class GetSlices(Method):
@@
-30,7
+31,6
@@
class GetSlices(Method):
]
returns = [Slice.fields]
]
returns = [Slice.fields]
-
def call(self, auth, slice_filter = None, return_fields = None):
# If we are not admin, make sure to return only viewable
def call(self, auth, slice_filter = None, return_fields = None):
# If we are not admin, make sure to return only viewable
@@
-50,6
+50,13
@@
class GetSlices(Method):
if slice_filter is None:
slice_filter = valid_slice_ids
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
slices = Slices(self.api, slice_filter, return_fields)
# Filter out slices that are not viewable
@@
-57,4
+64,9
@@
class GetSlices(Method):
'admin' not in self.caller['roles']:
slices = filter(lambda slice: slice['slice_id'] in valid_slice_ids, slices)
'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:
+ del slice['slice_id']
+
return slices
return slices