mirror of https://github.com/apache/cloudstack.git
CLOUDSTACK-9154 - Sets the pub interface down when all guest nets are gone
- Refactors the set_backup, set_master and set_fault methods to have better names for the variable - Increase the sleep on the test in order to wait for the routers to be ready. It's now 3 times the GC settings
This commit is contained in:
parent
f5a6dee8dd
commit
5ef3144fdf
|
|
@ -84,6 +84,7 @@ class CsRedundant(object):
|
|||
|
||||
# No redundancy if there is no guest network
|
||||
if guest is None:
|
||||
self.set_backup()
|
||||
self._redundant_off()
|
||||
return
|
||||
|
||||
|
|
@ -226,17 +227,21 @@ class CsRedundant(object):
|
|||
|
||||
self.set_lock()
|
||||
logging.info("Router switched to fault mode")
|
||||
ads = [o for o in self.address.get_ips() if o.is_public()]
|
||||
for o in ads:
|
||||
CsHelper.execute("ifconfig %s down" % o.get_device())
|
||||
|
||||
ips = [ip for ip in self.address.get_ips() if ip.is_public()]
|
||||
for ip in ips:
|
||||
CsHelper.execute("ifconfig %s down" % ip.get_device())
|
||||
|
||||
cmd = "%s -C %s" % (self.CONNTRACKD_BIN, self.CONNTRACKD_CONF)
|
||||
CsHelper.execute("%s -s" % cmd)
|
||||
CsHelper.service("ipsec", "stop")
|
||||
CsHelper.service("xl2tpd", "stop")
|
||||
CsHelper.service("dnsmasq", "stop")
|
||||
ads = [o for o in self.address.get_ips() if o.needs_vrrp()]
|
||||
for o in ads:
|
||||
CsPasswdSvc(o.get_gateway()).stop()
|
||||
|
||||
ips = [ip for ip in self.address.get_ips() if ip.needs_vrrp()]
|
||||
for ip in ips:
|
||||
CsPasswdSvc(ip.get_gateway()).stop()
|
||||
|
||||
self.cl.set_fault_state()
|
||||
self.cl.save()
|
||||
self.release_lock()
|
||||
|
|
@ -250,22 +255,25 @@ class CsRedundant(object):
|
|||
|
||||
self.set_lock()
|
||||
logging.debug("Setting router to backup")
|
||||
ads = [o for o in self.address.get_ips() if o.is_public()]
|
||||
|
||||
dev = ''
|
||||
for o in ads:
|
||||
if dev == o.get_device():
|
||||
ips = [ip for ip in self.address.get_ips() if ip.is_public()]
|
||||
for ip in ips:
|
||||
if dev == ip.get_device():
|
||||
continue
|
||||
logging.info("Bringing public interface %s down" % o.get_device())
|
||||
cmd2 = "ip link set %s down" % o.get_device()
|
||||
logging.info("Bringing public interface %s down" % ip.get_device())
|
||||
cmd2 = "ip link set %s down" % ip.get_device()
|
||||
CsHelper.execute(cmd2)
|
||||
dev = o.get_device()
|
||||
dev = ip.get_device()
|
||||
|
||||
cmd = "%s -C %s" % (self.CONNTRACKD_BIN, self.CONNTRACKD_CONF)
|
||||
CsHelper.execute("%s -d" % cmd)
|
||||
CsHelper.service("ipsec", "stop")
|
||||
CsHelper.service("xl2tpd", "stop")
|
||||
ads = [o for o in self.address.get_ips() if o.needs_vrrp()]
|
||||
for o in ads:
|
||||
CsPasswdSvc(o.get_gateway()).stop()
|
||||
|
||||
ips = [ip for ip in self.address.get_ips() if ip.needs_vrrp()]
|
||||
for ip in ips:
|
||||
CsPasswdSvc(ip.get_gateway()).stop()
|
||||
CsHelper.service("dnsmasq", "stop")
|
||||
|
||||
self.cl.set_master_state(False)
|
||||
|
|
@ -282,13 +290,13 @@ class CsRedundant(object):
|
|||
self.set_lock()
|
||||
logging.debug("Setting router to master")
|
||||
|
||||
ads = [o for o in self.address.get_ips() if o.is_public()]
|
||||
dev = ''
|
||||
ips = [ip for ip in self.address.get_ips() if ip.is_public()]
|
||||
route = CsRoute()
|
||||
for o in ads:
|
||||
if dev == o.get_device():
|
||||
for ip in ips:
|
||||
if dev == ip.get_device():
|
||||
continue
|
||||
dev = o.get_device()
|
||||
dev = ip.get_device()
|
||||
logging.info("Will proceed configuring device ==> %s" % dev)
|
||||
cmd2 = "ip link set %s up" % dev
|
||||
if CsDevice(dev, self.config).waitfordevice():
|
||||
|
|
@ -296,7 +304,7 @@ class CsRedundant(object):
|
|||
logging.info("Bringing public interface %s up" % dev)
|
||||
|
||||
try:
|
||||
gateway = o.get_gateway()
|
||||
gateway = ip.get_gateway()
|
||||
logging.info("Adding gateway ==> %s to device ==> %s" % (gateway, dev))
|
||||
route.add_defaultroute(gateway)
|
||||
except:
|
||||
|
|
|
|||
|
|
@ -600,12 +600,11 @@ class TestVPCRedundancy(cloudstackTestCase):
|
|||
else:
|
||||
self.logger.debug("Could not retrieve the keys 'network.gc.interval' and 'network.gc.wait'. Sleeping for 2 minutes.")
|
||||
|
||||
time.sleep(total_sleep)
|
||||
time.sleep(total_sleep * 3)
|
||||
|
||||
self.check_routers_state(status_to_check="BACKUP", expected_count=2)
|
||||
self.start_vm()
|
||||
self.check_routers_state(status_to_check="MASTER")
|
||||
self.do_vpc_test(False)
|
||||
|
||||
@attr(tags=["advanced", "intervlan"], required_hardware="true")
|
||||
def test_05_rvpc_multi_tiers(self):
|
||||
|
|
|
|||
Loading…
Reference in New Issue