summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZuul <zuul@review.opendev.org>2019-08-20 18:12:20 +0000
committerGerrit Code Review <review@openstack.org>2019-08-20 18:12:20 +0000
commita15e4741fa1c02e3e87ce072cfee2b19f9279924 (patch)
treeb537d827a7c49708f9ac6ab6e3d0371a0c024e43
parent8ef2602447a1e26b9ec56056ef31d4cabb3dc2e7 (diff)
parent7561e062ebd80a28655523320cbe1a49e94ee509 (diff)
downloadpython-openstackclient-a15e4741fa1c02e3e87ce072cfee2b19f9279924.tar.gz
Merge "Add 'openstack server resize (confirm|revert)' commands"
-rw-r--r--openstackclient/compute/v2/server.py55
-rw-r--r--openstackclient/tests/unit/compute/v2/test_server.py82
-rw-r--r--releasenotes/notes/add-server-resize-confirm-revert-commands-98854ca98965432a.yaml12
-rw-r--r--setup.cfg2
4 files changed, 149 insertions, 2 deletions
diff --git a/openstackclient/compute/v2/server.py b/openstackclient/compute/v2/server.py
index 95c2f28a..493fd5ad 100644
--- a/openstackclient/compute/v2/server.py
+++ b/openstackclient/compute/v2/server.py
@@ -2226,11 +2226,66 @@ the new server and restart the old one.""")
self.app.stdout.write(_('Error resizing server\n'))
raise SystemExit
elif parsed_args.confirm:
+ self.log.warning(_(
+ "The --confirm option has been deprecated. Please use the "
+ "'openstack server resize confirm' command instead."))
compute_client.servers.confirm_resize(server)
elif parsed_args.revert:
+ self.log.warning(_(
+ "The --revert option has been deprecated. Please use the "
+ "'openstack server resize revert' command instead."))
compute_client.servers.revert_resize(server)
+class ResizeConfirm(command.Command):
+ _description = _("""Confirm server resize.
+
+Confirm (verify) success of resize operation and release the old server.""")
+
+ def get_parser(self, prog_name):
+ parser = super(ResizeConfirm, self).get_parser(prog_name)
+ parser.add_argument(
+ 'server',
+ metavar='<server>',
+ help=_('Server (name or ID)'),
+ )
+ return parser
+
+ def take_action(self, parsed_args):
+
+ compute_client = self.app.client_manager.compute
+ server = utils.find_resource(
+ compute_client.servers,
+ parsed_args.server,
+ )
+ server.confirm_resize()
+
+
+class ResizeRevert(command.Command):
+ _description = _("""Revert server resize.
+
+Revert the resize operation. Release the new server and restart the old
+one.""")
+
+ def get_parser(self, prog_name):
+ parser = super(ResizeRevert, self).get_parser(prog_name)
+ parser.add_argument(
+ 'server',
+ metavar='<server>',
+ help=_('Server (name or ID)'),
+ )
+ return parser
+
+ def take_action(self, parsed_args):
+
+ compute_client = self.app.client_manager.compute
+ server = utils.find_resource(
+ compute_client.servers,
+ parsed_args.server,
+ )
+ server.revert_resize()
+
+
class RestoreServer(command.Command):
_description = _("Restore server(s)")
diff --git a/openstackclient/tests/unit/compute/v2/test_server.py b/openstackclient/tests/unit/compute/v2/test_server.py
index ae6b6e40..0793116a 100644
--- a/openstackclient/tests/unit/compute/v2/test_server.py
+++ b/openstackclient/tests/unit/compute/v2/test_server.py
@@ -4054,13 +4054,18 @@ class TestServerResize(TestServer):
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
- result = self.cmd.take_action(parsed_args)
+ with mock.patch.object(self.cmd.log, 'warning') as mock_warning:
+ result = self.cmd.take_action(parsed_args)
self.servers_mock.get.assert_called_with(self.server.id)
self.assertNotCalled(self.servers_mock.resize)
self.servers_mock.confirm_resize.assert_called_with(self.server)
self.assertNotCalled(self.servers_mock.revert_resize)
self.assertIsNone(result)
+ # A warning should have been logged for using --confirm.
+ mock_warning.assert_called_once()
+ self.assertIn('The --confirm option has been deprecated.',
+ six.text_type(mock_warning.call_args[0][0]))
def test_server_resize_revert(self):
arglist = [
@@ -4074,13 +4079,18 @@ class TestServerResize(TestServer):
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
- result = self.cmd.take_action(parsed_args)
+ with mock.patch.object(self.cmd.log, 'warning') as mock_warning:
+ result = self.cmd.take_action(parsed_args)
self.servers_mock.get.assert_called_with(self.server.id)
self.assertNotCalled(self.servers_mock.resize)
self.assertNotCalled(self.servers_mock.confirm_resize)
self.servers_mock.revert_resize.assert_called_with(self.server)
self.assertIsNone(result)
+ # A warning should have been logged for using --revert.
+ mock_warning.assert_called_once()
+ self.assertIn('The --revert option has been deprecated.',
+ six.text_type(mock_warning.call_args[0][0]))
@mock.patch.object(common_utils, 'wait_for_status', return_value=True)
def test_server_resize_with_wait_ok(self, mock_wait_for_status):
@@ -4161,6 +4171,74 @@ class TestServerResize(TestServer):
)
+class TestServerResizeConfirm(TestServer):
+
+ def setUp(self):
+ super(TestServerResizeConfirm, self).setUp()
+
+ methods = {
+ 'confirm_resize': None,
+ }
+ self.server = compute_fakes.FakeServer.create_one_server(
+ methods=methods)
+
+ # This is the return value for utils.find_resource()
+ self.servers_mock.get.return_value = self.server
+
+ self.servers_mock.confirm_resize.return_value = None
+
+ # Get the command object to test
+ self.cmd = server.ResizeConfirm(self.app, None)
+
+ def test_resize_confirm(self):
+ arglist = [
+ self.server.id,
+ ]
+ verifylist = [
+ ('server', self.server.id),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ self.cmd.take_action(parsed_args)
+
+ self.servers_mock.get.assert_called_with(self.server.id)
+ self.server.confirm_resize.assert_called_with()
+
+
+class TestServerResizeRevert(TestServer):
+
+ def setUp(self):
+ super(TestServerResizeRevert, self).setUp()
+
+ methods = {
+ 'revert_resize': None,
+ }
+ self.server = compute_fakes.FakeServer.create_one_server(
+ methods=methods)
+
+ # This is the return value for utils.find_resource()
+ self.servers_mock.get.return_value = self.server
+
+ self.servers_mock.revert_resize.return_value = None
+
+ # Get the command object to test
+ self.cmd = server.ResizeRevert(self.app, None)
+
+ def test_resize_revert(self):
+ arglist = [
+ self.server.id,
+ ]
+ verifylist = [
+ ('server', self.server.id),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ self.cmd.take_action(parsed_args)
+
+ self.servers_mock.get.assert_called_with(self.server.id)
+ self.server.revert_resize.assert_called_with()
+
+
class TestServerRestore(TestServer):
def setUp(self):
diff --git a/releasenotes/notes/add-server-resize-confirm-revert-commands-98854ca98965432a.yaml b/releasenotes/notes/add-server-resize-confirm-revert-commands-98854ca98965432a.yaml
new file mode 100644
index 00000000..2399a1a6
--- /dev/null
+++ b/releasenotes/notes/add-server-resize-confirm-revert-commands-98854ca98965432a.yaml
@@ -0,0 +1,12 @@
+---
+features:
+ - |
+ Add ``server resize confirm`` and ``server resize revert`` commands.
+ These replace the now deprecated ``--confirm`` and ``--revert``
+ options to the ``server resize`` commands, respectively.
+deprecations:
+ - |
+ Deprecate the ``--confirm`` and ``--revert`` options for the
+ ``server resize`` command. They have been replaced with the
+ ``server resize confirm`` and `server resize revert`` commands,
+ respectively.
diff --git a/setup.cfg b/setup.cfg
index c57bc41d..a9f7de2c 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -119,6 +119,8 @@ openstack.compute.v2 =
server_remove_volume = openstackclient.compute.v2.server:RemoveServerVolume
server_rescue = openstackclient.compute.v2.server:RescueServer
server_resize = openstackclient.compute.v2.server:ResizeServer
+ server_resize_confirm = openstackclient.compute.v2.server:ResizeConfirm
+ server_resize_revert = openstackclient.compute.v2.server:ResizeRevert
server_restore = openstackclient.compute.v2.server:RestoreServer
server_resume = openstackclient.compute.v2.server:ResumeServer
server_set = openstackclient.compute.v2.server:SetServer