String output = ConfigUtil.dump(dockerContainersContent); content.append(" ").append(DOCKER_CONTAINERS).append(" = ").append(output).append(lineSeparator);
private CubeConverter(String content) { this.dockerCubeDefinitionMap = ConfigUtil.load(content); }
@SuppressWarnings("unchecked") public static DockerCompositions load(InputStream inputStream) { // TODO: Figure out how to map root Map<String, Type> objects. Workaround by mapping it to Map structure then dumping it into individual objects //Apply Docker compose substitutions to cube format as well final String content = DockerComposeEnvironmentVarResolver.replaceParameters(inputStream); Yaml yaml = new Yaml(new CubeConstructor()); Map<String, Object> rawLoad = (Map<String, Object>) yaml.load(content); DockerCompositions containers = new DockerCompositions(); for (Map.Entry<String, Object> rawLoadEntry : rawLoad.entrySet()) { if (NETWORKS.equals(rawLoadEntry.getKey())) { Map<String, Object> rawNetworks = (Map<String, Object>) rawLoadEntry.getValue(); for (Map.Entry<String, Object> rawNetworkEntry : rawNetworks.entrySet()) { Network network = yaml.loadAs(yaml.dump(rawNetworkEntry.getValue()), Network.class); containers.add(rawNetworkEntry.getKey(), network); } } else if (CONTAINERS.equals(rawLoadEntry.getKey())) { Map<String, Object> rawContainers = (Map<String, Object>) rawLoadEntry.getValue(); for (Map.Entry<String, Object> rawContainerEntry : rawContainers.entrySet()) { CubeContainer cubeContainer = yaml.loadAs(yaml.dump(rawContainerEntry.getValue()), CubeContainer.class); containers.add(rawContainerEntry.getKey(), cubeContainer); } } else { CubeContainer container = yaml.loadAs(yaml.dump(rawLoadEntry.getValue()), CubeContainer.class); containers.add(rawLoadEntry.getKey(), container); } } return applyExtendsRules(containers); }
@Override public Map<String, Node> parse() { Map<String, Node> nodes = new HashMap<>(); String[] autoStartContainers = ConfigUtil.trim(expression.split(",")); for (String autoStart : autoStartContainers) { if (containerDefinitions.get(autoStart) != null && !containerDefinitions.get(autoStart).isManual()) { nodes.put(autoStart, Node.from(autoStart)); } } return nodes; }
@Override public Map<String, Node> parse() { Map<String, Node> nodes = new HashMap<>(); String[] autoStartContainers = ConfigUtil.trim(expression.split(",")); for (String autoStart : autoStartContainers) { if (containerDefinitions.get(autoStart) != null && !containerDefinitions.get(autoStart).isManual()) { nodes.put(autoStart, Node.from(autoStart)); } } return nodes; }
private CubeConverter(String content) { this.dockerCubeDefinitionMap = ConfigUtil.load(content); }
String output = ConfigUtil.dump(dockerContainersContent); content.append(" ").append(DOCKER_CONTAINERS).append(" = ").append(output).append(lineSeparator);
@SuppressWarnings("unchecked") public static DockerCompositions load(InputStream inputStream) { // TODO: Figure out how to map root Map<String, Type> objects. Workaround by mapping it to Map structure then dumping it into individual objects //Apply Docker compose substitutions to cube format as well final String content = DockerComposeEnvironmentVarResolver.replaceParameters(inputStream); Yaml yaml = new Yaml(new CubeConstructor()); Map<String, Object> rawLoad = (Map<String, Object>) yaml.load(content); DockerCompositions containers = new DockerCompositions(); for (Map.Entry<String, Object> rawLoadEntry : rawLoad.entrySet()) { if (NETWORKS.equals(rawLoadEntry.getKey())) { Map<String, Object> rawNetworks = (Map<String, Object>) rawLoadEntry.getValue(); for (Map.Entry<String, Object> rawNetworkEntry : rawNetworks.entrySet()) { Network network = yaml.loadAs(yaml.dump(rawNetworkEntry.getValue()), Network.class); containers.add(rawNetworkEntry.getKey(), network); } } else if (CONTAINERS.equals(rawLoadEntry.getKey())) { Map<String, Object> rawContainers = (Map<String, Object>) rawLoadEntry.getValue(); for (Map.Entry<String, Object> rawContainerEntry : rawContainers.entrySet()) { CubeContainer cubeContainer = yaml.loadAs(yaml.dump(rawContainerEntry.getValue()), CubeContainer.class); containers.add(rawContainerEntry.getKey(), cubeContainer); } } else { CubeContainer container = yaml.loadAs(yaml.dump(rawLoadEntry.getValue()), CubeContainer.class); containers.add(rawLoadEntry.getKey(), container); } } return applyExtendsRules(containers); }
private CubeConverter(Path location) throws IOException { FileInputStream inputStream = new FileInputStream(location.toFile()); this.dockerCubeDefinitionMap = ConfigUtil.load(inputStream); inputStream.close(); }
public void install(@Observes(precedence = 100) CubeDockerConfiguration configuration) { StandaloneManager installer = serviceLoaderInst.get().onlyOne(StandaloneManager.class); if (installer != null) { DockerCompositions cubes = configuration.getDockerContainersContent(); final StandaloneContainer install = installer.install(); final CubeContainer cube = install.getCube(); cubes.add(install.getName(), cube); standaloneContainerInst.set(install); System.out.println("STANDALONE CONTAINER INSTALLED"); System.out.println(ConfigUtil.dump(cubes)); } }
private CubeConverter(Path location) throws IOException { FileInputStream inputStream = new FileInputStream(location.toFile()); this.dockerCubeDefinitionMap = ConfigUtil.load(inputStream); inputStream.close(); }
public void install(@Observes(precedence = 100) CubeDockerConfiguration configuration) { DockerCompositions cubes = configuration.getDockerContainersContent(); ProxyManager installer = serviceLoaderInst.get().onlyOne(ProxyManager.class); if (installer != null) { Proxy proxy = installer.install(cubes); proxyInst.set(proxy); final CubeContainer cube = proxy.getCube(); cubes.add(proxy.getName(), cube); System.out.println("PROXY INSTALLED"); System.out.println(ConfigUtil.dump(cubes)); } } }
@Before public void setup() { when(cubeDockerConfiguration.getDockerServerIp()).thenReturn("192.168.99.100"); when(cubeDockerConfiguration.getDockerContainersContent()).thenReturn(ConfigUtil.load(SIMPLE_SCENARIO)); }
public void install(@Observes(precedence = 90) CubeDockerConfiguration configuration, ArquillianDescriptor arquillianDescriptor) { DockerCompositions cubes = configuration.getDockerContainersContent(); final SeleniumContainers seleniumContainers = SeleniumContainers.create(getBrowser(arquillianDescriptor), cubeDroneConfigurationInstance.get()); cubes.add(seleniumContainers.getSeleniumContainerName(), seleniumContainers.getSeleniumContainer()); final boolean recording = cubeDroneConfigurationInstance.get().isRecording(); if (recording) { cubes.add(seleniumContainers.getVncContainerName(), seleniumContainers.getVncContainer()); cubes.add(seleniumContainers.getVideoConverterContainerName(), seleniumContainers.getVideoConverterContainer()); } seleniumContainersInstanceProducer.set(seleniumContainers); System.out.println("SELENIUM INSTALLED"); System.out.println(ConfigUtil.dump(cubes)); }
@Test public void should_resolve_to_docker_host_if_no_url_provided() { final DockerCompositions compositions = ConfigUtil.load(SIMPLE_SCENARIO); when(cubeDockerConfiguration.getDockerContainersContent()).thenReturn(compositions); when(grapheneConfiguration.getUrl()).thenReturn(null); assertThatThrownBy(() -> { dockerCubeCustomizableURLResourceProvider.lookup(null); }) .hasMessage("Arquillian Cube Graphene integration should provide a URL in Graphene extension configuration."); }
public void install(@Observes(precedence = 90) CubeDockerConfiguration configuration, ArquillianDescriptor arquillianDescriptor) { DockerCompositions cubes = configuration.getDockerContainersContent(); final SeleniumContainers seleniumContainers = SeleniumContainers.create(getBrowser(arquillianDescriptor), cubeDroneConfigurationInstance.get()); cubes.add(seleniumContainers.getSeleniumContainerName(), seleniumContainers.getSeleniumContainer()); final boolean recording = cubeDroneConfigurationInstance.get().isRecording(); if (recording) { cubes.add(seleniumContainers.getVncContainerName(), seleniumContainers.getVncContainer()); cubes.add(seleniumContainers.getVideoConverterContainerName(), seleniumContainers.getVideoConverterContainer()); } seleniumContainersInstanceProducer.set(seleniumContainers); System.out.println("SELENIUM INSTALLED"); System.out.println(ConfigUtil.dump(cubes)); }
@Test public void shouldGetLogFromContainer() throws IOException { File newFolder = temporaryFolder.newFolder(); String content = CONTAINER_LOG_CONFIGURATION; content += newFolder.getAbsolutePath(); content += "mylog.log"; DockerCompositions configuration = ConfigUtil.load(content); CubeContainer config = configuration.get("tomcat_default"); Mockito.when(cube.configuration()).thenReturn(config); fire(new BeforeStop(CUBE_CONTAINER_NAME)); verify(dockerClientExecutor, times(1)).copyLog(eq(CUBE_CONTAINER_NAME), eq(false), eq(false), eq(false), eq(false), eq(-1), any(OutputStream.class)); }
@Test public void shouldCopyFileFromContainer() throws IOException { File newFolder = temporaryFolder.newFolder(); String content = CONTAINER_COPY_CONFIGURATION; content += newFolder.getAbsolutePath(); DockerCompositions configuration = ConfigUtil.load(content); CubeContainer config = configuration.get("tomcat_default"); Mockito.when(cube.configuration()).thenReturn(config); Mockito.when(dockerClientExecutor.getFileOrDirectoryFromContainerAsTar(eq(CUBE_CONTAINER_NAME), anyString())) .thenReturn(BeforeStopContainerObserverTest.class.getResourceAsStream("/hello.tar")); fire(new BeforeStop(CUBE_CONTAINER_NAME)); verify(dockerClientExecutor).getFileOrDirectoryFromContainerAsTar(eq(CUBE_CONTAINER_NAME), eq("/test")); assertThat(new File(newFolder, "hello.txt").exists(), is(true)); }
@Test public void shouldExecuteCustomBeforeStopOperationForContainer() throws IOException { DockerCompositions configuration = ConfigUtil.load(CONTAINER_CUSTOM_BEFORE_STOP_ACTION_CONFIGURATION); CubeContainer config = configuration.get("tomcat_default"); Mockito.when(cube.configuration()).thenReturn(config); fire(new BeforeStop(CUBE_CONTAINER_NAME)); verify(dockerClientExecutor, times(1)).getDockerUri(); } }