summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2016-03-04 01:29:56 +0000
committerGerrit Code Review <review@openstack.org>2016-03-04 01:29:56 +0000
commitd763acdf1c272b60a2ed30c1b93f1a02f1c19fab (patch)
treead425a6796cfd03395a4c80e7dee735a4e8a785e
parent2d3ded5e9dd51e1965b6a1fd67fbbebe0d25d1f1 (diff)
parent84942bb11c44659458d3a10a30ef208d0cb66bdd (diff)
downloadpython-openstackclient-d763acdf1c272b60a2ed30c1b93f1a02f1c19fab.tar.gz
Merge "Add test cases to test some commands with '--wait' and fix bug"
-rw-r--r--openstackclient/compute/v2/server.py4
-rw-r--r--openstackclient/tests/compute/v2/test_server.py188
2 files changed, 190 insertions, 2 deletions
diff --git a/openstackclient/compute/v2/server.py b/openstackclient/compute/v2/server.py
index ca239c51..f55c0a43 100644
--- a/openstackclient/compute/v2/server.py
+++ b/openstackclient/compute/v2/server.py
@@ -617,8 +617,8 @@ class CreateServerImage(command.ShowOne):
):
sys.stdout.write('\n')
else:
- self.log.error(_('Error creating server snapshot: %s'),
- parsed_args.image_name)
+ self.log.error(_('Error creating snapshot of server: %s'),
+ parsed_args.server)
sys.stdout.write(_('\nError creating server snapshot'))
raise SystemExit
diff --git a/openstackclient/tests/compute/v2/test_server.py b/openstackclient/tests/compute/v2/test_server.py
index aa8d7335..842a31a4 100644
--- a/openstackclient/tests/compute/v2/test_server.py
+++ b/openstackclient/tests/compute/v2/test_server.py
@@ -592,6 +592,64 @@ class TestServerImageCreate(TestServer):
self.assertEqual(self.columns, columns)
self.assertEqual(self.datalist(), data)
+ @mock.patch.object(common_utils, 'wait_for_status', return_value=False)
+ def test_server_create_image_with_wait_fails(self, mock_wait_for_status):
+ arglist = [
+ '--wait',
+ self.server.id,
+ ]
+ verifylist = [
+ ('wait', True),
+ ('server', self.server.id),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ self.assertRaises(SystemExit, self.cmd.take_action, parsed_args)
+
+ mock_wait_for_status.assert_called_once_with(
+ self.images_mock.get,
+ self.image.id,
+ callback=server._show_progress
+ )
+
+ # ServerManager.create_image(server, image_name, metadata=)
+ self.servers_mock.create_image.assert_called_with(
+ self.servers_mock.get.return_value,
+ self.server.name,
+ )
+
+ @mock.patch.object(common_utils, 'wait_for_status', return_value=True)
+ def test_server_create_image_with_wait_ok(self, mock_wait_for_status):
+ arglist = [
+ '--wait',
+ self.server.id,
+ ]
+ verifylist = [
+ ('wait', True),
+ ('server', self.server.id),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ # In base command class ShowOne in cliff, abstract method take_action()
+ # returns a two-part tuple with a tuple of column names and a tuple of
+ # data to be shown.
+ columns, data = self.cmd.take_action(parsed_args)
+
+ # ServerManager.create_image(server, image_name, metadata=)
+ self.servers_mock.create_image.assert_called_with(
+ self.servers_mock.get.return_value,
+ self.server.name,
+ )
+
+ mock_wait_for_status.assert_called_once_with(
+ self.images_mock.get,
+ self.image.id,
+ callback=server._show_progress
+ )
+
+ self.assertEqual(self.columns, columns)
+ self.assertEqual(self.datalist(), data)
+
class TestServerList(TestServer):
@@ -872,6 +930,58 @@ class TestServerRebuild(TestServer):
self.cimages_mock.get.assert_called_with(self.image.id)
self.server.rebuild.assert_called_with(self.image, password)
+ @mock.patch.object(common_utils, 'wait_for_status', return_value=True)
+ def test_rebuild_with_wait_ok(self, mock_wait_for_status):
+ arglist = [
+ '--wait',
+ self.server.id,
+ ]
+ verifylist = [
+ ('wait', True),
+ ('server', self.server.id),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ # Get the command object to test.
+ self.cmd.take_action(parsed_args)
+
+ # kwargs = dict(success_status=['active', 'verify_resize'],)
+
+ mock_wait_for_status.assert_called_once_with(
+ self.servers_mock.get,
+ self.server.id,
+ callback=server._show_progress,
+ # **kwargs
+ )
+
+ self.servers_mock.get.assert_called_with(self.server.id)
+ self.cimages_mock.get.assert_called_with(self.image.id)
+ self.server.rebuild.assert_called_with(self.image, None)
+
+ @mock.patch.object(common_utils, 'wait_for_status', return_value=False)
+ def test_rebuild_with_wait_fails(self, mock_wait_for_status):
+ arglist = [
+ '--wait',
+ self.server.id,
+ ]
+ verifylist = [
+ ('wait', True),
+ ('server', self.server.id),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ self.assertRaises(SystemExit, self.cmd.take_action, parsed_args)
+
+ mock_wait_for_status.assert_called_once_with(
+ self.servers_mock.get,
+ self.server.id,
+ callback=server._show_progress
+ )
+
+ self.servers_mock.get.assert_called_with(self.server.id)
+ self.cimages_mock.get.assert_called_with(self.image.id)
+ self.server.rebuild.assert_called_with(self.image, None)
+
class TestServerResize(TestServer):
@@ -982,6 +1092,84 @@ class TestServerResize(TestServer):
self.servers_mock.revert_resize.assert_called_with(self.server)
self.assertIsNone(result)
+ @mock.patch.object(common_utils, 'wait_for_status', return_value=True)
+ def test_server_resize_with_wait_ok(self, mock_wait_for_status):
+
+ arglist = [
+ '--flavor', self.flavors_get_return_value.id,
+ '--wait',
+ self.server.id,
+ ]
+
+ verifylist = [
+ ('flavor', self.flavors_get_return_value.id),
+ ('confirm', False),
+ ('revert', False),
+ ('wait', True),
+ ('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,
+ )
+
+ kwargs = dict(success_status=['active', 'verify_resize'],)
+
+ mock_wait_for_status.assert_called_once_with(
+ self.servers_mock.get,
+ self.server.id,
+ callback=server._show_progress,
+ **kwargs
+ )
+
+ self.servers_mock.resize.assert_called_with(
+ self.server,
+ self.flavors_get_return_value
+ )
+ self.assertNotCalled(self.servers_mock.confirm_resize)
+ self.assertNotCalled(self.servers_mock.revert_resize)
+
+ @mock.patch.object(common_utils, 'wait_for_status', return_value=False)
+ def test_server_resize_with_wait_fails(self, mock_wait_for_status):
+
+ arglist = [
+ '--flavor', self.flavors_get_return_value.id,
+ '--wait',
+ self.server.id,
+ ]
+
+ verifylist = [
+ ('flavor', self.flavors_get_return_value.id),
+ ('confirm', False),
+ ('revert', False),
+ ('wait', True),
+ ('server', self.server.id),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ self.assertRaises(SystemExit, self.cmd.take_action, parsed_args)
+
+ self.servers_mock.get.assert_called_with(
+ self.server.id,
+ )
+
+ kwargs = dict(success_status=['active', 'verify_resize'],)
+
+ mock_wait_for_status.assert_called_once_with(
+ self.servers_mock.get,
+ self.server.id,
+ callback=server._show_progress,
+ **kwargs
+ )
+
+ self.servers_mock.resize.assert_called_with(
+ self.server,
+ self.flavors_get_return_value
+ )
+
class TestServerResume(TestServer):