[ 
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)

Reply via email to