Merge "Refactor parsing metadata to a common function"

This commit is contained in:
Jenkins 2015-11-11 11:00:45 +00:00 committed by Gerrit Code Review
commit 903538ee59
2 changed files with 13 additions and 3 deletions
novaclient
tests/unit/v2
v2

@ -956,6 +956,12 @@ class ShellTest(utils.TestCase):
self.run_command('list --limit 3')
self.assert_called('GET', '/servers/detail?limit=3')
def test_meta_parsing(self):
meta = ['key1=meta1', 'key2=meta2']
ref = {'key1': 'meta1', 'key2': 'meta2'}
parsed_meta = novaclient.v2.shell._meta_parsing(meta)
self.assertEqual(ref, parsed_meta)
def test_reboot(self):
self.run_command('reboot sample-server')
self.assert_called('POST', '/servers/1234/action',

@ -79,6 +79,10 @@ def _key_value_pairing(text):
raise argparse.ArgumentTypeError(msg)
def _meta_parsing(metadata):
return dict(v.split('=', 1) for v in metadata)
def _match_image(cs, wanted_properties):
image_list = cs.images.list()
images_matched = []
@ -194,7 +198,7 @@ def _boot(cs, args):
flavor = _find_flavor(cs, args.flavor)
meta = dict(v.split('=', 1) for v in args.meta)
meta = _meta_parsing(args.meta)
files = {}
for f in args.files:
@ -1547,7 +1551,7 @@ def do_rebuild(cs, args):
kwargs = utils.get_resource_manager_extra_kwargs(do_rebuild, args)
kwargs['preserve_ephemeral'] = args.preserve_ephemeral
kwargs['name'] = args.name
meta = dict(v.split('=', 1) for v in args.meta)
meta = _meta_parsing(args.meta)
kwargs['meta'] = meta
files = {}
@ -1806,7 +1810,7 @@ def do_set_password(cs, args):
def do_image_create(cs, args):
"""Create a new image by taking a snapshot of a running server."""
server = _find_server(cs, args.server)
meta = dict(v.split('=', 1) for v in args.metadata) or None
meta = _meta_parsing(args.metadata) or None
image_uuid = cs.servers.create_image(server, args.name, meta)
if args.poll: