summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Riedemann <mriedem.os@gmail.com>2017-07-14 17:17:10 -0400
committerMatt Riedemann <mriedem.os@gmail.com>2017-07-16 09:07:07 -0400
commit9c21ad0db3087fae0f1404a88ecabcda928cf765 (patch)
tree929d86230d1756fe15793e3a1d872627e78fc3fe
parent8ab54527f8bfd62049dcfc3c77ba8f28c99ee322 (diff)
downloadpython-novaclient-9c21ad0db3087fae0f1404a88ecabcda928cf765.tar.gz
Add resize down test which also verifies quota changes
This adds a functional test which creates a server at a larger flavor and then resizes it down to a smaller flavor, and then reverts the resize. It checks quota before, during and after the resize. This is an important wrinkle with the counting quotas changes happening in the server in Pike. Change-Id: If1bb59e513b91a99fae2b6825248a40d8e7ac7b9
-rw-r--r--novaclient/tests/functional/v2/test_resize.py47
1 files changed, 47 insertions, 0 deletions
diff --git a/novaclient/tests/functional/v2/test_resize.py b/novaclient/tests/functional/v2/test_resize.py
index 6884e4ba..25526024 100644
--- a/novaclient/tests/functional/v2/test_resize.py
+++ b/novaclient/tests/functional/v2/test_resize.py
@@ -102,3 +102,50 @@ class TestServersResize(base.ClientTestBase):
confirm_usage = self._get_absolute_limits()
self._compare_quota_usage(
resize_usage, confirm_usage, expect_diff=False)
+
+ def _create_resize_down_flavors(self):
+ """Creates two flavors with different size ram but same size vcpus
+ and disk.
+
+ :returns: tuple of (larger_flavor_name, smaller_flavor_name)
+ """
+ self.nova('flavor-create', params='resize-larger-flavor auto 128 0 1')
+ self.addCleanup(
+ self.nova, 'flavor-delete', params='resize-larger-flavor')
+
+ self.nova('flavor-create', params='resize-smaller-flavor auto 64 0 1')
+ self.addCleanup(
+ self.nova, 'flavor-delete', params='resize-smaller-flavor')
+
+ return 'resize-larger-flavor', 'resize-smaller-flavor'
+
+ def test_resize_down_revert(self):
+ """Tests creating a server and resizes down and reverts the resize.
+ Compares quota before, during and after the resize.
+ """
+ # devstack's m1.tiny and m1.small have different size disks so we
+ # can't use those as you can't resize down the disk. So we have to
+ # create our own flavors.
+ larger_flavor, smaller_flavor = self._create_resize_down_flavors()
+ # Now create the server with the larger flavor.
+ server_id = self._create_server('resize-down-revert', larger_flavor)
+ # get the starting quota now that we've created a server
+ starting_usage = self._get_absolute_limits()
+ # now resize down
+ self.nova('resize',
+ params='%s %s --poll' % (server_id, smaller_flavor))
+ resize_usage = self._get_absolute_limits()
+ # compare the starting usage against the resize usage; in the case of
+ # a resize down we don't expect usage to change until it's confirmed,
+ # which doesn't happen in this test since we revert
+ self._compare_quota_usage(
+ starting_usage, resize_usage, expect_diff=False)
+ # now revert the resize
+ self.nova('resize-revert', params='%s' % server_id)
+ # we have to wait for the server to be ACTIVE before we can check quota
+ self._wait_for_state_change(server_id, 'active')
+ # get the final quota usage which should be the same as the resize
+ # usage before revert
+ revert_usage = self._get_absolute_limits()
+ self._compare_quota_usage(
+ resize_usage, revert_usage, expect_diff=False)