taskExecutorLaunchContext.getEnvironment() .put(ENV_FLINK_CONTAINER_ID, containerId); taskExecutorLaunchContext.getEnvironment() .put(ENV_FLINK_NODE_ID, host); return taskExecutorLaunchContext;
taskManagerLaunchContext.getEnvironment() .put(ENV_FLINK_CONTAINER_ID, resourceID.getResourceIdString()); nodeManagerClient.startContainer(container, taskManagerLaunchContext);
Map<String, String> env = new HashMap<>(ctx.getEnvironment());
@Override public Map<String, String> getEnvironment() { return launchContext.getEnvironment(); }
@Override public Map<String, String> getEnvironment() { return launchContext.getEnvironment(); }
@Override public Map<String, String> getEnvironment() { return launchContext.getEnvironment(); }
/** * This function only returns whether a privileged container was requested, * not whether the container was or will be launched as privileged. * @param container * @return */ private boolean isContainerRequestedAsPrivileged( Container container) { String runPrivilegedContainerEnvVar = container.getLaunchContext() .getEnvironment().get(ENV_DOCKER_CONTAINER_RUN_PRIVILEGED_CONTAINER); return Boolean.parseBoolean(runPrivilegedContainerEnvVar); }
private Map<String, String> expandAllEnvironmentVars( ContainerLaunchContext launchContext, Path containerLogDir) { Map<String, String> environment = launchContext.getEnvironment(); for (Entry<String, String> entry : environment.entrySet()) { String value = entry.getValue(); value = expandEnvironment(value, containerLogDir); entry.setValue(value); } return environment; }
public String getRequestedIPID(Container container) { String r= container.getLaunchContext().getEnvironment(). get(REQUEST_FPGA_IP_ID_KEY); return r == null ? "" : r; }
private LinuxContainerRuntime pickContainerRuntime(Container container) { Map<String, String> env = container.getLaunchContext().getEnvironment(); LinuxContainerRuntime runtime; if (DockerLinuxContainerRuntime.isDockerContainerRequested(env)){ runtime = dockerLinuxContainerRuntime; } else { runtime = defaultLinuxContainerRuntime; } if (LOG.isInfoEnabled()) { LOG.info("Using container runtime: " + runtime.getClass() .getSimpleName()); } return runtime; }
private FlowContext getFlowContext(ContainerLaunchContext launchContext, ApplicationId applicationID) { FlowContext flowContext = null; if (YarnConfiguration.timelineServiceV2Enabled(getConfig())) { String flowName = launchContext.getEnvironment() .get(TimelineUtils.FLOW_NAME_TAG_PREFIX); String flowVersion = launchContext.getEnvironment() .get(TimelineUtils.FLOW_VERSION_TAG_PREFIX); String flowRunIdStr = launchContext.getEnvironment() .get(TimelineUtils.FLOW_RUN_ID_TAG_PREFIX); long flowRunId = 0L; if (flowRunIdStr != null && !flowRunIdStr.isEmpty()) { flowRunId = Long.parseLong(flowRunIdStr); } flowContext = new FlowContext(flowName, flowVersion, flowRunId); if (LOG.isDebugEnabled()) { LOG.debug( "Flow context: " + flowContext + " created for an application " + applicationID); } } return flowContext; }
@Override public ContainerLaunchContext preLaunch(Container container, ContainerLaunchContext context) { if (appmasterTrackService != null && StringUtils.hasText(appmasterTrackService.getTrackUrl())) { String address = appmasterTrackService.getTrackUrl(); log.debug("Adding " + YarnSystemConstants.AMSERVICE_TRACKURL + "=" + address + " to container launch context"); Map<String, String> environment = new HashMap<String, String>(context.getEnvironment()); environment.put(YarnSystemConstants.AMSERVICE_TRACKURL, address); context.setEnvironment(environment); return context; } return context; }
private LinuxContainerRuntime pickContainerRuntime(Container container) throws ContainerExecutionException { return pickContainerRuntime(container.getLaunchContext().getEnvironment()); }
@Override public ContainerLaunchContext preLaunch(Container container, ContainerLaunchContext context) { ContainerCluster cluster = findContainerClusterByContainer(container); if (cluster != null) { Map<String, LocalResource> resources = buildLocalizedResources(cluster); context.setLocalResources(resources); Map<String, String> environment = new HashMap<String, String>(context.getEnvironment()); environment.putAll(getEnvironment(clusterIdToRef.get(cluster.getId()))); context.setEnvironment(environment); } return context; } }
@Override public void handle(ContainerLauncherEvent event) { if (event.getType() == EventType.CONTAINER_REMOTE_LAUNCH) { ContainerRemoteLaunchEvent launchEvent = (ContainerRemoteLaunchEvent) event; ContainerLaunchContext launchContext = launchEvent.getContainerLaunchContext(); String cmdString = launchContext.getCommands().toString(); LOG.info("launchContext " + cmdString); launchCmdList.add(cmdString); cmdEnvironment = launchContext.getEnvironment(); } super.handle(event); } };
@Override public void transition(ContainerImpl container, ContainerEvent event) { ContainerExitEvent exitEvent = (ContainerExitEvent) event; if (container.hasDefaultExitCode()) { container.exitCode = exitEvent.getExitCode(); } if (exitEvent.getDiagnosticInfo() != null) { container.addDiagnostics(exitEvent.getDiagnosticInfo() + "\n"); } if (DockerLinuxContainerRuntime.isDockerContainerRequested( container.daemonConf, container.getLaunchContext().getEnvironment())) { removeDockerContainer(container); } // The process/process-grp is killed. Decrement reference counts and // cleanup resources container.cleanup(); } }
@Test public void testCLCPBImplNullEnv() throws IOException { Map<String, LocalResource> localResources = Collections.emptyMap(); Map<String, String> environment = new HashMap<String, String>(); List<String> commands = Collections.emptyList(); Map<String, ByteBuffer> serviceData = Collections.emptyMap(); Credentials containerCreds = new Credentials(); DataOutputBuffer dob = new DataOutputBuffer(); containerCreds.writeTokenStorageToStream(dob); ByteBuffer containerTokens = ByteBuffer.wrap(dob.getData(), 0, dob.getLength()); Map<ApplicationAccessType, String> acls = Collections.emptyMap(); environment.put("testCLCPBImplNullEnv", null); ContainerLaunchContext clc = ContainerLaunchContext.newInstance(localResources, environment, commands, serviceData, containerTokens, acls); ContainerLaunchContext clcProto = new ContainerLaunchContextPBImpl( ((ContainerLaunchContextPBImpl) clc).getProto()); Assert.assertEquals("", clcProto.getEnvironment().get("testCLCPBImplNullEnv")); }
@Override public void transition(ContainerImpl container, ContainerEvent event) { container.setIsReInitializing(false); // Set exit code to 0 on success container.exitCode = 0; // TODO: Add containerWorkDir to the deletion service. if (DockerLinuxContainerRuntime.isDockerContainerRequested( container.daemonConf, container.getLaunchContext().getEnvironment())) { removeDockerContainer(container); } if (clCleanupRequired) { container.dispatcher.getEventHandler().handle( new ContainersLauncherEvent(container, ContainersLauncherEventType.CLEANUP_CONTAINER)); } container.cleanup(); } }
@Override public void signalContainer(ContainerRuntimeContext ctx) throws ContainerExecutionException { Container container = ctx.getContainer(); PrivilegedOperation signalOp = new PrivilegedOperation( PrivilegedOperation.OperationType.SIGNAL_CONTAINER); signalOp.appendArgs(ctx.getExecutionAttribute(RUN_AS_USER), ctx.getExecutionAttribute(USER), Integer.toString(PrivilegedOperation .RunAsUserCommand.SIGNAL_CONTAINER.getValue()), ctx.getExecutionAttribute(PID), Integer.toString(ctx.getExecutionAttribute(SIGNAL).getValue())); try { PrivilegedOperationExecutor executor = PrivilegedOperationExecutor .getInstance(conf); executor.executePrivilegedOperation(null, signalOp, null, container.getLaunchContext().getEnvironment(), false, true); } catch (PrivilegedOperationException e) { LOG.warn("Signal container failed. Exception: ", e); throw new ContainerExecutionException("Signal container failed", e .getExitCode(), e.getOutput(), e.getErrorOutput()); } }
@Override public void transition(ContainerImpl container, ContainerEvent event) { container.setIsReInitializing(false); ContainerExitEvent exitEvent = (ContainerExitEvent) event; container.exitCode = exitEvent.getExitCode(); if (exitEvent.getDiagnosticInfo() != null) { container.addDiagnostics(exitEvent.getDiagnosticInfo() + "\n"); } // TODO: Add containerWorkDir to the deletion service. // TODO: Add containerOuputDir to the deletion service. if (DockerLinuxContainerRuntime.isDockerContainerRequested( container.daemonConf, container.getLaunchContext().getEnvironment())) { removeDockerContainer(container); } if (clCleanupRequired) { container.dispatcher.getEventHandler().handle( new ContainersLauncherEvent(container, ContainersLauncherEventType.CLEANUP_CONTAINER)); } container.cleanup(); } }