aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGanesh Chandrasekaran <ganesh.c@samsung.com>2018-07-17 11:02:17 +0900
committerGanesh Chandrasekaran <ganesh.c@samsung.com>2018-07-17 11:19:50 +0900
commitb08a1b8cf2440fac7fc3d7eb7580a58d977524a2 (patch)
treee87f032dfc96ff1ced3204d610a9453e961b1412
parentaeeba1d69f0498808252d5555b06b8fb6cae9269 (diff)
saltstack adaptor DGs addition
Issue-ID: CCSDK-368 Change-Id: I5f66693109c14eb64e4576caeeb84440a940fffa Signed-off-by: Ganesh Chandrasekaran <ganesh.c@samsung.com>
-rw-r--r--saltstack-adapter/saltstack-adapter-provider/src/main/java/org/onap/ccsdk/sli/adaptors/saltstack/impl/SaltstackAdapterImpl.java12
-rw-r--r--saltstack-adapter/saltstack-adapter-provider/src/test/java/org/onap/ccsdk/adapter/impl/TestSaltstackAdapterImpl.java44
-rw-r--r--saltstack-adapter/saltstack-directed-graphs-sample/reqExecCommand/APPC_saltstack-adapter-1.0-exe-nonSLS.json203
-rw-r--r--saltstack-adapter/saltstack-directed-graphs-sample/reqExecCommand/APPC_saltstack-adapter-1.0-exe-nonSLS.xml50
-rw-r--r--saltstack-adapter/saltstack-directed-graphs-sample/reqExecCommand/APPC_saltstack-adapter-1.0-exec-SLSFile.json350
-rw-r--r--saltstack-adapter/saltstack-directed-graphs-sample/reqExecCommand/APPC_saltstack-adapter-1.0-exec-SLSFile.xml112
-rw-r--r--saltstack-adapter/saltstack-directed-graphs-sample/reqExecCommand/APPC_saltstack-adapter-1.0-exec-multi-sls.json399
-rw-r--r--saltstack-adapter/saltstack-directed-graphs-sample/reqExecCommand/APPC_saltstack-adapter-1.0-exec-multi-sls.xml129
-rw-r--r--saltstack-adapter/saltstack-directed-graphs-sample/reqExecCommand/APPC_saltstack-adapter-1.0-exec-single-SLSComm.json203
-rw-r--r--saltstack-adapter/saltstack-directed-graphs-sample/reqExecCommand/APPC_saltstack-adapter-1.0-exec-single-SLSComm.xml51
-rw-r--r--saltstack-adapter/saltstack-directed-graphs-sample/reqExecSLS/APPC_saltstack-adapter-1.0 IDEAL.json1
-rw-r--r--saltstack-adapter/saltstack-directed-graphs-sample/reqExecSLS/APPC_saltstack-adapter-1.0 IDEAL.xml26
-rw-r--r--saltstack-adapter/saltstack-directed-graphs-sample/reqExecSLS/APPC_saltstack-adapter-1.0-exec-SLS-applyTo.json1
-rw-r--r--saltstack-adapter/saltstack-directed-graphs-sample/reqExecSLS/APPC_saltstack-adapter-1.0-exec-SLS-applyTo.xml57
-rw-r--r--saltstack-adapter/saltstack-directed-graphs-sample/reqExecSLSFile/APPC_saltstack-adapter-1.0-SLSFILE.json1
-rw-r--r--saltstack-adapter/saltstack-directed-graphs-sample/reqExecSLSFile/APPC_saltstack-adapter-1.0-SLSFILE.xml26
-rw-r--r--saltstack-adapter/saltstack-directed-graphs-sample/reqExecSLSFile/APPC_saltstack-adapter-1.0-exec-SLSFile-applyTo.json1
-rw-r--r--saltstack-adapter/saltstack-directed-graphs-sample/reqExecSLSFile/APPC_saltstack-adapter-1.0-exec-SLSFile-applyTo.xml57
18 files changed, 1707 insertions, 16 deletions
diff --git a/saltstack-adapter/saltstack-adapter-provider/src/main/java/org/onap/ccsdk/sli/adaptors/saltstack/impl/SaltstackAdapterImpl.java b/saltstack-adapter/saltstack-adapter-provider/src/main/java/org/onap/ccsdk/sli/adaptors/saltstack/impl/SaltstackAdapterImpl.java
index e4bceb5b..77874b0e 100644
--- a/saltstack-adapter/saltstack-adapter-provider/src/main/java/org/onap/ccsdk/sli/adaptors/saltstack/impl/SaltstackAdapterImpl.java
+++ b/saltstack-adapter/saltstack-adapter-provider/src/main/java/org/onap/ccsdk/sli/adaptors/saltstack/impl/SaltstackAdapterImpl.java
@@ -292,13 +292,8 @@ public class SaltstackAdapterImpl implements SaltstackAdapter {
return;
} else {
logger.info(String.format("Execution of request : successful."));
- if (slsExec) {
- ctx.setAttribute(RESULT_CODE_ATTRIBUTE_NAME, Integer.toString(testResult.getStatusCode()));
- ctx.setAttribute(MESSAGE_ATTRIBUTE_NAME, "success");
- } else {
- ctx.setAttribute(RESULT_CODE_ATTRIBUTE_NAME, Integer.toString(SaltstackResultCodes.CHECK_CTX_FOR_CMD_SUCCESS.getValue()));
- ctx.setAttribute(MESSAGE_ATTRIBUTE_NAME, "check context for execution status");
- }
+ ctx.setAttribute(RESULT_CODE_ATTRIBUTE_NAME, Integer.toString(testResult.getStatusCode()));
+ ctx.setAttribute(MESSAGE_ATTRIBUTE_NAME, "success");
ctx.setAttribute(ID_ATTRIBUTE_NAME, reqID);
}
}
@@ -318,7 +313,8 @@ public class SaltstackAdapterImpl implements SaltstackAdapter {
reqID = messageProcessor.reqId(params);
String commandToExecute = messageProcessor.reqCmd(params);
slsExec = messageProcessor.reqIsSLSExec(params);
- testResult = execCommand(ctx, params, commandToExecute, -1);
+ long execTimeout = messageProcessor.reqExecTimeout(params);
+ testResult = execCommand(ctx, params, commandToExecute, execTimeout);
testResult = messageProcessor.parseResponse(ctx, reqID, testResult, slsExec);
checkResponseStatus(testResult, ctx, reqID, slsExec);
} catch (IOException e) {
diff --git a/saltstack-adapter/saltstack-adapter-provider/src/test/java/org/onap/ccsdk/adapter/impl/TestSaltstackAdapterImpl.java b/saltstack-adapter/saltstack-adapter-provider/src/test/java/org/onap/ccsdk/adapter/impl/TestSaltstackAdapterImpl.java
index 48f5c20b..98137a8b 100644
--- a/saltstack-adapter/saltstack-adapter-provider/src/test/java/org/onap/ccsdk/adapter/impl/TestSaltstackAdapterImpl.java
+++ b/saltstack-adapter/saltstack-adapter-provider/src/test/java/org/onap/ccsdk/adapter/impl/TestSaltstackAdapterImpl.java
@@ -278,7 +278,7 @@ public class TestSaltstackAdapterImpl {
adapter.reqExecCommand(params, svcContext);
String status = svcContext.getAttribute("org.onap.appc.adapter.saltstack.result.code");
TestId = svcContext.getAttribute("org.onap.appc.adapter.saltstack.Id");
- assertEquals("250", status);
+ assertEquals("200", status);
assertEquals(TestId, "test1");
}
@@ -339,7 +339,7 @@ public class TestSaltstackAdapterImpl {
adapter.reqExecCommand(params, svcContext);
String status = svcContext.getAttribute("org.onap.appc.adapter.saltstack.result.code");
TestId = svcContext.getAttribute("org.onap.appc.adapter.saltstack.Id");
- assertEquals("250", status);
+ assertEquals("200", status);
assertEquals(TestId, "txt");
}
@@ -360,7 +360,7 @@ public class TestSaltstackAdapterImpl {
adapter.reqExecCommand(params, svcContext);
String status = svcContext.getAttribute("org.onap.appc.adapter.saltstack.result.code");
TestId = svcContext.getAttribute("org.onap.appc.adapter.saltstack.Id");
- assertEquals("250", status);
+ assertEquals("200", status);
assertEquals(TestId, "txt");
}
@@ -381,7 +381,7 @@ public class TestSaltstackAdapterImpl {
adapter.reqExecCommand(params, svcContext);
String status = svcContext.getAttribute("org.onap.appc.adapter.saltstack.result.code");
TestId = svcContext.getAttribute("org.onap.appc.adapter.saltstack.Id");
- assertEquals("250", status);
+ assertEquals("200", status);
}
@Test(expected = SvcLogicException.class)
@@ -415,7 +415,7 @@ public class TestSaltstackAdapterImpl {
adapter.reqExecCommand(params, svcContext);
String status = svcContext.getAttribute("org.onap.appc.adapter.saltstack.result.code");
TestId = svcContext.getAttribute("org.onap.appc.adapter.saltstack.Id");
- assertEquals("250", status);
+ assertEquals("200", status);
}
@Test
@@ -817,7 +817,7 @@ public class TestSaltstackAdapterImpl {
adapter.reqExecCommand(params, svcContext);
String status = svcContext.getAttribute("org.onap.appc.adapter.saltstack.result.code");
TestId = svcContext.getAttribute("org.onap.appc.adapter.saltstack.Id");
- assertEquals("250", status);
+ assertEquals("200", status);
assertEquals(TestId, "test1");
} catch (Exception e){
//if local ssh is not enabled
@@ -826,6 +826,34 @@ public class TestSaltstackAdapterImpl {
}
@Test
+ public void reqExecCommand_shouldSetSuccessRealSLSCommand() throws SvcLogicException,
+ IllegalStateException, IllegalArgumentException {
+
+ params.put("HostName", "<IP>");
+ params.put("Port", "2222");
+ params.put("User", "root");
+ params.put("Password", "vagrant");
+ params.put("Id", "test1");
+ params.put("cmd", "salt '*' test.ping --out=json --static");
+ params.put("slsExec", "false");
+ params.put("execTimeout", "12000");
+
+ adapter = new SaltstackAdapterImpl();
+ try {
+ adapter.reqExecCommand(params, svcContext);
+ String status = svcContext.getAttribute("org.onap.appc.adapter.saltstack.result.code");
+ TestId = svcContext.getAttribute("org.onap.appc.adapter.saltstack.Id");
+ assertEquals("200", status);
+ assertEquals(TestId, "test1");
+ TestId = svcContext.getAttribute("test1.minion1");
+ assertEquals(TestId, "true");
+ } catch (Exception e){
+ //if saltstack ssh IP is not enabled
+ return;
+ }
+ }
+
+ @Test
public void reqExecCommand_shouldSetSuccessRealCommand() throws SvcLogicException,
IllegalStateException, IllegalArgumentException {
@@ -855,7 +883,7 @@ public class TestSaltstackAdapterImpl {
public void reqExecCommand_shouldSetSuccessRealSSL() throws SvcLogicException,
IllegalStateException, IllegalArgumentException {
- params.put("HostName", "10.251.92.17");
+ params.put("HostName", "<IP>");
params.put("Port", "2222");
params.put("User", "root");
params.put("Password", "vagrant");
@@ -881,7 +909,7 @@ public class TestSaltstackAdapterImpl {
public void reqExecCommand_shouldSetSuccessSSLFile() throws SvcLogicException,
IllegalStateException, IllegalArgumentException {
- params.put("HostName", "10.251.92.17");
+ params.put("HostName", "<IP>");
params.put("Port", "2222");
params.put("User", "root");
params.put("Password", "vagrant");
diff --git a/saltstack-adapter/saltstack-directed-graphs-sample/reqExecCommand/APPC_saltstack-adapter-1.0-exe-nonSLS.json b/saltstack-adapter/saltstack-directed-graphs-sample/reqExecCommand/APPC_saltstack-adapter-1.0-exe-nonSLS.json
new file mode 100644
index 00000000..3a287e34
--- /dev/null
+++ b/saltstack-adapter/saltstack-directed-graphs-sample/reqExecCommand/APPC_saltstack-adapter-1.0-exe-nonSLS.json
@@ -0,0 +1,203 @@
+[
+ {
+ "id": "d86e7ee4.ee3f1",
+ "type": "method",
+ "name": "saltstack-adapter-1.0",
+ "xml": "<method rpc='saltstack-adapter-1.0-exe-nonSLS' mode='sync'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 492,
+ "y": 216,
+ "z": "5945fc3c.78efc4",
+ "wires": [
+ [
+ "38662e01.1d3c22"
+ ]
+ ]
+ },
+ {
+ "id": "9997883e.ec9028",
+ "type": "service-logic",
+ "name": "APPC 2.0.1",
+ "module": "APPC",
+ "version": "2.0.1",
+ "comments": "",
+ "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='APPC' version='2.0.1'>",
+ "outputs": 1,
+ "x": 283,
+ "y": 289,
+ "z": "5945fc3c.78efc4",
+ "wires": [
+ [
+ "d86e7ee4.ee3f1"
+ ]
+ ]
+ },
+ {
+ "id": "d40bf650.8338e8",
+ "type": "returnFailure",
+ "name": "return failure",
+ "xml": "<return status='failure'>\n<parameter name='error-code' value='200' />\n<parameter name='error-message' value='`$org.openecomp.appc.adapter.ansible.message`' />\n<parameter name='output.status.results' value='`$org.openecomp.appc.adapter.ansible.results`' />\n",
+ "comments": "",
+ "x": 1007,
+ "y": 373,
+ "z": "5945fc3c.78efc4",
+ "wires": []
+ },
+ {
+ "id": "38662e01.1d3c22",
+ "type": "execute",
+ "name": "execute",
+ "xml": "<execute plugin='org.openecomp.appc.adapter.ansible.AnsibleAdapter' method='reqExecCommand' >\n <parameter name='HostName' value='`$AgentUrl`'/>\n <parameter name='Port' value='`$Port`'/>\n <parameter name='User' value='`$User`'/>\n <parameter name='Password' value='`$Password`'/>\n <parameter name='Id' value='test1'/>\n <parameter name='cmd' value='cd /srv/salt; ls -l'/>\n <parameter name='slsExec' value='false'/>\n <parameter name='execTimeout' value='`$Timeout`'/>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 700,
+ "y": 212,
+ "z": "5945fc3c.78efc4",
+ "wires": [
+ [
+ "7b75e382.6344dc",
+ "6f108926.d7baf8"
+ ]
+ ]
+ },
+ {
+ "id": "24fb9f79.a6c6c",
+ "type": "switchNode",
+ "name": "switch",
+ "xml": "<switch test=\"`$org.onap.appc.adapter.saltstack.result.code`\">\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 486,
+ "y": 372,
+ "z": "5945fc3c.78efc4",
+ "wires": [
+ [
+ "c526c44.c850738",
+ "9c394980.2a56a8"
+ ]
+ ]
+ },
+ {
+ "id": "c526c44.c850738",
+ "type": "other",
+ "name": "outcome",
+ "xml": "<outcome value='Other'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 675,
+ "y": 371,
+ "z": "5945fc3c.78efc4",
+ "wires": [
+ [
+ "d40bf650.8338e8"
+ ]
+ ]
+ },
+ {
+ "id": "7b75e382.6344dc",
+ "type": "failure",
+ "name": "failure",
+ "xml": "<outcome value='failure'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 951,
+ "y": 210,
+ "z": "5945fc3c.78efc4",
+ "wires": [
+ [
+ "d40bf650.8338e8"
+ ]
+ ]
+ },
+ {
+ "id": "6f108926.d7baf8",
+ "type": "other",
+ "name": "other",
+ "xml": "<outcome value='Other'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 298,
+ "y": 378,
+ "z": "5945fc3c.78efc4",
+ "wires": [
+ [
+ "24fb9f79.a6c6c"
+ ]
+ ]
+ },
+ {
+ "id": "9c394980.2a56a8",
+ "type": "success",
+ "name": "success",
+ "xml": "<outcome value='200'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 667,
+ "y": 460,
+ "z": "5945fc3c.78efc4",
+ "wires": [
+ [
+ "1f81a3db.54cd1c"
+ ]
+ ]
+ },
+ {
+ "id": "1f81a3db.54cd1c",
+ "type": "returnSuccess",
+ "name": "return success",
+ "xml": "<return status='success'>\n<parameter name='output.status.code' value='`$org.openecomp.appc.adapter.ansible.result.code`' />\n<parameter name='output.status.message' value='`$org.openecomp.appc.adapter.ansible.message`'/>\n<parameter name='output.status.results' value = '`$org.openecomp.appc.adapter.ansible.results`'/>\n",
+ "comments": "",
+ "x": 887,
+ "y": 460,
+ "z": "5945fc3c.78efc4",
+ "wires": []
+ },
+ {
+ "id": "fcad80f8.ba2d9",
+ "type": "dgstart",
+ "name": "DGSTART",
+ "outputs": 1,
+ "x": 261,
+ "y": 189,
+ "z": "5945fc3c.78efc4",
+ "wires": [
+ [
+ "9997883e.ec9028"
+ ]
+ ]
+ },
+ {
+ "id": "b86e624d.49f0f",
+ "type": "comment",
+ "name": "SaltStack Adaptor DG",
+ "info": "",
+ "comments": "",
+ "x": 630,
+ "y": 75,
+ "z": "5945fc3c.78efc4",
+ "wires": []
+ },
+ {
+ "id": "83c0578d.061f98",
+ "type": "comment",
+ "name": "request-method = reqExecCommand, req-action = \"execute a single non SLS command\"",
+ "info": "",
+ "comments": "",
+ "x": 650,
+ "y": 155,
+ "z": "5945fc3c.78efc4",
+ "wires": []
+ },
+ {
+ "id": "f104feb6.558f7",
+ "type": "comment",
+ "name": "Assumptions for this DG",
+ "info": "Here we assume, the saltstack server is the example-vagrant based server. Where, the master saltstact controlls minion1 and minion2. ",
+ "comments": "",
+ "x": 627,
+ "y": 115,
+ "z": "5945fc3c.78efc4",
+ "wires": []
+ }
+] \ No newline at end of file
diff --git a/saltstack-adapter/saltstack-directed-graphs-sample/reqExecCommand/APPC_saltstack-adapter-1.0-exe-nonSLS.xml b/saltstack-adapter/saltstack-directed-graphs-sample/reqExecCommand/APPC_saltstack-adapter-1.0-exe-nonSLS.xml
new file mode 100644
index 00000000..eadf3361
--- /dev/null
+++ b/saltstack-adapter/saltstack-directed-graphs-sample/reqExecCommand/APPC_saltstack-adapter-1.0-exe-nonSLS.xml
@@ -0,0 +1,50 @@
+<service-logic xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
+ xmlns='http://www.onap.org/sdnc/svclogic'
+ xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd'
+ module='APPC' version='2.0.1'>
+ <method rpc='saltstack-adapter-1.0-exe-nonSLS' mode='sync'>
+ <execute plugin='org.openecomp.appc.adapter.ansible.AnsibleAdapter'
+ method='reqExecCommand'>
+ <parameter name='HostName' value='`$AgentUrl`'/>
+ <parameter name='Port' value='`$Port`'/>
+ <parameter name='User' value='`$User`'/>
+ <parameter name='Password' value='`$Password`'/>
+ <parameter name='Id' value='test1'/>
+ <parameter name='cmd' value='cd /srv/salt; ls -l'/>
+ <parameter name='slsExec' value='false'/>
+ <parameter name='execTimeout' value='`$Timeout`'/>
+ <outcome value='failure'>
+ <return status='failure'>
+ <parameter name='error-code' value='200'/>
+ <parameter name='error-message'
+ value='`$org.openecomp.appc.adapter.ansible.message`'/>
+ <parameter name='output.status.results'
+ value='`$org.openecomp.appc.adapter.ansible.results`'/>
+ </return>
+ </outcome>
+ <outcome value='Other'>
+ <switch test="`$org.onap.appc.adapter.saltstack.result.code`">
+ <outcome value='Other'>
+ <return status='failure'>
+ <parameter name='error-code' value='200'/>
+ <parameter name='error-message'
+ value='`$org.openecomp.appc.adapter.ansible.message`'/>
+ <parameter name='output.status.results'
+ value='`$org.openecomp.appc.adapter.ansible.results`'/>
+ </return>
+ </outcome>
+ <outcome value='200'>
+ <return status='success'>
+ <parameter name='output.status.code'
+ value='`$org.openecomp.appc.adapter.ansible.result.code`'/>
+ <parameter name='output.status.message'
+ value='`$org.openecomp.appc.adapter.ansible.message`'/>
+ <parameter name='output.status.results'
+ value='`$org.openecomp.appc.adapter.ansible.results`'/>
+ </return>
+ </outcome>
+ </switch>
+ </outcome>
+ </execute>
+ </method>
+</service-logic> \ No newline at end of file
diff --git a/saltstack-adapter/saltstack-directed-graphs-sample/reqExecCommand/APPC_saltstack-adapter-1.0-exec-SLSFile.json b/saltstack-adapter/saltstack-directed-graphs-sample/reqExecCommand/APPC_saltstack-adapter-1.0-exec-SLSFile.json
new file mode 100644
index 00000000..95178ac2
--- /dev/null
+++ b/saltstack-adapter/saltstack-directed-graphs-sample/reqExecCommand/APPC_saltstack-adapter-1.0-exec-SLSFile.json
@@ -0,0 +1,350 @@
+[
+ {
+ "id": "d0ad0305.352fc",
+ "type": "method",
+ "name": "saltstack-adapter-1.0",
+ "xml": "<method rpc='saltstack-adapter-1.0-exec-SLSFile' mode='sync'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 552,
+ "y": 183,
+ "z": "b84dc629.83cd08",
+ "wires": [
+ [
+ "65cc87e2.a95188"
+ ]
+ ]
+ },
+ {
+ "id": "22aefec.e8c7902",
+ "type": "service-logic",
+ "name": "APPC 2.0.1",
+ "module": "APPC",
+ "version": "2.0.1",
+ "comments": "",
+ "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='APPC' version='2.0.1'>",
+ "outputs": 1,
+ "x": 343,
+ "y": 261,
+ "z": "b84dc629.83cd08",
+ "wires": [
+ [
+ "d0ad0305.352fc"
+ ]
+ ]
+ },
+ {
+ "id": "31587001.4259e",
+ "type": "returnFailure",
+ "name": "return failure",
+ "xml": "<return status='failure'>\n<parameter name='error-code' value='200' />\n<parameter name='error-message' value='`$org.openecomp.appc.adapter.ansible.message`' />\n<parameter name='output.status.results' value='`$org.openecomp.appc.adapter.ansible.results`' />\n",
+ "comments": "",
+ "x": 1262,
+ "y": 365,
+ "z": "b84dc629.83cd08",
+ "wires": []
+ },
+ {
+ "id": "65cc87e2.a95188",
+ "type": "execute",
+ "name": "execute",
+ "xml": "<execute plugin='org.openecomp.appc.adapter.ansible.AnsibleAdapter' method='reqExecCommand' >\n <parameter name='HostName' value='`$AgentUrl`'/>\n <parameter name='Port' value='`$Port`'/>\n <parameter name='User' value='`$User`'/>\n <parameter name='Password' value='`$Password`'/>\n <parameter name='Id' value='test1'/>\n <parameter name='cmd' value='salt &apos;*&apos; test.ping --out=json --static'/>\n <parameter name='slsExec' value='false'/>\n <parameter name='execTimeout' value='`$Timeout`'/>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 761,
+ "y": 185,
+ "z": "b84dc629.83cd08",
+ "wires": [
+ [
+ "f9bf6ee7.cf954",
+ "7b51c357.a852cc"
+ ]
+ ]
+ },
+ {
+ "id": "42fa1258.aa570c",
+ "type": "switchNode",
+ "name": "switch",
+ "xml": "<switch test=\"`$org.onap.appc.adapter.saltstack.result.code`\">\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 544,
+ "y": 345,
+ "z": "b84dc629.83cd08",
+ "wires": [
+ [
+ "a7cf236a.84c03",
+ "c45d597b.20b4c8"
+ ]
+ ]
+ },
+ {
+ "id": "a7cf236a.84c03",
+ "type": "other",
+ "name": "other",
+ "xml": "<outcome value='Other'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 735,
+ "y": 343,
+ "z": "b84dc629.83cd08",
+ "wires": [
+ [
+ "31587001.4259e"
+ ]
+ ]
+ },
+ {
+ "id": "f9bf6ee7.cf954",
+ "type": "failure",
+ "name": "failure",
+ "xml": "<outcome value='failure'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1011,
+ "y": 182,
+ "z": "b84dc629.83cd08",
+ "wires": [
+ [
+ "31587001.4259e"
+ ]
+ ]
+ },
+ {
+ "id": "7b51c357.a852cc",
+ "type": "other",
+ "name": "other",
+ "xml": "<outcome value='Other'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 366,
+ "y": 343,
+ "z": "b84dc629.83cd08",
+ "wires": [
+ [
+ "42fa1258.aa570c"
+ ]
+ ]
+ },
+ {
+ "id": "c45d597b.20b4c8",
+ "type": "success",
+ "name": "success",
+ "xml": "<outcome value='200'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 351,
+ "y": 459,
+ "z": "b84dc629.83cd08",
+ "wires": [
+ [
+ "30d5f0f7.0e3c8"
+ ]
+ ]
+ },
+ {
+ "id": "2856792.c401a86",
+ "type": "returnSuccess",
+ "name": "return success",
+ "xml": "<return status='success'>\n<parameter name='output.status.code' value='`$org.openecomp.appc.adapter.ansible.result.code`' />\n<parameter name='output.status.message' value='`$org.openecomp.appc.adapter.ansible.message`'/>\n<parameter name='output.status.results' value = '`$org.openecomp.appc.adapter.ansible.results`'/>\n",
+ "comments": "",
+ "x": 1042,
+ "y": 656,
+ "z": "b84dc629.83cd08",
+ "wires": []
+ },
+ {
+ "id": "6c359fdc.3b566",
+ "type": "dgstart",
+ "name": "DGSTART",
+ "outputs": 1,
+ "x": 321,
+ "y": 161,
+ "z": "b84dc629.83cd08",
+ "wires": [
+ [
+ "22aefec.e8c7902"
+ ]
+ ]
+ },
+ {
+ "id": "b5342c59.29f74",
+ "type": "comment",
+ "name": "SaltStack Adaptor DG",
+ "info": "",
+ "comments": "",
+ "x": 693,
+ "y": 44,
+ "z": "b84dc629.83cd08",
+ "wires": []
+ },
+ {
+ "id": "19202194.8ff55e",
+ "type": "comment",
+ "name": "request-method = reqExecCommand, req-action = \"execute multiple SLS commands\"",
+ "info": "Here we basically test if minion1 is active by pinging to it, then install vim package to it. \n",
+ "comments": "",
+ "x": 711,
+ "y": 127,
+ "z": "b84dc629.83cd08",
+ "wires": []
+ },
+ {
+ "id": "a2ebc17e.fa03a",
+ "type": "other",
+ "name": "other",
+ "xml": "<outcome value='Other'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 396,
+ "y": 661,
+ "z": "b84dc629.83cd08",
+ "wires": [
+ [
+ "c9345fbb.d6d19"
+ ]
+ ]
+ },
+ {
+ "id": "770411a5.18825",
+ "type": "execute",
+ "name": "execute",
+ "xml": "<execute plugin='org.openecomp.appc.adapter.ansible.AnsibleAdapter' method='reqExecCommand' >\n <parameter name='HostName' value='`$AgentUrl`'/>\n <parameter name='Port' value='`$Port`'/>\n <parameter name='User' value='`$User`'/>\n <parameter name='Password' value='`$Password`'/>\n <parameter name='Id' value='test2'/>\n <parameter name='cmd' value='cd /srv/salt/; salt &apos;minion1&apos; state.apply vim --out=json --static'/>\n <parameter name='slsExec' value='true'/>\n <parameter name='execTimeout' value='`$Timeout`'/>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 773,
+ "y": 548,
+ "z": "b84dc629.83cd08",
+ "wires": [
+ [
+ "e09a3e12.87428",
+ "a2ebc17e.fa03a"
+ ]
+ ]
+ },
+ {
+ "id": "e09a3e12.87428",
+ "type": "failure",
+ "name": "failure",
+ "xml": "<outcome value='failure'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 991,
+ "y": 554,
+ "z": "b84dc629.83cd08",
+ "wires": [
+ [
+ "31587001.4259e"
+ ]
+ ]
+ },
+ {
+ "id": "c9345fbb.d6d19",
+ "type": "switchNode",
+ "name": "switch",
+ "xml": "<switch test=\"`$org.onap.appc.adapter.saltstack.result.code`\">\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 578,
+ "y": 658,
+ "z": "b84dc629.83cd08",
+ "wires": [
+ [
+ "485e453d.36c75c",
+ "f1adcf2a.2c456"
+ ]
+ ]
+ },
+ {
+ "id": "485e453d.36c75c",
+ "type": "other",
+ "name": "other",
+ "xml": "<outcome value='Other'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 783,
+ "y": 732,
+ "z": "b84dc629.83cd08",
+ "wires": [
+ [
+ "31587001.4259e"
+ ]
+ ]
+ },
+ {
+ "id": "f1adcf2a.2c456",
+ "type": "success",
+ "name": "success",
+ "xml": "<outcome value='200'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 776,
+ "y": 658,
+ "z": "b84dc629.83cd08",
+ "wires": [
+ [
+ "2856792.c401a86"
+ ]
+ ]
+ },
+ {
+ "id": "30d5f0f7.0e3c8",
+ "type": "switchNode",
+ "name": "switch",
+ "xml": "<switch test=\"`$test1.minion1`\">\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 523,
+ "y": 459,
+ "z": "b84dc629.83cd08",
+ "wires": [
+ [
+ "15e9ff68.9812a1",
+ "17d9d7e.4d9a928"
+ ]
+ ]
+ },
+ {
+ "id": "17d9d7e.4d9a928",
+ "type": "other",
+ "name": "outcome",
+ "xml": "<outcome value='true'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 593,
+ "y": 550,
+ "z": "b84dc629.83cd08",
+ "wires": [
+ [
+ "770411a5.18825"
+ ]
+ ]
+ },
+ {
+ "id": "15e9ff68.9812a1",
+ "type": "other",
+ "name": "other",
+ "xml": "<outcome value='Other'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 717,
+ "y": 459,
+ "z": "b84dc629.83cd08",
+ "wires": [
+ [
+ "31587001.4259e"
+ ]
+ ]
+ },
+ {
+ "id": "b764890c.ed0018",
+ "type": "comment",
+ "name": "Assumptions for this DG (example-server)",
+ "info": "1) Here we assume, the saltstack server is the example-vagrant based server. Where, the master saltstact controlls minion1 and minion2. \n2) We assume that sls file called vim.sls is already present in the path /srv/salt on the server.",
+ "comments": "",
+ "x": 693,
+ "y": 86,
+ "z": "b84dc629.83cd08",
+ "wires": []
+ }
+] \ No newline at end of file
diff --git a/saltstack-adapter/saltstack-directed-graphs-sample/reqExecCommand/APPC_saltstack-adapter-1.0-exec-SLSFile.xml b/saltstack-adapter/saltstack-directed-graphs-sample/reqExecCommand/APPC_saltstack-adapter-1.0-exec-SLSFile.xml
new file mode 100644
index 00000000..c112723c
--- /dev/null
+++ b/saltstack-adapter/saltstack-directed-graphs-sample/reqExecCommand/APPC_saltstack-adapter-1.0-exec-SLSFile.xml
@@ -0,0 +1,112 @@
+<service-logic xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
+ xmlns='http://www.onap.org/sdnc/svclogic'
+ xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd'
+ module='APPC' version='2.0.1'>
+ <method rpc='saltstack-adapter-1.0-exec-SLSFile' mode='sync'>
+ <execute plugin='org.openecomp.appc.adapter.ansible.AnsibleAdapter'
+ method='reqExecCommand'>
+ <parameter name='HostName' value='`$AgentUrl`'/>
+ <parameter name='Port' value='`$Port`'/>
+ <parameter name='User' value='`$User`'/>
+ <parameter name='Password' value='`$Password`'/>
+ <parameter name='Id' value='test1'/>
+ <parameter name='cmd'
+ value='salt &apos;*&apos; test.ping --out=json --static'/>
+ <parameter name='slsExec' value='false'/>
+ <parameter name='execTimeout' value='`$Timeout`'/>
+ <outcome value='failure'>
+ <return status='failure'>
+ <parameter name='error-code' value='200'/>
+ <parameter name='error-message'
+ value='`$org.openecomp.appc.adapter.ansible.message`'/>
+ <parameter name='output.status.results'
+ value='`$org.openecomp.appc.adapter.ansible.results`'/>
+ </return>
+ </outcome>
+ <outcome value='Other'>
+ <switch test="`$org.onap.appc.adapter.saltstack.result.code`">
+ <outcome value='Other'>
+ <return status='failure'>
+ <parameter name='error-code' value='200'/>
+ <parameter name='error-message'
+ value='`$org.openecomp.appc.adapter.ansible.message`'/>
+ <parameter name='output.status.results'
+ value='`$org.openecomp.appc.adapter.ansible.results`'/>
+ </return>
+ </outcome>
+ <outcome value='200'>
+ <switch test="`$test1.minion1`">
+ <outcome value='Other'>
+ <return status='failure'>
+ <parameter name='error-code' value='200'/>
+ <parameter name='error-message'
+ value='`$org.openecomp.appc.adapter.ansible.message`'/>
+ <parameter name='output.status.results'
+ value='`$org.openecomp.appc.adapter.ansible.results`'/>
+ </return>
+ </outcome>
+ <outcome value='true'>
+ <execute
+ plugin='org.openecomp.appc.adapter.ansible.AnsibleAdapter'
+ method='reqExecCommand'>
+ <parameter name='HostName'
+ value='`$AgentUrl`'/>
+ <parameter name='Port' value='`$Port`'/>
+ <parameter name='User' value='`$User`'/>
+ <parameter name='Password'
+ value='`$Password`'/>
+ <parameter name='Id' value='test2'/>
+ <parameter name='cmd'
+ value='cd /srv/salt/; salt &apos;minion1&apos; state.apply vim --out=json --static'/>
+ <parameter name='slsExec' value='true'/>
+ <parameter name='execTimeout'
+ value='`$Timeout`'/>
+ <outcome value='failure'>
+ <return status='failure'>
+ <parameter name='error-code'
+ value='200'/>
+ <parameter name='error-message'
+ value='`$org.openecomp.appc.adapter.ansible.message`'/>
+ <parameter
+ name='output.status.results'
+ value='`$org.openecomp.appc.adapter.ansible.results`'/>
+ </return>
+ </outcome>
+ <outcome value='Other'>
+ <switch test="`$org.onap.appc.adapter.saltstack.result.code`">
+ <outcome value='200'>
+ <return status='success'>
+ <parameter
+ name='output.status.code'
+ value='`$org.openecomp.appc.adapter.ansible.result.code`'/>
+ <parameter
+ name='output.status.message'
+ value='`$org.openecomp.appc.adapter.ansible.message`'/>
+ <parameter
+ name='output.status.results'
+ value='`$org.openecomp.appc.adapter.ansible.results`'/>
+ </return>
+ </outcome>
+ <outcome value='Other'>
+ <return status='failure'>
+ <parameter name='error-code'
+ value='200'/>
+ <parameter
+ name='error-message'
+ value='`$org.openecomp.appc.adapter.ansible.message`'/>
+ <parameter
+ name='output.status.results'
+ value='`$org.openecomp.appc.adapter.ansible.results`'/>
+ </return>
+ </outcome>
+ </switch>
+ </outcome>
+ </execute>
+ </outcome>
+ </switch>
+ </outcome>
+ </switch>
+ </outcome>
+ </execute>
+ </method>
+</service-logic> \ No newline at end of file
diff --git a/saltstack-adapter/saltstack-directed-graphs-sample/reqExecCommand/APPC_saltstack-adapter-1.0-exec-multi-sls.json b/saltstack-adapter/saltstack-directed-graphs-sample/reqExecCommand/APPC_saltstack-adapter-1.0-exec-multi-sls.json
new file mode 100644
index 00000000..85254587
--- /dev/null
+++ b/saltstack-adapter/saltstack-directed-graphs-sample/reqExecCommand/APPC_saltstack-adapter-1.0-exec-multi-sls.json
@@ -0,0 +1,399 @@
+[
+ {
+ "id": "65f5c0d6.9c4ce",
+ "type": "method",
+ "name": "saltstack-adapter-1.0",
+ "xml": "<method rpc='saltstack-adapter-1.0-exec-multi-sls' mode='sync'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 615,
+ "y": 273,
+ "z": "6df02477.0463cc",
+ "wires": [
+ [
+ "c332cb01.51a3e8"
+ ]
+ ]
+ },
+ {
+ "id": "bf71bd6e.1be5b",
+ "type": "service-logic",
+ "name": "APPC 2.0.1",
+ "module": "APPC",
+ "version": "2.0.1",
+ "comments": "",
+ "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='APPC' version='2.0.1'>",
+ "outputs": 1,
+ "x": 406,
+ "y": 351,
+ "z": "6df02477.0463cc",
+ "wires": [
+ [
+ "65f5c0d6.9c4ce"
+ ]
+ ]
+ },
+ {
+ "id": "40ce8a6.5f7d174",
+ "type": "returnFailure",
+ "name": "return failure",
+ "xml": "<return status='failure'>\n<parameter name='error-code' value='200' />\n<parameter name='error-message' value='`$org.openecomp.appc.adapter.ansible.message`' />\n<parameter name='output.status.results' value='`$org.openecomp.appc.adapter.ansible.results`' />\n",
+ "comments": "",
+ "x": 1325,
+ "y": 455,
+ "z": "6df02477.0463cc",
+ "wires": []
+ },
+ {
+ "id": "c332cb01.51a3e8",
+ "type": "execute",
+ "name": "execute",
+ "xml": "<execute plugin='org.openecomp.appc.adapter.ansible.AnsibleAdapter' method='reqExecCommand' >\n <parameter name='HostName' value='`$AgentUrl`'/>\n <parameter name='Port' value='`$Port`'/>\n <parameter name='User' value='`$User`'/>\n <parameter name='Password' value='`$Password`'/>\n <parameter name='Id' value='test1'/>\n <parameter name='cmd' value='salt &apos;*&apos; test.ping --out=json --static'/>\n <parameter name='slsExec' value='false'/>\n <parameter name='execTimeout' value='`$Timeout`'/>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 824,
+ "y": 275,
+ "z": "6df02477.0463cc",
+ "wires": [
+ [
+ "5b387684.e51be8",
+ "4bb6b32e.adfc2c"
+ ]
+ ]
+ },
+ {
+ "id": "16dfbd4f.b6da73",
+ "type": "switchNode",
+ "name": "switch",
+ "xml": "<switch test=\"`$org.onap.appc.adapter.saltstack.result.code`\">\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 607,
+ "y": 435,
+ "z": "6df02477.0463cc",
+ "wires": [
+ [
+ "24d22f52.ef59a",
+ "ac765880.a6c548"
+ ]
+ ]
+ },
+ {
+ "id": "24d22f52.ef59a",
+ "type": "other",
+ "name": "other",
+ "xml": "<outcome value='Other'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 798,
+ "y": 433,
+ "z": "6df02477.0463cc",
+ "wires": [
+ [
+ "40ce8a6.5f7d174"
+ ]
+ ]
+ },
+ {
+ "id": "5b387684.e51be8",
+ "type": "failure",
+ "name": "failure",
+ "xml": "<outcome value='failure'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1074,
+ "y": 272,
+ "z": "6df02477.0463cc",
+ "wires": [
+ [
+ "40ce8a6.5f7d174"
+ ]
+ ]
+ },
+ {
+ "id": "4bb6b32e.adfc2c",
+ "type": "other",
+ "name": "other",
+ "xml": "<outcome value='Other'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 429,
+ "y": 433,
+ "z": "6df02477.0463cc",
+ "wires": [
+ [
+ "16dfbd4f.b6da73"
+ ]
+ ]
+ },
+ {
+ "id": "ac765880.a6c548",
+ "type": "success",
+ "name": "success",
+ "xml": "<outcome value='200'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 414,
+ "y": 549,
+ "z": "6df02477.0463cc",
+ "wires": [
+ [
+ "2dda30fc.8747"
+ ]
+ ]
+ },
+ {
+ "id": "e45accfe.91615",
+ "type": "returnSuccess",
+ "name": "return success",
+ "xml": "<return status='success'>\n<parameter name='output.status.code' value='`$org.openecomp.appc.adapter.ansible.result.code`' />\n<parameter name='output.status.message' value='`$org.openecomp.appc.adapter.ansible.message`'/>\n<parameter name='output.status.results' value = '`$org.openecomp.appc.adapter.ansible.results`'/>\n",
+ "comments": "",
+ "x": 1345,
+ "y": 757,
+ "z": "6df02477.0463cc",
+ "wires": []
+ },
+ {
+ "id": "11a891ad.55bc1e",
+ "type": "dgstart",
+ "name": "DGSTART",
+ "outputs": 1,
+ "x": 384,
+ "y": 251,
+ "z": "6df02477.0463cc",
+ "wires": [
+ [
+ "bf71bd6e.1be5b"
+ ]
+ ]
+ },
+ {
+ "id": "a56383b.496c48",
+ "type": "comment",
+ "name": "SaltStack Adaptor DG",
+ "info": "",
+ "comments": "",
+ "x": 756,
+ "y": 134,
+ "z": "6df02477.0463cc",
+ "wires": []
+ },
+ {
+ "id": "cfda30b5.5e166",
+ "type": "comment",
+ "name": "request-method = reqExecCommand, req-action = \"execute multiple SLS commands\"",
+ "info": "Here we basically test if minion1 is active by pinging to it, then install vim package to it. \n",
+ "comments": "",
+ "x": 773,
+ "y": 217,
+ "z": "6df02477.0463cc",
+ "wires": []
+ },
+ {
+ "id": "a8efb922.f23ce8",
+ "type": "other",
+ "name": "other",
+ "xml": "<outcome value='Other'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 459,
+ "y": 751,
+ "z": "6df02477.0463cc",
+ "wires": [
+ [
+ "3ff32215.20cd0e"
+ ]
+ ]
+ },
+ {
+ "id": "df0c0907.d17838",
+ "type": "execute",
+ "name": "execute",
+ "xml": "<execute plugin='org.openecomp.appc.adapter.ansible.AnsibleAdapter' method='reqExecCommand' >\n <parameter name='HostName' value='`$AgentUrl`'/>\n <parameter name='Port' value='`$Port`'/>\n <parameter name='User' value='`$User`'/>\n <parameter name='Password' value='`$Password`'/>\n <parameter name='Id' value='test2'/>\n <parameter name='cmd' value='salt &apos;minion1&apos; pkg.install vim --out=json --static'/>\n <parameter name='slsExec' value='false'/>\n <parameter name='execTimeout' value='`$Timeout`'/>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 836,
+ "y": 638,
+ "z": "6df02477.0463cc",
+ "wires": [
+ [
+ "1e5bbe2e.9cbb82",
+ "a8efb922.f23ce8"
+ ]
+ ]
+ },
+ {
+ "id": "1e5bbe2e.9cbb82",
+ "type": "failure",
+ "name": "failure",
+ "xml": "<outcome value='failure'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1054,
+ "y": 644,
+ "z": "6df02477.0463cc",
+ "wires": [
+ [
+ "40ce8a6.5f7d174"
+ ]
+ ]
+ },
+ {
+ "id": "3ff32215.20cd0e",
+ "type": "switchNode",
+ "name": "switch",
+ "xml": "<switch test=\"`$org.onap.appc.adapter.saltstack.result.code`\">\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 647,
+ "y": 745,
+ "z": "6df02477.0463cc",
+ "wires": [
+ [
+ "8e2c712b.784b4",
+ "3d74cfe5.d41f5"
+ ]
+ ]
+ },
+ {
+ "id": "8e2c712b.784b4",
+ "type": "other",
+ "name": "other",
+ "xml": "<outcome value='Other'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 830,
+ "y": 823,
+ "z": "6df02477.0463cc",
+ "wires": [
+ [
+ "40ce8a6.5f7d174"
+ ]
+ ]
+ },
+ {
+ "id": "3d74cfe5.d41f5",
+ "type": "success",
+ "name": "success",
+ "xml": "<outcome value='200'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 829,
+ "y": 758,
+ "z": "6df02477.0463cc",
+ "wires": [
+ [
+ "8313564b.004798"
+ ]
+ ]
+ },
+ {
+ "id": "2dda30fc.8747",
+ "type": "switchNode",
+ "name": "switch",
+ "xml": "<switch test=\"`$test1.minion1`\">\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 586,
+ "y": 549,
+ "z": "6df02477.0463cc",
+ "wires": [
+ [
+ "e0133af5.2ca028",
+ "7f28f521.cf47cc"
+ ]
+ ]
+ },
+ {
+ "id": "7f28f521.cf47cc",
+ "type": "other",
+ "name": "outcome",
+ "xml": "<outcome value='true'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 656,
+ "y": 640,
+ "z": "6df02477.0463cc",
+ "wires": [
+ [
+ "df0c0907.d17838"
+ ]
+ ]
+ },
+ {
+ "id": "e0133af5.2ca028",
+ "type": "other",
+ "name": "other",
+ "xml": "<outcome value='Other'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 780,
+ "y": 549,
+ "z": "6df02477.0463cc",
+ "wires": [
+ [
+ "40ce8a6.5f7d174"
+ ]
+ ]
+ },
+ {
+ "id": "8313564b.004798",
+ "type": "switchNode",
+ "name": "switch",
+ "xml": "<switch test=\"`$test2.minion1.retcode`\">\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 986,
+ "y": 752,
+ "z": "6df02477.0463cc",
+ "wires": [
+ [
+ "13d18d2d.71fbf3",
+ "2e940add.522a36"
+ ]
+ ]
+ },
+ {
+ "id": "13d18d2d.71fbf3",
+ "type": "other",
+ "name": "other",
+ "xml": "<outcome value='Other'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1165,
+ "y": 825,
+ "z": "6df02477.0463cc",
+ "wires": [
+ [
+ "40ce8a6.5f7d174"
+ ]
+ ]
+ },
+ {
+ "id": "2e940add.522a36",
+ "type": "success",
+ "name": "success",
+ "xml": "<outcome value='0'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1156,
+ "y": 754,
+ "z": "6df02477.0463cc",
+ "wires": [
+ [
+ "e45accfe.91615"
+ ]
+ ]
+ },
+ {
+ "id": "6d6678d2.6a9bd8",
+ "type": "comment",
+ "name": "Assumptions for this DG (example-server)",
+ "info": "Here we assume, the saltstack server is the example-vagrant based server. Where, the master saltstact controlls minion1 and minion2. ",
+ "comments": "",
+ "x": 756,
+ "y": 173,
+ "z": "6df02477.0463cc",
+ "wires": []
+ }
+] \ No newline at end of file
diff --git a/saltstack-adapter/saltstack-directed-graphs-sample/reqExecCommand/APPC_saltstack-adapter-1.0-exec-multi-sls.xml b/saltstack-adapter/saltstack-directed-graphs-sample/reqExecCommand/APPC_saltstack-adapter-1.0-exec-multi-sls.xml
new file mode 100644
index 00000000..0e5e17c4
--- /dev/null
+++ b/saltstack-adapter/saltstack-directed-graphs-sample/reqExecCommand/APPC_saltstack-adapter-1.0-exec-multi-sls.xml
@@ -0,0 +1,129 @@
+<service-logic xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
+ xmlns='http://www.onap.org/sdnc/svclogic'
+ xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd'
+ module='APPC' version='2.0.1'>
+ <method rpc='saltstack-adapter-1.0-exec-multi-sls' mode='sync'>
+ <execute plugin='org.openecomp.appc.adapter.ansible.AnsibleAdapter'
+ method='reqExecCommand'>
+ <parameter name='HostName' value='`$AgentUrl`'/>
+ <parameter name='Port' value='`$Port`'/>
+ <parameter name='User' value='`$User`'/>
+ <parameter name='Password' value='`$Password`'/>
+ <parameter name='Id' value='test1'/>
+ <parameter name='cmd'
+ value='salt &apos;*&apos; test.ping --out=json --static'/>
+ <parameter name='slsExec' value='false'/>
+ <parameter name='execTimeout' value='`$Timeout`'/>
+ <outcome value='failure'>
+ <return status='failure'>
+ <parameter name='error-code' value='200'/>
+ <parameter name='error-message'
+ value='`$org.openecomp.appc.adapter.ansible.message`'/>
+ <parameter name='output.status.results'
+ value='`$org.openecomp.appc.adapter.ansible.results`'/>
+ </return>
+ </outcome>
+ <outcome value='Other'>
+ <switch test="`$org.onap.appc.adapter.saltstack.result.code`">
+ <outcome value='Other'>
+ <return status='failure'>
+ <parameter name='error-code' value='200'/>
+ <parameter name='error-message'
+ value='`$org.openecomp.appc.adapter.ansible.message`'/>
+ <parameter name='output.status.results'
+ value='`$org.openecomp.appc.adapter.ansible.results`'/>
+ </return>
+ </outcome>
+ <outcome value='200'>
+ <switch test="`$test1.minion1`">
+ <outcome value='Other'>
+ <return status='failure'>
+ <parameter name='error-code' value='200'/>
+ <parameter name='error-message'
+ value='`$org.openecomp.appc.adapter.ansible.message`'/>
+ <parameter name='output.status.results'
+ value='`$org.openecomp.appc.adapter.ansible.results`'/>
+ </return>
+ </outcome>
+ <outcome value='true'>
+ <execute
+ plugin='org.openecomp.appc.adapter.ansible.AnsibleAdapter'
+ method='reqExecCommand'>
+ <parameter name='HostName'
+ value='`$AgentUrl`'/>
+ <parameter name='Port' value='`$Port`'/>
+ <parameter name='User' value='`$User`'/>
+ <parameter name='Password'
+ value='`$Password`'/>
+ <parameter name='Id' value='test2'/>
+ <parameter name='cmd'
+ value='salt &apos;minion1&apos; pkg.install vim --out=json --static'/>
+ <parameter name='slsExec' value='false'/>
+ <parameter name='execTimeout'
+ value='`$Timeout`'/>
+ <outcome value='failure'>
+ <return status='failure'>
+ <parameter name='error-code'
+ value='200'/>
+ <parameter name='error-message'
+ value='`$org.openecomp.appc.adapter.ansible.message`'/>
+ <parameter
+ name='output.status.results'
+ value='`$org.openecomp.appc.adapter.ansible.results`'/>
+ </return>
+ </outcome>
+ <outcome value='Other'>
+ <switch test="`$org.onap.appc.adapter.saltstack.result.code`">
+ <outcome value='200'>
+ <switch test="`$test2.minion1.retcode`">
+ <outcome value='0'>
+ <return status='success'>
+ <parameter
+ name='output.status.code'
+ value='`$org.openecomp.appc.adapter.ansible.result.code`'/>
+ <parameter
+ name='output.status.message'
+ value='`$org.openecomp.appc.adapter.ansible.message`'/>
+ <parameter
+ name='output.status.results'
+ value='`$org.openecomp.appc.adapter.ansible.results`'/>
+ </return>
+ </outcome>
+ <outcome value='Other'>
+ <return status='failure'>
+ <parameter
+ name='error-code'
+ value='200'/>
+ <parameter
+ name='error-message'
+ value='`$org.openecomp.appc.adapter.ansible.message`'/>
+ <parameter
+ name='output.status.results'
+ value='`$org.openecomp.appc.adapter.ansible.results`'/>
+ </return>
+ </outcome>
+ </switch>
+ </outcome>
+ <outcome value='Other'>
+ <return status='failure'>
+ <parameter name='error-code'
+ value='200'/>
+ <parameter
+ name='error-message'
+ value='`$org.openecomp.appc.adapter.ansible.message`'/>
+ <parameter
+ name='output.status.results'
+ value='`$org.openecomp.appc.adapter.ansible.results`'/>
+ </return>
+ </outcome>
+ </switch>
+ </outcome>
+ </execute>
+ </outcome>
+ </switch>
+ </outcome>
+ </switch>
+ </outcome>
+ </execute>
+ </method>
+</service-logic> \ No newline at end of file
diff --git a/saltstack-adapter/saltstack-directed-graphs-sample/reqExecCommand/APPC_saltstack-adapter-1.0-exec-single-SLSComm.json b/saltstack-adapter/saltstack-directed-graphs-sample/reqExecCommand/APPC_saltstack-adapter-1.0-exec-single-SLSComm.json
new file mode 100644
index 00000000..a8535d00
--- /dev/null
+++ b/saltstack-adapter/saltstack-directed-graphs-sample/reqExecCommand/APPC_saltstack-adapter-1.0-exec-single-SLSComm.json
@@ -0,0 +1,203 @@
+[
+ {
+ "id": "bd0f1105.ff214",
+ "type": "method",
+ "name": "saltstack-adapter-1.0",
+ "xml": "<method rpc='saltstack-adapter-1.0-exec-single-SLSComm' mode='sync'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 526,
+ "y": 238,
+ "z": "c053ae12.4067b",
+ "wires": [
+ [
+ "f4e59dd0.ee45f"
+ ]
+ ]
+ },
+ {
+ "id": "26f2a2b8.90f58e",
+ "type": "service-logic",
+ "name": "APPC 2.0.1",
+ "module": "APPC",
+ "version": "2.0.1",
+ "comments": "",
+ "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='APPC' version='2.0.1'>",
+ "outputs": 1,
+ "x": 317,
+ "y": 316,
+ "z": "c053ae12.4067b",
+ "wires": [
+ [
+ "bd0f1105.ff214"
+ ]
+ ]
+ },
+ {
+ "id": "55a7736.2789e8c",
+ "type": "returnFailure",
+ "name": "return failure",
+ "xml": "<return status='failure'>\n<parameter name='error-code' value='200' />\n<parameter name='error-message' value='`$org.openecomp.appc.adapter.ansible.message`' />\n<parameter name='output.status.results' value='`$org.openecomp.appc.adapter.ansible.results`' />\n",
+ "comments": "",
+ "x": 1064,
+ "y": 453,
+ "z": "c053ae12.4067b",
+ "wires": []
+ },
+ {
+ "id": "f4e59dd0.ee45f",
+ "type": "execute",
+ "name": "execute",
+ "xml": "<execute plugin='org.openecomp.appc.adapter.ansible.AnsibleAdapter' method='reqExecCommand' >\n <parameter name='HostName' value='`$AgentUrl`'/>\n <parameter name='Port' value='`$Port`'/>\n <parameter name='User' value='`$User`'/>\n <parameter name='Password' value='`$Password`'/>\n <parameter name='Id' value='test1'/>\n <parameter name='cmd' value='salt &apos;*&apos; test.ping --out=json --static'/>\n <parameter name='slsExec' value='false'/>\n <parameter name='execTimeout' value='`$Timeout`'/>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 735,
+ "y": 240,
+ "z": "c053ae12.4067b",
+ "wires": [
+ [
+ "93fca622.05ad58",
+ "7ce4a659.44c828"
+ ]
+ ]
+ },
+ {
+ "id": "2ceb37d9.a8ba18",
+ "type": "switchNode",
+ "name": "switch",
+ "xml": "<switch test=\"`$org.onap.appc.adapter.saltstack.result.code`\">\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 522,
+ "y": 398,
+ "z": "c053ae12.4067b",
+ "wires": [
+ [
+ "cd89356c.279678",
+ "781026e2.01d498"
+ ]
+ ]
+ },
+ {
+ "id": "cd89356c.279678",
+ "type": "other",
+ "name": "other",
+ "xml": "<outcome value='Other'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 708,
+ "y": 456,
+ "z": "c053ae12.4067b",
+ "wires": [
+ [
+ "55a7736.2789e8c"
+ ]
+ ]
+ },
+ {
+ "id": "93fca622.05ad58",
+ "type": "failure",
+ "name": "failure",
+ "xml": "<outcome value='failure'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 985,
+ "y": 237,
+ "z": "c053ae12.4067b",
+ "wires": [
+ [
+ "55a7736.2789e8c"
+ ]
+ ]
+ },
+ {
+ "id": "7ce4a659.44c828",
+ "type": "other",
+ "name": "other",
+ "xml": "<outcome value='Other'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 332,
+ "y": 405,
+ "z": "c053ae12.4067b",
+ "wires": [
+ [
+ "2ceb37d9.a8ba18"
+ ]
+ ]
+ },
+ {
+ "id": "781026e2.01d498",
+ "type": "success",
+ "name": "success",
+ "xml": "<outcome value='200'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 711,
+ "y": 398,
+ "z": "c053ae12.4067b",
+ "wires": [
+ [
+ "ce510062.8dcc7"
+ ]
+ ]
+ },
+ {
+ "id": "ce510062.8dcc7",
+ "type": "returnSuccess",
+ "name": "return success",
+ "xml": "<return status='success'>\n<parameter name='output.status.code' value='`$org.openecomp.appc.adapter.ansible.result.code`' />\n<parameter name='output.status.message' value='`$org.openecomp.appc.adapter.ansible.message`'/>\n<parameter name='output.status.results' value = '`$org.openecomp.appc.adapter.ansible.results`'/>\n",
+ "comments": "",
+ "x": 893,
+ "y": 399,
+ "z": "c053ae12.4067b",
+ "wires": []
+ },
+ {
+ "id": "593bd7fb.675368",
+ "type": "dgstart",
+ "name": "DGSTART",
+ "outputs": 1,
+ "x": 295,
+ "y": 216,
+ "z": "c053ae12.4067b",
+ "wires": [
+ [
+ "26f2a2b8.90f58e"
+ ]
+ ]
+ },
+ {
+ "id": "901c8408.5fecb8",
+ "type": "comment",
+ "name": "SaltStack Adaptor DG",
+ "info": "",
+ "comments": "",
+ "x": 673,
+ "y": 103,
+ "z": "c053ae12.4067b",
+ "wires": []
+ },
+ {
+ "id": "cc449713.a1be88",
+ "type": "comment",
+ "name": "request-method = reqExecCommand, req-action = \"execute a single SLS command\"",
+ "info": "Here we just ping to all the minions, and we dont even check if the minions are active. ",
+ "comments": "",
+ "x": 684,
+ "y": 188,
+ "z": "c053ae12.4067b",
+ "wires": []
+ },
+ {
+ "id": "c07fa80e.7f3ac8",
+ "type": "comment",
+ "name": "Assumptions for this DG (example-server)",
+ "info": "Here we assume, the saltstack server is the example-vagrant based server. Where, the master saltstact controlls minion1 and minion2. ",
+ "comments": "",
+ "x": 676,
+ "y": 144,
+ "z": "c053ae12.4067b",
+ "wires": []
+ }
+] \ No newline at end of file
diff --git a/saltstack-adapter/saltstack-directed-graphs-sample/reqExecCommand/APPC_saltstack-adapter-1.0-exec-single-SLSComm.xml b/saltstack-adapter/saltstack-directed-graphs-sample/reqExecCommand/APPC_saltstack-adapter-1.0-exec-single-SLSComm.xml
new file mode 100644
index 00000000..57620f58
--- /dev/null
+++ b/saltstack-adapter/saltstack-directed-graphs-sample/reqExecCommand/APPC_saltstack-adapter-1.0-exec-single-SLSComm.xml
@@ -0,0 +1,51 @@
+<service-logic xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
+ xmlns='http://www.onap.org/sdnc/svclogic'
+ xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd'
+ module='APPC' version='2.0.1'>
+ <method rpc='saltstack-adapter-1.0-exec-single-SLSComm' mode='sync'>
+ <execute plugin='org.openecomp.appc.adapter.ansible.AnsibleAdapter'
+ method='reqExecCommand'>
+ <parameter name='HostName' value='`$AgentUrl`'/>
+ <parameter name='Port' value='`$Port`'/>
+ <parameter name='User' value='`$User`'/>
+ <parameter name='Password' value='`$Password`'/>
+ <parameter name='Id' value='test1'/>
+ <parameter name='cmd'
+ value='salt &apos;*&apos; test.ping --out=json --static'/>
+ <parameter name='slsExec' value='false'/>
+ <parameter name='execTimeout' value='`$Timeout`'/>
+ <outcome value='failure'>
+ <return status='failure'>
+ <parameter name='error-code' value='200'/>
+ <parameter name='error-message'
+ value='`$org.openecomp.appc.adapter.ansible.message`'/>
+ <parameter name='output.status.results'
+ value='`$org.openecomp.appc.adapter.ansible.results`'/>
+ </return>
+ </outcome>
+ <outcome value='Other'>
+ <switch test="`$org.onap.appc.adapter.saltstack.result.code`">
+ <outcome value='200'>
+ <return status='success'>
+ <parameter name='output.status.code'
+ value='`$org.openecomp.appc.adapter.ansible.result.code`'/>
+ <parameter name='output.status.message'
+ value='`$org.openecomp.appc.adapter.ansible.message`'/>
+ <parameter name='output.status.results'
+ value='`$org.openecomp.appc.adapter.ansible.results`'/>
+ </return>
+ </outcome>
+ <outcome value='Other'>
+ <return status='failure'>
+ <parameter name='error-code' value='200'/>
+ <parameter name='error-message'
+ value='`$org.openecomp.appc.adapter.ansible.message`'/>
+ <parameter name='output.status.results'
+ value='`$org.openecomp.appc.adapter.ansible.results`'/>
+ </return>
+ </outcome>
+ </switch>
+ </outcome>
+ </execute>
+ </method>
+</service-logic> \ No newline at end of file
diff --git a/saltstack-adapter/saltstack-directed-graphs-sample/reqExecSLS/APPC_saltstack-adapter-1.0 IDEAL.json b/saltstack-adapter/saltstack-directed-graphs-sample/reqExecSLS/APPC_saltstack-adapter-1.0 IDEAL.json
new file mode 100644
index 00000000..875c6faa
--- /dev/null
+++ b/saltstack-adapter/saltstack-directed-graphs-sample/reqExecSLS/APPC_saltstack-adapter-1.0 IDEAL.json
@@ -0,0 +1 @@
+[{"id":"b9234075.7e20b","type":"method","name":"saltstack-adapter-1.0","xml":"<method rpc='saltstack-adapter-1.0' mode='sync'>\n","comments":"","outputs":1,"x":589,"y":221,"z":"8c500c8b.91561","wires":[["a9f084e0.590cc8"]]},{"id":"159aca46.2fdf66","type":"service-logic","name":"APPC 2.0.1","module":"APPC","version":"2.0.1","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='APPC' version='2.0.1'>","outputs":1,"x":366,"y":220,"z":"8c500c8b.91561","wires":[["b9234075.7e20b"]]},{"id":"f809843e.12d3b8","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name='output.status.code' value='`$org.openecomp.appc.adapter.ansible.result.code`' />\n<parameter name='output.status.message' value='`$org.openecomp.appc.adapter.ansible.message`'/>\n<parameter name='output.status.results' value = '`$org.openecomp.appc.adapter.ansible.results`'/>\n","comments":"","x":968,"y":313,"z":"8c500c8b.91561","wires":[]},{"id":"cad8db4d.3d8978","type":"dgstart","name":"DGSTART","outputs":1,"x":197,"y":219,"z":"8c500c8b.91561","wires":[["159aca46.2fdf66"]]},{"id":"96da3695.f3ade8","type":"comment","name":"SaltStack Adaptor DG","info":"","comments":"","x":574,"y":98,"z":"8c500c8b.91561","wires":[]},{"id":"f3c2409c.90b75","type":"comment","name":"request-method = reqExecSLS, req-action = \"execute SLS\"","info":"This would be the ideal adaptor the orchestrator DG will call, this just takes in slsName.","comments":"","x":585,"y":183,"z":"8c500c8b.91561","wires":[]},{"id":"206ad453.90dcdc","type":"comment","name":"Assumptions for this DG (example-server)","info":"Here we assume, the saltstack server is the example-vagrant based server. Where, the master saltstact controllers minion1 and minion2. ","comments":"","x":577,"y":139,"z":"8c500c8b.91561","wires":[]},{"id":"a9f084e0.590cc8","type":"execute","name":"execute","xml":"<execute plugin='org.openecomp.appc.adapter.ansible.AnsibleAdapter' method='reqExecCommand' >\n <parameter name='HostName' value='`$AgentUrl`'/>\n <parameter name='Port' value='`$Port`'/>\n <parameter name='User' value='`$User`'/>\n <parameter name='Password' value='`$Password`'/>\n <parameter name='Id' value='test2'/>\n <parameter name='slsName' value='test-file.sls'/>\n","comments":"","outputs":1,"x":279,"y":350,"z":"8c500c8b.91561","wires":[["953d6f9.633bc9","2b0177ad.6a0c88"]]},{"id":"953d6f9.633bc9","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":472,"y":311,"z":"8c500c8b.91561","wires":[["56ac40b9.ab7d9"]]},{"id":"2b0177ad.6a0c88","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":470,"y":383,"z":"8c500c8b.91561","wires":[["245f2c0b.5f8894"]]},{"id":"245f2c0b.5f8894","type":"switchNode","name":"switch","xml":"<switch test=\"`$org.onap.appc.adapter.saltstack.result.code`\">\n","comments":"","outputs":1,"x":622,"y":371,"z":"8c500c8b.91561","wires":[["9cb78c41.7c1fc","a2c5d59b.172848"]]},{"id":"a2c5d59b.172848","type":"success","name":"success","xml":"<outcome value='200'>\n","comments":"","outputs":1,"x":785,"y":317,"z":"8c500c8b.91561","wires":[["f809843e.12d3b8"]]},{"id":"9cb78c41.7c1fc","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":782,"y":386,"z":"8c500c8b.91561","wires":[["2ca5c925.6ee136"]]},{"id":"56ac40b9.ab7d9","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='200' />\n<parameter name='error-message' value='`$org.openecomp.appc.adapter.ansible.message`' />\n<parameter name='output.status.results' value='`$org.openecomp.appc.adapter.ansible.results`' />\n","comments":"","x":632,"y":295,"z":"8c500c8b.91561","wires":[]},{"id":"2ca5c925.6ee136","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='200' />\n<parameter name='error-message' value='`$org.openecomp.appc.adapter.ansible.message`' />\n<parameter name='output.status.results' value='`$org.openecomp.appc.adapter.ansible.results`' />\n","comments":"","x":952,"y":383,"z":"8c500c8b.91561","wires":[]}] \ No newline at end of file
diff --git a/saltstack-adapter/saltstack-directed-graphs-sample/reqExecSLS/APPC_saltstack-adapter-1.0 IDEAL.xml b/saltstack-adapter/saltstack-directed-graphs-sample/reqExecSLS/APPC_saltstack-adapter-1.0 IDEAL.xml
new file mode 100644
index 00000000..8a237f3f
--- /dev/null
+++ b/saltstack-adapter/saltstack-directed-graphs-sample/reqExecSLS/APPC_saltstack-adapter-1.0 IDEAL.xml
@@ -0,0 +1,26 @@
+<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='APPC' version='2.0.1'><method rpc='saltstack-adapter-1.0' mode='sync'>
+<execute plugin='org.openecomp.appc.adapter.ansible.AnsibleAdapter' method='reqExecCommand' >
+ <parameter name='HostName' value='`$AgentUrl`'/>
+ <parameter name='Port' value='`$Port`'/>
+ <parameter name='User' value='`$User`'/>
+ <parameter name='Password' value='`$Password`'/>
+ <parameter name='Id' value='test2'/>
+ <parameter name='slsName' value='test-file.sls'/>
+<outcome value='failure'>
+<return status='failure'>
+<parameter name='error-code' value='200' />
+<parameter name='error-message' value='`$org.openecomp.appc.adapter.ansible.message`' />
+<parameter name='output.status.results' value='`$org.openecomp.appc.adapter.ansible.results`' />
+</return></outcome><outcome value='Other'>
+<switch test="`$org.onap.appc.adapter.saltstack.result.code`">
+<outcome value='200'>
+<return status='success'>
+<parameter name='output.status.code' value='`$org.openecomp.appc.adapter.ansible.result.code`' />
+<parameter name='output.status.message' value='`$org.openecomp.appc.adapter.ansible.message`'/>
+<parameter name='output.status.results' value = '`$org.openecomp.appc.adapter.ansible.results`'/>
+</return></outcome><outcome value='Other'>
+<return status='failure'>
+<parameter name='error-code' value='200' />
+<parameter name='error-message' value='`$org.openecomp.appc.adapter.ansible.message`' />
+<parameter name='output.status.results' value='`$org.openecomp.appc.adapter.ansible.results`' />
+</return></outcome></switch></outcome></execute></method></service-logic> \ No newline at end of file
diff --git a/saltstack-adapter/saltstack-directed-graphs-sample/reqExecSLS/APPC_saltstack-adapter-1.0-exec-SLS-applyTo.json b/saltstack-adapter/saltstack-directed-graphs-sample/reqExecSLS/APPC_saltstack-adapter-1.0-exec-SLS-applyTo.json
new file mode 100644
index 00000000..f8c6a015
--- /dev/null
+++ b/saltstack-adapter/saltstack-directed-graphs-sample/reqExecSLS/APPC_saltstack-adapter-1.0-exec-SLS-applyTo.json
@@ -0,0 +1 @@
+[{"id":"edb39979.b1ccd8","type":"method","name":"saltstack-adapter-1.0","xml":"<method rpc='saltstack-adapter-1.0-exec-SLS-applyTo' mode='sync'>\n","comments":"","outputs":1,"x":476,"y":245,"z":"671ca899.284f68","wires":[["95c9ba42.6e4aa8"]]},{"id":"a16ea11e.f8d1c","type":"service-logic","name":"APPC 2.0.1","module":"APPC","version":"2.0.1","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='APPC' version='2.0.1'>","outputs":1,"x":267,"y":323,"z":"671ca899.284f68","wires":[["edb39979.b1ccd8"]]},{"id":"1591f92e.029ca7","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='200' />\n<parameter name='error-message' value='`$org.openecomp.appc.adapter.ansible.message`' />\n<parameter name='output.status.results' value='`$org.openecomp.appc.adapter.ansible.results`' />\n","comments":"","x":1191,"y":315,"z":"671ca899.284f68","wires":[]},{"id":"95c9ba42.6e4aa8","type":"execute","name":"execute","xml":"<execute plugin='org.openecomp.appc.adapter.ansible.AnsibleAdapter' method='reqExecCommand' >\n <parameter name='HostName' value='`$AgentUrl`'/>\n <parameter name='Port' value='`$Port`'/>\n <parameter name='User' value='`$User`'/>\n <parameter name='Password' value='`$Password`'/>\n <parameter name='Id' value='test1'/>\n <parameter name='cmd' value='salt &apos;*&apos; test.ping --out=json --static'/>\n <parameter name='slsExec' value='false'/>\n <parameter name='execTimeout' value='`$Timeout`'/>\n","comments":"","outputs":1,"x":684,"y":251,"z":"671ca899.284f68","wires":[["cd0c458a.2430b8","69e531e3.4efc3"]]},{"id":"38b44d70.9c85d2","type":"switchNode","name":"switch","xml":"<switch test=\"`$org.onap.appc.adapter.saltstack.result.code`\">\n","comments":"","outputs":1,"x":472,"y":405,"z":"671ca899.284f68","wires":[["505df598.069b9c","5d7292e.22ec06c"]]},{"id":"505df598.069b9c","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":658,"y":463,"z":"671ca899.284f68","wires":[["1591f92e.029ca7"]]},{"id":"cd0c458a.2430b8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":935,"y":244,"z":"671ca899.284f68","wires":[["1591f92e.029ca7"]]},{"id":"69e531e3.4efc3","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":282,"y":412,"z":"671ca899.284f68","wires":[["38b44d70.9c85d2"]]},{"id":"5d7292e.22ec06c","type":"success","name":"success","xml":"<outcome value='200'>\n","comments":"","outputs":1,"x":661,"y":405,"z":"671ca899.284f68","wires":[["c9df0cea.f2361"]]},{"id":"e4f7eb59.0abb58","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name='output.status.code' value='`$org.openecomp.appc.adapter.ansible.result.code`' />\n<parameter name='output.status.message' value='`$org.openecomp.appc.adapter.ansible.message`'/>\n<parameter name='output.status.results' value = '`$org.openecomp.appc.adapter.ansible.results`'/>\n","comments":"","x":1079,"y":564,"z":"671ca899.284f68","wires":[]},{"id":"8e586da4.570f1","type":"dgstart","name":"DGSTART","outputs":1,"x":245,"y":223,"z":"671ca899.284f68","wires":[["a16ea11e.f8d1c"]]},{"id":"71387074.137c1","type":"comment","name":"SaltStack Adaptor DG","info":"","comments":"","x":623,"y":110,"z":"671ca899.284f68","wires":[]},{"id":"c5e8c62d.021758","type":"comment","name":"request-method = reqExecSLS, req-action = \"execute SLS\"","info":"Here we basically test if minion1 is active by pinging to it, then respective sls file is executed on to it. \n","comments":"","x":634,"y":195,"z":"671ca899.284f68","wires":[]},{"id":"1805797.a241487","type":"comment","name":"Assumptions for this DG (example-server)","info":"Here we assume, the saltstack server is the example-vagrant based server. Where, the master saltstact controllers minion1 and minion2. ","comments":"","x":626,"y":151,"z":"671ca899.284f68","wires":[]},{"id":"c9df0cea.f2361","type":"switchNode","name":"switch","xml":"<switch test=\"`$test1.minion1`\">\n","comments":"","outputs":1,"x":825,"y":405,"z":"671ca899.284f68","wires":[["d83d6024.2454d","f4d70bbc.f0bc38"]]},{"id":"d83d6024.2454d","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":991,"y":459,"z":"671ca899.284f68","wires":[["1591f92e.029ca7"]]},{"id":"f4d70bbc.f0bc38","type":"other","name":"outcome","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":994,"y":401,"z":"671ca899.284f68","wires":[["e86d9995.b65c58"]]},{"id":"e86d9995.b65c58","type":"execute","name":"execute","xml":"<execute plugin='org.openecomp.appc.adapter.ansible.AnsibleAdapter' method='reqExecCommand' >\n <parameter name='HostName' value='`$AgentUrl`'/>\n <parameter name='Port' value='`$Port`'/>\n <parameter name='User' value='`$User`'/>\n <parameter name='Password' value='`$Password`'/>\n <parameter name='Id' value='test2'/>\n <parameter name='slsName' value='test-file.sls'/>\n <parameter name='applyTo' value='minion1'/>\n <parameter name='execTimeout' value='`$Timeout`'/>\n","comments":"","outputs":1,"x":398,"y":593,"z":"671ca899.284f68","wires":[["89ff1c2a.08f52","e20c4c85.43d3c"]]},{"id":"89ff1c2a.08f52","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":583,"y":562,"z":"671ca899.284f68","wires":[["6032e33e.5b044c"]]},{"id":"e20c4c85.43d3c","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":581,"y":634,"z":"671ca899.284f68","wires":[["8bb4c177.499c8"]]},{"id":"8bb4c177.499c8","type":"switchNode","name":"switch","xml":"<switch test=\"`$org.onap.appc.adapter.saltstack.result.code`\">\n","comments":"","outputs":1,"x":733,"y":622,"z":"671ca899.284f68","wires":[["905334fe.934d68","9c217c10.9d539"]]},{"id":"9c217c10.9d539","type":"success","name":"success","xml":"<outcome value='200'>\n","comments":"","outputs":1,"x":896,"y":568,"z":"671ca899.284f68","wires":[["e4f7eb59.0abb58"]]},{"id":"905334fe.934d68","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":893,"y":637,"z":"671ca899.284f68","wires":[["7026a88c.5bffd8"]]},{"id":"6032e33e.5b044c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='200' />\n<parameter name='error-message' value='`$org.openecomp.appc.adapter.ansible.message`' />\n<parameter name='output.status.results' value='`$org.openecomp.appc.adapter.ansible.results`' />\n","comments":"","x":735,"y":559,"z":"671ca899.284f68","wires":[]},{"id":"7026a88c.5bffd8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='200' />\n<parameter name='error-message' value='`$org.openecomp.appc.adapter.ansible.message`' />\n<parameter name='output.status.results' value='`$org.openecomp.appc.adapter.ansible.results`' />\n","comments":"","x":1054,"y":637,"z":"671ca899.284f68","wires":[]}] \ No newline at end of file
diff --git a/saltstack-adapter/saltstack-directed-graphs-sample/reqExecSLS/APPC_saltstack-adapter-1.0-exec-SLS-applyTo.xml b/saltstack-adapter/saltstack-directed-graphs-sample/reqExecSLS/APPC_saltstack-adapter-1.0-exec-SLS-applyTo.xml
new file mode 100644
index 00000000..a8262885
--- /dev/null
+++ b/saltstack-adapter/saltstack-directed-graphs-sample/reqExecSLS/APPC_saltstack-adapter-1.0-exec-SLS-applyTo.xml
@@ -0,0 +1,57 @@
+<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='APPC' version='2.0.1'><method rpc='saltstack-adapter-1.0-exec-SLS-applyTo' mode='sync'>
+<execute plugin='org.openecomp.appc.adapter.ansible.AnsibleAdapter' method='reqExecCommand' >
+ <parameter name='HostName' value='`$AgentUrl`'/>
+ <parameter name='Port' value='`$Port`'/>
+ <parameter name='User' value='`$User`'/>
+ <parameter name='Password' value='`$Password`'/>
+ <parameter name='Id' value='test1'/>
+ <parameter name='cmd' value='salt &apos;*&apos; test.ping --out=json --static'/>
+ <parameter name='slsExec' value='false'/>
+ <parameter name='execTimeout' value='`$Timeout`'/>
+<outcome value='failure'>
+<return status='failure'>
+<parameter name='error-code' value='200' />
+<parameter name='error-message' value='`$org.openecomp.appc.adapter.ansible.message`' />
+<parameter name='output.status.results' value='`$org.openecomp.appc.adapter.ansible.results`' />
+</return></outcome><outcome value='Other'>
+<switch test="`$org.onap.appc.adapter.saltstack.result.code`">
+<outcome value='200'>
+<switch test="`$test1.minion1`">
+<outcome value='true'>
+<execute plugin='org.openecomp.appc.adapter.ansible.AnsibleAdapter' method='reqExecCommand' >
+ <parameter name='HostName' value='`$AgentUrl`'/>
+ <parameter name='Port' value='`$Port`'/>
+ <parameter name='User' value='`$User`'/>
+ <parameter name='Password' value='`$Password`'/>
+ <parameter name='Id' value='test2'/>
+ <parameter name='slsName' value='test-file.sls'/>
+ <parameter name='applyTo' value='minion1'/>
+ <parameter name='execTimeout' value='`$Timeout`'/>
+<outcome value='failure'>
+<return status='failure'>
+<parameter name='error-code' value='200' />
+<parameter name='error-message' value='`$org.openecomp.appc.adapter.ansible.message`' />
+<parameter name='output.status.results' value='`$org.openecomp.appc.adapter.ansible.results`' />
+</return></outcome><outcome value='Other'>
+<switch test="`$org.onap.appc.adapter.saltstack.result.code`">
+<outcome value='200'>
+<return status='success'>
+<parameter name='output.status.code' value='`$org.openecomp.appc.adapter.ansible.result.code`' />
+<parameter name='output.status.message' value='`$org.openecomp.appc.adapter.ansible.message`'/>
+<parameter name='output.status.results' value = '`$org.openecomp.appc.adapter.ansible.results`'/>
+</return></outcome><outcome value='Other'>
+<return status='failure'>
+<parameter name='error-code' value='200' />
+<parameter name='error-message' value='`$org.openecomp.appc.adapter.ansible.message`' />
+<parameter name='output.status.results' value='`$org.openecomp.appc.adapter.ansible.results`' />
+</return></outcome></switch></outcome></execute></outcome><outcome value='Other'>
+<return status='failure'>
+<parameter name='error-code' value='200' />
+<parameter name='error-message' value='`$org.openecomp.appc.adapter.ansible.message`' />
+<parameter name='output.status.results' value='`$org.openecomp.appc.adapter.ansible.results`' />
+</return></outcome></switch></outcome><outcome value='Other'>
+<return status='failure'>
+<parameter name='error-code' value='200' />
+<parameter name='error-message' value='`$org.openecomp.appc.adapter.ansible.message`' />
+<parameter name='output.status.results' value='`$org.openecomp.appc.adapter.ansible.results`' />
+</return></outcome></switch></outcome></execute></method></service-logic> \ No newline at end of file
diff --git a/saltstack-adapter/saltstack-directed-graphs-sample/reqExecSLSFile/APPC_saltstack-adapter-1.0-SLSFILE.json b/saltstack-adapter/saltstack-directed-graphs-sample/reqExecSLSFile/APPC_saltstack-adapter-1.0-SLSFILE.json
new file mode 100644
index 00000000..a4ec6f1b
--- /dev/null
+++ b/saltstack-adapter/saltstack-directed-graphs-sample/reqExecSLSFile/APPC_saltstack-adapter-1.0-SLSFILE.json
@@ -0,0 +1 @@
+[{"id":"3228200a.5dc1a","type":"method","name":"saltstack-adapter-1.0","xml":"<method rpc='saltstack-adapter-1.0-SLSFILE' mode='sync'>\n","comments":"","outputs":1,"x":679,"y":282,"z":"6d4f912d.f07bc","wires":[["50b2729f.712eac"]]},{"id":"9fb54163.4fb28","type":"service-logic","name":"APPC 2.0.1","module":"APPC","version":"2.0.1","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='APPC' version='2.0.1'>","outputs":1,"x":456,"y":281,"z":"6d4f912d.f07bc","wires":[["3228200a.5dc1a"]]},{"id":"49109fbc.a7a14","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name='output.status.code' value='`$org.openecomp.appc.adapter.ansible.result.code`' />\n<parameter name='output.status.message' value='`$org.openecomp.appc.adapter.ansible.message`'/>\n<parameter name='output.status.results' value = '`$org.openecomp.appc.adapter.ansible.results`'/>\n","comments":"","x":1058,"y":374,"z":"6d4f912d.f07bc","wires":[]},{"id":"d030a396.56232","type":"dgstart","name":"DGSTART","outputs":1,"x":287,"y":280,"z":"6d4f912d.f07bc","wires":[["9fb54163.4fb28"]]},{"id":"281900c4.fd3e8","type":"comment","name":"SaltStack Adaptor DG","info":"","comments":"","x":664,"y":159,"z":"6d4f912d.f07bc","wires":[]},{"id":"431a69db.2d2c58","type":"comment","name":"request-method = reqExecSLS, req-action = \"execute SLS\"","info":"This would be the ideal adaptor the orchestrator DG will call, this just takes in slsName.","comments":"","x":675,"y":244,"z":"6d4f912d.f07bc","wires":[]},{"id":"4202e1ce.09495","type":"comment","name":"Assumptions for this DG (example-server)","info":"Here we assume, the saltstack server is the example-vagrant based server. Where, the master saltstact controllers minion1 and minion2. ","comments":"","x":667,"y":200,"z":"6d4f912d.f07bc","wires":[]},{"id":"50b2729f.712eac","type":"execute","name":"execute","xml":"<execute plugin='org.openecomp.appc.adapter.ansible.AnsibleAdapter' method='reqExecCommand' >\n <parameter name='HostName' value='`$AgentUrl`'/>\n <parameter name='Port' value='`$Port`'/>\n <parameter name='User' value='`$User`'/>\n <parameter name='Password' value='`$Password`'/>\n <parameter name='Id' value='test2'/>\n <parameter name='slsFile' value='file/location/test-file.sls'/>\n","comments":"","outputs":1,"x":369,"y":411,"z":"6d4f912d.f07bc","wires":[["71746570.35f0dc","3e4f7a4a.ae0dc6"]]},{"id":"71746570.35f0dc","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":562,"y":372,"z":"6d4f912d.f07bc","wires":[["e59a1a81.112a08"]]},{"id":"3e4f7a4a.ae0dc6","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":560,"y":444,"z":"6d4f912d.f07bc","wires":[["59e320fa.12908"]]},{"id":"59e320fa.12908","type":"switchNode","name":"switch","xml":"<switch test=\"`$org.onap.appc.adapter.saltstack.result.code`\">\n","comments":"","outputs":1,"x":712,"y":432,"z":"6d4f912d.f07bc","wires":[["f81ed07.2135c3","eb55b5a9.f0d2f8"]]},{"id":"eb55b5a9.f0d2f8","type":"success","name":"success","xml":"<outcome value='200'>\n","comments":"","outputs":1,"x":875,"y":378,"z":"6d4f912d.f07bc","wires":[["49109fbc.a7a14"]]},{"id":"f81ed07.2135c3","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":872,"y":447,"z":"6d4f912d.f07bc","wires":[["6549631f.8e516c"]]},{"id":"e59a1a81.112a08","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='200' />\n<parameter name='error-message' value='`$org.openecomp.appc.adapter.ansible.message`' />\n<parameter name='output.status.results' value='`$org.openecomp.appc.adapter.ansible.results`' />\n","comments":"","x":722,"y":356,"z":"6d4f912d.f07bc","wires":[]},{"id":"6549631f.8e516c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='200' />\n<parameter name='error-message' value='`$org.openecomp.appc.adapter.ansible.message`' />\n<parameter name='output.status.results' value='`$org.openecomp.appc.adapter.ansible.results`' />\n","comments":"","x":1042,"y":444,"z":"6d4f912d.f07bc","wires":[]}] \ No newline at end of file
diff --git a/saltstack-adapter/saltstack-directed-graphs-sample/reqExecSLSFile/APPC_saltstack-adapter-1.0-SLSFILE.xml b/saltstack-adapter/saltstack-directed-graphs-sample/reqExecSLSFile/APPC_saltstack-adapter-1.0-SLSFILE.xml
new file mode 100644
index 00000000..bd3325b3
--- /dev/null
+++ b/saltstack-adapter/saltstack-directed-graphs-sample/reqExecSLSFile/APPC_saltstack-adapter-1.0-SLSFILE.xml
@@ -0,0 +1,26 @@
+<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='APPC' version='2.0.1'><method rpc='saltstack-adapter-1.0-SLSFILE' mode='sync'>
+<execute plugin='org.openecomp.appc.adapter.ansible.AnsibleAdapter' method='reqExecCommand' >
+ <parameter name='HostName' value='`$AgentUrl`'/>
+ <parameter name='Port' value='`$Port`'/>
+ <parameter name='User' value='`$User`'/>
+ <parameter name='Password' value='`$Password`'/>
+ <parameter name='Id' value='test2'/>
+ <parameter name='slsFile' value='file/location/test-file.sls'/>
+<outcome value='failure'>
+<return status='failure'>
+<parameter name='error-code' value='200' />
+<parameter name='error-message' value='`$org.openecomp.appc.adapter.ansible.message`' />
+<parameter name='output.status.results' value='`$org.openecomp.appc.adapter.ansible.results`' />
+</return></outcome><outcome value='Other'>
+<switch test="`$org.onap.appc.adapter.saltstack.result.code`">
+<outcome value='200'>
+<return status='success'>
+<parameter name='output.status.code' value='`$org.openecomp.appc.adapter.ansible.result.code`' />
+<parameter name='output.status.message' value='`$org.openecomp.appc.adapter.ansible.message`'/>
+<parameter name='output.status.results' value = '`$org.openecomp.appc.adapter.ansible.results`'/>
+</return></outcome><outcome value='Other'>
+<return status='failure'>
+<parameter name='error-code' value='200' />
+<parameter name='error-message' value='`$org.openecomp.appc.adapter.ansible.message`' />
+<parameter name='output.status.results' value='`$org.openecomp.appc.adapter.ansible.results`' />
+</return></outcome></switch></outcome></execute></method></service-logic> \ No newline at end of file
diff --git a/saltstack-adapter/saltstack-directed-graphs-sample/reqExecSLSFile/APPC_saltstack-adapter-1.0-exec-SLSFile-applyTo.json b/saltstack-adapter/saltstack-directed-graphs-sample/reqExecSLSFile/APPC_saltstack-adapter-1.0-exec-SLSFile-applyTo.json
new file mode 100644
index 00000000..de4f0fbb
--- /dev/null
+++ b/saltstack-adapter/saltstack-directed-graphs-sample/reqExecSLSFile/APPC_saltstack-adapter-1.0-exec-SLSFile-applyTo.json
@@ -0,0 +1 @@
+[{"id":"9a6bf94f.d969f8","type":"method","name":"saltstack-adapter-1.0","xml":"<method rpc='saltstack-adapter-1.0-exec-SLSFile-applyTo' mode='sync'>\n","comments":"","outputs":1,"x":498,"y":240,"z":"723548c7.652d78","wires":[["138ad7ed.403248"]]},{"id":"4bb87049.3f546","type":"service-logic","name":"APPC 2.0.1","module":"APPC","version":"2.0.1","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='APPC' version='2.0.1'>","outputs":1,"x":289,"y":318,"z":"723548c7.652d78","wires":[["9a6bf94f.d969f8"]]},{"id":"6c593992.106038","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='200' />\n<parameter name='error-message' value='`$org.openecomp.appc.adapter.ansible.message`' />\n<parameter name='output.status.results' value='`$org.openecomp.appc.adapter.ansible.results`' />\n","comments":"","x":1202,"y":280,"z":"723548c7.652d78","wires":[]},{"id":"138ad7ed.403248","type":"execute","name":"execute","xml":"<execute plugin='org.openecomp.appc.adapter.ansible.AnsibleAdapter' method='reqExecCommand' >\n <parameter name='HostName' value='`$AgentUrl`'/>\n <parameter name='Port' value='`$Port`'/>\n <parameter name='User' value='`$User`'/>\n <parameter name='Password' value='`$Password`'/>\n <parameter name='Id' value='test1'/>\n <parameter name='cmd' value='salt &apos;*&apos; test.ping --out=json --static'/>\n <parameter name='slsExec' value='false'/>\n <parameter name='execTimeout' value='`$Timeout`'/>\n","comments":"","outputs":1,"x":706,"y":246,"z":"723548c7.652d78","wires":[["167273ed.f0577c","954a34ea.701368"]]},{"id":"d5841e65.537ba","type":"switchNode","name":"switch","xml":"<switch test=\"`$org.onap.appc.adapter.saltstack.result.code`\">\n","comments":"","outputs":1,"x":494,"y":400,"z":"723548c7.652d78","wires":[["ede42371.2f52b","d306d7a0.c830e8"]]},{"id":"ede42371.2f52b","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":680,"y":458,"z":"723548c7.652d78","wires":[["6c593992.106038"]]},{"id":"167273ed.f0577c","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":957,"y":239,"z":"723548c7.652d78","wires":[["6c593992.106038"]]},{"id":"954a34ea.701368","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":304,"y":407,"z":"723548c7.652d78","wires":[["d5841e65.537ba"]]},{"id":"d306d7a0.c830e8","type":"success","name":"success","xml":"<outcome value='200'>\n","comments":"","outputs":1,"x":683,"y":400,"z":"723548c7.652d78","wires":[["5b12ba31.94b3b4"]]},{"id":"9ef7fcc3.69279","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name='output.status.code' value='`$org.openecomp.appc.adapter.ansible.result.code`' />\n<parameter name='output.status.message' value='`$org.openecomp.appc.adapter.ansible.message`'/>\n<parameter name='output.status.results' value = '`$org.openecomp.appc.adapter.ansible.results`'/>\n","comments":"","x":1101,"y":559,"z":"723548c7.652d78","wires":[]},{"id":"7803eeaf.1e31d","type":"dgstart","name":"DGSTART","outputs":1,"x":267,"y":218,"z":"723548c7.652d78","wires":[["4bb87049.3f546"]]},{"id":"9c6f1e7c.2a3d9","type":"comment","name":"SaltStack Adaptor DG","info":"","comments":"","x":645,"y":105,"z":"723548c7.652d78","wires":[]},{"id":"93ea02a5.4e792","type":"comment","name":"request-method = reqExecSLS, req-action = \"execute SLS FILE\"","info":"Here we basically test if minion1 is active by pinging to it, then respective sls file is executed on to it. \n","comments":"","x":656,"y":190,"z":"723548c7.652d78","wires":[]},{"id":"243edbf.f35fc24","type":"comment","name":"Assumptions for this DG (example-server)","info":"Here we assume, the saltstack server is the example-vagrant based server. Where, the master saltstact controllers minion1 and minion2. ","comments":"","x":648,"y":146,"z":"723548c7.652d78","wires":[]},{"id":"5b12ba31.94b3b4","type":"switchNode","name":"switch","xml":"<switch test=\"`$test1.minion1`\">\n","comments":"","outputs":1,"x":847,"y":400,"z":"723548c7.652d78","wires":[["9bf0915.96f217","f6e533d.95d99d"]]},{"id":"9bf0915.96f217","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1013,"y":454,"z":"723548c7.652d78","wires":[["6c593992.106038"]]},{"id":"f6e533d.95d99d","type":"other","name":"outcome","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1016,"y":396,"z":"723548c7.652d78","wires":[["eb57ba41.1d7328"]]},{"id":"eb57ba41.1d7328","type":"execute","name":"execute","xml":"<execute plugin='org.openecomp.appc.adapter.ansible.AnsibleAdapter' method='reqExecCommand' >\n <parameter name='HostName' value='`$AgentUrl`'/>\n <parameter name='Port' value='`$Port`'/>\n <parameter name='User' value='`$User`'/>\n <parameter name='Password' value='`$Password`'/>\n <parameter name='Id' value='test2'/>\n <parameter name='slsFile' value='file/location/test.sls'/>\n <parameter name='applyTo' value='minion1'/>\n <parameter name='execTimeout' value='`$Timeout`'/>\n","comments":"","outputs":1,"x":420,"y":588,"z":"723548c7.652d78","wires":[["892a8f1d.7d77f","74be8a6e.975f24"]]},{"id":"892a8f1d.7d77f","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":605,"y":557,"z":"723548c7.652d78","wires":[["8c091fe.c6cbfe"]]},{"id":"74be8a6e.975f24","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":603,"y":629,"z":"723548c7.652d78","wires":[["3875d695.fd37ca"]]},{"id":"3875d695.fd37ca","type":"switchNode","name":"switch","xml":"<switch test=\"`$org.onap.appc.adapter.saltstack.result.code`\">\n","comments":"","outputs":1,"x":755,"y":617,"z":"723548c7.652d78","wires":[["2e60af80.ea3a6","24ed6dd2.6624c2"]]},{"id":"24ed6dd2.6624c2","type":"success","name":"success","xml":"<outcome value='200'>\n","comments":"","outputs":1,"x":918,"y":563,"z":"723548c7.652d78","wires":[["9ef7fcc3.69279"]]},{"id":"2e60af80.ea3a6","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":915,"y":632,"z":"723548c7.652d78","wires":[["2e4414a7.ba6d4c"]]},{"id":"8c091fe.c6cbfe","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='200' />\n<parameter name='error-message' value='`$org.openecomp.appc.adapter.ansible.message`' />\n<parameter name='output.status.results' value='`$org.openecomp.appc.adapter.ansible.results`' />\n","comments":"","x":757,"y":554,"z":"723548c7.652d78","wires":[]},{"id":"2e4414a7.ba6d4c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='200' />\n<parameter name='error-message' value='`$org.openecomp.appc.adapter.ansible.message`' />\n<parameter name='output.status.results' value='`$org.openecomp.appc.adapter.ansible.results`' />\n","comments":"","x":1076,"y":632,"z":"723548c7.652d78","wires":[]}] \ No newline at end of file
diff --git a/saltstack-adapter/saltstack-directed-graphs-sample/reqExecSLSFile/APPC_saltstack-adapter-1.0-exec-SLSFile-applyTo.xml b/saltstack-adapter/saltstack-directed-graphs-sample/reqExecSLSFile/APPC_saltstack-adapter-1.0-exec-SLSFile-applyTo.xml
new file mode 100644
index 00000000..314cd345
--- /dev/null
+++ b/saltstack-adapter/saltstack-directed-graphs-sample/reqExecSLSFile/APPC_saltstack-adapter-1.0-exec-SLSFile-applyTo.xml
@@ -0,0 +1,57 @@
+<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='APPC' version='2.0.1'><method rpc='saltstack-adapter-1.0-exec-SLSFile-applyTo' mode='sync'>
+<execute plugin='org.openecomp.appc.adapter.ansible.AnsibleAdapter' method='reqExecCommand' >
+ <parameter name='HostName' value='`$AgentUrl`'/>
+ <parameter name='Port' value='`$Port`'/>
+ <parameter name='User' value='`$User`'/>
+ <parameter name='Password' value='`$Password`'/>
+ <parameter name='Id' value='test1'/>
+ <parameter name='cmd' value='salt &apos;*&apos; test.ping --out=json --static'/>
+ <parameter name='slsExec' value='false'/>
+ <parameter name='execTimeout' value='`$Timeout`'/>
+<outcome value='failure'>
+<return status='failure'>
+<parameter name='error-code' value='200' />
+<parameter name='error-message' value='`$org.openecomp.appc.adapter.ansible.message`' />
+<parameter name='output.status.results' value='`$org.openecomp.appc.adapter.ansible.results`' />
+</return></outcome><outcome value='Other'>
+<switch test="`$org.onap.appc.adapter.saltstack.result.code`">
+<outcome value='200'>
+<switch test="`$test1.minion1`">
+<outcome value='true'>
+<execute plugin='org.openecomp.appc.adapter.ansible.AnsibleAdapter' method='reqExecCommand' >
+ <parameter name='HostName' value='`$AgentUrl`'/>
+ <parameter name='Port' value='`$Port`'/>
+ <parameter name='User' value='`$User`'/>
+ <parameter name='Password' value='`$Password`'/>
+ <parameter name='Id' value='test2'/>
+ <parameter name='slsFile' value='file/location/test.sls'/>
+ <parameter name='applyTo' value='minion1'/>
+ <parameter name='execTimeout' value='`$Timeout`'/>
+<outcome value='failure'>
+<return status='failure'>
+<parameter name='error-code' value='200' />
+<parameter name='error-message' value='`$org.openecomp.appc.adapter.ansible.message`' />
+<parameter name='output.status.results' value='`$org.openecomp.appc.adapter.ansible.results`' />
+</return></outcome><outcome value='Other'>
+<switch test="`$org.onap.appc.adapter.saltstack.result.code`">
+<outcome value='200'>
+<return status='success'>
+<parameter name='output.status.code' value='`$org.openecomp.appc.adapter.ansible.result.code`' />
+<parameter name='output.status.message' value='`$org.openecomp.appc.adapter.ansible.message`'/>
+<parameter name='output.status.results' value = '`$org.openecomp.appc.adapter.ansible.results`'/>
+</return></outcome><outcome value='Other'>
+<return status='failure'>
+<parameter name='error-code' value='200' />
+<parameter name='error-message' value='`$org.openecomp.appc.adapter.ansible.message`' />
+<parameter name='output.status.results' value='`$org.openecomp.appc.adapter.ansible.results`' />
+</return></outcome></switch></outcome></execute></outcome><outcome value='Other'>
+<return status='failure'>
+<parameter name='error-code' value='200' />
+<parameter name='error-message' value='`$org.openecomp.appc.adapter.ansible.message`' />
+<parameter name='output.status.results' value='`$org.openecomp.appc.adapter.ansible.results`' />
+</return></outcome></switch></outcome><outcome value='Other'>
+<return status='failure'>
+<parameter name='error-code' value='200' />
+<parameter name='error-message' value='`$org.openecomp.appc.adapter.ansible.message`' />
+<parameter name='output.status.results' value='`$org.openecomp.appc.adapter.ansible.results`' />
+</return></outcome></switch></outcome></execute></method></service-logic> \ No newline at end of file