How to Supply Arguments to ProgramClient

84 views
Skip to first unread message

shyam joshi

unread,
Jul 29, 2016, 10:00:19 AM7/29/16
to CDAP User
Hey Guys,

I am trying to trigger a CDAP workflow using ProgramClient API. Also, I want to pass runtime arguments before I trigger a program using programClient. Could you tell me how to achive this.

This is what I am doing -
ClientConfig clientConfig = ClientConfig.builder()
.setConnectionConfig(new ConnectionConfig("shyam.domain",
port, false))
.build();
ProgramClient pc =
new ProgramClient(clientConfig);

Map<String,String> arguments= new HashMap<String, String>();
arguments.put(AppConstants.COLLECTION_NAME,"testCollection");
arguments.put(AppConstants.ENVIRONMENT,"SANDBOX");
arguments.put(AppConstants.NOVUS_ENVIRONMENT,"QED");
arguments.put(AppConstants.DISTRIBUTION_ID,"someId");
arguments.put(AppConstants.MAPPING_FILE_PATH,"mappingFileSample.csv");

pc.setRuntimeArgs(Id.Program.from("namespace", "applicationName", ProgramType.WORKFLOW, "workflowName"),arguments);
pc.start(Id.Program.from("namespace", "applicationName", ProgramType.WORKFLOW, "workflowName"));

Exception Information -
2016-07-29 13:58:44,665 - INFO [WorkflowDriver:c.c.c.i.a.r.w.WorkflowProgramController@98] - Workflow service failed from RUNNING. Un-registering service workflow.ecphumloga.ecpNovusBulkIngest.MainWorkflow.7c9e7901-5594-11e6-9cc4-f8bc123f63b0. java.lang.NoSuchMethodError: com.google.common.io.ByteStreams.newInputStreamSupplier([B)Lcom/google/common/io/InputSupplier; at co.cask.common.http.HttpRequest$Builder.withBody(HttpRequest.java:166) ~[co.cask.common.common-http-0.7.1.jar:na] at co.cask.common.http.HttpRequest$Builder.withBody(HttpRequest.java:161) ~[co.cask.common.common-http-0.7.1.jar:na] at co.cask.cdap.client.ProgramClient.setRuntimeArgs(ProgramClient.java:630) ~[na:na] at com.trgr.ecp.platform.workflow.actions.MainAction.run(MainAction.java:45) ~[na:na] at co.cask.cdap.internal.app.runtime.workflow.CustomActionExecutor.runInTransaction(CustomActionExecutor.java:107) ~[co.cask.cdap.cdap-app-fabric-3.4.1.jar:na] at co.cask.cdap.internal.app.runtime.workflow.CustomActionExecutor.execute(CustomActionExecutor.java:82) ~[co.cask.cdap.cdap-app-fabric-3.4.1.jar:na] at co.cask.cdap.internal.app.runtime.workflow.WorkflowDriver.executeCustomAction(WorkflowDriver.java:413) ~[co.cask.cdap.cdap-app-fabric-3.4.1.jar:na] at co.cask.cdap.internal.app.runtime.workflow.WorkflowDriver.executeNode(WorkflowDriver.java:436) ~[co.cask.cdap.cdap-app-fabric-3.4.1.jar:na] at co.cask.cdap.internal.app.runtime.workflow.WorkflowDriver.executeAll(WorkflowDriver.java:533) ~[co.cask.cdap.cdap-app-fabric-3.4.1.jar:na] at co.cask.cdap.internal.app.runtime.workflow.WorkflowDriver.run(WorkflowDriver.java:521) ~[co.cask.cdap.cdap-app-fabric-3.4.1.jar:na] at com.google.common.util.concurrent.AbstractExecutionThreadService$1$1.run(AbstractExecutionThreadService.java:52) ~[com.google.guava.guava-13.0.1.jar:na] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_60]
2016-07-29 13:58:44,674 - INFO [WorkflowDriver:c.c.c.i.a.r.w.WorkflowProgramController@100] - Service workflow.ecphumloga.ecpNovusBulkIngest.MainWorkflow.7c9e7901-5594-11e6-9cc4-f8bc123f63b0 unregistered.
2016-07-29 13:58:44,679 - ERROR [pcontroller-program:ecphumloga.ecpNovusBulkIngest.workflow.MainWorkflow-7c9e7901-5594-11e6-9cc4-f8bc123f63b0:c.c.c.i.a.r.d.AbstractProgramTwillRunnable@337] - Program runner error out. java.lang.NoSuchMethodError: com.google.common.io.ByteStreams.newInputStreamSupplier([B)Lcom/google/common/io/InputSupplier; at co.cask.common.http.HttpRequest$Builder.withBody(HttpRequest.java:166) ~[co.cask.common.common-http-0.7.1.jar:na] at co.cask.common.http.HttpRequest$Builder.withBody(HttpRequest.java:161) ~[co.cask.common.common-http-0.7.1.jar:na] at co.cask.cdap.client.ProgramClient.setRuntimeArgs(ProgramClient.java:630) ~[na:na] at com.trgr.ecp.platform.workflow.actions.MainAction.run(MainAction.java:45) ~[na:na] at co.cask.cdap.internal.app.runtime.workflow.CustomActionExecutor.runInTransaction(CustomActionExecutor.java:107) ~[co.cask.cdap.cdap-app-fabric-3.4.1.jar:na] at co.cask.cdap.internal.app.runtime.workflow.CustomActionExecutor.execute(CustomActionExecutor.java:82) ~[co.cask.cdap.cdap-app-fabric-3.4.1.jar:na] at co.cask.cdap.internal.app.runtime.workflow.WorkflowDriver.executeCustomAction(WorkflowDriver.java:413) ~[co.cask.cdap.cdap-app-fabric-3.4.1.jar:na] at co.cask.cdap.internal.app.runtime.workflow.WorkflowDriver.executeNode(WorkflowDriver.java:436) ~[co.cask.cdap.cdap-app-fabric-3.4.1.jar:na] at co.cask.cdap.internal.app.runtime.workflow.WorkflowDriver.executeAll(WorkflowDriver.java:533) ~[co.cask.cdap.cdap-app-fabric-3.4.1.jar:na] at co.cask.cdap.internal.app.runtime.workflow.WorkflowDriver.run(WorkflowDriver.java:521) ~[co.cask.cdap.cdap-app-fabric-3.4.1.jar:na] at com.google.common.util.concurrent.AbstractExecutionThreadService$1$1.run(AbstractExecutionThreadService.java:52) ~[com.google.guava.guava-13.0.1.jar:na] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_60]

Thanks,
Shyam

vin...@cask.co

unread,
Jul 29, 2016, 6:18:26 PM7/29/16
to CDAP User
Hi Shyam,

We suspect that the error is because of guava version incompatibility. CDAP uses Guava 13.0.1. Could you please provide guava version you are using?

Thanks,
Vinisha

ali

unread,
Aug 8, 2016, 2:38:28 PM8/8/16
to CDAP User
Hey Shyam.

I saw that you marked this as resolved.
Can you also describe what the issue was, if you confirmed it? It may be helpful to others as they reference this thread.

Thanks,

Ali Anwar
Reply all
Reply to author
Forward
0 new messages