[
https://issues.apache.org/jira/browse/BEAM-5288?focusedWorklogId=143432&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-143432
]
ASF GitHub Bot logged work on BEAM-5288:
----------------------------------------
Author: ASF GitHub Bot
Created on: 12/Sep/18 09:41
Start Date: 12/Sep/18 09:41
Worklog Time Spent: 10m
Work Description: mxm commented on a change in pull request #6373:
[BEAM-5288] Enhance Environment proto to use support different types of
environments
URL: https://github.com/apache/beam/pull/6373#discussion_r216961074
##########
File path:
runners/java-fn-execution/src/main/java/org/apache/beam/runners/fnexecution/environment/ProcessEnvironmentFactory.java
##########
@@ -104,29 +105,37 @@ private ProcessEnvironmentFactory(
/** Creates a new, active {@link RemoteEnvironment} backed by a forked
process. */
@Override
public RemoteEnvironment createEnvironment(Environment environment) throws
Exception {
- String workerId = idGenerator.getId();
+ Preconditions.checkState(
+ environment
+ .getUrn()
+
.equals(RunnerApi.StandardEnvironments.Environments.EXTERNAL.toString()),
+ "The passed environment does not contain a ProcessPayload.");
+ final RunnerApi.ProcessPayload processPayload =
+ RunnerApi.ProcessPayload.parseFrom(environment.getPayload());
+ final String workerId = idGenerator.getId();
- // TODO The Environment Protobuf message needs to be changed for process
environment
- String executable = environment.getUrl();
+ String executable = processPayload.getCommand();
+ ImmutableList.Builder<String> args =
+ ImmutableList.<String>builder().addAll(processPayload.getArgsList());
Review comment:
This prepends the process arguments from the proto before the container
contract arguments. I would prefer if parameters were only passed via
environment variables, to separate the containers arguments from other
arguments.
We can still make adjustments later on, so this looks good for now. If the
args are empty, it doesn't effect the current behavior.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
Issue Time Tracking
-------------------
Worklog Id: (was: 143432)
Time Spent: 50m (was: 40m)
> Modify Environment to support non-dockerized SDK harness deployments
> ---------------------------------------------------------------------
>
> Key: BEAM-5288
> URL: https://issues.apache.org/jira/browse/BEAM-5288
> Project: Beam
> Issue Type: New Feature
> Components: beam-model
> Reporter: Maximilian Michels
> Assignee: Ankur Goenka
> Priority: Major
> Time Spent: 50m
> Remaining Estimate: 0h
>
> As of mailing discussions and BEAM-5187, it has become clear that we need to
> extend the Environment information. In addition to the Docker environment,
> the extended environment holds deployment options for 1) a process-based
> environment, 2) an externally managed environment.
> The proto definition, as of now, looks as follows:
> {noformat}
> message Environment {
> // (Required) The URN of the payload
> string urn = 1;
> // (Optional) The data specifying any parameters to the URN. If
> // the URN does not require any arguments, this may be omitted.
> bytes payload = 2;
> }
> message StandardEnvironments {
> enum Environments {
> DOCKER = 0 [(beam_urn) = "beam:env:docker:v1"];
> PROCESS = 1 [(beam_urn) = "beam:env:process:v1"];
> EXTERNAL = 2 [(beam_urn) = "beam:env:external:v1"];
> }
> }
> // The payload of a Docker image
> message DockerPayload {
> string container_image = 1; // implicitly linux_amd64.
> }
> message ProcessPayload {
> string os = 1; // "linux", "darwin", ..
> string arch = 2; // "amd64", ..
> string command = 3; // process to execute
> map<string, string> env = 4; // environment variables
> }
> {noformat}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)