[ https://issues.apache.org/jira/browse/CLOUDSTACK-9299?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15275863#comment-15275863 ]
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_r62444371 --- Diff: utils/src/main/java/org/apache/cloudstack/utils/process/ProcessRunner.java --- @@ -0,0 +1,111 @@ +// +// 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.utils.process; + +import org.apache.log4j.Logger; + +import java.io.IOException; +import java.util.List; + +public class ProcessRunner { + public static final Logger LOG = Logger.getLogger(ProcessRunner.class); + + private String stdOutput; + private String stdError; + private int returnCode = -1; + + public String getStdOutput() { + return stdOutput; + } + + public void setStdOutput(String stdOutput) { + this.stdOutput = stdOutput; + } + + public String getStdError() { + return stdError; + } + + public void setStdError(String stdError) { + this.stdError = stdError; + } + + public int getReturnCode() { + return returnCode; + } + + public void setReturnCode(int returnCode) { + this.returnCode = returnCode; + } + + public static ProcessRunner executeCommands(List<String> commands, long timeOutSeconds) { + ProcessRunner result = new ProcessRunner(); + try { + Process process = new ProcessBuilder().command(commands).start(); + StreamGobbler stdInputGobbler = new StreamGobbler(process.getInputStream()); + StreamGobbler stdErrorGobbler = new StreamGobbler(process.getErrorStream()); + stdInputGobbler.start(); + stdErrorGobbler.start(); + + if (timeOutSeconds > 0) { + ProcessWaitForThread worker = new ProcessWaitForThread(process); --- End diff -- Removed use of this idiom, instead using Future and .get(timeout, ...). > 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)