Skip to content

Commit c563457

Browse files
vinayv559Girish Shilamkar
authored andcommitted
CLOUDSTACK-6282 - Divided test_escalations.py into individual files based on functionality and added automed tests for Public IP Addresses
1 parent f2ebfe0 commit c563457

9 files changed

Lines changed: 12877 additions & 1 deletion

test/integration/component/test_escalations_instances.py

Lines changed: 3448 additions & 0 deletions
Large diffs are not rendered by default.

test/integration/component/test_escalations_ipaddresses.py

Lines changed: 4192 additions & 0 deletions
Large diffs are not rendered by default.

test/integration/component/test_escalations_isos.py

Lines changed: 783 additions & 0 deletions
Large diffs are not rendered by default.

test/integration/component/test_escalations_securitygroups.py

Lines changed: 588 additions & 0 deletions
Large diffs are not rendered by default.

test/integration/component/test_escalations_snapshots.py

Lines changed: 647 additions & 0 deletions
Large diffs are not rendered by default.

test/integration/component/test_escalations_templates.py

Lines changed: 944 additions & 0 deletions
Large diffs are not rendered by default.

test/integration/component/test_escalations_volumes.py

Lines changed: 1703 additions & 0 deletions
Large diffs are not rendered by default.

test/integration/component/test_escalations_vpncustomergateways.py

Lines changed: 382 additions & 0 deletions
Large diffs are not rendered by default.

tools/marvin/marvin/lib/base.py

Lines changed: 190 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
"""
2121

2222
import marvin
23+
from utils import is_server_ssh_ready, random_gen
2324
from marvin.cloudstackAPI import *
2425
from marvin.codes import (FAILED, FAIL, PASS, RUNNING, STOPPED,
2526
STARTING, DESTROYED, EXPUNGING,
@@ -613,6 +614,12 @@ def delete(self, apiclient):
613614
cmd.id = self.id
614615
apiclient.destroyVirtualMachine(cmd)
615616

617+
def expung(self, apiclient):
618+
"""Expung an Instance"""
619+
cmd = expungeVirtualMachine.expungeVirtualMachineCmd()
620+
cmd.id = self.id
621+
apiclient.expungeVirtualMachine(cmd)
622+
616623
def migrate(self, apiclient, hostid=None):
617624
"""migrate an Instance"""
618625
cmd = migrateVirtualMachine.migrateVirtualMachineCmd()
@@ -1498,6 +1505,18 @@ def create(cls, apiclient, services, ipaddressid=None,
14981505
cmd.vpcid = vpcid
14991506
return StaticNATRule(apiclient.createFirewallRule(cmd).__dict__)
15001507

1508+
@classmethod
1509+
def createIpForwardingRule(cls, apiclient, startport, endport, protocol, ipaddressid, openfirewall):
1510+
"""Creates static ip forwarding rule"""
1511+
1512+
cmd = createIpForwardingRule.createIpForwardingRuleCmd()
1513+
cmd.startport = startport
1514+
cmd.endport = endport
1515+
cmd.protocol = protocol
1516+
cmd.openfirewall = openfirewall
1517+
cmd.ipaddressid = ipaddressid
1518+
return StaticNATRule(apiclient.createIpForwardingRule(cmd).__dict__)
1519+
15011520
def delete(self, apiclient):
15021521
"""Delete IP forwarding rule"""
15031522
cmd = deleteIpForwardingRule.deleteIpForwardingRuleCmd()
@@ -1629,6 +1648,162 @@ def list(cls, apiclient, **kwargs):
16291648
cmd.listall=True
16301649
return(apiclient.listFirewallRules(cmd))
16311650

1651+
class Autoscale:
1652+
1653+
"""Manage Auto scale"""
1654+
1655+
def __init__(self, items):
1656+
self.__dict__.update(items)
1657+
1658+
@classmethod
1659+
def listCounters(cls, apiclient, **kwargs):
1660+
"""Lists all available Counters."""
1661+
1662+
cmd = listCounters.listCountersCmd()
1663+
[setattr(cmd, k, v) for k, v in kwargs.items()]
1664+
return(apiclient.listCounters(cmd))
1665+
1666+
@classmethod
1667+
def createCondition(cls, apiclient, counterid, relationaloperator, threshold):
1668+
"""creates condition."""
1669+
1670+
cmd = createCondition.createConditionCmd()
1671+
cmd.counterid = counterid
1672+
cmd.relationaloperator = relationaloperator
1673+
cmd.threshold = threshold
1674+
return(apiclient.createCondition(cmd))
1675+
1676+
@classmethod
1677+
def listConditions(cls, apiclient, **kwargs):
1678+
"""Lists all available Conditions."""
1679+
1680+
cmd = listConditions.listConditionsCmd()
1681+
[setattr(cmd, k, v) for k, v in kwargs.items()]
1682+
return(apiclient.listConditions(cmd))
1683+
1684+
@classmethod
1685+
def listAutoscalePolicies(cls, apiclient, **kwargs):
1686+
"""Lists all available Autoscale Policies."""
1687+
1688+
cmd = listAutoScalePolicies.listAutoScalePoliciesCmd()
1689+
[setattr(cmd, k, v) for k, v in kwargs.items()]
1690+
return(apiclient.listAutoScalePolicies(cmd))
1691+
1692+
@classmethod
1693+
def createAutoscalePolicy(cls, apiclient, action, conditionids, duration, quiettime=None):
1694+
"""creates condition."""
1695+
1696+
cmd = createAutoScalePolicy.createAutoScalePolicyCmd()
1697+
cmd.action = action
1698+
cmd.conditionids = conditionids
1699+
cmd.duration = duration
1700+
if quiettime:
1701+
cmd.quiettime = quiettime
1702+
1703+
return(apiclient.createAutoScalePolicy(cmd))
1704+
1705+
@classmethod
1706+
def updateAutoscalePolicy(cls, apiclient, id, **kwargs):
1707+
"""Updates Autoscale Policy."""
1708+
1709+
cmd = updateAutoScalePolicy.updateAutoScalePolicyCmd()
1710+
cmd.id = id
1711+
[setattr(cmd, k, v) for k, v in kwargs.items()]
1712+
return(apiclient.updateAutoScalePolicy(cmd))
1713+
1714+
@classmethod
1715+
def listAutoscaleVmPofiles(cls, apiclient, **kwargs):
1716+
"""Lists all available AutoscaleVM Profiles."""
1717+
1718+
cmd = listAutoScaleVmProfiles.listAutoScaleVmProfilesCmd()
1719+
[setattr(cmd, k, v) for k, v in kwargs.items()]
1720+
return(apiclient.listAutoScaleVmProfiles(cmd))
1721+
1722+
@classmethod
1723+
def createAutoscaleVmProfile(cls, apiclient, serviceofferingid, zoneid, templateid,
1724+
autoscaleuserid=None, destroyvmgraceperiod=None, counterparam=None):
1725+
"""creates Autoscale VM Profile."""
1726+
1727+
cmd = createAutoScaleVmProfile.createAutoScaleVmProfileCmd()
1728+
cmd.serviceofferingid = serviceofferingid
1729+
cmd.zoneid = zoneid
1730+
cmd.templateid = templateid
1731+
if autoscaleuserid:
1732+
cmd.autoscaleuserid = autoscaleuserid
1733+
1734+
if destroyvmgraceperiod:
1735+
cmd.destroyvmgraceperiod = destroyvmgraceperiod
1736+
1737+
if counterparam:
1738+
for name, value in counterparam.items():
1739+
cmd.counterparam.append({
1740+
'name': name,
1741+
'value': value
1742+
})
1743+
1744+
return(apiclient.createAutoScaleVmProfile(cmd))
1745+
1746+
@classmethod
1747+
def updateAutoscaleVMProfile(cls, apiclient, id, **kwargs):
1748+
"""Updates Autoscale Policy."""
1749+
1750+
cmd = updateAutoScaleVmProfile.updateAutoScaleVmProfileCmd()
1751+
cmd.id = id
1752+
[setattr(cmd, k, v) for k, v in kwargs.items()]
1753+
return(apiclient.updateAutoScaleVmProfile(cmd))
1754+
1755+
@classmethod
1756+
def createAutoscaleVmGroup(cls, apiclient, lbruleid, minmembers, maxmembers,
1757+
scaledownpolicyids, scaleuppolicyids, vmprofileid, interval=None):
1758+
"""creates Autoscale VM Group."""
1759+
1760+
cmd = createAutoScaleVmGroup.createAutoScaleVmGroupCmd()
1761+
cmd.lbruleid = lbruleid
1762+
cmd.minmembers = minmembers
1763+
cmd.maxmembers = maxmembers
1764+
cmd.scaledownpolicyids = scaledownpolicyids
1765+
cmd.scaleuppolicyids = scaleuppolicyids
1766+
cmd.vmprofileid = vmprofileid
1767+
if interval:
1768+
cmd.interval = interval
1769+
1770+
return(apiclient.createAutoScaleVmGroup(cmd))
1771+
1772+
@classmethod
1773+
def listAutoscaleVmGroup(cls, apiclient, **kwargs):
1774+
"""Lists all available AutoscaleVM Group."""
1775+
1776+
cmd = listAutoScaleVmGroups.listAutoScaleVmGroupsCmd()
1777+
[setattr(cmd, k, v) for k, v in kwargs.items()]
1778+
return(apiclient.listAutoScaleVmGroups(cmd))
1779+
1780+
@classmethod
1781+
def enableAutoscaleVmGroup(cls, apiclient, id, **kwargs):
1782+
"""Enables AutoscaleVM Group."""
1783+
1784+
cmd = enableAutoScaleVmGroup.enableAutoScaleVmGroupCmd()
1785+
cmd.id = id
1786+
[setattr(cmd, k, v) for k, v in kwargs.items()]
1787+
return(apiclient.enableAutoScaleVmGroup(cmd))
1788+
1789+
@classmethod
1790+
def disableAutoscaleVmGroup(cls, apiclient, id, **kwargs):
1791+
"""Disables AutoscaleVM Group."""
1792+
1793+
cmd = disableAutoScaleVmGroup.disableAutoScaleVmGroupCmd()
1794+
cmd.id = id
1795+
[setattr(cmd, k, v) for k, v in kwargs.items()]
1796+
return(apiclient.disableAutoScaleVmGroup(cmd))
1797+
1798+
@classmethod
1799+
def updateAutoscaleVMGroup(cls, apiclient, id, **kwargs):
1800+
"""Updates Autoscale VM Group."""
1801+
1802+
cmd = updateAutoScaleVmGroup.updateAutoScaleVmGroupCmd()
1803+
cmd.id = id
1804+
[setattr(cmd, k, v) for k, v in kwargs.items()]
1805+
return(apiclient.updateAutoScaleVmGroup(cmd))
1806+
16321807

16331808
class ServiceOffering:
16341809

@@ -2003,6 +2178,18 @@ def list(cls, apiclient, **kwargs):
20032178
cmd.listall=True
20042179
return(apiclient.listLoadBalancerRules(cmd))
20052180

2181+
@classmethod
2182+
def listLoadBalancerRuleInstances(cls, apiclient, id, applied=None, **kwargs):
2183+
"""Lists load balancing rule Instances"""
2184+
2185+
cmd = listLoadBalancerRuleInstances.listLoadBalancerRuleInstancesCmd()
2186+
cmd.id = id
2187+
if applied:
2188+
cmd.applied = applied
2189+
2190+
[setattr(cmd, k, v) for k, v in kwargs.items()]
2191+
return apiclient.listLoadBalancerRuleInstances(cmd)
2192+
20062193

20072194
class Cluster:
20082195

@@ -2498,7 +2685,7 @@ def __init__(self, items):
24982685

24992686
@classmethod
25002687
def create(cls, apiclient, publicipid, account=None, domainid=None,
2501-
projectid=None, networkid=None, vpcid=None):
2688+
projectid=None, networkid=None, vpcid=None, openfirewall=None):
25022689
"""Create VPN for Public IP address"""
25032690
cmd = createRemoteAccessVpn.createRemoteAccessVpnCmd()
25042691
cmd.publicipid = publicipid
@@ -2512,6 +2699,8 @@ def create(cls, apiclient, publicipid, account=None, domainid=None,
25122699
cmd.networkid = networkid
25132700
if vpcid:
25142701
cmd.vpcid = vpcid
2702+
if openfirewall:
2703+
cmd.openfirewall = openfirewall
25152704
return Vpn(apiclient.createRemoteAccessVpn(cmd).__dict__)
25162705

25172706
def delete(self, apiclient):

0 commit comments

Comments
 (0)