Merge "Crash controllers that don't hold an overcloud main VIP."

This commit is contained in:
Zuul 2021-03-10 16:13:44 +00:00 committed by Gerrit Code Review
commit 3f98bc12fd
2 changed files with 12 additions and 2 deletions

View File

@ -149,7 +149,7 @@ def disrupt_all_controller_nodes(disrupt_method=sh.hard_reset_method,
nodes = [node for node in nodes if node.name not in exclude_list] nodes = [node for node in nodes if node.name not in exclude_list]
for controller in nodes: for controller in nodes:
if disrupt_method in (sh.hard_reset_method, sh.soft_reset_method): if isinstance(disrupt_method, sh.RebootHostMethod):
reboot_node(controller.name, wait=sequentially, reboot_node(controller.name, wait=sequentially,
reboot_method=disrupt_method) reboot_method=disrupt_method)
else: else:
@ -228,7 +228,7 @@ def disrupt_controller_main_vip(disrupt_method=sh.hard_reset_method,
main_vip_controller = get_main_vip_controller(main_vip) main_vip_controller = get_main_vip_controller(main_vip)
if disrupt_method in (sh.hard_reset_method, sh.soft_reset_method): if isinstance(disrupt_method, sh.RebootHostMethod):
if inverse: if inverse:
reboot_all_controller_nodes(reboot_method=disrupt_method, reboot_all_controller_nodes(reboot_method=disrupt_method,
exclude_list=[main_vip_controller]) exclude_list=[main_vip_controller])
@ -257,6 +257,11 @@ def crash_controller_main_vip():
disrupt_controller_main_vip(disrupt_method=sh.crash_method) disrupt_controller_main_vip(disrupt_method=sh.crash_method)
def crash_controllers_non_main_vip():
disrupt_controller_main_vip(disrupt_method=sh.crash_method,
inverse=True)
def network_disrupt_controller_main_vip(): def network_disrupt_controller_main_vip():
disrupt_controller_main_vip(disrupt_method=network_disruption) disrupt_controller_main_vip(disrupt_method=network_disruption)
LOG.info('waiting 60s to avoid race conditions...') LOG.info('waiting 60s to avoid race conditions...')

View File

@ -104,6 +104,11 @@ class DisruptTripleoNodesTest(testtools.TestCase):
cloud_disruptions.crash_controller_main_vip() cloud_disruptions.crash_controller_main_vip()
overcloud_health_checks() overcloud_health_checks()
def test_crash_controller_non_main_vip(self):
overcloud_health_checks()
cloud_disruptions.crash_controllers_non_main_vip()
overcloud_health_checks()
@pacemaker.skip_if_fencing_not_deployed @pacemaker.skip_if_fencing_not_deployed
def test_network_disruptor_main_vip(self): def test_network_disruptor_main_vip(self):
overcloud_health_checks() overcloud_health_checks()