if (shouldBeIgnored(cubeContainerEntry.getKey(), excludedContainers)) { continue; if (hasMoreThanOneBindPort(cubeContainer)) { throw new IllegalArgumentException("No port was specified and a container has more than one bind port."); if (hasOnlyOneBindPort(cubeContainer)) { if (noPreviousBindPortFound(portBindInfo)) { final PortBinding portBinding = cubeContainer.getPortBindings() .iterator().next(); if (noPreviousBindPortFound(portBindInfo)) { throw new IllegalArgumentException("There isn't any bind port.");
/** * Method that tries to resolve a bind port by searching if there is only one binding port across all running * containers * * @param cubeDockerConfiguration * where all docker configuration is exposed * @param excludedContainers * where binding port search is ignored * * @return binding port */ public static int resolveBindPort(CubeDockerConfiguration cubeDockerConfiguration, String... excludedContainers) { final PortBindInfo portBinding = resolvePortBindPort(cubeDockerConfiguration, excludedContainers); if (portBinding == null) { throw new IllegalArgumentException("There isn't any bind port."); } return portBinding.getBindPort(); }
@Test(expected = IllegalArgumentException.class) public void should_throw_exception_when_resolve_two_bind_port_from_different_containers_with_same_exposed_port() { String content = "tomcat:\n" + " image: tutum/tomcat:8.0\n" + " portBindings: [8080/tcp]\n" + " links:\n" + " - ping\n" + "ping:\n" + " image: jonmorehouse/ping-pong\n" + " portBindings: [8080/tcp]\n" + "storage:\n" + " image: tutum/mongodb"; Map<String, String> parameters = new HashMap<String, String>(); parameters.put("dockerContainers", content); parameters.put("definitionFormat", DefinitionFormat.CUBE.name()); CubeDockerConfiguration cubeConfiguration = CubeDockerConfiguration.fromMap(parameters, null); final int bindPort = SinglePortBindResolver.resolveBindPort(cubeConfiguration, 8080); }
if (shouldBeIgnored(cubeContainerEntry.getKey(), excludedContainers)) { continue; for (PortBinding portBinding : portBindings) { if (portBinding.getExposedPort().getExposed() == exposedPort) { if (noPreviousBindPortFound(portBindInfo)) { int bindPort = portBinding.getBound(); portBindInfo = new PortBindInfo( if (noPreviousBindPortFound(portBindInfo)) { return null;
@Test(expected = IllegalArgumentException.class) public void should_throw_exception_with_resolve_two_bind_port() { String content = "tomcat:\n" + " image: tutum/tomcat:8.0\n" + " portBindings: [8080/tcp, 8081/tcp]\n" + " links:\n" + " - ping\n" + "ping:\n" + " image: jonmorehouse/ping-pong\n" + " exposedPorts: [8089/tcp]\n" + "storage:\n" + " image: tutum/mongodb"; Map<String, String> parameters = new HashMap<String, String>(); parameters.put("dockerContainers", content); parameters.put("definitionFormat", DefinitionFormat.CUBE.name()); CubeDockerConfiguration cubeConfiguration = CubeDockerConfiguration.fromMap(parameters, null); final int bindPort = SinglePortBindResolver.resolveBindPort(cubeConfiguration); }
if (shouldBeIgnored(cubeContainerEntry.getKey(), excludedContainers)) { continue; for (PortBinding portBinding : portBindings) { if (portBinding.getExposedPort().getExposed() == exposedPort) { if (noPreviousBindPortFound(portBindInfo)) { int bindPort = portBinding.getBound(); portBindInfo = new PortBindInfo( if (noPreviousBindPortFound(portBindInfo)) { return null;
@Test(expected = IllegalArgumentException.class) public void should_throw_exception_with_resolve_two_bind_port_from_different_containers() { String content = "tomcat:\n" + " image: tutum/tomcat:8.0\n" + " portBindings: [8080/tcp]\n" + " links:\n" + " - ping\n" + "ping:\n" + " image: jonmorehouse/ping-pong\n" + " portBindings: [8081/tcp]\n" + "storage:\n" + " image: tutum/mongodb"; Map<String, String> parameters = new HashMap<String, String>(); parameters.put("dockerContainers", content); parameters.put("definitionFormat", DefinitionFormat.CUBE.name()); CubeDockerConfiguration cubeConfiguration = CubeDockerConfiguration.fromMap(parameters, null); final int bindPort = SinglePortBindResolver.resolveBindPort(cubeConfiguration); }
if (shouldBeIgnored(cubeContainerEntry.getKey(), excludedContainers)) { continue; if (hasMoreThanOneBindPort(cubeContainer)) { throw new IllegalArgumentException("No port was specified and a container has more than one bind port."); if (hasOnlyOneBindPort(cubeContainer)) { if (noPreviousBindPortFound(portBindInfo)) { final PortBinding portBinding = cubeContainer.getPortBindings() .iterator().next(); if (noPreviousBindPortFound(portBindInfo)) { throw new IllegalArgumentException("There isn't any bind port.");
/** * Method that tries to resolve a bind port by searching if there is only one binding port across all running * containers * * @param cubeDockerConfiguration * where all docker configuration is exposed * @param excludedContainers * where binding port search is ignored * * @return binding port */ public static int resolveBindPort(CubeDockerConfiguration cubeDockerConfiguration, String... excludedContainers) { final PortBindInfo portBinding = resolvePortBindPort(cubeDockerConfiguration, excludedContainers); if (portBinding == null) { throw new IllegalArgumentException("There isn't any bind port."); } return portBinding.getBindPort(); }
@Test public void should_resolve_two_bind_port_from_different_containers_with_exposed_port_value_if_no_matches() { String content = "tomcat:\n" + " image: tutum/tomcat:8.0\n" + " portBindings: [8080/tcp]\n" + " links:\n" + " - ping\n" + "ping:\n" + " image: jonmorehouse/ping-pong\n" + " portBindings: [8081/tcp]\n" + "storage:\n" + " image: tutum/mongodb"; Map<String, String> parameters = new HashMap<String, String>(); parameters.put("dockerContainers", content); parameters.put("definitionFormat", DefinitionFormat.CUBE.name()); CubeDockerConfiguration cubeConfiguration = CubeDockerConfiguration.fromMap(parameters, null); final int bindPort = SinglePortBindResolver.resolveBindPort(cubeConfiguration, 8082); assertThat(bindPort, is(8082)); } }
/** * Method that tries to resolve a bind port for a given exposed port. * * @param cubeDockerConfiguration * where all docker configuration is exposed * @param exposedPort * used to find the binding port * @param excludedContainers * where binding port search is ignored * * @return binding port */ public static int resolveBindPort(CubeDockerConfiguration cubeDockerConfiguration, int exposedPort, String... excludedContainers) { final PortBindInfo portBinding = resolvePortBindPort(cubeDockerConfiguration, exposedPort, excludedContainers); if (portBinding == null) { return exposedPort; } return portBinding.getBindPort(); }
@Test public void should_resolve_two_bind_port_from_different_containers_with_exclusions() { String content = "tomcat:\n" + " image: tutum/tomcat:8.0\n" + " portBindings: [8080/tcp]\n" + " links:\n" + " - ping\n" + "ping:\n" + " image: jonmorehouse/ping-pong\n" + " portBindings: [8081/tcp]\n" + "storage:\n" + " image: tutum/mongodb"; Map<String, String> parameters = new HashMap<String, String>(); parameters.put("dockerContainers", content); parameters.put("definitionFormat", DefinitionFormat.CUBE.name()); CubeDockerConfiguration cubeConfiguration = CubeDockerConfiguration.fromMap(parameters, null); final int bindPort = SinglePortBindResolver.resolveBindPort(cubeConfiguration, "ping"); assertThat(bindPort, is(8080)); }
/** * Method that tries to resolve a bind port for a given exposed port. * * @param cubeDockerConfiguration * where all docker configuration is exposed * @param exposedPort * used to find the binding port * @param excludedContainers * where binding port search is ignored * * @return binding port */ public static int resolveBindPort(CubeDockerConfiguration cubeDockerConfiguration, int exposedPort, String... excludedContainers) { final PortBindInfo portBinding = resolvePortBindPort(cubeDockerConfiguration, exposedPort, excludedContainers); if (portBinding == null) { return exposedPort; } return portBinding.getBindPort(); }
@Test public void should_resolve_single_bind_port() { String content = "tomcat:\n" + " image: tutum/tomcat:8.0\n" + " portBindings: [8080/tcp]\n" + " links:\n" + " - ping\n" + "ping:\n" + " image: jonmorehouse/ping-pong\n" + " exposedPorts: [8089/tcp]\n" + "storage:\n" + " image: tutum/mongodb"; Map<String, String> parameters = new HashMap<String, String>(); parameters.put("dockerContainers", content); parameters.put("definitionFormat", DefinitionFormat.CUBE.name()); CubeDockerConfiguration cubeConfiguration = CubeDockerConfiguration.fromMap(parameters, null); final int bindPort = SinglePortBindResolver.resolveBindPort(cubeConfiguration); assertThat(bindPort, is(8080)); }
@Test public void should_resolve_two_bind_port_from_different_containers_with_exposed_port() { String content = "tomcat:\n" + " image: tutum/tomcat:8.0\n" + " portBindings: [8080/tcp]\n" + " links:\n" + " - ping\n" + "ping:\n" + " image: jonmorehouse/ping-pong\n" + " portBindings: [8081/tcp]\n" + "storage:\n" + " image: tutum/mongodb"; Map<String, String> parameters = new HashMap<String, String>(); parameters.put("dockerContainers", content); parameters.put("definitionFormat", DefinitionFormat.CUBE.name()); CubeDockerConfiguration cubeConfiguration = CubeDockerConfiguration.fromMap(parameters, null); final int bindPort = SinglePortBindResolver.resolveBindPort(cubeConfiguration, 8080); assertThat(bindPort, is(8080)); }
void configureRequestSpecBuilder(@Observes RestAssuredConfiguration restAssuredConfiguration, CubeDockerConfiguration cubeDockerConfiguration, RequestSpecBuilder requestSpecBuilder) { if (restAssuredConfiguration.isBaseUriSet()) { requestSpecBuilder.setBaseUri(restAssuredConfiguration.getBaseUri()); } else { requestSpecBuilder.setBaseUri( restAssuredConfiguration.getSchema() + "://" + cubeDockerConfiguration.getDockerServerIp()); } if (restAssuredConfiguration.isPortSet()) { requestSpecBuilder.setPort(SinglePortBindResolver.resolveBindPort(cubeDockerConfiguration, restAssuredConfiguration.getPort(), restAssuredConfiguration.getExclusionContainers())); } else { requestSpecBuilder.setPort(SinglePortBindResolver.resolveBindPort(cubeDockerConfiguration, restAssuredConfiguration.getExclusionContainers())); } if (restAssuredConfiguration.isBasePathSet()) { requestSpecBuilder.setBasePath(restAssuredConfiguration.getBasePath()); } if (restAssuredConfiguration.isAuthenticationSchemeSet()) { requestSpecBuilder.setAuth(restAssuredConfiguration.getAuthenticationScheme()); } if (restAssuredConfiguration.isUseRelaxedHttpsValidationSet()) { if (restAssuredConfiguration.isUseRelaxedHttpsValidationInAllProtocols()) { requestSpecBuilder.setRelaxedHTTPSValidation(); } else { requestSpecBuilder.setRelaxedHTTPSValidation(restAssuredConfiguration.getUseRelaxedHttpsValidation()); } } }