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