You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by gi...@apache.org on 2013/12/19 06:00:00 UTC
git commit: updated refs/heads/4.3 to 03811c0
Updated Branches:
refs/heads/4.3 d2f194064 -> 03811c0c4
CLOUDSTACK-4780: Changes related to checking snapshot on NFS server
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/03811c0c
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/03811c0c
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/03811c0c
Branch: refs/heads/4.3
Commit: 03811c0c46a3c74f4271b08faa8ce40a4e2598f7
Parents: d2f1940
Author: Gaurav Aradhye <ga...@clogeny.com>
Authored: Thu Dec 19 10:21:33 2013 +0530
Committer: Girish Shilamkar <gi...@clogeny.com>
Committed: Thu Dec 19 10:29:47 2013 +0530
----------------------------------------------------------------------
.../component/test_add_remove_network.py | 4 +-
test/integration/component/test_snapshots.py | 5 +-
tools/marvin/marvin/integration/lib/common.py | 68 ++++++++++++++------
tools/marvin/marvin/integration/lib/utils.py | 31 +++++++--
4 files changed, 81 insertions(+), 27 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/03811c0c/test/integration/component/test_add_remove_network.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_add_remove_network.py b/test/integration/component/test_add_remove_network.py
index f1508e1..b607ff1 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)
+ random_gen,
+ get_hypervisor_type)
from marvin.cloudstackAPI import (addNicToVirtualMachine,
removeNicFromVirtualMachine,
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/03811c0c/test/integration/component/test_snapshots.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_snapshots.py b/test/integration/component/test_snapshots.py
index d3fac42..17579d6 100644
--- a/test/integration/component/test_snapshots.py
+++ b/test/integration/component/test_snapshots.py
@@ -36,12 +36,13 @@ 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)
+ is_snapshot_on_nfs,
+ get_hypervisor_type)
from marvin.cloudstackAPI import detachVolume
import time
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/03811c0c/tools/marvin/marvin/integration/lib/common.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/common.py b/tools/marvin/marvin/integration/lib/common.py
index 096b073..d23d745 100644
--- a/tools/marvin/marvin/integration/lib/common.py
+++ b/tools/marvin/marvin/integration/lib/common.py
@@ -18,11 +18,56 @@
"""
#Import Local Modules
-from marvin.cloudstackAPI import *
+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.sshClient import SshClient
-from utils import *
-from base import *
-from marvin.codes import PASS
+import random
#Import System modules
import time
@@ -91,7 +136,7 @@ def add_netscaler(apiclient, zoneid, NSservice):
cmd = updateNetworkServiceProvider.updateNetworkServiceProviderCmd()
cmd.id = netscaler_provider.id
cmd.state = 'Enabled'
- response = apiclient.updateNetworkServiceProvider(cmd)
+ apiclient.updateNetworkServiceProvider(cmd)
return netscaler
@@ -199,19 +244,6 @@ 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"""
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/03811c0c/tools/marvin/marvin/integration/lib/utils.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/utils.py b/tools/marvin/marvin/integration/lib/utils.py
index d046235..25ebe28 100644
--- a/tools/marvin/marvin/integration/lib/utils.py
+++ b/tools/marvin/marvin/integration/lib/utils.py
@@ -28,10 +28,13 @@ import email
import socket
import urlparse
import datetime
-from marvin.cloudstackAPI import *
+from marvin.cloudstackAPI import cloudstackAPIClient, listHosts
from marvin.sshClient import SshClient
-from marvin.codes import *
-
+from marvin.codes import (FAIL,
+ PASS,
+ MATCH_NOT_FOUND,
+ INVALID_INPUT,
+ EMPTY_LIST)
def restart_mgmt_server(server):
"""Restarts the management server"""
@@ -237,6 +240,18 @@ 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
@@ -248,8 +263,12 @@ 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, Snapshot
+ from base import ImageStore
secondaryStores = ImageStore.list(apiclient, zoneid=zoneid)
assert isinstance(secondaryStores, list), "Not a valid response for listImageStores"
@@ -281,7 +300,9 @@ def is_snapshot_on_nfs(apiclient, dbconn, config, zoneid, snapshotid):
#Snapshot does not exist
return False
- snapshotPath = qresultset[0][0]
+ 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()]
nfsurl = secondaryStore.url
from urllib2 import urlparse