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-8672) NCC Integration with CloudStack
Date Sat, 31 Dec 2016 10:59:58 GMT

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

ASF GitHub Bot commented on CLOUDSTACK-8672:
--------------------------------------------

Github user nitin-maharana commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/1859#discussion_r94272083
  
    --- Diff: plugins/network-elements/netscaler/src/com/cloud/api/commands/DeployNetscalerVpxCmd.java
---
    @@ -0,0 +1,149 @@
    +// Licensed to the Apache Software Foundation (ASF) under one or more
    +// contributor license agreements.  See the NOTICE file distributed with
    +// this work for additional information regarding copyright ownership.
    +// The ASF licenses this file to You under the Apache License, Version 2.0
    +// (the "License"); you may not use this file except in compliance with
    +// the License.  You may obtain a copy of the License at
    +//
    +//   http://www.apache.org/licenses/LICENSE-2.0
    +//
    +// Unless required by applicable law or agreed to in writing, software
    +// distributed under the License is distributed on an "AS IS" BASIS,
    +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +// See the License for the specific language governing permissions and
    +// limitations under the License.
    +
    +package com.cloud.api.commands;
    +
    +import java.util.List;
    +import java.util.Map;
    +
    +import javax.inject.Inject;
    +
    +import org.apache.log4j.Logger;
    +
    +import org.apache.cloudstack.api.ACL;
    +import org.apache.cloudstack.api.APICommand;
    +import org.apache.cloudstack.api.ApiConstants;
    +import org.apache.cloudstack.api.ApiErrorCode;
    +import org.apache.cloudstack.api.BaseAsyncCmd;
    +import org.apache.cloudstack.api.Parameter;
    +import org.apache.cloudstack.api.ServerApiException;
    +import org.apache.cloudstack.api.response.NetworkResponse;
    +import org.apache.cloudstack.api.response.ServiceOfferingResponse;
    +import org.apache.cloudstack.api.response.SystemVmResponse;
    +import org.apache.cloudstack.api.response.TemplateResponse;
    +import org.apache.cloudstack.api.response.ZoneResponse;
    +import org.apache.cloudstack.context.CallContext;
    +
    +import com.cloud.api.response.NetscalerLoadBalancerResponse;
    +import com.cloud.event.EventTypes;
    +import com.cloud.exception.ConcurrentOperationException;
    +import com.cloud.exception.InsufficientCapacityException;
    +import com.cloud.exception.InvalidParameterValueException;
    +import com.cloud.exception.ResourceAllocationException;
    +import com.cloud.exception.ResourceUnavailableException;
    +import com.cloud.network.element.NetscalerLoadBalancerElementService;
    +import com.cloud.user.Account;
    +import com.cloud.utils.exception.CloudRuntimeException;
    +import com.cloud.vm.VirtualMachine;
    +
    +@APICommand(name = "deployNetscalerVpx", responseObject = NetscalerLoadBalancerResponse.class,
description = "Creates new NS Vpx",
    +        requestHasSensitiveInfo = true, responseHasSensitiveInfo = false)
    +public class DeployNetscalerVpxCmd extends BaseAsyncCmd {
    +
    +    public static final Logger s_logger = Logger.getLogger(DeployNetscalerVpxCmd.class.getName());
    +    private static final String s_name = "deployNetscalerVpx";
    +    @Inject
    +    NetscalerLoadBalancerElementService _netsclarLbService;
    +
    +    /////////////////////////////////////////////////////
    +    //////////////// API parameters /////////////////////
    +    /////////////////////////////////////////////////////
    +
    +    @Parameter(name = ApiConstants.ZONE_ID, type = CommandType.UUID, entityType = ZoneResponse.class,
required = true, description = "availability zone for the virtual machine")
    +    private Long zoneId;
    +
    +    @ACL
    +    @Parameter(name = ApiConstants.SERVICE_OFFERING_ID, type = CommandType.UUID, entityType
= ServiceOfferingResponse.class, required = true, description = "the ID of the service offering
for the virtual machine")
    +    private Long serviceOfferingId;
    +
    +    @ACL
    +    @Parameter(name = ApiConstants.TEMPLATE_ID, type = CommandType.UUID, entityType =
TemplateResponse.class, required = true, description = "the ID of the template for the virtual
machine")
    +    private Long templateId;
    +
    +    @Parameter(name = ApiConstants.NETWORK_ID,
    +            type = CommandType.UUID,
    +            entityType = NetworkResponse.class, required=false,
    +            description = "The network this ip address should be associated to.")
    +    private Long networkId;
    +    /////////////////////////////////////////////////////
    +    /////////////////// Accessors ///////////////////////
    +    /////////////////////////////////////////////////////
    +
    +
    +
    +    /////////////////////////////////////////////////////
    +    /////////////// API Implementation///////////////////
    +    /////////////////////////////////////////////////////
    +
    +    @Override
    +    public void execute() throws ResourceUnavailableException, InsufficientCapacityException,
ServerApiException, ConcurrentOperationException,
    +        ResourceAllocationException {
    +        try {
    +            Map<String,Object> resp = _netsclarLbService.deployNetscalerServiceVm(this);
    +           if (resp.size() > 0) {
    +               SystemVmResponse response =  _responseGenerator.createSystemVmResponse((VirtualMachine)resp.get("vm"));
    +               response.setGuestVlan((String)resp.get("guestvlan"));
    +               response.setPublicVlan((List<String>)resp.get("publicvlan"));
    +               response.setResponseName(getCommandName());
    +               setResponseObject(response);
    +           } else {
    +               throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Fail to start
system vm");
    +           }
    +
    +        } catch (InvalidParameterValueException invalidParamExcp) {
    +            throw new ServerApiException(ApiErrorCode.PARAM_ERROR, invalidParamExcp.getMessage());
    +        } catch (CloudRuntimeException runtimeExcp) {
    +            throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, runtimeExcp.getMessage());
    +        }
    +    }
    +
    +    public Long getServiceOfferingId() {
    +        return serviceOfferingId;
    +    }
    +
    +    public Long getTemplateId() {
    +        return templateId;
    +    }
    +
    +    @Override
    +    public String getEventDescription() {
    +        return "Adding a netscaler load balancer device";
    +    }
    +
    +    @Override
    +    public String getEventType() {
    +        return EventTypes.EVENT_NETSCALER_VM_START;
    +    }
    +
    +    @Override
    +    public String getCommandName() {
    +        return s_name;
    +    }
    +
    +    public Long getZoneId() {
    +        return zoneId;
    +    }
    +
    +    @Override
    +    public long getEntityOwnerId() {
    +        return CallContext.current().getCallingAccount().getId();
    +    }
    +    public Account getAccount(){
    +        return _accountService.getActiveAccountById(getEntityOwnerId());
    +    }
    +    public void getReservationContext() {
    +        //ReservationContext context = new ReservationContextImpl(UUID.randomUUID().toString(),
null , cmd.getAccount());
    --- End diff --
    
    @rajesh-battala : Right now, There is no usage of this function. So removal of this won't
have any implication. And the return type should also be ReservationContext. I am correcting
this code by returning the context, so that it can be used in future.


> NCC Integration with CloudStack
> -------------------------------
>
>                 Key: CLOUDSTACK-8672
>                 URL: https://issues.apache.org/jira/browse/CLOUDSTACK-8672
>             Project: CloudStack
>          Issue Type: New Feature
>      Security Level: Public(Anyone can view this level - this is the default.) 
>          Components: Network Devices
>    Affects Versions: 4.6.0
>            Reporter: Rajesh Battala
>            Assignee: Rajesh Battala
>            Priority: Critical
>             Fix For: Future
>
>




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message