public Container build() { if (id.endsWith("*")) { final UUID uuid = UUID.randomUUID(); StarOperator.adaptPortBindingToParallelRun(cubeContainer); StarOperator.adaptLinksToParallelRun(uuid, cubeContainer); StarOperator.adaptDependenciesToParallelRun(uuid, cubeContainer); String templateName = id.substring(0, id.lastIndexOf('*')); id = StarOperator.generateNewName(templateName, uuid); } return new Container(id, cubeContainer, connectionMode); }
case RANDOM: UUID uuid = UUID.randomUUID(); this.seleniumContainerName = StarOperator.generateNewName(SELENIUM_CONTAINER_BASE_NAME, uuid); this.vncContainerName = StarOperator.generateNewName(VNC_CONTAINER_BASE_NAME, uuid); this.conversionContainerName = StarOperator.generateNewName(CONVERSION_CONTAINER_BASE_NAME, uuid); this.seleniumBoundedPort = StarOperator.generateRandomPrivatePort(); break; case STATIC_PREFIX: this.vncContainerName = cubeDroneConfiguration.getContainerNamePrefix() + "_" + VNC_CONTAINER_BASE_NAME; this.conversionContainerName = cubeDroneConfiguration.getContainerNamePrefix() + "_" + CONVERSION_CONTAINER_BASE_NAME; this.seleniumBoundedPort = StarOperator.generateRandomPrivatePort(); break; case STATIC:
public static void adaptDependenciesToParallelRun(UUID uuid, CubeContainer cubeContainer) { final Collection<String> dependencies = cubeContainer.getDependsOn(); if (dependencies == null) { return; } ArrayList<String> adjustedDependsOn = new ArrayList<>(); for (String dependency : dependencies) { if (dependency.endsWith("*")) { String dependencyTemplate = dependency.substring(0,dependency.lastIndexOf('*')); adjustedDependsOn.add(generateNewName(dependencyTemplate, uuid)); }else { adjustedDependsOn.add(dependency); } } cubeContainer.setDependsOn(adjustedDependsOn); }
public static void adaptPortBindingToParallelRun(CubeContainer cubeContainer) { final Collection<PortBinding> portBindings = cubeContainer.getPortBindings(); if (portBindings == null) { return; } for (PortBinding portBinding : portBindings) { final int randomPrivatePort = generateRandomPrivatePort(); portBinding.setBound(randomPrivatePort); } }
case RANDOM: UUID uuid = UUID.randomUUID(); this.seleniumContainerName = StarOperator.generateNewName(SELENIUM_CONTAINER_BASE_NAME, uuid); this.vncContainerName = StarOperator.generateNewName(VNC_CONTAINER_BASE_NAME, uuid); this.conversionContainerName = StarOperator.generateNewName(CONVERSION_CONTAINER_BASE_NAME, uuid); this.seleniumBoundedPort = StarOperator.generateRandomPrivatePort(); break; case STATIC_PREFIX: this.vncContainerName = cubeDroneConfiguration.getContainerNamePrefix() + "_" + VNC_CONTAINER_BASE_NAME; this.conversionContainerName = cubeDroneConfiguration.getContainerNamePrefix() + "_" + CONVERSION_CONTAINER_BASE_NAME; this.seleniumBoundedPort = StarOperator.generateRandomPrivatePort(); break; case STATIC:
public static void adaptDependenciesToParallelRun(UUID uuid, CubeContainer cubeContainer) { final Collection<String> dependencies = cubeContainer.getDependsOn(); if (dependencies == null) { return; } ArrayList<String> adjustedDependsOn = new ArrayList<>(); for (String dependency : dependencies) { if (dependency.endsWith("*")) { String dependencyTemplate = dependency.substring(0,dependency.lastIndexOf('*')); adjustedDependsOn.add(generateNewName(dependencyTemplate, uuid)); }else { adjustedDependsOn.add(dependency); } } cubeContainer.setDependsOn(adjustedDependsOn); }
public static void adaptPortBindingToParallelRun(CubeContainer cubeContainer) { final Collection<PortBinding> portBindings = cubeContainer.getPortBindings(); if (portBindings == null) { return; } for (PortBinding portBinding : portBindings) { final int randomPrivatePort = generateRandomPrivatePort(); portBinding.setBound(randomPrivatePort); } }
public Container build() { if (id.endsWith("*")) { final UUID uuid = UUID.randomUUID(); StarOperator.adaptPortBindingToParallelRun(cubeContainer); StarOperator.adaptLinksToParallelRun(uuid, cubeContainer); StarOperator.adaptDependenciesToParallelRun(uuid, cubeContainer); String templateName = id.substring(0, id.lastIndexOf('*')); id = StarOperator.generateNewName(templateName, uuid); } return new Container(id, cubeContainer, connectionMode); }
public static void adaptLinksToParallelRun(UUID uuid, CubeContainer cubeContainer) { final Collection<Link> links = cubeContainer.getLinks(); if (links == null) { return; } for (Link link : links) { if (link.getName().endsWith("*")) { String linkTemplate = link.getName().substring(0, link.getName().lastIndexOf('*')); link.setName(generateNewName(linkTemplate, uuid)); String environmentVariable = linkTemplate.toUpperCase() + "_HOSTNAME=" + link.getName(); if (link.isAliasSet()) { link.setAlias(generateNewName(link.getAlias(), uuid)); environmentVariable = linkTemplate.toUpperCase() + "_HOSTNAME=" + link.getAlias(); } final Collection<String> env = cubeContainer.getEnv(); if (env != null) { // to avoid duplicates if (env.contains(environmentVariable)) { env.remove(environmentVariable); } } else { cubeContainer.setEnv(new ArrayList<>()); } cubeContainer.getEnv().add(environmentVariable); } } }
if (networkId.endsWith("*")) { String templateName = networkId.substring(0, networkId.lastIndexOf("*")); String newId = StarOperator.generateNewName(templateName, uuid); resolvedNetworks.put(newId, network.getValue()); networkResolutions.put(networkId, newId); CubeContainer cubeContainer = container.getValue(); StarOperator.adaptNetworksToParalledRun(networkResolutions, cubeContainer); if (containerId.endsWith("*")) { String templateName = containerId.substring(0, containerId.lastIndexOf('*')); StarOperator.adaptPortBindingToParallelRun(cubeContainer); StarOperator.adaptLinksToParallelRun(uuid, cubeContainer); StarOperator.adaptDependenciesToParallelRun(uuid, cubeContainer); String newId = StarOperator.generateNewName(templateName, uuid); resolvedContainers.put(newId, cubeContainer); containerMetadata.put(templateName, newId);
public static void adaptLinksToParallelRun(UUID uuid, CubeContainer cubeContainer) { final Collection<Link> links = cubeContainer.getLinks(); if (links == null) { return; } for (Link link : links) { if (link.getName().endsWith("*")) { String linkTemplate = link.getName().substring(0, link.getName().lastIndexOf('*')); link.setName(generateNewName(linkTemplate, uuid)); String environmentVariable = linkTemplate.toUpperCase() + "_HOSTNAME=" + link.getName(); if (link.isAliasSet()) { link.setAlias(generateNewName(link.getAlias(), uuid)); environmentVariable = linkTemplate.toUpperCase() + "_HOSTNAME=" + link.getAlias(); } final Collection<String> env = cubeContainer.getEnv(); if (env != null) { // to avoid duplicates if (env.contains(environmentVariable)) { env.remove(environmentVariable); } } else { cubeContainer.setEnv(new ArrayList<>()); } cubeContainer.getEnv().add(environmentVariable); } } }
if (networkId.endsWith("*")) { String templateName = networkId.substring(0, networkId.lastIndexOf("*")); String newId = StarOperator.generateNewName(templateName, uuid); resolvedNetworks.put(newId, network.getValue()); networkResolutions.put(networkId, newId); CubeContainer cubeContainer = container.getValue(); StarOperator.adaptNetworksToParalledRun(networkResolutions, cubeContainer); if (containerId.endsWith("*")) { String templateName = containerId.substring(0, containerId.lastIndexOf('*')); StarOperator.adaptPortBindingToParallelRun(cubeContainer); StarOperator.adaptLinksToParallelRun(uuid, cubeContainer); StarOperator.adaptDependenciesToParallelRun(uuid, cubeContainer); String newId = StarOperator.generateNewName(templateName, uuid); resolvedContainers.put(newId, cubeContainer); containerMetadata.put(templateName, newId);