summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWyllys Ingersoll <wyllys.ingersoll@evault.com>2013-12-11 13:07:06 -0500
committerWyllys Ingersoll <wyllys.ingersoll@evault.com>2013-12-16 10:25:47 -0500
commit5f555c7ced9afb8653b746c22241c48b5be15449 (patch)
tree42d331492563e23ece1b6290d4276a790e8fbd4f
parent7d02541047cd08787255695c4befcf4ab70a6002 (diff)
downloadpython-barbicanclient-5f555c7ced9afb8653b746c22241c48b5be15449.tar.gz
Add filtering CLI options to 'secrets list' sub command.
Change-Id: I14265ad277a02f93af98312e139dc19e23382edd Implements: blueprint secret-list-add-criteria
-rw-r--r--barbicanclient/keep.py19
-rw-r--r--barbicanclient/secrets.py12
2 files changed, 29 insertions, 2 deletions
diff --git a/barbicanclient/keep.py b/barbicanclient/keep.py
index f0e5f77..522ece3 100644
--- a/barbicanclient/keep.py
+++ b/barbicanclient/keep.py
@@ -209,6 +209,18 @@ class Keep:
list_parser.add_argument('--offset', '-o', default=0, help='specify t'
'he page offset (default: %(default)s)',
type=int)
+ list_parser.add_argument('--name', '-n', default=None, help='specify t'
+ 'he secret name (default: %(default)s)')
+ list_parser.add_argument('--algorithm', '-a', default=None,
+ help='the algorithm filter for the list'
+ '(default: %(default)s).')
+ list_parser.add_argument('--bit-length', '-b', default=0,
+ help='the bit length filter for the list'
+ ' (default: %(default)s).',
+ type=int)
+ list_parser.add_argument('--mode', '-m', default=None,
+ help='the algorithmm mode filter for the'
+ ' list (default: %(default)s).')
list_parser.set_defaults(func=self.list)
def store(self, args):
@@ -269,7 +281,12 @@ class Keep:
def list(self, args):
if args.command == 'secret':
- ls = self.client.secrets.list(args.limit, args.offset)
+ ls = self.client.secrets.list(limit=args.limit,
+ offset=args.offset,
+ name=args.name,
+ mode=args.mode,
+ algorithm=args.algorithm,
+ bits=args.bit_length)
elif args.command == 'verification':
ls = self.client.verifications.list(args.limit, args.offset)
elif args.command == 'order':
diff --git a/barbicanclient/secrets.py b/barbicanclient/secrets.py
index f8c0643..e8d2040 100644
--- a/barbicanclient/secrets.py
+++ b/barbicanclient/secrets.py
@@ -175,7 +175,8 @@ class SecretManager(base.BaseEntityManager):
raise ValueError('secret_ref is required.')
self.api.delete(secret_ref)
- def list(self, limit=10, offset=0):
+ def list(self, limit=10, offset=0, name=None, algorithm=None,
+ mode=None, bits=0):
"""
List all secrets for the tenant
@@ -187,6 +188,15 @@ class SecretManager(base.BaseEntityManager):
limit))
href = '{0}/{1}'.format(self.api.base_url, self.entity)
params = {'limit': limit, 'offset': offset}
+ if name:
+ params['name'] = name
+ if algorithm:
+ params['alg'] = algorithm
+ if mode:
+ params['mode'] = mode
+ if bits > 0:
+ params['bits'] = bits
+
resp = self.api.get(href, params)
return [Secret(s) for s in resp['secrets']]