You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ts...@apache.org on 2013/04/21 19:04:00 UTC

[49/49] git commit: updated refs/heads/marvin_refactor to 0b5fe9a

Merge branch 'master' into marvin_refactor


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

Branch: refs/heads/marvin_refactor
Commit: 0b5fe9a9061dda4ad4f91fb1e413373d11e75169
Parents: b079723 5a0f4b6
Author: Prasanna Santhanam <ts...@apache.org>
Authored: Sun Apr 21 22:32:50 2013 +0530
Committer: Prasanna Santhanam <ts...@apache.org>
Committed: Sun Apr 21 22:32:50 2013 +0530

----------------------------------------------------------------------
 CHANGES                                            |  385 ++++++++++++++-
 README.md                                          |    6 +-
 api/src/com/cloud/network/element/IpDeployer.java  |    6 +-
 .../org/apache/cloudstack/api/ApiConstants.java    |    1 +
 .../cloudstack/api/command/user/vm/ListVMsCmd.java |    9 +
 docs/en-US/advanced-zone-configuration.xml         |    2 +-
 docs/en-US/advanced-zone-network-traffic-types.xml |    2 +-
 docs/en-US/basic-zone-network-traffic-types.xml    |    4 +-
 docs/en-US/build-nonoss.xml                        |   49 ++
 docs/en-US/source.xml                              |    1 +
 .../troubleshooting-working-with-server-logs.xml   |    6 +-
 .../engine/cloud/entity/api/VMEntityManager.java   |    2 +-
 .../cloud/entity/api/VMEntityManagerImpl.java      |   53 ++-
 .../cloud/entity/api/VirtualMachineEntityImpl.java |    2 +-
 .../debian/config/etc/init.d/cloud-early-config    |   53 +-
 .../cloud/network/element/NiciraNvpElement.java    |    5 +
 .../network/element/NiciraNvpElementTest.java      |  238 ++++++---
 server/pom.xml                                     |    2 +-
 .../src/com/cloud/api/query/QueryManagerImpl.java  |   18 +-
 .../configuration/ConfigurationManagerImpl.java    |    9 +-
 server/src/com/cloud/server/Criteria.java          |   11 +-
 server/test/com/cloud/vpc/Site2SiteVpnTest.java    |    2 +-
 server/test/com/cloud/vpc/VpcApiUnitTest.java      |  167 ++-----
 .../test/com/cloud/vpc/VpcTestConfiguration.java   |   73 ++--
 test/integration/component/test_accounts.py        |   16 +-
 .../component/test_allocation_states.py            |    2 +-
 test/integration/component/test_blocker_bugs.py    |   12 +-
 test/integration/component/test_egress_rules.py    |   22 +-
 test/integration/component/test_eip_elb.py         |    4 +-
 .../integration/component/test_network_offering.py |    8 +-
 test/integration/component/test_project_configs.py |   10 +-
 test/integration/component/test_project_limits.py  |    6 +-
 .../component/test_project_resources.py            |   12 +-
 test/integration/component/test_project_usage.py   |   18 +-
 test/integration/component/test_projects.py        |   14 +-
 test/integration/component/test_resource_limits.py |    6 +-
 test/integration/component/test_routers.py         |    8 +-
 test/integration/component/test_security_groups.py |   14 +-
 test/integration/component/test_snapshots.py       |   14 +-
 test/integration/component/test_storage_motion.py  |    4 +-
 test/integration/component/test_templates.py       |    4 +-
 test/integration/component/test_usage.py           |   18 +-
 .../integration/component/test_vm_passwdenabled.py |    2 +-
 test/integration/component/test_volumes.py         |   10 +-
 test/integration/smoke/test_ScaleVm.py             |  221 ---------
 test/integration/smoke/test_UpdateCfg.py           |   85 ----
 test/integration/smoke/test_global_settings.py     |   85 ++++
 test/integration/smoke/test_iso.py                 |    2 +-
 test/integration/smoke/test_network.py             |    2 +-
 test/integration/smoke/test_routers.py             |    2 +-
 test/integration/smoke/test_scale_vm.py            |  221 +++++++++
 test/integration/smoke/test_templates.py           |    2 +-
 test/integration/smoke/test_volumes.py             |    2 +-
 tools/marvin/marvin/common.py                      |    4 +-
 ui/css/cloudstack3.css                             |   70 +++-
 ui/index.jsp                                       |    4 +-
 ui/scripts/instanceWizard.js                       |   37 +-
 ui/scripts/instances.js                            |   64 ++-
 ui/scripts/network.js                              |   46 +--
 ui/scripts/storage.js                              |  117 ++++-
 ui/scripts/templates.js                            |  134 ++++--
 ui/scripts/ui-custom/projectSelect.js              |   66 +++
 ui/scripts/ui-custom/projects.js                   |    6 +-
 ui/scripts/ui-custom/zoneFilter.js                 |   39 ++
 ui/scripts/zoneWizard.js                           |   10 +-
 65 files changed, 1691 insertions(+), 838 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0b5fe9a9/server/pom.xml
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0b5fe9a9/test/integration/smoke/test_scale_vm.py
----------------------------------------------------------------------
diff --cc test/integration/smoke/test_scale_vm.py
index 0000000,64fe4dc..1f20258
mode 000000,100644..100644
--- a/test/integration/smoke/test_scale_vm.py
+++ b/test/integration/smoke/test_scale_vm.py
@@@ -1,0 -1,221 +1,221 @@@
+ # 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.
+ """ P1 tests for Scaling up Vm
+ """
+ #Import Local Modules
+ import marvin
+ from marvin.cloudstackTestCase import *
+ from marvin.cloudstackAPI import *
+ from marvin.remoteSSHClient import remoteSSHClient
+ from marvin.integration.lib.utils import *
+ from marvin.integration.lib.base import *
+ from marvin.integration.lib.common import *
+ from nose.plugins.attrib import attr
+ #Import System modules
+ import time
+ 
+ _multiprocess_shared_ = True
+ class Services:
+     """Test VM Life Cycle Services
+     """
+ 
+     def __init__(self):
+         self.services = {
+ 
+                 "account": {
+                     "email": "test@test.com",
+                     "firstname": "Test",
+                     "lastname": "User",
+                     "username": "test",
 -                    # Random characters are appended in create account to 
++                    # Random characters are appended in create account to
+                     # ensure unique username generated each time
+                     "password": "password",
+                 },
+                 "small":
 -                # Create a small virtual machine instance with disk offering 
++                # Create a small virtual machine instance with disk offering
+                 {
+                     "displayname": "testserver",
+                     "username": "root", # VM creds for SSH
+                     "password": "password",
+                     "ssh_port": 22,
+                     "hypervisor": 'XenServer',
+                     "privateport": 22,
+                     "publicport": 22,
+                     "protocol": 'TCP',
+                 },
+                 "service_offerings":
+                 {
+                  "small":
+                     {
 -                     # Small service offering ID to for change VM 
++                     # Small service offering ID to for change VM
+                      # service offering from medium to small
+                         "name": "SmallInstance",
+                         "displaytext": "SmallInstance",
+                         "cpunumber": 1,
+                         "cpuspeed": 100,
+                         "memory": 256,
+                     },
+                 "big":
+                     {
 -                     # Big service offering ID to for change VM 
++                     # Big service offering ID to for change VM
+                         "name": "BigInstance",
+                         "displaytext": "BigInstance",
+                         "cpunumber": 1,
+                         "cpuspeed": 100,
+                         "memory": 512,
+                     }
+                 },
+                 #Change this
+                 "template": {
+                     "displaytext": "xs",
+                     "name": "xs",
+                     "passwordenabled": False,
+                 },
+             "diskdevice": '/dev/xvdd',
+             # Disk device where ISO is attached to instance
+             "mount_dir": "/mnt/tmp",
+             "sleep": 60,
+             "timeout": 10,
+             #Migrate VM to hostid
+             "ostype": 'CentOS 5.3 (64-bit)',
+             # CentOS 5.3 (64-bit)
+         }
+ 
+ class TestScaleVm(cloudstackTestCase):
+ 
+     @classmethod
+     def setUpClass(cls):
+         cls.api_client = super(TestScaleVm, cls).getClsTestClient().getApiClient()
+         cls.services = Services().services
+ 
+         # Get Zone, Domain and templates
+         domain = get_domain(cls.api_client, cls.services)
+         zone = get_zone(cls.api_client, cls.services)
+         cls.services['mode'] = zone.networktype
+ 
+         template = get_template(
+                             cls.api_client,
+                             zone.id,
+                             cls.services["ostype"]
+                             )
+         # Set Zones and disk offerings ??
+         cls.services["small"]["zoneid"] = zone.id
+         cls.services["small"]["template"] = template.id
+ 
+         # Create account, service offerings, vm.
+         cls.account = Account.create(
+                             cls.api_client,
+                             cls.services["account"],
+                             domainid=domain.id
+                             )
+ 
+         cls.small_offering = ServiceOffering.create(
+                                     cls.api_client,
+                                     cls.services["service_offerings"]["small"]
+                                     )
 -        
++
+         cls.big_offering = ServiceOffering.create(
+                                     cls.api_client,
+                                     cls.services["service_offerings"]["big"]
+                                     )
+ 
+         #create a virtual machine
+         cls.virtual_machine = VirtualMachine.create(
+                                         cls.api_client,
+                                         cls.services["small"],
+                                         accountid=cls.account.account.name,
+                                         domainid=cls.account.account.domainid,
+                                         serviceofferingid=cls.small_offering.id,
+                                         mode=cls.services["mode"]
+                                         )
+         #how does it work ??
+         cls._cleanup = [
+                         cls.small_offering,
+                         cls.account
+                         ]
+ 
+     @classmethod
+     def tearDownClass(cls):
+         cls.api_client = super(TestScaleVm, cls).getClsTestClient().getApiClient()
+         cleanup_resources(cls.api_client, cls._cleanup)
+         return
+ 
+     def setUp(self):
+         self.apiclient = self.testClient.getApiClient()
+         self.dbclient = self.testClient.getDbConnection()
+         self.cleanup = []
+ 
+     def tearDown(self):
+         #Clean up, terminate the created ISOs
+         cleanup_resources(self.apiclient, self.cleanup)
+         return
+ 
+     @attr(tags = ["xenserver", "advanced", "basic"])
+     def test_01_scale_vm(self):
 -        """Test scale virtual machine 
++        """Test scale virtual machine
+         """
+         # Validate the following
+         # Scale up the vm and see if it scales to the new svc offering and is finally in running state
 -        
 -      
 -      
++
++
++
+         self.debug("Scaling VM-ID: %s to service offering: %s" % (
+                                         self.virtual_machine.id,
+                                         self.big_offering.id
+                                         ))
 -        
++
+         cmd = scaleVirtualMachine.scaleVirtualMachineCmd()
+         cmd.serviceofferingid = self.big_offering.id
+         cmd.id = self.virtual_machine.id
 -        self.apiclient.scaleVirtualMachine(cmd)  
++        self.apiclient.scaleVirtualMachine(cmd)
+ 
+         list_vm_response = list_virtual_machines(
+                                             self.apiclient,
+                                             id=self.virtual_machine.id
+                                             )
+         self.assertEqual(
+                         isinstance(list_vm_response, list),
+                         True,
+                         "Check list response returns a valid list"
+                         )
+ 
+         self.assertNotEqual(
+                             list_vm_response,
+                             None,
+                             "Check virtual machine is listVirtualMachines"
+                             )
+ 
+         vm_response = list_vm_response[0]
+ 
+         self.assertEqual(
+                         vm_response.id,
+                         self.virtual_machine.id,
+                         "Check virtual machine ID of scaled VM"
+                         )
+ 
+         self.assertEqual(
+                         vm_response.serviceofferingid,
+                         self.big_offering.id,
+                         "Check service offering of the VM"
+                         )
+ 
+         self.assertEqual(
+                         vm_response.state,
+                         'Running',
+                         "Check the state of VM"
+                         )
+         return

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0b5fe9a9/tools/marvin/marvin/common.py
----------------------------------------------------------------------
diff --cc tools/marvin/marvin/common.py
index 36e4435,0000000..0c71607
mode 100644,000000..100644
--- a/tools/marvin/marvin/common.py
+++ b/tools/marvin/marvin/common.py
@@@ -1,566 -1,0 +1,568 @@@
 +# 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.
 +"""Common functions
 +"""
 +
 +#Import Local Modules
 +from marvin.cloudstackTestCase import *
 +from marvin.remoteSSHClient import remoteSSHClient
 +from marvin.utils import *
 +
 +#Import System modules
 +import time
 +
 +
 +def wait_for_cleanup(apiclient, configs=None):
 +    """Sleeps till the cleanup configs passed"""
 +
 +    # Configs list consists of the list of global configs
 +    if not isinstance(configs, list):
 +        return
 +    for config in configs:
 +        cmd = listConfigurations.listConfigurationsCmd()
 +        cmd.name = config
 +        cmd.listall = True
 +        try:
 +            config_descs = apiclient.listConfigurations(cmd)
 +        except Exception as e:
 +            raise Exception("Failed to fetch configurations: %s" % e)
 +
 +        if not isinstance(config_descs, list):
 +            raise Exception("List configs didn't returned a valid data")
 +
 +        config_desc = config_descs[0]
 +        # Sleep for the config_desc.value time
 +        time.sleep(int(config_desc.value))
 +    return
 +
 +
 +def get_domain(apiclient, services=None):
 +    "Returns a default domain"
 +
 +    cmd = listDomains.listDomainsCmd()
 +    if services:
 +        if "domainid" in services:
 +            cmd.id = services["domainid"]
 +
 +    domains = apiclient.listDomains(cmd)
 +
 +    if isinstance(domains, list):
 +        assert len(domains) > 0
 +        return domains[0]
 +    else:
 +        raise Exception("Failed to find specified domain.")
 +
 +
 +def get_zone(apiclient, services=None):
 +    "Returns a default zone"
 +
 +    cmd = listZones.listZonesCmd()
 +    if services:
 +        if "zoneid" in services:
 +            cmd.id = services["zoneid"]
 +
 +    zones = apiclient.listZones(cmd)
 +
 +    if isinstance(zones, list):
 +        assert len(zones) > 0, "There are no available zones in the deployment"
 +        return zones[0]
 +    else:
 +        raise Exception("Failed to find specified zone.")
 +
 +
 +def get_pod(apiclient, zoneid, services=None):
 +    "Returns a default pod for specified zone"
 +
 +    cmd = listPods.listPodsCmd()
 +    cmd.zoneid = zoneid
 +
 +    if services:
 +        if "podid" in services:
 +            cmd.id = services["podid"]
 +
 +    pods = apiclient.listPods(cmd)
 +
 +    if isinstance(pods, list):
 +        assert len(pods) > 0, "No pods found for zone %s"%zoneid
 +        return pods[0]
 +    else:
 +        raise Exception("Exception: Failed to find specified pod.")
 +
 +
 +def get_template(apiclient, zoneid, ostype, services=None):
 +    "Returns a template"
 +
 +    cmd = listOsTypes.listOsTypesCmd()
 +    cmd.description = ostype
 +    ostypes = apiclient.listOsTypes(cmd)
 +
 +    if isinstance(ostypes, list):
 +        ostypeid = ostypes[0].id
 +    else:
 +        raise Exception(
 +            "Failed to find OS type with description: %s" % ostype)
 +
 +    cmd = listTemplates.listTemplatesCmd()
 +    cmd.templatefilter = 'featured'
 +    cmd.zoneid = zoneid
 +
 +    if services:
 +        if "template" in services:
 +            cmd.id = services["template"]
 +
 +    list_templates = apiclient.listTemplates(cmd)
 +
 +    if isinstance(list_templates, list):
 +        assert len(list_templates) > 0, "received empty response on template of type %s"%ostype
 +        for template in list_templates:
 +            if template.ostypeid == ostypeid:
 +                return template
++            elif template.isready:
++                return template
 +
 +    raise Exception("Exception: Failed to find template with OSTypeID: %s" %
 +                                                                    ostypeid)
 +    return
 +
 +
 +def download_systemplates_sec_storage(server, services):
 +    """Download System templates on sec storage"""
 +
 +    try:
 +        # Login to management server
 +        ssh = remoteSSHClient(
 +                                          server["ipaddress"],
 +                                          server["port"],
 +                                          server["username"],
 +                                          server["password"]
 +                             )
 +    except Exception:
 +        raise Exception("SSH access failted for server with IP address: %s" %
 +                                                            server["ipaddess"])
 +    # Mount Secondary Storage on Management Server
 +    cmds = [
 +            "mkdir -p %s" % services["mnt_dir"],
 +            "mount -t nfs %s:/%s %s" % (
 +                                        services["sec_storage"],
 +                                        services["path"],
 +                                        services["mnt_dir"]
 +                                        ),
 +            "%s -m %s -u %s -h %s -F" % (
 +                                         services["command"],
 +                                         services["mnt_dir"],
 +                                         services["download_url"],
 +                                         services["hypervisor"]
 +                                        )
 +            ]
 +    for c in cmds:
 +        result = ssh.execute(c)
 +
 +    res = str(result)
 +
 +    # Unmount the Secondary storage
 +    ssh.execute("umount %s" % (services["mnt_dir"]))
 +
 +    if res.count("Successfully installed system VM template") == 1:
 +        return
 +    else:
 +        raise Exception("Failed to download System Templates on Sec Storage")
 +    return
 +
 +
 +def wait_for_ssvms(apiclient, zoneid, podid, interval=60):
 +    """After setup wait for SSVMs to come Up"""
 +
 +    time.sleep(interval)
 +    timeout = 40
 +    while True:
 +            list_ssvm_response = list_ssvms(
 +                                        apiclient,
 +                                        systemvmtype='secondarystoragevm',
 +                                        zoneid=zoneid,
 +                                        podid=podid
 +                                        )
 +            ssvm = list_ssvm_response[0]
 +            if ssvm.state != 'Running':
 +                # Sleep to ensure SSVMs are Up and Running
 +                time.sleep(interval)
 +                timeout = timeout - 1
 +            elif ssvm.state == 'Running':
 +                break
 +            elif timeout == 0:
 +                raise Exception("SSVM failed to come up")
 +                break
 +
 +    timeout = 40
 +    while True:
 +            list_ssvm_response = list_ssvms(
 +                                        apiclient,
 +                                        systemvmtype='consoleproxy',
 +                                        zoneid=zoneid,
 +                                        podid=podid
 +                                        )
 +            cpvm = list_ssvm_response[0]
 +            if cpvm.state != 'Running':
 +                # Sleep to ensure SSVMs are Up and Running
 +                time.sleep(interval)
 +                timeout = timeout - 1
 +            elif cpvm.state == 'Running':
 +                break
 +            elif timeout == 0:
 +                raise Exception("CPVM failed to come up")
 +                break
 +    return
 +
 +
 +def download_builtin_templates(apiclient, zoneid, hypervisor, host,
 +                                                linklocalip, interval=60):
 +    """After setup wait till builtin templates are downloaded"""
 +
 +    # Change IPTABLES Rules
 +    get_process_status(
 +                        host["ipaddress"],
 +                        host["port"],
 +                        host["username"],
 +                        host["password"],
 +                        linklocalip,
 +                        "iptables -P INPUT ACCEPT"
 +                    )
 +    time.sleep(interval)
 +    # Find the BUILTIN Templates for given Zone, Hypervisor
 +    list_template_response = list_templates(
 +                                    apiclient,
 +                                    hypervisor=hypervisor,
 +                                    zoneid=zoneid,
 +                                    templatefilter='self'
 +                                    )
 +
 +    if not isinstance(list_template_response, list):
 +        raise Exception("Failed to download BUILTIN templates")
 +
 +    # Ensure all BUILTIN templates are downloaded
 +    templateid = None
 +    for template in list_template_response:
 +        if template.templatetype == "BUILTIN":
 +                templateid = template.id
 +
 +    # Sleep to ensure that template is in downloading state after adding
 +    # Sec storage
 +    time.sleep(interval)
 +    while True:
 +        template_response = list_templates(
 +                                    apiclient,
 +                                    id=templateid,
 +                                    zoneid=zoneid,
 +                                    templatefilter='self'
 +                                    )
 +        template = template_response[0]
 +        # If template is ready,
 +        # template.status = Download Complete
 +        # Downloading - x% Downloaded
 +        # Error - Any other string
 +        if template.status == 'Download Complete':
 +            break
 +
 +        elif 'Downloaded' in template.status:
 +            time.sleep(interval)
 +
 +        elif 'Installing' not in template.status:
 +            raise Exception("ErrorInDownload")
 +
 +    return
 +
 +
 +def update_resource_limit(apiclient, resourcetype, account=None,
 +                                    domainid=None, max=None, projectid=None):
 +    """Updates the resource limit to 'max' for given account"""
 +
 +    cmd = updateResourceLimit.updateResourceLimitCmd()
 +    cmd.resourcetype = resourcetype
 +    if account:
 +        cmd.account = account
 +    if domainid:
 +        cmd.domainid = domainid
 +    if max:
 +        cmd.max = max
 +    if projectid:
 +        cmd.projectid = projectid
 +    apiclient.updateResourceLimit(cmd)
 +    return
 +
 +
 +def list_os_types(apiclient, **kwargs):
 +    """List all os types matching criteria"""
 +
 +    cmd = listOsTypes.listOsTypesCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listOsTypes(cmd))
 +
 +
 +def list_routers(apiclient, **kwargs):
 +    """List all Routers matching criteria"""
 +
 +    cmd = listRouters.listRoutersCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listRouters(cmd))
 +
 +
 +def list_zones(apiclient, **kwargs):
 +    """List all Zones matching criteria"""
 +
 +    cmd = listZones.listZonesCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listZones(cmd))
 +
 +
 +def list_networks(apiclient, **kwargs):
 +    """List all Networks matching criteria"""
 +
 +    cmd = listNetworks.listNetworksCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listNetworks(cmd))
 +
 +
 +def list_clusters(apiclient, **kwargs):
 +    """List all Clusters matching criteria"""
 +
 +    cmd = listClusters.listClustersCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listClusters(cmd))
 +
 +
 +def list_ssvms(apiclient, **kwargs):
 +    """List all SSVMs matching criteria"""
 +
 +    cmd = listSystemVms.listSystemVmsCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listSystemVms(cmd))
 +
 +
 +def list_storage_pools(apiclient, **kwargs):
 +    """List all storage pools matching criteria"""
 +
 +    cmd = listStoragePools.listStoragePoolsCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listStoragePools(cmd))
 +
 +
 +def list_virtual_machines(apiclient, **kwargs):
 +    """List all VMs matching criteria"""
 +
 +    cmd = listVirtualMachines.listVirtualMachinesCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listVirtualMachines(cmd))
 +
 +
 +def list_hosts(apiclient, **kwargs):
 +    """List all Hosts matching criteria"""
 +
 +    cmd = listHosts.listHostsCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listHosts(cmd))
 +
 +
 +def list_configurations(apiclient, **kwargs):
 +    """List configuration with specified name"""
 +
 +    cmd = listConfigurations.listConfigurationsCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listConfigurations(cmd))
 +
 +
 +def list_publicIP(apiclient, **kwargs):
 +    """List all Public IPs matching criteria"""
 +
 +    cmd = listPublicIpAddresses.listPublicIpAddressesCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listPublicIpAddresses(cmd))
 +
 +
 +def list_nat_rules(apiclient, **kwargs):
 +    """List all NAT rules matching criteria"""
 +
 +    cmd = listPortForwardingRules.listPortForwardingRulesCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listPortForwardingRules(cmd))
 +
 +
 +def list_lb_rules(apiclient, **kwargs):
 +    """List all Load balancing rules matching criteria"""
 +
 +    cmd = listLoadBalancerRules.listLoadBalancerRulesCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listLoadBalancerRules(cmd))
 +
 +
 +def list_lb_instances(apiclient, **kwargs):
 +    """List all Load balancing instances matching criteria"""
 +
 +    cmd = listLoadBalancerRuleInstances.listLoadBalancerRuleInstancesCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listLoadBalancerRuleInstances(cmd))
 +
 +
 +def list_firewall_rules(apiclient, **kwargs):
 +    """List all Firewall Rules matching criteria"""
 +
 +    cmd = listFirewallRules.listFirewallRulesCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listFirewallRules(cmd))
 +
 +
 +def list_volumes(apiclient, **kwargs):
 +    """List all volumes matching criteria"""
 +
 +    cmd = listVolumes.listVolumesCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listVolumes(cmd))
 +
 +
 +def list_isos(apiclient, **kwargs):
 +    """Lists all available ISO files."""
 +
 +    cmd = listIsos.listIsosCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listIsos(cmd))
 +
 +
 +def list_snapshots(apiclient, **kwargs):
 +    """List all snapshots matching criteria"""
 +
 +    cmd = listSnapshots.listSnapshotsCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listSnapshots(cmd))
 +
 +
 +def list_templates(apiclient, **kwargs):
 +    """List all templates matching criteria"""
 +
 +    cmd = listTemplates.listTemplatesCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listTemplates(cmd))
 +
 +
 +def list_domains(apiclient, **kwargs):
 +    """Lists domains"""
 +
 +    cmd = listDomains.listDomainsCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listDomains(cmd))
 +
 +
 +def list_accounts(apiclient, **kwargs):
 +    """Lists accounts and provides detailed account information for
 +    listed accounts"""
 +
 +    cmd = listAccounts.listAccountsCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listAccounts(cmd))
 +
 +
 +def list_users(apiclient, **kwargs):
 +    """Lists users and provides detailed account information for
 +    listed users"""
 +
 +    cmd = listUsers.listUsersCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listUsers(cmd))
 +
 +
 +def list_snapshot_policy(apiclient, **kwargs):
 +    """Lists snapshot policies."""
 +
 +    cmd = listSnapshotPolicies.listSnapshotPoliciesCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listSnapshotPolicies(cmd))
 +
 +
 +def list_events(apiclient, **kwargs):
 +    """Lists events"""
 +
 +    cmd = listEvents.listEventsCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listEvents(cmd))
 +
 +
 +def list_disk_offering(apiclient, **kwargs):
 +    """Lists all available disk offerings."""
 +
 +    cmd = listDiskOfferings.listDiskOfferingsCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listDiskOfferings(cmd))
 +
 +
 +def list_service_offering(apiclient, **kwargs):
 +    """Lists all available service offerings."""
 +
 +    cmd = listServiceOfferings.listServiceOfferingsCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listServiceOfferings(cmd))
 +
 +
 +def list_vlan_ipranges(apiclient, **kwargs):
 +    """Lists all VLAN IP ranges."""
 +
 +    cmd = listVlanIpRanges.listVlanIpRangesCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listVlanIpRanges(cmd))
 +
 +
 +def list_usage_records(apiclient, **kwargs):
 +    """Lists usage records for accounts"""
 +
 +    cmd = listUsageRecords.listUsageRecordsCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listUsageRecords(cmd))
 +
 +
 +def list_nw_service_prividers(apiclient, **kwargs):
 +    """Lists Network service providers"""
 +
 +    cmd = listNetworkServiceProviders.listNetworkServiceProvidersCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listNetworkServiceProviders(cmd))
 +
 +
 +def list_virtual_router_elements(apiclient, **kwargs):
 +    """Lists Virtual Router elements"""
 +
 +    cmd = listVirtualRouterElements.listVirtualRouterElementsCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listVirtualRouterElements(cmd))
 +
 +
 +def list_network_offerings(apiclient, **kwargs):
 +    """Lists network offerings"""
 +
 +    cmd = listNetworkOfferings.listNetworkOfferingsCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listNetworkOfferings(cmd))
 +
 +
 +def list_resource_limits(apiclient, **kwargs):
 +    """Lists resource limits"""
 +
 +    cmd = listResourceLimits.listResourceLimitsCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listResourceLimits(cmd))
 +
 +def list_vpc_offerings(apiclient, **kwargs):
 +    """ Lists VPC offerings """
 +
 +    cmd = listVPCOfferings.listVPCOfferingsCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
-     return(apiclient.listVPCOfferings(cmd))
++    return(apiclient.listVPCOfferings(cmd))

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0b5fe9a9/ui/scripts/zoneWizard.js
----------------------------------------------------------------------