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