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