You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ta...@apache.org on 2014/05/14 14:44:34 UTC

[1/2] 1. list* calls are modified to take listall=True when account and domainid is passed to conform to recent IAM related changes in 4.4-forward 2. fixed typo passd to passwd in cloudstackTestClient.py 3. added few missing data required for tests in te

Repository: cloudstack
Updated Branches:
  refs/heads/master 63f688858 -> c42e9036f


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c42e9036/tools/marvin/marvin/lib/base.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/lib/base.py b/tools/marvin/marvin/lib/base.py
index 88e6d9a..0a6405d 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()

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c42e9036/tools/marvin/marvin/lib/common.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/lib/common.py b/tools/marvin/marvin/lib/common.py
index 8868d2d..7fb2fdf 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))
 
 


[2/2] git commit: updated refs/heads/master to c42e903

Posted by ta...@apache.org.
1. list* calls are modified to take listall=True when
account and domainid is passed to conform to recent IAM
related changes in 4.4-forward
2. fixed typo passd to passwd in cloudstackTestClient.py
3. added few missing data required for tests in test_data.py
4. removed config.cfg

mend

Conflicts:
	tools/marvin/marvin/config/test_data.py
	tools/marvin/marvin/lib/base.py


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/c42e9036
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/c42e9036
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/c42e9036

Branch: refs/heads/master
Commit: c42e9036f723e39993134cabc6cce75d68503249
Parents: 63f6888
Author: SrikanteswaraRao Talluri <ta...@apache.org>
Authored: Thu May 1 23:14:34 2014 +0530
Committer: SrikanteswaraRao Talluri <ta...@apache.org>
Committed: Wed May 14 18:14:09 2014 +0530

----------------------------------------------------------------------
 tools/marvin/marvin/cloudstackTestClient.py |   2 +-
 tools/marvin/marvin/config/config.cfg       | 457 ---------------------
 tools/marvin/marvin/config/test_data.py     | 107 ++++-
 tools/marvin/marvin/lib/base.py             | 502 ++++++++++++++++-------
 tools/marvin/marvin/lib/common.py           |  66 +++
 5 files changed, 516 insertions(+), 618 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c42e9036/tools/marvin/marvin/cloudstackTestClient.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/cloudstackTestClient.py b/tools/marvin/marvin/cloudstackTestClient.py
index 13d920e..2e9b49a 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

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c42e9036/tools/marvin/marvin/config/config.cfg
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/config/config.cfg b/tools/marvin/marvin/config/config.cfg
deleted file mode 100644
index a4bbe9d..0000000
--- 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"
-                              }
-}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c42e9036/tools/marvin/marvin/config/test_data.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/config/test_data.py b/tools/marvin/marvin/config/test_data.py
index ebc1ab6..47230ef 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",
+    },
 }