Merge pull request #2743 from nuagenetworks/bugfix/marvin_config_drive

CLOUDSTACK-10380: Fix startvm giving another pw after pw reset
This commit is contained in:
Paul Angus 2018-09-26 10:21:52 -04:00 committed by GitHub
commit fe10e684f9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
23 changed files with 2156 additions and 2541 deletions

View File

@ -1336,7 +1336,7 @@ public class NetworkOrchestrator extends ManagerBase implements NetworkOrchestra
//check if the there are no service provider other than virtualrouter. //check if the there are no service provider other than virtualrouter.
for(Provider provider : providers) { for(Provider provider : providers) {
if (provider!=Provider.VirtualRouter) if (provider != Provider.VirtualRouter)
throw new UnsupportedOperationException("Cannot update the network resources in sequence when providers other than virtualrouter are used"); throw new UnsupportedOperationException("Cannot update the network resources in sequence when providers other than virtualrouter are used");
} }
//check if routers are in correct state before proceeding with the update //check if routers are in correct state before proceeding with the update

View File

@ -29,11 +29,11 @@ import java.util.Set;
import javax.annotation.PostConstruct; import javax.annotation.PostConstruct;
import javax.inject.Inject; import javax.inject.Inject;
import org.apache.log4j.Logger;
import com.cloud.network.Network; import com.cloud.network.Network;
import com.cloud.network.dao.NetworkDao; import com.cloud.network.dao.NetworkDao;
import com.cloud.network.dao.NetworkVO; import com.cloud.network.dao.NetworkVO;
import org.apache.log4j.Logger;
import com.cloud.server.ResourceTag.ResourceObjectType; import com.cloud.server.ResourceTag.ResourceObjectType;
import com.cloud.tags.dao.ResourceTagDao; import com.cloud.tags.dao.ResourceTagDao;
import com.cloud.user.Account; import com.cloud.user.Account;
@ -368,9 +368,13 @@ public class UserVmDaoImpl extends GenericDaoBase<UserVmVO, Long> implements Use
if (detailsStr == null) { if (detailsStr == null) {
return; return;
} }
final Map<String, Boolean> visibilityMap = _detailsDao.listDetailsVisibility(vm.getId());
List<UserVmDetailVO> details = new ArrayList<UserVmDetailVO>(); List<UserVmDetailVO> details = new ArrayList<UserVmDetailVO>();
for (String key : detailsStr.keySet()) { for (Map.Entry<String, String> entry : detailsStr.entrySet()) {
details.add(new UserVmDetailVO(vm.getId(), key, detailsStr.get(key), true)); boolean display = visibilityMap.getOrDefault(entry.getKey(), true);
details.add(new UserVmDetailVO(vm.getId(), entry.getKey(), entry.getValue(), display));
} }
_detailsDao.saveDetails(details); _detailsDao.saveDetails(details);

View File

@ -73,6 +73,8 @@ public interface ResourceDetailsDao<R extends ResourceDetail> extends GenericDao
public Map<String, String> listDetailsKeyPairs(long resourceId, boolean forDisplay); public Map<String, String> listDetailsKeyPairs(long resourceId, boolean forDisplay);
Map<String, Boolean> listDetailsVisibility(long resourceId);
public void saveDetails(List<R> details); public void saveDetails(List<R> details);
public void addDetail(long resourceId, String key, String value, boolean display); public void addDetail(long resourceId, String key, String value, boolean display);

View File

@ -27,7 +27,7 @@ import com.cloud.utils.db.SearchBuilder;
import com.cloud.utils.db.SearchCriteria; import com.cloud.utils.db.SearchCriteria;
import com.cloud.utils.db.TransactionLegacy; import com.cloud.utils.db.TransactionLegacy;
public abstract class ResourceDetailsDaoBase<R extends ResourceDetail> extends GenericDaoBase<R, Long> { public abstract class ResourceDetailsDaoBase<R extends ResourceDetail> extends GenericDaoBase<R, Long> implements ResourceDetailsDao<R> {
private SearchBuilder<R> AllFieldsSearch; private SearchBuilder<R> AllFieldsSearch;
public ResourceDetailsDaoBase() { public ResourceDetailsDaoBase() {
@ -81,6 +81,18 @@ public abstract class ResourceDetailsDaoBase<R extends ResourceDetail> extends G
return details; return details;
} }
public Map<String, Boolean> listDetailsVisibility(long resourceId) {
SearchCriteria<R> sc = AllFieldsSearch.create();
sc.setParameters("resourceId", resourceId);
List<R> results = search(sc, null);
Map<String, Boolean> details = new HashMap<>(results.size());
for (R result : results) {
details.put(result.getName(), result.isDisplay());
}
return details;
}
public List<R> listDetails(long resourceId) { public List<R> listDetails(long resourceId) {
SearchCriteria<R> sc = AllFieldsSearch.create(); SearchCriteria<R> sc = AllFieldsSearch.create();
sc.setParameters("resourceId", resourceId); sc.setParameters("resourceId", resourceId);

View File

@ -24,14 +24,12 @@ import java.util.Set;
import javax.inject.Inject; import javax.inject.Inject;
import com.cloud.utils.net.NetUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import com.cloud.network.router.NetworkHelper;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import org.cloud.network.router.deployment.RouterDeploymentDefinition; import org.cloud.network.router.deployment.RouterDeploymentDefinition;
import org.cloud.network.router.deployment.RouterDeploymentDefinitionBuilder; import org.cloud.network.router.deployment.RouterDeploymentDefinitionBuilder;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import com.google.gson.Gson; import com.google.gson.Gson;
@ -83,6 +81,7 @@ import com.cloud.network.dao.OvsProviderDao;
import com.cloud.network.dao.VirtualRouterProviderDao; import com.cloud.network.dao.VirtualRouterProviderDao;
import com.cloud.network.lb.LoadBalancingRule; import com.cloud.network.lb.LoadBalancingRule;
import com.cloud.network.lb.LoadBalancingRulesManager; import com.cloud.network.lb.LoadBalancingRulesManager;
import com.cloud.network.router.NetworkHelper;
import com.cloud.network.router.VirtualRouter; import com.cloud.network.router.VirtualRouter;
import com.cloud.network.router.VirtualRouter.Role; import com.cloud.network.router.VirtualRouter.Role;
import com.cloud.network.router.VpcVirtualNetworkApplianceManager; import com.cloud.network.router.VpcVirtualNetworkApplianceManager;
@ -103,6 +102,7 @@ import com.cloud.utils.crypt.DBEncryptionUtil;
import com.cloud.utils.db.QueryBuilder; import com.cloud.utils.db.QueryBuilder;
import com.cloud.utils.db.SearchCriteria.Op; import com.cloud.utils.db.SearchCriteria.Op;
import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.utils.exception.CloudRuntimeException;
import com.cloud.utils.net.NetUtils;
import com.cloud.vm.DomainRouterVO; import com.cloud.vm.DomainRouterVO;
import com.cloud.vm.NicProfile; import com.cloud.vm.NicProfile;
import com.cloud.vm.ReservationContext; import com.cloud.vm.ReservationContext;
@ -703,7 +703,14 @@ NetworkMigrationResponder, AggregatedCommandExecutor, RedundantResource, DnsServ
// save the password in DB // save the password in DB
for (final VirtualRouter router : routers) { for (final VirtualRouter router : routers) {
if (router.getState() == State.Running) { if (router.getState() == State.Running) {
return networkTopology.savePasswordToRouter(network, nic, uservm, router); final boolean result = networkTopology.savePasswordToRouter(network, nic, uservm, router);
if (result) {
// Explicit password reset, while VM hasn't generated a password yet.
final UserVmVO userVmVO = _userVmDao.findById(vm.getId());
userVmVO.setUpdateParameters(false);
_userVmDao.update(userVmVO.getId(), userVmVO);
}
return result;
} }
} }
final String password = (String) uservm.getParameter(VirtualMachineProfile.Param.VmPassword); final String password = (String) uservm.getParameter(VirtualMachineProfile.Param.VmPassword);

View File

@ -39,6 +39,11 @@ import java.util.stream.Collectors;
import javax.inject.Inject; import javax.inject.Inject;
import javax.naming.ConfigurationException; import javax.naming.ConfigurationException;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.log4j.Logger;
import org.apache.cloudstack.acl.ControlledEntity.ACLType; import org.apache.cloudstack.acl.ControlledEntity.ACLType;
import org.apache.cloudstack.acl.SecurityChecker.AccessType; import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.affinity.AffinityGroupService; import org.apache.cloudstack.affinity.AffinityGroupService;
@ -91,10 +96,6 @@ import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao;
import org.apache.cloudstack.storage.datastore.db.StoragePoolVO; import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
import org.apache.cloudstack.storage.datastore.db.TemplateDataStoreDao; import org.apache.cloudstack.storage.datastore.db.TemplateDataStoreDao;
import org.apache.cloudstack.storage.datastore.db.TemplateDataStoreVO; import org.apache.cloudstack.storage.datastore.db.TemplateDataStoreVO;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.log4j.Logger;
import com.cloud.agent.AgentManager; import com.cloud.agent.AgentManager;
import com.cloud.agent.api.Answer; import com.cloud.agent.api.Answer;
@ -688,10 +689,6 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
if (result) { if (result) {
userVm.setPassword(password); userVm.setPassword(password);
// update the password in vm_details table too
// Check if an SSH key pair was selected for the instance and if so
// use it to encrypt & save the vm password
encryptAndStorePassword(userVm, password);
} else { } else {
throw new CloudRuntimeException("Failed to reset password for the virtual machine "); throw new CloudRuntimeException("Failed to reset password for the virtual machine ");
} }
@ -736,7 +733,6 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
} else { } else {
final UserVmVO userVm = _vmDao.findById(vmId); final UserVmVO userVm = _vmDao.findById(vmId);
_vmDao.loadDetails(userVm); _vmDao.loadDetails(userVm);
userVm.setPassword(password);
// update the password in vm_details table too // update the password in vm_details table too
// Check if an SSH key pair was selected for the instance and if so // Check if an SSH key pair was selected for the instance and if so
// use it to encrypt & save the vm password // use it to encrypt & save the vm password
@ -850,8 +846,9 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
userVm.setPassword(password); userVm.setPassword(password);
//update the encrypted password in vm_details table too //update the encrypted password in vm_details table too
encryptAndStorePassword(userVm, password); encryptAndStorePassword(userVm, password);
} else {
_vmDao.saveDetails(userVm);
} }
_vmDao.saveDetails(userVm);
if (vmInstance.getState() == State.Stopped) { if (vmInstance.getState() == State.Stopped) {
s_logger.debug("Vm " + vmInstance + " is stopped, not rebooting it as a part of SSH Key reset"); s_logger.debug("Vm " + vmInstance + " is stopped, not rebooting it as a part of SSH Key reset");
@ -4461,6 +4458,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
password = DBEncryptionUtil.decrypt(vm.getDetail("password")); password = DBEncryptionUtil.decrypt(vm.getDetail("password"));
} else { } else {
password = _mgr.generateRandomPassword(); password = _mgr.generateRandomPassword();
vm.setPassword(password);
} }
} }
@ -4499,11 +4497,10 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
// this value is not being sent to the backend; need only for api // this value is not being sent to the backend; need only for api
// display purposes // display purposes
if (template.getEnablePassword()) { if (template.getEnablePassword()) {
vm.setPassword((String)vmParamPair.second().get(VirtualMachineProfile.Param.VmPassword));
vm.setUpdateParameters(false);
if (vm.getDetail("password") != null) { if (vm.getDetail("password") != null) {
_vmDetailsDao.remove(_vmDetailsDao.findDetail(vm.getId(), "password").getId()); _vmDetailsDao.removeDetail(vm.getId(), "password");
} }
vm.setUpdateParameters(false);
_vmDao.update(vm.getId(), vm); _vmDao.update(vm.getId(), vm);
} }
} }
@ -6180,7 +6177,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
vm.setUpdateParameters(false); vm.setUpdateParameters(false);
_vmDao.loadDetails(vm); _vmDao.loadDetails(vm);
if (vm.getDetail("password") != null) { if (vm.getDetail("password") != null) {
_vmDetailsDao.remove(_vmDetailsDao.findDetail(vm.getId(), "password").getId()); _vmDetailsDao.removeDetail(vm.getId(), "password");
} }
_vmDao.update(vm.getId(), vm); _vmDao.update(vm.getId(), vm);
} }

File diff suppressed because it is too large Load Diff

View File

@ -17,8 +17,19 @@
""" Custom base class for Nuage VSP SDN plugin specific Marvin tests """ Custom base class for Nuage VSP SDN plugin specific Marvin tests
""" """
import functools
import importlib
import logging
import socket
import sys
import time
# Import Local Modules # Import Local Modules
from bambou.nurest_object import NURESTObject from bambou.nurest_object import NURESTObject
from marvin.cloudstackAPI import (restartVPC,
enableNuageUnderlayVlanIpRange,
disableNuageUnderlayVlanIpRange,
listNuageUnderlayVlanIpRanges)
from marvin.cloudstackTestCase import cloudstackTestCase, unittest from marvin.cloudstackTestCase import cloudstackTestCase, unittest
from marvin.lib.base import (Domain, from marvin.lib.base import (Domain,
EgressFireWallRule, EgressFireWallRule,
@ -44,22 +55,10 @@ from marvin.lib.base import (Domain,
from marvin.lib.common import (get_domain, from marvin.lib.common import (get_domain,
get_template, get_template,
get_zone) get_zone)
from marvin.cloudstackAPI import (restartVPC,
enableNuageUnderlayVlanIpRange,
disableNuageUnderlayVlanIpRange,
listNuageUnderlayVlanIpRanges)
from nuage_test_data import nuage_test_data
from nuage_vsp_statistics import VsdDataCollector
# Import System Modules # Import System Modules
from retry import retry from retry import retry
import importlib
import functools from nuage_test_data import nuage_test_data
import logging
import socket
import time
import sys
class needscleanup(object): class needscleanup(object):
@ -89,38 +88,6 @@ class needscleanup(object):
return _wrapper return _wrapper
class gherkin(object):
"""Decorator to mark a method as Gherkin style.
Add extra colored logging
"""
BLACK = "\033[0;30m"
BLUE = "\033[0;34m"
GREEN = "\033[0;32m"
CYAN = "\033[0;36m"
RED = "\033[0;31m"
BOLDBLUE = "\033[1;34m"
NORMAL = "\033[0m"
def __init__(self, method):
self.method = method
def __get__(self, obj=None, objtype=None):
@functools.wraps(self.method)
def _wrapper(*args, **kwargs):
gherkin_step = self.method.__name__.replace("_", " ").capitalize()
obj.info("=G= %s%s%s" % (self.BOLDBLUE, gherkin_step, self.NORMAL))
try:
result = self.method(obj, *args, **kwargs)
obj.info("=G= %s%s: [SUCCESS]%s" %
(self.GREEN, gherkin_step, self.NORMAL))
return result
except Exception as e:
obj.info("=G= %s%s: [FAILED]%s%s" %
(self.RED, gherkin_step, self.NORMAL, e))
raise
return _wrapper
class nuageTestCase(cloudstackTestCase): class nuageTestCase(cloudstackTestCase):
@classmethod @classmethod
@ -291,7 +258,8 @@ class nuageTestCase(cloudstackTestCase):
address=cls.nuage_vsp_device.hostname, address=cls.nuage_vsp_device.hostname,
user=cls.nuage_vsp_device.username, user=cls.nuage_vsp_device.username,
password=cls.nuage_vsp_device.password, password=cls.nuage_vsp_device.password,
version=cls.nuage_vsp_device.apiversion[1] + "." + cls.nuage_vsp_device.apiversion[3] version=cls.nuage_vsp_device.apiversion[1] +
"." + cls.nuage_vsp_device.apiversion[3]
) )
vsd_api_client.new_session() vsd_api_client.new_session()
cls.vsd = VSDHelpers(vsd_api_client) cls.vsd = VSDHelpers(vsd_api_client)
@ -391,7 +359,7 @@ class nuageTestCase(cloudstackTestCase):
# create_Vpc - Creates VPC with the given VPC offering # create_Vpc - Creates VPC with the given VPC offering
@needscleanup @needscleanup
def create_Vpc(cls, vpc_offering, cidr='10.1.0.0/16', testdata=None, def create_vpc(cls, vpc_offering, cidr='10.1.0.0/16', testdata=None,
account=None, networkDomain=None): account=None, networkDomain=None):
"""Creates VPC with the given VPC offering """Creates VPC with the given VPC offering
:param vpc_offering: vpc offering :param vpc_offering: vpc offering
@ -466,7 +434,8 @@ class nuageTestCase(cloudstackTestCase):
@needscleanup @needscleanup
def create_Network(cls, nw_off, gateway="10.1.1.1", def create_Network(cls, nw_off, gateway="10.1.1.1",
netmask="255.255.255.0", vpc=None, acl_list=None, netmask="255.255.255.0", vpc=None, acl_list=None,
testdata=None, account=None, vlan=None, externalid=None): testdata=None, account=None, vlan=None,
externalid=None):
"""Creates Network with the given Network offering """Creates Network with the given Network offering
:param nw_off: Network offering :param nw_off: Network offering
:type nw_off: NetworkOffering :type nw_off: NetworkOffering
@ -502,7 +471,7 @@ class nuageTestCase(cloudstackTestCase):
vlan=vlan, vlan=vlan,
externalid=externalid, externalid=externalid,
vpcid=vpc.id if vpc else cls.vpc.id vpcid=vpc.id if vpc else cls.vpc.id
if hasattr(cls, "vpc") else None, if hasattr(cls, "vpc") and cls.vpc else None,
aclid=acl_list.id if acl_list else None aclid=acl_list.id if acl_list else None
) )
cls.debug("Created network with ID - %s" % network.id) cls.debug("Created network with ID - %s" % network.id)
@ -513,12 +482,14 @@ class nuageTestCase(cloudstackTestCase):
if not hasattr(nw_off, "id"): if not hasattr(nw_off, "id"):
nw_off = self.create_NetworkOffering(nw_off) nw_off = self.create_NetworkOffering(nw_off)
self.debug("Updating Network with ID - %s" % network.id) self.debug("Updating Network with ID - %s" % network.id)
network.update(self.api_client, updated_network =\
networkofferingid=nw_off.id, network.update(self.api_client,
changecidr=False, networkofferingid=nw_off.id,
forced=forced changecidr=False,
) forced=forced
)
self.debug("Updated network with ID - %s" % network.id) self.debug("Updated network with ID - %s" % network.id)
return updated_network
# delete_Network - Deletes the given network # delete_Network - Deletes the given network
def delete_Network(self, network): def delete_Network(self, network):
@ -640,7 +611,8 @@ class nuageTestCase(cloudstackTestCase):
networkid=network.id networkid=network.id
if vpc is None else None, if vpc is None else None,
vpcid=vpc.id if vpc else self.vpc.id vpcid=vpc.id if vpc else self.vpc.id
if hasattr(self, "vpc") else None if hasattr(self, "vpc") and self.vpc
else None
) )
self.debug("Associated public IP address - %s with network with ID - " self.debug("Associated public IP address - %s with network with ID - "
"%s" % (public_ip.ipaddress.ipaddress, network.id)) "%s" % (public_ip.ipaddress.ipaddress, network.id))
@ -733,7 +705,8 @@ class nuageTestCase(cloudstackTestCase):
traffictype=traffic_type traffictype=traffic_type
) )
def ssh_into_VM(self, vm, public_ip, reconnect=True, negative_test=False, keypair=None): def ssh_into_VM(self, vm, public_ip, reconnect=True, negative_test=False,
keypair=None):
"""Creates a SSH connection to the VM """Creates a SSH connection to the VM
:returns: the SSH connection :returns: the SSH connection
@ -753,7 +726,8 @@ class nuageTestCase(cloudstackTestCase):
ipaddress=public_ip.ipaddress.ipaddress, ipaddress=public_ip.ipaddress.ipaddress,
reconnect=reconnect, reconnect=reconnect,
retries=3 if negative_test else 30, retries=3 if negative_test else 30,
keyPairFileLocation=keypair.private_key_file if keypair else None keyPairFileLocation=keypair.private_key_file
if keypair else None
) )
self.debug("Successful to SSH into VM with ID - %s on " self.debug("Successful to SSH into VM with ID - %s on "
"public IP address - %s" % "public IP address - %s" %
@ -781,7 +755,6 @@ class nuageTestCase(cloudstackTestCase):
self.debug("SSH client executed command result is None") self.debug("SSH client executed command result is None")
return ret_data return ret_data
def wget_from_server(self, public_ip, port=80, file_name="index.html", def wget_from_server(self, public_ip, port=80, file_name="index.html",
disable_system_proxies=True): disable_system_proxies=True):
"""Fetches file with the given file name from a web server """Fetches file with the given file name from a web server
@ -825,10 +798,9 @@ class nuageTestCase(cloudstackTestCase):
name=provider_name, name=provider_name,
physicalnetworkid=self.vsp_physical_network.id physicalnetworkid=self.vsp_physical_network.id
) )
self.assertEqual(isinstance(providers, list), True, self.assertIsInstance(providers, list,
"List Network Service Provider should return a " "List Network Service Provider should return a "
"valid list" "valid list")
)
self.assertEqual(provider_name, providers[0].name, self.assertEqual(provider_name, providers[0].name,
"Name of the Network Service Provider should match " "Name of the Network Service Provider should match "
"with the returned list data" "with the returned list data"
@ -873,7 +845,7 @@ class nuageTestCase(cloudstackTestCase):
self.debug("Successfully validated the creation and state of VPC " self.debug("Successfully validated the creation and state of VPC "
"offering - %s" % vpc_offering.name) "offering - %s" % vpc_offering.name)
def validate_Vpc(self, vpc, state=None): def validate_vpc(self, vpc, state=None):
"""Validates the VPC """Validates the VPC
Fetches the vpc by id, Fetches the vpc by id,
@ -989,7 +961,7 @@ class nuageTestCase(cloudstackTestCase):
self.debug("Successfully validated the deployment and state of VM - %s" self.debug("Successfully validated the deployment and state of VM - %s"
% vm.name) % vm.name)
def check_Router_state(self, router, state=None): def check_Router_state(self, router=None, network=None, state=None):
"""Validates the Router state """Validates the Router state
:param router: cs object :param router: cs object
:type router: Router :type router: Router
@ -997,12 +969,17 @@ class nuageTestCase(cloudstackTestCase):
:raise AssertionError when router isn't found, :raise AssertionError when router isn't found,
or has an incorrect state.""" or has an incorrect state."""
self.debug("Validating the deployment and state of Router - %s" % if router:
router.name) self.debug("Validating the deployment and state of Router - %s" %
routers = Router.list(self.api_client, router.name)
id=router.id, routers = Router.list(self.api_client, id=router.id,
listall=True listall=True)
) elif network:
routers = Router.list(self.api_client, networkid=network.id,
listall=True)
else:
raise AttributeError("Either router or network "
"has to be specified")
self.assertEqual(isinstance(routers, list), True, self.assertEqual(isinstance(routers, list), True,
"List router should return a valid list" "List router should return a valid list"
) )
@ -1011,7 +988,9 @@ class nuageTestCase(cloudstackTestCase):
"Virtual router is not in the expected state" "Virtual router is not in the expected state"
) )
self.debug("Successfully validated the deployment and state of Router " self.debug("Successfully validated the deployment and state of Router "
"- %s" % router.name) "- %s" % routers[0].name)
return routers[0]
def validate_PublicIPAddress(self, public_ip, network, static_nat=False, def validate_PublicIPAddress(self, public_ip, network, static_nat=False,
vm=None): vm=None):
@ -1245,7 +1224,6 @@ class nuageTestCase(cloudstackTestCase):
self.debug("Failed to get the subnet id due to %s" % e) self.debug("Failed to get the subnet id due to %s" % e)
self.fail("Unable to get the subnet id, failing the test case") self.fail("Unable to get the subnet id, failing the test case")
def verify_vsd_shared_network(self, domain_id, network, def verify_vsd_shared_network(self, domain_id, network,
gateway="10.1.1.1"): gateway="10.1.1.1"):
"""Verifies the given CloudStack domain and """Verifies the given CloudStack domain and
@ -1324,6 +1302,8 @@ class nuageTestCase(cloudstackTestCase):
) )
vm_info = VirtualMachine.list(self.api_client, id=vm.id)[0] vm_info = VirtualMachine.list(self.api_client, id=vm.id)[0]
for nic in vm_info.nic: for nic in vm_info.nic:
if nic.type == "Shared":
continue
vsd_subnet = self.vsd.get_subnet( vsd_subnet = self.vsd.get_subnet(
filter=self.get_externalID_filter(nic.networkid)) filter=self.get_externalID_filter(nic.networkid))
vsd_vport = self.vsd.get_vport( vsd_vport = self.vsd.get_vport(

View File

@ -14,6 +14,7 @@
# KIND, either express or implied. See the License for the # KIND, either express or implied. See the License for the
# specific language governing permissions and limitations # specific language governing permissions and limitations
# under the License. # under the License.
import functools
from marvin.cloudstackAPI import createSSHKeyPair, deleteSSHKeyPair from marvin.cloudstackAPI import createSSHKeyPair, deleteSSHKeyPair
@ -44,4 +45,54 @@ class MySSHKeyPair:
cmd.name = self.name cmd.name = self.name
cmd.account = self.account cmd.account = self.account
cmd.domainid = self.domainid cmd.domainid = self.domainid
apiclient.deleteSSHKeyPair(cmd) apiclient.deleteSSHKeyPair(cmd)
class GherkinMetaClass(type):
def __new__(mcs, name, bases, namespace):
namespace = {
k: gherkin(v)
if k.startswith('given_') or
k.startswith('when_') or
k.startswith('then_')
else v for k, v in namespace.items()
}
return super(GherkinMetaClass, mcs)\
.__new__(mcs, name, bases, namespace)
class gherkin(object):
"""Decorator to mark a method as Gherkin style.
Add extra colored logging
"""
BLACK = "\033[0;30m"
BLUE = "\033[0;34m"
GREEN = "\033[0;32m"
CYAN = "\033[0;36m"
RED = "\033[0;31m"
BOLDBLUE = "\033[1;34m"
NORMAL = "\033[0m"
def __init__(self, method):
self.method = method
def __get__(self, obj=None, objtype=None):
@functools.wraps(self.method)
def _wrapper(*args, **kwargs):
if self.method.__doc__:
gherkin_step = self.method.__doc__.format(*args, **kwargs)
else:
gherkin_step = self.method.__name__\
.replace("_", " ")\
.capitalize()
obj.info("=G= %s%s%s" % (self.BOLDBLUE, gherkin_step, self.NORMAL))
try:
result = self.method(obj, *args, **kwargs)
obj.info("=G= %s%s: [SUCCESS]%s" %
(self.GREEN, gherkin_step, self.NORMAL))
return result
except Exception as e:
obj.info("=G= %s%s: [FAILED]%s%s" %
(self.RED, gherkin_step, self.NORMAL, e))
raise
return _wrapper

File diff suppressed because it is too large Load Diff

View File

@ -19,11 +19,11 @@
Nuage VSP SDN plugin Nuage VSP SDN plugin
""" """
# Import Local Modules # Import Local Modules
from nuageTestCase import (nuageTestCase, gherkin) from nuageTestCase import (nuageTestCase)
from nuage_lib import gherkin
from marvin.cloudstackAPI import updateVirtualMachine, updateZone from marvin.cloudstackAPI import updateVirtualMachine, updateZone
from marvin.lib.base import (Account, from marvin.lib.base import (Account,
Network, Network,
VirtualMachine,
Configurations, Configurations,
NetworkOffering) NetworkOffering)
# Import System Modules # Import System Modules
@ -56,7 +56,7 @@ class TestNuageExtraDhcp(nuageTestCase):
cls.api_client.updateZone(cmd) cls.api_client.updateZone(cmd)
cls.vpc_offering = cls.create_VpcOffering( cls.vpc_offering = cls.create_VpcOffering(
cls.test_data["nuagevsp"]["vpc_offering_nuage_dhcp"]) cls.test_data["nuagevsp"]["vpc_offering_nuage_dhcp"])
cls.vpc1 = cls.create_Vpc(cls.vpc_offering, cidr="10.0.0.0/16", cls.vpc1 = cls.create_vpc(cls.vpc_offering, cidr="10.0.0.0/16",
networkDomain="testvpc.com") networkDomain="testvpc.com")
cls.vpc_network_offering = cls.create_NetworkOffering( cls.vpc_network_offering = cls.create_NetworkOffering(
@ -423,7 +423,8 @@ class TestNuageExtraDhcp(nuageTestCase):
def verify_dhcp_on_vm( def verify_dhcp_on_vm(
self, dhcpleasefile, dhcp_option_map, ssh_client, cleanlease=True): self, dhcpleasefile, dhcp_option_map, ssh_client, cleanlease=True):
if self.isSimulator: if self.isSimulator:
self.debug("Simulator Environment: Skipping VM DHCP option verification") self.debug("Simulator Environment: "
"Skipping VM DHCP option verification")
return return
cmd = 'cat /var/lib/dhclient/'+dhcpleasefile cmd = 'cat /var/lib/dhclient/'+dhcpleasefile
@ -455,8 +456,7 @@ class TestNuageExtraDhcp(nuageTestCase):
self.debug("clear lease is done properly:" + completeoutput) self.debug("clear lease is done properly:" + completeoutput)
def update_zone_details(self, value): def update_zone_details(self, value):
"""Updates the VM data""" """Updates Network Domain at zone level"""
# update Network Domain at zone level
cmd = updateZone.updateZoneCmd() cmd = updateZone.updateZoneCmd()
cmd.id = self.zone.id cmd.id = self.zone.id
cmd.domain = value cmd.domain = value
@ -489,9 +489,9 @@ class TestNuageExtraDhcp(nuageTestCase):
self.validate_NetworkOffering(network_offering, state="Enabled") self.validate_NetworkOffering(network_offering, state="Enabled")
self.validate_Network(network) self.validate_Network(network)
def validate_vpc(self, vpc, vpc_offering): def validate_vpc_and_vpcoffering(self, vpc, vpc_offering):
self.debug("Validating vpc...") self.debug("Validating vpc...")
self.validate_Vpc(vpc) self.validate_vpc(vpc)
self.validate_VpcOffering(vpc_offering) self.validate_VpcOffering(vpc_offering)
def verify_dhcp_options_on_vm( def verify_dhcp_options_on_vm(
@ -590,18 +590,18 @@ class TestNuageExtraDhcp(nuageTestCase):
self.validate_NetworkOffering(network_offering, state="Enabled") self.validate_NetworkOffering(network_offering, state="Enabled")
return network_offering return network_offering
def create_vpc(self, vpc_offering, cidr="10.0.0.0/16"): def create_and_validate_vpc(self, vpc_offering, cidr="10.0.0.0/16"):
# Creating a VPC # Creating a VPC
self.debug("Creating a VPC with Nuage VSP VPC offering...") self.debug("Creating a VPC with Nuage VSP VPC offering...")
vpc = self.create_Vpc(vpc_offering, cidr=cidr, vpc = self.create_vpc(vpc_offering, cidr=cidr,
networkDomain="testvpc.com") networkDomain="testvpc.com")
self.validate_Vpc(vpc, state="Enabled") self.validate_vpc(vpc, state="Enabled")
return vpc return vpc
def create_vpc_with_tier(self, domain_name="testvpc.com"): def create_vpc_with_tier(self, domain_name="testvpc.com"):
vpc_offering = self.create_vpc_offering_with_nuage_dhcp() vpc_offering = self.create_vpc_offering_with_nuage_dhcp()
vpc = self.create_vpc(vpc_offering) vpc = self.create_and_validate_vpc(vpc_offering)
vpc_network_offering = self.create_vpc_network_offering() vpc_network_offering = self.create_vpc_network_offering()
acl_list = self.create_acl_list_with_item(vpc) acl_list = self.create_acl_list_with_item(vpc)
@ -1267,8 +1267,9 @@ class TestNuageExtraDhcp(nuageTestCase):
self.when_i_stop_and_start_a_vm(vm1) self.when_i_stop_and_start_a_vm(vm1)
with self.assertRaises(Exception): with self.assertRaises(Exception):
vm1.remove_nic( vm1.remove_nic(
self.api_client, [nic for nic in result.nic self.api_client,
if nic.networkid == network.id][0]) [nic for nic in result.nic
if nic.networkid == network.id][0].id)
def validate_all_extra_dhcp_for_update_multinic( def validate_all_extra_dhcp_for_update_multinic(
self, network, self, network,
@ -1683,7 +1684,7 @@ class TestNuageExtraDhcp(nuageTestCase):
@attr(tags=["advanced", "nuagevsp"], required_hardware="false") @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
def test_02_nuage_extra_dhcp_single_nic_in_vpc(self): def test_02_nuage_extra_dhcp_single_nic_in_vpc(self):
self.update_zone_details("testvpc.com") self.update_zone_details("testvpc.com")
self.validate_vpc(self.vpc1, self.vpc_offering) self.validate_vpc_and_vpcoffering(self.vpc1, self.vpc_offering)
self.validate_Network(self.vpc_network) self.validate_Network(self.vpc_network)
self.validate_all_extra_dhcp_deploy_vm( self.validate_all_extra_dhcp_deploy_vm(
@ -1710,7 +1711,7 @@ class TestNuageExtraDhcp(nuageTestCase):
@attr(tags=["advanced", "nuagevsp"], required_hardware="false") @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
def test_05_nuage_extra_dhcp_update_vm_in_vpc(self): def test_05_nuage_extra_dhcp_update_vm_in_vpc(self):
self.update_zone_details("testvpc.com") self.update_zone_details("testvpc.com")
self.validate_vpc(self.vpc1, self.vpc_offering) self.validate_vpc_and_vpcoffering(self.vpc1, self.vpc_offering)
self.validate_Network(self.vpc_network) self.validate_Network(self.vpc_network)
self.validate_all_extra_dhcp_after_vm_update( self.validate_all_extra_dhcp_after_vm_update(
@ -1736,7 +1737,7 @@ class TestNuageExtraDhcp(nuageTestCase):
@attr(tags=["advanced", "nuagevsp"], required_hardware="false") @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
def test_08_nuage_extra_dhcp_add_nic_in_vpc(self): def test_08_nuage_extra_dhcp_add_nic_in_vpc(self):
self.update_zone_details("testvpc.com") self.update_zone_details("testvpc.com")
self.validate_vpc(self.vpc1, self.vpc_offering) self.validate_vpc_and_vpcoffering(self.vpc1, self.vpc_offering)
self.validate_Network(self.vpc_network) self.validate_Network(self.vpc_network)
self.validate_all_extra_dhcp_after_plug_nic( self.validate_all_extra_dhcp_after_plug_nic(
@ -1762,7 +1763,7 @@ class TestNuageExtraDhcp(nuageTestCase):
@attr(tags=["advanced", "nuagevsp"], required_hardware="false") @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
def test_11_nuage_extra_dhcp_deploy_multi_nic_vm_in_vpc(self): def test_11_nuage_extra_dhcp_deploy_multi_nic_vm_in_vpc(self):
self.update_zone_details("testvpc.com") self.update_zone_details("testvpc.com")
self.validate_vpc(self.vpc1, self.vpc_offering) self.validate_vpc_and_vpcoffering(self.vpc1, self.vpc_offering)
self.validate_Network(self.vpc_network) self.validate_Network(self.vpc_network)
self.validate_all_extra_dhcp_for_multi_nic( self.validate_all_extra_dhcp_for_multi_nic(
@ -1788,7 +1789,7 @@ class TestNuageExtraDhcp(nuageTestCase):
@attr(tags=["advanced", "nuagevsp"], required_hardware="false") @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
def test_14_nuage_extra_dhcp_update_multi_nic_in_vpc(self): def test_14_nuage_extra_dhcp_update_multi_nic_in_vpc(self):
self.update_zone_details("testvpc.com") self.update_zone_details("testvpc.com")
self.validate_vpc(self.vpc1, self.vpc_offering) self.validate_vpc_and_vpcoffering(self.vpc1, self.vpc_offering)
self.validate_Network(self.vpc_network) self.validate_Network(self.vpc_network)
self.validate_all_extra_dhcp_for_update_multinic( self.validate_all_extra_dhcp_for_update_multinic(
@ -1814,7 +1815,7 @@ class TestNuageExtraDhcp(nuageTestCase):
@attr(tags=["advanced", "nuagevsp"], required_hardware="false") @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
def test_17_nuage_extra_dhcp_remove_nic_in_vpc(self): def test_17_nuage_extra_dhcp_remove_nic_in_vpc(self):
self.update_zone_details("testvpc.com") self.update_zone_details("testvpc.com")
self.validate_vpc(self.vpc1, self.vpc_offering) self.validate_vpc_and_vpcoffering(self.vpc1, self.vpc_offering)
self.validate_Network(self.vpc_network) self.validate_Network(self.vpc_network)
self.validate_all_extra_dhcp_for_remove_nic_from_vm( self.validate_all_extra_dhcp_for_remove_nic_from_vm(
@ -1841,7 +1842,7 @@ class TestNuageExtraDhcp(nuageTestCase):
@attr(tags=["advanced", "nuagevsp"], required_hardware="false") @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
def test_20_nuage_nuage_extra_dhcp_vm_actions_in_vpc(self): def test_20_nuage_nuage_extra_dhcp_vm_actions_in_vpc(self):
self.update_zone_details("testvpc.com") self.update_zone_details("testvpc.com")
self.validate_vpc(self.vpc1, self.vpc_offering) self.validate_vpc_and_vpcoffering(self.vpc1, self.vpc_offering)
self.validate_Network(self.vpc_network) self.validate_Network(self.vpc_network)
self.validate_all_extra_dhcp_for_vm_actions_in_network( self.validate_all_extra_dhcp_for_vm_actions_in_network(
@ -1868,7 +1869,7 @@ class TestNuageExtraDhcp(nuageTestCase):
@attr(tags=["advanced", "nuagevsp"], required_hardware="false") @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
def test_23_nuage_nuage_extra_dhcp_network_actions_in_vpc(self): def test_23_nuage_nuage_extra_dhcp_network_actions_in_vpc(self):
self.update_zone_details("testvpc.com") self.update_zone_details("testvpc.com")
self.validate_vpc(self.vpc1, self.vpc_offering) self.validate_vpc_and_vpcoffering(self.vpc1, self.vpc_offering)
self.validate_Network(self.vpc_network) self.validate_Network(self.vpc_network)
self.validate_all_extra_dhcp_for_network_actions_in_network( self.validate_all_extra_dhcp_for_network_actions_in_network(
@ -1895,7 +1896,7 @@ class TestNuageExtraDhcp(nuageTestCase):
@attr(tags=["advanced", "nuagevsp"], required_hardware="false") @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
def test_26_nuage_nuage_extra_dhcp_nic_after_migrate_in_vpc(self): def test_26_nuage_nuage_extra_dhcp_nic_after_migrate_in_vpc(self):
self.update_zone_details("testvpc.com") self.update_zone_details("testvpc.com")
self.validate_vpc(self.vpc1, self.vpc_offering) self.validate_vpc_and_vpcoffering(self.vpc1, self.vpc_offering)
self.validate_Network(self.vpc_network) self.validate_Network(self.vpc_network)
self.validate_all_extra_dhcp_for_add_remove_nic_after_migrate( self.validate_all_extra_dhcp_for_add_remove_nic_after_migrate(
@ -1929,7 +1930,7 @@ class TestNuageExtraDhcp(nuageTestCase):
@attr(tags=["advanced", "nuagevsp"], required_hardware="false") @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
def test_30_nuage_extra_dhcp_allocated_vpc(self): def test_30_nuage_extra_dhcp_allocated_vpc(self):
self.update_zone_details("testvpc.com") self.update_zone_details("testvpc.com")
self.validate_vpc(self.vpc1, self.vpc_offering) self.validate_vpc_and_vpcoffering(self.vpc1, self.vpc_offering)
self.validate_Network(self.vpc_network) self.validate_Network(self.vpc_network)
self.validate_all_extra_dhcp_for_network_in_allocated( self.validate_all_extra_dhcp_for_network_in_allocated(

View File

@ -23,7 +23,6 @@ from marvin.cloudstackAPI import updateZone
from marvin.lib.base import Account, Network from marvin.lib.base import Account, Network
# Import System Modules # Import System Modules
from nose.plugins.attrib import attr from nose.plugins.attrib import attr
import time
UPDATED_DOMAIN_NAME = "update.com" UPDATED_DOMAIN_NAME = "update.com"
@ -124,7 +123,8 @@ class TestNuageInternalDns(nuageTestCase):
self.debug("command is executed properly " + cmd) self.debug("command is executed properly " + cmd)
completeoutput = str(outputlist).strip('[]') completeoutput = str(outputlist).strip('[]')
self.debug("complete output is " + completeoutput) self.debug("complete output is " + completeoutput)
expectedlist = ['2 received', dst_vm.name + '.' + domain_name, dst_vm.ipaddress] expectedlist = ['2 received', dst_vm.name + '.' + domain_name,
dst_vm.ipaddress]
for item in expectedlist: for item in expectedlist:
if item in completeoutput: if item in completeoutput:
self.debug("excepted value found in vm: " + item) self.debug("excepted value found in vm: " + item)
@ -163,7 +163,8 @@ class TestNuageInternalDns(nuageTestCase):
# Internal DNS check point on VSD # Internal DNS check point on VSD
self.verify_vsd_dhcp_option(self.DNS, "10.1.1.2", network_1) self.verify_vsd_dhcp_option(self.DNS, "10.1.1.2", network_1)
self.verify_vsd_dhcp_option(self.DOMAINNAME, ISOLATED_DOMAIN_NAME, network_1) self.verify_vsd_dhcp_option(self.DOMAINNAME, ISOLATED_DOMAIN_NAME,
network_1)
for nic in vm_1.nic: for nic in vm_1.nic:
self.verify_vsd_dhcp_option(self.DNS, "10.1.1.2", nic, True) self.verify_vsd_dhcp_option(self.DNS, "10.1.1.2", nic, True)
self.verify_vsd_dhcp_option( self.verify_vsd_dhcp_option(
@ -204,7 +205,8 @@ class TestNuageInternalDns(nuageTestCase):
# Internal DNS check point on VSD # Internal DNS check point on VSD
self.verify_vsd_dhcp_option(self.DNS, "10.1.1.2", network_1) self.verify_vsd_dhcp_option(self.DNS, "10.1.1.2", network_1)
self.verify_vsd_dhcp_option(self.DOMAINNAME, ISOLATED_DOMAIN_NAME, network_1) self.verify_vsd_dhcp_option(self.DOMAINNAME, ISOLATED_DOMAIN_NAME,
network_1)
for nic in vm_1.nic: for nic in vm_1.nic:
self.verify_vsd_dhcp_option(self.DNS, "10.1.1.2", nic, True) self.verify_vsd_dhcp_option(self.DNS, "10.1.1.2", nic, True)
self.verify_vsd_dhcp_option( self.verify_vsd_dhcp_option(
@ -264,7 +266,8 @@ class TestNuageInternalDns(nuageTestCase):
# Internal DNS check point on VSD # Internal DNS check point on VSD
self.verify_vsd_dhcp_option(self.DNS, "10.1.1.2", network_1) self.verify_vsd_dhcp_option(self.DNS, "10.1.1.2", network_1)
self.verify_vsd_dhcp_option(self.DOMAINNAME, ISOLATED_DOMAIN_NAME, network_1) self.verify_vsd_dhcp_option(self.DOMAINNAME, ISOLATED_DOMAIN_NAME,
network_1)
for nic in vm_1.nic: for nic in vm_1.nic:
self.verify_vsd_dhcp_option(self.DNS, "10.1.1.2", nic, True) self.verify_vsd_dhcp_option(self.DNS, "10.1.1.2", nic, True)
self.verify_vsd_dhcp_option( self.verify_vsd_dhcp_option(
@ -373,7 +376,8 @@ class TestNuageInternalDns(nuageTestCase):
"Network Domain is not updated as expected" "Network Domain is not updated as expected"
) )
self.verify_vsd_dhcp_option(self.DNS, "10.1.1.2", network_1) self.verify_vsd_dhcp_option(self.DNS, "10.1.1.2", network_1)
self.verify_vsd_dhcp_option(self.DOMAINNAME, UPDATED_DOMAIN_NAME, network_1) self.verify_vsd_dhcp_option(self.DOMAINNAME, UPDATED_DOMAIN_NAME,
network_1)
for nic in vm_1.nic: for nic in vm_1.nic:
self.verify_vsd_dhcp_option(self.DNS, "10.1.1.2", nic, True) self.verify_vsd_dhcp_option(self.DNS, "10.1.1.2", nic, True)
self.verify_vsd_dhcp_option( self.verify_vsd_dhcp_option(
@ -432,7 +436,8 @@ class TestNuageInternalDns(nuageTestCase):
"Network Domain is not updated as expected" "Network Domain is not updated as expected"
) )
self.verify_vsd_dhcp_option(self.DNS, "10.1.1.2", network_1) self.verify_vsd_dhcp_option(self.DNS, "10.1.1.2", network_1)
self.verify_vsd_dhcp_option(self.DOMAINNAME, UPDATED_DOMAIN_NAME, network_1) self.verify_vsd_dhcp_option(self.DOMAINNAME, UPDATED_DOMAIN_NAME,
network_1)
for nic in vm_1.nic: for nic in vm_1.nic:
self.verify_vsd_dhcp_option(self.DNS, "10.1.1.2", nic, True) self.verify_vsd_dhcp_option(self.DNS, "10.1.1.2", nic, True)
self.verify_vsd_dhcp_option( self.verify_vsd_dhcp_option(
@ -484,7 +489,7 @@ class TestNuageInternalDns(nuageTestCase):
vpc_off = self.create_VpcOffering(self.dnsdata["vpc_offering"]) vpc_off = self.create_VpcOffering(self.dnsdata["vpc_offering"])
self.validate_VpcOffering(vpc_off, state="Enabled") self.validate_VpcOffering(vpc_off, state="Enabled")
vpc = self.create_Vpc(vpc_off, cidr='10.1.0.0/16', cleanup=False) vpc = self.create_vpc(vpc_off, cidr='10.1.0.0/16', cleanup=False)
self.debug("Creating Nuage Vsp VPC Network offering...") self.debug("Creating Nuage Vsp VPC Network offering...")
network_offering = self.create_NetworkOffering( network_offering = self.create_NetworkOffering(
@ -501,10 +506,12 @@ class TestNuageInternalDns(nuageTestCase):
# Internal DNS check point on VSD # Internal DNS check point on VSD
self.verify_vsd_dhcp_option(self.DNS, "10.1.1.2", network_1) self.verify_vsd_dhcp_option(self.DNS, "10.1.1.2", network_1)
self.verify_vsd_dhcp_option(self.DOMAINNAME, VPC_DOMAIN_NAME, network_1) self.verify_vsd_dhcp_option(self.DOMAINNAME, VPC_DOMAIN_NAME,
network_1)
for nic in vm_1.nic: for nic in vm_1.nic:
self.verify_vsd_dhcp_option(self.DNS, "10.1.1.2", nic, True) self.verify_vsd_dhcp_option(self.DNS, "10.1.1.2", nic, True)
self.verify_vsd_dhcp_option(self.DOMAINNAME, VPC_DOMAIN_NAME, nic, True) self.verify_vsd_dhcp_option(self.DOMAINNAME, VPC_DOMAIN_NAME,
nic, True)
self.verify_vsd_dhcp_option(self.HOSTNAME, "vm1", nic, True) self.verify_vsd_dhcp_option(self.HOSTNAME, "vm1", nic, True)
@attr(tags=["advanced", "nuagevsp"], required_hardware="true") @attr(tags=["advanced", "nuagevsp"], required_hardware="true")
@ -527,7 +534,7 @@ class TestNuageInternalDns(nuageTestCase):
vpc_off = self.create_VpcOffering(self.dnsdata["vpc_offering"]) vpc_off = self.create_VpcOffering(self.dnsdata["vpc_offering"])
self.validate_VpcOffering(vpc_off, state="Enabled") self.validate_VpcOffering(vpc_off, state="Enabled")
vpc = self.create_Vpc(vpc_off, cidr='10.1.0.0/16', cleanup=False) vpc = self.create_vpc(vpc_off, cidr='10.1.0.0/16', cleanup=False)
self.debug("Creating Nuage Vsp VPC Network offering...") self.debug("Creating Nuage Vsp VPC Network offering...")
network_offering = self.create_NetworkOffering( network_offering = self.create_NetworkOffering(
@ -546,7 +553,8 @@ class TestNuageInternalDns(nuageTestCase):
self.verify_vsd_dhcp_option(self.DOMAINNAME, "vpc.com", network_1) self.verify_vsd_dhcp_option(self.DOMAINNAME, "vpc.com", network_1)
for nic in vm_1.nic: for nic in vm_1.nic:
self.verify_vsd_dhcp_option(self.DNS, "10.1.1.2", nic, True) self.verify_vsd_dhcp_option(self.DNS, "10.1.1.2", nic, True)
self.verify_vsd_dhcp_option(self.DOMAINNAME, VPC_DOMAIN_NAME, nic, True) self.verify_vsd_dhcp_option(self.DOMAINNAME, VPC_DOMAIN_NAME,
nic, True)
self.verify_vsd_dhcp_option(self.HOSTNAME, "vm1", nic, True) self.verify_vsd_dhcp_option(self.HOSTNAME, "vm1", nic, True)
self.test_data["virtual_machine"]["displayname"] = "vm2" self.test_data["virtual_machine"]["displayname"] = "vm2"
@ -557,7 +565,8 @@ class TestNuageInternalDns(nuageTestCase):
self.verify_vsd_vm(vm_2) self.verify_vsd_vm(vm_2)
for nic in vm_2.nic: for nic in vm_2.nic:
self.verify_vsd_dhcp_option(self.DNS, "10.1.1.2", nic, True) self.verify_vsd_dhcp_option(self.DNS, "10.1.1.2", nic, True)
self.verify_vsd_dhcp_option(self.DOMAINNAME, VPC_DOMAIN_NAME, nic, True) self.verify_vsd_dhcp_option(self.DOMAINNAME, VPC_DOMAIN_NAME,
nic, True)
self.verify_vsd_dhcp_option(self.HOSTNAME, "vm2", nic, True) self.verify_vsd_dhcp_option(self.HOSTNAME, "vm2", nic, True)
public_ip_1 = self.acquire_PublicIPAddress(network_1, vpc) public_ip_1 = self.acquire_PublicIPAddress(network_1, vpc)
@ -594,7 +603,7 @@ class TestNuageInternalDns(nuageTestCase):
vpc_off = self.create_VpcOffering(self.dnsdata["vpc_offering"]) vpc_off = self.create_VpcOffering(self.dnsdata["vpc_offering"])
self.validate_VpcOffering(vpc_off, state="Enabled") self.validate_VpcOffering(vpc_off, state="Enabled")
vpc = self.create_Vpc(vpc_off, cidr='10.1.0.0/16', cleanup=False) vpc = self.create_vpc(vpc_off, cidr='10.1.0.0/16', cleanup=False)
self.debug("Creating Nuage Vsp VPC Network offering...") self.debug("Creating Nuage Vsp VPC Network offering...")
network_offering = self.create_NetworkOffering( network_offering = self.create_NetworkOffering(
@ -610,10 +619,12 @@ class TestNuageInternalDns(nuageTestCase):
self.verify_vsd_vm(vm_1) self.verify_vsd_vm(vm_1)
# Internal DNS check point on VSD # Internal DNS check point on VSD
self.verify_vsd_dhcp_option(self.DNS, "10.1.1.2", network_1) self.verify_vsd_dhcp_option(self.DNS, "10.1.1.2", network_1)
self.verify_vsd_dhcp_option(self.DOMAINNAME, VPC_DOMAIN_NAME, network_1) self.verify_vsd_dhcp_option(self.DOMAINNAME, VPC_DOMAIN_NAME,
network_1)
for nic in vm_1.nic: for nic in vm_1.nic:
self.verify_vsd_dhcp_option(self.DNS, "10.1.1.2", nic, True) self.verify_vsd_dhcp_option(self.DNS, "10.1.1.2", nic, True)
self.verify_vsd_dhcp_option(self.DOMAINNAME, VPC_DOMAIN_NAME, nic, True) self.verify_vsd_dhcp_option(self.DOMAINNAME, VPC_DOMAIN_NAME,
nic, True)
self.verify_vsd_dhcp_option(self.HOSTNAME, "vm1", nic, True) self.verify_vsd_dhcp_option(self.HOSTNAME, "vm1", nic, True)
self.test_data["virtual_machine"]["displayname"] = "vm2" self.test_data["virtual_machine"]["displayname"] = "vm2"
@ -624,7 +635,8 @@ class TestNuageInternalDns(nuageTestCase):
self.verify_vsd_vm(vm_2) self.verify_vsd_vm(vm_2)
for nic in vm_2.nic: for nic in vm_2.nic:
self.verify_vsd_dhcp_option(self.DNS, "10.1.1.2", nic, True) self.verify_vsd_dhcp_option(self.DNS, "10.1.1.2", nic, True)
self.verify_vsd_dhcp_option(self.DOMAINNAME, VPC_DOMAIN_NAME, nic, True) self.verify_vsd_dhcp_option(self.DOMAINNAME, VPC_DOMAIN_NAME,
nic, True)
self.verify_vsd_dhcp_option(self.HOSTNAME, "vm2", nic, True) self.verify_vsd_dhcp_option(self.HOSTNAME, "vm2", nic, True)
public_ip_1 = self.acquire_PublicIPAddress(network_1, vpc) public_ip_1 = self.acquire_PublicIPAddress(network_1, vpc)

View File

@ -1154,7 +1154,7 @@ class TestNuageMigration(nuageTestCase):
@attr(tags=["migrateACS", "vpcnovms"], @attr(tags=["migrateACS", "vpcnovms"],
required_hardware="false") required_hardware="false")
def test_10_migrate_native_vpc(self): def test_10_migrate_native_vpc(self):
vpc = self.create_Vpc(self.native_vpc_offering) vpc = self.create_vpc(self.native_vpc_offering)
network = self.create_Network(self.native_vpc_network_offering, network = self.create_Network(self.native_vpc_network_offering,
vpc=vpc) vpc=vpc)
self.create_VM(network) self.create_VM(network)
@ -1222,8 +1222,8 @@ class TestNuageMigration(nuageTestCase):
self.debug("Creating a VPC with Static NAT service provider as " self.debug("Creating a VPC with Static NAT service provider as "
"VpcVirtualRouter") "VpcVirtualRouter")
vpc = self.create_Vpc(native_vpc_off, cidr='10.1.0.0/16') vpc = self.create_vpc(native_vpc_off, cidr='10.1.0.0/16')
self.validate_Vpc(vpc, state="Enabled") self.validate_vpc(vpc, state="Enabled")
self.debug("Creating native VPC Network Tier offering " self.debug("Creating native VPC Network Tier offering "
"with Static NAT service provider as VPCVR") "with Static NAT service provider as VPCVR")
@ -1484,8 +1484,8 @@ class TestNuageMigration(nuageTestCase):
self.debug("Creating a VPC with Static NAT service provider as " self.debug("Creating a VPC with Static NAT service provider as "
"VpcVirtualRouter") "VpcVirtualRouter")
vpc = self.create_Vpc(native_vpc_off, cidr='10.1.0.0/16') vpc = self.create_vpc(native_vpc_off, cidr='10.1.0.0/16')
self.validate_Vpc(vpc, state="Enabled") self.validate_vpc(vpc, state="Enabled")
self.debug("Creating native VPC Network Tier offering " self.debug("Creating native VPC Network Tier offering "
"with Static NAT service provider as VPCVR") "with Static NAT service provider as VPCVR")
@ -1802,8 +1802,8 @@ class TestNuageMigration(nuageTestCase):
self.debug("Creating a VPC with Static NAT service provider as " self.debug("Creating a VPC with Static NAT service provider as "
"VpcVirtualRouter") "VpcVirtualRouter")
vpc = self.create_Vpc(native_vpc_off, cidr='10.1.0.0/16') vpc = self.create_vpc(native_vpc_off, cidr='10.1.0.0/16')
self.validate_Vpc(vpc, state="Enabled") self.validate_vpc(vpc, state="Enabled")
self.debug("Creating native VPC Network Tier offering " self.debug("Creating native VPC Network Tier offering "
"with Static NAT service provider as VPCVR") "with Static NAT service provider as VPCVR")
@ -1922,8 +1922,8 @@ class TestNuageMigration(nuageTestCase):
self.debug("Creating a VPC with Static NAT service provider as " self.debug("Creating a VPC with Static NAT service provider as "
"VpcVirtualRouter") "VpcVirtualRouter")
vpc = self.create_Vpc(native_vpc_off, cidr='10.1.0.0/16') vpc = self.create_vpc(native_vpc_off, cidr='10.1.0.0/16')
self.validate_Vpc(vpc, state="Enabled") self.validate_vpc(vpc, state="Enabled")
self.debug("Creating native VPC Network Tier offering " self.debug("Creating native VPC Network Tier offering "
"with Static NAT service provider as VPCVR") "with Static NAT service provider as VPCVR")

View File

@ -120,7 +120,7 @@ class TestNuagePasswordReset(nuageTestCase):
# stop_vm - Stops the given VM, and verifies its state # stop_vm - Stops the given VM, and verifies its state
def stop_vm(self, vm): def stop_vm(self, vm):
self.debug("Stoping VM") self.debug("Stopping VM")
vm.stop(self.api_client) vm.stop(self.api_client)
list_vm_response = VirtualMachine.list(self.api_client, list_vm_response = VirtualMachine.list(self.api_client,
id=vm.id id=vm.id
@ -139,8 +139,8 @@ class TestNuagePasswordReset(nuageTestCase):
# (SSH client) # (SSH client)
def install_cloud_set_guest_password_script(self, ssh_client): def install_cloud_set_guest_password_script(self, ssh_client):
if self.isSimulator: if self.isSimulator:
self.debug( "Simulator Environment: Skipping installing" self.debug("Simulator Environment: Skipping installing"
" cloud-set-guest-password script") " cloud-set-guest-password script")
return return
self.debug("Installing cloud-set-guest-password script") self.debug("Installing cloud-set-guest-password script")
cmd = "cd /etc/init.d;wget http://people.apache.org/~tsp/" \ cmd = "cd /etc/init.d;wget http://people.apache.org/~tsp/" \
@ -268,8 +268,7 @@ class TestNuagePasswordReset(nuageTestCase):
self.debug("Actual user data - " + actual_user_data + self.debug("Actual user data - " + actual_user_data +
", Expected user data - " + expected_user_data) ", Expected user data - " + expected_user_data)
self.assertEqual(actual_user_data, expected_user_data, self.assertEqual(actual_user_data, expected_user_data,
"Un-expected VM (VM_1) user data" "Un-expected VM (VM_1) user data")
)
self.debug("Checking for cloud-set-guest-password script in the " self.debug("Checking for cloud-set-guest-password script in the "
"VM for testing password reset functionality...") "VM for testing password reset functionality...")
@ -330,12 +329,22 @@ class TestNuagePasswordReset(nuageTestCase):
vm_test_public_ip = public_ip_1 vm_test_public_ip = public_ip_1
self.debug("Resetting password for VM - %s" % vm_test.name) self.debug("Resetting password for VM - %s" % vm_test.name)
self.stop_vm(vm_test)
vm_test.password = vm_test.resetPassword(self.api_client) vm_test.password = vm_test.resetPassword(self.api_client)
self.debug("Password reset to - %s" % vm_test.password) self.debug("Password reset to - %s" % vm_test.password)
self.debug("Starting the VM") self.debug("Starting the VM")
vm_test.start(self.api_client) vm_test.start(self.api_client)
self.debug("until CLOUDSTACK-10380 is fixed, redo resetPassword")
self.stop_vm(vm_test)
self.debug("Resetting password again for VM - %s" % vm_test.name)
vm_test.password = vm_test.resetPassword(self.api_client)
self.debug("VM - %s password - %s !" %
(vm_test.name, vm_test.password))
self.debug("Starting the VM again")
vm_test.start(self.api_client)
self.debug("verifying that the guest VM template is password " self.debug("verifying that the guest VM template is password "
"enabled...") "enabled...")
self.debug("VM - %s password - %s !" % self.debug("VM - %s password - %s !" %

View File

@ -460,19 +460,19 @@ class TestNuageSourceNat(nuageTestCase):
# Creating VPCs # Creating VPCs
self.debug("Creating a VPC with Source NAT service provider as " self.debug("Creating a VPC with Source NAT service provider as "
"NuageVsp...") "NuageVsp...")
vpc_1 = self.create_Vpc(vpc_off_1, cidr='10.1.0.0/16') vpc_1 = self.create_vpc(vpc_off_1, cidr='10.1.0.0/16')
self.validate_Vpc(vpc_1, state="Enabled") self.validate_vpc(vpc_1, state="Enabled")
self.debug("Creating a VPC with Source NAT service provider as " self.debug("Creating a VPC with Source NAT service provider as "
"VpcVirtualRouter...") "VpcVirtualRouter...")
with self.assertRaises(Exception): with self.assertRaises(Exception):
self.create_Vpc(vpc_off_2, cidr='10.1.0.0/16') self.create_vpc(vpc_off_2, cidr='10.1.0.0/16')
self.debug("Nuage VSP does not support provider VpcVirtualRouter for " self.debug("Nuage VSP does not support provider VpcVirtualRouter for "
"service Source NAT for VPCs") "service Source NAT for VPCs")
self.debug("Creating a VPC without Source NAT service...") self.debug("Creating a VPC without Source NAT service...")
with self.assertRaises(Exception): with self.assertRaises(Exception):
self.create_Vpc(vpc_off_3, cidr='10.1.0.0/16') self.create_vpc(vpc_off_3, cidr='10.1.0.0/16')
self.debug("Nuage VSP does not support VPCs without Source NAT " self.debug("Nuage VSP does not support VPCs without Source NAT "
"service") "service")
@ -714,8 +714,8 @@ class TestNuageSourceNat(nuageTestCase):
# Creating VPC # Creating VPC
self.debug("Creating a VPC with Source NAT service provider as " self.debug("Creating a VPC with Source NAT service provider as "
"NuageVsp...") "NuageVsp...")
vpc = self.create_Vpc(vpc_off, cidr='10.1.0.0/16') vpc = self.create_vpc(vpc_off, cidr='10.1.0.0/16')
self.validate_Vpc(vpc, state="Enabled") self.validate_vpc(vpc, state="Enabled")
# Creating network offering # Creating network offering
self.debug("Creating Nuage VSP VPC Network offering with Source NAT " self.debug("Creating Nuage VSP VPC Network offering with Source NAT "
@ -887,8 +887,8 @@ class TestNuageSourceNat(nuageTestCase):
# Creating VPC # Creating VPC
self.debug("Creating a VPC with Source NAT service provider as " self.debug("Creating a VPC with Source NAT service provider as "
"NuageVsp...") "NuageVsp...")
vpc = self.create_Vpc(vpc_off, cidr='10.1.0.0/16') vpc = self.create_vpc(vpc_off, cidr='10.1.0.0/16')
self.validate_Vpc(vpc, state="Enabled") self.validate_vpc(vpc, state="Enabled")
# Creating VPC network offering # Creating VPC network offering
self.debug("Creating Nuage VSP VPC Network offering with Source NAT " self.debug("Creating Nuage VSP VPC Network offering with Source NAT "
@ -1321,8 +1321,8 @@ class TestNuageSourceNat(nuageTestCase):
# Creating VPC # Creating VPC
self.debug("Creating a VPC with Source NAT service provider as " self.debug("Creating a VPC with Source NAT service provider as "
"NuageVsp...") "NuageVsp...")
vpc = self.create_Vpc(vpc_off, cidr='10.1.0.0/16') vpc = self.create_vpc(vpc_off, cidr='10.1.0.0/16')
self.validate_Vpc(vpc, state="Enabled") self.validate_vpc(vpc, state="Enabled")
# Creating VPC network offering # Creating VPC network offering
self.debug("Creating Nuage VSP VPC Network offering with Source NAT " self.debug("Creating Nuage VSP VPC Network offering with Source NAT "

View File

@ -849,19 +849,19 @@ class TestNuageStaticNat(nuageTestCase):
# Creating VPCs # Creating VPCs
self.debug("Creating a VPC with Static NAT service provider as " self.debug("Creating a VPC with Static NAT service provider as "
"NuageVsp...") "NuageVsp...")
vpc_1 = self.create_Vpc(vpc_off_1, cidr='10.1.0.0/16') vpc_1 = self.create_vpc(vpc_off_1, cidr='10.1.0.0/16')
self.validate_Vpc(vpc_1, state="Enabled") self.validate_vpc(vpc_1, state="Enabled")
self.debug("Creating a VPC with Static NAT service provider as " self.debug("Creating a VPC with Static NAT service provider as "
"VpcVirtualRouter...") "VpcVirtualRouter...")
with self.assertRaises(Exception): with self.assertRaises(Exception):
self.create_Vpc(vpc_off_2, cidr='10.1.0.0/16') self.create_vpc(vpc_off_2, cidr='10.1.0.0/16')
self.debug("Nuage VSP does not support provider VpcVirtualRouter for " self.debug("Nuage VSP does not support provider VpcVirtualRouter for "
"service Static NAT for VPCs") "service Static NAT for VPCs")
self.debug("Creating a VPC without Static NAT service...") self.debug("Creating a VPC without Static NAT service...")
vpc_2 = self.create_Vpc(vpc_off_3, cidr='10.1.0.0/16') vpc_2 = self.create_vpc(vpc_off_3, cidr='10.1.0.0/16')
self.validate_Vpc(vpc_2, state="Enabled") self.validate_vpc(vpc_2, state="Enabled")
# Creating network offerings # Creating network offerings
self.debug("Creating Nuage VSP VPC Network offering with Static NAT " self.debug("Creating Nuage VSP VPC Network offering with Static NAT "
@ -1194,8 +1194,8 @@ class TestNuageStaticNat(nuageTestCase):
# Creating VPC # Creating VPC
self.debug("Creating a VPC with Static NAT service provider as " self.debug("Creating a VPC with Static NAT service provider as "
"NuageVsp...") "NuageVsp...")
vpc = self.create_Vpc(vpc_off, cidr='10.1.0.0/16') vpc = self.create_vpc(vpc_off, cidr='10.1.0.0/16')
self.validate_Vpc(vpc, state="Enabled") self.validate_vpc(vpc, state="Enabled")
# Creating network offering # Creating network offering
self.debug("Creating Nuage VSP VPC Network offering with Static NAT " self.debug("Creating Nuage VSP VPC Network offering with Static NAT "
@ -1406,8 +1406,8 @@ class TestNuageStaticNat(nuageTestCase):
# Creating VPC # Creating VPC
self.debug("Creating a VPC with Static NAT service provider as " self.debug("Creating a VPC with Static NAT service provider as "
"NuageVsp...") "NuageVsp...")
vpc = self.create_Vpc(vpc_off, cidr='10.1.0.0/16') vpc = self.create_vpc(vpc_off, cidr='10.1.0.0/16')
self.validate_Vpc(vpc, state="Enabled") self.validate_vpc(vpc, state="Enabled")
# Creating network offering # Creating network offering
self.debug("Creating Nuage VSP VPC Network offering with Static NAT " self.debug("Creating Nuage VSP VPC Network offering with Static NAT "
@ -1696,7 +1696,8 @@ class TestNuageStaticNat(nuageTestCase):
# from the deployed VM # from the deployed VM
if not self.isSimulator: if not self.isSimulator:
with self.assertRaises(Exception): with self.assertRaises(Exception):
self.verify_StaticNAT_Internet_traffic(vm, network_1, public_ip_1) self.verify_StaticNAT_Internet_traffic(vm, network_1,
public_ip_1)
self.debug("Static NAT rule not enabled in this VM NIC") self.debug("Static NAT rule not enabled in this VM NIC")
self.verify_StaticNAT_Internet_traffic(vm, network_2, public_ip_2) self.verify_StaticNAT_Internet_traffic(vm, network_2, public_ip_2)
@ -1991,8 +1992,8 @@ class TestNuageStaticNat(nuageTestCase):
# Creating VPC # Creating VPC
self.debug("Creating a VPC with Static NAT service provider as " self.debug("Creating a VPC with Static NAT service provider as "
"NuageVsp...") "NuageVsp...")
vpc = self.create_Vpc(vpc_off, cidr='10.1.0.0/16') vpc = self.create_vpc(vpc_off, cidr='10.1.0.0/16')
self.validate_Vpc(vpc, state="Enabled") self.validate_vpc(vpc, state="Enabled")
# Creating VPC network offering # Creating VPC network offering
self.debug("Creating Nuage VSP VPC Network offering with Static NAT " self.debug("Creating Nuage VSP VPC Network offering with Static NAT "
@ -2088,6 +2089,7 @@ class TestNuageStaticNat(nuageTestCase):
self.debug("Restarting the created VPC network with cleanup...") self.debug("Restarting the created VPC network with cleanup...")
Network.restart(vpc_tier, self.api_client, cleanup=True) Network.restart(vpc_tier, self.api_client, cleanup=True)
self.validate_Network(vpc_tier, state="Implemented") self.validate_Network(vpc_tier, state="Implemented")
vpc_vr = self.get_Router(vpc_tier)
self.check_Router_state(vpc_vr, state="Running") self.check_Router_state(vpc_vr, state="Running")
self.check_VM_state(vpc_vm, state="Running") self.check_VM_state(vpc_vm, state="Running")

View File

@ -375,25 +375,25 @@ class TestNuageInternalLb(nuageTestCase):
# Creating VPCs # Creating VPCs
self.debug("Creating a VPC with LB service provider as " self.debug("Creating a VPC with LB service provider as "
"InternalLbVm...") "InternalLbVm...")
vpc_1 = self.create_Vpc(vpc_off_1, cidr='10.1.0.0/16') vpc_1 = self.create_vpc(vpc_off_1, cidr='10.1.0.0/16')
self.validate_Vpc(vpc_1, state="Enabled") self.validate_vpc(vpc_1, state="Enabled")
self.debug("Creating a VPC with LB service provider as " self.debug("Creating a VPC with LB service provider as "
"VpcVirtualRouter...") "VpcVirtualRouter...")
with self.assertRaises(Exception): with self.assertRaises(Exception):
self.create_Vpc(vpc_off_2, cidr='10.1.0.0/16') self.create_vpc(vpc_off_2, cidr='10.1.0.0/16')
self.debug("Nuage VSP does not support provider VpcVirtualRouter for " self.debug("Nuage VSP does not support provider VpcVirtualRouter for "
"service LB for VPCs") "service LB for VPCs")
self.debug("Creating a VPC with LB service provider as Netscaler...") self.debug("Creating a VPC with LB service provider as Netscaler...")
with self.assertRaises(Exception): with self.assertRaises(Exception):
self.create_Vpc(vpc_off_3, cidr='10.1.0.0/16') self.create_vpc(vpc_off_3, cidr='10.1.0.0/16')
self.debug("Nuage VSP does not support provider Netscaler for service " self.debug("Nuage VSP does not support provider Netscaler for service "
"LB for VPCs") "LB for VPCs")
self.debug("Creating a VPC without LB service...") self.debug("Creating a VPC without LB service...")
vpc_2 = self.create_Vpc(vpc_off_4, cidr='10.1.0.0/16') vpc_2 = self.create_vpc(vpc_off_4, cidr='10.1.0.0/16')
self.validate_Vpc(vpc_2, state="Enabled") self.validate_vpc(vpc_2, state="Enabled")
@attr(tags=["advanced", "nuagevsp"], required_hardware="false") @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
def test_02_nuage_internallb_vpc_network_offering(self): def test_02_nuage_internallb_vpc_network_offering(self):
@ -438,8 +438,8 @@ class TestNuageInternalLb(nuageTestCase):
# Creating VPC # Creating VPC
self.debug("Creating a VPC with Internal LB service...") self.debug("Creating a VPC with Internal LB service...")
vpc = self.create_Vpc(vpc_off, cidr='10.1.0.0/16') vpc = self.create_vpc(vpc_off, cidr='10.1.0.0/16')
self.validate_Vpc(vpc, state="Enabled") self.validate_vpc(vpc, state="Enabled")
# Creating network offerings # Creating network offerings
self.debug("Creating Nuage VSP VPC Network offering with LB Service " self.debug("Creating Nuage VSP VPC Network offering with LB Service "
@ -594,12 +594,12 @@ class TestNuageInternalLb(nuageTestCase):
# Creating VPCs # Creating VPCs
self.debug("Creating a VPC with Internal LB service...") self.debug("Creating a VPC with Internal LB service...")
vpc_1 = self.create_Vpc(vpc_off_1, cidr='10.1.0.0/16') vpc_1 = self.create_vpc(vpc_off_1, cidr='10.1.0.0/16')
self.validate_Vpc(vpc_1, state="Enabled") self.validate_vpc(vpc_1, state="Enabled")
self.debug("Creating a VPC without Internal LB service...") self.debug("Creating a VPC without Internal LB service...")
vpc_2 = self.create_Vpc(vpc_off_2, cidr='10.1.0.0/16') vpc_2 = self.create_vpc(vpc_off_2, cidr='10.1.0.0/16')
self.validate_Vpc(vpc_2, state="Enabled") self.validate_vpc(vpc_2, state="Enabled")
# Creating network offerings # Creating network offerings
self.debug("Creating Nuage VSP VPC Network offering with Internal LB " self.debug("Creating Nuage VSP VPC Network offering with Internal LB "
@ -794,8 +794,8 @@ class TestNuageInternalLb(nuageTestCase):
# Creating a VPC # Creating a VPC
self.debug("Creating a VPC with Internal LB service...") self.debug("Creating a VPC with Internal LB service...")
vpc = self.create_Vpc(vpc_off, cidr='10.1.0.0/16') vpc = self.create_vpc(vpc_off, cidr='10.1.0.0/16')
self.validate_Vpc(vpc, state="Enabled") self.validate_vpc(vpc, state="Enabled")
# Creating network offerings # Creating network offerings
self.debug("Creating Nuage VSP VPC Network offering with Internal LB " self.debug("Creating Nuage VSP VPC Network offering with Internal LB "
@ -1148,8 +1148,8 @@ class TestNuageInternalLb(nuageTestCase):
# Creating a VPC # Creating a VPC
self.debug("Creating a VPC with Internal LB service...") self.debug("Creating a VPC with Internal LB service...")
vpc = self.create_Vpc(vpc_off, cidr='10.1.0.0/16') vpc = self.create_vpc(vpc_off, cidr='10.1.0.0/16')
self.validate_Vpc(vpc, state="Enabled") self.validate_vpc(vpc, state="Enabled")
# Creating network offerings # Creating network offerings
self.debug("Creating Nuage VSP VPC Network offering with Internal LB " self.debug("Creating Nuage VSP VPC Network offering with Internal LB "
@ -1477,8 +1477,8 @@ class TestNuageInternalLb(nuageTestCase):
# Creating a VPC # Creating a VPC
self.debug("Creating a VPC with Internal LB service...") self.debug("Creating a VPC with Internal LB service...")
vpc = self.create_Vpc(vpc_off, cidr='10.1.0.0/16') vpc = self.create_vpc(vpc_off, cidr='10.1.0.0/16')
self.validate_Vpc(vpc, state="Enabled") self.validate_vpc(vpc, state="Enabled")
# Creating network offerings # Creating network offerings
self.debug("Creating Nuage VSP VPC Network offering with Internal LB " self.debug("Creating Nuage VSP VPC Network offering with Internal LB "
@ -1742,8 +1742,8 @@ class TestNuageInternalLb(nuageTestCase):
# Creating a VPC # Creating a VPC
self.debug("Creating a VPC with Internal LB service...") self.debug("Creating a VPC with Internal LB service...")
vpc = self.create_Vpc(vpc_off, cidr='10.1.0.0/16') vpc = self.create_vpc(vpc_off, cidr='10.1.0.0/16')
self.validate_Vpc(vpc, state="Enabled") self.validate_vpc(vpc, state="Enabled")
# Creating network offerings # Creating network offerings
self.debug("Creating Nuage VSP VPC Network offering with Internal LB " self.debug("Creating Nuage VSP VPC Network offering with Internal LB "
@ -1881,8 +1881,9 @@ class TestNuageInternalLb(nuageTestCase):
self.verify_vsd_firewall_rule(public_ssh_rule) self.verify_vsd_firewall_rule(public_ssh_rule)
# Internal LB (wget) traffic test # Internal LB (wget) traffic test
self.verify_internal_lb_wget_traffic(int_lb_rule_1, internal_vm, internal_vm_1, self.verify_internal_lb_wget_traffic(int_lb_rule_1, internal_vm,
internal_vm_2, public_ip, public_vm) internal_vm_1, internal_vm_2,
public_ip, public_vm)
# Restart Internal tier (cleanup = false) # Restart Internal tier (cleanup = false)
# InternalLbVm gets destroyed and deployed again in the Internal tier # InternalLbVm gets destroyed and deployed again in the Internal tier
@ -1921,13 +1922,15 @@ class TestNuageInternalLb(nuageTestCase):
self.verify_vpc_vm_ingress_traffic(internal_vm_2, internal_tier, vpc) self.verify_vpc_vm_ingress_traffic(internal_vm_2, internal_tier, vpc)
# Internal LB (wget) traffic test # Internal LB (wget) traffic test
self.verify_internal_lb_wget_traffic(int_lb_rule_1, internal_vm, internal_vm_1, self.verify_internal_lb_wget_traffic(int_lb_rule_1, internal_vm,
internal_vm_2, public_ip, public_vm) internal_vm_1, internal_vm_2,
public_ip, public_vm)
# Restart Internal tier (cleanup = true) # Restart Internal tier (cleanup = true)
# InternalLbVm gets destroyed and deployed again in the Internal tier # InternalLbVm gets destroyed and deployed again in the Internal tier
self.debug("Restarting the Internal tier with cleanup...") self.debug("Restarting the Internal tier with cleanup...")
Network.restart(internal_tier, self.api_client, cleanup=True) Network.restart(internal_tier, self.api_client, cleanup=True)
self.validate_Network(internal_tier, state="Implemented") self.validate_Network(internal_tier, state="Implemented")
vr = self.get_Router(internal_tier)
self.check_Router_state(vr, state="Running") self.check_Router_state(vr, state="Running")
self.check_VM_state(internal_vm, state="Running") self.check_VM_state(internal_vm, state="Running")
self.check_VM_state(internal_vm_1, state="Running") self.check_VM_state(internal_vm_1, state="Running")
@ -1960,8 +1963,9 @@ class TestNuageInternalLb(nuageTestCase):
self.verify_vpc_vm_ingress_traffic(internal_vm_2, internal_tier, vpc) self.verify_vpc_vm_ingress_traffic(internal_vm_2, internal_tier, vpc)
# Internal LB (wget) traffic test # Internal LB (wget) traffic test
self.verify_internal_lb_wget_traffic(int_lb_rule_1, internal_vm, internal_vm_1, self.verify_internal_lb_wget_traffic(int_lb_rule_1, internal_vm,
internal_vm_2, public_ip, public_vm) internal_vm_1, internal_vm_2,
public_ip, public_vm)
# Restart Public tier (cleanup = false) # Restart Public tier (cleanup = false)
# This restart has no effect on the InternalLbVm functionality # This restart has no effect on the InternalLbVm functionality
@ -2011,6 +2015,7 @@ class TestNuageInternalLb(nuageTestCase):
self.debug("Restarting the Public tier with cleanup...") self.debug("Restarting the Public tier with cleanup...")
Network.restart(public_tier, self.api_client, cleanup=True) Network.restart(public_tier, self.api_client, cleanup=True)
self.validate_Network(public_tier, state="Implemented") self.validate_Network(public_tier, state="Implemented")
vr = self.get_Router(public_tier)
self.check_Router_state(vr, state="Running") self.check_Router_state(vr, state="Running")
self.check_VM_state(public_vm, state="Running") self.check_VM_state(public_vm, state="Running")
self.validate_PublicIPAddress( self.validate_PublicIPAddress(
@ -2040,8 +2045,9 @@ class TestNuageInternalLb(nuageTestCase):
self.verify_vpc_vm_ingress_traffic(internal_vm_2, internal_tier, vpc) self.verify_vpc_vm_ingress_traffic(internal_vm_2, internal_tier, vpc)
# Internal LB (wget) traffic test # Internal LB (wget) traffic test
self.verify_internal_lb_wget_traffic(int_lb_rule_1, internal_vm, internal_vm_1, self.verify_internal_lb_wget_traffic(int_lb_rule_1, internal_vm,
internal_vm_2, public_ip, public_vm) internal_vm_1, internal_vm_2,
public_ip, public_vm)
# Stopping VMs in the Internal tier # Stopping VMs in the Internal tier
# wget traffic test fails as all the VMs in the Internal tier are in # wget traffic test fails as all the VMs in the Internal tier are in
@ -2072,8 +2078,10 @@ class TestNuageInternalLb(nuageTestCase):
self.verify_vsd_lb_device(int_lb_vm) self.verify_vsd_lb_device(int_lb_vm)
# Internal LB (wget) traffic test # Internal LB (wget) traffic test
self.verify_internal_lb_wget_traffic(int_lb_rule_1, internal_vm, internal_vm_1, self.verify_internal_lb_wget_traffic(int_lb_rule_1, internal_vm,
internal_vm_2, public_ip, public_vm, should_fail=True) internal_vm_1, internal_vm_2,
public_ip, public_vm,
should_fail=True)
# Starting VMs in the Internal tier # Starting VMs in the Internal tier
# wget traffic test succeeds as all the VMs in the Internal tier are # wget traffic test succeeds as all the VMs in the Internal tier are
@ -2112,8 +2120,9 @@ class TestNuageInternalLb(nuageTestCase):
self.verify_vpc_vm_ingress_traffic(internal_vm_2, internal_tier, vpc) self.verify_vpc_vm_ingress_traffic(internal_vm_2, internal_tier, vpc)
# Internal LB (wget) traffic test # Internal LB (wget) traffic test
self.verify_internal_lb_wget_traffic(int_lb_rule_1, internal_vm, internal_vm_1, self.verify_internal_lb_wget_traffic(int_lb_rule_1, internal_vm,
internal_vm_2, public_ip, public_vm) internal_vm_1, internal_vm_2,
public_ip, public_vm)
# Restarting VPC (cleanup = false) # Restarting VPC (cleanup = false)
# VPC VR gets destroyed and deployed again in the VPC # VPC VR gets destroyed and deployed again in the VPC
@ -2160,8 +2169,9 @@ class TestNuageInternalLb(nuageTestCase):
self.verify_vpc_vm_ingress_traffic(internal_vm_2, internal_tier, vpc) self.verify_vpc_vm_ingress_traffic(internal_vm_2, internal_tier, vpc)
# Internal LB (wget) traffic test # Internal LB (wget) traffic test
self.verify_internal_lb_wget_traffic(int_lb_rule_1, internal_vm, internal_vm_1, self.verify_internal_lb_wget_traffic(int_lb_rule_1, internal_vm,
internal_vm_2, public_ip, public_vm) internal_vm_1, internal_vm_2,
public_ip, public_vm)
# Restarting VPC (cleanup = true) # Restarting VPC (cleanup = true)
# VPC VR gets destroyed and deployed again in the VPC # VPC VR gets destroyed and deployed again in the VPC
@ -2217,9 +2227,13 @@ class TestNuageInternalLb(nuageTestCase):
self.verify_lb_wget_file( self.verify_lb_wget_file(
wget_file, [internal_vm, internal_vm_1, internal_vm_2]) wget_file, [internal_vm, internal_vm_1, internal_vm_2])
def verify_internal_lb_wget_traffic(self, int_lb_rule_1, internal_vm, internal_vm_1, internal_vm_2, public_ip, public_vm, should_fail=False): def verify_internal_lb_wget_traffic(self, int_lb_rule_1, internal_vm,
internal_vm_1, internal_vm_2,
public_ip, public_vm,
should_fail=False):
if self.isSimulator: if self.isSimulator:
self.debug("Simulator Environment: not running wget traffic tests.") self.debug("Simulator Environment: "
"not running wget traffic tests.")
return return
ssh_client = self.ssh_into_VM(public_vm, public_ip) ssh_client = self.ssh_into_VM(public_vm, public_ip)
tries = 0 tries = 0
@ -2240,8 +2254,8 @@ class TestNuageInternalLb(nuageTestCase):
with self.assertRaises(Exception): with self.assertRaises(Exception):
self.verify_lb_wget_file( self.verify_lb_wget_file(
wget_file, [internal_vm, internal_vm_1, internal_vm_2]) wget_file, [internal_vm, internal_vm_1, internal_vm_2])
self.debug("Failed to wget file as all the VMs in the Internal tier " self.debug("Failed to wget file as all the VMs in the Internal "
"are in stopped state") "tier are in stopped state")
else: else:
self.verify_lb_wget_file( self.verify_lb_wget_file(
wget_file, [internal_vm, internal_vm_1, internal_vm_2]) wget_file, [internal_vm, internal_vm_1, internal_vm_2])
@ -2278,8 +2292,8 @@ class TestNuageInternalLb(nuageTestCase):
# Creating a VPC # Creating a VPC
self.debug("Creating a VPC with Internal LB service...") self.debug("Creating a VPC with Internal LB service...")
vpc = self.create_Vpc(vpc_off, cidr='10.1.0.0/16') vpc = self.create_vpc(vpc_off, cidr='10.1.0.0/16')
self.validate_Vpc(vpc, state="Enabled") self.validate_vpc(vpc, state="Enabled")
# Creating network offerings # Creating network offerings
self.debug("Creating Nuage VSP VPC Network offering with Internal LB " self.debug("Creating Nuage VSP VPC Network offering with Internal LB "
@ -2429,8 +2443,9 @@ class TestNuageInternalLb(nuageTestCase):
self.verify_vsd_firewall_rule(public_ssh_rule) self.verify_vsd_firewall_rule(public_ssh_rule)
# Internal LB (wget) traffic test # Internal LB (wget) traffic test
self.verify_internal_lb_wget_traffic(int_lb_rule_1, internal_vm, internal_vm_1, self.verify_internal_lb_wget_traffic(int_lb_rule_1, internal_vm,
internal_vm_2, public_ip, public_vm) internal_vm_1, internal_vm_2,
public_ip, public_vm)
# # Stopping the InternalLbVm when the VPC VR is in Stopped state # # Stopping the InternalLbVm when the VPC VR is in Stopped state
self.stop_InternalLbVm(int_lb_vm) self.stop_InternalLbVm(int_lb_vm)
@ -2449,8 +2464,9 @@ class TestNuageInternalLb(nuageTestCase):
self.verify_vpc_vm_ingress_traffic(internal_vm_2, internal_tier, vpc) self.verify_vpc_vm_ingress_traffic(internal_vm_2, internal_tier, vpc)
# Internal LB (wget) traffic test # Internal LB (wget) traffic test
self.verify_internal_lb_wget_traffic(int_lb_rule_1, internal_vm, internal_vm_1, self.verify_internal_lb_wget_traffic(int_lb_rule_1, internal_vm,
internal_vm_2, public_ip, public_vm, internal_vm_1, internal_vm_2,
public_ip, public_vm,
should_fail=True) should_fail=True)
# # Starting the InternalLbVm when the VPC VR is in Stopped state # # Starting the InternalLbVm when the VPC VR is in Stopped state
@ -2471,8 +2487,9 @@ class TestNuageInternalLb(nuageTestCase):
# Internal LB (wget) traffic test # Internal LB (wget) traffic test
# Bug CLOUDSTACK-9837 # Bug CLOUDSTACK-9837
self.verify_internal_lb_wget_traffic(int_lb_rule_1, internal_vm, internal_vm_1, self.verify_internal_lb_wget_traffic(int_lb_rule_1, internal_vm,
internal_vm_2, public_ip, public_vm) internal_vm_1, internal_vm_2,
public_ip, public_vm)
# Starting the VPC VR # Starting the VPC VR
# VPC VR has no effect on the InternalLbVm functionality # VPC VR has no effect on the InternalLbVm functionality
@ -2503,48 +2520,9 @@ class TestNuageInternalLb(nuageTestCase):
self.verify_vpc_vm_ingress_traffic(internal_vm_2, internal_tier, vpc) self.verify_vpc_vm_ingress_traffic(internal_vm_2, internal_tier, vpc)
# Internal LB (wget) traffic test # Internal LB (wget) traffic test
self.verify_internal_lb_wget_traffic(int_lb_rule_1, internal_vm, internal_vm_1, self.verify_internal_lb_wget_traffic(int_lb_rule_1, internal_vm,
internal_vm_2, public_ip, public_vm, should_fail=True) internal_vm_1, internal_vm_2,
public_ip, public_vm,
# # Starting the InternalLbVm when the VPC VR is in Running state
self.start_InternalLbVm(int_lb_vm)
self.check_InternalLbVm_state(
internal_tier, int_lb_rule_1.sourceipaddress, state="Running")
# VSD Verification
self.verify_vsd_lb_device(int_lb_vm)
# Verifying Internal Load Balanced VMs ingress traffic
# (SSH into VM via Static NAT rule)
self.debug("Verifying Internal Load Balanced VMs ingress traffic "
"(SSH into VM via Static NAT rule)...")
self.verify_vpc_vm_ingress_traffic(internal_vm, internal_tier, vpc)
self.verify_vpc_vm_ingress_traffic(internal_vm_1, internal_tier, vpc)
self.verify_vpc_vm_ingress_traffic(internal_vm_2, internal_tier, vpc)
# Internal LB (wget) traffic test
self.verify_internal_lb_wget_traffic(int_lb_rule_1, internal_vm, internal_vm_1,
internal_vm_2, public_ip, public_vm)
# # Force Stopping the InternalLbVm when the VPC VR is in Running state
self.stop_InternalLbVm(int_lb_vm, force=True)
self.check_InternalLbVm_state(
internal_tier, int_lb_rule_1.sourceipaddress, state="Stopped")
# VSD Verification
self.verify_vsd_lb_device(int_lb_vm, stopped=True)
# Verifying Internal Load Balanced VMs ingress traffic
# (SSH into VM via Static NAT rule)
self.debug("Verifying Internal Load Balanced VMs ingress traffic "
"(SSH into VM via Static NAT rule)...")
self.verify_vpc_vm_ingress_traffic(internal_vm, internal_tier, vpc)
self.verify_vpc_vm_ingress_traffic(internal_vm_1, internal_tier, vpc)
self.verify_vpc_vm_ingress_traffic(internal_vm_2, internal_tier, vpc)
# Internal LB (wget) traffic test
self.verify_internal_lb_wget_traffic(int_lb_rule_1, internal_vm, internal_vm_1,
internal_vm_2, public_ip, public_vm,
should_fail=True) should_fail=True)
# # Starting the InternalLbVm when the VPC VR is in Running state # # Starting the InternalLbVm when the VPC VR is in Running state
@ -2564,5 +2542,49 @@ class TestNuageInternalLb(nuageTestCase):
self.verify_vpc_vm_ingress_traffic(internal_vm_2, internal_tier, vpc) self.verify_vpc_vm_ingress_traffic(internal_vm_2, internal_tier, vpc)
# Internal LB (wget) traffic test # Internal LB (wget) traffic test
self.verify_internal_lb_wget_traffic(int_lb_rule_1, internal_vm, internal_vm_1, self.verify_internal_lb_wget_traffic(int_lb_rule_1, internal_vm,
internal_vm_2, public_ip, public_vm) internal_vm_1, internal_vm_2,
public_ip, public_vm)
# # Force Stopping the InternalLbVm when the VPC VR is in Running state
self.stop_InternalLbVm(int_lb_vm, force=True)
self.check_InternalLbVm_state(
internal_tier, int_lb_rule_1.sourceipaddress, state="Stopped")
# VSD Verification
self.verify_vsd_lb_device(int_lb_vm, stopped=True)
# Verifying Internal Load Balanced VMs ingress traffic
# (SSH into VM via Static NAT rule)
self.debug("Verifying Internal Load Balanced VMs ingress traffic "
"(SSH into VM via Static NAT rule)...")
self.verify_vpc_vm_ingress_traffic(internal_vm, internal_tier, vpc)
self.verify_vpc_vm_ingress_traffic(internal_vm_1, internal_tier, vpc)
self.verify_vpc_vm_ingress_traffic(internal_vm_2, internal_tier, vpc)
# Internal LB (wget) traffic test
self.verify_internal_lb_wget_traffic(int_lb_rule_1, internal_vm,
internal_vm_1, internal_vm_2,
public_ip, public_vm,
should_fail=True)
# # Starting the InternalLbVm when the VPC VR is in Running state
self.start_InternalLbVm(int_lb_vm)
self.check_InternalLbVm_state(
internal_tier, int_lb_rule_1.sourceipaddress, state="Running")
# VSD Verification
self.verify_vsd_lb_device(int_lb_vm)
# Verifying Internal Load Balanced VMs ingress traffic
# (SSH into VM via Static NAT rule)
self.debug("Verifying Internal Load Balanced VMs ingress traffic "
"(SSH into VM via Static NAT rule)...")
self.verify_vpc_vm_ingress_traffic(internal_vm, internal_tier, vpc)
self.verify_vpc_vm_ingress_traffic(internal_vm_1, internal_tier, vpc)
self.verify_vpc_vm_ingress_traffic(internal_vm_2, internal_tier, vpc)
# Internal LB (wget) traffic test
self.verify_internal_lb_wget_traffic(int_lb_rule_1, internal_vm,
internal_vm_1, internal_vm_2,
public_ip, public_vm)

View File

@ -20,7 +20,7 @@ Nuage VSP SDN plugin
""" """
# Import Local Modules # Import Local Modules
from nuageTestCase import nuageTestCase from nuageTestCase import nuageTestCase
from marvin.lib.base import Account, VPC from marvin.lib.base import Account
# Import System Modules # Import System Modules
from nose.plugins.attrib import attr from nose.plugins.attrib import attr
@ -75,8 +75,8 @@ class TestNuageVpcNetwork(nuageTestCase):
# Creating a VPC # Creating a VPC
self.debug("Creating a VPC with Nuage VSP VPC offering...") self.debug("Creating a VPC with Nuage VSP VPC offering...")
vpc = self.create_Vpc(vpc_offering, cidr='10.1.0.0/16') vpc = self.create_vpc(vpc_offering, cidr='10.1.0.0/16')
self.validate_Vpc(vpc, state="Enabled") self.validate_vpc(vpc, state="Enabled")
# Creating a network offering # Creating a network offering
self.debug("Creating Nuage VSP VPC Network offering...") self.debug("Creating Nuage VSP VPC Network offering...")

View File

@ -158,7 +158,7 @@ class TestNuageDomainTemplate(nuageTestCase):
for i in range(0, 3): for i in range(0, 3):
cls.domain_template_list.append("domain_template_" + str(i)) cls.domain_template_list.append("domain_template_" + str(i))
for account in [cls.account_root, cls.account_d1, cls.account_d11]: for account in [cls.account_root, cls.account_d1, cls.account_d11]:
vpc = cls.create_Vpc( vpc = cls.create_vpc(
cls.vpc_offering, cidr='10.1.0.0/16', account=account) cls.vpc_offering, cidr='10.1.0.0/16', account=account)
cls.create_Network( cls.create_Network(
cls.network_offering, cls.network_offering,
@ -350,7 +350,7 @@ class TestNuageDomainTemplate(nuageTestCase):
# 7. Delete all the created objects (cleanup). # 7. Delete all the created objects (cleanup).
# Creating VPC # Creating VPC
vpc_1 = self.create_Vpc(self.vpc_offering, cidr='10.1.0.0/16') vpc_1 = self.create_vpc(self.vpc_offering, cidr='10.1.0.0/16')
# Associating pre-configured Nuage VSP Domain Template to VPC # Associating pre-configured Nuage VSP Domain Template to VPC
with self.assertRaises(Exception): with self.assertRaises(Exception):
@ -426,7 +426,7 @@ class TestNuageDomainTemplate(nuageTestCase):
domain_template_name=self.domain_template_list[0]) domain_template_name=self.domain_template_list[0])
# Creating VPC # Creating VPC
vpc_2 = self.create_Vpc(self.vpc_offering, cidr='10.1.0.0/16') vpc_2 = self.create_vpc(self.vpc_offering, cidr='10.1.0.0/16')
# Associating pre-configured Nuage VSP Domain Template to VPC # Associating pre-configured Nuage VSP Domain Template to VPC
self.validate_NuageVspDomainTemplate(self.domain_template_list[0]) self.validate_NuageVspDomainTemplate(self.domain_template_list[0])
@ -481,7 +481,7 @@ class TestNuageDomainTemplate(nuageTestCase):
domain_template_name=self.domain_template_list[1]) domain_template_name=self.domain_template_list[1])
# Creating VPC # Creating VPC
vpc_3 = self.create_Vpc(self.vpc_offering, cidr='10.1.0.0/16') vpc_3 = self.create_vpc(self.vpc_offering, cidr='10.1.0.0/16')
# Associating pre-configured Nuage VSP Domain Template to VPC # Associating pre-configured Nuage VSP Domain Template to VPC
self.validate_NuageVspDomainTemplate(self.domain_template_list[0]) self.validate_NuageVspDomainTemplate(self.domain_template_list[0])
@ -523,7 +523,7 @@ class TestNuageDomainTemplate(nuageTestCase):
domain_template_name=self.domain_template_list[0]) domain_template_name=self.domain_template_list[0])
# Creating VPC and VPC network (tier) # Creating VPC and VPC network (tier)
vpc = self.create_Vpc(self.vpc_offering, cidr='10.1.0.0/16') vpc = self.create_vpc(self.vpc_offering, cidr='10.1.0.0/16')
vpc_tier = self.create_Network(self.network_offering, vpc=vpc) vpc_tier = self.create_Network(self.network_offering, vpc=vpc)
# VSD verification # VSD verification
@ -669,7 +669,7 @@ class TestNuageDomainTemplate(nuageTestCase):
# Creating VPC # Creating VPC
with self.assertRaises(Exception): with self.assertRaises(Exception):
self.create_Vpc(self.vpc_offering, cidr='10.1.0.0/16') self.create_vpc(self.vpc_offering, cidr='10.1.0.0/16')
self.debug("VPC creation fails as there is no domain template with " self.debug("VPC creation fails as there is no domain template with "
"name invalid_domain_template in VSD as mentioned in " "name invalid_domain_template in VSD as mentioned in "
"global setting nuagevsp.vpc.domaintemplate.name") "global setting nuagevsp.vpc.domaintemplate.name")
@ -685,7 +685,7 @@ class TestNuageDomainTemplate(nuageTestCase):
self.validate_NuageVspDomainTemplate(self.domain_template_list[0]) self.validate_NuageVspDomainTemplate(self.domain_template_list[0])
# Creating VPC and VPC networks (tiers) # Creating VPC and VPC networks (tiers)
vpc_1 = self.create_Vpc(self.vpc_offering, cidr='10.1.0.0/16') vpc_1 = self.create_vpc(self.vpc_offering, cidr='10.1.0.0/16')
vpc_1_tier_1 = self.create_Network( vpc_1_tier_1 = self.create_Network(
self.network_offering, gateway='10.1.1.1', vpc=vpc_1) self.network_offering, gateway='10.1.1.1', vpc=vpc_1)
vpc_1_tier_2 = self.create_Network( vpc_1_tier_2 = self.create_Network(
@ -700,7 +700,7 @@ class TestNuageDomainTemplate(nuageTestCase):
domain_template_name=self.domain_template_list[0]) domain_template_name=self.domain_template_list[0])
# Creating VPC and VPC networks (tiers) # Creating VPC and VPC networks (tiers)
vpc_2 = self.create_Vpc(self.vpc_offering, cidr='10.1.0.0/16') vpc_2 = self.create_vpc(self.vpc_offering, cidr='10.1.0.0/16')
vpc_2_tier_1 = self.create_Network( vpc_2_tier_1 = self.create_Network(
self.network_offering, gateway='10.1.1.1', vpc=vpc_2) self.network_offering, gateway='10.1.1.1', vpc=vpc_2)
vpc_2_tier_2 = self.create_Network( vpc_2_tier_2 = self.create_Network(
@ -715,7 +715,7 @@ class TestNuageDomainTemplate(nuageTestCase):
domain_template_name=self.domain_template_list[0]) domain_template_name=self.domain_template_list[0])
# Creating VPC # Creating VPC
vpc_3 = self.create_Vpc(self.vpc_offering, cidr='10.1.0.0/16') vpc_3 = self.create_vpc(self.vpc_offering, cidr='10.1.0.0/16')
# Associating pre-configured Nuage VSP Domain Template to VPC # Associating pre-configured Nuage VSP Domain Template to VPC
self.validate_NuageVspDomainTemplate(self.domain_template_list[1]) self.validate_NuageVspDomainTemplate(self.domain_template_list[1])

View File

@ -343,8 +343,8 @@ class TestNuageManagedSubnets(nuageTestCase):
self.api_client.updateZone(cmd) self.api_client.updateZone(cmd)
self.debug("Creating a VPC with Static NAT service provider as " self.debug("Creating a VPC with Static NAT service provider as "
"VpcVirtualRouter") "VpcVirtualRouter")
vpc = self.create_Vpc(self.nuage_vpc_offering, cidr='10.1.0.0/16') vpc = self.create_vpc(self.nuage_vpc_offering, cidr='10.1.0.0/16')
self.validate_Vpc(vpc, state="Enabled") self.validate_vpc(vpc, state="Enabled")
acl_list = self.create_NetworkAclList( acl_list = self.create_NetworkAclList(
name="acl", description="acl", vpc=vpc) name="acl", description="acl", vpc=vpc)
self.create_NetworkAclRule( self.create_NetworkAclRule(
@ -354,8 +354,8 @@ class TestNuageManagedSubnets(nuageTestCase):
self.debug("Creating another VPC with Static NAT service provider " self.debug("Creating another VPC with Static NAT service provider "
"as VpcVirtualRouter") "as VpcVirtualRouter")
vpc2 = self.create_Vpc(self.nuage_vpc_offering, cidr='10.2.0.0/16') vpc2 = self.create_vpc(self.nuage_vpc_offering, cidr='10.2.0.0/16')
self.validate_Vpc(vpc2, state="Enabled") self.validate_vpc(vpc2, state="Enabled")
acl_list2 = self.create_NetworkAclList( acl_list2 = self.create_NetworkAclList(
name="acl", description="acl", vpc=vpc2) name="acl", description="acl", vpc=vpc2)
self.create_NetworkAclRule( self.create_NetworkAclRule(
@ -447,8 +447,8 @@ class TestNuageManagedSubnets(nuageTestCase):
self.debug("Creating another VPC with Static NAT service provider " self.debug("Creating another VPC with Static NAT service provider "
"as VpcVirtualRouter With same CIDR") "as VpcVirtualRouter With same CIDR")
vpc3 = self.create_Vpc(self.nuage_vpc_offering, cidr='10.1.0.0/16') vpc3 = self.create_vpc(self.nuage_vpc_offering, cidr='10.1.0.0/16')
self.validate_Vpc(vpc3, state="Enabled") self.validate_vpc(vpc3, state="Enabled")
acl_list3 = self.create_NetworkAclList( acl_list3 = self.create_NetworkAclList(
name="acl", description="acl", vpc=vpc3) name="acl", description="acl", vpc=vpc3)
self.create_NetworkAclRule( self.create_NetworkAclRule(

View File

@ -350,10 +350,13 @@ class VirtualMachine:
self.username = services["username"] self.username = services["username"]
else: else:
self.username = 'root' self.username = 'root'
if "password" in services:
self.password = services["password"] if "password" not in items:
else: if "password" in services:
self.password = 'password' self.password = services["password"]
else:
self.password = 'password'
if "ssh_port" in services: if "ssh_port" in services:
self.ssh_port = services["ssh_port"] self.ssh_port = services["ssh_port"]
else: else:

View File

@ -345,14 +345,16 @@ def get_template(
return list_templatesout[0] return list_templatesout[0]
def get_test_template(apiclient, zone_id=None, hypervisor=None): def get_test_template(apiclient, zone_id=None, hypervisor=None, test_templates=None):
""" """
@Name : get_test_template @Name : get_test_template
@Desc : Retrieves the test template used to running tests. When the template @Desc : Retrieves the test template used to running tests. When the template
is missing it will be download at most one in a zone for a hypervisor. is missing it will be download at most one in a zone for a hypervisor.
@Input : returns a template @Input : returns a template
""" """
test_templates = test_data["test_templates"]
if test_templates is None:
test_templates = test_data["test_templates"]
if hypervisor is None: if hypervisor is None:
return FAILED return FAILED

View File

@ -54,10 +54,12 @@ setup(name="Marvin",
"pyvmomi >= 5.5.0", "pyvmomi >= 5.5.0",
"netaddr >= 0.7.14", "netaddr >= 0.7.14",
"dnspython", "dnspython",
"ipmisim >= 0.7" "ipmisim >= 0.7",
"retries",
"PyCrypt"
], ],
extras_require={ extras_require={
"nuagevsp": ["vspk", "PyYAML", "futures", "netaddr", "retries", "jpype1"] "nuagevsp": ["vspk", "PyYAML", "futures", "netaddr", "jpype1"]
}, },
py_modules=['marvin.marvinPlugin'], py_modules=['marvin.marvinPlugin'],
zip_safe=False, zip_safe=False,