functional: Add '_create_server' helper
This is a *very* common pattern. Centralize it. Only a few users are added for now, but we can migrate more later (it's rather tedious work). Change-Id: I84c58de90dad6d86271767363aef90ddac0f1730 Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
This commit is contained in:
parent
824bc358c2
commit
5b36d8c054
|
@ -50,27 +50,6 @@ class TestDatabaseArchive(test_servers.ServersTestBase):
|
|||
'sqlite version too old for reliable SQLA foreign_keys')
|
||||
engine.connect().execute("PRAGMA foreign_keys = ON")
|
||||
|
||||
def _create_server(self):
|
||||
"""Creates a minimal test server via the compute API
|
||||
|
||||
Ensures the server is created and can be retrieved from the compute API
|
||||
and waits for it to be ACTIVE.
|
||||
|
||||
:returns: created server (dict)
|
||||
"""
|
||||
# Create a server
|
||||
server = self._build_server()
|
||||
created_server = self.api.post_server({'server': server})
|
||||
self.assertTrue(created_server['id'])
|
||||
created_server_id = created_server['id']
|
||||
|
||||
# Check it's there
|
||||
found_server = self.api.get_server(created_server_id)
|
||||
self.assertEqual(created_server_id, found_server['id'])
|
||||
|
||||
found_server = self._wait_for_state_change(found_server, 'ACTIVE')
|
||||
return found_server
|
||||
|
||||
def test_archive_deleted_rows(self):
|
||||
# Boots a server, deletes it, and then tries to archive it.
|
||||
server = self._create_server()
|
||||
|
|
|
@ -321,6 +321,36 @@ class InstanceHelperMixin(object):
|
|||
|
||||
return server
|
||||
|
||||
def _create_server(self, name=None, image_uuid=None, flavor_id=None,
|
||||
networks=None, az=None, host=None,
|
||||
expected_state='ACTIVE', api=None):
|
||||
"""Build and submit a request to the server create API.
|
||||
|
||||
:param name: A name for the server.
|
||||
:param image_uuid: The ID of an existing image.
|
||||
:param flavor_id: The ID of an existing flavor.
|
||||
:param networks: A dict of networks to attach or a string of 'none' or
|
||||
'auto'.
|
||||
:param az: The name of the availability zone the instance should
|
||||
request.
|
||||
:param host: The host to boot the instance on. Requires API
|
||||
microversion 2.74 or greater.
|
||||
:param expected_state: The expected end state.
|
||||
:param api: An API client to create the server with; defaults to
|
||||
'self.api'
|
||||
:returns: The response from the API containing the created server.
|
||||
"""
|
||||
# if forcing the server onto a host, we have to use the admin API
|
||||
if not api:
|
||||
api = self.api if not az else getattr(self, 'admin_api', self.api)
|
||||
|
||||
body = self._build_server(
|
||||
name, image_uuid, flavor_id, networks, az, host)
|
||||
|
||||
server = api.post_server({'server': body})
|
||||
|
||||
return self._wait_for_state_change(server, expected_state)
|
||||
|
||||
def _delete_server(self, server):
|
||||
"""Delete a server."""
|
||||
self.api.delete_server(server['id'])
|
||||
|
|
|
@ -70,23 +70,9 @@ class NUMAServersTest(NUMAServersTestBase):
|
|||
'resource_providers'][0]['uuid']
|
||||
|
||||
# Create server
|
||||
good_server = self._build_server(flavor_id=flavor_id)
|
||||
|
||||
post = {'server': good_server}
|
||||
|
||||
created_server = self.api.post_server(post)
|
||||
LOG.debug("created_server: %s", created_server)
|
||||
self.assertTrue(created_server['id'])
|
||||
created_server_id = created_server['id']
|
||||
|
||||
# Validate that the server has been created
|
||||
found_server = self.api.get_server(created_server_id)
|
||||
self.assertEqual(created_server_id, found_server['id'])
|
||||
|
||||
# It should also be in the all-servers list
|
||||
servers = self.api.get_servers()
|
||||
server_ids = [s['id'] for s in servers]
|
||||
self.assertIn(created_server_id, server_ids)
|
||||
created_server = self._create_server(
|
||||
flavor_id=flavor_id,
|
||||
expected_state=end_status)
|
||||
|
||||
# Validate the quota usage
|
||||
if filter_called_on_error and end_status == 'ACTIVE':
|
||||
|
@ -104,15 +90,13 @@ class NUMAServersTest(NUMAServersTestBase):
|
|||
else:
|
||||
self.assertFalse(self.mock_filter.called)
|
||||
|
||||
found_server = self._wait_for_state_change(found_server, end_status)
|
||||
|
||||
if expected_usage:
|
||||
compute_usage = self.placement_api.get(
|
||||
'/resource_providers/%s/usages' % compute_rp_uuid).body[
|
||||
'usages']
|
||||
self.assertEqual(expected_usage, compute_usage)
|
||||
|
||||
self.addCleanup(self._delete_server, found_server)
|
||||
self.addCleanup(self._delete_server, created_server)
|
||||
return created_server
|
||||
|
||||
def test_create_server_with_numa_topology(self):
|
||||
|
@ -376,12 +360,7 @@ class NUMAServersTest(NUMAServersTestBase):
|
|||
|
||||
# Create server
|
||||
flavor_a_id = self._create_flavor(extra_spec={})
|
||||
good_server = self._build_server(flavor_id=flavor_a_id)
|
||||
|
||||
post = {'server': good_server}
|
||||
|
||||
created_server = self.api.post_server(post)
|
||||
server = self._wait_for_state_change(created_server, 'ACTIVE')
|
||||
server = self._create_server(flavor_id=flavor_a_id)
|
||||
|
||||
original_host = server['OS-EXT-SRV-ATTR:host']
|
||||
|
||||
|
@ -760,16 +739,10 @@ class NUMAServersWithNetworksTest(NUMAServersTestBase):
|
|||
self.compute = self.start_service('compute', host='test_compute0')
|
||||
|
||||
# Create server
|
||||
good_server = self._build_server(flavor_id=flavor_id)
|
||||
good_server['networks'] = networks
|
||||
post = {'server': good_server}
|
||||
|
||||
created_server = self.api.post_server(post)
|
||||
LOG.debug("created_server: %s", created_server)
|
||||
|
||||
found_server = self.api.get_server(created_server['id'])
|
||||
|
||||
return self._wait_for_state_change(found_server, end_status)
|
||||
return self._create_server(
|
||||
flavor_id=flavor_id,
|
||||
networks=networks,
|
||||
expected_state=end_status)
|
||||
|
||||
def test_create_server_with_single_physnet(self):
|
||||
extra_spec = {'hw:numa_nodes': '1'}
|
||||
|
@ -908,12 +881,9 @@ class NUMAServersWithNetworksTest(NUMAServersTestBase):
|
|||
{'uuid': base.LibvirtNeutronFixture.network_1['id']},
|
||||
]
|
||||
|
||||
good_server = self._build_server(flavor_id=flavor_id)
|
||||
good_server['networks'] = networks
|
||||
post = {'server': good_server}
|
||||
|
||||
created_server = self.api.post_server(post)
|
||||
server = self._wait_for_state_change(created_server, 'ACTIVE')
|
||||
server = self._create_server(
|
||||
flavor_id=flavor_id,
|
||||
networks=networks)
|
||||
|
||||
original_host = server['OS-EXT-SRV-ATTR:host']
|
||||
|
||||
|
@ -928,7 +898,7 @@ class NUMAServersWithNetworksTest(NUMAServersTestBase):
|
|||
'.migrate_disk_and_power_off', return_value='{}'):
|
||||
self.api.post_server_action(server['id'], {'migrate': None})
|
||||
|
||||
server = self._wait_for_state_change(created_server, 'VERIFY_RESIZE')
|
||||
server = self._wait_for_state_change(server, 'VERIFY_RESIZE')
|
||||
|
||||
# We don't bother confirming the resize as we expect this to have
|
||||
# landed and all we want to know is whether the filter was correct
|
||||
|
|
|
@ -60,9 +60,6 @@ class RealTimeServersTest(base.ServersTestBase):
|
|||
'hw:cpu_realtime': 'yes',
|
||||
'hw:cpu_policy': 'dedicated',
|
||||
'hw:cpu_realtime_mask': '^1'})
|
||||
server = self._build_server(flavor_id=flavor_id)
|
||||
created = self.api.post_server({'server': server})
|
||||
server = self._create_server(flavor_id=flavor_id)
|
||||
|
||||
instance = self._wait_for_state_change(created, 'ACTIVE')
|
||||
|
||||
self._delete_server(instance)
|
||||
self._delete_server(server)
|
||||
|
|
|
@ -67,17 +67,12 @@ class SharedStorageProviderUsageTestCase(
|
|||
self.assertNotIn("DISK_GB",
|
||||
self._get_provider_inventory(self.host_uuid))
|
||||
|
||||
server_req_body = {
|
||||
'server': {
|
||||
'imageRef': '155d900f-4e14-4e4c-a73d-069cbf4541e6',
|
||||
'flavorRef': '1',
|
||||
'name': 'test_shared_storage_rp_configuration_with_cn_rp',
|
||||
'networks': 'none'
|
||||
}
|
||||
}
|
||||
# create server
|
||||
server = self.api.post_server(server_req_body)
|
||||
self._wait_for_state_change(server, 'ACTIVE')
|
||||
self._create_server(
|
||||
image_uuid='155d900f-4e14-4e4c-a73d-069cbf4541e6',
|
||||
flavor_id=1,
|
||||
networks='none',
|
||||
)
|
||||
|
||||
# get shared_rp and cn_rp usages
|
||||
shared_rp_usages = self._get_provider_usages(shared_RP['uuid'])
|
||||
|
@ -125,17 +120,11 @@ class SharedStorageProviderUsageTestCase(
|
|||
self.assertNotIn("DISK_GB",
|
||||
self._get_provider_inventory(self.host_uuid))
|
||||
|
||||
server_req_body = {
|
||||
'server': {
|
||||
'imageRef': '155d900f-4e14-4e4c-a73d-069cbf4541e6',
|
||||
'flavorRef': '1',
|
||||
'name': 'test_shared_storage_rp_configuration_with_cn_rp',
|
||||
'networks': 'none'
|
||||
}
|
||||
}
|
||||
# create server
|
||||
server = self.api.post_server(server_req_body)
|
||||
self._wait_for_state_change(server, 'ACTIVE')
|
||||
server = self._create_server(
|
||||
image_uuid='155d900f-4e14-4e4c-a73d-069cbf4541e6',
|
||||
flavor_id=1,
|
||||
networks='none'
|
||||
)
|
||||
|
||||
rebuild_image_ref = (
|
||||
nova.tests.unit.image.fake.AUTO_DISK_CONFIG_ENABLED_IMAGE_UUID)
|
||||
|
@ -187,18 +176,14 @@ class SharedStorageProviderUsageTestCase(
|
|||
# RP as soon as a shared RP with DISK_GB is created in the compute tree
|
||||
self.assertNotIn("DISK_GB",
|
||||
self._get_provider_inventory(self.host_uuid))
|
||||
org_image_id = '155d900f-4e14-4e4c-a73d-069cbf4541e6'
|
||||
server_req_body = {
|
||||
'server': {
|
||||
'imageRef': org_image_id,
|
||||
'flavorRef': '1',
|
||||
'name': 'test_shared_storage_rp_configuration_with_cn_rp',
|
||||
'networks': 'none'
|
||||
}
|
||||
}
|
||||
|
||||
# create server
|
||||
server = self.api.post_server(server_req_body)
|
||||
self._wait_for_state_change(server, 'ACTIVE')
|
||||
org_image_id = '155d900f-4e14-4e4c-a73d-069cbf4541e6'
|
||||
server = self._create_server(
|
||||
image_uuid=org_image_id,
|
||||
flavor_id=1,
|
||||
networks='none',
|
||||
)
|
||||
|
||||
rebuild_image_ref = (
|
||||
nova.tests.unit.image.fake.AUTO_DISK_CONFIG_ENABLED_IMAGE_UUID)
|
||||
|
|
|
@ -124,15 +124,13 @@ class VPMEMTestBase(integrated_helpers.LibvirtProviderUsageBaseTestCase):
|
|||
|
||||
return compute
|
||||
|
||||
def _create_server(self, flavor_id, hostname):
|
||||
server_req = self._build_server(
|
||||
def _create_server(self, flavor_id, hostname, expected_state):
|
||||
return super(VPMEMTestBase, self)._create_server(
|
||||
image_uuid='155d900f-4e14-4e4c-a73d-069cbf4541e6',
|
||||
flavor_id=flavor_id,
|
||||
networks='none')
|
||||
server_req['availability_zone'] = 'nova:%s' % hostname
|
||||
LOG.info('booting on %s', hostname)
|
||||
created_server = self.api.post_server({'server': server_req})
|
||||
return created_server
|
||||
networks='none',
|
||||
az='nova:%s' % hostname,
|
||||
expected_state=expected_state)
|
||||
|
||||
def _delete_server(self, server):
|
||||
self.api.delete_server(server['id'])
|
||||
|
@ -157,24 +155,25 @@ class VPMEMTests(VPMEMTestBase):
|
|||
cn1_uuid = self._get_provider_uuid_by_host(self.compute1.host)
|
||||
|
||||
# Boot two servers with pmem
|
||||
server1 = self._create_server(self.flavor, self.compute1.host)
|
||||
self._wait_for_state_change(server1, 'ACTIVE')
|
||||
server1 = self._create_server(self.flavor, self.compute1.host,
|
||||
expected_state='ACTIVE')
|
||||
self._check_vpmem_allocations({'CUSTOM_PMEM_NAMESPACE_SMALL': 1},
|
||||
server1['id'], cn1_uuid)
|
||||
server2 = self._create_server(self.flavor, self.compute1.host)
|
||||
self._wait_for_state_change(server2, 'ACTIVE')
|
||||
|
||||
server2 = self._create_server(self.flavor, self.compute1.host,
|
||||
expected_state='ACTIVE')
|
||||
self._check_vpmem_allocations({'CUSTOM_PMEM_NAMESPACE_SMALL': 1},
|
||||
server2['id'], cn1_uuid)
|
||||
|
||||
# 'SMALL' VPMEM resource has used up
|
||||
server3 = self._create_server(self.flavor, self.compute1.host)
|
||||
self._wait_for_state_change(server3, 'ERROR')
|
||||
server3 = self._create_server(self.flavor, self.compute1.host,
|
||||
expected_state='ERROR')
|
||||
|
||||
# Delete server2, one 'SMALL' VPMEM will be released
|
||||
self._delete_server(server2)
|
||||
self._wait_until_deleted(server2)
|
||||
server3 = self._create_server(self.flavor, self.compute1.host)
|
||||
self._wait_for_state_change(server3, 'ACTIVE')
|
||||
server3 = self._create_server(self.flavor, self.compute1.host,
|
||||
expected_state='ACTIVE')
|
||||
self._check_vpmem_allocations({'CUSTOM_PMEM_NAMESPACE_SMALL': 1},
|
||||
server3['id'], cn1_uuid)
|
||||
|
||||
|
@ -222,8 +221,8 @@ class VPMEMResizeTests(VPMEMTestBase):
|
|||
cn2_uuid = self._get_provider_uuid_by_host(self.compute2.host)
|
||||
|
||||
# Boot one server with pmem, then resize the server
|
||||
server = self._create_server(self.flavor1, self.compute1.host)
|
||||
self._wait_for_state_change(server, 'ACTIVE')
|
||||
server = self._create_server(self.flavor1, self.compute1.host,
|
||||
expected_state='ACTIVE')
|
||||
self._check_vpmem_allocations({'CUSTOM_PMEM_NAMESPACE_SMALL': 1},
|
||||
server['id'], cn1_uuid)
|
||||
|
||||
|
@ -257,8 +256,8 @@ class VPMEMResizeTests(VPMEMTestBase):
|
|||
cn1_uuid = self._get_provider_uuid_by_host(self.compute1.host)
|
||||
|
||||
# Boot one server with pmem, then resize the server
|
||||
server = self._create_server(self.flavor1, self.compute1.host)
|
||||
self._wait_for_state_change(server, 'ACTIVE')
|
||||
server = self._create_server(self.flavor1, self.compute1.host,
|
||||
expected_state='ACTIVE')
|
||||
self._check_vpmem_allocations({'CUSTOM_PMEM_NAMESPACE_SMALL': 1},
|
||||
server['id'], cn1_uuid)
|
||||
|
||||
|
|
|
@ -79,16 +79,6 @@ class NonPersistentFieldNotResetTest(
|
|||
'host3': 'host1'}
|
||||
return target_host[host]
|
||||
|
||||
def _create_server(self):
|
||||
# Create a server, it doesn't matter on which host it builds.
|
||||
server = self._build_server(
|
||||
image_uuid='155d900f-4e14-4e4c-a73d-069cbf4541e6',
|
||||
networks='none')
|
||||
server = self.api.post_server({'server': server})
|
||||
server = self._wait_for_state_change(server, 'ACTIVE')
|
||||
|
||||
return server
|
||||
|
||||
def _remove_is_bfv_in_request_spec(self, server_id):
|
||||
# Now let's hack the RequestSpec.is_bfv field to mimic migrating an
|
||||
# old instance created before RequestSpec.is_bfv was set in the API,
|
||||
|
@ -102,7 +92,9 @@ class NonPersistentFieldNotResetTest(
|
|||
self.assertNotIn('is_bfv', reqspec)
|
||||
|
||||
def test_cold_migrate(self):
|
||||
server = self._create_server()
|
||||
server = self._create_server(
|
||||
image_uuid='155d900f-4e14-4e4c-a73d-069cbf4541e6',
|
||||
networks='none')
|
||||
original_host = server['OS-EXT-SRV-ATTR:host']
|
||||
target_host = self._get_target_host(original_host)
|
||||
self._remove_is_bfv_in_request_spec(server['id'])
|
||||
|
@ -132,7 +124,9 @@ class NonPersistentFieldNotResetTest(
|
|||
self.assertIs(reqspec.is_bfv, False)
|
||||
|
||||
def test_evacuate(self):
|
||||
server = self._create_server()
|
||||
server = self._create_server(
|
||||
image_uuid='155d900f-4e14-4e4c-a73d-069cbf4541e6',
|
||||
networks='none')
|
||||
original_host = server['OS-EXT-SRV-ATTR:host']
|
||||
target_host = self._get_target_host(original_host)
|
||||
self._remove_is_bfv_in_request_spec(server['id'])
|
||||
|
|
|
@ -46,22 +46,14 @@ class FillVirtualInterfaceListMigration(
|
|||
fake_image.stub_out_image_service(self)
|
||||
self.addCleanup(fake_image.FakeImageService_reset)
|
||||
|
||||
def _create_server(self):
|
||||
server = self.api.post_server({
|
||||
'server': {
|
||||
'flavorRef': '1',
|
||||
'name': 'test_fill_vifs_migration',
|
||||
'networks': [{
|
||||
'uuid': nova_fixtures.NeutronFixture.network_1['id']
|
||||
}],
|
||||
'imageRef': fake_image.get_valid_image_id()
|
||||
}
|
||||
})
|
||||
return self._wait_for_state_change(server, 'ACTIVE')
|
||||
|
||||
def test_fill_vifs_migration(self):
|
||||
# Create a test server.
|
||||
self._create_server()
|
||||
self._create_server(
|
||||
flavor_id=1,
|
||||
networks=[{
|
||||
'uuid': nova_fixtures.NeutronFixture.network_1['id'],
|
||||
}],
|
||||
)
|
||||
# Run the online data migration which will create a (soft-deleted)
|
||||
# marker record.
|
||||
ctxt = nova_context.get_admin_context()
|
||||
|
|
|
@ -35,9 +35,7 @@ class DeletedServerAllocationRevertTest(
|
|||
"""Creates and return a server along with a source host and target
|
||||
host.
|
||||
"""
|
||||
server = self._build_server(networks='none')
|
||||
server = self.api.post_server({'server': server})
|
||||
server = self._wait_for_state_change(server, 'ACTIVE')
|
||||
server = super()._create_server(networks='none')
|
||||
source_host = server['OS-EXT-SRV-ATTR:host']
|
||||
target_host = 'host2' if source_host == 'host1' else 'host1'
|
||||
return server, source_host, target_host
|
||||
|
|
|
@ -73,11 +73,9 @@ class TestAvailabilityZoneScheduling(
|
|||
|
||||
def _create_server(self, name):
|
||||
# Create a server, it doesn't matter which host it ends up in.
|
||||
server_body = self._build_server(
|
||||
server = super(TestAvailabilityZoneScheduling, self)._create_server(
|
||||
flavor_id=self.flavor1,
|
||||
networks='none')
|
||||
server = self.api.post_server({'server': server_body})
|
||||
server = self._wait_for_state_change(server, 'ACTIVE')
|
||||
networks='none',)
|
||||
original_host = server['OS-EXT-SRV-ATTR:host']
|
||||
# Assert the server has the AZ set (not None or 'nova').
|
||||
expected_zone = 'zone1' if original_host == 'host1' else 'zone2'
|
||||
|
|
|
@ -141,7 +141,5 @@ class CrossAZAttachTestCase(test.TestCase,
|
|||
a noop if there are no volumes in the server create request.
|
||||
"""
|
||||
self.flags(cross_az_attach=False, group='cinder')
|
||||
server = self._build_server(az=self.az)
|
||||
server = self.api.post_server({'server': server})
|
||||
server = self._wait_for_state_change(server, 'ACTIVE')
|
||||
server = self._create_server(az=self.az)
|
||||
self.assertEqual(self.az, server['OS-EXT-AZ:availability_zone'])
|
||||
|
|
|
@ -19,27 +19,6 @@ from nova.tests.functional import test_servers
|
|||
class InstanceActionsTestV2(test_servers.ServersTestBase):
|
||||
"""Tests Instance Actions API"""
|
||||
|
||||
def _create_server(self):
|
||||
"""Creates a minimal test server via the compute API
|
||||
|
||||
Ensures the server is created and can be retrieved from the compute API
|
||||
and waits for it to be ACTIVE.
|
||||
|
||||
:returns: created server (dict)
|
||||
"""
|
||||
|
||||
# Create a server
|
||||
server = self._build_server()
|
||||
created_server = self.api.post_server({'server': server})
|
||||
self.assertTrue(created_server['id'])
|
||||
created_server_id = created_server['id']
|
||||
|
||||
# Check it's there
|
||||
found_server = self.api.get_server(created_server_id)
|
||||
self.assertEqual(created_server_id, found_server['id'])
|
||||
|
||||
return self._wait_for_state_change(found_server, 'ACTIVE')
|
||||
|
||||
def test_get_instance_actions(self):
|
||||
server = self._create_server()
|
||||
actions = self.api.get_instance_actions(server['id'])
|
||||
|
|
|
@ -60,11 +60,10 @@ class TestMultiattachVolumes(integrated_helpers._IntegratedTestBase):
|
|||
self.assertEqual(volume_id, attachments[0]['volumeId'])
|
||||
|
||||
# Now create a second server and attach the same volume to that.
|
||||
create_req = self._build_server(
|
||||
image_uuid='155d900f-4e14-4e4c-a73d-069cbf4541e6', flavor_id='1',
|
||||
server2 = self._create_server(
|
||||
image_uuid='155d900f-4e14-4e4c-a73d-069cbf4541e6',
|
||||
flavor_id='1',
|
||||
networks='none')
|
||||
server2 = self.api.post_server({'server': create_req})
|
||||
self._wait_for_state_change(server2, 'ACTIVE')
|
||||
# Attach the volume to the second server.
|
||||
self.api.api_post('/servers/%s/os-volume_attachments' % server2['id'],
|
||||
{'volumeAttachment': {'volumeId': volume_id}})
|
||||
|
|
|
@ -68,10 +68,7 @@ class HostStatusPolicyTestCase(test.TestCase,
|
|||
if networks:
|
||||
# Starting with microversion 2.37 the networks field is required.
|
||||
kwargs['networks'] = networks
|
||||
server = self._build_server(**kwargs)
|
||||
server = self.api.post_server({'server': server})
|
||||
server = self._wait_for_state_change(server, 'ACTIVE')
|
||||
return server
|
||||
return self._create_server(**kwargs)
|
||||
|
||||
@staticmethod
|
||||
def _get_server(resp):
|
||||
|
|
|
@ -50,18 +50,12 @@ class MultiCellSchedulerTestCase(test.TestCase,
|
|||
self.addCleanup(fake_image.FakeImageService_reset)
|
||||
|
||||
def _test_create_and_migrate(self, expected_status, az=None):
|
||||
server = self._build_server(az=az)
|
||||
post = {'server': server}
|
||||
# If forcing the server onto a host we have to use the admin API.
|
||||
api = self.admin_api if az else self.api
|
||||
created_server = api.post_server(post)
|
||||
server = self._create_server(az=az)
|
||||
|
||||
# Wait for it to finish being created
|
||||
found_server = self._wait_for_state_change(created_server, 'ACTIVE')
|
||||
return self.admin_api.api_post(
|
||||
'/servers/%s/action' % found_server['id'],
|
||||
'/servers/%s/action' % server['id'],
|
||||
{'migrate': None},
|
||||
check_response_status=[expected_status]), found_server
|
||||
check_response_status=[expected_status]), server
|
||||
|
||||
def test_migrate_between_cells(self):
|
||||
"""Verify that migrating between cells is not allowed.
|
||||
|
|
|
@ -418,12 +418,10 @@ class ProviderTreeTests(integrated_helpers.ProviderUsageBaseTestCase):
|
|||
self.assertNotIn('FOO', traits)
|
||||
|
||||
def _create_instance(self, flavor):
|
||||
server_req = self._build_server(
|
||||
return self._create_server(
|
||||
image_uuid='155d900f-4e14-4e4c-a73d-069cbf4541e6',
|
||||
flavor_id=flavor['id'],
|
||||
networks='none', az='nova:host1')
|
||||
inst = self.api.post_server({'server': server_req})
|
||||
return self._wait_for_state_change(inst, 'ACTIVE')
|
||||
|
||||
def test_reshape(self):
|
||||
"""On startup, virt driver signals it needs to reshape, then does so.
|
||||
|
|
|
@ -29,8 +29,8 @@ class InterfaceFullstack(test_servers.ServersTestBase):
|
|||
|
||||
def test_detach_interface_negative_invalid_state(self):
|
||||
# Create server with network
|
||||
created_server = self.api.post_server({'server': self._build_server(
|
||||
networks=[{'uuid': '3cb9bc59-5699-4588-a4b1-b87f96708bc6'}])})
|
||||
created_server = self._create_server(
|
||||
networks=[{'uuid': '3cb9bc59-5699-4588-a4b1-b87f96708bc6'}])
|
||||
created_server_id = created_server['id']
|
||||
found_server = self._wait_for_state_change(created_server, 'ACTIVE')
|
||||
|
||||
|
|
Loading…
Reference in New Issue