From dd81a4db9c036f19b66557b441f36dd2d84ffb72 Mon Sep 17 00:00:00 2001 From: Thierry Parmentelat Date: Wed, 26 Jun 2013 13:02:22 +0200 Subject: [PATCH] add filtering on node to RetrieveSliceSshKeys --- PLC/Methods/RetrieveSliceSshKeys.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) 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']) -- 2.43.0