CLOUDSTACK-4780: Changes related to checking snapshot path

on NFS server, also made marvin import paths specific
This commit is contained in:
Gaurav Aradhye 2013-12-23 17:58:51 +05:30 committed by Girish Shilamkar
parent 5d03fa83a2
commit a160b46cd4
18 changed files with 130 additions and 81 deletions

View File

@ -42,17 +42,17 @@ from marvin.integration.lib.base import (
from marvin.integration.lib.common import (get_domain,
get_zone,
get_template,
cleanup_resources,
list_virtual_machines,
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,
cleanup_resources)
from marvin.cloudstackAPI import (addNicToVirtualMachine,
removeNicFromVirtualMachine,

View File

@ -32,12 +32,12 @@ from marvin.integration.lib.base import (Account,
from marvin.integration.lib.common import (get_domain,
get_zone,
get_template,
cleanup_resources,
list_volumes,
update_resource_limit,
list_networks,
list_snapshots,
list_virtual_machines)
from marvin.integration.lib.utils import cleanup_resources
def log_test_exceptions(func):
def test_wrap_exception_log(self, *args, **kwargs):

View File

@ -30,10 +30,10 @@ from marvin.integration.lib.base import (
from marvin.integration.lib.common import (get_domain,
get_zone,
get_template,
cleanup_resources,
find_suitable_host,
get_resource_type
)
from marvin.integration.lib.utils import cleanup_resources
class Services:
"""Test resource limit services

View File

@ -30,10 +30,10 @@ from marvin.integration.lib.base import (
from marvin.integration.lib.common import (get_domain,
get_zone,
get_template,
cleanup_resources,
find_suitable_host,
get_resource_type
)
from marvin.integration.lib.utils import cleanup_resources
class Services:

View File

@ -30,9 +30,9 @@ from marvin.integration.lib.base import (
)
from marvin.integration.lib.common import (get_domain,
get_zone,
get_template,
cleanup_resources
get_template
)
from marvin.integration.lib.utils import cleanup_resources
class Services:
"""Test resource limit services

View File

@ -30,10 +30,10 @@ from marvin.integration.lib.base import (
from marvin.integration.lib.common import (get_domain,
get_zone,
get_template,
cleanup_resources,
find_suitable_host,
get_resource_type
)
from marvin.integration.lib.utils import cleanup_resources
class Services:
"""Test resource limit services

View File

@ -35,8 +35,8 @@ from marvin.integration.lib.common import (get_domain,
rebootRouter,
list_routers,
wait_for_cleanup,
cleanup_resources,
list_virtual_machines)
from marvin.integration.lib.utils import cleanup_resources
from marvin.cloudstackAPI.createEgressFirewallRule import createEgressFirewallRuleCmd
from marvin.cloudstackAPI.deleteEgressFirewallRule import deleteEgressFirewallRuleCmd

View File

@ -34,9 +34,9 @@ from marvin.integration.lib.base import (
from marvin.integration.lib.common import (get_domain,
get_zone,
get_template,
cleanup_resources,
random_gen
)
from marvin.integration.lib.utils import cleanup_resources
from marvin.cloudstackAPI import createLBStickinessPolicy
from marvin.sshClient import SshClient

View File

@ -29,12 +29,12 @@ from marvin.integration.lib.base import (
from marvin.integration.lib.common import (get_domain,
get_zone,
get_template,
cleanup_resources,
wait_for_cleanup,
find_suitable_host,
get_resource_type,
update_resource_count
)
from marvin.integration.lib.utils import cleanup_resources
class Services:
"""Test memory resource limit services

View File

@ -29,9 +29,9 @@ from marvin.integration.lib.base import (
)
from marvin.integration.lib.common import (get_domain,
get_zone,
get_template,
cleanup_resources
get_template
)
from marvin.integration.lib.utils import cleanup_resources
class Services:
"""Test memory resource limit services

View File

@ -29,11 +29,11 @@ from marvin.integration.lib.base import (
from marvin.integration.lib.common import (get_domain,
get_zone,
get_template,
cleanup_resources,
wait_for_cleanup,
find_suitable_host,
get_resource_type
)
from marvin.integration.lib.utils import cleanup_resources
class Services:
"""Test memory resource limit services

View File

@ -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

View File

@ -18,11 +18,8 @@
""" Component tests for VPC network functionality - Load Balancing Rules
"""
#Import Local Modules
#import marvin
from nose.plugins.attrib import attr
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
#from marvin.cloudstackAPI import
#from marvin.integration.lib.utils import
from marvin.integration.lib.base import (stopRouter,
startRouter,
Account,
@ -40,8 +37,8 @@ from marvin.integration.lib.base import (stopRouter,
from marvin.integration.lib.common import (get_domain,
get_zone,
get_template,
cleanup_resources,
list_routers)
from marvin.integration.lib.utils import cleanup_resources
import socket
import time

View File

@ -20,24 +20,23 @@
from nose.plugins.attrib import attr
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
from marvin.integration.lib.base import (stopRouter,
startRouter,
Account,
VpcOffering,
VPC,
ServiceOffering,
NATRule,
NetworkACL,
PublicIPAddress,
NetworkOffering,
Network,
VirtualMachine,
LoadBalancerRule,
StaticNATRule)
startRouter,
Account,
VpcOffering,
VPC,
ServiceOffering,
NATRule,
NetworkACL,
PublicIPAddress,
NetworkOffering,
Network,
VirtualMachine,
LoadBalancerRule)
from marvin.integration.lib.common import (get_domain,
get_zone,
get_template,
cleanup_resources,
list_routers)
get_zone,
get_template,
list_routers)
from marvin.integration.lib.utils import cleanup_resources
import socket
import time

View File

@ -19,25 +19,24 @@
"""
from nose.plugins.attrib import attr
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
from marvin.integration.lib.base import (stopRouter,
startRouter,
Account,
VpcOffering,
VPC,
ServiceOffering,
NATRule,
NetworkACL,
PublicIPAddress,
NetworkOffering,
Network,
VirtualMachine,
LoadBalancerRule,
StaticNATRule)
from marvin.integration.lib.base import (Account,
VpcOffering,
VPC,
ServiceOffering,
NetworkACL,
PublicIPAddress,
NetworkOffering,
Network,
VirtualMachine,
LoadBalancerRule,
StaticNATRule)
from marvin.cloudstackAPI import (stopRouter,
startRouter)
from marvin.integration.lib.common import (get_domain,
get_zone,
get_template,
cleanup_resources,
list_routers)
get_zone,
get_template,
list_routers)
from marvin.integration.lib.utils import cleanup_resources
import socket
import time

View File

@ -33,9 +33,9 @@ from marvin.integration.lib.base import (
)
from marvin.integration.lib.common import (get_domain,
get_zone,
get_template,
cleanup_resources,
get_template
)
from marvin.integration.lib.utils import cleanup_resources
class Services:

View File

@ -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"""

View File

@ -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