Datachange DG to handle ESR third party event 33/57133/1
authorshashikanth.vh <shashikanth.vh@huawei.com>
Mon, 23 Jul 2018 09:12:56 +0000 (14:42 +0530)
committershashikanth.vh <shashikanth.vh@huawei.com>
Mon, 23 Jul 2018 09:13:03 +0000 (14:43 +0530)
SDNC's AAI event consumer of esr-thirdparty information will
post the event to DataChange API. DataChangeProvider DG is requried
to process the event

Change-Id: Ic4857e32bd6941628e297aefefd2c697255f3ca2
Issue-ID: SDNC-386
Signed-off-by: shashikanth.vh <shashikanth.vh@huawei.com>
Former-commit-id: 9e66dd112e232dab7baabdc6415ccdd7c23c0f31

platform-logic/datachange/src/main/json/DataChange_data-change-notification.json [new file with mode: 0644]
platform-logic/datachange/src/main/json/DataChange_esr-thirdparty-sdnc-discovery.json [new file with mode: 0644]
platform-logic/datachange/src/main/json/DataChange_esr-thirdparty-sdnc.json [new file with mode: 0644]
platform-logic/datachange/src/main/json/DataChange_update-network-to-aai.json [new file with mode: 0644]
platform-logic/datachange/src/main/json/DataChange_validate-esr-thirdparty-sdnc-input.json [new file with mode: 0644]
platform-logic/datachange/src/main/resources/graph.versions [new file with mode: 0644]
platform-logic/datachange/src/main/xml/DataChange_data-change-notification.xml [new file with mode: 0644]
platform-logic/datachange/src/main/xml/DataChange_esr-thirdparty-sdnc-discovery.xml [new file with mode: 0644]
platform-logic/datachange/src/main/xml/DataChange_esr-thirdparty-sdnc.xml [new file with mode: 0644]
platform-logic/datachange/src/main/xml/DataChange_update-network-to-aai.xml [new file with mode: 0644]
platform-logic/datachange/src/main/xml/DataChange_validate-esr-thirdparty-sdnc-input.xml [new file with mode: 0644]

diff --git a/platform-logic/datachange/src/main/json/DataChange_data-change-notification.json b/platform-logic/datachange/src/main/json/DataChange_data-change-notification.json
new file mode 100644 (file)
index 0000000..a68422e
--- /dev/null
@@ -0,0 +1,170 @@
+[\r
+    {\r
+        "id": "14de9b29.eb77a5",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 116.00390625,\r
+        "y": 67.9999988079071,\r
+        "z": "bf7c0729.dcd628",\r
+        "wires": [\r
+            [\r
+                "1630f686.0be599"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1630f686.0be599",\r
+        "type": "service-logic",\r
+        "name": "DataChange ${project.version}",\r
+        "module": "DataChange",\r
+        "version": "${project.version}",\r
+        "comments": "",\r
+        "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='DataChange' version='${project.version}'>",\r
+        "outputs": 1,\r
+        "x": 302.1150550842285,\r
+        "y": 172.44447016716003,\r
+        "z": "bf7c0729.dcd628",\r
+        "wires": [\r
+            [\r
+                "8b5ae719.a8f008"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8b5ae719.a8f008",\r
+        "type": "method",\r
+        "name": "method data-change-notification",\r
+        "xml": "<method rpc='data-change-notification' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 299.5596046447754,\r
+        "y": 336.22225546836853,\r
+        "z": "bf7c0729.dcd628",\r
+        "wires": [\r
+            [\r
+                "d99c1956.418f78"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d99c1956.418f78",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 344.7818908691406,\r
+        "y": 451.1113257408142,\r
+        "z": "bf7c0729.dcd628",\r
+        "wires": [\r
+            [\r
+                "fa034db9.8bac4",\r
+                "1981ae.01d4be53"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fa034db9.8bac4",\r
+        "type": "returnSuccess",\r
+        "name": "return success",\r
+        "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",\r
+        "comments": "",\r
+        "x": 552.3377494812012,\r
+        "y": 538.5561301708221,\r
+        "z": "bf7c0729.dcd628",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "560d6ca1.0b4dd4",\r
+        "type": "call",\r
+        "name": "call esr-thirdparty-sdnc",\r
+        "xml": "<call module='DataChange' rpc='esr-thirdparty-sdnc' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1316.3379707336426,\r
+        "y": 346.66678977012634,\r
+        "z": "bf7c0729.dcd628",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "1981ae.01d4be53",\r
+        "type": "switchNode",\r
+        "name": "switch aai-node-type",\r
+        "xml": "<switch test='`$data-change-notification-input.aai-node-type`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 555.8866271972656,\r
+        "y": 414.88262701034546,\r
+        "z": "bf7c0729.dcd628",\r
+        "wires": [\r
+            [\r
+                "3eac43c0.8ab16c",\r
+                "935a0267.cd419"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3eac43c0.8ab16c",\r
+        "type": "other",\r
+        "name": "esr-thirdparty-sdnc",\r
+        "xml": "<outcome value='esr-thirdparty-sdnc'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 837.9185485839844,\r
+        "y": 346.05725717544556,\r
+        "z": "bf7c0729.dcd628",\r
+        "wires": [\r
+            [\r
+                "43f3171.d9a25e8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "935a0267.cd419",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 795.8866920471191,\r
+        "y": 413.8826596736908,\r
+        "z": "bf7c0729.dcd628",\r
+        "wires": [\r
+            [\r
+                "b093dd51.fe287"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b093dd51.fe287",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"AAI node type not supported\" />",\r
+        "comments": "",\r
+        "x": 951.3312110900879,\r
+        "y": 413.99375891685486,\r
+        "z": "bf7c0729.dcd628",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "43f3171.d9a25e8",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1040.0042114257812,\r
+        "y": 346.8262984752655,\r
+        "z": "bf7c0729.dcd628",\r
+        "wires": [\r
+            [\r
+                "560d6ca1.0b4dd4"\r
+            ]\r
+        ]\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/datachange/src/main/json/DataChange_esr-thirdparty-sdnc-discovery.json b/platform-logic/datachange/src/main/json/DataChange_esr-thirdparty-sdnc-discovery.json
new file mode 100644 (file)
index 0000000..da0567b
--- /dev/null
@@ -0,0 +1,379 @@
+[\r
+    {\r
+        "id": "865891e7.3a6c6",\r
+        "type": "other",\r
+        "name": "update",\r
+        "xml": "<outcome value='Update'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 673.4443511962891,\r
+        "y": 212.66669368743896,\r
+        "z": "fce0b4d3.a9be08",\r
+        "wires": [\r
+            [\r
+                "3eefa587.6bd50a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4e8bb18c.6ca95",\r
+        "type": "other",\r
+        "name": "delete",\r
+        "xml": "<outcome value='delete'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 701.6665267944336,\r
+        "y": 484.33349609375,\r
+        "z": "fce0b4d3.a9be08",\r
+        "wires": [\r
+            [\r
+                "523ab02e.031c1"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "523ab02e.031c1",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 857.1112060546875,\r
+        "y": 484.33351707458496,\r
+        "z": "fce0b4d3.a9be08",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "977d339.f9669d",\r
+        "type": "comment",\r
+        "name": "TODO: Delete topology from AAI",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 781.7777862548828,\r
+        "y": 447.0001811981201,\r
+        "z": "fce0b4d3.a9be08",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "9b67a1c0.1e23e",\r
+        "type": "switchNode",\r
+        "name": "switch aai-event-trigger",\r
+        "xml": "<switch test=\"`$data-change-notification-input.aai-event-trigger`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 457.9999771118164,\r
+        "y": 351.2222261428833,\r
+        "z": "fce0b4d3.a9be08",\r
+        "wires": [\r
+            [\r
+                "865891e7.3a6c6",\r
+                "4e8bb18c.6ca95"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3eefa587.6bd50a",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 841.7781524658203,\r
+        "y": 211.11124515533447,\r
+        "z": "fce0b4d3.a9be08",\r
+        "wires": [\r
+            [\r
+                "8498ca44.850928",\r
+                "31425256.e48c3e",\r
+                "fd4c6f6.9751e9"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8498ca44.850928",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode Get token",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/actokentemplate.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/v2/tokens'`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"token-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.openecomp.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1119.4376068115234,\r
+        "y": 167.03049993515015,\r
+        "z": "fce0b4d3.a9be08",\r
+        "wires": [\r
+            [\r
+                "c3c1ad15.85994",\r
+                "cd6736f3.94ff18"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c3c1ad15.85994",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1354.4376068115234,\r
+        "y": 145.03049993515015,\r
+        "z": "fce0b4d3.a9be08",\r
+        "wires": [\r
+            [\r
+                "e15c61b4.92509"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cd6736f3.94ff18",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1346.6876068115234,\r
+        "y": 198.6733832359314,\r
+        "z": "fce0b4d3.a9be08",\r
+        "wires": [\r
+            [\r
+                "40518e2c.2c734"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e15c61b4.92509",\r
+        "type": "set",\r
+        "name": "set token-id",\r
+        "xml": "<set>\n<parameter name='prop.sdncRestApi.token_id' value='`$token-result.data.token_id`' />\n",\r
+        "comments": "",\r
+        "x": 1508.4376068115234,\r
+        "y": 146.03049993515015,\r
+        "z": "fce0b4d3.a9be08",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "31425256.e48c3e",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode Get Topology",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/restconf/data/ietf-network:networks'`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"get\"/>\n<parameter name=\"responsePrefix\" value=\"topology\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.openecomp.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1122.7710418701172,\r
+        "y": 260.73423767089844,\r
+        "z": "fce0b4d3.a9be08",\r
+        "wires": [\r
+            [\r
+                "ac09d1db.665eb",\r
+                "4c50157f.5bc03c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ac09d1db.665eb",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1381.3263664245605,\r
+        "y": 238.73421955108643,\r
+        "z": "fce0b4d3.a9be08",\r
+        "wires": [\r
+            [\r
+                "7a8d5805.fa1088"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7a8d5805.fa1088",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1556.8818969726562,\r
+        "y": 236.40094184875488,\r
+        "z": "fce0b4d3.a9be08",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "7717d78.ee45028",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error executing Create vpn rest api\" />\n",\r
+        "comments": "",\r
+        "x": 1565.1041717529297,\r
+        "y": 310.62305545806885,\r
+        "z": "fce0b4d3.a9be08",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4c50157f.5bc03c",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1386.770851135254,\r
+        "y": 309.84528493881226,\r
+        "z": "fce0b4d3.a9be08",\r
+        "wires": [\r
+            [\r
+                "7717d78.ee45028"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fe88648c.ffce68",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 78.4443130493164,\r
+        "y": 91,\r
+        "z": "fce0b4d3.a9be08",\r
+        "wires": [\r
+            [\r
+                "7387008c.4a9fe"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7387008c.4a9fe",\r
+        "type": "service-logic",\r
+        "name": "DataChange ${project.version}",\r
+        "module": "DataChange",\r
+        "version": "${project.version}",\r
+        "comments": "",\r
+        "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='DataChange' version='${project.version}'>",\r
+        "outputs": 1,\r
+        "x": 236.55543899536133,\r
+        "y": 132.4444613456726,\r
+        "z": "fce0b4d3.a9be08",\r
+        "wires": [\r
+            [\r
+                "f56e7701.2fd2c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f56e7701.2fd2c8",\r
+        "type": "method",\r
+        "name": "method esr-thirdparty-sdnc-discovery",\r
+        "xml": "<method rpc='esr-thirdparty-sdnc-discovery' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 333,\r
+        "y": 243.22224235534668,\r
+        "z": "fce0b4d3.a9be08",\r
+        "wires": [\r
+            [\r
+                "4c6047b0.71e118"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4c6047b0.71e118",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 241.22222900390625,\r
+        "y": 352.11122035980225,\r
+        "z": "fce0b4d3.a9be08",\r
+        "wires": [\r
+            [\r
+                "9b67a1c0.1e23e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fd4c6f6.9751e9",\r
+        "type": "for",\r
+        "name": "for each Network",\r
+        "xml": "<for index='nidx' start='0' end='`$topology.networks.network_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1054.9258041381836,\r
+        "y": 388.22217655181885,\r
+        "z": "fce0b4d3.a9be08",\r
+        "wires": [\r
+            [\r
+                "22efb538.f3605a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "22efb538.f3605a",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1244.925765991211,\r
+        "y": 395.9999694824219,\r
+        "z": "fce0b4d3.a9be08",\r
+        "wires": [\r
+            [\r
+                "995bcad0.798cf8",\r
+                "31478e5.e5c4072"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "995bcad0.798cf8",\r
+        "type": "call",\r
+        "name": "call update-network-to-aai",\r
+        "xml": "<call module='DataChange' rpc='update-network-to-aai' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1498.2591876983643,\r
+        "y": 459.3333396911621,\r
+        "z": "fce0b4d3.a9be08",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "31478e5.e5c4072",\r
+        "type": "set",\r
+        "name": "set network",\r
+        "xml": "<set>\n<parameter name='network.' value='`$topology.networks.network[$nidx].`' />\n",\r
+        "comments": "",\r
+        "x": 1450.4813079833984,\r
+        "y": 377.111083984375,\r
+        "z": "fce0b4d3.a9be08",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "40518e2c.2c734",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1508.2590026855469,\r
+        "y": 193.7777624130249,\r
+        "z": "fce0b4d3.a9be08",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "793cc07c.4e65e",\r
+        "type": "comment",\r
+        "name": "Do Nothing",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1643.814576466878,\r
+        "y": 192.666638162401,\r
+        "z": "fce0b4d3.a9be08",\r
+        "wires": []\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/datachange/src/main/json/DataChange_esr-thirdparty-sdnc.json b/platform-logic/datachange/src/main/json/DataChange_esr-thirdparty-sdnc.json
new file mode 100644 (file)
index 0000000..5c40ac4
--- /dev/null
@@ -0,0 +1,320 @@
+[\r
+    {\r
+        "id": "d0fde8b6.3aa408",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 114.00390625,\r
+        "y": 42.00390625,\r
+        "z": "57a3a26d.f7d23c",\r
+        "wires": [\r
+            [\r
+                "4796011e.231d3"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4796011e.231d3",\r
+        "type": "service-logic",\r
+        "name": "DataChange ${project.version}",\r
+        "module": "DataChange",\r
+        "version": "${project.version}",\r
+        "comments": "",\r
+        "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='DataChange' version='${project.version}'>",\r
+        "outputs": 1,\r
+        "x": 300.1150550842285,\r
+        "y": 146.44837760925293,\r
+        "z": "57a3a26d.f7d23c",\r
+        "wires": [\r
+            [\r
+                "83e631da.db4b1"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "83e631da.db4b1",\r
+        "type": "method",\r
+        "name": "method esr-thirdparty-sdnc",\r
+        "xml": "<method rpc='esr-thirdparty-sdnc' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 297.5596046447754,\r
+        "y": 310.2261629104614,\r
+        "z": "57a3a26d.f7d23c",\r
+        "wires": [\r
+            [\r
+                "2d86f41b.00eefc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2d86f41b.00eefc",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 252.7818717956543,\r
+        "y": 445.1152181625366,\r
+        "z": "57a3a26d.f7d23c",\r
+        "wires": [\r
+            [\r
+                "1ccf3882.d71c77",\r
+                "41fd63bc.2e97bc",\r
+                "ba86cde8.fb9f3",\r
+                "b799af7a.5b9c9"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ba86cde8.fb9f3",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.FileRecorder\">\n<parameter name=\"file\" value=\"/opt/opendaylight/current/data/log/svclogic.log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"data-change-notification\"/>\n<parameter name=\"field3\" value=\"Config\"/>\n<parameter name=\"field4\" value=\"`service-url`\"/>\n<parameter name=\"field5\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url`\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 542.00390625,\r
+        "y": 516.00390625,\r
+        "z": "57a3a26d.f7d23c",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "1ccf3882.d71c77",\r
+        "type": "call",\r
+        "name": "call validate-esr-thirdparty-sdnc-input",\r
+        "xml": "<call module='DataChange' rpc='validate-esr-thirdparty-sdnc-input' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 655.7815399169922,\r
+        "y": 379.0037097930908,\r
+        "z": "57a3a26d.f7d23c",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "41fd63bc.2e97bc",\r
+        "type": "for",\r
+        "name": "for 0..key-data_length",\r
+        "xml": "<for index='idx' start='0' end='`$data-change-notification-input.key-data_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 590.4480133056641,\r
+        "y": 461.19469451904297,\r
+        "z": "57a3a26d.f7d23c",\r
+        "wires": [\r
+            [\r
+                "b1d2d6de.13b948"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b1d2d6de.13b948",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 762.3374786376953,\r
+        "y": 460.4169397354126,\r
+        "z": "57a3a26d.f7d23c",\r
+        "wires": [\r
+            [\r
+                "1ad86336.4ad5cd",\r
+                "fa2d7e75.6219e",\r
+                "5d462805.1bcf28",\r
+                "44977471.592c0c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1ad86336.4ad5cd",\r
+        "type": "switchNode",\r
+        "name": "switch service-url",\r
+        "xml": "<switch test=\"`$data-change-notification-input.key-data[$idx].key-name == 'service-url'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 974.5591812133789,\r
+        "y": 370.5280923843384,\r
+        "z": "57a3a26d.f7d23c",\r
+        "wires": [\r
+            [\r
+                "49195641.421748"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "49195641.421748",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1138.5593032836914,\r
+        "y": 369.5593252182007,\r
+        "z": "57a3a26d.f7d23c",\r
+        "wires": [\r
+            [\r
+                "68e2f0ac.a4549"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "68e2f0ac.a4549",\r
+        "type": "set",\r
+        "name": "set service-url",\r
+        "xml": "<set>\n<parameter name='prop.sdncRestApi.thirdpartySdnc.url' value='`$data-change-notification-input.key-data[$idx].key-value`' />\n",\r
+        "comments": "",\r
+        "x": 1292.5593948364258,\r
+        "y": 369.1593189239502,\r
+        "z": "57a3a26d.f7d23c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "fa2d7e75.6219e",\r
+        "type": "switchNode",\r
+        "name": "switch user-name",\r
+        "xml": "<switch test=\"`$data-change-notification-input.key-data[$idx].key-name == 'user-name'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 971.8489265441895,\r
+        "y": 439.7751522064209,\r
+        "z": "57a3a26d.f7d23c",\r
+        "wires": [\r
+            [\r
+                "4a967272.ac408c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4a967272.ac408c",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1140.8489151000977,\r
+        "y": 437.8063955307007,\r
+        "z": "57a3a26d.f7d23c",\r
+        "wires": [\r
+            [\r
+                "a97aae71.052dc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a97aae71.052dc",\r
+        "type": "set",\r
+        "name": "set user",\r
+        "xml": "<set>\n<parameter name='prop.sdncRestApi.thirdpartySdnc.user' value='`$data-change-notification-input.key-data[$idx].key-value`' />\n",\r
+        "comments": "",\r
+        "x": 1276.8490676879883,\r
+        "y": 437.40638637542725,\r
+        "z": "57a3a26d.f7d23c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "5d462805.1bcf28",\r
+        "type": "switchNode",\r
+        "name": "switch password",\r
+        "xml": "<switch test=\"`$data-change-notification-input.key-data[$idx].key-name == 'password'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 969.6267585754395,\r
+        "y": 505.33070182800293,\r
+        "z": "57a3a26d.f7d23c",\r
+        "wires": [\r
+            [\r
+                "aa2c8a18.06def8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "aa2c8a18.06def8",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1141.6267166137695,\r
+        "y": 505.36194705963135,\r
+        "z": "57a3a26d.f7d23c",\r
+        "wires": [\r
+            [\r
+                "ae62fe3a.d8789"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ae62fe3a.d8789",\r
+        "type": "set",\r
+        "name": "set password",\r
+        "xml": "<set>\n<parameter name='prop.sdncRestApi.thirdpartySdnc.password' value='`$data-change-notification-input.key-data[$idx].key-value`' />\n",\r
+        "comments": "",\r
+        "x": 1296.6269607543945,\r
+        "y": 503.9619264602661,\r
+        "z": "57a3a26d.f7d23c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b799af7a.5b9c9",\r
+        "type": "call",\r
+        "name": "call esr-thirdparty-sdnc-discovery",\r
+        "xml": "<call module='DataChange' rpc='esr-thirdparty-sdnc-discovery' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 613.4416656494141,\r
+        "y": 587.5529069900513,\r
+        "z": "57a3a26d.f7d23c",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "44977471.592c0c",\r
+        "type": "switchNode",\r
+        "name": "switch esr-system-info-id",\r
+        "xml": "<switch test=\"`$data-change-notification-input.key-data[$idx].key-name == 'esr-system-info-id'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 991.4480667114258,\r
+        "y": 559.3370685577393,\r
+        "z": "57a3a26d.f7d23c",\r
+        "wires": [\r
+            [\r
+                "e1fdba16.c57aa8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e1fdba16.c57aa8",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1166.4480438232422,\r
+        "y": 557.3682584762573,\r
+        "z": "57a3a26d.f7d23c",\r
+        "wires": [\r
+            [\r
+                "3f219327.b83efc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3f219327.b83efc",\r
+        "type": "set",\r
+        "name": "set esr-system-info-id",\r
+        "xml": "<set>\n<parameter name='prop.sdncRestApi.thirdpartySdnc.id' value='`$data-change-notification-input.key-data[$idx].key-value`' />\n",\r
+        "comments": "",\r
+        "x": 1332.448013305664,\r
+        "y": 558.968282699585,\r
+        "z": "57a3a26d.f7d23c",\r
+        "wires": []\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/datachange/src/main/json/DataChange_update-network-to-aai.json b/platform-logic/datachange/src/main/json/DataChange_update-network-to-aai.json
new file mode 100644 (file)
index 0000000..9e0f17a
--- /dev/null
@@ -0,0 +1,239 @@
+[\r
+    {\r
+        "id": "8623b35d.0cf2f",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 125.00390625,\r
+        "y": 106.00650644302368,\r
+        "z": "1ef7a393.52dc1c",\r
+        "wires": [\r
+            [\r
+                "e714b902.20b798"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e714b902.20b798",\r
+        "type": "service-logic",\r
+        "name": "DataChange ${project.version}",\r
+        "module": "DataChange",\r
+        "version": "${project.version}",\r
+        "comments": "",\r
+        "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='DataChange' version='${project.version}'>",\r
+        "outputs": 1,\r
+        "x": 327.0039291381836,\r
+        "y": 106.89541959762573,\r
+        "z": "1ef7a393.52dc1c",\r
+        "wires": [\r
+            [\r
+                "fb9820f4.4f92d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fb9820f4.4f92d",\r
+        "type": "method",\r
+        "name": "method update-network-to-aai",\r
+        "xml": "<method rpc='update-network-to-aai' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 336.1151580810547,\r
+        "y": 178.22874116897583,\r
+        "z": "1ef7a393.52dc1c",\r
+        "wires": [\r
+            [\r
+                "b1c5fee.fa526"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b1c5fee.fa526",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 583.3373489379883,\r
+        "y": 176.78443002700806,\r
+        "z": "1ef7a393.52dc1c",\r
+        "wires": [\r
+            [\r
+                "d5568e89.0fd49",\r
+                "65e1e67.b95e318",\r
+                "fcfec7b9.699088"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d5568e89.0fd49",\r
+        "type": "update",\r
+        "name": "save Zone",\r
+        "xml": "<save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='zone' \n      key='zone.zone-id = $tmp.network-id' >\n<parameter name='zone-id' value='`$tmp.network-id`' />\n<parameter name='zone-name' value='`$network.client-id`' />\n<parameter name='design-type' value='`$network.te-topology-id`' />\n<parameter name='zone-context' value='`$network.provider-id`' />\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 808.3371810913086,\r
+        "y": 176.00651788711548,\r
+        "z": "1ef7a393.52dc1c",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "af980bc1.1f72b8",\r
+        "type": "update",\r
+        "name": "save pnf",\r
+        "xml": "<save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='pnf' \n      key='pnf.pnf-name = $node.node-id' >\n<parameter name='pnf-name' value='`$node.node-id`' />\n<parameter name='pnf-id' value='`$node.node-id`' />\n<parameter name='in-maint' value='true' />\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1052.1150245666504,\r
+        "y": 271.11759901046753,\r
+        "z": "1ef7a393.52dc1c",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "65e1e67.b95e318",\r
+        "type": "for",\r
+        "name": "for each node",\r
+        "xml": "<for index='pidx' start='0' end='`$network.node_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 823.8927383422852,\r
+        "y": 339.33982038497925,\r
+        "z": "1ef7a393.52dc1c",\r
+        "wires": [\r
+            [\r
+                "af980bc1.1f72b8",\r
+                "476a4fdb.dc5f5",\r
+                "96688ca0.6a9f6",\r
+                "9b63a4a9.acd508",\r
+                "8140ea7f.0a90f8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "476a4fdb.dc5f5",\r
+        "type": "set",\r
+        "name": "set network",\r
+        "xml": "<set>\n<parameter name='node.' value='`$network.node[$pidx].`' />\n",\r
+        "comments": "",\r
+        "x": 1062.114990234375,\r
+        "y": 202.22872114181519,\r
+        "z": "1ef7a393.52dc1c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "96688ca0.6a9f6",\r
+        "type": "save",\r
+        "name": "save pnf relationship to zone in AAI",\r
+        "xml": "<save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='pnf:relationship-list' \n      key='pnf.pnf-name = $node.node-id' force=\"true\" pfx=\"tmp.AnAI-data\">\n<parameter name=\"relationship-list.relationship[0].related-to\" value=\"zone\" />\n<parameter name=\"relationship-list.relationship[0].related-link\" value=\"`'/network/zones/zone/' + $tmp.network-id`\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-key\" value=\"zone.zone-id\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-value\" value=\"`$tmp.network-id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1138.7819213867188,\r
+        "y": 344.4509873390198,\r
+        "z": "1ef7a393.52dc1c",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "9b63a4a9.acd508",\r
+        "type": "for",\r
+        "name": "for each termination point",\r
+        "xml": "<for index='tidx' start='0' end='`$node.termination-point_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1099.448387145996,\r
+        "y": 497.11759424209595,\r
+        "z": "1ef7a393.52dc1c",\r
+        "wires": [\r
+            [\r
+                "b34b1b54.abd288",\r
+                "66fee673.3f4e78",\r
+                "6031db9d.646964",\r
+                "3a479676.ca94ea"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b34b1b54.abd288",\r
+        "type": "set",\r
+        "name": "set termination point",\r
+        "xml": "<set>\n<parameter name='tp.' value='`$node.termination-point[$tidx].`' />\n",\r
+        "comments": "",\r
+        "x": 1480.1151962280273,\r
+        "y": 384.00655603408813,\r
+        "z": "1ef7a393.52dc1c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "66fee673.3f4e78",\r
+        "type": "update",\r
+        "name": "save logical-link",\r
+        "xml": "<save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='logical-link' \n      key='logical-link.link-name = $unique-ltpId' >\n<parameter name='link-name' value='`$unique-ltpId`' />\n<parameter name='link-type' value='VL' />\n<parameter name='speed-value' value='`$tp.te.interface-switching-capability[0].max-lsp-bandwidth[0].te-bandwidth.eth-bandwidth`' />\n<parameter name='in-maint' value='`$tp.svc.supported-classification.transparent`' />\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1463.8188934326172,\r
+        "y": 509.5621018409729,\r
+        "z": "1ef7a393.52dc1c",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "6031db9d.646964",\r
+        "type": "save",\r
+        "name": "save pnf relationship to logical-link in AAI",\r
+        "xml": "<save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='pnf:relationship-list' \n      key='pnf.pnf-name = $node.node-id' force=\"true\" pfx=\"tmp.AnAI-data\">\n<parameter name=\"relationship-list.relationship[0].related-to\" value=\"logical-link\" />\n<parameter name=\"relationship-list.relationship[0].related-link\" value=\"`'/network/logical-links/logical-link/' + $unique-ltpId`\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-key\" value=\"logical-link.link-name\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-value\" value=\"`$unique-ltpId`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1542.7077331542969,\r
+        "y": 577.3398509025574,\r
+        "z": "1ef7a393.52dc1c",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "3a479676.ca94ea",\r
+        "type": "set",\r
+        "name": "set unique-ltpId",\r
+        "xml": "<set>\n<parameter name='unique-ltpId' value=\"`'nodeId-' + $node.node-id + '-ltpId-' + $tp.te-tp-id`\" />\n",\r
+        "comments": "",\r
+        "x": 1459.0040893554688,\r
+        "y": 445.1176323890686,\r
+        "z": "1ef7a393.52dc1c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "fcfec7b9.699088",\r
+        "type": "execute",\r
+        "name": "execute",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$network.network-id`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.network-id\"/>\n    <parameter name=\"target\" value=\"/\"/>\n    <parameter name=\"replacement\" value=\"-\"/>\n    ",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 796.9974060058594,\r
+        "y": 79.99999856948853,\r
+        "z": "1ef7a393.52dc1c",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "8140ea7f.0a90f8",\r
+        "type": "save",\r
+        "name": "save pnf relation with esr-thirdparty-sdnc",\r
+        "xml": "<save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='esr-thirdparty-sdnc:relationship-list' \n      key='esr-thirdparty-sdnc.thirdparty-sdnc-id = $prop.sdncRestApi.thirdpartySdnc.id' \n      force=\"true\" pfx=\"tmp.AnAI-data\">\n<parameter name=\"relationship-list.relationship[0].related-to\" value=\"pnf\" />\n<parameter name=\"relationship-list.relationship[0].related-link\" value=\"`'/network/pnfs/pnf/' + $node.node-id`\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-key\" value=\"pnf.pnf-name\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-value\" value=\"`$node.node-id`\" />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1119.00390625,\r
+        "y": 414.9999985694885,\r
+        "z": "1ef7a393.52dc1c",\r
+        "wires": [\r
+            []\r
+        ]\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/datachange/src/main/json/DataChange_validate-esr-thirdparty-sdnc-input.json b/platform-logic/datachange/src/main/json/DataChange_validate-esr-thirdparty-sdnc-input.json
new file mode 100644 (file)
index 0000000..b17138e
--- /dev/null
@@ -0,0 +1,457 @@
+[\r
+    {\r
+        "id": "757023b0.c2468c",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 117.00390625,\r
+        "y": 95.99999871850014,\r
+        "z": "43ea58cb.5b56b8",\r
+        "wires": [\r
+            [\r
+                "7a528753.0793a8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7a528753.0793a8",\r
+        "type": "service-logic",\r
+        "name": "DataChange ${project.version}",\r
+        "module": "DataChange",\r
+        "version": "${project.version}",\r
+        "comments": "",\r
+        "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='DataChange' version='${project.version}'>",\r
+        "outputs": 1,\r
+        "x": 320.11501693725586,\r
+        "y": 98.00002494454384,\r
+        "z": "43ea58cb.5b56b8",\r
+        "wires": [\r
+            [\r
+                "ae93aaac.418418"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ae93aaac.418418",\r
+        "type": "method",\r
+        "name": "method validate-esr-thirdparty-sdnc-input",\r
+        "xml": "<method rpc='validate-esr-thirdparty-sdnc-input' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 398.5596008300781,\r
+        "y": 220.00002479553223,\r
+        "z": "43ea58cb.5b56b8",\r
+        "wires": [\r
+            [\r
+                "37ee7462.da3a1c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2152ae75.5db0e2",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2487.0038986206055,\r
+        "y": 1273.5555483400822,\r
+        "z": "43ea58cb.5b56b8",\r
+        "wires": [\r
+            [\r
+                "e2ca5b21.1154c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e2ca5b21.1154c8",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='' />\n<parameter name='error-message' value=\"An error occured while splitting sna1_route\" />\n",\r
+        "comments": "",\r
+        "x": 2668.0038986206055,\r
+        "y": 1271.5555483400822,\r
+        "z": "43ea58cb.5b56b8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "6fe2c29e.8f19cc",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2485.0038986206055,\r
+        "y": 1375.5555483400822,\r
+        "z": "43ea58cb.5b56b8",\r
+        "wires": [\r
+            [\r
+                "e3dd559f.6ba7b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e3dd559f.6ba7b8",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='' />\n<parameter name='error-message' value=\"An error occured while splitting sna1_route\" />\n",\r
+        "comments": "",\r
+        "x": 2666.0038986206055,\r
+        "y": 1373.5555483400822,\r
+        "z": "43ea58cb.5b56b8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "47680dcc.0511d4",\r
+        "type": "failure",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2486.0038986206055,\r
+        "y": 1207.5555483400822,\r
+        "z": "43ea58cb.5b56b8",\r
+        "wires": [\r
+            [\r
+                "18757b49.6ae535"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f3d08cd7.3ee9b",\r
+        "type": "failure",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2482.0038986206055,\r
+        "y": 1327.5555483400822,\r
+        "z": "43ea58cb.5b56b8",\r
+        "wires": [\r
+            [\r
+                "20888a03.0d8406"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "18757b49.6ae535",\r
+        "type": "set",\r
+        "name": "set route1 ip-prefix next-hop",\r
+        "xml": "<set>\n<parameter name='prop.l3vpn.sna1-route.ip-prefix' value='`$route1[0]`' />\n<parameter name='prop.l3vpn.sna1-route.next-hop' value='`$route1[1]`' />\n",\r
+        "comments": "",\r
+        "x": 2693.0038986206055,\r
+        "y": 1201.5555483400822,\r
+        "z": "43ea58cb.5b56b8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "20888a03.0d8406",\r
+        "type": "set",\r
+        "name": "set route2 ip-prefix next-hop",\r
+        "xml": "<set>\n<parameter name='prop.l3vpn.sna2-route.ip-prefix' value='`$route2[0]`' />\n<parameter name='prop.l3vpn.sna2-route.next-hop' value='`$route2[1]`' />",\r
+        "comments": "",\r
+        "x": 2693.0038986206055,\r
+        "y": 1320.5555483400822,\r
+        "z": "43ea58cb.5b56b8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "e1257f0.a7f488",\r
+        "type": "switchNode",\r
+        "name": "switch aai-node-type",\r
+        "xml": "<switch test='`$data-change-notification-input.aai-node-type`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 786.8929500579834,\r
+        "y": 374.5555830001831,\r
+        "z": "43ea58cb.5b56b8",\r
+        "wires": [\r
+            [\r
+                "ec1259f5.ebbc68"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ec1259f5.ebbc68",\r
+        "type": "other",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1012.6072008950368,\r
+        "y": 357.5555825914653,\r
+        "z": "43ea58cb.5b56b8",\r
+        "wires": [\r
+            [\r
+                "df711004.31bd3"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "df711004.31bd3",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"data-change-notification-input.aai-node-type is a required input\" />\n",\r
+        "comments": "",\r
+        "x": 1164.0357668740407,\r
+        "y": 357.55558068411665,\r
+        "z": "43ea58cb.5b56b8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ecc0f598.db90c8",\r
+        "type": "switchNode",\r
+        "name": "switch aai-event-trigger",\r
+        "xml": "<switch test='`$data-change-notification-input.aai-event-trigger`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 796.464277267456,\r
+        "y": 316.12700843811035,\r
+        "z": "43ea58cb.5b56b8",\r
+        "wires": [\r
+            [\r
+                "a9518242.ec786"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a9518242.ec786",\r
+        "type": "other",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1011.1786212921143,\r
+        "y": 314.69840812683105,\r
+        "z": "43ea58cb.5b56b8",\r
+        "wires": [\r
+            [\r
+                "239438cd.9f0138"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "239438cd.9f0138",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"data-change-notification-input.aai-event-trigger is a required input\" />\n",\r
+        "comments": "",\r
+        "x": 1161.1785945892334,\r
+        "y": 314.6984176635742,\r
+        "z": "43ea58cb.5b56b8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4bbc510.85d9db",\r
+        "type": "for",\r
+        "name": "for 0..key-data_length",\r
+        "xml": "<for index='idx' start='0' end='`$data-change-notification-input.key-data_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 785.3373355865479,\r
+        "y": 445.0000476837158,\r
+        "z": "43ea58cb.5b56b8",\r
+        "wires": [\r
+            [\r
+                "de7f2e06.cc171"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "de7f2e06.cc171",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 737.2263736724854,\r
+        "y": 535.4444351196289,\r
+        "z": "43ea58cb.5b56b8",\r
+        "wires": [\r
+            [\r
+                "2f8a5311.978d7c",\r
+                "267435da.461d5a",\r
+                "596d52bd.fd695c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a0ba4f6d.060be",\r
+        "type": "other",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1183.671136856079,\r
+        "y": 557.7778100967407,\r
+        "z": "43ea58cb.5b56b8",\r
+        "wires": [\r
+            [\r
+                "49a377b1.d9e3a8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "577c0f47.e83ae",\r
+        "type": "other",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1178.2425479888916,\r
+        "y": 496.92064571380615,\r
+        "z": "43ea58cb.5b56b8",\r
+        "wires": [\r
+            [\r
+                "713caa1.0fcb154"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "713caa1.0fcb154",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"data-change-notification-input.key-data.key-data.service-url is a required input\" />\n",\r
+        "comments": "",\r
+        "x": 1367.2424297332764,\r
+        "y": 495.92064571380615,\r
+        "z": "43ea58cb.5b56b8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "8eb34243.18f14",\r
+        "type": "other",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1186.671136856079,\r
+        "y": 620.634973526001,\r
+        "z": "43ea58cb.5b56b8",\r
+        "wires": [\r
+            [\r
+                "347ffe80.91f072"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "37ee7462.da3a1c",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 488.892822265625,\r
+        "y": 378.77777767181396,\r
+        "z": "43ea58cb.5b56b8",\r
+        "wires": [\r
+            [\r
+                "ecc0f598.db90c8",\r
+                "e1257f0.a7f488",\r
+                "4bbc510.85d9db"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2f8a5311.978d7c",\r
+        "type": "switchNode",\r
+        "name": "switch service-url",\r
+        "xml": "<switch test=\"`$data-change-notification-input.key-data[$idx].key-name == 'service-url'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 987.7076587677002,\r
+        "y": 495,\r
+        "z": "43ea58cb.5b56b8",\r
+        "wires": [\r
+            [\r
+                "577c0f47.e83ae"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "267435da.461d5a",\r
+        "type": "switchNode",\r
+        "name": "switch user-name",\r
+        "xml": "<switch test=\"`$data-change-notification-input.key-data[$idx].key-name == 'user-name'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 987.9973659515381,\r
+        "y": 564.2470645904541,\r
+        "z": "43ea58cb.5b56b8",\r
+        "wires": [\r
+            [\r
+                "a0ba4f6d.060be"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "596d52bd.fd695c",\r
+        "type": "switchNode",\r
+        "name": "switch password",\r
+        "xml": "<switch test=\"`$data-change-notification-input.key-data[$idx].key-name == 'password'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 985.7751979827881,\r
+        "y": 629.8026142120361,\r
+        "z": "43ea58cb.5b56b8",\r
+        "wires": [\r
+            [\r
+                "8eb34243.18f14"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "49a377b1.d9e3a8",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1347.337236404419,\r
+        "y": 557.2222194671631,\r
+        "z": "43ea58cb.5b56b8",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "347ffe80.91f072",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1350.670488357544,\r
+        "y": 626.11110496521,\r
+        "z": "43ea58cb.5b56b8",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "110d1cac.458883",\r
+        "type": "comment",\r
+        "name": "do nothing to support http",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1542.8929843902588,\r
+        "y": 555.0000343322754,\r
+        "z": "43ea58cb.5b56b8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "83190729.11d658",\r
+        "type": "comment",\r
+        "name": "do nothing to support http",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1542.8927783966064,\r
+        "y": 624.9999752044678,\r
+        "z": "43ea58cb.5b56b8",\r
+        "wires": []\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/datachange/src/main/resources/graph.versions b/platform-logic/datachange/src/main/resources/graph.versions
new file mode 100644 (file)
index 0000000..5c1b088
--- /dev/null
@@ -0,0 +1,5 @@
+DataChange data-change-notification ${project.version} sync
+DataChange esr-thirdparty-sdnc ${project.version} sync
+DataChange validate-esr-thirdparty-sdnc-input ${project.version} sync
+DataChange esr-thirdparty-sdnc-discovery ${project.version} sync
+DataChange update-network-to-aai ${project.version} sync
diff --git a/platform-logic/datachange/src/main/xml/DataChange_data-change-notification.xml b/platform-logic/datachange/src/main/xml/DataChange_data-change-notification.xml
new file mode 100644 (file)
index 0000000..76f2fe8
--- /dev/null
@@ -0,0 +1,27 @@
+<service-logic\r
+    xmlns='http://www.onap.org/sdnc/svclogic'\r
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='DataChange' version='${project.version}'>\r
+    <method rpc='data-change-notification' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$data-change-notification-input.aai-node-type`'>\r
+                <outcome value='esr-thirdparty-sdnc'>\r
+                    <block atomic="true">\r
+                        <call module='DataChange' rpc='esr-thirdparty-sdnc' mode='sync' ></call>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="AAI node type not supported" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <return status='success'>\r
+                <parameter name="ack-final-indicator" value="Y" />\r
+                <parameter name="error-code" value="200" />\r
+                <parameter name="error-message" value="`$error-message`" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/datachange/src/main/xml/DataChange_esr-thirdparty-sdnc-discovery.xml b/platform-logic/datachange/src/main/xml/DataChange_esr-thirdparty-sdnc-discovery.xml
new file mode 100644 (file)
index 0000000..ba2ea39
--- /dev/null
@@ -0,0 +1,67 @@
+<service-logic\r
+    xmlns='http://www.onap.org/sdnc/svclogic'\r
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='DataChange' version='${project.version}'>\r
+    <method rpc='esr-thirdparty-sdnc-discovery' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test="`$data-change-notification-input.aai-event-trigger`">\r
+                <outcome value='Update'>\r
+                    <block atomic="true">\r
+                        <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                            <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/actokentemplate.json'`" />\r
+                            <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/v2/tokens'`" />\r
+                            <parameter name="format" value="json"/>\r
+                            <parameter name="httpMethod" value="post"/>\r
+                            <parameter name="responsePrefix" value="token-result"/>\r
+                            <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.openecomp.client.jks"/>\r
+                            <parameter name="trustStorePassword" value="adminadmin"/>\r
+                            <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                            <parameter name="keyStorePassword" value="adminadmin"/>\r
+                            <outcome value='success'>\r
+                                <set>\r
+                                    <parameter name='prop.sdncRestApi.token_id' value='`$token-result.data.token_id`' />\r
+                                </set>\r
+                            </outcome>\r
+                            <outcome value='failure'>\r
+                                <block></block>\r
+                            </outcome>\r
+                        </execute>\r
+                        <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                            <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/restconf/data/ietf-network:networks'`" />\r
+                            <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                            <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                            <parameter name="format" value="json"/>\r
+                            <parameter name="httpMethod" value="get"/>\r
+                            <parameter name="responsePrefix" value="topology"/>\r
+                            <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.openecomp.client.jks"/>\r
+                            <parameter name="trustStorePassword" value="adminadmin"/>\r
+                            <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                            <parameter name="keyStorePassword" value="adminadmin"/>\r
+                            <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
+                            <outcome value='success'>\r
+                                <block atomic="true"></block>\r
+                            </outcome>\r
+                            <outcome value='failure'>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="Error executing Create vpn rest api" />\r
+                                </return>\r
+                            </outcome>\r
+                        </execute>\r
+                        <for index='nidx' start='0' end='`$topology.networks.network_length`' >\r
+                            <block>\r
+                                <set>\r
+                                    <parameter name='network.' value='`$topology.networks.network[$nidx].`' />\r
+                                </set>\r
+                                <call module='DataChange' rpc='update-network-to-aai' mode='sync' ></call>\r
+                            </block>\r
+                        </for>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='delete'>\r
+                    <block atomic="true"></block>\r
+                </outcome>\r
+            </switch>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/datachange/src/main/xml/DataChange_esr-thirdparty-sdnc.xml b/platform-logic/datachange/src/main/xml/DataChange_esr-thirdparty-sdnc.xml
new file mode 100644 (file)
index 0000000..33d91a7
--- /dev/null
@@ -0,0 +1,50 @@
+<service-logic\r
+    xmlns='http://www.onap.org/sdnc/svclogic'\r
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='DataChange' version='${project.version}'>\r
+    <method rpc='esr-thirdparty-sdnc' mode='sync'>\r
+        <block atomic="true">\r
+            <call module='DataChange' rpc='validate-esr-thirdparty-sdnc-input' mode='sync' ></call>\r
+            <for index='idx' start='0' end='`$data-change-notification-input.key-data_length`' >\r
+                <block>\r
+                    <switch test="`$data-change-notification-input.key-data[$idx].key-name == 'service-url'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.sdncRestApi.thirdpartySdnc.url' value='`$data-change-notification-input.key-data[$idx].key-value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$data-change-notification-input.key-data[$idx].key-name == 'user-name'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.sdncRestApi.thirdpartySdnc.user' value='`$data-change-notification-input.key-data[$idx].key-value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$data-change-notification-input.key-data[$idx].key-name == 'password'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.sdncRestApi.thirdpartySdnc.password' value='`$data-change-notification-input.key-data[$idx].key-value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$data-change-notification-input.key-data[$idx].key-name == 'esr-system-info-id'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.sdncRestApi.thirdpartySdnc.id' value='`$data-change-notification-input.key-data[$idx].key-value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                </block>\r
+            </for>\r
+            <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
+                <parameter name="file" value="/opt/opendaylight/current/data/log/svclogic.log"/>\r
+                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                <parameter name="field2" value="data-change-notification"/>\r
+                <parameter name="field3" value="Config"/>\r
+                <parameter name="field4" value="`service-url`"/>\r
+                <parameter name="field5" value="`$prop.sdncRestApi.thirdpartySdnc.url`"/>\r
+            </record>\r
+            <call module='DataChange' rpc='esr-thirdparty-sdnc-discovery' mode='sync' ></call>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/datachange/src/main/xml/DataChange_update-network-to-aai.xml b/platform-logic/datachange/src/main/xml/DataChange_update-network-to-aai.xml
new file mode 100644 (file)
index 0000000..cdd0edb
--- /dev/null
@@ -0,0 +1,69 @@
+<service-logic\r
+    xmlns='http://www.onap.org/sdnc/svclogic'\r
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='DataChange' version='${project.version}'>\r
+    <method rpc='update-network-to-aai' mode='sync'>\r
+        <block atomic="true">\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                <parameter name="source" value="`$network.network-id`"/>\r
+                <parameter name="outputPath" value="tmp.network-id"/>\r
+                <parameter name="target" value="/"/>\r
+                <parameter name="replacement" value="-"/>\r
+            </execute>\r
+            <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='zone' \r
+      key='zone.zone-id = $tmp.network-id' >\r
+                <parameter name='zone-id' value='`$tmp.network-id`' />\r
+                <parameter name='zone-name' value='`$network.client-id`' />\r
+                <parameter name='design-type' value='`$network.te-topology-id`' />\r
+                <parameter name='zone-context' value='`$network.provider-id`' />\r
+            </save>\r
+            <for index='pidx' start='0' end='`$network.node_length`' >\r
+                <set>\r
+                    <parameter name='node.' value='`$network.node[$pidx].`' />\r
+                </set>\r
+                <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='pnf' \r
+      key='pnf.pnf-name = $node.node-id' >\r
+                    <parameter name='pnf-name' value='`$node.node-id`' />\r
+                    <parameter name='pnf-id' value='`$node.node-id`' />\r
+                    <parameter name='in-maint' value='true' />\r
+                </save>\r
+                <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='pnf:relationship-list' \r
+      key='pnf.pnf-name = $node.node-id' force="true" pfx="tmp.AnAI-data">\r
+                    <parameter name="relationship-list.relationship[0].related-to" value="zone" />\r
+                    <parameter name="relationship-list.relationship[0].related-link" value="`'/network/zones/zone/' + $tmp.network-id`" />\r
+                    <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="zone.zone-id" />\r
+                    <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$tmp.network-id`" />\r
+                </save>\r
+                <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='esr-thirdparty-sdnc:relationship-list' \r
+      key='esr-thirdparty-sdnc.thirdparty-sdnc-id = $prop.sdncRestApi.thirdpartySdnc.id' \r
+      force="true" pfx="tmp.AnAI-data">\r
+                    <parameter name="relationship-list.relationship[0].related-to" value="pnf" />\r
+                    <parameter name="relationship-list.relationship[0].related-link" value="`'/network/pnfs/pnf/' + $node.node-id`" />\r
+                    <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="pnf.pnf-name" />\r
+                    <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$node.node-id`" />\r
+                </save>\r
+                <for index='tidx' start='0' end='`$node.termination-point_length`' >\r
+                    <set>\r
+                        <parameter name='tp.' value='`$node.termination-point[$tidx].`' />\r
+                    </set>\r
+                    <set>\r
+                        <parameter name='unique-ltpId' value="`'nodeId-' + $node.node-id + '-ltpId-' + $tp.te-tp-id`" />\r
+                    </set>\r
+                    <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='logical-link' \r
+      key='logical-link.link-name = $unique-ltpId' >\r
+                        <parameter name='link-name' value='`$unique-ltpId`' />\r
+                        <parameter name='link-type' value='VL' />\r
+                        <parameter name='speed-value' value='`$tp.te.interface-switching-capability[0].max-lsp-bandwidth[0].te-bandwidth.eth-bandwidth`' />\r
+                        <parameter name='in-maint' value='`$tp.svc.supported-classification.transparent`' />\r
+                    </save>\r
+                    <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='pnf:relationship-list' \r
+      key='pnf.pnf-name = $node.node-id' force="true" pfx="tmp.AnAI-data">\r
+                        <parameter name="relationship-list.relationship[0].related-to" value="logical-link" />\r
+                        <parameter name="relationship-list.relationship[0].related-link" value="`'/network/logical-links/logical-link/' + $unique-ltpId`" />\r
+                        <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="logical-link.link-name" />\r
+                        <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$unique-ltpId`" />\r
+                    </save>\r
+                </for>\r
+            </for>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/datachange/src/main/xml/DataChange_validate-esr-thirdparty-sdnc-input.xml b/platform-logic/datachange/src/main/xml/DataChange_validate-esr-thirdparty-sdnc-input.xml
new file mode 100644 (file)
index 0000000..9c4443c
--- /dev/null
@@ -0,0 +1,49 @@
+<service-logic\r
+    xmlns='http://www.onap.org/sdnc/svclogic'\r
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='DataChange' version='${project.version}'>\r
+    <method rpc='validate-esr-thirdparty-sdnc-input' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$data-change-notification-input.aai-event-trigger`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="data-change-notification-input.aai-event-trigger is a required input" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$data-change-notification-input.aai-node-type`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="data-change-notification-input.aai-node-type is a required input" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <for index='idx' start='0' end='`$data-change-notification-input.key-data_length`' >\r
+                <block>\r
+                    <switch test="`$data-change-notification-input.key-data[$idx].key-name == 'service-url'`">\r
+                        <outcome value=''>\r
+                            <return status='failure'>\r
+                                <parameter name='ack-final' value='Y'/>\r
+                                <parameter name="error-code" value="500" />\r
+                                <parameter name="error-message" value="data-change-notification-input.key-data.key-data.service-url is a required input" />\r
+                            </return>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$data-change-notification-input.key-data[$idx].key-name == 'user-name'`">\r
+                        <outcome value=''>\r
+                            <block></block>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$data-change-notification-input.key-data[$idx].key-name == 'password'`">\r
+                        <outcome value=''>\r
+                            <block></block>\r
+                        </outcome>\r
+                    </switch>\r
+                </block>\r
+            </for>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file