diff --git a/tools/marvin/marvin/cloudstackTestClient.py b/tools/marvin/marvin/cloudstackTestClient.py index 13d920e7914..2e9b49abb47 100644 --- a/tools/marvin/marvin/cloudstackTestClient.py +++ b/tools/marvin/marvin/cloudstackTestClient.py @@ -190,7 +190,7 @@ class CSTestClient(object): else self.__dbSvrDetails.port user = "cloud" if self.__dbSvrDetails.user is None \ else self.__dbSvrDetails.user - passwd = 'cloud' if self.__dbSvrDetails.passd is None \ + passwd = 'cloud' if self.__dbSvrDetails.passwd is None \ else self.__dbSvrDetails.passd db = 'cloud' if self.__dbSvrDetails.db is None \ else self.__dbSvrDetails.db diff --git a/tools/marvin/marvin/config/config.cfg b/tools/marvin/marvin/config/config.cfg deleted file mode 100644 index a4bbe9dcfe0..00000000000 --- a/tools/marvin/marvin/config/config.cfg +++ /dev/null @@ -1,457 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# -# Use the common configs added such as account, network_offerings, domain, project, -# or add your own data if required separately for any test case -{ - "domain": - { - "name": "domain" - } - , - "project": - { - "name": "Project", - "displaytext": "Test project" - }, - "account": { - "email": "test-account@test.com", - "firstname": "test", - "lastname": "test", - "username": "test-account", - "password": "password" - }, - "user": { - "email": "user@test.com", - "firstname": "User", - "lastname": "User", - "username": "User", - # Random characters are appended for unique - # username - "password": "fr3sca", - }, - "service_offering": { - "name": "Tiny Instance", - "displaytext": "Tiny Instance", - "cpunumber": 1, - "cpuspeed": 100, - "memory": 128 - }, - "isolated_network_offering": { - "name": "Isolated Network offering", - "displaytext": "Isolated Network offering", - "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" - } - }, - "isolated_network": { - "name": "Isolated Network", - "displaytext": "Isolated Network" - }, - "virtual_machine": { - "displayname": "Test VM", - "username": "root", - "password": "password", - "ssh_port": 22, - "privateport": 22, - "publicport": 22, - "protocol": "TCP" - }, - "template": { - "displaytext": "Public Template", - "name": "Public template", - "ostype": 'CentOS 5.3 (64-bit)', - "url": "", - "hypervisor": '', - "format": '', - "isfeatured": True, - "ispublic": True, - "isextractable": True, - "templatefilter": "self" - }, - "shared_network": { - "name": "Test Shared Network", - "displaytext": "Test Shared Network", - "vlan" : "", - "gateway" :"", - "netmask" :"", - "startip" :"", - "endip" :"", - "acltype" : "Domain", - "scope":"all" - }, - "shared_network_offering_sg": { - "name": "SharedNwOffering-sg", - "displaytext": "SharedNwOffering-sg", - "guestiptype": "Shared", - "supportedservices": "Dhcp,Dns,UserData,SecurityGroup", - "specifyVlan" : "False", - "specifyIpRanges" : "False", - "traffictype": "GUEST", - "serviceProviderList" : { - "Dhcp": "VirtualRouter", - "Dns": "VirtualRouter", - "UserData": "VirtualRouter", - "SecurityGroup": "SecurityGroupProvider" - } - }, - "shared_network_sg": { - "name": "Shared-Network-SG-Test", - "displaytext": "Shared-Network_SG-Test", - "networkofferingid":"", - "vlan" : "", - "gateway" :"", - "netmask" :"255.255.255.0", - "startip" :"", - "endip" :"", - "acltype" : "Domain", - "scope":"all" - }, - "vpc_offering": { - "name": "VPC off", - "displaytext": "VPC off", - "supportedservices": "Dhcp,Dns,SourceNat,PortForwarding,Vpn,Lb,UserData,StaticNat,NetworkACL" - }, - "vpc": { - "name": "TestVPC", - "displaytext": "TestVPC", - "cidr": "10.0.0.1/24" - }, - "shared_network_offering": { - "name": "SharedNwOffering", - "displaytext": "SharedNwOffering", - "guestiptype": "Shared", - "supportedservices": "Dhcp,Dns,SourceNat,PortForwarding,Vpn,Firewall,Lb,UserData,StaticNat", - "specifyVlan" : "False", - "specifyIpRanges" : "False", - "traffictype": "GUEST", - "serviceProviderList" : { - "Dhcp": "VirtualRouter", - "Dns": "VirtualRouter", - "SourceNat": "VirtualRouter", - "PortForwarding": "VirtualRouter", - "Vpn": "VirtualRouter", - "Firewall": "VirtualRouter", - "Lb": "VirtualRouter", - "UserData": "VirtualRouter", - "StaticNat": "VirtualRouter" - } - }, - "security_group" : { "name": "custom_Sec_Grp" }, - "natrule": { - "publicport": 22, - "privateport": 22, - "protocol": 'TCP', - }, - "ingress_rule": { - "protocol": "TCP", - "startport": "22", - "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_isolated_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": "False", - "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_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": "", - "dns1": "8.8.8.8", - "internaldns1": "192.168.100.1", - "networktype": "Advanced", - "securitygroupenabled": "true" - }, - "securitygroupenabled": "true" - }, - "host_anti_affinity": { - "name": "", - "type": "host anti-affinity" - } -} diff --git a/tools/marvin/marvin/config/test_data.py b/tools/marvin/marvin/config/test_data.py index ebc1ab6eca9..47230efc49e 100644 --- a/tools/marvin/marvin/config/test_data.py +++ b/tools/marvin/marvin/config/test_data.py @@ -27,6 +27,7 @@ test_data = { "vdomain": { "name": "domain" }, + "domain": {"name": "domain"}, "email": "test@test.com", "gateway": "172.1.1.1", "netmask": "255.255.255.0", @@ -294,7 +295,7 @@ test_data = { "Dhcp": "VirtualRouter", "Dns": "VirtualRouter", "UserData": "VirtualRouter" - } + } }, "shared_network_offering_all_services": { "name":"shaared network offering with services enabled", @@ -418,6 +419,35 @@ test_data = { "UserData": 'VirtualRouter', }, }, + "nw_off_isolated_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": "False", + "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_RVR": { "name": 'Network offering-RVR services', "displaytext": 'Network off-RVR services', @@ -448,6 +478,73 @@ test_data = { }, }, }, + "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" + } + }, + "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_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" + } + }, + "fwrule": { + "startport": 22, + "endport": 22, + "cidr": "0.0.0.0/0", + "protocol": "TCP" + }, "nw_off_isolated_persistent_netscaler": { "name": 'Netscaler', "displaytext": 'Netscaler', @@ -541,7 +638,7 @@ test_data = { "bootable": False, "ispublic": False, "ostype": "CentOS 5.6 (64-bit)", - }, + }, "iso1": { "displaytext": "Test ISO 1", "name": "ISO 1", @@ -727,7 +824,7 @@ test_data = { "disksize": 1 }, "host_anti_affinity": { - "name": "hostantiaffinity", - "type": "host anti-affinity", - }, + "name": "hostantiaffinity", + "type": "host anti-affinity", + }, } diff --git a/tools/marvin/marvin/lib/base.py b/tools/marvin/marvin/lib/base.py index 88e6d9a9b51..0a6405df74e 100755 --- a/tools/marvin/marvin/lib/base.py +++ b/tools/marvin/marvin/lib/base.py @@ -20,13 +20,12 @@ """ import marvin -from utils import is_server_ssh_ready, random_gen from marvin.cloudstackAPI import * from marvin.codes import (FAILED, FAIL, PASS, RUNNING, STOPPED, STARTING, DESTROYED, EXPUNGING, STOPPING) from marvin.cloudstackException import GetDetailExceptionInfo -from marvin.lib.utils import validateList +from marvin.lib.utils import validateList, is_server_ssh_ready, random_gen # Import System modules import time import hashlib @@ -82,6 +81,8 @@ class Domain: """Lists domains""" cmd = listDomains.listDomainsCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listDomains(cmd)) @@ -104,12 +105,13 @@ class Account: cmd.password = services["password"] - username = "-".join([services["username"], random_gen(id=apiclient.id)]) + username = "-".join([services["username"], + random_gen(id=apiclient.id)]) # Trim username to 99 characters to prevent failure cmd.username = username[:99] if len(username) > 99 else username if "accountUUID" in services: - cmd.accountid = "-".join([services["accountUUID"],random_gen()]) + cmd.accountid = "-".join([services["accountUUID"], random_gen()]) if "userUUID" in services: cmd.userid = "-".join([services["userUUID"],random_gen()]) @@ -134,6 +136,8 @@ class Account: cmd = listAccounts.listAccountsCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listAccounts(cmd)) def disable(self, apiclient, lock=False): @@ -182,6 +186,8 @@ class User: cmd = listUsers.listUsersCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listUsers(cmd)) @classmethod @@ -255,7 +261,8 @@ class VirtualMachine: @classmethod def ssh_access_group(cls, apiclient, cmd): """ - Programs the security group with SSH access before deploying virtualmachine + Programs the security group with SSH + access before deploying virtualmachine @return: """ zone_list = Zone.list( @@ -264,7 +271,7 @@ class VirtualMachine: domainid=cmd.domainid if cmd.domainid else None ) zone = zone_list[0] - #check if security groups settings is enabled for the zone + # check if security groups settings is enabled for the zone if zone.securitygroupsenabled: list_security_groups = SecurityGroup.list( apiclient, @@ -287,9 +294,11 @@ class VirtualMachine: "endport": 22, "cidrlist": "0.0.0.0/0" } - #Authorize security group for above ingress rule - basic_mode_security_group.authorize(apiclient, sec_grp_services, account=cmd.account, - domainid=cmd.domainid) + # Authorize security group for above ingress rule + basic_mode_security_group.authorize(apiclient, + sec_grp_services, + account=cmd.account, + domainid=cmd.domainid) else: basic_mode_security_group = list_security_groups[0] @@ -299,7 +308,8 @@ class VirtualMachine: cmd.securitygroupids = [basic_mode_security_group.id] @classmethod - def access_ssh_over_nat(cls, apiclient, services, virtual_machine, allow_egress=False): + def access_ssh_over_nat( + cls, apiclient, services, virtual_machine, allow_egress=False): """ Program NAT and PF rules to open up ssh access to deployed guest @return: @@ -337,11 +347,13 @@ class VirtualMachine: @classmethod def create(cls, apiclient, services, templateid=None, accountid=None, - domainid=None, zoneid=None, networkids=None, serviceofferingid=None, - securitygroupids=None, projectid=None, startvm=None, - diskofferingid=None, affinitygroupnames=None, affinitygroupids=None, group=None, - hostid=None, keypair=None, ipaddress=None, mode='default', method='GET',hypervisor=None, - customcpunumber=None, customcpuspeed=None, custommemory=None, rootdisksize=None): + domainid=None, zoneid=None, networkids=None, + serviceofferingid=None, securitygroupids=None, + projectid=None, startvm=None, diskofferingid=None, + affinitygroupnames=None, affinitygroupids=None, group=None, + hostid=None, keypair=None, ipaddress=None, mode='default', + method='GET', hypervisor="XenServer", customcpunumber=None, + customcpuspeed=None, custommemory=None, rootdisksize=None): """Create the instance""" cmd = deployVirtualMachine.deployVirtualMachineCmd() @@ -410,12 +422,12 @@ class VirtualMachine: cmd.securitygroupids = [str(sg_id) for sg_id in securitygroupids] if "affinitygroupnames" in services: - cmd.affinitygroupnames = services["affinitygroupnames"] + cmd.affinitygroupnames = services["affinitygroupnames"] elif affinitygroupnames: - cmd.affinitygroupnames = affinitygroupnames + cmd.affinitygroupnames = affinitygroupnames if affinitygroupids: - cmd.affinitygroupids = affinitygroupids + cmd.affinitygroupids = affinitygroupids if projectid: cmd.projectid = projectid @@ -446,25 +458,31 @@ class VirtualMachine: if group: cmd.group = group - #program default access to ssh + # program default access to ssh if mode.lower() == 'basic': cls.ssh_access_group(apiclient, cmd) virtual_machine = apiclient.deployVirtualMachine(cmd, method=method) virtual_machine.ssh_ip = virtual_machine.nic[0].ipaddress - if startvm == False: + if startvm is False: virtual_machine.public_ip = virtual_machine.nic[0].ipaddress return VirtualMachine(virtual_machine.__dict__, services) - #program ssh access over NAT via PF + # program ssh access over NAT via PF if mode.lower() == 'advanced': - cls.access_ssh_over_nat(apiclient, services, virtual_machine, allow_egress=allow_egress) + cls.access_ssh_over_nat( + apiclient, + services, + virtual_machine, + allow_egress=allow_egress) elif mode.lower() == 'basic': if virtual_machine.publicip is not None: - vm_ssh_ip = virtual_machine.publicip #EIP/ELB (netscaler) enabled zone + # EIP/ELB (netscaler) enabled zone + vm_ssh_ip = virtual_machine.publicip else: - vm_ssh_ip = virtual_machine.nic[0].ipaddress #regular basic zone with security group + # regular basic zone with security group + vm_ssh_ip = virtual_machine.nic[0].ipaddress virtual_machine.ssh_ip = vm_ssh_ip virtual_machine.public_ip = vm_ssh_ip @@ -508,12 +526,14 @@ class VirtualMachine: cmd.templateid = templateid return apiclient.restoreVirtualMachine(cmd) - def get_ssh_client(self, ipaddress=None, reconnect=False, port=None, keyPairFileLocation=None): + def get_ssh_client( + self, ipaddress=None, reconnect=False, port=None, + keyPairFileLocation=None): """Get SSH object of VM""" # If NAT Rules are not created while VM deployment in Advanced mode # then, IP address must be passed - if ipaddress != None: + if ipaddress is not None: self.ssh_ip = ipaddress if port: self.ssh_port = port @@ -523,19 +543,19 @@ class VirtualMachine: if reconnect: self.ssh_client = is_server_ssh_ready( - self.ssh_ip, - self.ssh_port, - self.username, - self.password, - keyPairFileLocation=keyPairFileLocation - ) + self.ssh_ip, + self.ssh_port, + self.username, + self.password, + keyPairFileLocation=keyPairFileLocation + ) self.ssh_client = self.ssh_client or is_server_ssh_ready( - self.ssh_ip, - self.ssh_port, - self.username, - self.password, - keyPairFileLocation=keyPairFileLocation - ) + self.ssh_ip, + self.ssh_port, + self.username, + self.password, + keyPairFileLocation=keyPairFileLocation + ) return self.ssh_client def getState(self, apiclient, state, timeout=600): @@ -628,7 +648,8 @@ class VirtualMachine: def update_default_nic(self, apiclient, nicId): """Set a NIC to be the default network adapter for a VM""" - cmd = updateDefaultNicForVirtualMachine.updateDefaultNicForVirtualMachineCmd() + cmd = updateDefaultNicForVirtualMachine.\ + updateDefaultNicForVirtualMachineCmd() cmd.nicid = nicId cmd.virtualmachineid = self.id return apiclient.updateDefaultNicForVirtualMachine(cmd) @@ -655,7 +676,8 @@ class VirtualMachine: def change_service_offering(self, apiclient, serviceOfferingId): """Change service offering of the instance""" - cmd = changeServiceForVirtualMachine.changeServiceForVirtualMachineCmd() + cmd = changeServiceForVirtualMachine.\ + changeServiceForVirtualMachineCmd() cmd.id = self.id cmd.serviceofferingid = serviceOfferingId return apiclient.changeServiceForVirtualMachine(cmd) @@ -666,12 +688,15 @@ class VirtualMachine: cmd = listVirtualMachines.listVirtualMachinesCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listVirtualMachines(cmd)) def resetPassword(self, apiclient): """Resets VM password if VM created using password enabled template""" - cmd = resetPasswordForVirtualMachine.resetPasswordForVirtualMachineCmd() + cmd = resetPasswordForVirtualMachine.\ + resetPasswordForVirtualMachineCmd() cmd.id = self.id try: response = apiclient.resetPasswordForVirtualMachine(cmd) @@ -683,15 +708,15 @@ class VirtualMachine: def assign_virtual_machine(self, apiclient, account, domainid): """Move a user VM to another user under same domain.""" - cmd = assignVirtualMachine.assignVirtualMachineCmd() + cmd = assignVirtualMachine.assignVirtualMachineCmd() cmd.virtualmachineid = self.id - cmd.account = account - cmd.domainid = domainid + cmd.account = account + cmd.domainid = domainid try: response = apiclient.assignVirtualMachine(cmd) return response except Exception as e: - raise Exception("assignVirtualMachine failed - %s" %e) + raise Exception("assignVirtualMachine failed - %s" % e) def update_affinity_group(self, apiclient, affinitygroupids=None, affinitygroupnames=None): @@ -713,7 +738,7 @@ class VirtualMachine: cmd = scaleVirtualMachine.scaleVirtualMachineCmd() cmd.id = self.id cmd.serviceofferingid = serviceOfferingId - cmd.details = [{"cpuNumber": "","cpuSpeed":"","memory":""}] + cmd.details = [{"cpuNumber": "", "cpuSpeed": "", "memory": ""}] if customcpunumber: cmd.details[0]["cpuNumber"] = customcpunumber if customcpuspeed: @@ -762,7 +787,7 @@ class Volume: @classmethod def create_custom_disk(cls, apiclient, services, account=None, - domainid=None, diskofferingid=None): + domainid=None, diskofferingid=None): """Create Volume from Custom disk offering""" cmd = createVolume.createVolumeCmd() cmd.name = services["diskname"] @@ -818,6 +843,8 @@ class Volume: cmd = listVolumes.listVolumesCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listVolumes(cmd)) def resize(self, apiclient, **kwargs): @@ -828,7 +855,8 @@ class Volume: return(apiclient.resizeVolume(cmd)) @classmethod - def upload(cls, apiclient, services, zoneid=None, account=None, domainid=None, url=None): + def upload(cls, apiclient, services, zoneid=None, + account=None, domainid=None, url=None): """Uploads the volume to specified account""" cmd = uploadVolume.uploadVolumeCmd() @@ -853,10 +881,10 @@ class Volume: while True: volume_response = Volume.list( - apiclient, - id=self.id, - zoneid=self.zoneid, - ) + apiclient, + id=self.id, + zoneid=self.zoneid, + ) if isinstance(volume_response, list): volume = volume_response[0] @@ -871,7 +899,7 @@ class Volume: elif 'Installing' not in volume.state: raise Exception( "Error in uploading volume: status - %s" % - volume.state) + volume.state) elif timeout == 0: break @@ -905,7 +933,7 @@ class Snapshot: @classmethod def create(cls, apiclient, volume_id, account=None, - domainid=None, projectid=None): + domainid=None, projectid=None): """Create Snapshot""" cmd = createSnapshot.createSnapshotCmd() cmd.volumeid = volume_id @@ -929,6 +957,8 @@ class Snapshot: cmd = listSnapshots.listSnapshotsCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listSnapshots(cmd)) @@ -957,16 +987,20 @@ class Template: if not isinstance(ostypes, list): raise Exception( "Unable to find Ostype id with desc: %s" % - services["ostype"]) + services["ostype"]) cmd.ostypeid = ostypes[0].id else: raise Exception( - "Unable to find Ostype is required for creating template") + "Unable to find Ostype is required for creating template") - cmd.isfeatured = services["isfeatured"] if "isfeatured" in services else False - cmd.ispublic = services["ispublic"] if "ispublic" in services else False - cmd.isextractable = services["isextractable"] if "isextractable" in services else False - cmd.passwordenabled = services["passwordenabled"] if "passwordenabled" in services else False + cmd.isfeatured = services[ + "isfeatured"] if "isfeatured" in services else False + cmd.ispublic = services[ + "ispublic"] if "ispublic" in services else False + cmd.isextractable = services[ + "isextractable"] if "isextractable" in services else False + cmd.passwordenabled = services[ + "passwordenabled"] if "passwordenabled" in services else False if volumeid: cmd.volumeid = volumeid @@ -983,7 +1017,7 @@ class Template: @classmethod def register(cls, apiclient, services, zoneid=None, - account=None, domainid=None, hypervisor=None): + account=None, domainid=None, hypervisor=None): """Create template from URL""" # Create template from Virtual machine and Volume ID @@ -991,7 +1025,7 @@ class Template: cmd.displaytext = services["displaytext"] cmd.name = "-".join([services["name"], random_gen()]) cmd.format = services["format"] - cmd.hypervisor = hypervisor + cmd.hypervisor = hypervisor if "ostypeid" in services: cmd.ostypeid = services["ostypeid"] @@ -1004,11 +1038,11 @@ class Template: if not isinstance(ostypes, list): raise Exception( "Unable to find Ostype id with desc: %s" % - services["ostype"]) + services["ostype"]) cmd.ostypeid = ostypes[0].id else: raise Exception( - "Unable to find Ostype is required for registering template") + "Unable to find Ostype is required for registering template") cmd.url = services["url"] @@ -1017,10 +1051,14 @@ class Template: else: cmd.zoneid = services["zoneid"] - cmd.isfeatured = services["isfeatured"] if "isfeatured" in services else False - cmd.ispublic = services["ispublic"] if "ispublic" in services else False - cmd.isextractable = services["isextractable"] if "isextractable" in services else False - cmd.passwordenabled = services["passwordenabled"] if "passwordenabled" in services else False + cmd.isfeatured = services[ + "isfeatured"] if "isfeatured" in services else False + cmd.ispublic = services[ + "ispublic"] if "ispublic" in services else False + cmd.isextractable = services[ + "isextractable"] if "isextractable" in services else False + cmd.passwordenabled = services[ + "passwordenabled"] if "passwordenabled" in services else False if account: cmd.account = account @@ -1047,15 +1085,15 @@ class Template: @classmethod def create_from_snapshot(cls, apiclient, snapshot, services, - random_name=True): + random_name=True): """Create Template from snapshot""" # Create template from Virtual machine and Snapshot ID cmd = createTemplate.createTemplateCmd() cmd.displaytext = services["displaytext"] cmd.name = "-".join([ - services["name"], - random_gen() - ]) if random_name else services["name"] + services["name"], + random_gen() + ]) if random_name else services["name"] if "ostypeid" in services: cmd.ostypeid = services["ostypeid"] @@ -1068,11 +1106,11 @@ class Template: if not isinstance(ostypes, list): raise Exception( "Unable to find Ostype id with desc: %s" % - services["ostype"]) + services["ostype"]) cmd.ostypeid = ostypes[0].id else: raise Exception( - "Unable to find Ostype is required for creating template") + "Unable to find Ostype is required for creating template") cmd.snapshotid = snapshot.id return Template(apiclient.createTemplate(cmd).__dict__) @@ -1091,11 +1129,11 @@ class Template: while True: template_response = Template.list( - apiclient, - id=self.id, - zoneid=self.zoneid, - templatefilter='self' - ) + apiclient, + id=self.id, + zoneid=self.zoneid, + templatefilter='self' + ) if isinstance(template_response, list): template = template_response[0] @@ -1112,7 +1150,7 @@ class Template: elif 'Installing' not in template.status: raise Exception( "Error in downloading template: status - %s" % - template.status) + template.status) elif timeout == 0: break @@ -1155,6 +1193,8 @@ class Template: cmd = listTemplates.listTemplatesCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listTemplates(cmd)) @@ -1166,7 +1206,7 @@ class Iso: @classmethod def create(cls, apiclient, services, account=None, domainid=None, - projectid=None): + projectid=None): """Create an ISO""" # Create ISO from URL cmd = registerIso.registerIsoCmd() @@ -1183,11 +1223,11 @@ class Iso: if not isinstance(ostypes, list): raise Exception( "Unable to find Ostype id with desc: %s" % - services["ostype"]) + services["ostype"]) cmd.ostypeid = ostypes[0].id else: raise Exception( - "Unable to find Ostype is required for creating ISO") + "Unable to find Ostype is required for creating ISO") cmd.url = services["url"] cmd.zoneid = services["zoneid"] @@ -1237,10 +1277,10 @@ class Iso: if response.status == 'Successfully Installed': return elif 'Downloaded' not in response.status and \ - 'Installing' not in response.status: + 'Installing' not in response.status: raise Exception( "Error In Downloading ISO: ISO Status - %s" % - response.status) + response.status) elif timeout == 0: raise Exception("ISO download Timeout Exception") @@ -1284,6 +1324,8 @@ class Iso: cmd = listIsos.listIsosCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listIsos(cmd)) @@ -1294,8 +1336,9 @@ class PublicIPAddress: self.__dict__.update(items) @classmethod - def create(cls, apiclient, accountid=None, zoneid=None, domainid=None, services=None, - networkid=None, projectid=None, vpcid=None, isportable=False): + def create(cls, apiclient, accountid=None, zoneid=None, domainid=None, + services=None, networkid=None, projectid=None, vpcid=None, + isportable=False): """Associate Public IP address""" cmd = associateIpAddress.associateIpAddressCmd() @@ -1340,6 +1383,8 @@ class PublicIPAddress: cmd = listPublicIpAddresses.listPublicIpAddressesCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listPublicIpAddresses(cmd)) @@ -1400,6 +1445,8 @@ class NATRule: cmd = listPortForwardingRules.listPortForwardingRulesCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listPortForwardingRules(cmd)) @@ -1410,7 +1457,8 @@ class StaticNATRule: self.__dict__.update(items) @classmethod - def create(cls, apiclient, services, ipaddressid=None, networkid=None, vpcid=None): + def create(cls, apiclient, services, ipaddressid=None, + networkid=None, vpcid=None): """Creates static ip forwarding rule""" cmd = createFirewallRule.createFirewallRuleCmd() @@ -1448,11 +1496,13 @@ class StaticNATRule: cmd = listIpForwardingRules.listIpForwardingRulesCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listIpForwardingRules(cmd)) @classmethod def enable(cls, apiclient, ipaddressid, virtualmachineid, networkid=None, - vmguestip=None): + vmguestip=None): """Enables Static NAT rule""" cmd = enableStaticNat.enableStaticNatCmd() @@ -1477,6 +1527,7 @@ class StaticNATRule: class EgressFireWallRule: + """Manage Egress Firewall rule""" def __init__(self, items): @@ -1496,7 +1547,8 @@ class EgressFireWallRule: if endport: cmd.endport = endport - return EgressFireWallRule(apiclient.createEgressFirewallRule(cmd).__dict__) + return EgressFireWallRule( + apiclient.createEgressFirewallRule(cmd).__dict__) def delete(self, apiclient): """Delete Egress Firewall rule""" @@ -1511,11 +1563,13 @@ class EgressFireWallRule: cmd = listEgressFirewallRules.listEgressFirewallRulesCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listEgressFirewallRules(cmd)) - class FireWallRule: + """Manage Firewall rule""" def __init__(self, items): @@ -1556,10 +1610,13 @@ class FireWallRule: cmd = listFirewallRules.listFirewallRulesCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listFirewallRules(cmd)) class ServiceOffering: + """Manage service offerings cycle""" def __init__(self, items): @@ -1593,7 +1650,8 @@ class ServiceOffering: cmd.deploymentplanner = services["deploymentplanner"] if "serviceofferingdetails" in services: - cmd.serviceofferingdetails.append({services['serviceofferingdetails']}) + cmd.serviceofferingdetails.append( + {services['serviceofferingdetails']}) if "isvolatile" in services: cmd.isvolatile = services["isvolatile"] @@ -1621,6 +1679,8 @@ class ServiceOffering: cmd = listServiceOfferings.listServiceOfferingsCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listServiceOfferings(cmd)) @@ -1662,6 +1722,8 @@ class DiskOffering: cmd = listDiskOfferings.listDiskOfferingsCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listDiskOfferings(cmd)) @@ -1690,18 +1752,19 @@ class NetworkOffering: if "serviceProviderList" in services: for service, provider in services["serviceProviderList"].items(): cmd.serviceproviderlist.append({ - 'service': service, - 'provider': provider - }) + 'service': service, + 'provider': provider + }) if "serviceCapabilityList" in services: cmd.servicecapabilitylist = [] - for service, capability in services["serviceCapabilityList"].items(): + for service, capability in services["serviceCapabilityList"].\ + items(): for ctype, value in capability.items(): cmd.servicecapabilitylist.append({ - 'service': service, - 'capabilitytype': ctype, - 'capabilityvalue': value - }) + 'service': service, + 'capabilitytype': ctype, + 'capabilityvalue': value + }) if "specifyVlan" in services: cmd.specifyVlan = services["specifyVlan"] if "specifyIpRanges" in services: @@ -1738,6 +1801,8 @@ class NetworkOffering: cmd = listNetworkOfferings.listNetworkOfferingsCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listNetworkOfferings(cmd)) @@ -1771,6 +1836,8 @@ class SnapshotPolicy: cmd = listSnapshotPolicies.listSnapshotPoliciesCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listSnapshotPolicies(cmd)) class Hypervisor: @@ -1785,6 +1852,8 @@ class Hypervisor: cmd = listHypervisors.listHypervisorsCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listHypervisors(cmd)) @@ -1854,7 +1923,8 @@ class LoadBalancerRule: apiclient.removeFromLoadBalancerRule(cmd) return - def update(self, apiclient, algorithm=None, description=None, name=None, **kwargs): + def update(self, apiclient, algorithm=None, + description=None, name=None, **kwargs): """Updates the load balancing rule""" cmd = updateLoadBalancerRule.updateLoadBalancerRuleCmd() cmd.id = self.id @@ -1868,7 +1938,8 @@ class LoadBalancerRule: [setattr(cmd, k, v) for k, v in kwargs.items()] return apiclient.updateLoadBalancerRule(cmd) - def createSticky(self, apiclient, methodname, name, description=None, param=None): + def createSticky( + self, apiclient, methodname, name, description=None, param=None): """Creates a sticky policy for the LB rule""" cmd = createLBStickinessPolicy.createLBStickinessPolicyCmd() @@ -1897,6 +1968,8 @@ class LoadBalancerRule: cmd = listLBStickinessPolicies.listLBStickinessPoliciesCmd() cmd.lbruleid = lbruleid [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return apiclient.listLBStickinessPolicies(cmd) @classmethod @@ -1905,6 +1978,8 @@ class LoadBalancerRule: cmd = listLoadBalancerRules.listLoadBalancerRulesCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listLoadBalancerRules(cmd)) @@ -1955,6 +2030,8 @@ class Cluster: cmd = listClusters.listClustersCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listClusters(cmd)) @@ -2011,12 +2088,14 @@ class Host: while retries: lh_resp = apiclient.listHosts(host[0].id) ret = validateList(lh_resp) - if (ret[0] == PASS) and (str(ret[1].state).lower() == 'up'): + if (ret[0] == PASS) and \ + (str(ret[1].state).lower() == 'up'): return Host(host[0].__dict__) retries += -1 return FAILED - except Exception, e: - print "Exception Occurred Under Host.create : %s" % GetDetailExceptionInfo(e) + except Exception as e: + print "Exception Occurred Under Host.create : %s" % \ + GetDetailExceptionInfo(e) return FAILED def delete(self, apiclient): @@ -2068,6 +2147,8 @@ class Host: cmd = listHosts.listHostsCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listHosts(cmd)) @classmethod @@ -2076,6 +2157,8 @@ class Host: cmd = findHostsForMigration.findHostsForMigrationCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.findHostsForMigration(cmd)) @classmethod @@ -2095,7 +2178,7 @@ class StoragePool: @classmethod def create(cls, apiclient, services, clusterid=None, - zoneid=None, podid=None): + zoneid=None, podid=None): """Create Storage pool (Primary Storage)""" cmd = createStoragePool.createStoragePoolCmd() @@ -2145,6 +2228,8 @@ class StoragePool: cmd = listStoragePools.listStoragePoolsCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listStoragePools(cmd)) @classmethod @@ -2153,6 +2238,8 @@ class StoragePool: cmd = findStoragePoolsForMigration.findStoragePoolsForMigrationCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.findStoragePoolsForMigration(cmd)) class Network: @@ -2243,6 +2330,8 @@ class Network: cmd = listNetworks.listNetworksCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listNetworks(cmd)) @@ -2254,7 +2343,8 @@ class NetworkACL: @classmethod def create(cls, apiclient, services, networkid=None, protocol=None, - number=None, aclid=None, action='Allow', traffictype=None, cidrlist=[]): + number=None, aclid=None, action='Allow', + traffictype=None, cidrlist=[]): """Create network ACL rules(Ingress/Egress)""" cmd = createNetworkACL.createNetworkACLCmd() @@ -2317,6 +2407,8 @@ class NetworkACL: cmd = listNetworkACLs.listNetworkACLsCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listNetworkACLs(cmd)) @@ -2327,7 +2419,8 @@ class NetworkACLList: self.__dict__.update(items) @classmethod - def create(cls, apiclient, services, name=None, description=None, vpcid=None): + def create( + cls, apiclient, services, name=None, description=None, vpcid=None): """Create network ACL container list""" cmd = createNetworkACLList.createNetworkACLListCmd() @@ -2361,6 +2454,8 @@ class NetworkACLList: cmd = listNetworkACLLists.listNetworkACLListsCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listNetworkACLLists(cmd)) @@ -2372,7 +2467,7 @@ class Vpn: @classmethod def create(cls, apiclient, publicipid, account=None, domainid=None, - projectid=None, networkid=None, vpcid=None): + projectid=None, networkid=None, vpcid=None): """Create VPN for Public IP address""" cmd = createRemoteAccessVpn.createRemoteAccessVpnCmd() cmd.publicipid = publicipid @@ -2401,6 +2496,8 @@ class Vpn: cmd = listRemoteAccessVpns.listRemoteAccessVpnsCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listRemoteAccessVpns(cmd)) @@ -2445,6 +2542,8 @@ class VpnUser: cmd = listVpnUsers.listVpnUsersCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listVpnUsers(cmd)) @@ -2495,6 +2594,8 @@ class Zone: cmd = listZones.listZonesCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listZones(cmd)) @@ -2530,6 +2631,8 @@ class Pod: cmd = listPods.listPodsCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return apiclient.listPods(cmd) @@ -2569,10 +2672,13 @@ class PublicIpRange: cmd = listVlanIpRanges.listVlanIpRangesCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listVlanIpRanges(cmd)) @classmethod - def dedicate(cls, apiclient, id, account=None, domainid=None, projectid=None): + def dedicate( + cls, apiclient, id, account=None, domainid=None, projectid=None): """Dedicate VLAN IP range""" cmd = dedicatePublicIpRange.dedicatePublicIpRangeCmd() @@ -2610,7 +2716,8 @@ class PortablePublicIpRange: if "vlan" in services: cmd.vlan = services["vlan"] - return PortablePublicIpRange(apiclient.createPortableIpRange(cmd).__dict__) + return PortablePublicIpRange( + apiclient.createPortableIpRange(cmd).__dict__) def delete(self, apiclient): """Delete portable IpRange""" @@ -2625,6 +2732,8 @@ class PortablePublicIpRange: cmd = listPortableIpRanges.listPortableIpRangesCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listPortableIpRanges(cmd)) class SecondaryStagingStore: @@ -2659,6 +2768,8 @@ class SecondaryStagingStore: def list(cls, apiclient, **kwargs): cmd = listSecondaryStagingStores.listSecondaryStagingStoresCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listSecondaryStagingStores(cmd)) @@ -2694,6 +2805,8 @@ class ImageStore: def list(cls, apiclient, **kwargs): cmd = listImageStores.listImageStoresCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listImageStores(cmd)) @@ -2738,7 +2851,8 @@ class PhysicalNetwork: return apiclient.addTrafficType(cmd) @classmethod - def dedicate(cls, apiclient, vlanrange, physicalnetworkid, account=None, domainid=None, projectid=None): + def dedicate(cls, apiclient, vlanrange, physicalnetworkid, + account=None, domainid=None, projectid=None): """Dedicate guest vlan range""" cmd = dedicateGuestVlanRange.dedicateGuestVlanRangeCmd() @@ -2752,7 +2866,8 @@ class PhysicalNetwork: def release(self, apiclient): """Release guest vlan range""" - cmd = releaseDedicatedGuestVlanRange.releaseDedicatedGuestVlanRangeCmd() + cmd = releaseDedicatedGuestVlanRange.\ + releaseDedicatedGuestVlanRangeCmd() cmd.id = self.id return apiclient.releaseDedicatedGuestVlanRange(cmd) @@ -2762,6 +2877,8 @@ class PhysicalNetwork: cmd = listDedicatedGuestVlanRanges.listDedicatedGuestVlanRangesCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return apiclient.listDedicatedGuestVlanRanges(cmd) @classmethod @@ -2770,7 +2887,10 @@ class PhysicalNetwork: cmd = listPhysicalNetworks.listPhysicalNetworksCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] - return map(lambda pn : PhysicalNetwork(pn.__dict__), apiclient.listPhysicalNetworks(cmd)) + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True + return map(lambda pn: PhysicalNetwork( + pn.__dict__), apiclient.listPhysicalNetworks(cmd)) class SecurityGroup: @@ -2865,9 +2985,9 @@ class SecurityGroup: cmd.usersecuritygrouplist = [] for account, group in user_secgrp_list.items(): cmd.usersecuritygrouplist.append({ - 'account': account, - 'group': group - }) + 'account': account, + 'group': group + }) return (apiclient.authorizeSecurityGroupEgress(cmd).__dict__) @@ -2884,6 +3004,8 @@ class SecurityGroup: cmd = listSecurityGroups.listSecurityGroupsCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listSecurityGroups(cmd)) @@ -2895,7 +3017,7 @@ class VpnCustomerGateway: @classmethod def create(cls, apiclient, services, name, gateway, cidrlist, - account=None, domainid=None): + account=None, domainid=None): """Create VPN Customer Gateway""" cmd = createVpnCustomerGateway.createVpnCustomerGatewayCmd() cmd.name = name @@ -2917,7 +3039,8 @@ class VpnCustomerGateway: cmd.account = account if domainid: cmd.domainid = domainid - return VpnCustomerGateway(apiclient.createVpnCustomerGateway(cmd).__dict__) + return VpnCustomerGateway( + apiclient.createVpnCustomerGateway(cmd).__dict__) def update(self, apiclient, services, name, gateway, cidrlist): """Updates VPN Customer Gateway""" @@ -2954,6 +3077,8 @@ class VpnCustomerGateway: cmd = listVpnCustomerGateways.listVpnCustomerGatewaysCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listVpnCustomerGateways(cmd)) @@ -3031,6 +3156,8 @@ class Project: cmd = listProjectAccounts.listProjectAccountsCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listProjectAccounts(cmd)) @classmethod @@ -3039,6 +3166,8 @@ class Project: cmd = listProjects.listProjectsCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listProjects(cmd)) @@ -3075,6 +3204,8 @@ class ProjectInvitation: cmd = listProjectInvitations.listProjectInvitationsCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listProjectInvitations(cmd)) @@ -3096,6 +3227,8 @@ class Configurations: cmd = listConfigurations.listConfigurationsCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listConfigurations(cmd)) @@ -3106,7 +3239,8 @@ class NetScaler: self.__dict__.update(items) @classmethod - def add(cls, apiclient, services, physicalnetworkid, username=None, password=None): + def add(cls, apiclient, services, physicalnetworkid, + username=None, password=None): """Add external netscaler device to cloudstack""" cmd = addNetscalerLoadBalancer.addNetscalerLoadBalancerCmd() @@ -3126,11 +3260,14 @@ class NetScaler: # Generate the URL url = 'https://' + str(services["ipaddress"]) + '?' url = url + 'publicinterface=' + str(services["publicinterface"]) + '&' - url = url + 'privateinterface=' + str(services["privateinterface"]) + '&' + url = url + 'privateinterface=' + \ + str(services["privateinterface"]) + '&' url = url + 'numretries=' + str(services["numretries"]) + '&' - if not services["lbdevicededicated"] and "lbdevicecapacity" in services: - url = url + 'lbdevicecapacity=' + str(services["lbdevicecapacity"]) + '&' + if not services["lbdevicededicated"] and \ + "lbdevicecapacity" in services: + url = url + 'lbdevicecapacity=' + \ + str(services["lbdevicecapacity"]) + '&' url = url + 'lbdevicededicated=' + str(services["lbdevicededicated"]) @@ -3148,7 +3285,8 @@ class NetScaler: def configure(self, apiclient, **kwargs): """List already registered netscaler devices""" - cmd = configureNetscalerLoadBalancer.configureNetscalerLoadBalancerCmd() + cmd = configureNetscalerLoadBalancer.\ + configureNetscalerLoadBalancerCmd() cmd.lbdeviceid = self.lbdeviceid [setattr(cmd, k, v) for k, v in kwargs.items()] return(apiclient.configureNetscalerLoadBalancer(cmd)) @@ -3159,6 +3297,8 @@ class NetScaler: cmd = listNetscalerLoadBalancers.listNetscalerLoadBalancersCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listNetscalerLoadBalancers(cmd)) @@ -3176,7 +3316,8 @@ class NetworkServiceProvider: cmd.name = name cmd.physicalnetworkid = physicalnetworkid cmd.servicelist = servicelist - return NetworkServiceProvider(apiclient.addNetworkServiceProvider(cmd).__dict__) + return NetworkServiceProvider( + apiclient.addNetworkServiceProvider(cmd).__dict__) def delete(self, apiclient): """Deletes network service provider""" @@ -3208,6 +3349,8 @@ class NetworkServiceProvider: cmd = listNetworkServiceProviders.listNetworkServiceProvidersCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listNetworkServiceProviders(cmd)) @@ -3261,6 +3404,8 @@ class Router: cmd = listRouters.listRoutersCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listRouters(cmd)) @@ -3280,9 +3425,9 @@ class Tag: cmd.tags = [] for key, value in tags.items(): cmd.tags.append({ - 'key': key, - 'value': value - }) + 'key': key, + 'value': value + }) return Tag(apiclient.createTags(cmd).__dict__) def delete(self, apiclient, resourceIds, resourceType, tags): @@ -3294,9 +3439,9 @@ class Tag: cmd.tags = [] for key, value in tags.items(): cmd.tags.append({ - 'key': key, - 'value': value - }) + 'key': key, + 'value': value + }) apiclient.deleteTags(cmd) @classmethod @@ -3305,6 +3450,8 @@ class Tag: cmd = listTags.listTagsCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listTags(cmd)) @@ -3325,18 +3472,19 @@ class VpcOffering: if "serviceProviderList" in services: for service, provider in services["serviceProviderList"].items(): cmd.serviceproviderlist.append({ - 'service': service, - 'provider': provider - }) + 'service': service, + 'provider': provider + }) if "serviceCapabilityList" in services: cmd.servicecapabilitylist = [] - for service, capability in services["serviceCapabilityList"].items(): + for service, capability in \ + services["serviceCapabilityList"].items(): for ctype, value in capability.items(): cmd.servicecapabilitylist.append({ - 'service': service, - 'capabilitytype': ctype, - 'capabilityvalue': value - }) + 'service': service, + 'capabilitytype': ctype, + 'capabilityvalue': value + }) return VpcOffering(apiclient.createVPCOffering(cmd).__dict__) def update(self, apiclient, name=None, displaytext=None, state=None): @@ -3358,6 +3506,8 @@ class VpcOffering: cmd = listVPCOfferings.listVPCOfferingsCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listVPCOfferings(cmd)) def delete(self, apiclient): @@ -3376,7 +3526,8 @@ class VPC: @classmethod def create(cls, apiclient, services, vpcofferingid, - zoneid, networkDomain=None, account=None, domainid=None, **kwargs): + zoneid, networkDomain=None, account=None, + domainid=None, **kwargs): """Creates the virtual private connection (VPC)""" cmd = createVPC.createVPCCmd() @@ -3426,6 +3577,8 @@ class VPC: cmd = listVPCs.listVPCsCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listVPCs(cmd)) @@ -3437,7 +3590,7 @@ class PrivateGateway: @classmethod def create(cls, apiclient, gateway, ipaddress, netmask, vlan, vpcid, - physicalnetworkid=None): + physicalnetworkid=None): """Create private gateway""" cmd = createPrivateGateway.createPrivateGatewayCmd() @@ -3464,6 +3617,8 @@ class PrivateGateway: cmd = listPrivateGateways.listPrivateGatewaysCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listPrivateGateways(cmd)) @@ -3495,6 +3650,8 @@ class AffinityGroup: def list(cls, apiclient, **kwargs): cmd = listAffinityGroups.listAffinityGroupsCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return apiclient.listAffinityGroups(cmd) class StaticRoute: @@ -3524,6 +3681,8 @@ class StaticRoute: cmd = listStaticRoutes.listStaticRoutesCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listStaticRoutes(cmd)) @@ -3532,7 +3691,8 @@ class VNMC: def __init__(self, items): self.__dict__.update(items) - def create(cls, apiclient, hostname, username, password, physicalnetworkid): + def create(cls, apiclient, hostname, username, password, + physicalnetworkid): """Registers VNMC appliance""" cmd = addCiscoVnmcResource.addCiscoVnmcResourceCmd() @@ -3555,6 +3715,8 @@ class VNMC: cmd = listCiscoVnmcResources.listCiscoVnmcResourcesCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listCiscoVnmcResources(cmd)) @@ -3566,7 +3728,7 @@ class SSHKeyPair: @classmethod def create(cls, apiclient, name=None, account=None, - domainid=None, projectid=None): + domainid=None, projectid=None): """Creates SSH keypair""" cmd = createSSHKeyPair.createSSHKeyPairCmd() cmd.name = name @@ -3597,6 +3759,8 @@ class SSHKeyPair: """List all SSH key pairs""" cmd = listSSHKeyPairs.listSSHKeyPairsCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listSSHKeyPairs(cmd)) @@ -3609,6 +3773,8 @@ class Capacities: cmd = listCapacity.listCapacityCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listCapacity(cmd)) @@ -3621,6 +3787,8 @@ class Alert: cmd = listAlerts.listAlertsCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listAlerts(cmd)) @@ -3665,6 +3833,8 @@ class InstanceGroup: """List all instance groups""" cmd = listInstanceGroups.listInstanceGroupsCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return (apiclient.listInstanceGroups(cmd)) def startInstances(self, apiclient): @@ -3698,7 +3868,8 @@ class InstanceGroup: def changeServiceOffering(self, apiclient, serviceOfferingId): """Change service offering of the vm tier""" - cmd = changeServiceForVirtualMachine.changeServiceForVirtualMachineCmd() + cmd = changeServiceForVirtualMachine.\ + changeServiceForVirtualMachineCmd() cmd.group = self.id cmd.serviceofferingid = serviceOfferingId return apiclient.changeServiceForVirtualMachine(cmd) @@ -3712,7 +3883,8 @@ class InstanceGroup: class ASA1000V: """Manage ASA 1000v lifecycle""" - def create(cls, apiclient, hostname, insideportprofile, clusterid, physicalnetworkid): + def create(cls, apiclient, hostname, insideportprofile, + clusterid, physicalnetworkid): """Registers ASA 1000v appliance""" cmd = addCiscoAsa1000vResource.addCiscoAsa1000vResourceCmd() @@ -3735,6 +3907,8 @@ class ASA1000V: cmd = listCiscoAsa1000vResources.listCiscoAsa1000vResourcesCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listCiscoAsa1000vResources(cmd)) class VmSnapshot: @@ -3742,7 +3916,8 @@ class VmSnapshot: def __init__(self, items): self.__dict__.update(items) @classmethod - def create(cls,apiclient,vmid,snapshotmemory="false",name=None,description=None): + def create(cls, apiclient, vmid, snapshotmemory="false", + name=None, description=None): cmd = createVMSnapshot.createVMSnapshotCmd() cmd.virtualmachineid = vmid @@ -3758,17 +3933,19 @@ class VmSnapshot: def list(cls, apiclient, **kwargs): cmd = listVMSnapshot.listVMSnapshotCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listVMSnapshot(cmd)) @classmethod - def revertToSnapshot(cls, apiclient,vmsnapshotid): + def revertToSnapshot(cls, apiclient, vmsnapshotid): cmd = revertToVMSnapshot.revertToVMSnapshotCmd() cmd.vmsnapshotid = vmsnapshotid return apiclient.revertToVMSnapshot(cmd) @classmethod - def deleteVMSnapshot(cls,apiclient,vmsnapshotid): + def deleteVMSnapshot(cls, apiclient, vmsnapshotid): cmd = deleteVMSnapshot.deleteVMSnapshotCmd() cmd.vmsnapshotid = vmsnapshotid @@ -3796,6 +3973,8 @@ class Region: def list(cls, apiclient, **kwargs): cmd = listRegions.listRegionsCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True region = apiclient.listRegions(cmd) return region @@ -3823,8 +4002,9 @@ class ApplicationLoadBalancer: self.__dict__.update(items) @classmethod - def create(cls, apiclient, services, name=None, sourceport=None, instanceport=22, - algorithm="roundrobin", scheme="internal", sourcenetworkid=None, networkid=None): + def create(cls, apiclient, services, name=None, sourceport=None, + instanceport=22, algorithm="roundrobin", scheme="internal", + sourcenetworkid=None, networkid=None): """Create Application Load Balancer""" cmd = createLoadBalancer.createLoadBalancerCmd() @@ -3893,6 +4073,8 @@ class ApplicationLoadBalancer: """List all appln load balancers""" cmd = listLoadBalancers.listLoadBalancersCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listLoadBalancerRules(cmd)) class Resources: @@ -3907,6 +4089,8 @@ class Resources: cmd = listResourceLimits.listResourceLimitsCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listResourceLimits(cmd)) @classmethod @@ -3940,7 +4124,7 @@ class NIC: return(apiclient.addIpToNic(cmd)) @classmethod - def removeIp(cls,apiclient,ipaddressid): + def removeIp(cls, apiclient, ipaddressid): """Remove secondary Ip from NIC""" cmd = removeIpFromNic.removeIpFromNicCmd() cmd.id = ipaddressid @@ -3952,6 +4136,8 @@ class NIC: cmd = listNics.listNicsCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listNics(cmd)) class IAMGroup: @@ -3981,7 +4167,8 @@ class IAMGroup: def list(cls, apiclient, **kwargs): cmd = listIAMGroups.listIAMGroupsCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] - return apiclient.listIAMGroups(cmd) + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True def addAccount(self, apiclient, accts): """Add accounts to iam group""" @@ -4042,7 +4229,9 @@ class IAMPolicy: def list(cls, apiclient, **kwargs): cmd = listIAMPolicies.listIAMPoliciesCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] - return apiclient.listIAMPolicies(cmd) + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True + return apiclient.listIAMPoliciesCmd(cmd) def addPermission(self, apiclient, permission): """Add permission to iam policy""" @@ -4057,7 +4246,8 @@ class IAMPolicy: def removePermission(self, apiclient, permission): """Remove permission from iam policy""" - cmd = removeIAMPermissionFromIAMPolicy.removeIAMPermissionFromIAMPolicyCmd() + cmd = removeIAMPermissionFromIAMPolicy.\ + removeIAMPermissionFromIAMPolicyCmd() cmd.id = self.id cmd.action = permission['action'] cmd.entitytype = permission['entitytype'] @@ -4088,7 +4278,9 @@ class SimulatorMock: self.__dict__.update(items) @classmethod - def create(cls, apiclient, command, zoneid=None, podid=None, clusterid=None, hostid=None, value="result:fail", count=None, jsonresponse=None): + def create(cls, apiclient, command, zoneid=None, podid=None, + clusterid=None, hostid=None, value="result:fail", + count=None, jsonresponse=None): """Creates simulator mock""" cmd = configureSimulator.configureSimulatorCmd() diff --git a/tools/marvin/marvin/lib/common.py b/tools/marvin/marvin/lib/common.py index 8868d2d51ea..7fb2fdf45f6 100644 --- a/tools/marvin/marvin/lib/common.py +++ b/tools/marvin/marvin/lib/common.py @@ -473,6 +473,8 @@ def list_os_types(apiclient, **kwargs): cmd = listOsTypes.listOsTypesCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listOsTypes(cmd)) @@ -481,6 +483,8 @@ def list_routers(apiclient, **kwargs): cmd = listRouters.listRoutersCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listRouters(cmd)) @@ -489,6 +493,8 @@ def list_zones(apiclient, **kwargs): cmd = listZones.listZonesCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listZones(cmd)) @@ -497,6 +503,8 @@ def list_networks(apiclient, **kwargs): cmd = listNetworks.listNetworksCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listNetworks(cmd)) @@ -505,6 +513,8 @@ def list_clusters(apiclient, **kwargs): cmd = listClusters.listClustersCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listClusters(cmd)) @@ -513,6 +523,8 @@ def list_ssvms(apiclient, **kwargs): cmd = listSystemVms.listSystemVmsCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listSystemVms(cmd)) @@ -521,6 +533,8 @@ def list_storage_pools(apiclient, **kwargs): cmd = listStoragePools.listStoragePoolsCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listStoragePools(cmd)) @@ -529,6 +543,8 @@ def list_virtual_machines(apiclient, **kwargs): cmd = listVirtualMachines.listVirtualMachinesCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listVirtualMachines(cmd)) @@ -537,6 +553,8 @@ def list_hosts(apiclient, **kwargs): cmd = listHosts.listHostsCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listHosts(cmd)) @@ -545,6 +563,8 @@ def list_configurations(apiclient, **kwargs): cmd = listConfigurations.listConfigurationsCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listConfigurations(cmd)) @@ -553,6 +573,8 @@ def list_publicIP(apiclient, **kwargs): cmd = listPublicIpAddresses.listPublicIpAddressesCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listPublicIpAddresses(cmd)) @@ -561,6 +583,8 @@ def list_nat_rules(apiclient, **kwargs): cmd = listPortForwardingRules.listPortForwardingRulesCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listPortForwardingRules(cmd)) @@ -569,6 +593,8 @@ def list_lb_rules(apiclient, **kwargs): cmd = listLoadBalancerRules.listLoadBalancerRulesCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listLoadBalancerRules(cmd)) @@ -577,6 +603,8 @@ def list_lb_instances(apiclient, **kwargs): cmd = listLoadBalancerRuleInstances.listLoadBalancerRuleInstancesCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listLoadBalancerRuleInstances(cmd)) @@ -585,6 +613,8 @@ def list_firewall_rules(apiclient, **kwargs): cmd = listFirewallRules.listFirewallRulesCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listFirewallRules(cmd)) @@ -593,6 +623,8 @@ def list_volumes(apiclient, **kwargs): cmd = listVolumes.listVolumesCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listVolumes(cmd)) @@ -601,6 +633,8 @@ def list_isos(apiclient, **kwargs): cmd = listIsos.listIsosCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listIsos(cmd)) @@ -609,6 +643,8 @@ def list_snapshots(apiclient, **kwargs): cmd = listSnapshots.listSnapshotsCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listSnapshots(cmd)) @@ -617,6 +653,8 @@ def list_templates(apiclient, **kwargs): cmd = listTemplates.listTemplatesCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listTemplates(cmd)) @@ -625,6 +663,8 @@ def list_domains(apiclient, **kwargs): cmd = listDomains.listDomainsCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listDomains(cmd)) @@ -634,6 +674,8 @@ def list_accounts(apiclient, **kwargs): cmd = listAccounts.listAccountsCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listAccounts(cmd)) @@ -643,6 +685,8 @@ def list_users(apiclient, **kwargs): cmd = listUsers.listUsersCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listUsers(cmd)) @@ -651,6 +695,8 @@ def list_snapshot_policy(apiclient, **kwargs): cmd = listSnapshotPolicies.listSnapshotPoliciesCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listSnapshotPolicies(cmd)) @@ -659,6 +705,8 @@ def list_events(apiclient, **kwargs): cmd = listEvents.listEventsCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listEvents(cmd)) @@ -667,6 +715,8 @@ def list_disk_offering(apiclient, **kwargs): cmd = listDiskOfferings.listDiskOfferingsCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listDiskOfferings(cmd)) @@ -675,6 +725,8 @@ def list_service_offering(apiclient, **kwargs): cmd = listServiceOfferings.listServiceOfferingsCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listServiceOfferings(cmd)) @@ -683,6 +735,8 @@ def list_vlan_ipranges(apiclient, **kwargs): cmd = listVlanIpRanges.listVlanIpRangesCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listVlanIpRanges(cmd)) @@ -691,6 +745,8 @@ def list_usage_records(apiclient, **kwargs): cmd = listUsageRecords.listUsageRecordsCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listUsageRecords(cmd)) @@ -699,6 +755,8 @@ def list_nw_service_prividers(apiclient, **kwargs): cmd = listNetworkServiceProviders.listNetworkServiceProvidersCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listNetworkServiceProviders(cmd)) @@ -707,6 +765,8 @@ def list_virtual_router_elements(apiclient, **kwargs): cmd = listVirtualRouterElements.listVirtualRouterElementsCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listVirtualRouterElements(cmd)) @@ -715,6 +775,8 @@ def list_network_offerings(apiclient, **kwargs): cmd = listNetworkOfferings.listNetworkOfferingsCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listNetworkOfferings(cmd)) @@ -723,6 +785,8 @@ def list_resource_limits(apiclient, **kwargs): cmd = listResourceLimits.listResourceLimitsCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listResourceLimits(cmd)) @@ -731,6 +795,8 @@ def list_vpc_offerings(apiclient, **kwargs): cmd = listVPCOfferings.listVPCOfferingsCmd() [setattr(cmd, k, v) for k, v in kwargs.items()] + if 'account' in kwargs.keys() and 'domainid' in kwargs.keys(): + cmd.listall=True return(apiclient.listVPCOfferings(cmd))