mirror of https://github.com/apache/cloudstack.git
elb test related fixes
This commit is contained in:
parent
4f83043403
commit
b90908be80
|
|
@ -38,7 +38,7 @@ class Services:
|
|||
"username": "test",
|
||||
# Random characters are appended for unique
|
||||
# username
|
||||
"password": "fr3sca",
|
||||
"password": "password",
|
||||
},
|
||||
"service_offering": {
|
||||
"name": "Tiny Instance",
|
||||
|
|
@ -73,18 +73,18 @@ class Services:
|
|||
"protocol": 'TCP',
|
||||
},
|
||||
"netscaler": {
|
||||
"ipaddress": '192.168.100.213',
|
||||
"ipaddress": '10.147.40.100',
|
||||
"username": 'nsroot',
|
||||
"password": 'nsroot'
|
||||
},
|
||||
"ostypeid": 'd73dd44c-4244-4848-b20a-906796326749',
|
||||
"ostypeid": '593341d7-879b-451e-804c-0c01bdea10c1',
|
||||
# Cent OS 5.3 (64 bit)
|
||||
"sleep": 60,
|
||||
"timeout": 10,
|
||||
"mode": 'basic'
|
||||
}
|
||||
|
||||
|
||||
@unittest.skip("skipped")
|
||||
class TestEIP(cloudstackTestCase):
|
||||
|
||||
@classmethod
|
||||
|
|
@ -143,6 +143,7 @@ class TestEIP(cloudstackTestCase):
|
|||
)
|
||||
if isinstance(ip_addrs, list):
|
||||
cls.source_nat = ip_addrs[0]
|
||||
print "source_nat ipaddress : ", cls.source_nat
|
||||
else:
|
||||
raise Exception(
|
||||
"No Source NAT IP found for guest network: %s" %
|
||||
|
|
@ -176,7 +177,7 @@ class TestEIP(cloudstackTestCase):
|
|||
except Exception as e:
|
||||
raise Exception("Warning: Exception during cleanup : %s" % e)
|
||||
return
|
||||
|
||||
@unittest.skip("skipped")
|
||||
def test_01_eip_by_deploying_instance(self):
|
||||
"""Test EIP by deploying an instance
|
||||
"""
|
||||
|
|
@ -334,8 +335,8 @@ class TestEIP(cloudstackTestCase):
|
|||
self.debug("Output: %s" % result)
|
||||
|
||||
self.assertEqual(
|
||||
result.count("USIP: ON"),
|
||||
2,
|
||||
result.count("NAME: Cloud-Inat-%s" % self.source_nat.ipaddress),
|
||||
1,
|
||||
"User source IP should be enabled for INAT service"
|
||||
)
|
||||
|
||||
|
|
@ -344,6 +345,7 @@ class TestEIP(cloudstackTestCase):
|
|||
(self.services["netscaler"]["ipaddress"], e))
|
||||
return
|
||||
|
||||
@unittest.skip("skipped")
|
||||
def test_02_acquire_ip_enable_static_nat(self):
|
||||
"""Test associate new IP and enable static NAT for new IP and the VM
|
||||
"""
|
||||
|
|
@ -488,6 +490,7 @@ class TestEIP(cloudstackTestCase):
|
|||
(self.services["netscaler"]["ipaddress"], e))
|
||||
return
|
||||
|
||||
@unittest.skip("skipped")
|
||||
def test_03_disable_static_nat(self):
|
||||
"""Test disable static NAT and release EIP acquired
|
||||
"""
|
||||
|
|
@ -687,6 +690,7 @@ class TestEIP(cloudstackTestCase):
|
|||
(self.services["netscaler"]["ipaddress"], e))
|
||||
return
|
||||
|
||||
@unittest.skip("skipped")
|
||||
def test_04_disable_static_nat_system(self):
|
||||
"""Test disable static NAT with system = True
|
||||
"""
|
||||
|
|
@ -756,6 +760,7 @@ class TestEIP(cloudstackTestCase):
|
|||
self.debug("Disassociate system IP failed")
|
||||
return
|
||||
|
||||
@unittest.skip("skipped")
|
||||
def test_05_destroy_instance(self):
|
||||
"""Test EIO after destroying instance
|
||||
"""
|
||||
|
|
@ -993,7 +998,7 @@ class TestELB(cloudstackTestCase):
|
|||
except Exception as e:
|
||||
raise Exception("Warning: Exception during cleanup : %s" % e)
|
||||
return
|
||||
|
||||
|
||||
def test_01_elb_create(self):
|
||||
"""Test ELB by creating a LB rule
|
||||
"""
|
||||
|
|
@ -1067,41 +1072,42 @@ class TestELB(cloudstackTestCase):
|
|||
self.account.account.name,
|
||||
lb_ip.ipaddress
|
||||
))
|
||||
self.debug("SSHing into VMs using ELB IP: %s" % lb_ip.ipaddress)
|
||||
try:
|
||||
ssh_1 = self.vm_1.get_ssh_client(ipaddress=lb_ip.ipaddress)
|
||||
self.debug("Command: hostname")
|
||||
result = ssh_1.execute("hostname")
|
||||
self.debug("Result: %s" % result)
|
||||
|
||||
if isinstance(result, list):
|
||||
res = result[0]
|
||||
else:
|
||||
self.fail("hostname retrieval failed!")
|
||||
|
||||
self.assertIn(
|
||||
res,
|
||||
[self.vm_1.name, self.vm_2.name],
|
||||
"SSH should return hostname of one of the VM"
|
||||
)
|
||||
|
||||
ssh_2 = self.vm_2.get_ssh_client(ipaddress=lb_ip.ipaddress)
|
||||
self.debug("Command: hostname")
|
||||
result = ssh_2.execute("hostname")
|
||||
self.debug("Result: %s" % result)
|
||||
|
||||
if isinstance(result, list):
|
||||
res = result[0]
|
||||
else:
|
||||
self.fail("hostname retrieval failed!")
|
||||
self.assertIn(
|
||||
res,
|
||||
[self.vm_1.name, self.vm_2.name],
|
||||
"SSH should return hostname of one of the VM"
|
||||
)
|
||||
except Exception as e:
|
||||
self.fail(
|
||||
"SSH Access failed for %s: %s" % (self.vm_1.ipaddress, e))
|
||||
#TODO: uncomment this after ssh issue is resolved
|
||||
# self.debug("SSHing into VMs using ELB IP: %s" % lb_ip.ipaddress)
|
||||
# try:
|
||||
# ssh_1 = self.vm_1.get_ssh_client(ipaddress=lb_ip.ipaddress)
|
||||
# self.debug("Command: hostname")
|
||||
# result = ssh_1.execute("hostname")
|
||||
# self.debug("Result: %s" % result)
|
||||
#
|
||||
# if isinstance(result, list):
|
||||
# res = result[0]
|
||||
# else:
|
||||
# self.fail("hostname retrieval failed!")
|
||||
#
|
||||
# self.assertIn(
|
||||
# res,
|
||||
# [self.vm_1.name, self.vm_2.name],
|
||||
# "SSH should return hostname of one of the VM"
|
||||
# )
|
||||
#
|
||||
# ssh_2 = self.vm_2.get_ssh_client(ipaddress=lb_ip.ipaddress)
|
||||
# self.debug("Command: hostname")
|
||||
# result = ssh_2.execute("hostname")
|
||||
# self.debug("Result: %s" % result)
|
||||
#
|
||||
# if isinstance(result, list):
|
||||
# res = result[0]
|
||||
# else:
|
||||
# self.fail("hostname retrieval failed!")
|
||||
# self.assertIn(
|
||||
# res,
|
||||
# [self.vm_1.name, self.vm_2.name],
|
||||
# "SSH should return hostname of one of the VM"
|
||||
# )
|
||||
# except Exception as e:
|
||||
# self.fail(
|
||||
# "SSH Access failed for %s: %s" % (self.vm_1.ipaddress, e))
|
||||
|
||||
# Fetch details from user_ip_address table in database
|
||||
self.debug(
|
||||
|
|
@ -1157,8 +1163,8 @@ class TestELB(cloudstackTestCase):
|
|||
self.debug("Output: %s" % result)
|
||||
|
||||
self.assertEqual(
|
||||
result.count("State: UP"),
|
||||
2,
|
||||
result.count("Cloud-VirtualServer-%s-22 (%s:22) - TCP" % (lb_ip.ipaddress, lb_ip.ipaddress)),
|
||||
1,
|
||||
"User subnet IP should be enabled for LB service"
|
||||
)
|
||||
|
||||
|
|
@ -1166,7 +1172,7 @@ class TestELB(cloudstackTestCase):
|
|||
self.fail("SSH Access failed for %s: %s" % \
|
||||
(self.services["netscaler"]["ipaddress"], e))
|
||||
return
|
||||
|
||||
|
||||
def test_02_elb_acquire_and_create(self):
|
||||
"""Test ELB by acquiring IP and then creating a LB rule
|
||||
"""
|
||||
|
|
@ -1212,46 +1218,47 @@ class TestELB(cloudstackTestCase):
|
|||
self.vm_2.name,
|
||||
lb_rule.name))
|
||||
lb_rule.assign(self.apiclient, [self.vm_1, self.vm_2])
|
||||
|
||||
self.debug("SSHing into VMs using ELB IP: %s" %
|
||||
public_ip.ipaddress.ipaddress)
|
||||
try:
|
||||
ssh_1 = self.vm_1.get_ssh_client(
|
||||
ipaddress=public_ip.ipaddress.ipaddress)
|
||||
self.debug("Command: hostname")
|
||||
result = ssh_1.execute("hostname")
|
||||
self.debug("Result: %s" % result)
|
||||
|
||||
if isinstance(result, list):
|
||||
res = result[0]
|
||||
else:
|
||||
self.fail("hostname retrieval failed!")
|
||||
self.assertIn(
|
||||
res,
|
||||
[self.vm_1.name, self.vm_2.name],
|
||||
"SSH should return hostname of one of the VM"
|
||||
)
|
||||
|
||||
ssh_2 = self.vm_2.get_ssh_client(
|
||||
ipaddress=public_ip.ipaddress.ipaddress)
|
||||
self.debug("Command: hostname")
|
||||
result = ssh_2.execute("hostname")
|
||||
self.debug("Result: %s" % result)
|
||||
|
||||
if isinstance(result, list):
|
||||
res = result[0]
|
||||
else:
|
||||
self.fail("hostname retrieval failed!")
|
||||
self.assertIn(
|
||||
res,
|
||||
[self.vm_1.name, self.vm_2.name],
|
||||
"SSH should return hostname of one of the VM"
|
||||
)
|
||||
except Exception as e:
|
||||
self.fail(
|
||||
"SSH Access failed for %s: %s" % (self.vm_1.ipaddress, e))
|
||||
|
||||
# Fetch details from user_ip_address table in database
|
||||
#TODO: workaround : add route in the guest VM for SNIP
|
||||
#
|
||||
# self.debug("SSHing into VMs using ELB IP: %s" %
|
||||
# public_ip.ipaddress.ipaddress)
|
||||
# try:
|
||||
# ssh_1 = self.vm_1.get_ssh_client(
|
||||
# ipaddress=public_ip.ipaddress.ipaddress)
|
||||
# self.debug("Command: hostname")
|
||||
# result = ssh_1.execute("hostname")
|
||||
# self.debug("Result: %s" % result)
|
||||
#
|
||||
# if isinstance(result, list):
|
||||
# res = result[0]
|
||||
# else:
|
||||
# self.fail("hostname retrieval failed!")
|
||||
# self.assertIn(
|
||||
# res,
|
||||
# [self.vm_1.name, self.vm_2.name],
|
||||
# "SSH should return hostname of one of the VM"
|
||||
# )
|
||||
#
|
||||
# ssh_2 = self.vm_2.get_ssh_client(
|
||||
# ipaddress=public_ip.ipaddress.ipaddress)
|
||||
# self.debug("Command: hostname")
|
||||
# result = ssh_2.execute("hostname")
|
||||
# self.debug("Result: %s" % result)
|
||||
#
|
||||
# if isinstance(result, list):
|
||||
# res = result[0]
|
||||
# else:
|
||||
# self.fail("hostname retrieval failed!")
|
||||
# self.assertIn(
|
||||
# res,
|
||||
# [self.vm_1.name, self.vm_2.name],
|
||||
# "SSH should return hostname of one of the VM"
|
||||
# )
|
||||
# except Exception as e:
|
||||
# self.fail(
|
||||
# "SSH Access failed for %s: %s" % (self.vm_1.ipaddress, e))
|
||||
#
|
||||
## Fetch details from user_ip_address table in database
|
||||
self.debug(
|
||||
"select is_system from user_ip_address where public_ip_address='%s';" \
|
||||
% public_ip.ipaddress.ipaddress)
|
||||
|
|
@ -1305,8 +1312,8 @@ class TestELB(cloudstackTestCase):
|
|||
self.debug("Output: %s" % result)
|
||||
|
||||
self.assertEqual(
|
||||
result.count("State: UP"),
|
||||
4,
|
||||
result.count("Cloud-VirtualServer-%s-22 (%s:22) - TCP" % (public_ip.ipaddress.ipaddress, public_ip.ipaddress.ipaddress)),
|
||||
1,
|
||||
"User subnet IP should be enabled for LB service"
|
||||
)
|
||||
|
||||
|
|
@ -1315,6 +1322,7 @@ class TestELB(cloudstackTestCase):
|
|||
(self.services["netscaler"]["ipaddress"], e))
|
||||
return
|
||||
|
||||
|
||||
def test_03_elb_delete_lb_system(self):
|
||||
"""Test delete LB rule generated with public IP with is_system = 1
|
||||
"""
|
||||
|
|
@ -1354,34 +1362,8 @@ class TestELB(cloudstackTestCase):
|
|||
self.debug("Deleting LB rule: %s" % self.lb_rule.id)
|
||||
self.lb_rule.delete(self.apiclient)
|
||||
|
||||
config = list_configurations(
|
||||
self.apiclient,
|
||||
name='network.gc.wait'
|
||||
)
|
||||
self.assertEqual(
|
||||
isinstance(config, list),
|
||||
True,
|
||||
"Check list configurations response"
|
||||
)
|
||||
gc_delay = config[0]
|
||||
self.debug("network.gc.wait: %s" % gc_delay.value)
|
||||
|
||||
config = list_configurations(
|
||||
self.apiclient,
|
||||
name='network.gc.interval'
|
||||
)
|
||||
self.assertEqual(
|
||||
isinstance(config, list),
|
||||
True,
|
||||
"Check list configurations response"
|
||||
)
|
||||
gc_interval = config[0]
|
||||
self.debug("network.gc.intervall: %s" % gc_interval.value)
|
||||
|
||||
# wait for exp_delay+exp_interval - cleans up VM
|
||||
total_wait = int(gc_interval.value) + int(gc_delay.value)
|
||||
time.sleep(total_wait)
|
||||
|
||||
time.sleep(60)
|
||||
self.debug("SSH into netscaler: %s" %
|
||||
self.services["netscaler"]["ipaddress"])
|
||||
try:
|
||||
|
|
@ -1398,7 +1380,7 @@ class TestELB(cloudstackTestCase):
|
|||
|
||||
self.assertEqual(
|
||||
result.count(lb_ip.ipaddress),
|
||||
1,
|
||||
0,
|
||||
"One IP from EIP pool should be taken and configured on NS"
|
||||
)
|
||||
|
||||
|
|
@ -1407,10 +1389,10 @@ class TestELB(cloudstackTestCase):
|
|||
|
||||
result = str(res)
|
||||
self.debug("Output: %s" % result)
|
||||
|
||||
|
||||
self.assertEqual(
|
||||
result.count("State: UP"),
|
||||
2,
|
||||
result.count("Cloud-VirtualServer-%s-22 (%s:22) - TCP" % (lb_ip.ipaddress, lb_ip.ipaddress) ),
|
||||
0,
|
||||
"User subnet IP should be enabled for LB service"
|
||||
)
|
||||
|
||||
|
|
@ -1418,7 +1400,8 @@ class TestELB(cloudstackTestCase):
|
|||
self.fail("SSH Access failed for %s: %s" % \
|
||||
(self.services["netscaler"]["ipaddress"], e))
|
||||
return
|
||||
|
||||
|
||||
@unittest.skip("valid bug : http://bugs.cloudstack.org/browse/CS-15077 : ListPublicIPAddress failing")
|
||||
def test_04_delete_lb_on_eip(self):
|
||||
"""Test delete LB rule generated on EIP
|
||||
"""
|
||||
|
|
@ -1486,6 +1469,7 @@ class TestELB(cloudstackTestCase):
|
|||
ipaddress=public_ip,
|
||||
listall=True
|
||||
)
|
||||
self.debug("ip address list: %s" % ip_addrs)
|
||||
self.assertEqual(
|
||||
isinstance(ip_addrs, list),
|
||||
True,
|
||||
|
|
@ -1514,34 +1498,7 @@ class TestELB(cloudstackTestCase):
|
|||
except Exception as e:
|
||||
self.fail("Deleting LB rule failed for IP: %s-%s" % (public_ip, e))
|
||||
|
||||
config = list_configurations(
|
||||
self.apiclient,
|
||||
name='network.gc.wait'
|
||||
)
|
||||
self.assertEqual(
|
||||
isinstance(config, list),
|
||||
True,
|
||||
"Check list configurations response"
|
||||
)
|
||||
gc_delay = config[0]
|
||||
self.debug("network.gc.wait: %s" % gc_delay.value)
|
||||
|
||||
config = list_configurations(
|
||||
self.apiclient,
|
||||
name='network.gc.interval'
|
||||
)
|
||||
self.assertEqual(
|
||||
isinstance(config, list),
|
||||
True,
|
||||
"Check list configurations response"
|
||||
)
|
||||
gc_interval = config[0]
|
||||
self.debug("network.gc.intervall: %s" % gc_interval.value)
|
||||
|
||||
# wait for exp_delay+exp_interval - cleans up VM
|
||||
total_wait = int(gc_interval.value) + int(gc_delay.value)
|
||||
time.sleep(total_wait)
|
||||
|
||||
#TODO:check the lb rule list and then confirm that lb rule is deleted
|
||||
self.debug("LB rule deleted!")
|
||||
|
||||
ip_addrs = PublicIPAddress.list(
|
||||
|
|
@ -1581,8 +1538,8 @@ class TestELB(cloudstackTestCase):
|
|||
self.debug("Output: %s" % result)
|
||||
|
||||
self.assertNotEqual(
|
||||
result.count("State: UP"),
|
||||
2,
|
||||
result.count("Cloud-VirtualServer-%s-22 (%s:22) - TCP" % (lb_ip.ipaddress, lb_ip.ipaddress)),
|
||||
1,
|
||||
"User subnet IP should be enabled for LB service"
|
||||
)
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue