mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
CLOUDSTACK-3655: RvR tests fail when handling switchover
During switchover of master->backup->master, the rvr goes through UNKNOWN, FAULT, MASTER/BACKUP. In case of improper transition the state is FAULT. Include additional state check in the tests. (cherry picked from commit 0c699394f246bc2b052a22d88b3f938ba8a72770)
This commit is contained in:
parent
ae2ee95069
commit
62c54e77a3
@ -1051,7 +1051,6 @@ class TestRvRRedundancy(cloudstackTestCase):
|
||||
self.debug("Listing routers for network: %s" % self.network.name)
|
||||
routers = Router.list(
|
||||
self.apiclient,
|
||||
networkid=self.network.id,
|
||||
id=master_router.id,
|
||||
listall=True
|
||||
)
|
||||
@ -1060,28 +1059,27 @@ class TestRvRRedundancy(cloudstackTestCase):
|
||||
True,
|
||||
"list router should return Master and backup routers"
|
||||
)
|
||||
self.assertEqual(
|
||||
routers[0].redundantstate,
|
||||
'UNKNOWN',
|
||||
"Redundant state of the router should be UNKNOWN"
|
||||
)
|
||||
self.assertIn(
|
||||
routers[0].redundantstate,
|
||||
['UNKNOWN', 'FAULT'],
|
||||
"Redundant state of the master router should be UNKNOWN/FAULT but is %s" % routers[0].redundantstate
|
||||
)
|
||||
|
||||
self.debug("Listing routers for network: %s" % self.network.name)
|
||||
self.debug("Checking state of the backup router in %s" % self.network.name)
|
||||
routers = Router.list(
|
||||
self.apiclient,
|
||||
networkid=self.network.id,
|
||||
id=backup_router.id,
|
||||
listall=True
|
||||
)
|
||||
self.assertEqual(
|
||||
isinstance(routers, list),
|
||||
True,
|
||||
"list router should return Master and backup routers"
|
||||
"list router should return backup router"
|
||||
)
|
||||
self.assertEqual(
|
||||
routers[0].redundantstate,
|
||||
'MASTER',
|
||||
"Redundant state of the router should be MASTER"
|
||||
"Redundant state of the router should be MASTER but is %s" % routers[0].redundantstate
|
||||
)
|
||||
|
||||
self.debug("Starting the old MASTER router")
|
||||
@ -1089,12 +1087,11 @@ class TestRvRRedundancy(cloudstackTestCase):
|
||||
Router.start(self.apiclient, id=master_router.id)
|
||||
self.debug("old MASTER router started")
|
||||
except Exception as e:
|
||||
self.fail("Failed to stop master router: %s" % e)
|
||||
self.fail("Failed to start master router: %s" % e)
|
||||
|
||||
self.debug("Listing routers for network: %s" % self.network.name)
|
||||
self.debug("Checking state of the master router in %s" % self.network.name)
|
||||
routers = Router.list(
|
||||
self.apiclient,
|
||||
networkid=self.network.id,
|
||||
id=master_router.id,
|
||||
listall=True
|
||||
)
|
||||
@ -1106,7 +1103,7 @@ class TestRvRRedundancy(cloudstackTestCase):
|
||||
self.assertEqual(
|
||||
routers[0].redundantstate,
|
||||
'BACKUP',
|
||||
"Redundant state of the router should be BACKUP"
|
||||
"Redundant state of the router should be BACKUP but is %s" % routers[0].redundantstate
|
||||
)
|
||||
self.assertEqual(
|
||||
master_router.publicip,
|
||||
@ -1171,10 +1168,9 @@ class TestRvRRedundancy(cloudstackTestCase):
|
||||
except Exception as e:
|
||||
self.fail("Failed to stop backup router: %s" % e)
|
||||
|
||||
self.debug("Listing routers for network: %s" % self.network.name)
|
||||
self.debug("Checking state of the backup router in %s" % self.network.name)
|
||||
routers = Router.list(
|
||||
self.apiclient,
|
||||
networkid=self.network.id,
|
||||
id=backup_router.id,
|
||||
listall=True
|
||||
)
|
||||
@ -1183,16 +1179,15 @@ class TestRvRRedundancy(cloudstackTestCase):
|
||||
True,
|
||||
"list router should return Master and backup routers"
|
||||
)
|
||||
self.assertEqual(
|
||||
routers[0].redundantstate,
|
||||
'UNKNOWN',
|
||||
"Redundant state of the router should be UNKNOWN"
|
||||
)
|
||||
self.assertIn(
|
||||
routers[0].redundantstate,
|
||||
['UNKNOWN', 'FAULT'],
|
||||
"Redundant state of the backup router should be UNKNOWN/FAULT but is %s" % routers[0].redundantstate
|
||||
)
|
||||
|
||||
self.debug("Listing routers for network: %s" % self.network.name)
|
||||
self.debug("Checking state of the master router in %s" % self.network.name)
|
||||
routers = Router.list(
|
||||
self.apiclient,
|
||||
networkid=self.network.id,
|
||||
id=master_router.id,
|
||||
listall=True
|
||||
)
|
||||
@ -1204,7 +1199,7 @@ class TestRvRRedundancy(cloudstackTestCase):
|
||||
self.assertEqual(
|
||||
routers[0].redundantstate,
|
||||
'MASTER',
|
||||
"Redundant state of the router should be MASTER"
|
||||
"Redundant state of the router should be MASTER but is %s" % routers[0].redundantstate
|
||||
)
|
||||
|
||||
self.debug("Starting the old BACKUP router")
|
||||
@ -1214,10 +1209,9 @@ class TestRvRRedundancy(cloudstackTestCase):
|
||||
except Exception as e:
|
||||
self.fail("Failed to stop master router: %s" % e)
|
||||
|
||||
self.debug("Listing routers for network: %s" % self.network.name)
|
||||
self.debug("Checking state of the backup router in %s" % self.network.name)
|
||||
routers = Router.list(
|
||||
self.apiclient,
|
||||
networkid=self.network.id,
|
||||
id=backup_router.id,
|
||||
listall=True
|
||||
)
|
||||
@ -1229,7 +1223,7 @@ class TestRvRRedundancy(cloudstackTestCase):
|
||||
self.assertEqual(
|
||||
routers[0].redundantstate,
|
||||
'BACKUP',
|
||||
"Redundant state of the router should be BACKUP"
|
||||
"Redundant state of the router should be BACKUP but is %s" % routers[0].redundantstate
|
||||
)
|
||||
self.assertEqual(
|
||||
backup_router.publicip,
|
||||
@ -1288,10 +1282,9 @@ class TestRvRRedundancy(cloudstackTestCase):
|
||||
except Exception as e:
|
||||
self.fail("Failed to reboot MASTER router: %s" % e)
|
||||
|
||||
self.debug("Listing routers for network: %s" % self.network.name)
|
||||
self.debug("Checking state of the master router in %s" % self.network.name)
|
||||
routers = Router.list(
|
||||
self.apiclient,
|
||||
networkid=self.network.id,
|
||||
id=master_router.id,
|
||||
listall=True
|
||||
)
|
||||
@ -1303,13 +1296,12 @@ class TestRvRRedundancy(cloudstackTestCase):
|
||||
self.assertEqual(
|
||||
routers[0].redundantstate,
|
||||
'BACKUP',
|
||||
"Redundant state of the router should be BACKUP"
|
||||
"Redundant state of the router should be BACKUP but is %s" % routers[0].redundantstate
|
||||
)
|
||||
|
||||
self.debug("Listing routers for network: %s" % self.network.name)
|
||||
self.debug("Checking state of the backup router in %s" % self.network.name)
|
||||
routers = Router.list(
|
||||
self.apiclient,
|
||||
networkid=self.network.id,
|
||||
id=backup_router.id,
|
||||
listall=True
|
||||
)
|
||||
@ -1321,7 +1313,7 @@ class TestRvRRedundancy(cloudstackTestCase):
|
||||
self.assertEqual(
|
||||
routers[0].redundantstate,
|
||||
'MASTER',
|
||||
"Redundant state of the router should be MASTER"
|
||||
"Redundant state of the router should be MASTER but is %s" % routers[0].redundantstate
|
||||
)
|
||||
self.assertEqual(
|
||||
master_router.publicip,
|
||||
@ -1374,16 +1366,15 @@ class TestRvRRedundancy(cloudstackTestCase):
|
||||
master_router = routers[1]
|
||||
backup_router = routers[0]
|
||||
|
||||
self.debug("Rebooting the backuo router")
|
||||
self.debug("Rebooting the backup router")
|
||||
try:
|
||||
Router.reboot(self.apiclient, id=backup_router.id)
|
||||
except Exception as e:
|
||||
self.fail("Failed to reboot BACKUP router: %s" % e)
|
||||
|
||||
self.debug("Listing routers for network: %s" % self.network.name)
|
||||
self.debug("Checking state of the backup router in %s" % self.network.name)
|
||||
routers = Router.list(
|
||||
self.apiclient,
|
||||
networkid=self.network.id,
|
||||
id=backup_router.id,
|
||||
listall=True
|
||||
)
|
||||
@ -1395,13 +1386,12 @@ class TestRvRRedundancy(cloudstackTestCase):
|
||||
self.assertEqual(
|
||||
routers[0].redundantstate,
|
||||
'BACKUP',
|
||||
"Redundant state of the router should be BACKUP"
|
||||
"Redundant state of the router should be BACKUP but is %s" % routers[0].redundantstate
|
||||
)
|
||||
|
||||
self.debug("Listing routers for network: %s" % self.network.name)
|
||||
self.debug("Checking state of the master router in %s" % self.network.name)
|
||||
routers = Router.list(
|
||||
self.apiclient,
|
||||
networkid=self.network.id,
|
||||
id=master_router.id,
|
||||
listall=True
|
||||
)
|
||||
@ -1413,7 +1403,7 @@ class TestRvRRedundancy(cloudstackTestCase):
|
||||
self.assertEqual(
|
||||
routers[0].redundantstate,
|
||||
'MASTER',
|
||||
"Redundant state of the router should be MASTER"
|
||||
"Redundant state of the router should be MASTER but is %s" % routers[0].redundantstate
|
||||
)
|
||||
self.assertEqual(
|
||||
master_router.publicip,
|
||||
@ -1472,10 +1462,9 @@ class TestRvRRedundancy(cloudstackTestCase):
|
||||
except Exception as e:
|
||||
self.fail("Failed to stop BACKUP router: %s" % e)
|
||||
|
||||
self.debug("Listing routers for network: %s" % self.network.name)
|
||||
self.debug("Checking state of the backup router in %s" % self.network.name)
|
||||
routers = Router.list(
|
||||
self.apiclient,
|
||||
networkid=self.network.id,
|
||||
id=backup_router.id,
|
||||
listall=True
|
||||
)
|
||||
@ -1484,11 +1473,11 @@ class TestRvRRedundancy(cloudstackTestCase):
|
||||
True,
|
||||
"list router should return Master and backup routers"
|
||||
)
|
||||
self.assertEqual(
|
||||
routers[0].redundantstate,
|
||||
'UNKNOWN',
|
||||
"Redundant state of the router should be UNKNOWN"
|
||||
)
|
||||
self.assertIn(
|
||||
routers[0].redundantstate,
|
||||
['UNKNOWN', 'FAULT'],
|
||||
"Redundant state of the backup router should be UNKNOWN/FAULT but is %s" % routers[0].redundantstate
|
||||
)
|
||||
|
||||
# Spawn an instance in that network
|
||||
vm_2 = VirtualMachine.create(
|
||||
@ -1518,10 +1507,9 @@ class TestRvRRedundancy(cloudstackTestCase):
|
||||
"Vm should be in running state after deployment"
|
||||
)
|
||||
|
||||
self.debug("Listing routers for network: %s" % self.network.name)
|
||||
self.debug("Checking state of the backup router in %s" % self.network.name)
|
||||
routers = Router.list(
|
||||
self.apiclient,
|
||||
networkid=self.network.id,
|
||||
id=backup_router.id,
|
||||
listall=True
|
||||
)
|
||||
@ -1533,6 +1521,6 @@ class TestRvRRedundancy(cloudstackTestCase):
|
||||
self.assertEqual(
|
||||
routers[0].redundantstate,
|
||||
'BACKUP',
|
||||
"Redundant state of the router should be BACKUP"
|
||||
"Redundant state of the router should be BACKUP but is %s" % routers[0].redundantstate
|
||||
)
|
||||
return
|
||||
|
||||
@ -191,9 +191,9 @@ class TestRvRDeploymentPlanning(cloudstackTestCase):
|
||||
self._cleanup.insert(0, self.account)
|
||||
return
|
||||
|
||||
@attr(tags=["advanced", "advancedns", "ssh"])
|
||||
@attr(tags=["advanced", "advancedns"])
|
||||
def test_RvR_multipods(self):
|
||||
"""Test RvR with muti pods
|
||||
"""Test RvR with multi pods
|
||||
"""
|
||||
|
||||
# Steps to validate
|
||||
@ -323,9 +323,9 @@ class TestRvRDeploymentPlanning(cloudstackTestCase):
|
||||
)
|
||||
return
|
||||
|
||||
@attr(tags=["advanced", "advancedns", "ssh"])
|
||||
@attr(tags=["advanced", "advancedns"])
|
||||
def test_RvR_multicluster(self):
|
||||
"""Test RvR with muti clusters
|
||||
"""Test RvR with multi clusters
|
||||
"""
|
||||
|
||||
# Steps to validate
|
||||
@ -526,9 +526,9 @@ class TestRvRDeploymentPlanning(cloudstackTestCase):
|
||||
self.apiclient.updatePod(cmd)
|
||||
return
|
||||
|
||||
@attr(tags=["advanced", "advancedns", "ssh"])
|
||||
@attr(tags=["advanced", "advancedns"])
|
||||
def test_RvR_multiprimarystorage(self):
|
||||
"""Test RvR with muti primary storage
|
||||
"""Test RvR with multi primary storage
|
||||
"""
|
||||
|
||||
# Steps to validate
|
||||
@ -770,7 +770,7 @@ class TestRvRDeploymentPlanning(cloudstackTestCase):
|
||||
|
||||
@attr(tags=["advanced", "advancedns", "ssh"])
|
||||
def test_RvR_multihosts(self):
|
||||
"""Test RvR with muti hosts
|
||||
"""Test RvR with multi hosts
|
||||
"""
|
||||
|
||||
# Steps to validate
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user