diff options
| author | Stephen Finucane <sfinucan@redhat.com> | 2020-12-03 12:20:40 +0000 |
|---|---|---|
| committer | Stephen Finucane <sfinucan@redhat.com> | 2021-01-08 12:14:43 +0000 |
| commit | 958344733aa6d8aea6cb8d06cc4d879fe1ee44a6 (patch) | |
| tree | e31218050044e463d0ef32d68486dece6b4b5b1d /openstackclient | |
| parent | fc24142ed41e15622687558c68d670bdc37223f0 (diff) | |
| download | python-openstackclient-958344733aa6d8aea6cb8d06cc4d879fe1ee44a6.tar.gz | |
compute: Add missing options for 'server image create'
Add a '--property' option to record arbitrary key/value metadata to
'meta_data.json' on the metadata server.
Change-Id: I267f3290fce3692cbd1ff6a9af146c2736ee31fe
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Diffstat (limited to 'openstackclient')
| -rw-r--r-- | openstackclient/compute/v2/server_image.py | 17 | ||||
| -rw-r--r-- | openstackclient/tests/unit/compute/v2/test_server_image.py | 6 |
2 files changed, 21 insertions, 2 deletions
diff --git a/openstackclient/compute/v2/server_image.py b/openstackclient/compute/v2/server_image.py index c12bc2b3..6c0e3b22 100644 --- a/openstackclient/compute/v2/server_image.py +++ b/openstackclient/compute/v2/server_image.py @@ -18,6 +18,7 @@ import importlib import logging +from osc_lib.cli import parseractions from osc_lib.command import command from osc_lib import exceptions from osc_lib import utils @@ -49,6 +50,16 @@ class CreateServerImage(command.ShowOne): help=_('Name of new disk image (default: server name)'), ) parser.add_argument( + '--property', + metavar='<key=value>', + dest='properties', + action=parseractions.KeyValueAction, + help=_( + 'Set a new property to meta_data.json on the metadata server ' + '(repeat option to set multiple values)' + ), + ) + parser.add_argument( '--wait', action='store_true', help=_('Wait for operation to complete'), @@ -76,6 +87,7 @@ class CreateServerImage(command.ShowOne): image_id = compute_client.servers.create_image( server.id, image_name, + parsed_args.properties, ) image_client = self.app.client_manager.image @@ -89,8 +101,8 @@ class CreateServerImage(command.ShowOne): ): self.app.stdout.write('\n') else: - LOG.error(_('Error creating server image: %s'), - parsed_args.server) + LOG.error( + _('Error creating server image: %s'), parsed_args.server) raise exceptions.CommandError if self.app.client_manager._api_version['image'] == '1': @@ -105,4 +117,5 @@ class CreateServerImage(command.ShowOne): ] ) info = image_module._format_image(image) + return zip(*sorted(info.items())) diff --git a/openstackclient/tests/unit/compute/v2/test_server_image.py b/openstackclient/tests/unit/compute/v2/test_server_image.py index 06f6017c..66452a8b 100644 --- a/openstackclient/tests/unit/compute/v2/test_server_image.py +++ b/openstackclient/tests/unit/compute/v2/test_server_image.py @@ -130,6 +130,7 @@ class TestServerImageCreate(TestServerImage): self.servers_mock.create_image.assert_called_with( servers[0].id, servers[0].name, + None, ) self.assertEqual(self.image_columns(images[0]), columns) @@ -141,11 +142,13 @@ class TestServerImageCreate(TestServerImage): arglist = [ '--name', 'img-nam', + '--property', 'key=value', servers[0].id, ] verifylist = [ ('name', 'img-nam'), ('server', servers[0].id), + ('properties', {'key': 'value'}), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -158,6 +161,7 @@ class TestServerImageCreate(TestServerImage): self.servers_mock.create_image.assert_called_with( servers[0].id, 'img-nam', + {'key': 'value'}, ) self.assertEqual(self.image_columns(images[0]), columns) @@ -188,6 +192,7 @@ class TestServerImageCreate(TestServerImage): self.servers_mock.create_image.assert_called_with( servers[0].id, servers[0].name, + None, ) mock_wait_for_status.assert_called_once_with( @@ -220,6 +225,7 @@ class TestServerImageCreate(TestServerImage): self.servers_mock.create_image.assert_called_with( servers[0].id, servers[0].name, + None, ) mock_wait_for_status.assert_called_once_with( |
