diff options
| author | Vishvananda Ishaya <vishvananda@gmail.com> | 2010-06-24 04:11:58 +0100 |
|---|---|---|
| committer | andy <github@anarkystic.com> | 2010-06-24 04:11:58 +0100 |
| commit | 933157bdc595b093d89de0da2cca5b021fadf0f6 (patch) | |
| tree | 32159488b545e9d59ae6307e4eb55b9d6415a96b | |
| parent | fe4f0d3ffd0ba1730598cb4b592e2c6a07719ef3 (diff) | |
| download | nova-933157bdc595b093d89de0da2cca5b021fadf0f6.tar.gz nova-933157bdc595b093d89de0da2cca5b021fadf0f6.tar.xz nova-933157bdc595b093d89de0da2cca5b021fadf0f6.zip | |
filter keypairs for vpn keys
| -rw-r--r-- | nova/endpoint/cloud.py | 24 |
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): |
