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 21:31:05 GMT

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

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_r41803532
  
    --- Diff: plugins/network-elements/nuage-vsp/src/com/cloud/network/manager/NuageVspManagerImpl.java
---
    @@ -152,50 +243,179 @@ public NuageVspDeviceVO addNuageVspDevice(AddNuageVspDeviceCmd
cmd) {
                 throw new CloudRuntimeException("A NuageVsp device is already configured
on this physical network");
             }
     
    -        Map<String, String> params = new HashMap<String, String>();
    -        params.put("guid", UUID.randomUUID().toString());
    -        params.put("zoneId", String.valueOf(physicalNetwork.getDataCenterId()));
    -        params.put("physicalNetworkId", String.valueOf(physicalNetwork.getId()));
    -        params.put("name", "Nuage VSD - " + cmd.getHostName());
    -        params.put("hostname", cmd.getHostName());
    -        params.put("cmsuser", cmd.getUserName());
    -        String cmsUserPasswordBase64 = org.apache.commons.codec.binary.StringUtils.newStringUtf8(Base64.encodeBase64(cmd.getPassword().getBytes(Charset.forName("UTF-8"))));
    -        params.put("cmsuserpass", cmsUserPasswordBase64);
    -        int port = cmd.getPort();
    -        if (0 == port) {
    -            port = 443;
    -        }
    -        params.put("port", String.valueOf(port));
    -        params.put("apirelativepath", "/nuage/api/" + cmd.getApiVersion());
    -        params.put("retrycount", String.valueOf(cmd.getApiRetryCount()));
    -        params.put("retryinterval", String.valueOf(cmd.getApiRetryInterval()));
    +        try {
    +            NuageVspPluginClientLoader clientLoader = NuageVspPluginClientLoader.getClientLoader(null,
null, 1, 1, null);
     
    -        Map<String, Object> hostdetails = new HashMap<String, Object>();
    -        hostdetails.putAll(params);
    +            Map<String, Object> clientDefaults = clientLoader.getNuageVspManagerClient().getClientDefaults();
    +            String apiVersion = MoreObjects.firstNonNull(cmd.getApiVersion(), (String)
clientDefaults.get("CURRENT_API_VERSION"));
    +            if (!clientLoader.getNuageVspManagerClient().isSupportedApiVersion(apiVersion))
{
    +                throw new CloudRuntimeException("Unsupported API version : " + apiVersion);
    +            }
     
    -        try {
    +            Map<String, String> params = new HashMap<String, String>();
    +            params.put("guid", UUID.randomUUID().toString());
    +            params.put("zoneId", String.valueOf(physicalNetwork.getDataCenterId()));
    +            params.put("physicalNetworkId", String.valueOf(physicalNetwork.getId()));
    +            params.put("name", "Nuage VSD - " + cmd.getHostName());
    +            params.put("hostname", cmd.getHostName());
    +            params.put("cmsuser", cmd.getUserName());
    +            String cmsUserPasswordBase64 = org.apache.commons.codec.binary.StringUtils.newStringUtf8(Base64.encodeBase64(cmd.getPassword().getBytes()));
    +            params.put("cmsuserpass", cmsUserPasswordBase64);
    +            int port = cmd.getPort();
    +            if (0 == port) {
    +                port = 8443;
    +            }
    +            params.put("port", String.valueOf(port));
    +            params.put("apiversion", apiVersion);
    +            params.put("apirelativepath", "/nuage/api/" + apiVersion);
    +            params.put("retrycount", String.valueOf(MoreObjects.firstNonNull(cmd.getApiRetryCount(),
clientDefaults.get("DEFAULT_API_RETRY_COUNT"))));
    +            params.put("retryinterval", String.valueOf(MoreObjects.firstNonNull(cmd.getApiRetryInterval(),
clientDefaults.get("DEFAULT_API_RETRY_INTERVAL"))));
    +
    +            final Map<String, Object> hostdetails = new HashMap<String, Object>();
    +            hostdetails.putAll(params);
                 resource.configure(cmd.getHostName(), hostdetails);
     
    -            final Host host = _resourceMgr.addHost(zoneId, resource, Host.Type.L2Networking,
params);
    +            Host host = _resourceMgr.addHost(zoneId, resource, Host.Type.L2Networking,
params);
                 if (host != null) {
    -                return Transaction.execute(new TransactionCallback<NuageVspDeviceVO>()
{
    -                    @Override
    -                    public NuageVspDeviceVO doInTransaction(TransactionStatus status)
{
    -                        NuageVspDeviceVO nuageVspDevice = new NuageVspDeviceVO(host.getId(),
physicalNetworkId, ntwkSvcProvider.getProviderName(), deviceName);
    -                        _nuageVspDao.persist(nuageVspDevice);
    +                NuageVspDeviceVO nuageVspDevice = new NuageVspDeviceVO(host.getId(),
physicalNetworkId, ntwkSvcProvider.getProviderName(), deviceName);
    +                _nuageVspDao.persist(nuageVspDevice);
    +
    +                DetailVO detail = new DetailVO(host.getId(), "nuagevspdeviceid", String.valueOf(nuageVspDevice.getId()));
    +                _hostDetailsDao.persist(detail);
    +
    +                ConfigurationVO cmsIdConfig = _configDao.findByName("nuagevsp.cms.id");
    +                host = findNuageVspHost(nuageVspDevice.getHostId());
    +                SyncNuageVspCmsIdCommand syncCmd = new SyncNuageVspCmsIdCommand(SyncType.REGISTER,
null);
    +                SyncNuageVspCmsIdAnswer answer = (SyncNuageVspCmsIdAnswer) _agentMgr.easySend(nuageVspDevice.getHostId(),
syncCmd);
    +                if (answer != null && answer.getSuccess()) {
    +                    registerNewNuageVspDevice(cmsIdConfig, nuageVspDevice.getId() + ":"
+ answer.getNuageVspCmsId());
    +
    +                    detail = new DetailVO(host.getId(), "nuagevspcmsid", answer.getNuageVspCmsId());
    +                    _hostDetailsDao.persist(detail);
    +                    hostdetails.put("nuagevspcmsid", answer.getNuageVspCmsId());
    +                    resource.configure((String) hostdetails.get("hostname"), hostdetails);
    +
    +                    auditDomainsOnVsp((HostVO) host, true, false);
    +                } else {
    +                    throw new CloudRuntimeException("Failed to register CMS ID");
    +                }
    +                return nuageVspDevice;
    +            } else {
    +                throw new CloudRuntimeException("Failed to add Nuage Vsp Device due to
internal error.");
    +            }
    +        } catch (Exception e) {
    +            throw new CloudRuntimeException(e);
    +        }
    +    }
    +
    +    @Override
    +    public NuageVspDeviceVO updateNuageVspDevice(UpdateNuageVspDeviceCmd command) {
    +        ServerResource resource = new NuageVspResource();
    +        final String deviceName = Network.Provider.NuageVsp.getName();
    +        ExternalNetworkDeviceManager.NetworkDevice networkDevice = ExternalNetworkDeviceManager.NetworkDevice.getNetworkDevice(deviceName);
    +        final Long physicalNetworkId = command.getPhysicalNetworkId();
    +        PhysicalNetworkVO physicalNetwork = _physicalNetworkDao.findById(physicalNetworkId);
    +        if (physicalNetwork == null) {
    +            throw new InvalidParameterValueException("Could not find phyical network
with ID: " + physicalNetworkId);
    +        }
    +
    +        final PhysicalNetworkServiceProviderVO ntwkSvcProvider = _physicalNetworkServiceProviderDao.findByServiceProvider(physicalNetwork.getId(),
    +                networkDevice.getNetworkServiceProvder());
    +        if (ntwkSvcProvider == null) {
    +            throw new CloudRuntimeException("Network Service Provider: " + networkDevice.getNetworkServiceProvder()
+ " is not enabled in the physical network: "
    +                    + physicalNetworkId + "to add this device");
    +        } else if (ntwkSvcProvider.getState() == PhysicalNetworkServiceProvider.State.Shutdown)
{
    --- End diff --
    
    ``else`` is unnecessary as the ``throw`` stops further execution of the method.


> 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