Unprovision iso ramdisk boot from test
The boot_iso ramdisk test unfortunately has been discovered to orphan occupied "nodes" after the test has executed. This change triggers the test to send a command to force the node to be unprovisioned at the end of the test. Closes-Bug: 2055469 Change-Id: Ib525fe099d5884f442cdc375c5a8d230710d20a4
This commit is contained in:
parent
7241770603
commit
80c6b5140a
|
@ -192,7 +192,12 @@ class BaremetalStandaloneManager(bm.BaremetalScenarioTest,
|
||||||
"""
|
"""
|
||||||
vifs = cls.get_node_vifs(node_id)
|
vifs = cls.get_node_vifs(node_id)
|
||||||
for vif in vifs:
|
for vif in vifs:
|
||||||
cls.baremetal_client.vif_detach(node_id, vif)
|
try:
|
||||||
|
cls.baremetal_client.vif_detach(node_id, vif)
|
||||||
|
except lib_exc.BadRequest:
|
||||||
|
# When the vif was already removed, such as the
|
||||||
|
# node was already unprovisioned.
|
||||||
|
pass
|
||||||
if force_delete:
|
if force_delete:
|
||||||
try:
|
try:
|
||||||
cls.ports_client.delete_port(vif)
|
cls.ports_client.delete_port(vif)
|
||||||
|
@ -873,8 +878,7 @@ class BaremetalStandaloneScenarioTest(BaremetalStandaloneManager):
|
||||||
self.assertTrue(self.ping_ip_address(self.node_ip,
|
self.assertTrue(self.ping_ip_address(self.node_ip,
|
||||||
should_succeed=True))
|
should_succeed=True))
|
||||||
|
|
||||||
@classmethod
|
def boot_node_ramdisk(self, ramdisk_ref, iso=False):
|
||||||
def boot_node_ramdisk(cls, ramdisk_ref, iso=False):
|
|
||||||
"""Boot ironic using a ramdisk node.
|
"""Boot ironic using a ramdisk node.
|
||||||
|
|
||||||
The following actions are executed:
|
The following actions are executed:
|
||||||
|
@ -890,11 +894,11 @@ class BaremetalStandaloneScenarioTest(BaremetalStandaloneManager):
|
||||||
us actually an ISO image.
|
us actually an ISO image.
|
||||||
"""
|
"""
|
||||||
if ramdisk_ref is None:
|
if ramdisk_ref is None:
|
||||||
ramdisk_ref = cls.image_ref
|
ramdisk_ref = self.image_ref
|
||||||
|
|
||||||
network, subnet, router = cls.create_networks()
|
network, subnet, router = self.create_networks()
|
||||||
n_port = cls.create_neutron_port(network_id=network['id'])
|
n_port = self.create_neutron_port(network_id=network['id'])
|
||||||
cls.vif_attach(node_id=cls.node['uuid'], vif_id=n_port['id'])
|
self.vif_attach(node_id=self.node['uuid'], vif_id=n_port['id'])
|
||||||
if iso:
|
if iso:
|
||||||
patch_path = '/instance_info/boot_iso'
|
patch_path = '/instance_info/boot_iso'
|
||||||
else:
|
else:
|
||||||
|
@ -905,22 +909,25 @@ class BaremetalStandaloneScenarioTest(BaremetalStandaloneManager):
|
||||||
patch = [{'path': patch_path,
|
patch = [{'path': patch_path,
|
||||||
'op': 'add',
|
'op': 'add',
|
||||||
'value': ramdisk_ref}]
|
'value': ramdisk_ref}]
|
||||||
cls.update_node(cls.node['uuid'], patch=patch)
|
self.update_node(self.node['uuid'], patch=patch)
|
||||||
cls.set_node_provision_state(cls.node['uuid'], 'active')
|
self.set_node_provision_state(self.node['uuid'], 'active')
|
||||||
|
self.addCleanup(
|
||||||
|
self.set_node_provision_state,
|
||||||
|
self.node['uuid'], 'deleted')
|
||||||
if CONF.validation.connect_method == 'floating':
|
if CONF.validation.connect_method == 'floating':
|
||||||
cls.node_ip = cls.add_floatingip_to_node(cls.node['uuid'])
|
self.node_ip = self.add_floatingip_to_node(self.node['uuid'])
|
||||||
elif CONF.validation.connect_method == 'fixed':
|
elif CONF.validation.connect_method == 'fixed':
|
||||||
cls.node_ip = cls.get_server_ip(cls.node['uuid'])
|
self.node_ip = self.get_server_ip(self.node['uuid'])
|
||||||
else:
|
else:
|
||||||
m = ('Configuration option "[validation]/connect_method" '
|
m = ('Configuration option "[validation]/connect_method" '
|
||||||
'must be set.')
|
'must be set.')
|
||||||
raise lib_exc.InvalidConfiguration(m)
|
raise lib_exc.InvalidConfiguration(m)
|
||||||
cls.wait_power_state(cls.node['uuid'],
|
self.wait_power_state(self.node['uuid'],
|
||||||
bm.BaremetalPowerStates.POWER_ON)
|
bm.BaremetalPowerStates.POWER_ON)
|
||||||
cls.wait_provisioning_state(cls.node['uuid'],
|
self.wait_provisioning_state(self.node['uuid'],
|
||||||
bm.BaremetalProvisionStates.ACTIVE,
|
bm.BaremetalProvisionStates.ACTIVE,
|
||||||
timeout=CONF.baremetal.active_timeout,
|
timeout=CONF.baremetal.active_timeout,
|
||||||
interval=30)
|
interval=30)
|
||||||
|
|
||||||
def boot_and_verify_ramdisk_node(self, ramdisk_ref=None, iso=False,
|
def boot_and_verify_ramdisk_node(self, ramdisk_ref=None, iso=False,
|
||||||
should_succeed=True):
|
should_succeed=True):
|
||||||
|
|
Loading…
Reference in New Issue