private Map<String, String> resolveAutoStartDockerMachine(Map<String, String> config) { final String cliPathExec = config.get(CubeDockerConfiguration.DOCKER_MACHINE_PATH); if (dockerMachine.isDockerMachineInstalled(cliPathExec)) { final Set<Machine> allMachines = dockerMachine.list(cliPathExec); Optional<Machine> machine = Optional.empty(); if (config.containsKey(CubeDockerConfiguration.DOCKER_MACHINE_NAME)) { String configuredMachineName = config.get(CubeDockerConfiguration.DOCKER_MACHINE_NAME); machine = allMachines.stream() .filter(m -> configuredMachineName.equals(m.getName())) .filter(m -> "Stopped".equalsIgnoreCase(m.getState())) .findFirst(); } else { if (allMachines.size() == 1 && "Stopped".equalsIgnoreCase(allMachines.iterator().next().getState())) { machine = Optional.of(allMachines.iterator().next()); } } machine.ifPresent(m -> dockerMachine.startDockerMachine(cliPathExec, m.getName())); } return config; }
private Map<String, String> resolveAutoStartDockerMachine(Map<String, String> config) { final String cliPathExec = config.get(CubeDockerConfiguration.DOCKER_MACHINE_PATH); if (dockerMachine.isDockerMachineInstalled(cliPathExec)) { final Set<Machine> allMachines = dockerMachine.list(cliPathExec); Optional<Machine> machine = Optional.empty(); if (config.containsKey(CubeDockerConfiguration.DOCKER_MACHINE_NAME)) { String configuredMachineName = config.get(CubeDockerConfiguration.DOCKER_MACHINE_NAME); machine = allMachines.stream() .filter(m -> configuredMachineName.equals(m.getName())) .filter(m -> "Stopped".equalsIgnoreCase(m.getState())) .findFirst(); } else { if (allMachines.size() == 1 && "Stopped".equalsIgnoreCase(allMachines.iterator().next().getState())) { machine = Optional.of(allMachines.iterator().next()); } } machine.ifPresent(m -> dockerMachine.startDockerMachine(cliPathExec, m.getName())); } return config; }
@Test public void shouldParseStoppedMachines() { when(executor.execCommandAsArray("docker-machine", "ls")).thenReturn(Arrays.asList( "NAME ACTIVE DRIVER STATE URL SWARM", "dev - virtualbox Stopped " )); DockerMachine dockerMachine = new DockerMachine(executor); final Set<Machine> list = dockerMachine.list(); assertThat(list, hasSize(1)); final Machine[] machines = list.toArray(new Machine[1]); assertThat(machines[0].getName(), is("dev")); assertThat(machines[0].getState(), is("Stopped")); assertThat(machines[0].getUrl(), is("")); }
@Test public void shouldListDockerMachines() { when(executor.execCommandAsArray("docker-machine", "ls")).thenReturn(Arrays.asList( "NAME ACTIVE DRIVER STATE URL SWARM", "dev * virtualbox Running tcp://192.168.99.100:2376 ", "qa * virtualbox Running tcp://192.168.99.101:2376 swarm-master" )); DockerMachine dockerMachine = new DockerMachine(executor); final Set<Machine> list = dockerMachine.list(); assertThat(list, hasSize(2)); final Machine[] machines = list.toArray(new Machine[2]); assertThat(machines[0].getName(), is("qa")); assertThat(machines[0].getState(), is("Running")); assertThat(machines[0].getSwarm(), is("swarm-master")); assertThat(machines[1].getName(), is("dev")); assertThat(machines[1].getState(), is("Running")); assertThat(machines[1].getSwarm(), is("")); }
@Test public void shouldListWithFilterDockerMachines() { when(executor.execCommandAsArray("docker-machine", "ls", "--filter", "state=Running")).thenReturn(Arrays.asList( "NAME ACTIVE DRIVER STATE URL SWARM", "dev * virtualbox Running tcp://192.168.99.100:2376 ", "qa * virtualbox Running tcp://192.168.99.101:2376 swarm-master" )); DockerMachine dockerMachine = new DockerMachine(executor); final Set<Machine> list = dockerMachine.list("state", "Running"); assertThat(list, hasSize(2)); final Machine[] machines = list.toArray(new Machine[2]); assertThat(machines[0].getName(), is("qa")); assertThat(machines[0].getState(), is("Running")); assertThat(machines[0].getSwarm(), is("swarm-master")); assertThat(machines[1].getName(), is("dev")); assertThat(machines[1].getState(), is("Running")); assertThat(machines[1].getSwarm(), is("")); } }