[
https://issues.apache.org/jira/browse/CLOUDSTACK-9299?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15277675#comment-15277675
]
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_r62616710
--- Diff:
utils/src/main/java/org/apache/cloudstack/utils/process/ProcessRunner.java ---
@@ -0,0 +1,112 @@
+//
+// 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 com.cloud.utils.concurrency.NamedThreadFactory;
+import com.google.common.base.Preconditions;
+import com.google.common.base.Strings;
+import org.apache.log4j.Logger;
+import org.joda.time.Duration;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.util.List;
+import java.util.concurrent.Callable;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.Future;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
+
+public class ProcessRunner {
+ public static final Logger LOG = Logger.getLogger(ProcessRunner.class);
+
+ private static final ExecutorService processExecutor =
Executors.newCachedThreadPool(new NamedThreadFactory("ProcessRunner"));
+
+ private static String readStream(final InputStream inputStream) {
+ String text = null;
+ try {
+ final BufferedReader bufferedReader = new BufferedReader(new
InputStreamReader(inputStream));
+ String line;
+ while ((line = bufferedReader.readLine()) != null) {
+ if (Strings.isNullOrEmpty(text)) {
+ text = line;
+ } else {
+ text = text + "\n" + line;
+ }
+ }
+ } catch (IOException e) {
+ if (LOG.isTraceEnabled()) {
+ LOG.trace("ProcessRunner::readStream failed due to: " +
e.getMessage());
+ }
+ }
+ return text;
+ }
+
+ public static ProcessResult executeCommands(final List<String>
commands, final Duration timeOut) {
+ Preconditions.checkArgument(commands != null && timeOut != null);
+
+ int retVal = -2;
+ String stdOutput = null;
+ String stdError = null;
+
+ try {
+ final Process process = new
ProcessBuilder().command(commands).start();
+ if (timeOut.getStandardSeconds() > 0) {
+ final Future<Integer> processFuture =
processExecutor.submit(new Callable<Integer>() {
+ @Override
+ public Integer call() throws Exception {
+ return process.waitFor();
+ }
+ });
+ try {
+ retVal =
processFuture.get(timeOut.getStandardSeconds(), TimeUnit.SECONDS);
+ } catch (ExecutionException | TimeoutException e) {
--- End diff --
Fixed
> 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)