private void updateTargetConfiguration(ContainerDef targetConfiguration, File distributionHome) throws Exception { final Map<String, String> values = new HashMap<String, String>(); values.put("dist", distributionHome.getAbsolutePath()); for (Map.Entry<String, String> configuration : targetAdapter.resolveConfiguration(values).entrySet()) { targetConfiguration.overrideProperty(configuration.getKey(), configuration.getValue()); } }
private void updateTargetConfiguration(ContainerDef targetConfiguration, File distributionHome) throws Exception { final Map<String, String> values = new HashMap<String, String>(); values.put("dist", distributionHome.getAbsolutePath()); for (Map.Entry<String, String> configuration : targetAdapter.resolveConfiguration(values).entrySet()) { targetConfiguration.overrideProperty(configuration.getKey(), configuration.getValue()); } }
private boolean resolveConfigurationPropertiesWithDockerServerIp(ContainerDef containerDef, String containerIP) { boolean foundAttribute = false; for (Entry<String, String> entry : containerDef.getContainerProperties().entrySet()) { if ((hostPattern.matcher(entry.getKey()).matches() || addressPattern.matcher(entry.getKey()).matches())) { //if property is already configured, doesn't matter if it is a boot2docker or not we can say that we have matched a defined property. foundAttribute = true; if (entry.getValue().contains(CubeDockerConfiguration.DOCKER_SERVER_IP)) { containerDef.overrideProperty(entry.getKey(), entry.getValue().replaceAll(CubeDockerConfiguration.DOCKER_SERVER_IP, containerIP)); } } } return foundAttribute; }
private boolean resolveConfigurationPropertiesWithDockerServerIp(ContainerDef containerDef, String containerIP) { boolean foundAttribute = false; for (Entry<String, String> entry : containerDef.getContainerProperties().entrySet()) { if ((hostPattern.matcher(entry.getKey()).matches() || addressPattern.matcher(entry.getKey()).matches())) { //if property is already configured, doesn't matter if it is a boot2docker or not we can say that we have matched a defined property. foundAttribute = true; if (entry.getValue().contains(CubeDockerConfiguration.DOCKER_SERVER_IP)) { containerDef.overrideProperty(entry.getKey(), entry.getValue().replaceAll(CubeDockerConfiguration.DOCKER_SERVER_IP, containerIP)); } } } return foundAttribute; }
@Test public void shouldNotRemapContainerPortIfItIsNotEqualToExposedOne() { Map<String, String> containerConfig = new HashMap<String, String>(); containerConfig.put("port", "8090"); when(containerDef.getContainerProperties()).thenReturn(containerConfig); fire(new BeforeSetup(deployableContainer)); verify(containerDef, times(0)).overrideProperty("port", "8090"); verify(containerDef, times(0)).overrideProperty("port", "8089"); }
@Test public void shouldSubstituteDockerServerIpContainerAddressToBootToDockerIp() { Map<String, String> containerConfig = new HashMap<String, String>(); containerConfig.put("myHost", CubeDockerConfiguration.DOCKER_SERVER_IP); when(containerDef.getContainerProperties()).thenReturn(containerConfig); when(cube.getMetadata(HasPortBindings.class)).thenReturn(hasPortBindings); bind(ApplicationScoped.class, OperatingSystemFamily.class, OperatingSystemFamily.MAC); fire(new BeforeSetup(deployableContainer)); verify(containerDef).overrideProperty("myHost", "192.168.0.1"); }
@Test public void shouldRemapContainerPortIfItIsEqualToExposedOne() { Map<String, String> containerConfig = new HashMap<String, String>(); when(containerDef.getContainerProperties()).thenReturn(containerConfig); fire(new BeforeSetup(deployableContainer)); verify(containerDef).overrideProperty("port", "8090"); }
@Test public void shouldNotRemapContainerAddressToBootToDocker() { Map<String, String> containerConfig = new HashMap<String, String>(); containerConfig.put("myHost", "10.0.10.1"); when(containerDef.getContainerProperties()).thenReturn(containerConfig); when(cube.getMetadata(HasPortBindings.class)).thenReturn(hasPortBindings); bind(ApplicationScoped.class, OperatingSystemFamily.class, OperatingSystemFamily.MAC); fire(new BeforeSetup(deployableContainer)); verify(containerDef, times(0)).overrideProperty("myHost", "192.168.0.1"); } }
containerConfiguration.overrideProperty(configurationClassPortField.getName(), Integer.toString(mappingForPort.getPort())); containerConfiguration.overrideProperty(configurationClassAddressField.getName(), mappingForPort.getIP());
containerConfiguration.overrideProperty(configurationClassPortField.getName(), Integer.toString(mappingForPort.getPort())); containerConfiguration.overrideProperty(configurationClassAddressField.getName(), mappingForPort.getIP());
@Test public void shouldRemapContainerAddressToBootToDocker() { Map<String, String> containerConfig = new HashMap<String, String>(); when(containerDef.getContainerProperties()).thenReturn(containerConfig); when(cube.getMetadata(HasPortBindings.class)).thenReturn(hasPortBindings); bind(ApplicationScoped.class, OperatingSystemFamily.class, OperatingSystemFamily.MAC); fire(new BeforeSetup(deployableContainer)); verify(containerDef).overrideProperty("myHost", "192.168.0.1"); }
container.getContainerConfiguration().overrideProperty(name, config.get(name));
container.getContainerConfiguration().overrideProperty(name, config.get(name));
public void applyDockerServerIpChange(@Observes BeforeSetup event, CubeRegistry cubeRegistry, ContainerRegistry containerRegistry) throws InstantiationException, IllegalAccessException, MalformedURLException { Container container = ContainerUtil.getContainerByDeployableContainer(containerRegistry, event.getDeployableContainer()); if (container == null) { return; } Cube<?> cube = cubeRegistry.getCube(org.arquillian.cube.impl.util.ContainerUtil.getCubeIDForContainer(container)); if (cube == null) { return; // No Cube found matching Container name, not managed by Cube } HasPortBindings portBindings = cube.getMetadata(HasPortBindings.class); if (portBindings == null) { return; } ContainerDef containerConfiguration = container.getContainerConfiguration(); boolean foundAttribute = resolveConfigurationPropertiesWithDockerServerIp(containerConfiguration, portBindings.getContainerIP()); //if user doesn't configured in arquillian.xml the host then we can override the default value. if (!foundAttribute) { Class<?> configurationClass = container.getDeployableContainer().getConfigurationClass(); List<PropertyDescriptor> configurationClassHostOrAddressFields = filterConfigurationClassPropertiesByHostOrAddressAttribute(configurationClass); for (PropertyDescriptor propertyDescriptor : configurationClassHostOrAddressFields) { //we get default address value and we replace to boot2docker ip containerConfiguration.overrideProperty(propertyDescriptor.getName(), portBindings.getContainerIP()); } } }
public void applyDockerServerIpChange(@Observes BeforeSetup event, CubeRegistry cubeRegistry, ContainerRegistry containerRegistry) throws InstantiationException, IllegalAccessException, MalformedURLException { Container container = ContainerUtil.getContainerByDeployableContainer(containerRegistry, event.getDeployableContainer()); if (container == null) { return; } Cube<?> cube = cubeRegistry.getCube(org.arquillian.cube.impl.util.ContainerUtil.getCubeIDForContainer(container)); if (cube == null) { return; // No Cube found matching Container name, not managed by Cube } HasPortBindings portBindings = cube.getMetadata(HasPortBindings.class); if (portBindings == null) { return; } ContainerDef containerConfiguration = container.getContainerConfiguration(); boolean foundAttribute = resolveConfigurationPropertiesWithDockerServerIp(containerConfiguration, portBindings.getContainerIP()); //if user doesn't configured in arquillian.xml the host then we can override the default value. if (!foundAttribute) { Class<?> configurationClass = container.getDeployableContainer().getConfigurationClass(); List<PropertyDescriptor> configurationClassHostOrAddressFields = filterConfigurationClassPropertiesByHostOrAddressAttribute(configurationClass); for (PropertyDescriptor propertyDescriptor : configurationClassHostOrAddressFields) { //we get default address value and we replace to boot2docker ip containerConfiguration.overrideProperty(propertyDescriptor.getName(), portBindings.getContainerIP()); } } }