diff options
| author | Ruby Loo <rloo@oath.com> | 2018-10-05 16:26:32 -0400 |
|---|---|---|
| committer | Ruby Loo <rloo@oath.com> | 2018-10-05 16:33:48 -0400 |
| commit | e3dc30fe8c1ae6a13926bf1eae52097e8bb37aab (patch) | |
| tree | 2cc23648aa8b8a8ff97280ab1cb150bd4c15e733 /openstackclient | |
| parent | 4e6f47e28ee09be7dac8848660bf38bdcd02570c (diff) | |
| download | python-openstackclient-e3dc30fe8c1ae6a13926bf1eae52097e8bb37aab.tar.gz | |
Add --property option to 'server rebuild' command
Add '--property' option to the 'server rebuild' command, to provide
the ability to specify properties of the rebuilt instance.
This is equivalent to the '--meta' option of the compute's
'nova rebuild' command.
Change-Id: I25ea6622e970416090109316e1e28fab8b0b3f07
Story: #2003979
Task: #26922
Diffstat (limited to 'openstackclient')
| -rw-r--r-- | openstackclient/compute/v2/server.py | 13 | ||||
| -rw-r--r-- | openstackclient/tests/unit/compute/v2/test_server.py | 21 |
2 files changed, 33 insertions, 1 deletions
diff --git a/openstackclient/compute/v2/server.py b/openstackclient/compute/v2/server.py index a6a59084..67b4140a 100644 --- a/openstackclient/compute/v2/server.py +++ b/openstackclient/compute/v2/server.py @@ -1518,6 +1518,13 @@ class RebuildServer(command.ShowOne): help=_("Set the password on the rebuilt instance"), ) parser.add_argument( + '--property', + metavar='<key=value>', + action=parseractions.KeyValueAction, + help=_('Set a property on the rebuilt instance ' + '(repeat option to set multiple values)'), + ) + parser.add_argument( '--wait', action='store_true', help=_('Wait for rebuild to complete'), @@ -1542,7 +1549,11 @@ class RebuildServer(command.ShowOne): 'image', {}).get('id') image = utils.find_resource(image_client.images, image_id) - server = server.rebuild(image, parsed_args.password) + kwargs = {} + if parsed_args.property: + kwargs['meta'] = parsed_args.property + + server = server.rebuild(image, parsed_args.password, **kwargs) if parsed_args.wait: if utils.wait_for_status( compute_client.servers.get, diff --git a/openstackclient/tests/unit/compute/v2/test_server.py b/openstackclient/tests/unit/compute/v2/test_server.py index b3d32681..e938564b 100644 --- a/openstackclient/tests/unit/compute/v2/test_server.py +++ b/openstackclient/tests/unit/compute/v2/test_server.py @@ -2496,6 +2496,27 @@ class TestServerRebuild(TestServer): self.images_mock.get.assert_called_with(self.image.id) self.server.rebuild.assert_called_with(self.image, None) + def test_rebuild_with_property(self): + arglist = [ + self.server.id, + '--property', 'key1=value1', + '--property', 'key2=value2' + ] + expected_property = {'key1': 'value1', 'key2': 'value2'} + verifylist = [ + ('server', self.server.id), + ('property', expected_property) + ] + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + + # Get the command object to test + self.cmd.take_action(parsed_args) + + self.servers_mock.get.assert_called_with(self.server.id) + self.images_mock.get.assert_called_with(self.image.id) + self.server.rebuild.assert_called_with( + self.image, None, meta=expected_property) + class TestServerRemoveFixedIP(TestServer): |
