[functional] Remove duplication of boot helper

The base test class for functionl tests has an unified helper method for
booting VM and waiting for active status. This method can be easily
extended with one new argumen `flavor` to cover the case required by
`TestServersResize` test case.

This patch ports `TestServersResize` to use generic helper method.

Change-Id: I9a53066dbb8907ed87a70f207b1e41b5b8a66908
This commit is contained in:
Andrey Kurilin 2017-11-17 14:17:14 +02:00
parent 5c8faafff3
commit a8e4521b67
2 changed files with 17 additions and 26 deletions

View File

@ -468,14 +468,15 @@ class ClientTestBase(testtools.TestCase):
values.append(line.split("|")[1].strip())
return values
def _create_server(self, name=None, with_network=True, add_cleanup=True,
**kwargs):
def _create_server(self, name=None, flavor=None, with_network=True,
add_cleanup=True, **kwargs):
name = name or self.name_generate(prefix='server')
if with_network:
nics = [{"net-id": self.network.id}]
else:
nics = None
server = self.client.servers.create(name, self.image, self.flavor,
flavor = flavor or self.flavor
server = self.client.servers.create(name, self.image, flavor,
nics=nics, **kwargs)
if add_cleanup:
self.addCleanup(server.delete)

View File

@ -20,23 +20,6 @@ class TestServersResize(base.ClientTestBase):
COMPUTE_API_VERSION = '2.1'
def _create_server(self, name, flavor):
"""Boots a server with the given name and flavor and waits for it to
be ACTIVE.
"""
params = (
"%(name)s --flavor %(flavor)s --image %(image)s --poll " % {
"name": self.name_generate(name),
"flavor": flavor,
"image": self.image.id})
# check to see if we have to pass in a network id
if self.multiple_networks:
params += ' --nic net-id=%s' % self.network.id
server_info = self.nova("boot", params=params)
server_id = self._get_value_from_the_table(server_info, "id")
self.addCleanup(self._cleanup_server, server_id)
return server_id
def _pick_alternate_flavor(self):
"""Given the flavor picked in the base class setup, this finds the
opposite flavor to use for a resize test. For example, if m1.nano is
@ -83,7 +66,8 @@ class TestServersResize(base.ClientTestBase):
"""Tests creating a server and resizes up and confirms the resize.
Compares quota before, during and after the resize.
"""
server_id = self._create_server('resize-up-confirm', self.flavor.name)
server_id = self._create_server('resize-up-confirm',
flavor=self.flavor.id).id
# get the starting quota now that we've created a server
starting_usage = self._get_absolute_limits()
# now resize up
@ -107,17 +91,22 @@ class TestServersResize(base.ClientTestBase):
"""Creates two flavors with different size ram but same size vcpus
and disk.
:returns: tuple of (larger_flavor_name, smaller_flavor_name)
:returns: tuple of 2 IDs which represents larger_flavor for resize and
smaller flavor.
"""
self.nova('flavor-create', params='resize-larger-flavor auto 128 0 1')
output = self.nova('flavor-create',
params='resize-larger-flavor auto 128 0 1')
larger_id = self._get_column_value_from_single_row_table(output, "ID")
self.addCleanup(
self.nova, 'flavor-delete', params='resize-larger-flavor')
self.nova('flavor-create', params='resize-smaller-flavor auto 64 0 1')
output = self.nova('flavor-create',
params='resize-smaller-flavor auto 64 0 1')
smaller_id = self._get_column_value_from_single_row_table(output, "ID")
self.addCleanup(
self.nova, 'flavor-delete', params='resize-smaller-flavor')
return 'resize-larger-flavor', 'resize-smaller-flavor'
return larger_id, smaller_id
def test_resize_down_revert(self):
"""Tests creating a server and resizes down and reverts the resize.
@ -128,7 +117,8 @@ class TestServersResize(base.ClientTestBase):
# 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)
server_id = self._create_server('resize-down-revert',
flavor=larger_flavor).id
# get the starting quota now that we've created a server
starting_usage = self._get_absolute_limits()
# now resize down