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-9299) Out-of-band Management for CloudStack
Date Tue, 03 May 2016 06:49:12 GMT

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

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

Github user rhtyd commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/1502#discussion_r61843281
  
    --- Diff: api/src/org/apache/cloudstack/api/command/admin/outofbandmanagement/IssueOutOfBandManagementPowerActionCmd.java
---
    @@ -0,0 +1,128 @@
    +// 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 org.apache.cloudstack.api.command.admin.outofbandmanagement;
    +
    +import com.cloud.event.EventTypes;
    +import com.cloud.exception.ConcurrentOperationException;
    +import com.cloud.exception.InsufficientCapacityException;
    +import com.cloud.exception.NetworkRuleConflictException;
    +import com.cloud.exception.ResourceAllocationException;
    +import com.cloud.exception.ResourceUnavailableException;
    +import com.cloud.host.Host;
    +import com.google.common.base.Strings;
    +import org.apache.cloudstack.acl.RoleType;
    +import org.apache.cloudstack.api.APICommand;
    +import org.apache.cloudstack.api.ApiCommandJobType;
    +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.HostResponse;
    +import org.apache.cloudstack.api.response.OutOfBandManagementResponse;
    +import org.apache.cloudstack.context.CallContext;
    +import org.apache.cloudstack.outofbandmanagement.OutOfBandManagement.PowerOperation;
    +import org.apache.cloudstack.outofbandmanagement.OutOfBandManagementService;
    +
    +import javax.inject.Inject;
    +
    +@APICommand(name = "issueOutOfBandManagementPowerAction", description = "Initiates the
specified power action to the host's out-of-band management interface",
    +        responseObject = OutOfBandManagementResponse.class, requestHasSensitiveInfo =
false, responseHasSensitiveInfo = false, authorized = {RoleType.Admin})
    +public class IssueOutOfBandManagementPowerActionCmd extends BaseAsyncCmd {
    +    @Inject
    +    private OutOfBandManagementService outOfBandManagementService;
    +
    +    /////////////////////////////////////////////////////
    +    //////////////// API parameters /////////////////////
    +    /////////////////////////////////////////////////////
    +
    +    @Parameter(name = ApiConstants.HOST_ID, type = CommandType.UUID, entityType = HostResponse.class,
required = true, description = "the ID of the host")
    +    private Long hostId;
    +
    +    @Parameter(name = ApiConstants.TIMEOUT, type = CommandType.LONG, description = "optional
operation timeout in seconds that overrides the global or cluster-level out-of-band management
timeout setting")
    +    private Long actionTimeout;
    +
    +    @Parameter(name = ApiConstants.ACTION, type = CommandType.STRING, required = true,
description = "out-of-band management power actions, valid actions are: ON, OFF, CYCLE, RESET,
SOFT, STATUS")
    +    private String outOfBandManagementPowerOperation;
    +
    +    /////////////////////////////////////////////////////
    +    /////////////// API Implementation///////////////////
    +    /////////////////////////////////////////////////////
    +
    +    @Override
    +    public String getCommandName() {
    +        return "issueoutofbandmanagementpoweractionresponse";
    +    }
    +
    +    private void validateParams() {
    +        if (getHostId() == null || getHostId() < 1L) {
    +            throw new ServerApiException(ApiErrorCode.PARAM_ERROR, "Invalid host ID:
" + getHostId());
    +        }
    +        if (Strings.isNullOrEmpty(getOutOfBandManagementPowerOperation())) {
    +            throw new ServerApiException(ApiErrorCode.PARAM_ERROR, "Invalid out-of-band
management power action: " + getOutOfBandManagementPowerOperation());
    +        }
    +    }
    +
    +    @Override
    +    public void execute() throws ResourceUnavailableException, InsufficientCapacityException,
ServerApiException, ConcurrentOperationException, ResourceAllocationException, NetworkRuleConflictException
{
    +        validateParams();
    +        Host host = _resourceService.getHost(getHostId());
    +        if (host == null) {
    +            throw new ServerApiException(ApiErrorCode.PARAM_ERROR, "Unable to find host
by ID: " + getHostId());
    +        }
    +        PowerOperation powerOperation = PowerOperation.valueOf(getOutOfBandManagementPowerOperation());
    --- End diff --
    
    We're doing Enums.getIfPresent in validateParams therefore a case-insensitive check is
not needed here, if validate does not fail PowerOperation.valueOf will always return an valid
enum.


> Out-of-band Management for CloudStack
> -------------------------------------
>
>                 Key: CLOUDSTACK-9299
>                 URL: https://issues.apache.org/jira/browse/CLOUDSTACK-9299
>             Project: CloudStack
>          Issue Type: New Feature
>      Security Level: Public(Anyone can view this level - this is the default.) 
>            Reporter: Rohit Yadav
>            Assignee: Rohit Yadav
>             Fix For: 4.9.0, Future
>
>
> Support access to a host’s out-of-band management interface (e.g. IPMI, iLO, DRAC,
etc.) to manage host power operations (on/off etc.) and querying current power state.
> FS: https://cwiki.apache.org/confluence/display/CLOUDSTACK/Out-of-band+Management+for+CloudStack



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

Mime
View raw message