--- /dev/null
+# $Id$
+
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Filter import Filter
+from PLC.Auth import Auth
+from PLC.Slices import Slice, Slices
+
+class ResolveSlices(Method):
+ """
+ This method is similar to GetSlices, except the the returned
+ columns are restricted to 'name' and 'slice_id'. This is method
+ designed to help third-party software solve slice names from their
+ slice_id (e.g. PlanetFlow Central). For this reason it is
+ accessible with anonymous authentication (among others)
+ """
+
+ roles = ['admin', 'pi', 'user', 'tech', 'anonymous' ]
+
+ applicable_fields = {
+ 'slice_id' : Slice.fields['slice_id'],
+ 'name' : Slice.fields['name'],
+ }
+
+ accepts = [
+ Auth(),
+ Mixed([Mixed(Slice.fields['slice_id'],
+ Slice.fields['name'])],
+ Parameter(str,"name"),
+ Parameter(int,"slice_id"),
+ Filter(applicable_fields))
+ ]
+
+ returns = [applicable_fields]
+
+ def call(self, auth, slice_filter = None):
+
+ # Must query at least slice_id (see below)
+ return_fields = applicable_fields.keys()
+ slices = Slices(self.api, slice_filter, return_fields)
+ return slices