private Map<String, String> resolveServerUriByOperativeSystem(Map<String, String> cubeConfiguration) { if (!cubeConfiguration.containsKey(CubeDockerConfiguration.DOCKER_URI)) { if (isDockerMachineSet(cubeConfiguration)) { String serverUri = OperatingSystemFamily.MACHINE.getServerUri(); cubeConfiguration.put(CubeDockerConfiguration.DOCKER_URI, serverUri); } else { String serverUri = operatingSystem.getFamily().getServerUri(); cubeConfiguration.put(CubeDockerConfiguration.DOCKER_URI, serverUri); } } return cubeConfiguration; } }
private Map<String, String> resolveServerUriByOperativeSystem(Map<String, String> cubeConfiguration) { if (!cubeConfiguration.containsKey(CubeDockerConfiguration.DOCKER_URI)) { if (isDockerMachineSet(cubeConfiguration)) { String serverUri = OperatingSystemFamily.MACHINE.getServerUri(); cubeConfiguration.put(CubeDockerConfiguration.DOCKER_URI, serverUri); } else { String serverUri = operatingSystem.getFamily().getServerUri(); cubeConfiguration.put(CubeDockerConfiguration.DOCKER_URI, serverUri); } } return cubeConfiguration; } }
private Map<String, String> resolveSystemDefaultSetup(Map<String, String> config) { if (!config.containsKey(CubeDockerConfiguration.DOCKER_URI)) { final String defaultUri = operatingSystem.getDefaultFamily().getServerUri(); URI uri = URI.create(defaultUri); if (Files.exists(FileSystems.getDefault().getPath(uri.getPath()))){ DockerClient client = defaultDocker.getDefaultDockerClient(defaultUri); InfoCmd cmd = client.infoCmd(); try { Info info = cmd.exec(); config.put(CubeDockerConfiguration.DOCKER_URI, defaultUri); log.info(String.format("Connected to docker (%s) using default settings version: %s kernel: %s", info.getName(), info.getServerVersion(), info.getKernelVersion())); } catch (ProcessingException e){ log.info(String.format("Could not connect to default socket %s. Go on with ", operatingSystem.getDefaultFamily().getServerUri())); } } } return config; }
private Map<String, String> resolveSystemDefaultSetup(Map<String, String> config) { if (!config.containsKey(CubeDockerConfiguration.DOCKER_URI)) { final String defaultUri = operatingSystem.getDefaultFamily().getServerUri(); URI uri = URI.create(defaultUri); if (Files.exists(FileSystems.getDefault().getPath(uri.getPath()))){ DockerClient client = defaultDocker.getDefaultDockerClient(defaultUri); InfoCmd cmd = client.infoCmd(); try { Info info = cmd.exec(); config.put(CubeDockerConfiguration.DOCKER_URI, defaultUri); log.info(String.format("Connected to docker (%s) using default settings version: %s kernel: %s", info.getName(), info.getServerVersion(), info.getKernelVersion())); } catch (ProcessingException e){ log.info(String.format("Could not connect to default socket %s. Go on with ", operatingSystem.getDefaultFamily().getServerUri())); } } } return config; }
private void bindNonExistingDockerSocketOS() { when(operatingSystem.getDefaultFamily()).thenReturn(operatingSystemFamily); when(operatingSystem.getFamily()).thenReturn(OperatingSystemFamily.MAC); when(operatingSystemFamily.getServerUri()).thenReturn("non/existing/path"); bind(ApplicationScoped.class, OperatingSystemInterface.class, operatingSystem); }
@Test public void shouldDetectsValidDockerDefault() throws Exception { CubeDockerConfigurationResolver resolver = new CubeDockerConfigurationResolver(new Top(), new DockerMachine(null), new Boot2Docker(null), mockDefaultDocker(), operatingSystemInterface); when(info.getName()).thenReturn("docker-ce"); when(info.getServerVersion()).thenReturn("arquillian-test"); when(info.getKernelVersion()).thenReturn("0.0.0"); URL sockURL = this.getClass().getClassLoader().getResource("docker.sock"); String sockUri = "unix://" + sockURL; when(defaultOperatingSystemFamilyInterface.getServerUri()).thenReturn(sockUri); when(operatingSystemInterface.getDefaultFamily()).thenReturn(defaultOperatingSystemFamilyInterface); when(operatingSystemInterface.getFamily()).thenReturn(OperatingSystem.MAC_OSX.getFamily()); Map<String, String> config = new HashMap<>(); Map<String, String> resolvedConfig = resolver.resolve(config); assertThat(Boolean.valueOf(resolvedConfig.get(CubeDockerConfiguration.TLS_VERIFY)), is(false)); assertThat(resolvedConfig.get(CubeDockerConfiguration.CERT_PATH), is(nullValue())); assertThat(resolvedConfig.get(CubeDockerConfiguration.DOCKER_URI), is(sockUri)); }
@Test public void shouldNotSetTlsVerifyForTcpSchemeOnOSX() { CubeDockerConfigurationResolver resolver = new CubeDockerConfigurationResolver(new Top(), new DockerMachine(null), new Boot2Docker(null), mockDefaultDocker(), operatingSystemInterface); when(infoCmd.exec()).thenThrow(new ProcessingException("test exception")); String sockUri = "unix:///a/path-that/does/not/exist"; when(defaultOperatingSystemFamilyInterface.getServerUri()).thenReturn(sockUri); when(operatingSystemInterface.getDefaultFamily()).thenReturn(defaultOperatingSystemFamilyInterface); when(operatingSystemInterface.getFamily()).thenReturn(OperatingSystem.MAC_OSX.getFamily()); Map<String, String> config = new HashMap<>(); config.put(CubeDockerConfiguration.DOCKER_URI, "tcp://localhost:2376"); Map<String, String> resolvedConfig = resolver.resolve(config); assertThat(Boolean.valueOf(resolvedConfig.get(CubeDockerConfiguration.TLS_VERIFY)), is(false)); assertThat(resolvedConfig.get(CubeDockerConfiguration.CERT_PATH), is(nullValue())); }
@Test public void shouldSkipsInvalidDockerDefault() throws Exception { CubeDockerConfigurationResolver resolver = new CubeDockerConfigurationResolver(new Top(), new DockerMachine(null), new Boot2Docker(boot2dockerCommandLineExecutor), mockDefaultDocker(), operatingSystemInterface); when(boot2dockerCommandLineExecutor.execCommand(Matchers.<String>anyVararg())).thenReturn("127.0.0.1"); String sockUri = "unix:///a/path-that/does/not/exist"; when(defaultOperatingSystemFamilyInterface.getServerUri()).thenReturn(sockUri); when(operatingSystemInterface.getDefaultFamily()).thenReturn(defaultOperatingSystemFamilyInterface); when(operatingSystemInterface.getFamily()).thenReturn(OperatingSystem.MAC_OSX.getFamily()); Map<String, String> config = new HashMap<>(); Map<String, String> resolvedConfig = resolver.resolve(config); assertThat(Boolean.valueOf(resolvedConfig.get(CubeDockerConfiguration.TLS_VERIFY)), is(true)); assertThat(resolvedConfig.get(CubeDockerConfiguration.DOCKER_URI), is("tcp://127.0.0.1:2376")); }
@Test public void shouldNotSetTlsVerifyForTcpSchemeOnLinux() { CubeDockerConfigurationResolver resolver = new CubeDockerConfigurationResolver(new Top(), new DockerMachine(null), new Boot2Docker(null), mockDefaultDocker(), operatingSystemInterface); when(infoCmd.exec()).thenThrow(new ProcessingException("test exception")); String sockUri = "unix:///a/path-that/does/not/exist"; when(defaultOperatingSystemFamilyInterface.getServerUri()).thenReturn(sockUri); when(operatingSystemInterface.getDefaultFamily()).thenReturn(defaultOperatingSystemFamilyInterface); when(operatingSystemInterface.getFamily()).thenReturn(OperatingSystem.LINUX_OS.getFamily()); Map<String, String> config = new HashMap<>(); config.put(CubeDockerConfiguration.DOCKER_URI, "tcp://localhost:2376"); Map<String, String> resolvedConfig = resolver.resolve(config); assertThat(Boolean.valueOf(resolvedConfig.get(CubeDockerConfiguration.TLS_VERIFY)), is(false)); assertThat(resolvedConfig.get(CubeDockerConfiguration.CERT_PATH), is(nullValue())); } }