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

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_r39900388
  
    --- Diff: 
plugins/network-elements/nuage-vsp/src/com/cloud/network/guru/NuageVspGuestNetworkGuru.java
 ---
    @@ -129,66 +131,97 @@ public Network design(NetworkOffering offering, 
DeploymentPlan plan, Network use
     
         @Override
         public Network implement(Network network, NetworkOffering offering, 
DeployDestination dest, ReservationContext context) throws 
InsufficientVirtualNetworkCapacityException {
    -
    -        assert (network.getState() == State.Implementing) : "Why are we 
implementing " + network;
    -
    -        long dcId = dest.getDataCenter().getId();
    -        //Get physical network id
    -        Long physicalNetworkId = network.getPhysicalNetworkId();
    -        //Physical network id can be null in Guest Network in Basic zone, 
so locate the physical network
    -        if (physicalNetworkId == null) {
    -            physicalNetworkId = _networkModel.findPhysicalNetworkId(dcId, 
offering.getTags(), offering.getTrafficType());
    -        }
    -        NetworkVO implemented = new NetworkVO(network.getTrafficType(), 
network.getMode(), network.getBroadcastDomainType(), 
network.getNetworkOfferingId(), State.Allocated,
    -                network.getDataCenterId(), physicalNetworkId, 
offering.getRedundantRouter());
    -        if (network.getGateway() != null) {
    -            implemented.setGateway(network.getGateway());
    -        }
    -        if (network.getCidr() != null) {
    -            implemented.setCidr(network.getCidr());
    -        }
    -        Collection<String> ipAddressRange = new ArrayList<String>();
    -        String virtualRouterIp = getVirtualRouterIP(network, 
ipAddressRange);
    -        String networkUuid = implemented.getUuid();
    -        String tenantId = context.getDomain().getName() + "-" + 
context.getAccount().getAccountId();
    -        String broadcastUriStr = networkUuid + "/" + virtualRouterIp;
    -        
implemented.setBroadcastUri(Networks.BroadcastDomainType.Vsp.toUri(broadcastUriStr));
    -        
implemented.setBroadcastDomainType(Networks.BroadcastDomainType.Vsp);
    -        //Check if the network is associated to a VPC
    -        Long vpcId = network.getVpcId();
    -        boolean isVpc = (vpcId != null);
    -        //Check owner of the Network
    -        Domain networksDomain = _domainDao.findById(network.getDomainId());
    -        //Get the Account details and find the type
    -        AccountVO networksAccount = 
_accountDao.findById(network.getAccountId());
    -        if (networksAccount.getType() == Account.ACCOUNT_TYPE_PROJECT) {
    -            String errorMessage = "CS project support is not yet 
implemented in NuageVsp";
    -            s_logger.debug(errorMessage);
    -            throw new 
InsufficientVirtualNetworkCapacityException(errorMessage, Account.class, 
network.getAccountId());
    -        }
    -        boolean isL3Network = isL3Network(offering.getId());
    -        String vpcName = null;
    -        String vpcUuid = null;
    -        if (isVpc) {
    -            Vpc vpcObj = _vpcDao.findById(vpcId);
    -            vpcName = vpcObj.getName();
    -            vpcUuid = vpcObj.getUuid();
    +        long networkId = network.getId();
    +        network = _networkDao.acquireInLockTable(network.getId(), 1200);
    +        if (network == null) {
    +            throw new ConcurrentOperationException("Unable to acquire lock 
on network " + networkId);
             }
     
    -        HostVO nuageVspHost = getNuageVspHost(physicalNetworkId);
    -        ImplementNetworkVspCommand cmd = new 
ImplementNetworkVspCommand(networksDomain.getName(), networksDomain.getPath(), 
networksDomain.getUuid(),
    -                networksAccount.getAccountName(), 
networksAccount.getUuid(), network.getName(), network.getCidr(), 
network.getGateway(), network.getUuid(), isL3Network, vpcName,
    -                vpcUuid, offering.getEgressDefaultPolicy(), 
ipAddressRange);
    -        ImplementNetworkVspAnswer answer = 
(ImplementNetworkVspAnswer)_agentMgr.easySend(nuageVspHost.getId(), cmd);
    +        NetworkVO implemented = null;
    +        try {
    +            assert (network.getState() == State.Implementing) : "Why are 
we implementing " + network;
    +
    +            long dcId = dest.getDataCenter().getId();
    +            //Get physical network id
    +            Long physicalNetworkId = network.getPhysicalNetworkId();
    +            //Physical network id can be null in Guest Network in Basic 
zone, so locate the physical network
    +            if (physicalNetworkId == null) {
    +                physicalNetworkId = 
_networkModel.findPhysicalNetworkId(dcId, offering.getTags(), 
offering.getTrafficType());
    +            }
    +            implemented = new NetworkVO(network.getTrafficType(), 
network.getMode(), network.getBroadcastDomainType(), 
network.getNetworkOfferingId(), State.Allocated,
    +                    network.getDataCenterId(), physicalNetworkId, 
offering.getRedundantRouter());
    +            if (network.getGateway() != null) {
    +                implemented.setGateway(network.getGateway());
    +            }
    +            if (network.getCidr() != null) {
    +                implemented.setCidr(network.getCidr());
    +            }
    +            Collection<String[]> ipAddressRanges = new 
ArrayList<String[]>();
    --- End diff --
    
    Why is this variable declared as a ``Collection`` and not a ``List``?


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

Reply via email to