summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVishvananda Ishaya <vishvananda@gmail.com>2010-06-24 04:11:58 +0100
committerandy <github@anarkystic.com>2010-06-24 04:11:58 +0100
commit933157bdc595b093d89de0da2cca5b021fadf0f6 (patch)
tree32159488b545e9d59ae6307e4eb55b9d6415a96b
parentfe4f0d3ffd0ba1730598cb4b592e2c6a07719ef3 (diff)
downloadnova-933157bdc595b093d89de0da2cca5b021fadf0f6.tar.gz
nova-933157bdc595b093d89de0da2cca5b021fadf0f6.tar.xz
nova-933157bdc595b093d89de0da2cca5b021fadf0f6.zip
filter keypairs for vpn keys
-rw-r--r--nova/endpoint/cloud.py24
1 files changed, 10 insertions, 14 deletions
diff --git a/nova/endpoint/cloud.py b/nova/endpoint/cloud.py
index 0910e41d1..2500a7f6e 100644
--- a/nova/endpoint/cloud.py
+++ b/nova/endpoint/cloud.py
@@ -166,24 +166,20 @@ class CloudController(object):
@rbac.allow('all')
def describe_key_pairs(self, context, key_name=None, **kwargs):
- key_pairs = []
- key_names = key_name and key_name or []
- if len(key_names) > 0:
- for key_name in key_names:
- key_pair = context.user.get_key_pair(key_name)
- if key_pair != None:
- key_pairs.append({
- 'keyName': key_pair.name,
- 'keyFingerprint': key_pair.fingerprint,
- })
- else:
- for key_pair in context.user.get_key_pairs():
- key_pairs.append({
+ key_pairs = context.user.get_key_pairs()
+ if not key_name is None:
+ key_pairs = [x for x in key_pairs if x.name in key_name]
+
+ result = []
+ for key_pair in key_pairs:
+ # filter out the vpn keys
+ if not context.user.is_admin() and not key_pair.name.endswith('-key'):
+ result.append({
'keyName': key_pair.name,
'keyFingerprint': key_pair.fingerprint,
})
- return { 'keypairsSet': key_pairs }
+ return { 'keypairsSet': result }
@rbac.allow('all')
def create_key_pair(self, context, key_name, **kwargs):