X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=PLC%2FMethods%2FRetrieveSliceSshKeys.py;h=0b56f59646f18979fb132e1faaefc80f4d09d69a;hb=dd81a4db9c036f19b66557b441f36dd2d84ffb72;hp=b472ca58c77d2e18a8b56d33db1451d0cf633a97;hpb=f8c2a334f62af4552298bc1f1d8d7f45acafd50e;p=plcapi.git diff --git a/PLC/Methods/RetrieveSliceSshKeys.py b/PLC/Methods/RetrieveSliceSshKeys.py index b472ca5..0b56f59 100644 --- a/PLC/Methods/RetrieveSliceSshKeys.py +++ b/PLC/Methods/RetrieveSliceSshKeys.py @@ -27,12 +27,14 @@ class RetrieveSliceSshKeys(Method): accepts = [ Auth(), Mixed(Slice.fields['slice_id'], - Slice.fields['name']) + Slice.fields['name']), + Filter(Node.fields), ] returns = Parameter (dict, " ssh keys hashed on hostnames") - def call(self, auth, slice_id_or_name): + def call(self, auth, slice_id_or_name, node_filter=None): + filter={} if isinstance(slice_id_or_name,int): filter['slice_id']=slice_id_or_name @@ -41,6 +43,12 @@ class RetrieveSliceSshKeys(Method): filter['tagname']='ssh_key' # retrieve only sliver tags filter['~node_id']=None + if node_filter: + # make sure we only deal with local nodes + node_filter['peer_id']=None + nodes = Nodes(self.api, node_filter, ['node_id']) + node_ids = [ node ['node_id'] for node in nodes ] + filter['node_id']=node_ids # slice_tags don't expose hostname, sigh.. slice_tags=SliceTags(self.api,filter,['node_id','tagname','value'])