cloudstack-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CLOUDSTACK-8832) Update Nuage VSP plugin to work with Nuage VSP release 3.2
Date Fri, 18 Sep 2015 21:21:05 GMT

    [ https://issues.apache.org/jira/browse/CLOUDSTACK-8832?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14876450#comment-14876450
] 

ASF GitHub Bot commented on CLOUDSTACK-8832:
--------------------------------------------

Github user jburwell commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/801#discussion_r39902256
  
    --- Diff: plugins/network-elements/nuage-vsp/src/com/cloud/network/guru/NuageVspGuestNetworkGuru.java
---
    @@ -201,51 +234,82 @@ public NicProfile allocate(Network network, NicProfile nic, VirtualMachineProfil
         @Override
         public void reserve(NicProfile nic, Network network, VirtualMachineProfile vm, DeployDestination
dest, ReservationContext context)
                 throws InsufficientVirtualNetworkCapacityException, InsufficientAddressCapacityException
{
    -        nic.setBroadcastUri(network.getBroadcastUri());
    -        nic.setIsolationUri(network.getBroadcastUri());
    -
    -        s_logger.debug("Handling reserve() call back to with Create a new VM or add an
interface to existing VM in network " + network.getName());
    -        DataCenter dc = _dcDao.findById(network.getDataCenterId());
    -        Account networksAccount = _accountDao.findById(network.getAccountId());
    -        DomainVO networksDomain = _domainDao.findById(network.getDomainId());
    -        //Get the Account details and find the type
    -        long networkOwnedBy = network.getAccountId();
    -        AccountVO neworkAccountDetails = _accountDao.findById(networkOwnedBy);
    -        if (neworkAccountDetails.getType() == Account.ACCOUNT_TYPE_PROJECT) {
    -            throw new InsufficientVirtualNetworkCapacityException("CS project support
is " + "not yet implemented in NuageVsp", DataCenter.class, dc.getId());
    +        boolean lockedNetwork = lockNetworkForUserVm(network, vm);
    +        if (lockedNetwork) {
    +            s_logger.debug("Locked network " + network.getId() + " for creation of user
VM " + vm.getInstanceName());
             }
     
    -        //NicProfile does not contain the NIC UUID. We need this information to set it
in the VMInterface and VPort
    -        //that we create in VSP
    -        NicVO nicFrmDB = _nicDao.findById(nic.getId());
    -        long networkOfferingId = _ntwkOfferingDao.findById(network.getNetworkOfferingId()).getId();
    -        boolean isL3Network = isL3Network(networkOfferingId);
    -        Long vpcId = network.getVpcId();
    -        String vpcUuid = null;
    -        if (vpcId != null) {
    -            Vpc vpcObj = _vpcDao.findById(vpcId);
    -            vpcUuid = vpcObj.getUuid();
    -        }
    -        HostVO nuageVspHost = getNuageVspHost(network.getPhysicalNetworkId());
    -        ReserveVmInterfaceVspCommand cmd = new ReserveVmInterfaceVspCommand(nicFrmDB.getUuid(),
nic.getMacAddress(), network.getUuid(), isL3Network, vpcUuid,
    -                networksDomain.getUuid(), networksAccount.getUuid(), vm.getType().equals(VirtualMachine.Type.DomainRouter),
network.getBroadcastUri().getPath().substring(1),
    -                vm.getInstanceName(), vm.getUuid(), networksDomain.getUuid(), networksAccount.getUuid());
    -        ReserveVmInterfaceVspAnswer answer = (ReserveVmInterfaceVspAnswer)_agentMgr.easySend(nuageVspHost.getId(),
cmd);
    -
    -        if (answer == null || !answer.getResult()) {
    -            s_logger.error("ReserveVmInterfaceNuageVspCommand failed");
    -            if ((null != answer) && (null != answer.getDetails())) {
    -                s_logger.error(answer.getDetails());
    +        try {
    +            nic.setBroadcastUri(network.getBroadcastUri());
    +            nic.setIsolationUri(network.getBroadcastUri());
    +
    +            s_logger.debug("Handling reserve() call back to with Create a new VM or add
an interface to existing VM in network " + network.getName());
    +            DataCenter dc = _dcDao.findById(network.getDataCenterId());
    +            Account networksAccount = _accountDao.findById(network.getAccountId());
    +            DomainVO networksDomain = _domainDao.findById(network.getDomainId());
    +            //Get the Account details and find the type
    +            long networkOwnedBy = network.getAccountId();
    +            AccountVO neworkAccountDetails = _accountDao.findById(networkOwnedBy);
    +            if (neworkAccountDetails.getType() == Account.ACCOUNT_TYPE_PROJECT) {
    +                throw new InsufficientVirtualNetworkCapacityException("CS project support
is " + "not yet implemented in NuageVsp", DataCenter.class, dc.getId());
    +            }
    +
    +            //NicProfile does not contain the NIC UUID. We need this information to set
it in the VMInterface and VPort
    +            //that we create in VSP
    +            NicVO nicFrmDB = _nicDao.findById(nic.getId());
    +            NetworkOffering networkOffering = _ntwkOfferingDao.findById(network.getNetworkOfferingId());
    +            boolean isDomainRouter = vm.getType().equals(VirtualMachine.Type.DomainRouter);
    +            String domainRouterIp = network.getBroadcastUri().getPath().substring(1);
    +            boolean isL3Network = isL3Network(network);
    +            boolean isSharedNetwork = networkOffering.getGuestType() == GuestType.Shared;
    +            Long vpcId = network.getVpcId();
    +            String vpcUuid = null;
    +            if (vpcId != null) {
    +                Vpc vpcObj = _vpcDao.findById(vpcId);
    +                vpcUuid = vpcObj.getUuid();
    +            }
    +            HostVO nuageVspHost = getNuageVspHost(network.getPhysicalNetworkId());
    +            IPAddressVO staticNatIp = _ipAddressDao.findByVmIdAndNetworkId(network.getId(),
vm.getId());
    +
    +            ReserveVmInterfaceVspCommand cmd;
    +            if (staticNatIp != null) {
    +                VlanVO staticNatVlan = _vlanDao.findById(staticNatIp.getVlanId());
    +                cmd = new ReserveVmInterfaceVspCommand(nicFrmDB.getUuid(), nic.getMacAddress(),
network.getUuid(), isL3Network, isSharedNetwork, vpcUuid,
    +                        networksDomain.getUuid(), networksAccount.getUuid(), isDomainRouter,
domainRouterIp,
    +                        vm.getInstanceName(), vm.getUuid(), networksDomain.getUuid(),
networksAccount.getUuid(), true, nic.getIPv4Address(), staticNatIp.getUuid(),
    +                        staticNatIp.getAddress().addr(), staticNatIp.getState().equals(IpAddress.State.Allocated),
staticNatIp.isOneToOneNat(), staticNatVlan.getUuid(),
    +                        staticNatVlan.getVlanGateway(), staticNatVlan.getVlanNetmask());
    +            } else {
    +                cmd = new ReserveVmInterfaceVspCommand(nicFrmDB.getUuid(), nic.getMacAddress(),
network.getUuid(), isL3Network, isSharedNetwork, vpcUuid,
    +                        networksDomain.getUuid(), networksAccount.getUuid(), vm.getType().equals(VirtualMachine.Type.DomainRouter),
domainRouterIp,
    +                        vm.getInstanceName(), vm.getUuid(), networksDomain.getUuid(),
networksAccount.getUuid(), true, nic.getIPv4Address(), null, null, false, false,
    +                        null, null, null);
    +            }
    +
    +            ReserveVmInterfaceVspAnswer answer = (ReserveVmInterfaceVspAnswer)_agentMgr.easySend(nuageVspHost.getId(),
cmd);
    +            if (answer == null || !answer.getResult()) {
    +                s_logger.error("ReserveVmInterfaceNuageVspCommand failed");
    +                if ((null != answer) && (null != answer.getDetails())) {
    +                    s_logger.error(answer.getDetails());
    +                }
    +                throw new InsufficientVirtualNetworkCapacityException("Failed to reserve
VM in Nuage VSP.", Network.class, network.getId());
    --- End diff --
    
    Add identifying information about the Nuage VSP that failed to the message (e.g. the id,
name, etc) to the message to help sys admins trace the problem to the appropriate entity.


> Update Nuage VSP plugin to work with Nuage VSP release 3.2
> ----------------------------------------------------------
>
>                 Key: CLOUDSTACK-8832
>                 URL: https://issues.apache.org/jira/browse/CLOUDSTACK-8832
>             Project: CloudStack
>          Issue Type: Improvement
>      Security Level: Public(Anyone can view this level - this is the default.) 
>          Components: Management Server
>    Affects Versions: 4.6.0
>            Reporter: Nick Livens
>            Assignee: Nick Livens
>
> Nuage VSP 3.2 is being released, we want to bring the plugin up to date for this release



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message