private boolean isNotInitialized() { return cubeRegistry.getCube(containerName) == null; }
private Cube<?> resolveMainCube(CubeRegistry cubeRegistry) { Cube<?> cube = null; if (this.configuration.isContainerlessDockerSet()) { String containerlessDocker = this.configuration.getContainerlessDocker(); cube = cubeRegistry.getCube(containerlessDocker); if (cube == null) { // Is there a way to ignore it? Or we should throw an exception? throw new IllegalArgumentException("No Containerless Docker container configured in extension with id " + containerlessDocker); } } else { List<Cube<?>> cubes = cubeRegistry.getCubes(); if (cubes.size() == 1) { cube = cubes.get(0); } else { throw new IllegalArgumentException( "More than one container eligible for being the main instance. Use containerlessDocker property to set one."); } } return cube; }
@Test public void shouldAddAndRemoveCube() throws Exception { // given: String cubeId = "tomcat"; Cube cube = createCubeMock(cubeId); // when: cubeRegistry.addCube(cube); // then: Cube<?> resolvedCube = cubeRegistry.getCube(cubeId); Assert.assertSame(cube, resolvedCube); // when: cubeRegistry.removeCube(cubeId); // then: Cube<?> resolvedCubeAfterRemove = cubeRegistry.getCube(cubeId); Assert.assertNull(resolvedCubeAfterRemove); }
@Test public void shouldGetCubeByStarredCubeId() throws Exception { // given: String cubeId = "tomcat_46fd2cc1-0084-42a8-9ffd-35f305a08dcc"; Cube cube = createCubeMock(cubeId); cubeRegistry.addCube(cube); // when: Cube<?> resolvedCube = cubeRegistry.getCube("tomcat*"); // then: Assert.assertSame(cube, resolvedCube); } }
public void register(@Observes DockerClientExecutor executor, CubeDockerConfiguration configuration, Injector injector, CubeRegistry registry) { //TODO, add key here generation here DockerCompositions containerConfigurations = configuration.getDockerContainersContent(); for (Map.Entry<String, CubeContainer> containerConfiguration : containerConfigurations.getContainers() .entrySet()) { registry.addCube( injector.inject( new DockerCube( containerConfiguration.getKey(), containerConfiguration.getValue(), executor))); } } }
@Test public void shouldGetAllCubes() throws Exception { // given: List<String> cubeIds = Arrays.asList("tomcat1", "tomcat2", "tomcat_46fd2cc1-0084-42a8-9ffd-35f305a08dcc"); for (String cubeId : cubeIds) { Cube cube = createCubeMock(cubeId); cubeRegistry.addCube(cube); } // when: List<Cube<?>> cubes = cubeRegistry.getCubes(); // then: Assert.assertEquals(cubeIds.size(), cubes.size()); }
public void attachShutDownHookForceStopDockerContainers(@Observes(precedence = 200) BeforeSuite event, final CubeRegistry cubeRegistry) { Runtime.getRuntime().addShutdownHook(new Thread(() -> { final List<Cube<?>> cubes = cubeRegistry.getCubes(); for (Cube cube : cubes) { try { cube.stop(); } catch (final Throwable e) { Logger.getLogger(ForceStopDockerContainersShutdownHook.class.getName()).log(Level.WARNING, "Failed to stop container: " + cube.getId(), e); } finally { try { cube.destroy(); } catch (final Throwable ignore) { //no-op } } } })); } }
private void stopAndDestroyCubes(ConnectionMode connectionMode, TestClass testClass) { final CubeController cubeController = cubeControllerInstance.get(); final List<Cube<?>> byMetadata = cubeRegistryInstance.get().getByMetadata(IsContainerObject.class); byMetadata.stream() .filter( cube -> { // To support fork tests final Class<?> testJavaClass = testClass.getJavaClass(); return testJavaClass.equals(cube.getMetadata(IsContainerObject.class).getTestClass()); }) .filter(cube -> cube.getMetadata(IsContainerObject.class).getConnectionMode() == connectionMode) .forEach(cube -> { logger.fine(String.format("Stopping Container Object %s", cube.getId())); cubeController.stop(cube.getId()); cubeController.destroy(cube.getId()); cubeRegistryInstance.get().removeCube(cube.getId()); }); }
public void generateReportEntries(@Observes AfterAutoStop event, CubeRegistry cubeRegistry) { if (cubeRegistry == null) { return; } final List<Cube<?>> reportableCubes = cubeRegistry.getByMetadata(CanReportMetrics.class); for (Cube cube : reportableCubes) { final CanReportMetrics metadata = (CanReportMetrics) cube.getMetadata(CanReportMetrics.class); final ReportInSectionBuilder sectionBuilder = metadata.report(); sectionBuilder.fire(reportEvent); } } }
@Test(expected = IllegalArgumentException.class) public void shouldNotBeAbleToRemoveCubeByStarredCubeId() throws Exception { // given: String cubeId = "tomcat*"; // when: cubeRegistry.removeCube(cubeId); }
public void register(@Observes DockerClientExecutor executor, CubeDockerConfiguration configuration, Injector injector, CubeRegistry registry) { //TODO, add key here generation here DockerCompositions containerConfigurations = configuration.getDockerContainersContent(); for (Map.Entry<String, CubeContainer> containerConfiguration : containerConfigurations.getContainers() .entrySet()) { registry.addCube( injector.inject( new DockerCube( containerConfiguration.getKey(), containerConfiguration.getValue(), executor))); } } }
public void attachShutDownHookForceStopDockerContainers(@Observes(precedence = 200) BeforeSuite event, final CubeRegistry cubeRegistry) { Runtime.getRuntime().addShutdownHook(new Thread(() -> { final List<Cube<?>> cubes = cubeRegistry.getCubes(); for (Cube cube : cubes) { try { cube.stop(); } catch (final Throwable e) { Logger.getLogger(ForceStopDockerContainersShutdownHook.class.getName()).log(Level.WARNING, "Failed to stop container: " + cube.getId(), e); } finally { try { cube.destroy(); } catch (final Throwable ignore) { //no-op } } } })); } }
private void stopAndDestroyCubes(ConnectionMode connectionMode, TestClass testClass) { final CubeController cubeController = cubeControllerInstance.get(); final List<Cube<?>> byMetadata = cubeRegistryInstance.get().getByMetadata(IsContainerObject.class); byMetadata.stream() .filter( cube -> { // To support fork tests final Class<?> testJavaClass = testClass.getJavaClass(); return testJavaClass.equals(cube.getMetadata(IsContainerObject.class).getTestClass()); }) .filter(cube -> cube.getMetadata(IsContainerObject.class).getConnectionMode() == connectionMode) .forEach(cube -> { logger.fine(String.format("Stopping Container Object %s", cube.getId())); cubeController.stop(cube.getId()); cubeController.destroy(cube.getId()); cubeRegistryInstance.get().removeCube(cube.getId()); }); }
public void generateReportEntries(@Observes AfterAutoStop event, CubeRegistry cubeRegistry) { if (cubeRegistry == null) { return; } final List<Cube<?>> reportableCubes = cubeRegistry.getByMetadata(CanReportMetrics.class); for (Cube cube : reportableCubes) { final CanReportMetrics metadata = (CanReportMetrics) cube.getMetadata(CanReportMetrics.class); final ReportInSectionBuilder sectionBuilder = metadata.report(); sectionBuilder.fire(reportEvent); } } }
private boolean isNotInitialized() { return cubeRegistry.getCube(containerName) == null; }
private void onCubeCreated(DockerCube cube) { injectorInstance.get().inject(cube); cubeRegistryInstance.get().addCube(cube); } }
private Cube<?> validateAndGet(CubeRegistry registry, String cubeId) { Cube<?> cube = registry.getCube(cubeId); if (cube == null) { throw new IllegalArgumentException("No cube with id " + cubeId + " found in registry"); } return cube; } }
private void onCubeCreated(DockerCube cube) { injectorInstance.get().inject(cube); cubeRegistryInstance.get().addCube(cube); } }
private Cube<?> validateAndGet(CubeRegistry registry, String cubeId) { Cube<?> cube = registry.getCube(cubeId); if (cube == null) { throw new IllegalArgumentException("No cube with id " + cubeId + " found in registry"); } return cube; } }