-
Notifications
You must be signed in to change notification settings - Fork 4
How to use Shepherd SDK
devsda edited this page Apr 29, 2019
·
2 revisions
Currently, Shepherd provides SDK in Java. Shepherd Java SDK
In this wiki, I will explain how to use SDK for different use-cases.
ShepherdResponse shepherdResponse = shepherdClient.registerClient("dominos");
If no such client exists,
{
"resource_name":"REGISTER_CLIENT",
"response_time":"2019-04-29 19:04:37",
"server_name":"Hiteshs-MacBook-Pro.local",
"message":null,
"error_message":"Username dominos already exists.",
"response_data":null
}
If given client already exists,
{
"resource_name":"REGISTER_CLIENT",
"response_time":"2019-04-29 19:04:37",
"server_name":"Hiteshs-MacBook-Pro.local",
"message":null,
"error_message":"Username dominos already exists.",
"response_data":null
}
String graphFilePath = "./src/test/resources/sample_workflow.xml";
String endpointFilePath = "./src/test/resources/workflow_configuration.json";
ShepherdResponse registerEndpointResponse = shepherdClient.registerEndpoint("dominos", "logistics_dev", graphFilePath, endpointFilePath);
If endpoint doesn't exists :
{
"resource_name":"REGISTER_ENDPOINT",
"response_time":"2019-04-29 19:14:31",
"server_name":"Hiteshs-MacBook-Pro.local",
"message":"Registered endpoint successfully",
"error_message":null,
"response_data":{
"endpointId":11
}
}
If endpoint already exists :
"resource_name":"REGISTER_ENDPOINT",
"response_time":"2019-04-29 19:13:33",
"server_name":"Hiteshs-MacBook-Pro.local",
"message":null,
"error_message":"Endpoint with name : logistics_dev already exists for client dominos",
"response_data":null
}
String graphFilePath = "./src/test/resources/sample_workflow.xml";
ShepherdResponse registerEndpointResponse = shepherdClient.updateWorkflowDetails("dominos", "logistics_dev", graphFilePath);
{
"resource_name":"UPDATE_ENDPOINT",
"response_time":"2019-04-29 19:22:30",
"server_name":"Hiteshs-MacBook-Pro.local",
"message":"Update workflow details of endpoint successfully",
"error_message":null,
"response_data":null
}
String endpointFilePath = "./src/test/resources/workflow_configuration.json";
ShepherdResponse registerEndpointResponse = shepherdClient.updateEndpointDetails("dominos", "logistics_dev", endpointFilePath);
{
"resource_name":"UPDATE_ENDPOINT",
"response_time":"2019-04-29 19:23:10",
"server_name":"Hiteshs-MacBook-Pro.local",
"message":"Update endpoint details of endpoint successfully",
"error_message":null,
"response_data":null
}
String clientName = "dominos";
String endpointName = "logistics_dev";
Map<String, Object> initialPayload = new HashMap<String, Object>()
{{
put("size", "medium");
put("base", "cheese_crust");
put("name", "farm_hosue");
}};
ShepherdResponse executeEndpointResponse = shepherdClient.executeEndpoint(clientName, endpointName, initialPayload);
{
"resource_name":"EXECUTE_WORKFLOW",
"response_time":"2019-04-29 19:26:21",
"server_name":"Hiteshs-MacBook-Pro.local",
"message":"Workflow triggered successfully.",
"error_message":null,
"response_data":{
"execution_id":47
}
}