saltstack adaptor DGs addition 53/56553/3
authorGanesh Chandrasekaran <ganesh.c@samsung.com>
Tue, 17 Jul 2018 02:02:17 +0000 (11:02 +0900)
committerGanesh Chandrasekaran <ganesh.c@samsung.com>
Tue, 17 Jul 2018 02:19:50 +0000 (11:19 +0900)
Issue-ID: CCSDK-368

Change-Id: I5f66693109c14eb64e4576caeeb84440a940fffa
Signed-off-by: Ganesh Chandrasekaran <ganesh.c@samsung.com>
18 files changed:
saltstack-adapter/saltstack-adapter-provider/src/main/java/org/onap/ccsdk/sli/adaptors/saltstack/impl/SaltstackAdapterImpl.java
saltstack-adapter/saltstack-adapter-provider/src/test/java/org/onap/ccsdk/adapter/impl/TestSaltstackAdapterImpl.java
saltstack-adapter/saltstack-directed-graphs-sample/reqExecCommand/APPC_saltstack-adapter-1.0-exe-nonSLS.json [new file with mode: 0644]
saltstack-adapter/saltstack-directed-graphs-sample/reqExecCommand/APPC_saltstack-adapter-1.0-exe-nonSLS.xml [new file with mode: 0644]
saltstack-adapter/saltstack-directed-graphs-sample/reqExecCommand/APPC_saltstack-adapter-1.0-exec-SLSFile.json [new file with mode: 0644]
saltstack-adapter/saltstack-directed-graphs-sample/reqExecCommand/APPC_saltstack-adapter-1.0-exec-SLSFile.xml [new file with mode: 0644]
saltstack-adapter/saltstack-directed-graphs-sample/reqExecCommand/APPC_saltstack-adapter-1.0-exec-multi-sls.json [new file with mode: 0644]
saltstack-adapter/saltstack-directed-graphs-sample/reqExecCommand/APPC_saltstack-adapter-1.0-exec-multi-sls.xml [new file with mode: 0644]
saltstack-adapter/saltstack-directed-graphs-sample/reqExecCommand/APPC_saltstack-adapter-1.0-exec-single-SLSComm.json [new file with mode: 0644]
saltstack-adapter/saltstack-directed-graphs-sample/reqExecCommand/APPC_saltstack-adapter-1.0-exec-single-SLSComm.xml [new file with mode: 0644]
saltstack-adapter/saltstack-directed-graphs-sample/reqExecSLS/APPC_saltstack-adapter-1.0 IDEAL.json [new file with mode: 0644]
saltstack-adapter/saltstack-directed-graphs-sample/reqExecSLS/APPC_saltstack-adapter-1.0 IDEAL.xml [new file with mode: 0644]
saltstack-adapter/saltstack-directed-graphs-sample/reqExecSLS/APPC_saltstack-adapter-1.0-exec-SLS-applyTo.json [new file with mode: 0644]
saltstack-adapter/saltstack-directed-graphs-sample/reqExecSLS/APPC_saltstack-adapter-1.0-exec-SLS-applyTo.xml [new file with mode: 0644]
saltstack-adapter/saltstack-directed-graphs-sample/reqExecSLSFile/APPC_saltstack-adapter-1.0-SLSFILE.json [new file with mode: 0644]
saltstack-adapter/saltstack-directed-graphs-sample/reqExecSLSFile/APPC_saltstack-adapter-1.0-SLSFILE.xml [new file with mode: 0644]
saltstack-adapter/saltstack-directed-graphs-sample/reqExecSLSFile/APPC_saltstack-adapter-1.0-exec-SLSFile-applyTo.json [new file with mode: 0644]
saltstack-adapter/saltstack-directed-graphs-sample/reqExecSLSFile/APPC_saltstack-adapter-1.0-exec-SLSFile-applyTo.xml [new file with mode: 0644]

index e4bceb5..77874b0 100644 (file)
@@ -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) {
index 48f5c20..98137a8 100644 (file)
@@ -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
@@ -825,6 +825,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 (file)
index 0000000..3a287e3
--- /dev/null
@@ -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 (file)
index 0000000..eadf336
--- /dev/null
@@ -0,0 +1,50 @@
+<service-logic xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'\r
+               xmlns='http://www.onap.org/sdnc/svclogic'\r
+               xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd'\r
+               module='APPC' version='2.0.1'>\r
+    <method rpc='saltstack-adapter-1.0-exe-nonSLS' mode='sync'>\r
+        <execute plugin='org.openecomp.appc.adapter.ansible.AnsibleAdapter'\r
+                 method='reqExecCommand'>\r
+            <parameter name='HostName' value='`$AgentUrl`'/>\r
+            <parameter name='Port' value='`$Port`'/>\r
+            <parameter name='User' value='`$User`'/>\r
+            <parameter name='Password' value='`$Password`'/>\r
+            <parameter name='Id' value='test1'/>\r
+            <parameter name='cmd' value='cd /srv/salt; ls -l'/>\r
+            <parameter name='slsExec' value='false'/>\r
+            <parameter name='execTimeout' value='`$Timeout`'/>\r
+            <outcome value='failure'>\r
+                <return status='failure'>\r
+                    <parameter name='error-code' value='200'/>\r
+                    <parameter name='error-message'\r
+                               value='`$org.openecomp.appc.adapter.ansible.message`'/>\r
+                    <parameter name='output.status.results'\r
+                               value='`$org.openecomp.appc.adapter.ansible.results`'/>\r
+                </return>\r
+            </outcome>\r
+            <outcome value='Other'>\r
+                <switch test="`$org.onap.appc.adapter.saltstack.result.code`">\r
+                    <outcome value='Other'>\r
+                        <return status='failure'>\r
+                            <parameter name='error-code' value='200'/>\r
+                            <parameter name='error-message'\r
+                                       value='`$org.openecomp.appc.adapter.ansible.message`'/>\r
+                            <parameter name='output.status.results'\r
+                                       value='`$org.openecomp.appc.adapter.ansible.results`'/>\r
+                        </return>\r
+                    </outcome>\r
+                    <outcome value='200'>\r
+                        <return status='success'>\r
+                            <parameter name='output.status.code'\r
+                                       value='`$org.openecomp.appc.adapter.ansible.result.code`'/>\r
+                            <parameter name='output.status.message'\r
+                                       value='`$org.openecomp.appc.adapter.ansible.message`'/>\r
+                            <parameter name='output.status.results'\r
+                                       value='`$org.openecomp.appc.adapter.ansible.results`'/>\r
+                        </return>\r
+                    </outcome>\r
+                </switch>\r
+            </outcome>\r
+        </execute>\r
+    </method>\r
+</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 (file)
index 0000000..95178ac
--- /dev/null
@@ -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 (file)
index 0000000..c112723
--- /dev/null
@@ -0,0 +1,112 @@
+<service-logic xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'\r
+               xmlns='http://www.onap.org/sdnc/svclogic'\r
+               xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd'\r
+               module='APPC' version='2.0.1'>\r
+    <method rpc='saltstack-adapter-1.0-exec-SLSFile' mode='sync'>\r
+        <execute plugin='org.openecomp.appc.adapter.ansible.AnsibleAdapter'\r
+                 method='reqExecCommand'>\r
+            <parameter name='HostName' value='`$AgentUrl`'/>\r
+            <parameter name='Port' value='`$Port`'/>\r
+            <parameter name='User' value='`$User`'/>\r
+            <parameter name='Password' value='`$Password`'/>\r
+            <parameter name='Id' value='test1'/>\r
+            <parameter name='cmd'\r
+                       value='salt &apos;*&apos; test.ping --out=json --static'/>\r
+            <parameter name='slsExec' value='false'/>\r
+            <parameter name='execTimeout' value='`$Timeout`'/>\r
+            <outcome value='failure'>\r
+                <return status='failure'>\r
+                    <parameter name='error-code' value='200'/>\r
+                    <parameter name='error-message'\r
+                               value='`$org.openecomp.appc.adapter.ansible.message`'/>\r
+                    <parameter name='output.status.results'\r
+                               value='`$org.openecomp.appc.adapter.ansible.results`'/>\r
+                </return>\r
+            </outcome>\r
+            <outcome value='Other'>\r
+                <switch test="`$org.onap.appc.adapter.saltstack.result.code`">\r
+                    <outcome value='Other'>\r
+                        <return status='failure'>\r
+                            <parameter name='error-code' value='200'/>\r
+                            <parameter name='error-message'\r
+                                       value='`$org.openecomp.appc.adapter.ansible.message`'/>\r
+                            <parameter name='output.status.results'\r
+                                       value='`$org.openecomp.appc.adapter.ansible.results`'/>\r
+                        </return>\r
+                    </outcome>\r
+                    <outcome value='200'>\r
+                        <switch test="`$test1.minion1`">\r
+                            <outcome value='Other'>\r
+                                <return status='failure'>\r
+                                    <parameter name='error-code' value='200'/>\r
+                                    <parameter name='error-message'\r
+                                               value='`$org.openecomp.appc.adapter.ansible.message`'/>\r
+                                    <parameter name='output.status.results'\r
+                                               value='`$org.openecomp.appc.adapter.ansible.results`'/>\r
+                                </return>\r
+                            </outcome>\r
+                            <outcome value='true'>\r
+                                <execute\r
+                                        plugin='org.openecomp.appc.adapter.ansible.AnsibleAdapter'\r
+                                        method='reqExecCommand'>\r
+                                    <parameter name='HostName'\r
+                                               value='`$AgentUrl`'/>\r
+                                    <parameter name='Port' value='`$Port`'/>\r
+                                    <parameter name='User' value='`$User`'/>\r
+                                    <parameter name='Password'\r
+                                               value='`$Password`'/>\r
+                                    <parameter name='Id' value='test2'/>\r
+                                    <parameter name='cmd'\r
+                                               value='cd /srv/salt/; salt &apos;minion1&apos; state.apply vim --out=json --static'/>\r
+                                    <parameter name='slsExec' value='true'/>\r
+                                    <parameter name='execTimeout'\r
+                                               value='`$Timeout`'/>\r
+                                    <outcome value='failure'>\r
+                                        <return status='failure'>\r
+                                            <parameter name='error-code'\r
+                                                       value='200'/>\r
+                                            <parameter name='error-message'\r
+                                                       value='`$org.openecomp.appc.adapter.ansible.message`'/>\r
+                                            <parameter\r
+                                                    name='output.status.results'\r
+                                                    value='`$org.openecomp.appc.adapter.ansible.results`'/>\r
+                                        </return>\r
+                                    </outcome>\r
+                                    <outcome value='Other'>\r
+                                        <switch test="`$org.onap.appc.adapter.saltstack.result.code`">\r
+                                            <outcome value='200'>\r
+                                                <return status='success'>\r
+                                                    <parameter\r
+                                                            name='output.status.code'\r
+                                                            value='`$org.openecomp.appc.adapter.ansible.result.code`'/>\r
+                                                    <parameter\r
+                                                            name='output.status.message'\r
+                                                            value='`$org.openecomp.appc.adapter.ansible.message`'/>\r
+                                                    <parameter\r
+                                                            name='output.status.results'\r
+                                                            value='`$org.openecomp.appc.adapter.ansible.results`'/>\r
+                                                </return>\r
+                                            </outcome>\r
+                                            <outcome value='Other'>\r
+                                                <return status='failure'>\r
+                                                    <parameter name='error-code'\r
+                                                               value='200'/>\r
+                                                    <parameter\r
+                                                            name='error-message'\r
+                                                            value='`$org.openecomp.appc.adapter.ansible.message`'/>\r
+                                                    <parameter\r
+                                                            name='output.status.results'\r
+                                                            value='`$org.openecomp.appc.adapter.ansible.results`'/>\r
+                                                </return>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                    </outcome>\r
+                                </execute>\r
+                            </outcome>\r
+                        </switch>\r
+                    </outcome>\r
+                </switch>\r
+            </outcome>\r
+        </execute>\r
+    </method>\r
+</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 (file)
index 0000000..8525458
--- /dev/null
@@ -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 (file)
index 0000000..0e5e17c
--- /dev/null
@@ -0,0 +1,129 @@
+<service-logic xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'\r
+               xmlns='http://www.onap.org/sdnc/svclogic'\r
+               xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd'\r
+               module='APPC' version='2.0.1'>\r
+    <method rpc='saltstack-adapter-1.0-exec-multi-sls' mode='sync'>\r
+        <execute plugin='org.openecomp.appc.adapter.ansible.AnsibleAdapter'\r
+                 method='reqExecCommand'>\r
+            <parameter name='HostName' value='`$AgentUrl`'/>\r
+            <parameter name='Port' value='`$Port`'/>\r
+            <parameter name='User' value='`$User`'/>\r
+            <parameter name='Password' value='`$Password`'/>\r
+            <parameter name='Id' value='test1'/>\r
+            <parameter name='cmd'\r
+                       value='salt &apos;*&apos; test.ping --out=json --static'/>\r
+            <parameter name='slsExec' value='false'/>\r
+            <parameter name='execTimeout' value='`$Timeout`'/>\r
+            <outcome value='failure'>\r
+                <return status='failure'>\r
+                    <parameter name='error-code' value='200'/>\r
+                    <parameter name='error-message'\r
+                               value='`$org.openecomp.appc.adapter.ansible.message`'/>\r
+                    <parameter name='output.status.results'\r
+                               value='`$org.openecomp.appc.adapter.ansible.results`'/>\r
+                </return>\r
+            </outcome>\r
+            <outcome value='Other'>\r
+                <switch test="`$org.onap.appc.adapter.saltstack.result.code`">\r
+                    <outcome value='Other'>\r
+                        <return status='failure'>\r
+                            <parameter name='error-code' value='200'/>\r
+                            <parameter name='error-message'\r
+                                       value='`$org.openecomp.appc.adapter.ansible.message`'/>\r
+                            <parameter name='output.status.results'\r
+                                       value='`$org.openecomp.appc.adapter.ansible.results`'/>\r
+                        </return>\r
+                    </outcome>\r
+                    <outcome value='200'>\r
+                        <switch test="`$test1.minion1`">\r
+                            <outcome value='Other'>\r
+                                <return status='failure'>\r
+                                    <parameter name='error-code' value='200'/>\r
+                                    <parameter name='error-message'\r
+                                               value='`$org.openecomp.appc.adapter.ansible.message`'/>\r
+                                    <parameter name='output.status.results'\r
+                                               value='`$org.openecomp.appc.adapter.ansible.results`'/>\r
+                                </return>\r
+                            </outcome>\r
+                            <outcome value='true'>\r
+                                <execute\r
+                                        plugin='org.openecomp.appc.adapter.ansible.AnsibleAdapter'\r
+                                        method='reqExecCommand'>\r
+                                    <parameter name='HostName'\r
+                                               value='`$AgentUrl`'/>\r
+                                    <parameter name='Port' value='`$Port`'/>\r
+                                    <parameter name='User' value='`$User`'/>\r
+                                    <parameter name='Password'\r
+                                               value='`$Password`'/>\r
+                                    <parameter name='Id' value='test2'/>\r
+                                    <parameter name='cmd'\r
+                                               value='salt &apos;minion1&apos; pkg.install vim --out=json --static'/>\r
+                                    <parameter name='slsExec' value='false'/>\r
+                                    <parameter name='execTimeout'\r
+                                               value='`$Timeout`'/>\r
+                                    <outcome value='failure'>\r
+                                        <return status='failure'>\r
+                                            <parameter name='error-code'\r
+                                                       value='200'/>\r
+                                            <parameter name='error-message'\r
+                                                       value='`$org.openecomp.appc.adapter.ansible.message`'/>\r
+                                            <parameter\r
+                                                    name='output.status.results'\r
+                                                    value='`$org.openecomp.appc.adapter.ansible.results`'/>\r
+                                        </return>\r
+                                    </outcome>\r
+                                    <outcome value='Other'>\r
+                                        <switch test="`$org.onap.appc.adapter.saltstack.result.code`">\r
+                                            <outcome value='200'>\r
+                                                <switch test="`$test2.minion1.retcode`">\r
+                                                    <outcome value='0'>\r
+                                                        <return status='success'>\r
+                                                            <parameter\r
+                                                                    name='output.status.code'\r
+                                                                    value='`$org.openecomp.appc.adapter.ansible.result.code`'/>\r
+                                                            <parameter\r
+                                                                    name='output.status.message'\r
+                                                                    value='`$org.openecomp.appc.adapter.ansible.message`'/>\r
+                                                            <parameter\r
+                                                                    name='output.status.results'\r
+                                                                    value='`$org.openecomp.appc.adapter.ansible.results`'/>\r
+                                                        </return>\r
+                                                    </outcome>\r
+                                                    <outcome value='Other'>\r
+                                                        <return status='failure'>\r
+                                                            <parameter\r
+                                                                    name='error-code'\r
+                                                                    value='200'/>\r
+                                                            <parameter\r
+                                                                    name='error-message'\r
+                                                                    value='`$org.openecomp.appc.adapter.ansible.message`'/>\r
+                                                            <parameter\r
+                                                                    name='output.status.results'\r
+                                                                    value='`$org.openecomp.appc.adapter.ansible.results`'/>\r
+                                                        </return>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                            </outcome>\r
+                                            <outcome value='Other'>\r
+                                                <return status='failure'>\r
+                                                    <parameter name='error-code'\r
+                                                               value='200'/>\r
+                                                    <parameter\r
+                                                            name='error-message'\r
+                                                            value='`$org.openecomp.appc.adapter.ansible.message`'/>\r
+                                                    <parameter\r
+                                                            name='output.status.results'\r
+                                                            value='`$org.openecomp.appc.adapter.ansible.results`'/>\r
+                                                </return>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                    </outcome>\r
+                                </execute>\r
+                            </outcome>\r
+                        </switch>\r
+                    </outcome>\r
+                </switch>\r
+            </outcome>\r
+        </execute>\r
+    </method>\r
+</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 (file)
index 0000000..a8535d0
--- /dev/null
@@ -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 (file)
index 0000000..57620f5
--- /dev/null
@@ -0,0 +1,51 @@
+<service-logic xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'\r
+               xmlns='http://www.onap.org/sdnc/svclogic'\r
+               xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd'\r
+               module='APPC' version='2.0.1'>\r
+    <method rpc='saltstack-adapter-1.0-exec-single-SLSComm' mode='sync'>\r
+        <execute plugin='org.openecomp.appc.adapter.ansible.AnsibleAdapter'\r
+                 method='reqExecCommand'>\r
+            <parameter name='HostName' value='`$AgentUrl`'/>\r
+            <parameter name='Port' value='`$Port`'/>\r
+            <parameter name='User' value='`$User`'/>\r
+            <parameter name='Password' value='`$Password`'/>\r
+            <parameter name='Id' value='test1'/>\r
+            <parameter name='cmd'\r
+                       value='salt &apos;*&apos; test.ping --out=json --static'/>\r
+            <parameter name='slsExec' value='false'/>\r
+            <parameter name='execTimeout' value='`$Timeout`'/>\r
+            <outcome value='failure'>\r
+                <return status='failure'>\r
+                    <parameter name='error-code' value='200'/>\r
+                    <parameter name='error-message'\r
+                               value='`$org.openecomp.appc.adapter.ansible.message`'/>\r
+                    <parameter name='output.status.results'\r
+                               value='`$org.openecomp.appc.adapter.ansible.results`'/>\r
+                </return>\r
+            </outcome>\r
+            <outcome value='Other'>\r
+                <switch test="`$org.onap.appc.adapter.saltstack.result.code`">\r
+                    <outcome value='200'>\r
+                        <return status='success'>\r
+                            <parameter name='output.status.code'\r
+                                       value='`$org.openecomp.appc.adapter.ansible.result.code`'/>\r
+                            <parameter name='output.status.message'\r
+                                       value='`$org.openecomp.appc.adapter.ansible.message`'/>\r
+                            <parameter name='output.status.results'\r
+                                       value='`$org.openecomp.appc.adapter.ansible.results`'/>\r
+                        </return>\r
+                    </outcome>\r
+                    <outcome value='Other'>\r
+                        <return status='failure'>\r
+                            <parameter name='error-code' value='200'/>\r
+                            <parameter name='error-message'\r
+                                       value='`$org.openecomp.appc.adapter.ansible.message`'/>\r
+                            <parameter name='output.status.results'\r
+                                       value='`$org.openecomp.appc.adapter.ansible.results`'/>\r
+                        </return>\r
+                    </outcome>\r
+                </switch>\r
+            </outcome>\r
+        </execute>\r
+    </method>\r
+</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 (file)
index 0000000..875c6fa
--- /dev/null
@@ -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 (file)
index 0000000..8a237f3
--- /dev/null
@@ -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'>\r
+<execute plugin='org.openecomp.appc.adapter.ansible.AnsibleAdapter' method='reqExecCommand' >\r
+                        <parameter name='HostName' value='`$AgentUrl`'/>\r
+                        <parameter name='Port' value='`$Port`'/>\r
+                        <parameter name='User' value='`$User`'/>\r
+                        <parameter name='Password' value='`$Password`'/>\r
+                        <parameter name='Id' value='test2'/>\r
+                        <parameter name='slsName' value='test-file.sls'/>\r
+<outcome value='failure'>\r
+<return status='failure'>\r
+<parameter name='error-code' value='200' />\r
+<parameter name='error-message' value='`$org.openecomp.appc.adapter.ansible.message`' />\r
+<parameter name='output.status.results' value='`$org.openecomp.appc.adapter.ansible.results`' />\r
+</return></outcome><outcome value='Other'>\r
+<switch test="`$org.onap.appc.adapter.saltstack.result.code`">\r
+<outcome value='200'>\r
+<return status='success'>\r
+<parameter name='output.status.code' value='`$org.openecomp.appc.adapter.ansible.result.code`' />\r
+<parameter name='output.status.message' value='`$org.openecomp.appc.adapter.ansible.message`'/>\r
+<parameter name='output.status.results' value = '`$org.openecomp.appc.adapter.ansible.results`'/>\r
+</return></outcome><outcome value='Other'>\r
+<return status='failure'>\r
+<parameter name='error-code' value='200' />\r
+<parameter name='error-message' value='`$org.openecomp.appc.adapter.ansible.message`' />\r
+<parameter name='output.status.results' value='`$org.openecomp.appc.adapter.ansible.results`' />\r
+</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 (file)
index 0000000..f8c6a01
--- /dev/null
@@ -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 (file)
index 0000000..a826288
--- /dev/null
@@ -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'>\r
+<execute plugin='org.openecomp.appc.adapter.ansible.AnsibleAdapter' method='reqExecCommand' >\r
+                        <parameter name='HostName' value='`$AgentUrl`'/>\r
+                        <parameter name='Port' value='`$Port`'/>\r
+                        <parameter name='User' value='`$User`'/>\r
+                        <parameter name='Password' value='`$Password`'/>\r
+                        <parameter name='Id' value='test1'/>\r
+                        <parameter name='cmd' value='salt &apos;*&apos; test.ping --out=json --static'/>\r
+                        <parameter name='slsExec' value='false'/>\r
+                        <parameter name='execTimeout' value='`$Timeout`'/>\r
+<outcome value='failure'>\r
+<return status='failure'>\r
+<parameter name='error-code' value='200' />\r
+<parameter name='error-message' value='`$org.openecomp.appc.adapter.ansible.message`' />\r
+<parameter name='output.status.results' value='`$org.openecomp.appc.adapter.ansible.results`' />\r
+</return></outcome><outcome value='Other'>\r
+<switch test="`$org.onap.appc.adapter.saltstack.result.code`">\r
+<outcome value='200'>\r
+<switch test="`$test1.minion1`">\r
+<outcome value='true'>\r
+<execute plugin='org.openecomp.appc.adapter.ansible.AnsibleAdapter' method='reqExecCommand' >\r
+                        <parameter name='HostName' value='`$AgentUrl`'/>\r
+                        <parameter name='Port' value='`$Port`'/>\r
+                        <parameter name='User' value='`$User`'/>\r
+                        <parameter name='Password' value='`$Password`'/>\r
+                        <parameter name='Id' value='test2'/>\r
+                        <parameter name='slsName' value='test-file.sls'/>\r
+                        <parameter name='applyTo' value='minion1'/>\r
+                        <parameter name='execTimeout' value='`$Timeout`'/>\r
+<outcome value='failure'>\r
+<return status='failure'>\r
+<parameter name='error-code' value='200' />\r
+<parameter name='error-message' value='`$org.openecomp.appc.adapter.ansible.message`' />\r
+<parameter name='output.status.results' value='`$org.openecomp.appc.adapter.ansible.results`' />\r
+</return></outcome><outcome value='Other'>\r
+<switch test="`$org.onap.appc.adapter.saltstack.result.code`">\r
+<outcome value='200'>\r
+<return status='success'>\r
+<parameter name='output.status.code' value='`$org.openecomp.appc.adapter.ansible.result.code`' />\r
+<parameter name='output.status.message' value='`$org.openecomp.appc.adapter.ansible.message`'/>\r
+<parameter name='output.status.results' value = '`$org.openecomp.appc.adapter.ansible.results`'/>\r
+</return></outcome><outcome value='Other'>\r
+<return status='failure'>\r
+<parameter name='error-code' value='200' />\r
+<parameter name='error-message' value='`$org.openecomp.appc.adapter.ansible.message`' />\r
+<parameter name='output.status.results' value='`$org.openecomp.appc.adapter.ansible.results`' />\r
+</return></outcome></switch></outcome></execute></outcome><outcome value='Other'>\r
+<return status='failure'>\r
+<parameter name='error-code' value='200' />\r
+<parameter name='error-message' value='`$org.openecomp.appc.adapter.ansible.message`' />\r
+<parameter name='output.status.results' value='`$org.openecomp.appc.adapter.ansible.results`' />\r
+</return></outcome></switch></outcome><outcome value='Other'>\r
+<return status='failure'>\r
+<parameter name='error-code' value='200' />\r
+<parameter name='error-message' value='`$org.openecomp.appc.adapter.ansible.message`' />\r
+<parameter name='output.status.results' value='`$org.openecomp.appc.adapter.ansible.results`' />\r
+</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 (file)
index 0000000..a4ec6f1
--- /dev/null
@@ -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 (file)
index 0000000..bd3325b
--- /dev/null
@@ -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'>\r
+<execute plugin='org.openecomp.appc.adapter.ansible.AnsibleAdapter' method='reqExecCommand' >\r
+                        <parameter name='HostName' value='`$AgentUrl`'/>\r
+                        <parameter name='Port' value='`$Port`'/>\r
+                        <parameter name='User' value='`$User`'/>\r
+                        <parameter name='Password' value='`$Password`'/>\r
+                        <parameter name='Id' value='test2'/>\r
+                        <parameter name='slsFile' value='file/location/test-file.sls'/>\r
+<outcome value='failure'>\r
+<return status='failure'>\r
+<parameter name='error-code' value='200' />\r
+<parameter name='error-message' value='`$org.openecomp.appc.adapter.ansible.message`' />\r
+<parameter name='output.status.results' value='`$org.openecomp.appc.adapter.ansible.results`' />\r
+</return></outcome><outcome value='Other'>\r
+<switch test="`$org.onap.appc.adapter.saltstack.result.code`">\r
+<outcome value='200'>\r
+<return status='success'>\r
+<parameter name='output.status.code' value='`$org.openecomp.appc.adapter.ansible.result.code`' />\r
+<parameter name='output.status.message' value='`$org.openecomp.appc.adapter.ansible.message`'/>\r
+<parameter name='output.status.results' value = '`$org.openecomp.appc.adapter.ansible.results`'/>\r
+</return></outcome><outcome value='Other'>\r
+<return status='failure'>\r
+<parameter name='error-code' value='200' />\r
+<parameter name='error-message' value='`$org.openecomp.appc.adapter.ansible.message`' />\r
+<parameter name='output.status.results' value='`$org.openecomp.appc.adapter.ansible.results`' />\r
+</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 (file)
index 0000000..de4f0fb
--- /dev/null
@@ -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 (file)
index 0000000..314cd34
--- /dev/null
@@ -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'>\r
+<execute plugin='org.openecomp.appc.adapter.ansible.AnsibleAdapter' method='reqExecCommand' >\r
+                        <parameter name='HostName' value='`$AgentUrl`'/>\r
+                        <parameter name='Port' value='`$Port`'/>\r
+                        <parameter name='User' value='`$User`'/>\r
+                        <parameter name='Password' value='`$Password`'/>\r
+                        <parameter name='Id' value='test1'/>\r
+                        <parameter name='cmd' value='salt &apos;*&apos; test.ping --out=json --static'/>\r
+                        <parameter name='slsExec' value='false'/>\r
+                        <parameter name='execTimeout' value='`$Timeout`'/>\r
+<outcome value='failure'>\r
+<return status='failure'>\r
+<parameter name='error-code' value='200' />\r
+<parameter name='error-message' value='`$org.openecomp.appc.adapter.ansible.message`' />\r
+<parameter name='output.status.results' value='`$org.openecomp.appc.adapter.ansible.results`' />\r
+</return></outcome><outcome value='Other'>\r
+<switch test="`$org.onap.appc.adapter.saltstack.result.code`">\r
+<outcome value='200'>\r
+<switch test="`$test1.minion1`">\r
+<outcome value='true'>\r
+<execute plugin='org.openecomp.appc.adapter.ansible.AnsibleAdapter' method='reqExecCommand' >\r
+                        <parameter name='HostName' value='`$AgentUrl`'/>\r
+                        <parameter name='Port' value='`$Port`'/>\r
+                        <parameter name='User' value='`$User`'/>\r
+                        <parameter name='Password' value='`$Password`'/>\r
+                        <parameter name='Id' value='test2'/>\r
+                        <parameter name='slsFile' value='file/location/test.sls'/>\r
+                        <parameter name='applyTo' value='minion1'/>\r
+                        <parameter name='execTimeout' value='`$Timeout`'/>\r
+<outcome value='failure'>\r
+<return status='failure'>\r
+<parameter name='error-code' value='200' />\r
+<parameter name='error-message' value='`$org.openecomp.appc.adapter.ansible.message`' />\r
+<parameter name='output.status.results' value='`$org.openecomp.appc.adapter.ansible.results`' />\r
+</return></outcome><outcome value='Other'>\r
+<switch test="`$org.onap.appc.adapter.saltstack.result.code`">\r
+<outcome value='200'>\r
+<return status='success'>\r
+<parameter name='output.status.code' value='`$org.openecomp.appc.adapter.ansible.result.code`' />\r
+<parameter name='output.status.message' value='`$org.openecomp.appc.adapter.ansible.message`'/>\r
+<parameter name='output.status.results' value = '`$org.openecomp.appc.adapter.ansible.results`'/>\r
+</return></outcome><outcome value='Other'>\r
+<return status='failure'>\r
+<parameter name='error-code' value='200' />\r
+<parameter name='error-message' value='`$org.openecomp.appc.adapter.ansible.message`' />\r
+<parameter name='output.status.results' value='`$org.openecomp.appc.adapter.ansible.results`' />\r
+</return></outcome></switch></outcome></execute></outcome><outcome value='Other'>\r
+<return status='failure'>\r
+<parameter name='error-code' value='200' />\r
+<parameter name='error-message' value='`$org.openecomp.appc.adapter.ansible.message`' />\r
+<parameter name='output.status.results' value='`$org.openecomp.appc.adapter.ansible.results`' />\r
+</return></outcome></switch></outcome><outcome value='Other'>\r
+<return status='failure'>\r
+<parameter name='error-code' value='200' />\r
+<parameter name='error-message' value='`$org.openecomp.appc.adapter.ansible.message`' />\r
+<parameter name='output.status.results' value='`$org.openecomp.appc.adapter.ansible.results`' />\r
+</return></outcome></switch></outcome></execute></method></service-logic>
\ No newline at end of file