From 3b22a513d79ed9b95ffc71a04c3a2b7f28bd9b86 Mon Sep 17 00:00:00 2001 From: Arash Ghoreyshi Date: Mon, 5 Aug 2013 16:39:06 -0500 Subject: [PATCH] Update keep to comply with the MIME type revamp Also bump the version --- barbicanclient/keep.py | 51 ++++++++++++++++++++++++++------------- barbicanclient/version.py | 2 +- 2 files changed, 35 insertions(+), 18 deletions(-) diff --git a/barbicanclient/keep.py b/barbicanclient/keep.py index 84dea1d4..56b191c8 100644 --- a/barbicanclient/keep.py +++ b/barbicanclient/keep.py @@ -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: diff --git a/barbicanclient/version.py b/barbicanclient/version.py index 5307f23e..63159c1b 100644 --- a/barbicanclient/version.py +++ b/barbicanclient/version.py @@ -17,5 +17,5 @@ Cloudkeep's Barbican Client version """ -__version__ = '0.2.1dev' +__version__ = '0.3.0' __version_info__ = tuple(__version__.split('.'))