diff --git a/test/integration/component/test_add_remove_network.py b/test/integration/component/test_add_remove_network.py index b607ff1357e..f1508e1f1cb 100644 --- a/test/integration/component/test_add_remove_network.py +++ b/test/integration/component/test_add_remove_network.py @@ -47,12 +47,12 @@ from marvin.integration.lib.common import (get_domain, list_events, list_zones, get_free_vlan, + get_hypervisor_type, update_resource_limit ) from marvin.integration.lib.utils import (validateList, - random_gen, - get_hypervisor_type) + random_gen) from marvin.cloudstackAPI import (addNicToVirtualMachine, removeNicFromVirtualMachine, diff --git a/test/integration/component/test_snapshots.py b/test/integration/component/test_snapshots.py index 17579d63d4d..d3fac42d8c6 100644 --- a/test/integration/component/test_snapshots.py +++ b/test/integration/component/test_snapshots.py @@ -36,13 +36,12 @@ from marvin.integration.lib.common import (get_domain, list_snapshots, list_templates, list_virtual_machines, - ) + get_hypervisor_type) from marvin.integration.lib.utils import (cleanup_resources, format_volume_to_ext3, random_gen, - is_snapshot_on_nfs, - get_hypervisor_type) + is_snapshot_on_nfs) from marvin.cloudstackAPI import detachVolume import time diff --git a/tools/marvin/marvin/integration/lib/common.py b/tools/marvin/marvin/integration/lib/common.py index d23d745af69..096b0730092 100644 --- a/tools/marvin/marvin/integration/lib/common.py +++ b/tools/marvin/marvin/integration/lib/common.py @@ -18,56 +18,11 @@ """ #Import Local Modules -from marvin.cloudstackAPI import (listConfigurations, - listPhysicalNetworks, - listRegions, - addNetworkServiceProvider, - updateNetworkServiceProvider, - listDomains, - listZones, - listPods, - listOsTypes, - listTemplates, - updateResourceLimit, - listRouters, - listNetworks, - listClusters, - listSystemVms, - listStoragePools, - listVirtualMachines, - listLoadBalancerRuleInstances, - listFirewallRules, - listVolumes, - listIsos, - listAccounts, - listSnapshotPolicies, - listDiskOfferings, - listVlanIpRanges, - listUsageRecords, - listNetworkServiceProviders, - listHosts, - listPublicIpAddresses, - listPortForwardingRules, - listLoadBalancerRules, - listSnapshots, - listUsers, - listEvents, - listServiceOfferings, - listVirtualRouterElements, - listNetworkOfferings, - listResourceLimits, - listVPCOfferings) -from marvin.integration.lib.base import (Configurations, - NetScaler, - Template, - Resources, - PhysicalNetwork, - Host) -from marvin.integration.lib.utils import (get_process_status, - xsplit) - +from marvin.cloudstackAPI import * from marvin.sshClient import SshClient -import random +from utils import * +from base import * +from marvin.codes import PASS #Import System modules import time @@ -136,7 +91,7 @@ def add_netscaler(apiclient, zoneid, NSservice): cmd = updateNetworkServiceProvider.updateNetworkServiceProviderCmd() cmd.id = netscaler_provider.id cmd.state = 'Enabled' - apiclient.updateNetworkServiceProvider(cmd) + response = apiclient.updateNetworkServiceProvider(cmd) return netscaler @@ -244,6 +199,19 @@ def get_template(apiclient, zoneid, ostype, services=None): ostypeid) return +def get_hypervisor_type(apiclient): + + """Return the hypervisor type of the hosts in setup""" + + hosts = list_hosts(apiclient, type='Routing', listall=True) + + hosts_list_validation_result = validateList(hosts) + + assert hosts_list_validation_result[0] == PASS, "host list validation failed" + + return hosts_list_validation_result[1].hypervisor + + def download_systemplates_sec_storage(server, services): """Download System templates on sec storage""" diff --git a/tools/marvin/marvin/integration/lib/utils.py b/tools/marvin/marvin/integration/lib/utils.py index 25ebe28d9b2..d046235cee8 100644 --- a/tools/marvin/marvin/integration/lib/utils.py +++ b/tools/marvin/marvin/integration/lib/utils.py @@ -28,13 +28,10 @@ import email import socket import urlparse import datetime -from marvin.cloudstackAPI import cloudstackAPIClient, listHosts +from marvin.cloudstackAPI import * from marvin.sshClient import SshClient -from marvin.codes import (FAIL, - PASS, - MATCH_NOT_FOUND, - INVALID_INPUT, - EMPTY_LIST) +from marvin.codes import * + def restart_mgmt_server(server): """Restarts the management server""" @@ -240,18 +237,6 @@ def xsplit(txt, seps): txt = txt.replace(sep, default_sep) return [i.strip() for i in txt.split(default_sep)] -def get_hypervisor_type(apiclient): - - """Return the hypervisor type of the hosts in setup""" - - cmd = listHosts.listHostsCmd() - cmd.type = 'Routing' - cmd.listall = True - hosts = apiclient.listHosts(cmd) - hosts_list_validation_result = validateList(hosts) - assert hosts_list_validation_result[0] == PASS, "host list validation failed" - return hosts_list_validation_result[1].hypervisor - def is_snapshot_on_nfs(apiclient, dbconn, config, zoneid, snapshotid): """ Checks whether a snapshot with id (not UUID) `snapshotid` is present on the nfs storage @@ -263,12 +248,8 @@ def is_snapshot_on_nfs(apiclient, dbconn, config, zoneid, snapshotid): @param snapshotid: uuid of the snapshot @return: True if snapshot is found, False otherwise """ - # snapshot extension to be appended to the snapshot path obtained from db - snapshot_extensions = {"vmware": ".ovf", - "kvm": "", - "xenserver": ".vhd"} - from base import ImageStore + from base import ImageStore, Snapshot secondaryStores = ImageStore.list(apiclient, zoneid=zoneid) assert isinstance(secondaryStores, list), "Not a valid response for listImageStores" @@ -300,9 +281,7 @@ def is_snapshot_on_nfs(apiclient, dbconn, config, zoneid, snapshotid): #Snapshot does not exist return False - hypervisor = get_hypervisor_type(apiclient) - # append snapshot extension based on hypervisor, to the snapshot path - snapshotPath = str(qresultset[0][0]) + snapshot_extensions[str(hypervisor).lower()] + snapshotPath = qresultset[0][0] nfsurl = secondaryStore.url from urllib2 import urlparse