diff options
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( |
