/**
* Copyright (c) 2015 INRIA.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* - Fawaz PARAISO
*/
package org.occiware.clouddesigner.occi.docker.connector.dockermachine.manager;
import org.occiware.clouddesigner.occi.docker.Machine;
import org.occiware.clouddesigner.occi.docker.connector.dockermachine.command.CommandFactory;
import org.occiware.clouddesigner.occi.docker.connector.dockermachine.util.DockerUtil;
import org.occiware.clouddesigner.occi.docker.connector.dockermachine.util.ProcessManager;
import org.occiware.clouddesigner.occi.infrastructure.ComputeStatus;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@SuppressWarnings("all")
public class DockerMachineManager {
private static Logger LOGGER = LoggerFactory.getLogger(DockerMachineManager.class);
private final static CommandFactory cf = new CommandFactory();
private static String OS = DockerUtil.getOS();
public static boolean createHostCmd(final Runtime runtime, final Machine machine) {
final String command = "";
DockerMachineManager.LOGGER.info((" Run ::==> " + command));
ProcessManager.runCommand(command, runtime, true);
ComputeStatus _get = ComputeStatus.get(0);
machine.setState(_get);
String _name = machine.getName();
return DockerMachineManager.setEnvCmd(runtime, _name);
}
public static boolean listMachinesCmd(final Runtime runtime) {
boolean result = false;
boolean _equalsIgnoreCase = DockerMachineManager.OS.equalsIgnoreCase("osx");
if (_equalsIgnoreCase) {
final String command = DockerMachineManager.cf.createLsCommand();
boolean _runCommand = ProcessManager.runCommand(command, runtime, true);
result = _runCommand;
} else {
boolean _runCommand_1 = ProcessManager.runCommand("docker-machine ls", runtime, true);
result = _runCommand_1;
}
return result;
}
public static boolean regenerateCert(final Runtime runtime, final String machineName) {
final String command = DockerMachineManager.cf.createCertCommand(machineName);
final boolean temp = ProcessManager.runCommand(command, runtime, true);
return temp;
}
public static String inspectHostCmd(final Runtime runtime, final String machine) {
final String command = DockerMachineManager.cf.createInfoCommand(machine);
return ProcessManager.getOutputCommand(command, runtime);
}
public static String listHostCmd(final Runtime runtime) {
final String command = DockerMachineManager.cf.createLsCmd();
return ProcessManager.getOutputCommand(command, runtime);
}
public static boolean setEnvCmd(final Runtime runtime, final String machineName) {
final String command = DockerMachineManager.cf.createEnvCmd(machineName);
return ProcessManager.runCommand(command, runtime, true);
}
public static String getEnvCmd(final Runtime runtime, final String machineName) {
final String command = DockerMachineManager.cf.getEnvCmd(machineName);
return ProcessManager.getOutputCommand(command, runtime);
}
public static boolean startCmd(final Runtime runtime, final String machineName) {
final String command = DockerMachineManager.cf.createStartCommand(machineName);
return ProcessManager.runCommand(command, runtime, true);
}
public static boolean stopCmd(final Runtime runtime, final String machineName) {
final String command = DockerMachineManager.cf.createStopCommand(machineName);
return ProcessManager.runCommand(command, runtime, true);
}
public static boolean restartCmd(final Runtime runtime, final String machineName) {
final String command = DockerMachineManager.cf.createReStartCommand(machineName);
return ProcessManager.runCommand(command, runtime, true);
}
public static boolean removeCmd(final Runtime runtime, final String machineName) {
final String command = DockerMachineManager.cf.createRemoveCommand(machineName);
return ProcessManager.runCommand(command, runtime, true);
}
public static String urlCmd(final Runtime runtime, final String machineName) {
final String command = DockerMachineManager.cf.createUrlCommand(machineName);
final String temp = ProcessManager.getOutputCommand(command, runtime);
return temp;
}
public static String ipCmd(final Runtime runtime, final String machineName) {
final String command = DockerMachineManager.cf.createUrlCommand(machineName);
String _outputCommand = ProcessManager.getOutputCommand(command, runtime);
final String temp = _outputCommand.replace("tcp://", "");
final int index = temp.indexOf(":");
final String newTemp = temp.substring(0, index);
return newTemp;
}
}