CLOUDSTACK-2232: Adding automation test cases for Persistent Networks feature

This commit is contained in:
Ashutosh K 2014-02-21 17:46:14 +05:30 committed by Girish Shilamkar
parent 167babd8c8
commit 2091211c28
4 changed files with 2133 additions and 169 deletions

File diff suppressed because it is too large Load Diff

View File

@ -140,12 +140,245 @@
"ingress_rule": {
"protocol": "TCP",
"startport": "22",
"endport": "80",
"endport": "22",
"cidrlist": "0.0.0.0/0"
},
"ostype": "CentOS 5.3 (64-bit)",
"sleep": 90,
"timeout": 10,
"netscaler_VPX": {
"ipaddress": "10.223.240.174",
"username": "nsroot",
"password": "nsroot",
"networkdevicetype": "NetscalerVPXLoadBalancer",
"publicinterface": "1/1",
"privateinterface": "1/2",
"numretries": 2,
"lbdevicededicated": "True",
"lbdevicecapacity": 2,
"port": 22
},
"nw_offering_shared_persistent": {
"name": "Network offering for Shared Persistent Network",
"displaytext": "Network offering-DA services",
"guestiptype": "Shared",
"supportedservices": "Dhcp,Dns,SourceNat,PortForwarding,Vpn,Firewall,Lb,UserData,StaticNat",
"traffictype": "GUEST",
"availability": "Optional",
"ispersistent": "True",
"serviceProviderList": {
"Dhcp": "VirtualRouter",
"Dns": "VirtualRouter",
"SourceNat": "VirtualRouter",
"PortForwarding": "VirtualRouter",
"Vpn": "VirtualRouter",
"Firewall": "VirtualRouter",
"Lb": "VirtualRouter",
"UserData": "VirtualRouter",
"StaticNat": "VirtualRouter"
}
},
"nw_off_isolated_persistent": {
"name": "Network offering for Isolated Persistent Network",
"displaytext": "Network Offering for Isolated Persistent Network",
"guestiptype": "Isolated",
"supportedservices": "Dhcp,Dns,SourceNat,PortForwarding,Vpn,Firewall,Lb,UserData,StaticNat",
"traffictype":"GUEST",
"availability":"Optional",
"ispersistent": "True",
"serviceProviderList": {
"Dhcp": "VirtualRouter",
"Dns": "VirtualRouter",
"SourceNat": "VirtualRouter",
"PortForwarding": "VirtualRouter",
"Vpn": "VirtualRouter",
"Firewall": "VirtualRouter",
"Lb": "VirtualRouter",
"UserData": "VirtualRouter",
"StaticNat": "VirtualRouter"
}
},
"nw_off_isolated_persistent_netscaler": {
"name": "Network offering for Isolated Persistent Network",
"displaytext": "Network Offering for Isolated Persistent Network",
"guestiptype": "Isolated",
"supportedservices": "Dhcp,Dns,SourceNat,PortForwarding,Vpn,Firewall,Lb,UserData,StaticNat",
"traffictype": "GUEST",
"availability": "Optional",
"ispersistent": "True",
"serviceProviderList": {
"Dhcp": "VirtualRouter",
"Dns": "VirtualRouter",
"SourceNat": "VirtualRouter",
"PortForwarding": "VirtualRouter",
"Vpn": "VirtualRouter",
"Firewall": "VirtualRouter",
"Lb": "Netscaler",
"UserData": "VirtualRouter",
"StaticNat": "VirtualRouter"
}
},
"nw_offering_isolated": {
"name": "Network offering for Isolated Persistent Network",
"displaytext": "Network offering-DA services",
"guestiptype": "Isolated",
"supportedservices": "Dhcp,Dns,SourceNat,PortForwarding,Vpn,Firewall,Lb,UserData,StaticNat",
"traffictype": "GUEST",
"availability": "Optional",
"serviceProviderList": {
"Dhcp": "VirtualRouter",
"Dns": "VirtualRouter",
"SourceNat": "VirtualRouter",
"PortForwarding": "VirtualRouter",
"Vpn": "VirtualRouter",
"Firewall": "VirtualRouter",
"Lb": "VirtualRouter",
"UserData": "VirtualRouter",
"StaticNat": "VirtualRouter"
}
},
"nw_off_isolated_netscaler": {
"name": "Network offering for Isolated Persistent Network",
"displaytext": "Network offering-DA services",
"guestiptype": "Isolated",
"supportedservices": "Dhcp,Dns,SourceNat,PortForwarding,Vpn,Firewall,Lb,UserData,StaticNat",
"traffictype": "GUEST",
"availability": "Optional",
"serviceProviderList": {
"Dhcp": "VirtualRouter",
"Dns": "VirtualRouter",
"SourceNat": "VirtualRouter",
"PortForwarding": "VirtualRouter",
"Vpn": "VirtualRouter",
"Firewall": "VirtualRouter",
"Lb": "Netscaler",
"UserData": "VirtualRouter",
"StaticNat": "VirtualRouter"
}
},
"nw_off_persistent_RVR": {
"name": "Network offering-RVR services",
"displaytext": "Network off-RVR services",
"guestiptype": "Isolated",
"supportedservices": "Vpn,Dhcp,Dns,SourceNat,PortForwarding,Firewall,Lb,UserData,StaticNat",
"traffictype": "GUEST",
"availability": "Optional",
"ispersistent": "True",
"serviceProviderList": {
"Vpn": "VirtualRouter",
"Dhcp": "VirtualRouter",
"Dns": "VirtualRouter",
"SourceNat": "VirtualRouter",
"PortForwarding": "VirtualRouter",
"Firewall": "VirtualRouter",
"Lb": "VirtualRouter",
"UserData": "VirtualRouter",
"StaticNat": "VirtualRouter"
},
"serviceCapabilityList": {
"SourceNat": {
"SupportedSourceNatTypes": "peraccount",
"RedundantRouter": "true"
},
"lb": {
"SupportedLbIsolation": "dedicated"
}
}
},
"nw_off_persistent_VPCVR_NoLB": {
"name": "Persistent Network VPC No LB",
"displaytext": "Persistent Network VPC No LB",
"guestiptype": "Isolated",
"supportedservices": "Dhcp,Dns,SourceNat,PortForwarding,Vpn,UserData,StaticNat,NetworkACL",
"traffictype": "GUEST",
"availability": "Optional",
"ispersistent": "False",
"useVpc": "on",
"serviceProviderList": {
"Dhcp": "VpcVirtualRouter",
"Dns": "VpcVirtualRouter",
"SourceNat": "VpcVirtualRouter",
"PortForwarding": "VpcVirtualRouter",
"Vpn": "VpcVirtualRouter",
"UserData": "VpcVirtualRouter",
"StaticNat": "VpcVirtualRouter",
"NetworkACL": "VpcVirtualRouter"
}
},
"nw_off_persistent_VPCVR_LB": {
"name": "Persistent Network VPC with LB",
"displaytext": "Persistent Network VPC No LB",
"guestiptype": "Isolated",
"supportedservices": "Dhcp,Dns,SourceNat,PortForwarding,Vpn,Lb,UserData,StaticNat,NetworkACL",
"traffictype": "GUEST",
"availability": "Optional",
"ispersistent": "False",
"useVpc": "on",
"serviceProviderList": {
"Dhcp": "VpcVirtualRouter",
"Dns": "VpcVirtualRouter",
"SourceNat": "VpcVirtualRouter",
"PortForwarding": "VpcVirtualRouter",
"Vpn": "VpcVirtualRouter",
"Lb": "VpcVirtualRouter",
"UserData": "VpcVirtualRouter",
"StaticNat": "VpcVirtualRouter",
"NetworkACL": "VpcVirtualRouter"
}
},
"nw_offering_isolated_vpc": {
"name": "Isolated Network for VPC",
"displaytext": "Isolated Network for VPC",
"guestiptype": "Isolated",
"supportedservices": "Dhcp,Dns,SourceNat,PortForwarding,Vpn,UserData,StaticNat,NetworkACL",
"traffictype": "GUEST",
"availability": "Optional",
"ispersistent": "False",
"useVpc": "on",
"serviceProviderList": {
"Dhcp": "VpcVirtualRouter",
"Dns": "VpcVirtualRouter",
"SourceNat": "VpcVirtualRouter",
"PortForwarding": "VpcVirtualRouter",
"Vpn": "VpcVirtualRouter",
"UserData": "VpcVirtualRouter",
"StaticNat": "VpcVirtualRouter",
"NetworkACL": "VpcVirtualRouter"
}
},
"natrule": {
"privateport": 22,
"publicport": 22,
"startport": 22,
"endport": 22,
"protocol": "TCP",
"cidrlist": "0.0.0.0/0"
},
"fwrule": {
"startport": 22,
"endport": 22,
"cidr": "0.0.0.0/0",
"protocol": "TCP"
},
"lbrule": {
"name": "SSH",
"alg": "leastconn",
# Algorithm used for load balancing
"privateport": 22,
"publicport": 22,
"openfirewall": "False",
"startport": 22,
"endport": 22,
"protocol": "TCP",
"cidrlist": "0.0.0.0/0"
},
"icmprule": {
"icmptype": -1,
"icmpcode": -1,
"cidrlist": "0.0.0.0/0",
"protocol": "ICMP"
},
"host_password": "password",
"advanced_sg": {
"zone": {
"name": "",

View File

@ -131,6 +131,13 @@ class Account:
[setattr(cmd, k, v) for k, v in kwargs.items()]
return(apiclient.listAccounts(cmd))
def disable(self, apiclient, lock=False):
"""Disable an account"""
cmd = disableAccount.disableAccountCmd()
cmd.id = self.id
cmd.lock = lock
apiclient.disableAccount(cmd)
class User:
""" User Life Cycle """

View File

@ -64,7 +64,8 @@ from marvin.integration.lib.base import (Configurations,
PhysicalNetwork,
Host,
PublicIPAddress,
NetworkOffering)
NetworkOffering,
Network)
from marvin.integration.lib.utils import (get_process_status,
xsplit,
validateList)
@ -969,3 +970,13 @@ def shouldTestBeSkipped(networkType, zoneType):
and (zoneType.lower() == BASIC_ZONE)):
skipIt = True
return skipIt
def verifyNetworkState(apiclient, networkid, state):
"""List networks and check if the network state matches the given state"""
try:
networks = Network.list(apiclient, id=networkid)
except Exception as e:
raise Exception("Failed while fetching network list with error: %s" % e)
assert validateList(networks)[0] == PASS, "Networks list validation failed, list is %s" % networks
assert str(networks[0].state).lower() == state, "network state should be %s, it is %s" % (state, networks[0].state)
return