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 Mon, 12 Oct 2015 17:18:06 GMT

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

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_r41779077
  
    --- Diff: plugins/network-elements/nuage-vsp/src/com/cloud/network/guru/NuageVspGuestNetworkGuru.java
---
    @@ -129,66 +134,94 @@ public Network design(NetworkOffering offering, DeploymentPlan plan,
Network use
     
         @Override
         public Network implement(Network network, NetworkOffering offering, DeployDestination
dest, ReservationContext context) throws InsufficientVirtualNetworkCapacityException {
    +        long networkId = network.getId();
    +        network = _networkDao.acquireInLockTable(network.getId(), 1200);
    +        if (network == null) {
    +            throw new ConcurrentOperationException("Unable to acquire lock on network
" + networkId);
    +        }
     
    -        assert (network.getState() == State.Implementing) : "Why are we implementing
" + network;
    +        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());
    +            }
    +            List<String[]> ipAddressRanges = new ArrayList<String[]>();
    +            String virtualRouterIp = getVirtualRouterIP(network, ipAddressRanges);
    +            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";
    +                if (s_logger.isDebugEnabled()) {
    +                    s_logger.debug(errorMessage);
    +                }
    +                throw new InsufficientVirtualNetworkCapacityException(errorMessage, Account.class,
network.getAccountId());
    +            }
    +            String vpcName = null;
    +            String vpcUuid = null;
    +            String preConfiguredDomainTemplateName = NuageVspUtil.getPreConfiguredDomainTemplateName(_configDao,
network, offering);
    +            boolean isSharedNetwork = offering.getGuestType() == GuestType.Shared;
    +            boolean isL3Network = !isVpc && (isSharedNetwork || isL3Network(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();
    -        }
    +            if (isVpc) {
    +                Vpc vpcObj = _vpcDao.findById(vpcId);
    +                vpcName = vpcObj.getName();
    +                vpcUuid = vpcObj.getUuid();
    +            }
    +
    +            if (isSharedNetwork) {
    +                List<VlanVO> vlans = _vlanDao.listVlansByNetworkId(network.getId());
    +                for (VlanVO vlan : vlans) {
    +                    boolean isIpv4 = StringUtils.isNotBlank(vlan.getIpRange());
    +                    String[] range = isIpv4 ? vlan.getIpRange().split("-") : vlan.getIp6Range().split("-");
    +                    ipAddressRanges.add(range);
    +                }
    +            }
     
    -        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);
    +            HostVO nuageVspHost = getNuageVspHost(physicalNetworkId);
    +            List<String> dnsServers = _nuageVspManager.getDnsDetails(network);
    +            List<String> gatewaySystemIds = _nuageVspManager.getGatewaySystemIds();
    +            ImplementNetworkVspCommand.Builder cmdBuilder = new ImplementNetworkVspCommand.Builder().networkDomainName(networksDomain.getName()).networkDomainPath(networksDomain.getPath())
    +                    .networkDomainUuid(networksDomain.getUuid()).networkAccountName(networksAccount.getAccountName()).networkAccountUuid(networksAccount.getUuid())
    +                    .networkName(network.getName()).networkCidr(network.getCidr()).networkGateway(network.getGateway()).networkAclId(network.getNetworkACLId()).dnsServers(dnsServers)
    +                    .gatewaySystemIds(gatewaySystemIds).networkUuid(network.getUuid()).isL3Network(isL3Network).isVpc(isVpc).isSharedNetwork(isSharedNetwork).vpcName(vpcName)
    +                    .vpcUuid(vpcUuid).defaultEgressPolicy(offering.getEgressDefaultPolicy()).ipAddressRange(ipAddressRanges).domainTemplateName(preConfiguredDomainTemplateName);
    +            ImplementNetworkVspAnswer answer = (ImplementNetworkVspAnswer)_agentMgr.easySend(nuageVspHost.getId(),
cmdBuilder.build());
     
    -        if (answer == null || !answer.getResult()) {
    -            s_logger.error("ImplementNetworkNuageVspCommand failed");
    -            if ((null != answer) && (null != answer.getDetails())) {
    -                s_logger.error(answer.getDetails());
    +            if (answer == null || !answer.getResult()) {
    +                s_logger.error("ImplementNetworkNuageVspCommand failed");
    --- End diff --
    
    Please provide context information about the Nuage device and network that failed to configure.


> 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
>         Attachments: nuageVspMarvinLogs.tar.gz
>
>
> 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