From 0fafe0345238231a2e296665e2fdea3d7b027577 Mon Sep 17 00:00:00 2001 From: Thierry Parmentelat Date: Fri, 20 Feb 2009 15:02:42 +0000 Subject: [PATCH] apply 12137 for PLE --- PLC/Methods/ResolveSlices.py | 41 ++++++++++++++++++++++++++++++++++++ PLC/Methods/__init__.py | 1 + 2 files changed, 42 insertions(+) create mode 100644 PLC/Methods/ResolveSlices.py diff --git a/PLC/Methods/ResolveSlices.py b/PLC/Methods/ResolveSlices.py new file mode 100644 index 00000000..5574fede --- /dev/null +++ b/PLC/Methods/ResolveSlices.py @@ -0,0 +1,41 @@ +# $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 diff --git a/PLC/Methods/__init__.py b/PLC/Methods/__init__.py index e6d6a8b0..077780c5 100644 --- a/PLC/Methods/__init__.py +++ b/PLC/Methods/__init__.py @@ -192,6 +192,7 @@ NotifySupport RebootNode RefreshPeer ResetPassword +ResolveSlices SetPersonPrimarySite SliceCreate SliceDelete -- 2.47.0