Update keep to comply with the MIME type revamp

Also bump the version
This commit is contained in:
Arash Ghoreyshi
2013-08-05 16:39:06 -05:00
parent e40895facd
commit 3b22a513d7
2 changed files with 35 additions and 18 deletions

View File

@@ -4,6 +4,7 @@ from barbicanclient import client
class Keep:
def __init__(self):
self.parser = self.get_main_parser()
self.subparsers = self.parser.add_subparsers(title='subcommands',
@@ -46,9 +47,6 @@ class Keep:
def add_create_args(self):
create_parser = self.subparsers.add_parser('create', help='Create a '
'secret or an order')
create_parser.add_argument('--mime_type', '-m', default='text/plain',
help='the MIME type of the raw secret (defa'
'ult: %(default)s)')
create_parser.add_argument('--name', '-n', help='a human-friendly name'
' used only for reference')
create_parser.add_argument('--algorithm', '-a', default='aes', help='t'
@@ -58,10 +56,26 @@ class Keep:
help='the bit length of the secret; used '
'only for reference (default: %(default)s)',
type=int)
create_parser.add_argument('--cypher_type', '-c', help='the cypher typ'
'e used only for reference')
create_parser.add_argument('--plain_text', '-p', help='the unencrypted'
' secret (only used for secrets)')
create_parser.add_argument('--cypher_type', '-c', default="cbc",
help='the cypher type used only for referen'
'ce (default: %(default)s)')
create_parser.add_argument('--payload', '-p', help='the unencrypted'
' secret; if provided, you must also provid'
'e a payload_content_type (only used for se'
'crets)')
create_parser.add_argument('--payload_content_type', '-t',
choices=["text/plain",
"text/plain; charset=utf-8",
"application/octet-stream"],
help='the type/format of the provided '
'secret data; "text/plain" is assumed to be'
' UTF-8; required when --payload is su'
'pplied (only used for secrets)')
create_parser.add_argument('--payload_content_encoding', '-d',
choices=["base64"],
help='required if --payload_content_type is'
' "application/octet-stream" (only used for'
' secrets)')
create_parser.add_argument('--expiration', '-e', help='the expiration '
'time for the secret in ISO 8601 format')
create_parser.set_defaults(func=self.create)
@@ -81,10 +95,12 @@ class Keep:
get_parser.add_argument('UUID', help='the universally unique identi'
'fier of the the secret or order')
get_parser.add_argument('--raw', '-r', help='if specified, gets the ra'
'w secret of type specified with --mime_type ('
'only used for secrets)', action='store_true')
get_parser.add_argument('--mime_type', '-m', default='text/plain',
help='the MIME type of the raw secret (defa'
'w secret of type specified with --payload_con'
'tent_type (only used for secrets)',
action='store_true')
get_parser.add_argument('--payload_content_type', '-t',
default='text/plain',
help='the content type of the raw secret (defa'
'ult: %(default)s; only used for secrets)')
get_parser.set_defaults(func=self.get)
@@ -105,17 +121,17 @@ class Keep:
def create(self, args):
if args.type == 'secret':
secret = self.conn.create_secret(args.mime_type,
args.plain_text,
args.name,
secret = self.conn.create_secret(args.name,
args.payload,
args.payload_content_type,
args.payload_content_encoding,
args.algorithm,
args.bit_length,
args.cypher_type,
args.expiration)
print secret
else:
order = self.conn.create_order(args.mime_type,
args.name,
order = self.conn.create_order(args.name,
args.algorithm,
args.bit_length,
args.cypher_type,
@@ -131,7 +147,8 @@ class Keep:
def get(self, args):
if args.type == 'secret':
if args.raw:
print self.conn.get_raw_secret_by_id(args.UUID, args.mime_type)
print self.conn.get_raw_secret_by_id(args.UUID,
args.payload_content_type)
else:
print self.conn.get_secret_by_id(args.UUID)
else:

View File

@@ -17,5 +17,5 @@
Cloudkeep's Barbican Client version
"""
__version__ = '0.2.1dev'
__version__ = '0.3.0'
__version_info__ = tuple(__version__.split('.'))