diff options
14 files changed, 3672 insertions, 65 deletions
diff --git a/installation/sdnc/pom.xml b/installation/sdnc/pom.xml index 3566e27e..538e1239 100644 --- a/installation/sdnc/pom.xml +++ b/installation/sdnc/pom.xml @@ -20,43 +20,43 @@ <properties> <image.name>onap/sdnc-image</image.name> <sdnc.project.version>${project.version}</sdnc.project.version> - <sdnc.northbound.version>1.3.4</sdnc.northbound.version> + <sdnc.northbound.version>1.4.0-SNAPSHOT</sdnc.northbound.version> <docker.buildArg.https_proxy>${https_proxy}</docker.buildArg.https_proxy> + <docker.push.phase>deploy</docker.push.phase> + <docker.verbose>true</docker.verbose> <maven.build.timestamp.format>yyyyMMdd'T'HHmmss'Z'</maven.build.timestamp.format> </properties> - <dependencies> - <dependency> - <groupId>org.onap.sdnc.northbound</groupId> - <artifactId>generic-resource-api-installer</artifactId> - <version>${sdnc.northbound.version}</version> - <type>zip</type> - </dependency> - <dependency> - <groupId>org.onap.sdnc.northbound</groupId> - <artifactId>vnfapi-installer</artifactId> - <version>${sdnc.northbound.version}</version> - <type>zip</type> - </dependency> - <dependency> - <groupId>org.onap.sdnc.northbound</groupId> - <artifactId>vnftools-installer</artifactId> - <version>${sdnc.northbound.version}</version> - <type>zip</type> - </dependency> - <dependency> - <groupId>org.onap.ccsdk.sli.adaptors</groupId> - <artifactId>ansible-adapter-installer</artifactId> - <version>${ccsdk.sli.adaptors.version}</version> - <type>zip</type> - </dependency> - <dependency> - <groupId>org.onap.ccsdk.sli.northbound</groupId> - <artifactId>lcm-installer</artifactId> - <version>${ccsdk.sli.northbound.version}</version> - <type>zip</type> - </dependency> - </dependencies> + <dependencies> + <dependency> + <groupId>org.onap.sdnc.northbound</groupId> + <artifactId>generic-resource-api-installer</artifactId> + <version>${sdnc.northbound.version}</version> + <classifier>repo</classifier> + <type>zip</type> + </dependency> + <dependency> + <groupId>org.onap.sdnc.northbound</groupId> + <artifactId>vnfapi-installer</artifactId> + <version>${sdnc.northbound.version}</version> + <classifier>repo</classifier> + <type>zip</type> + </dependency> + <dependency> + <groupId>org.onap.sdnc.northbound</groupId> + <artifactId>vnftools-installer</artifactId> + <version>${sdnc.northbound.version}</version> + <classifier>repo</classifier> + <type>zip</type> + </dependency> + <dependency> + <groupId>org.onap.sdnc.northbound</groupId> + <artifactId>sdnc-northbound-features-installer</artifactId> + <version>${sdnc.northbound.version}</version> + <classifier>repo</classifier> + <type>zip</type> + </dependency> + </dependencies> <build> <plugins> @@ -125,7 +125,7 @@ <execution> <id>push-images</id> - <phase>deploy</phase> + <phase>${docker.push.phase}</phase> <goals> <goal>build</goal> <goal>push</goal> @@ -266,26 +266,13 @@ <version>3.0.2</version> <executions> <execution> - <id>unpack-sdnc-features</id> + <id>unpack sdnc features</id> <phase>generate-sources</phase> <goals> <goal>unpack-dependencies</goal> </goals> <configuration> - <outputDirectory>${basedir}/target/docker-stage/opt/onap/sdnc/features</outputDirectory> - <includeGroupIds>org.onap.sdnc</includeGroupIds> - <excludeTransitive>true</excludeTransitive> - </configuration> - </execution> - <execution> - <id>unpack-extra-ccsdk-features</id> - <phase>generate-sources</phase> - <goals> - <goal>unpack-dependencies</goal> - </goals> - <configuration> - <outputDirectory>${basedir}/target/docker-stage/opt/onap/ccsdk/features</outputDirectory> - <includeGroupIds>org.onap.ccsdk</includeGroupIds> + <outputDirectory>${basedir}/target/docker-stage</outputDirectory> <excludeTransitive>true</excludeTransitive> </configuration> </execution> @@ -343,6 +330,6 @@ </build> <organization> - <name>openECOMP</name> + <name>ONAP</name> </organization> </project> diff --git a/installation/sdnc/src/main/docker/Dockerfile b/installation/sdnc/src/main/docker/Dockerfile index 3cd107dc..13a644e4 100755 --- a/installation/sdnc/src/main/docker/Dockerfile +++ b/installation/sdnc/src/main/docker/Dockerfile @@ -9,6 +9,8 @@ ENV SDNC_CONFIG_DIR /opt/onap/sdnc/data/properties ENV SDNC_STORE_DIR /opt/onap/sdnc/data/stores ENV SSL_CERTS_DIR /etc/ssl/certs ENV JAVA_SECURITY_DIR $SSL_CERTS_DIR/java +ENV SDNC_NORTHBOUND_REPO mvn:org.onap.sdnc.northbound/sdnc-northbound-all/${sdnc.northbound.version}/xml/features + # imstall ssl and java certificates @@ -26,6 +28,15 @@ COPY idmlight.db.mv.db /opt/opendaylight/current/data COPY opt /opt RUN test -L /opt/sdnc || ln -s /opt/onap/sdnc /opt/sdnc +# copy SDNC mvn artifacts to ODL repository +COPY system /tmp/system +RUN rsync -a /tmp/system $ODL_HOME && rm -rf /tmp/system + +# Add SDNC repositories to boot repositories +RUN cp $ODL_HOME/etc/org.apache.karaf.features.cfg $ODL_HOME/etc/org.apache.karaf.features.cfg.orig +RUN cat $ODL_HOME/etc/org.apache.karaf.features.cfg.orig | sed -e "\|featuresRepositories|s|$|,${SDNC_NORTHBOUND_REPO}|" > $ODL_HOME/etc/org.apache.karaf.features.cfg.1 +RUN cat $ODL_HOME/etc/org.apache.karaf.features.cfg.1 | sed -e "\|featuresBoot=config|s|$|,sdnc-northbound-all|" > $ODL_HOME/etc/org.apache.karaf.features.cfg + # ENTRYPOINT exec /opt/opendaylight/current/bin/karaf EXPOSE 8181 diff --git a/installation/sdnc/src/main/scripts/startODL.sh b/installation/sdnc/src/main/scripts/startODL.sh index fa1810b3..55c04a15 100755 --- a/installation/sdnc/src/main/scripts/startODL.sh +++ b/installation/sdnc/src/main/scripts/startODL.sh @@ -28,8 +28,9 @@ function enable_odl_cluster(){ fi echo "Installing Opendaylight cluster features" - ${ODL_HOME}/bin/client feature:install odl-mdsal-clustering - ${ODL_HOME}/bin/client feature:install odl-jolokia + cat $ODL_HOME/etc/org.apache.karaf.features.cfg | sed -e "\|featuresBoot=config|s|$|,odl-mdsal-clustering,odl-jolokia|" > $ODL_HOME/etc/org.apache.karaf.features.cfg + #${ODL_HOME}/bin/client feature:install odl-mdsal-clustering + #${ODL_HOME}/bin/client feature:install odl-jolokia echo "Update cluster information statically" hm=$(hostname) @@ -95,26 +96,18 @@ then ${SDNC_HOME}/bin/installSdncDb.sh echo "Installing SDN-C keyStore" ${SDNC_HOME}/bin/addSdncKeyStore.sh - echo "Starting OpenDaylight" - ${CCSDK_HOME}/bin/installOdlHostKey.sh - ${ODL_HOME}/bin/start - echo "Waiting ${SLEEP_TIME} seconds for OpenDaylight to initialize" - sleep ${SLEEP_TIME} - echo "Installing SDN-C platform features" - ${SDNC_HOME}/bin/installFeatures.sh + + #${CCSDK_HOME}/bin/installOdlHostKey.sh + if [ -x ${SDNC_HOME}/svclogic/bin/install.sh ] then echo "Installing directed graphs" ${SDNC_HOME}/svclogic/bin/install.sh fi - if $ENABLE_ODL_CLUSTER ; then enable_odl_cluster ; fi + if $ENABLE_ODL_CLUSTER ; then enable_odl_cluster ; fi - echo "Restarting OpenDaylight" - ${ODL_HOME}/bin/stop - echo "Waiting 60 seconds for OpenDaylight stop to complete" - sleep 60 echo "Installed at `date`" > ${SDNC_HOME}/.installed fi -exec ${ODL_HOME}/bin/karaf +exec ${ODL_HOME}/bin/karaf server diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_sotn-network-topology-operation-activate.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_sotn-network-topology-operation-activate.json new file mode 100644 index 00000000..8fa5b0f0 --- /dev/null +++ b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_sotn-network-topology-operation-activate.json @@ -0,0 +1,203 @@ +[ + { + "id": "c91e9b10.259838", + "type": "dgstart", + "name": "DGSTART", + "outputs": 1, + "x": 96, + "y": 42.99996852874756, + "z": "ea913b4d.eb8638", + "wires": [ + [ + "38533cf9.2a1214" + ] + ] + }, + { + "id": "38533cf9.2a1214", + "type": "service-logic", + "name": "GENERIC-RESOURCE-API 1.2.1-SNAPSHOT", + "module": "GENERIC-RESOURCE-API", + "version": "1.2.1-SNAPSHOT", + "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='GENERIC-RESOURCE-API' version='1.2.1-SNAPSHOT'>", + "outputs": 1, + "x": 282.00000381469727, + "y": 114.99998569488525, + "z": "ea913b4d.eb8638", + "wires": [ + [ + "39d16e55.9c1d22" + ] + ] + }, + { + "id": "39d16e55.9c1d22", + "type": "method", + "name": "method sotn-network-topology-operation-activate", + "xml": "<method rpc='sotn-network-topology-operation-activate' mode='sync'>\n", + "comments": "", + "outputs": 1, + "x": 270.0001220703125, + "y": 202.99996852874756, + "z": "ea913b4d.eb8638", + "wires": [ + [ + "4519115b.490c9" + ] + ] + }, + { + "id": "4519115b.490c9", + "type": "block", + "name": "block : atomic", + "xml": "<block atomic=\"true\">\n", + "atomic": "false", + "comments": "", + "outputs": 1, + "x": 444.00001525878906, + "y": 311.0000276565552, + "z": "ea913b4d.eb8638", + "wires": [ + [ + "dfb7f2ca.a1635", + "d89e17e8.bd1698", + "d5e8e338.ac641", + "604990bf.defe7", + "b18a2025.dcb34", + "9bb8612f.5c571", + "c3e1900f.1a37e", + "18e80a8f.69f565" + ] + ] + }, + { + "id": "dfb7f2ca.a1635", + "type": "call", + "name": "call GENERIC-RESOURCE-API:validate-sotn-network-input-parameters", + "xml": "<call module='GENERIC-RESOURCE-API' rpc='validate-sotn-network-input-parameters' mode='sync' >\n", + "comments": "", + "outputs": 1, + "x": 902.3889007568359, + "y": 59.99996852874756, + "z": "ea913b4d.eb8638", + "wires": [ + [ + + ] + ] + }, + { + "id": "d89e17e8.bd1698", + "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=\"sotn-network-topology-operation-activate\"/>\n<parameter name=\"field3\" value=\"SOTN-Activate\"/>\n", + "comments": "", + "outputs": 1, + "x": 702.5555992126465, + "y": 113.77782154083252, + "z": "ea913b4d.eb8638", + "wires": [ + [ + + ] + ] + }, + { + "id": "d5e8e338.ac641", + "type": "set", + "name": "set networkId and network-object-path", + "xml": "<set>\n<parameter name='networkId' value='`$network-topology-operation-input.network-information.network-id`' />\n<parameter name=\"network-object-path\" value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/' + $network-topology-operation-input.service-information.service-instance-id + '/service-data/networks/network/' + $network-topology-operation-input.network-information.network-id + '/network-data/'` \" />", + "comments": "", + "x": 793.5556488037109, + "y": 302.3132629394531, + "z": "ea913b4d.eb8638", + "wires": [ + + ] + }, + { + "id": "604990bf.defe7", + "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": 715.3334503173828, + "y": 491.8686828613281, + "z": "ea913b4d.eb8638", + "wires": [ + + ] + }, + { + "id": "b18a2025.dcb34", + "type": "set", + "name": "set network-level-oper-status", + "xml": "<set>\n<parameter name='service-data.networks.network[$nidx].network-data.network-level-oper-status.order-status' value='Active' />\n<parameter name='service-data.networks.network[$nidx].network-data.network-level-oper-status.last-rpc-action' value='`$network-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.networks.network[$nidx].network-data.network-level-oper-status.last-action' value='`$network-topology-operation-input.request-information.request-action`' />", + "comments": "", + "x": 760.4445648193359, + "y": 363.53543758392334, + "z": "ea913b4d.eb8638", + "wires": [ + + ] + }, + { + "id": "9bb8612f.5c571", + "type": "execute", + "name": "execute Properties", + "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n <parameter name='contextPrefix' value='prop' />\n", + "comments": "", + "outputs": 1, + "x": 734.8577041625977, + "y": 166.77785778045654, + "z": "ea913b4d.eb8638", + "wires": [ + [ + + ] + ] + }, + { + "id": "c3e1900f.1a37e", + "type": "update", + "name": "update SOTN Connectivity status to AAI", + "xml": "<update plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='configuration' \n key='configuration.configuration-id = $network-topology-operation-input.network-information.network-id' >\n<parameter name='configuration-id' value='`$network-topology-operation-input.network-information.network-id`' />\n<parameter name='operational-status' value='Active' />", + "comments": "", + "outputs": 1, + "x": 794.6631469726562, + "y": 423.23862648010254, + "z": "ea913b4d.eb8638", + "wires": [ + [ + + ] + ] + }, + { + "id": "18e80a8f.69f565", + "type": "set", + "name": "set network in service-data", + "xml": "<set>\n<parameter name='service-data.networks.network[$nidx].network-data.sdnc-request-header.' value='`$network-topology-operation-input.sdnc-request-header.`' />\n<parameter name='service-data.networks.network[$nidx].network-data.request-information.' value='`$network-topology-operation-input.request-information.`' />\n<parameter name='service-data.networks.network[$nidx].network-data.service-information.' value='`$network-topology-operation-input.service-information.`' />\n<parameter name='service-data.networks.network[$nidx].network-data.network-information.' value='`$network-topology-operation-input.network-information.`' />", + "comments": "", + "x": 757.0001220703125, + "y": 234.09102249145508, + "z": "ea913b4d.eb8638", + "wires": [ + + ] + }, + { + "id": "bd8b5b43.6b8768", + "type": "comment", + "name": "TODO MP2MP", + "info": "Current implementation is for P2P connectivity\nFor MP2MP connectivity in future DG needs to be modified", + "comments": "", + "x": 982.03125, + "y": 157.03124904632568, + "z": "ea913b4d.eb8638", + "wires": [ + + ] + } +] diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_sotn-network-topology-operation-create.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_sotn-network-topology-operation-create.json new file mode 100644 index 00000000..9559f36f --- /dev/null +++ b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_sotn-network-topology-operation-create.json @@ -0,0 +1,1188 @@ +[ + { + "id": "11760114.ffa53f", + "type": "dgstart", + "name": "DGSTART", + "outputs": 1, + "x": 109, + "y": 68.88888743473217, + "z": "f3682574.cde048", + "wires": [ + [ + "387ea19.1ea525e" + ] + ] + }, + { + "id": "387ea19.1ea525e", + "type": "service-logic", + "name": "GENERIC-RESOURCE-API 1.2.1-SNAPSHOT", + "module": "GENERIC-RESOURCE-API", + "version": "1.2.1-SNAPSHOT", + "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='GENERIC-RESOURCE-API' version='1.2.1-SNAPSHOT'>", + "outputs": 1, + "x": 363.5, + "y": 68.88888743473217, + "z": "f3682574.cde048", + "wires": [ + [ + "acc8b788.ec53d8" + ] + ] + }, + { + "id": "acc8b788.ec53d8", + "type": "method", + "name": "sotn-network-topology-operation-create", + "xml": "<method rpc='sotn-network-topology-operation-create' mode='sync'>\n", + "comments": "", + "outputs": 1, + "x": 362.5, + "y": 168.88888743473217, + "z": "f3682574.cde048", + "wires": [ + [ + "34953ba0.309594" + ] + ] + }, + { + "id": "34953ba0.309594", + "type": "block", + "name": "block : atomic", + "xml": "<block atomic=\"true\">\n", + "atomic": "false", + "comments": "", + "outputs": 1, + "x": 502.5, + "y": 268.88888743473217, + "z": "f3682574.cde048", + "wires": [ + [ + "7388dbd6.e4b144", + "eb46e056.51069", + "27c87a61.1820b6", + "1c8ab342.be0a1d", + "f72cb383.b1b6", + "a36220a4.22926", + "a70fe000.5399c", + "47a1000.3ac09", + "edce49a.1c028b8", + "1f8a7b8b.e596a4", + "68c583ec.0ea75c", + "1522718b.801dfe", + "e184926f.0ad08" + ] + ] + }, + { + "id": "7388dbd6.e4b144", + "type": "call", + "name": "call GENERIC-RESOURCE-API:validate-sotn-network-input-parameters", + "xml": "<call module='GENERIC-RESOURCE-API' rpc='validate-sotn-network-input-parameters' mode='sync' >\n", + "comments": "", + "outputs": 1, + "x": 932.5000114440918, + "y": 86.66663935733959, + "z": "f3682574.cde048", + "wires": [ + [ + + ] + ] + }, + { + "id": "eb46e056.51069", + "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=\"sotn-network-topology-operation-create\"/>\n<parameter name=\"field3\" value=\"SOTN-Config\"/>\n", + "comments": "", + "outputs": 1, + "x": 726.0556564331055, + "y": 264.11109924316406, + "z": "f3682574.cde048", + "wires": [ + [ + + ] + ] + }, + { + "id": "27c87a61.1820b6", + "type": "execute", + "name": "execute generate-sotn-vpn-network-id", + "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\n<parameter name=\"ctx-destination\" value=\"prop.sotn.network-id\"/>\n", + "comments": "", + "outputs": 1, + "x": 826.5000114440918, + "y": 126.66663935733959, + "z": "f3682574.cde048", + "wires": [ + [ + + ] + ] + }, + { + "id": "1c8ab342.be0a1d", + "type": "switchNode", + "name": "switch service-data.networks_length", + "xml": "<switch test='`$service-data.networks.network_length`'>\n", + "comments": "", + "outputs": 1, + "x": 817.0556564331055, + "y": 224.11109924316406, + "z": "f3682574.cde048", + "wires": [ + [ + "c1b6935.5afba7", + "33b11f83.270c2" + ] + ] + }, + { + "id": "c1b6935.5afba7", + "type": "other", + "name": "Null", + "xml": "<outcome value=''>\n", + "comments": "", + "outputs": 1, + "x": 1046.0556564331055, + "y": 204.11109924316406, + "z": "f3682574.cde048", + "wires": [ + [ + "50a80e72.5fa1f" + ] + ] + }, + { + "id": "33b11f83.270c2", + "type": "other", + "name": "other", + "xml": "<outcome value='Other'>\n", + "comments": "", + "outputs": 1, + "x": 1046.0556564331055, + "y": 244.11109924316406, + "z": "f3682574.cde048", + "wires": [ + [ + "683104fc.0cc2bc" + ] + ] + }, + { + "id": "50a80e72.5fa1f", + "type": "set", + "name": "set nidx", + "xml": "<set>\n<parameter name='nidx' value='0' />\n", + "comments": "", + "x": 1188.5556564331055, + "y": 204.11109924316406, + "z": "f3682574.cde048", + "wires": [ + + ] + }, + { + "id": "4bd2e74.8492e18", + "type": "set", + "name": "set nidx", + "xml": "<set>\n<parameter name='nidx' value='`$service-data.networks.network_length`' />\n", + "comments": "", + "x": 1322.1111755371094, + "y": 205.66670894622803, + "z": "f3682574.cde048", + "wires": [ + + ] + }, + { + "id": "f72cb383.b1b6", + "type": "set", + "name": "set network in service-data", + "xml": "<set>\n<parameter name='service-data.networks.network[$nidx].network-id' value='`$prop.sotn.network-id`' />\n<parameter name='service-data.networks.network[$nidx].network-data.sdnc-request-header.' value='`$network-topology-operation-input.sdnc-request-header.`' />\n<parameter name='service-data.networks.network[$nidx].network-data.request-information.' value='`$network-topology-operation-input.request-information.`' />\n<parameter name='service-data.networks.network[$nidx].network-data.service-information.' value='`$network-topology-operation-input.service-information.`' />\n<parameter name='service-data.networks.network[$nidx].network-data.network-information.' value='`$network-topology-operation-input.network-information.`' />\n<parameter name='service-data.networks.network[$nidx].network-data.network-request-input.' value='`$network-topology-operation-input.network-request-input.`' />\n<parameter name='service-data.networks.network_length' value='`$nidx+1`' />\n\n", + "comments": "", + "x": 787.5556564331055, + "y": 304.11109924316406, + "z": "f3682574.cde048", + "wires": [ + + ] + }, + { + "id": "a36220a4.22926", + "type": "set", + "name": "set networkId and network-object-path", + "xml": "<set>\n<parameter name='networkId' value='`$prop.sotn.network-id`' />\n<parameter name=\"network-object-path\" value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/' + $network-topology-operation-input.service-information.service-instance-id + '/service-data/networks/network/' + $prop.sotn.network-id + '/network-data/'` \" />", + "comments": "", + "x": 823.0556564331055, + "y": 344.11109924316406, + "z": "f3682574.cde048", + "wires": [ + + ] + }, + { + "id": "a70fe000.5399c", + "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": 749.7224502563477, + "y": 596.7778205871582, + "z": "f3682574.cde048", + "wires": [ + + ] + }, + { + "id": "47a1000.3ac09", + "type": "set", + "name": "set network-level-oper-status", + "xml": "<set>\n<parameter name='service-data.networks.network[$nidx].network-data.network-level-oper-status.order-status' value='Created' />\n<parameter name='service-data.networks.network[$nidx].network-data.network-level-oper-status.last-rpc-action' value='`$network-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.networks.network[$nidx].network-data.network-level-oper-status.last-action' value='`$network-topology-operation-input.request-information.request-action`' />", + "comments": "", + "x": 794.5556564331055, + "y": 384.11109924316406, + "z": "f3682574.cde048", + "wires": [ + + ] + }, + { + "id": "edce49a.1c028b8", + "type": "save", + "name": "save SOTN connectivity resource in AAI", + "xml": "<save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='configuration' \n key='configuration.configuration-id = $prop.sotn.network-id' >\n<parameter name='configuration-id' value='`$prop.sotn.network-id`' />\n<parameter name='configuration-name' value='`$prop.sotn.client-svc-name`' />\n<parameter name='configuration-type' value='`$prop.sotn.client-svc-descr`' />\n<parameter name='configuration-sub-type' value='`$prop.sotn.tenantId`' />\n<parameter name='orchestration-status' value='`$prop.sotn.vpnType`' />\n<parameter name='management-option' value='`$prop.sotn.cir`' />\n<parameter name='operational-status' value='Created' />\n<parameter name='model-customization-id' value='`$network-topology-operation-input.network-information.onap-model-information.model-customization-uuid`' />\n<parameter name='model-invariant-id' value='`$network-topology-operation-input.network-information.onap-model-information.model-invariant-uuid`' />\n<parameter name='model-version-id' value='`$network-topology-operation-input.network-information.onap-model-information.model-uuid`' />\n<parameter name='configuration-selflink' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/' + $network-topology-operation-input.service-information.service-instance-id + '/service-data/networks/network/' + $prop.sotn.network-id + '/network-data/'` \" />", + "comments": "", + "outputs": 1, + "x": 827.0556564331055, + "y": 430.77778816223145, + "z": "f3682574.cde048", + "wires": [ + [ + + ] + ] + }, + { + "id": "1f8a7b8b.e596a4", + "type": "save", + "name": "save service relationship in AAI", + "xml": "<save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='service-instance:relationship-list' \n key='service-instance.service-instance-id = $service-data.service-information.service-instance-id \n AND customer.global-customer-id = $service-data.networks.network[$nidx].network-data.service-information.global-customer-id \n AND service-subscription.service-type = $service-data.networks.network[$nidx].network-data.service-information.subscription-service-type' \n force=\"true\" pfx=\"tmp.AnAI-data\">\n<parameter name=\"relationship-list.relationship[0].related-to\" value=\"configuration\" />\n<parameter name=\"relationship-list.relationship[0].related-link\" value=\"`'/network/configurations/configuration/' + $prop.sotn.network-id`\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-key\" value=\"configuration.configuration-id\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-value\" value=\"`$prop.sotn.network-id`\" />", + "comments": "", + "outputs": 1, + "x": 802.0556678771973, + "y": 468.55554008483887, + "z": "f3682574.cde048", + "wires": [ + [ + + ] + ] + }, + { + "id": "b85378f.1752188", + "type": "for", + "name": "for each existing network", + "xml": "<for index='idx' start='0' end='`$nidx`' >\n", + "comments": "", + "outputs": 1, + "x": 1191.5397186279297, + "y": 348.8888511364348, + "z": "f3682574.cde048", + "wires": [ + [ + "ad3781e0.62cbe" + ] + ] + }, + { + "id": "683104fc.0cc2bc", + "type": "block", + "name": "block", + "xml": "<block>\n", + "atomic": "false", + "comments": "", + "outputs": 1, + "x": 1190.4127006530762, + "y": 244.04761123657227, + "z": "f3682574.cde048", + "wires": [ + [ + "b85378f.1752188", + "4bd2e74.8492e18" + ] + ] + }, + { + "id": "ad3781e0.62cbe", + "type": "switchNode", + "name": "switch networkid found", + "xml": "<switch test=\"`$service-data.networks.network[$idx].network-id == $network-topology-operation-input.network-information.network-id`\">\n", + "comments": "", + "outputs": 1, + "x": 1466.825439453125, + "y": 348.4603538219817, + "z": "f3682574.cde048", + "wires": [ + [ + "30f1f431.08877c" + ] + ] + }, + { + "id": "30f1f431.08877c", + "type": "outcomeTrue", + "name": "true", + "xml": "<outcome value='true'>\n", + "comments": "", + "outputs": 1, + "x": 1367.5556373596191, + "y": 407.03178498195484, + "z": "f3682574.cde048", + "wires": [ + [ + "1df899ae.3b8026" + ] + ] + }, + { + "id": "3a07954a.fda22a", + "type": "comment", + "name": "make sure this network doesn't exist already", + "info": "", + "comments": "", + "x": 1415.1904487609863, + "y": 307.142908543814, + "z": "f3682574.cde048", + "wires": [ + + ] + }, + { + "id": "1df899ae.3b8026", + "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=\"network-topology-operation-input.network-request-input.network-id already found in service-data\" />\n", + "comments": "", + "x": 1515.3057403564453, + "y": 406.88897705078125, + "z": "f3682574.cde048", + "wires": [ + + ] + }, + { + "id": "1eccb58d.49bd0a", + "type": "block", + "name": "block", + "xml": "<block>\n", + "atomic": "false", + "comments": "", + "outputs": 1, + "x": 1481.957233428955, + "y": 176.6666965484619, + "z": "f3682574.cde048", + "wires": [ + [ + "39c25585.35095a", + "f63e13ae.1ca36", + "b990d7b7.d50db8", + "84319a02.cc83c8", + "fd903008.4e1c6", + "64b1c8e5.3ad178", + "c55257d1.2dce08", + "70e3ab9b.3b6ef4", + "f11487f.1a2d778", + "f273d999.226da8", + "e251bd6c.23dfe", + "f51170c3.6db7", + "ba516d92.f632", + "fe52bad5.770908", + "b3759567.fa1fc8", + "a9128726.ee25b8" + ] + ] + }, + { + "id": "39c25585.35095a", + "type": "switchNode", + "name": "switch name", + "xml": "<switch test=\"`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'name'`\">\n", + "comments": "", + "outputs": 1, + "x": 1740.1789779663086, + "y": 34, + "z": "f3682574.cde048", + "wires": [ + [ + "be03b2cc.d65d1" + ] + ] + }, + { + "id": "be03b2cc.d65d1", + "type": "outcomeTrue", + "name": "true", + "xml": "<outcome value='true'>\n", + "comments": "", + "outputs": 1, + "x": 1927.1789779663086, + "y": 30, + "z": "f3682574.cde048", + "wires": [ + [ + "904307f9.4f4248" + ] + ] + }, + { + "id": "904307f9.4f4248", + "type": "set", + "name": "set name", + "xml": "<set>\n<parameter name='prop.sotn.etht-svc-name' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />\n", + "comments": "", + "x": 2077.1791076660156, + "y": 28.600006580352783, + "z": "f3682574.cde048", + "wires": [ + + ] + }, + { + "id": "f63e13ae.1ca36", + "type": "switchNode", + "name": "switch description", + "xml": "<switch test=\"`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'description'`\">\n", + "comments": "", + "outputs": 1, + "x": 1751.0186386108398, + "y": 73.99999809265137, + "z": "f3682574.cde048", + "wires": [ + [ + "2d5d0686.3b5eba" + ] + ] + }, + { + "id": "2d5d0686.3b5eba", + "type": "outcomeTrue", + "name": "true", + "xml": "<outcome value='true'>\n", + "comments": "", + "outputs": 1, + "x": 1921.0186386108398, + "y": 69.99999809265137, + "z": "f3682574.cde048", + "wires": [ + [ + "8eefd68e.fffed8" + ] + ] + }, + { + "id": "8eefd68e.fffed8", + "type": "set", + "name": "set etht-svc-descr", + "xml": "<set>\n<parameter name='prop.sotn.etht-svc-descr' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />\n", + "comments": "", + "x": 2108.3520793914795, + "y": 68.46115493774414, + "z": "f3682574.cde048", + "wires": [ + + ] + }, + { + "id": "68c583ec.0ea75c", + "type": "for", + "name": "for loop i - Network input parameters", + "xml": "<for index=\"idx\" start=\"0\" end=\"`$network-topology-operation-input.network-request-input.network-input-parameters.param_length`\">\n", + "comments": "", + "outputs": 1, + "x": 819.7343978881836, + "y": 174.44442749023438, + "z": "f3682574.cde048", + "wires": [ + [ + "1eccb58d.49bd0a" + ] + ] + }, + { + "id": "b990d7b7.d50db8", + "type": "switchNode", + "name": "switch tenantId", + "xml": "<switch test=\"`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'tenantId'`\">\n", + "comments": "", + "outputs": 1, + "x": 1741.4010200500488, + "y": 117.33332538604736, + "z": "f3682574.cde048", + "wires": [ + [ + "d96e6910.7c5ce8" + ] + ] + }, + { + "id": "d96e6910.7c5ce8", + "type": "outcomeTrue", + "name": "true", + "xml": "<outcome value='true'>\n", + "comments": "", + "outputs": 1, + "x": 1928.4010200500488, + "y": 113.33332538604736, + "z": "f3682574.cde048", + "wires": [ + [ + "5b48eb71.3d5864" + ] + ] + }, + { + "id": "5b48eb71.3d5864", + "type": "set", + "name": "set tenantId", + "xml": "<set>\n<parameter name='prop.sotn.tenantId' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />\n", + "comments": "", + "x": 2096.401020050049, + "y": 113.93333148956299, + "z": "f3682574.cde048", + "wires": [ + + ] + }, + { + "id": "84319a02.cc83c8", + "type": "switchNode", + "name": "switch CIR", + "xml": "<switch test=\"`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'CIR'`\">\n", + "comments": "", + "outputs": 1, + "x": 1723.2406768798828, + "y": 207.33338356018066, + "z": "f3682574.cde048", + "wires": [ + [ + "c1cdced0.80842" + ] + ] + }, + { + "id": "c1cdced0.80842", + "type": "outcomeTrue", + "name": "true", + "xml": "<outcome value='true'>\n", + "comments": "", + "outputs": 1, + "x": 1931.2407455444336, + "y": 203.3333969116211, + "z": "f3682574.cde048", + "wires": [ + [ + "bcbc8704.d57d08" + ] + ] + }, + { + "id": "bcbc8704.d57d08", + "type": "set", + "name": "set cir", + "xml": "<set>\n<parameter name='prop.sotn.cir' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />\n", + "comments": "", + "x": 2080.5740661621094, + "y": 201.7945442199707, + "z": "f3682574.cde048", + "wires": [ + + ] + }, + { + "id": "fd903008.4e1c6", + "type": "switchNode", + "name": "switch vpnType", + "xml": "<switch test=\"`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'vpnType'`\">\n", + "comments": "", + "outputs": 1, + "x": 1742.5491485595703, + "y": 161.11110258102417, + "z": "f3682574.cde048", + "wires": [ + [ + "25a34a38.dcc406" + ] + ] + }, + { + "id": "25a34a38.dcc406", + "type": "outcomeTrue", + "name": "true", + "xml": "<outcome value='true'>\n", + "comments": "", + "outputs": 1, + "x": 1929.5491485595703, + "y": 157.11110258102417, + "z": "f3682574.cde048", + "wires": [ + [ + "fc6be9bd.f8dd28" + ] + ] + }, + { + "id": "fc6be9bd.f8dd28", + "type": "set", + "name": "set vpnType", + "xml": "<set>\n<parameter name='prop.sotn.vpnType' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />\n", + "comments": "", + "x": 2098.882781982422, + "y": 154.57226753234863, + "z": "f3682574.cde048", + "wires": [ + + ] + }, + { + "id": "64b1c8e5.3ad178", + "type": "switchNode", + "name": "switch access-provider-id", + "xml": "<switch test=\"`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'access-provider-id'`\">\n", + "comments": "", + "outputs": 1, + "x": 1764.0307846069336, + "y": 483.55562114715576, + "z": "f3682574.cde048", + "wires": [ + [ + "d7282d61.ab2dc" + ] + ] + }, + { + "id": "c55257d1.2dce08", + "type": "switchNode", + "name": "switch access-client-id", + "xml": "<switch test=\"`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'access-client-id'`\">\n", + "comments": "", + "outputs": 1, + "x": 1756.5862655639648, + "y": 528.8889503479004, + "z": "f3682574.cde048", + "wires": [ + [ + "3e5c147b.b1e80c" + ] + ] + }, + { + "id": "70e3ab9b.3b6ef4", + "type": "switchNode", + "name": "switch access-topology-id", + "xml": "<switch test=\"`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'access-topology-id'`\">\n", + "comments": "", + "outputs": 1, + "x": 1761.0307235717773, + "y": 567.7778358459473, + "z": "f3682574.cde048", + "wires": [ + [ + "733a89f7.791ab8" + ] + ] + }, + { + "id": "d7282d61.ab2dc", + "type": "outcomeTrue", + "name": "true", + "xml": "<outcome value='true'>\n", + "comments": "", + "outputs": 1, + "x": 1948.0307846069336, + "y": 482.5556364059448, + "z": "f3682574.cde048", + "wires": [ + [ + "bf6a3d1f.8cbc" + ] + ] + }, + { + "id": "3e5c147b.b1e80c", + "type": "outcomeTrue", + "name": "true", + "xml": "<outcome value='true'>\n", + "comments": "", + "outputs": 1, + "x": 1943.5862655639648, + "y": 524.8889503479004, + "z": "f3682574.cde048", + "wires": [ + [ + "eae17cc1.2b92b" + ] + ] + }, + { + "id": "733a89f7.791ab8", + "type": "outcomeTrue", + "name": "true", + "xml": "<outcome value='true'>\n", + "comments": "", + "outputs": 1, + "x": 1948.0307235717773, + "y": 563.7778358459473, + "z": "f3682574.cde048", + "wires": [ + [ + "bf2ad720.26e6f8" + ] + ] + }, + { + "id": "bf6a3d1f.8cbc", + "type": "set", + "name": "set access-provider-id", + "xml": "<set>\n<parameter name='prop.sotn.access-provider-id' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />\n", + "comments": "", + "x": 2131.253143310547, + "y": 481.66682052612305, + "z": "f3682574.cde048", + "wires": [ + + ] + }, + { + "id": "eae17cc1.2b92b", + "type": "set", + "name": "set access-client-id", + "xml": "<set>\n<parameter name='prop.sotn.access-client-id' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />\n", + "comments": "", + "x": 2120.1421813964844, + "y": 522.8994269371033, + "z": "f3682574.cde048", + "wires": [ + + ] + }, + { + "id": "bf2ad720.26e6f8", + "type": "set", + "name": "set access-topology-id", + "xml": "<set>\n<parameter name='prop.sotn.access-topology-id' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />\n", + "comments": "", + "x": 2130.0310974121094, + "y": 561.7882833480835, + "z": "f3682574.cde048", + "wires": [ + + ] + }, + { + "id": "f11487f.1a2d778", + "type": "switchNode", + "name": "switch access-node-id", + "xml": "<switch test=\"`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'access-node-id'`\">\n", + "comments": "", + "outputs": 1, + "x": 1761.8454818725586, + "y": 614.4444794654846, + "z": "f3682574.cde048", + "wires": [ + [ + "3f7939dd.f6bad6" + ] + ] + }, + { + "id": "3f7939dd.f6bad6", + "type": "outcomeTrue", + "name": "true", + "xml": "<outcome value='true'>\n", + "comments": "", + "outputs": 1, + "x": 1948.8454818725586, + "y": 610.4444794654846, + "z": "f3682574.cde048", + "wires": [ + [ + "36806cf5.900574" + ] + ] + }, + { + "id": "f273d999.226da8", + "type": "switchNode", + "name": "switch access-ltp-id", + "xml": "<switch test=\"`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'access-ltp-id'`\">\n", + "comments": "", + "outputs": 1, + "x": 1758.6232528686523, + "y": 656.8889560699463, + "z": "f3682574.cde048", + "wires": [ + [ + "dd2b85b9.e6ec48" + ] + ] + }, + { + "id": "dd2b85b9.e6ec48", + "type": "outcomeTrue", + "name": "true", + "xml": "<outcome value='true'>\n", + "comments": "", + "outputs": 1, + "x": 1945.6232528686523, + "y": 652.8889560699463, + "z": "f3682574.cde048", + "wires": [ + [ + "7e4475d7.79ec8c" + ] + ] + }, + { + "id": "36806cf5.900574", + "type": "set", + "name": "set access-node-id", + "xml": "<set>\n<parameter name='prop.sotn.access-node-id' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />\n", + "comments": "", + "x": 2120.8457946777344, + "y": 609.1216135025024, + "z": "f3682574.cde048", + "wires": [ + + ] + }, + { + "id": "7e4475d7.79ec8c", + "type": "set", + "name": "set access-ltp-id", + "xml": "<set>\n<parameter name='prop.sotn.access-ltp-id' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />\n", + "comments": "", + "x": 2111.2899475097656, + "y": 651.8993854522705, + "z": "f3682574.cde048", + "wires": [ + + ] + }, + { + "id": "1522718b.801dfe", + "type": "save", + "name": "save srcLTP relationship in AAI", + "xml": "<save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='configuration:relationship-list' \n key='configuration.configuration-id = $prop.sotn.network-id' \n 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-src-ltpId`\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-key\" value=\"logical-link.link-id\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-value\" value=\"`$unique-src-ltpId`\" />", + "comments": "", + "outputs": 1, + "x": 800.1047744750977, + "y": 553.5184006690979, + "z": "f3682574.cde048", + "wires": [ + [ + + ] + ] + }, + { + "id": "e184926f.0ad08", + "type": "set", + "name": "set unique-src-ltpId", + "xml": "<set>\n<parameter name='unique-src-ltpId' value=\"`'nodeId-' + $prop.sotn.src-access-node-id + '-ltpId-' + $prop.sotn.src-access-ltp-id`\" />", + "comments": "", + "x": 764.6603622436523, + "y": 515.9999980926514, + "z": "f3682574.cde048", + "wires": [ + + ] + }, + { + "id": "e251bd6c.23dfe", + "type": "switchNode", + "name": "switch EIR", + "xml": "<switch test=\"`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'EIR'`\">\n", + "comments": "", + "outputs": 1, + "x": 1724.5311279296875, + "y": 250.03125, + "z": "f3682574.cde048", + "wires": [ + [ + "8810ee0c.a4e38" + ] + ] + }, + { + "id": "8810ee0c.a4e38", + "type": "outcomeTrue", + "name": "true", + "xml": "<outcome value='true'>\n", + "comments": "", + "outputs": 1, + "x": 1926.5310897827148, + "y": 245.03127002716064, + "z": "f3682574.cde048", + "wires": [ + [ + "1e197aec.8afff5" + ] + ] + }, + { + "id": "1e197aec.8afff5", + "type": "set", + "name": "set eir", + "xml": "<set>\n<parameter name='prop.sotn.eir' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />\n", + "comments": "", + "x": 2082.8645935058594, + "y": 244.49240589141846, + "z": "f3682574.cde048", + "wires": [ + + ] + }, + { + "id": "f51170c3.6db7", + "type": "switchNode", + "name": "switch CBS", + "xml": "<switch test=\"`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'CBS'`\">\n", + "comments": "", + "outputs": 1, + "x": 1724.5311279296875, + "y": 299.03125, + "z": "f3682574.cde048", + "wires": [ + [ + "49df64ea.07087c" + ] + ] + }, + { + "id": "49df64ea.07087c", + "type": "outcomeTrue", + "name": "true", + "xml": "<outcome value='true'>\n", + "comments": "", + "outputs": 1, + "x": 1923.5310897827148, + "y": 295.0312566757202, + "z": "f3682574.cde048", + "wires": [ + [ + "386c9243.097e5e" + ] + ] + }, + { + "id": "386c9243.097e5e", + "type": "set", + "name": "set cbs", + "xml": "<set>\n<parameter name='prop.sotn.cbs' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />\n", + "comments": "", + "x": 2081.8646545410156, + "y": 293.49241638183594, + "z": "f3682574.cde048", + "wires": [ + + ] + }, + { + "id": "ba516d92.f632", + "type": "switchNode", + "name": "switch PBS", + "xml": "<switch test=\"`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'PBS'`\">\n", + "comments": "", + "outputs": 1, + "x": 1724.5311279296875, + "y": 344.03125, + "z": "f3682574.cde048", + "wires": [ + [ + "9ac50dab.4fbde" + ] + ] + }, + { + "id": "9ac50dab.4fbde", + "type": "outcomeTrue", + "name": "true", + "xml": "<outcome value='true'>\n", + "comments": "", + "outputs": 1, + "x": 1923.5310897827148, + "y": 337.03125762939453, + "z": "f3682574.cde048", + "wires": [ + [ + "fcfbd737.d83c58" + ] + ] + }, + { + "id": "fcfbd737.d83c58", + "type": "set", + "name": "set pbs", + "xml": "<set>\n<parameter name='prop.sotn.pbs' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />\n", + "comments": "", + "x": 2084.8646545410156, + "y": 338.49241638183594, + "z": "f3682574.cde048", + "wires": [ + + ] + }, + { + "id": "fe52bad5.770908", + "type": "switchNode", + "name": "switch color-aware", + "xml": "<switch test=\"`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'color-aware'`\">\n", + "comments": "", + "outputs": 1, + "x": 1746.5312118530273, + "y": 391.0312671661377, + "z": "f3682574.cde048", + "wires": [ + [ + "bccb8e92.0b5c7" + ] + ] + }, + { + "id": "bccb8e92.0b5c7", + "type": "outcomeTrue", + "name": "true", + "xml": "<outcome value='true'>\n", + "comments": "", + "outputs": 1, + "x": 1924.5312156677246, + "y": 385.03125953674316, + "z": "f3682574.cde048", + "wires": [ + [ + "e228c0d1.eaf54" + ] + ] + }, + { + "id": "e228c0d1.eaf54", + "type": "set", + "name": "set colorAware", + "xml": "<set>\n<parameter name='prop.sotn.colorAware' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />\n", + "comments": "", + "x": 2105.8645935058594, + "y": 384.49241828918457, + "z": "f3682574.cde048", + "wires": [ + + ] + }, + { + "id": "b3759567.fa1fc8", + "type": "switchNode", + "name": "switch coupling-flag", + "xml": "<switch test=\"`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'coupling-flag'`\">\n", + "comments": "", + "outputs": 1, + "x": 1746.5312194824219, + "y": 437.0312919616699, + "z": "f3682574.cde048", + "wires": [ + [ + "a4cdcb3.5f83638" + ] + ] + }, + { + "id": "a4cdcb3.5f83638", + "type": "outcomeTrue", + "name": "true", + "xml": "<outcome value='true'>\n", + "comments": "", + "outputs": 1, + "x": 1924.5312118530273, + "y": 429.0312604904175, + "z": "f3682574.cde048", + "wires": [ + [ + "6e47434b.16603c" + ] + ] + }, + { + "id": "6e47434b.16603c", + "type": "set", + "name": "set couplingFlag", + "xml": "<set>\n<parameter name='prop.sotn.couplingFlag' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />\n", + "comments": "", + "x": 2109.8645935058594, + "y": 429.4924430847168, + "z": "f3682574.cde048", + "wires": [ + + ] + }, + { + "id": "a9128726.ee25b8", + "type": "switchNode", + "name": "switch cVLAN", + "xml": "<switch test=\"`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'cVLAN'`\">\n", + "comments": "", + "outputs": 1, + "x": 1737.5311584472656, + "y": 702.0312995910645, + "z": "f3682574.cde048", + "wires": [ + [ + "1ad6eb3c.320b35" + ] + ] + }, + { + "id": "1ad6eb3c.320b35", + "type": "outcomeTrue", + "name": "true", + "xml": "<outcome value='true'>\n", + "comments": "", + "outputs": 1, + "x": 1942.5311279296875, + "y": 703.03125, + "z": "f3682574.cde048", + "wires": [ + [ + "9dd46589.0d0a48" + ] + ] + }, + { + "id": "9dd46589.0d0a48", + "type": "set", + "name": "set cVLAN", + "xml": "<set>\n<parameter name='prop.sotn.cVLAN' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />\n", + "comments": "", + "x": 2096.197967529297, + "y": 702.0417213439941, + "z": "f3682574.cde048", + "wires": [ + + ] + }, + { + "id": "b152e598.bced08", + "type": "comment", + "name": "TODO: Recheck AAI schemas", + "info": "", + "comments": "", + "x": 791.0312805175781, + "y": 33.03132629394531, + "z": "f3682574.cde048", + "wires": [ + + ] + } +] diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_sotn-network-topology-operation-deactivate.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_sotn-network-topology-operation-deactivate.json new file mode 100644 index 00000000..4751238e --- /dev/null +++ b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_sotn-network-topology-operation-deactivate.json @@ -0,0 +1,203 @@ +[ + { + "id": "e417c255.55168", + "type": "dgstart", + "name": "DGSTART", + "outputs": 1, + "x": 97, + "y": 58.666653633117676, + "z": "a60e1b2.0e00ee8", + "wires": [ + [ + "7ab6ef86.3029d" + ] + ] + }, + { + "id": "7ab6ef86.3029d", + "type": "service-logic", + "name": "GENERIC-RESOURCE-API 1.2.1-SNAPSHOT", + "module": "GENERIC-RESOURCE-API", + "version": "1.2.1-SNAPSHOT", + "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='GENERIC-RESOURCE-API' version='1.2.1-SNAPSHOT'>", + "outputs": 1, + "x": 253.00000381469727, + "y": 149.66667556762695, + "z": "a60e1b2.0e00ee8", + "wires": [ + [ + "2feb52d2.f795ee" + ] + ] + }, + { + "id": "2feb52d2.f795ee", + "type": "method", + "name": "method sotn-network-topology-operation-deactivate", + "xml": "<method rpc='sotn-network-topology-operation-deactivate' mode='sync'>\n", + "comments": "", + "outputs": 1, + "x": 241.0001220703125, + "y": 237.66665840148926, + "z": "a60e1b2.0e00ee8", + "wires": [ + [ + "3f213c21.d34564" + ] + ] + }, + { + "id": "3f213c21.d34564", + "type": "block", + "name": "block : atomic", + "xml": "<block atomic=\"true\">\n", + "atomic": "false", + "comments": "", + "outputs": 1, + "x": 464.0000762939453, + "y": 309.6667318344116, + "z": "a60e1b2.0e00ee8", + "wires": [ + [ + "9aa8fa45.2b1e08", + "f32a24c6.dffed8", + "27480d76.5a34a2", + "ca91a3af.46939", + "616e31bd.918fb", + "5b600577.38704c", + "37e02aa8.77f506", + "ef74970a.886bc8" + ] + ] + }, + { + "id": "9aa8fa45.2b1e08", + "type": "call", + "name": "call GENERIC-RESOURCE-API:validate-sotn-network-input-parameters", + "xml": "<call module='GENERIC-RESOURCE-API' rpc='validate-sotn-network-input-parameters' mode='sync' >\n", + "comments": "", + "outputs": 1, + "x": 895.6111450195312, + "y": 57.99999713897705, + "z": "a60e1b2.0e00ee8", + "wires": [ + [ + + ] + ] + }, + { + "id": "f32a24c6.dffed8", + "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=\"sotn-network-topology-operation-activate\"/>\n<parameter name=\"field3\" value=\"SOTN-Deactivate\"/>\n", + "comments": "", + "outputs": 1, + "x": 700.03125, + "y": 101.03125, + "z": "a60e1b2.0e00ee8", + "wires": [ + [ + + ] + ] + }, + { + "id": "616e31bd.918fb", + "type": "set", + "name": "set networkId and network-object-path", + "xml": "<set>\n<parameter name='networkId' value='`$network-topology-operation-input.network-information.network-id`' />\n<parameter name=\"network-object-path\" value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/' + $network-topology-operation-input.service-information.service-instance-id + '/service-data/networks/network/' + $network-topology-operation-input.network-information.network-id + '/network-data/'` \" />", + "comments": "", + "x": 791.0312995910645, + "y": 289.5666913986206, + "z": "a60e1b2.0e00ee8", + "wires": [ + + ] + }, + { + "id": "ef74970a.886bc8", + "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": 712.8091011047363, + "y": 479.1221113204956, + "z": "a60e1b2.0e00ee8", + "wires": [ + + ] + }, + { + "id": "5b600577.38704c", + "type": "set", + "name": "set network-level-oper-status", + "xml": "<set>\n<parameter name='service-data.networks.network[$nidx].network-data.network-level-oper-status.order-status' value='PendingDelete' />\n<parameter name='service-data.networks.network[$nidx].network-data.network-level-oper-status.last-rpc-action' value='`$network-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.networks.network[$nidx].network-data.network-level-oper-status.last-action' value='`$network-topology-operation-input.request-information.request-action`' />", + "comments": "", + "x": 757.9202156066895, + "y": 350.7888660430908, + "z": "a60e1b2.0e00ee8", + "wires": [ + + ] + }, + { + "id": "27480d76.5a34a2", + "type": "execute", + "name": "execute Properties", + "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n <parameter name='contextPrefix' value='prop' />\n", + "comments": "", + "outputs": 1, + "x": 732.3333549499512, + "y": 154.03128623962402, + "z": "a60e1b2.0e00ee8", + "wires": [ + [ + + ] + ] + }, + { + "id": "37e02aa8.77f506", + "type": "update", + "name": "update SOTN Connectivity status to AAI", + "xml": "<update plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='configuration' \n key='configuration.configuration-id = $network-topology-operation-input.network-information.network-id' >\n<parameter name='configuration-id' value='`$network-topology-operation-input.network-information.network-id`' />\n<parameter name='operational-status' value='PendingDelete' />", + "comments": "", + "outputs": 1, + "x": 792.1387977600098, + "y": 410.49205493927, + "z": "a60e1b2.0e00ee8", + "wires": [ + [ + + ] + ] + }, + { + "id": "ca91a3af.46939", + "type": "set", + "name": "set network in service-data", + "xml": "<set>\n<parameter name='service-data.networks.network[$nidx].network-data.sdnc-request-header.' value='`$network-topology-operation-input.sdnc-request-header.`' />\n<parameter name='service-data.networks.network[$nidx].network-data.request-information.' value='`$network-topology-operation-input.request-information.`' />\n<parameter name='service-data.networks.network[$nidx].network-data.service-information.' value='`$network-topology-operation-input.service-information.`' />\n<parameter name='service-data.networks.network[$nidx].network-data.network-information.' value='`$network-topology-operation-input.network-information.`' />", + "comments": "", + "x": 754.475772857666, + "y": 221.34445095062256, + "z": "a60e1b2.0e00ee8", + "wires": [ + + ] + }, + { + "id": "80bfe5ee.a7ea98", + "type": "comment", + "name": "TODO MP2MP", + "info": "Current implementation is for P2P connectivity\nFor MP2MP connectivity in future DG needs to be modified", + "comments": "", + "x": 979.5069007873535, + "y": 144.28467750549316, + "z": "a60e1b2.0e00ee8", + "wires": [ + + ] + } +] diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_sotn-network-topology-operation-delete.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_sotn-network-topology-operation-delete.json new file mode 100644 index 00000000..8b953708 --- /dev/null +++ b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_sotn-network-topology-operation-delete.json @@ -0,0 +1,173 @@ +[ + { + "id": "6fceaf50.2ca8a", + "type": "dgstart", + "name": "DGSTART", + "outputs": 1, + "x": 97.03125762939453, + "y": 60.531246185302734, + "z": "4279d5d.f45972c", + "wires": [ + [ + "cff1a431.d9d948" + ] + ] + }, + { + "id": "cff1a431.d9d948", + "type": "service-logic", + "name": "GENERIC-RESOURCE-API 1.2.1-SNAPSHOT", + "module": "GENERIC-RESOURCE-API", + "version": "1.2.1-SNAPSHOT", + "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='GENERIC-RESOURCE-API' version='1.2.1-SNAPSHOT'>", + "outputs": 1, + "x": 309.0312614440918, + "y": 132.53126335144043, + "z": "4279d5d.f45972c", + "wires": [ + [ + "f4a2f725.1d7778" + ] + ] + }, + { + "id": "f4a2f725.1d7778", + "type": "method", + "name": "method sotn-network-topology-operation-delete", + "xml": "<method rpc='sotn-network-topology-operation-delete' mode='sync'>\n", + "comments": "", + "outputs": 1, + "x": 297.03137969970703, + "y": 220.53124618530273, + "z": "4279d5d.f45972c", + "wires": [ + [ + "977562d1.fa7af" + ] + ] + }, + { + "id": "977562d1.fa7af", + "type": "block", + "name": "block : atomic", + "xml": "<block atomic=\"true\">\n", + "atomic": "false", + "comments": "", + "outputs": 1, + "x": 467.47571182250977, + "y": 282.9757022857666, + "z": "4279d5d.f45972c", + "wires": [ + [ + "6af1abf.a866354", + "18eeced4.574d91", + "406c5f6.7e479a", + "10a58dd4.391ce2", + "60c54ca0.bb3fb4", + "47c1a26c.4cd8ec", + "a482b966.7af068" + ] + ] + }, + { + "id": "6af1abf.a866354", + "type": "call", + "name": "call GENERIC-RESOURCE-API:validate-sotn-network-input-parameters", + "xml": "<call module='GENERIC-RESOURCE-API' rpc='validate-sotn-network-input-parameters' mode='sync' >\n", + "comments": "", + "outputs": 1, + "x": 929.4201583862305, + "y": 77.53124618530273, + "z": "4279d5d.f45972c", + "wires": [ + [ + + ] + ] + }, + { + "id": "18eeced4.574d91", + "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=\"sotn-network-topology-operation-delete\"/>\n<parameter name=\"field3\" value=\"SOTN-Delete\"/>\n", + "comments": "", + "outputs": 1, + "x": 742.8089828491211, + "y": 143.8646183013916, + "z": "4279d5d.f45972c", + "wires": [ + [ + + ] + ] + }, + { + "id": "406c5f6.7e479a", + "type": "set", + "name": "set networkId and network-object-path", + "xml": "<set>\n<parameter name='networkId' value='`$network-topology-operation-input.network-information.network-id`' />\n<parameter name='service-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $network-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'` \" />", + "comments": "", + "x": 827.4756660461426, + "y": 391.9555377960205, + "z": "4279d5d.f45972c", + "wires": [ + + ] + }, + { + "id": "10a58dd4.391ce2", + "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": 756.5869140625, + "y": 455.5109257698059, + "z": "4279d5d.f45972c", + "wires": [ + + ] + }, + { + "id": "47c1a26c.4cd8ec", + "type": "set", + "name": "set new network length", + "xml": "<set>\n\t<parameter name=\"service-data.networks.network_length\" value=\"`$service-data.networks.network_length - 1`\"/>\n\n\t\n", + "comments": "", + "x": 786.1083374023438, + "y": 269.42644786834717, + "z": "4279d5d.f45972c", + "wires": [ + + ] + }, + { + "id": "60c54ca0.bb3fb4", + "type": "set", + "name": "Remove networks from ServiceData", + "xml": "<set>\n\t<parameter name=\"service-data.networks.network[$nidx].\" value=\"\"/>\n\n", + "comments": "", + "x": 826.732494354248, + "y": 317.394389629364, + "z": "4279d5d.f45972c", + "wires": [ + + ] + }, + { + "id": "a482b966.7af068", + "type": "delete", + "name": "delete SOTN VPNInstance configuration in AAI", + "xml": "<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" resource='configuration' \n key='configuration.configuration-id = $network-topology-operation-input.network-information.network-id'>\n", + "comments": "", + "outputs": 1, + "x": 864.6638374328613, + "y": 210.53753185272217, + "z": "4279d5d.f45972c", + "wires": [ + [ + + ] + ] + } +] diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_validate-sotn-network-input-parameters.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_validate-sotn-network-input-parameters.json new file mode 100644 index 00000000..7ba8a8fa --- /dev/null +++ b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_validate-sotn-network-input-parameters.json @@ -0,0 +1,1227 @@ +[ + { + "id": "f341527b.50b3", + "type": "dgstart", + "name": "DGSTART", + "outputs": 1, + "x": 100.03125, + "y": 50.3333295583725, + "z": "612a8bcd.555ff4", + "wires": [ + [ + "73a43f3f.5366a" + ] + ] + }, + { + "id": "73a43f3f.5366a", + "type": "service-logic", + "name": "GENERIC-RESOURCE-API 1.2.1-SNAPSHOT", + "module": "GENERIC-RESOURCE-API", + "version": "1.2.1-SNAPSHOT", + "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='GENERIC-RESOURCE-API' version='1.2.1-SNAPSHOT'>", + "outputs": 1, + "x": 345.3169631958008, + "y": 49.57140862941742, + "z": "612a8bcd.555ff4", + "wires": [ + [ + "51c30458.248f6c" + ] + ] + }, + { + "id": "51c30458.248f6c", + "type": "method", + "name": "validate-sotn-network-input-parameters", + "xml": "<method rpc='validate-sotn-network-input-parameters' mode='sync'>\n", + "comments": "", + "outputs": 1, + "x": 302.94793701171875, + "y": 124.5863469839096, + "z": "612a8bcd.555ff4", + "wires": [ + [ + "2614ca2e.5555e6" + ] + ] + }, + { + "id": "2614ca2e.5555e6", + "type": "block", + "name": "block : atomic", + "xml": "<block atomic=\"true\">", + "atomic": "true", + "outputs": 1, + "x": 586.9479446411133, + "y": 112.58637177944183, + "z": "612a8bcd.555ff4", + "wires": [ + [ + "7d98662d.87c938", + "db93dd27.961fc" + ] + ] + }, + { + "id": "7d98662d.87c938", + "type": "switchNode", + "name": "switch svc-action", + "xml": "<switch test='`$network-topology-operation-input.sdnc-request-header.svc-action`'>\n", + "comments": "", + "outputs": 1, + "x": 867.9479446411133, + "y": 107.58635747432709, + "z": "612a8bcd.555ff4", + "wires": [ + [ + "ed1074da.968838" + ] + ] + }, + { + "id": "ed1074da.968838", + "type": "outcome", + "name": "NULL", + "xml": "<outcome value=''>", + "comments": "", + "outputs": 1, + "x": 1058.6622467041016, + "y": 108.5863584280014, + "z": "612a8bcd.555ff4", + "wires": [ + [ + "1f50e65c.41f41a" + ] + ] + }, + { + "id": "1f50e65c.41f41a", + "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=\"sdnc-request-header.svc-request-id is a required input\" />\n", + "comments": "", + "x": 1233.0907974243164, + "y": 107.58635079860687, + "z": "612a8bcd.555ff4", + "wires": [ + + ] + }, + { + "id": "db93dd27.961fc", + "type": "switchNode", + "name": "switch svc-action", + "xml": "<switch test='`$network-topology-operation-input.sdnc-request-header.svc-action`'>\n", + "comments": "", + "outputs": 1, + "x": 168.94789123535156, + "y": 383.58637177944183, + "z": "612a8bcd.555ff4", + "wires": [ + [ + "b3bdbe0b.cad91", + "26d5914b.21d37e", + "3f8d5428.3f490c", + "2e6ac3e2.42bc2c", + "8ba722c1.4dbdb" + ] + ] + }, + { + "id": "b3bdbe0b.cad91", + "type": "outcome", + "name": "create", + "xml": "<outcome value='create'>\n", + "comments": "", + "outputs": 1, + "x": 377.53126525878906, + "y": 212.99999940395355, + "z": "612a8bcd.555ff4", + "wires": [ + [ + "898ae9b8.952238" + ] + ] + }, + { + "id": "898ae9b8.952238", + "type": "block", + "name": "block : atomic", + "xml": "<block atomic=\"true\">", + "atomic": "true", + "outputs": 1, + "x": 538.5312652587891, + "y": 212.99999940395355, + "z": "612a8bcd.555ff4", + "wires": [ + [ + "29c233ae.14280c" + ] + ] + }, + { + "id": "26d5914b.21d37e", + "type": "outcome", + "name": "deactivate", + "xml": "<outcome value='deactivate'>\n", + "comments": "", + "outputs": 1, + "x": 350.52325439453125, + "y": 821.7618678808212, + "z": "612a8bcd.555ff4", + "wires": [ + [ + "5f3074f8.76c69c" + ] + ] + }, + { + "id": "3f8d5428.3f490c", + "type": "outcome", + "name": "delete", + "xml": "<outcome value='delete'>\n", + "comments": "", + "outputs": 1, + "x": 354.2376365661621, + "y": 992.4764255285263, + "z": "612a8bcd.555ff4", + "wires": [ + [ + "b3fb014d.8c7af" + ] + ] + }, + { + "id": "2e6ac3e2.42bc2c", + "type": "other", + "name": "other", + "xml": "<outcome value='Other'>\n", + "comments": "", + "outputs": 1, + "x": 353.99952697753906, + "y": 1165.9047111272812, + "z": "612a8bcd.555ff4", + "wires": [ + [ + "bc54858d.9ca818" + ] + ] + }, + { + "id": "bc54858d.9ca818", + "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=\"`$network-topology-operation-input.sdnc-request-header.svc-action + ' is not a valid svc-action'`\" />\n", + "comments": "", + "x": 537.5710601806641, + "y": 1166.5238517522812, + "z": "612a8bcd.555ff4", + "wires": [ + + ] + }, + { + "id": "29c233ae.14280c", + "type": "switchNode", + "name": "switch request-action", + "xml": "<switch test='`$network-topology-operation-input.request-information.request-action`'>\n", + "comments": "", + "outputs": 1, + "x": 762.0312652587891, + "y": 212.99999940395355, + "z": "612a8bcd.555ff4", + "wires": [ + [ + "45f9882d.888fa8", + "c9fe1e81.e4448" + ] + ] + }, + { + "id": "45f9882d.888fa8", + "type": "other", + "name": "Other", + "xml": "<outcome value='Other'>", + "comments": "", + "outputs": 1, + "x": 937.5312652587891, + "y": 232.99999940395355, + "z": "612a8bcd.555ff4", + "wires": [ + [ + "a900b306.d7c45" + ] + ] + }, + { + "id": "a900b306.d7c45", + "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=\"request-information.request-action is required to be SOTN CreateVPNNetworkInstance for svc-action=create\" />\n", + "comments": "", + "x": 1075.031265258789, + "y": 232.99999940395355, + "z": "612a8bcd.555ff4", + "wires": [ + + ] + }, + { + "id": "6b8a3092.36d36", + "type": "other", + "name": "DeleteSOTNConnectivityIntance", + "xml": "<outcome value='DeleteSOTNConnectivityIntance'>", + "comments": "", + "outputs": 1, + "x": 776.0946769714355, + "y": 993.0316957235336, + "z": "612a8bcd.555ff4", + "wires": [ + [ + "77908b22.05afb4" + ] + ] + }, + { + "id": "8144887f.4926d8", + "type": "other", + "name": "Other", + "xml": "<outcome value='Other'>", + "comments": "", + "outputs": 1, + "x": 711.6502227783203, + "y": 1065.2539647817612, + "z": "612a8bcd.555ff4", + "wires": [ + [ + "8b6a3319.1c2db" + ] + ] + }, + { + "id": "8b6a3319.1c2db", + "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=\"request-information.request-action is required to be SOTN DeleteVPNNetworkInstance for svc-action=delete\" />\n", + "comments": "", + "x": 871.983642578125, + "y": 1067.365102171898, + "z": "612a8bcd.555ff4", + "wires": [ + + ] + }, + { + "id": "77908b22.05afb4", + "type": "block", + "name": "block : atomic", + "xml": "<block atomic=\"true\">", + "atomic": "true", + "outputs": 1, + "x": 1019.9835510253906, + "y": 995.2539476156235, + "z": "612a8bcd.555ff4", + "wires": [ + [ + "174db933.229107", + "c5c30480.3e58d8", + "57a9e8ca.5b6ba8", + "5d3a1919.83ff78" + ] + ] + }, + { + "id": "8ba722c1.4dbdb", + "type": "outcome", + "name": "activate", + "xml": "<outcome value='activate'>\n", + "comments": "", + "outputs": 1, + "x": 371.4598197937012, + "y": 476.04764211177826, + "z": "612a8bcd.555ff4", + "wires": [ + [ + "c50ae05a.b3f78" + ] + ] + }, + { + "id": "c50ae05a.b3f78", + "type": "switchNode", + "name": "switch request-action", + "xml": "<switch test='`$network-topology-operation-input.request-information.request-action`'>\n", + "comments": "", + "outputs": 1, + "x": 554.3169860839844, + "y": 473.19049203395844, + "z": "612a8bcd.555ff4", + "wires": [ + [ + "3a3dfff9.f5159", + "e69e7919.c1d848" + ] + ] + }, + { + "id": "3a3dfff9.f5159", + "type": "other", + "name": "ActivateSOTNConnectivityIntance", + "xml": "<outcome value='ActivateSOTNConnectivityIntance'>", + "comments": "", + "outputs": 1, + "x": 807.5312652587891, + "y": 452.99999940395355, + "z": "612a8bcd.555ff4", + "wires": [ + [ + "c446e4e6.e8ac48" + ] + ] + }, + { + "id": "e69e7919.c1d848", + "type": "other", + "name": "Other", + "xml": "<outcome value='Other'>", + "comments": "", + "outputs": 1, + "x": 737.5312652587891, + "y": 492.99999940395355, + "z": "612a8bcd.555ff4", + "wires": [ + [ + "f911f3da.ef74b" + ] + ] + }, + { + "id": "f911f3da.ef74b", + "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=\"request-information.request-action is required to be SOTN ActivateVPNNetworkInstance for svc-action=activate\" />\n", + "comments": "", + "x": 895.0312652587891, + "y": 492.99999940395355, + "z": "612a8bcd.555ff4", + "wires": [ + + ] + }, + { + "id": "c446e4e6.e8ac48", + "type": "block", + "name": "block : atomic", + "xml": "<block atomic=\"true\">", + "atomic": "true", + "outputs": 1, + "x": 1038.531265258789, + "y": 452.99999940395355, + "z": "612a8bcd.555ff4", + "wires": [ + [ + "57a9e8ca.5b6ba8", + "174db933.229107", + "c5c30480.3e58d8", + "ca8482b0.138b7" + ] + ] + }, + { + "id": "d4ecf814.c6a798", + "type": "other", + "name": "DeactivateSOTNConnectivityIntance", + "xml": "<outcome value='DeactivateSOTNConnectivityIntance'>", + "comments": "", + "outputs": 1, + "x": 793.9518814086914, + "y": 823.4762614965439, + "z": "612a8bcd.555ff4", + "wires": [ + [ + "3dd1f9de.bc71e6" + ] + ] + }, + { + "id": "5b749a1a.8a0654", + "type": "other", + "name": "Other", + "xml": "<outcome value='Other'>", + "comments": "", + "outputs": 1, + "x": 708.9518737792969, + "y": 892.4762691259384, + "z": "612a8bcd.555ff4", + "wires": [ + [ + "47507d7d.fc2bb4" + ] + ] + }, + { + "id": "47507d7d.fc2bb4", + "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=\"request-information.request-action is required to be SOTN DeactivateVPNNetworkInstance for svc-action=deactivate\" />\n", + "comments": "", + "x": 889.9518890380859, + "y": 893.4762691259384, + "z": "612a8bcd.555ff4", + "wires": [ + + ] + }, + { + "id": "5f3074f8.76c69c", + "type": "switchNode", + "name": "switch request-action", + "xml": "<switch test='`$network-topology-operation-input.request-information.request-action`'>\n", + "comments": "", + "outputs": 1, + "x": 530.8089370727539, + "y": 823.9520953893661, + "z": "612a8bcd.555ff4", + "wires": [ + [ + "d4ecf814.c6a798", + "5b749a1a.8a0654" + ] + ] + }, + { + "id": "b3fb014d.8c7af", + "type": "switchNode", + "name": "switch request-action", + "xml": "<switch test='`$network-topology-operation-input.request-information.request-action`'>\n", + "comments": "", + "outputs": 1, + "x": 534.5867385864258, + "y": 992.2856494188309, + "z": "612a8bcd.555ff4", + "wires": [ + [ + "6b8a3092.36d36", + "8144887f.4926d8" + ] + ] + }, + { + "id": "3dd1f9de.bc71e6", + "type": "block", + "name": "block : atomic", + "xml": "<block atomic=\"true\">", + "atomic": "true", + "outputs": 1, + "x": 1053.9200286865234, + "y": 826.2856563329697, + "z": "612a8bcd.555ff4", + "wires": [ + [ + "174db933.229107", + "c5c30480.3e58d8", + "57a9e8ca.5b6ba8", + "dee8bd53.56b7b" + ] + ] + }, + { + "id": "c9fe1e81.e4448", + "type": "other", + "name": "CreateSOTNConnectivityIntance", + "xml": "<outcome value='CreateSOTNConnectivityIntance'>", + "comments": "", + "outputs": 1, + "x": 1003.5312652587891, + "y": 192.99999940395355, + "z": "612a8bcd.555ff4", + "wires": [ + [ + "f41339c3.f110b8" + ] + ] + }, + { + "id": "f41339c3.f110b8", + "type": "block", + "name": "block : atomic", + "xml": "<block atomic=\"true\">", + "atomic": "true", + "outputs": 1, + "x": 1218.531265258789, + "y": 192.99999940395355, + "z": "612a8bcd.555ff4", + "wires": [ + [ + "78324d1c.b05904" + ] + ] + }, + { + "id": "78324d1c.b05904", + "type": "for", + "name": "for loop i - Network input parameters", + "xml": "<for index=\"i\" start=\"0\" end=\"`$network-topology-operation-input.network-request-input.network-input-parameters.param_length`\">\n", + "comments": "", + "outputs": 1, + "x": 1469.031265258789, + "y": 192.99999940395355, + "z": "612a8bcd.555ff4", + "wires": [ + [ + "6af6c64a.163a28" + ] + ] + }, + { + "id": "6af6c64a.163a28", + "type": "block", + "name": "block", + "xml": "<block>\n", + "atomic": "false", + "comments": "", + "outputs": 1, + "x": 1697.531265258789, + "y": 192.99999940395355, + "z": "612a8bcd.555ff4", + "wires": [ + [ + "9cb7bf55.5070b", + "46cd63b4.17fedc", + "8ab4804d.8981" + ] + ] + }, + { + "id": "9cb7bf55.5070b", + "type": "set", + "name": "clear tmp-data", + "xml": "<set>\n<parameter name='tmp.name' value='' />\n<parameter name='tmp.value' value='' />\n", + "comments": "", + "x": 1880.531265258789, + "y": 152.99999940395355, + "z": "612a8bcd.555ff4", + "wires": [ + + ] + }, + { + "id": "46cd63b4.17fedc", + "type": "set", + "name": "set tmp-data", + "xml": "<set>\n<parameter name='tmp.name' value=\"`$network-topology-operation-input.network-request-input.network-input-parameters.param[$i].name`\"/>\n<parameter name='tmp.value' value=\"`$network-topology-operation-input.network-request-input.network-input-parameters.param[$i].value`\"/>\n", + "comments": "", + "x": 1875.031265258789, + "y": 192.99999940395355, + "z": "612a8bcd.555ff4", + "wires": [ + + ] + }, + { + "id": "8ab4804d.8981", + "type": "switchNode", + "name": "switch name", + "xml": "<switch test=\"`$tmp.name`\">\n", + "comments": "", + "outputs": 1, + "x": 1875.031265258789, + "y": 232.99999940395355, + "z": "612a8bcd.555ff4", + "wires": [ + [ + "9592d9e2.7991f8", + "97143bfc.87f758", + "d423ac2f.9c51f" + ] + ] + }, + { + "id": "7c1a345e.318e8c", + "type": "switchNode", + "name": "switch value", + "xml": "<switch test=\"`$tmp.value`\">\n", + "comments": "", + "outputs": 1, + "x": 2335.0314331054688, + "y": 185.00002002716064, + "z": "612a8bcd.555ff4", + "wires": [ + [ + "71892760.797d58" + ] + ] + }, + { + "id": "d423ac2f.9c51f", + "type": "outcome", + "name": "NULL", + "xml": "<outcome value=''>", + "comments": "", + "outputs": 1, + "x": 2094.5316009521484, + "y": 251.00000762939453, + "z": "612a8bcd.555ff4", + "wires": [ + [ + "f8a3cfb8.ff88b" + ] + ] + }, + { + "id": "f8a3cfb8.ff88b", + "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=\"`'network-topology-operation-input.network-request-input.network-input-parameters.param[' + $i + ']' + '.name is a required input'`\" />\n", + "comments": "", + "x": 2269.5316047668457, + "y": 250.00000762939453, + "z": "612a8bcd.555ff4", + "wires": [ + + ] + }, + { + "id": "9592d9e2.7991f8", + "type": "other", + "name": "name", + "xml": "<outcome value='name'>", + "comments": "", + "outputs": 1, + "x": 2094.5316009521484, + "y": 135.00000190734863, + "z": "612a8bcd.555ff4", + "wires": [ + [ + "7c1a345e.318e8c" + ] + ] + }, + { + "id": "97143bfc.87f758", + "type": "other", + "name": "description", + "xml": "<outcome value='description'>", + "comments": "", + "outputs": 1, + "x": 2106.5313568115234, + "y": 188.66666412353516, + "z": "612a8bcd.555ff4", + "wires": [ + [ + "7c1a345e.318e8c" + ] + ] + }, + { + "id": "71892760.797d58", + "type": "outcome", + "name": "NULL", + "xml": "<outcome value=''>", + "comments": "", + "outputs": 1, + "x": 2478.5314331054688, + "y": 185.00002002716064, + "z": "612a8bcd.555ff4", + "wires": [ + [ + "51159df7.8f7f34" + ] + ] + }, + { + "id": "51159df7.8f7f34", + "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=\"`'network-request-input.network-input-parameters.param '+ $tmp.name +' is a required input'`\" />\n", + "comments": "", + "x": 2636.5314331054688, + "y": 185.00002002716064, + "z": "612a8bcd.555ff4", + "wires": [ + + ] + }, + { + "id": "57a9e8ca.5b6ba8", + "type": "switchNode", + "name": "switch service-data.networks.network_length", + "xml": "<switch test='`$service-data.networks.network_length`'>\n", + "comments": "", + "outputs": 1, + "x": 1343.4201278686523, + "y": 496.3333123922348, + "z": "612a8bcd.555ff4", + "wires": [ + [ + "c975a187.53f03", + "c343c1d6.32b89" + ] + ] + }, + { + "id": "c975a187.53f03", + "type": "other", + "name": "outcome Null", + "xml": "<outcome value=''>\n", + "comments": "", + "outputs": 1, + "x": 1597.031265258789, + "y": 472.99999940395355, + "z": "612a8bcd.555ff4", + "wires": [ + [ + "7bf63be7.236304" + ] + ] + }, + { + "id": "7bf63be7.236304", + "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=\"network-topology-operation-input.network-request-input.network-id not found in service-data\" />\n", + "comments": "", + "x": 1775.031265258789, + "y": 472.99999940395355, + "z": "612a8bcd.555ff4", + "wires": [ + + ] + }, + { + "id": "c343c1d6.32b89", + "type": "other", + "name": "other", + "xml": "<outcome value='Other'>\n", + "comments": "", + "outputs": 1, + "x": 1577.531265258789, + "y": 512.9999994039536, + "z": "612a8bcd.555ff4", + "wires": [ + [ + "8b3c7b72.8416d8" + ] + ] + }, + { + "id": "8b3c7b72.8416d8", + "type": "block", + "name": "block : atomic", + "xml": "<block atomic=\"true\">", + "atomic": "true", + "outputs": 1, + "x": 1738.531265258789, + "y": 512.9999994039536, + "z": "612a8bcd.555ff4", + "wires": [ + [ + "ea8be443.435208", + "f4cb0140.f19dc" + ] + ] + }, + { + "id": "ea8be443.435208", + "type": "for", + "name": "for nidx..service-data.networks.network[]", + "xml": "<for index='nidx' start='0' end='`$service-data.networks.network_length`' >\n", + "comments": "", + "outputs": 1, + "x": 2001.031265258789, + "y": 492.99999940395355, + "z": "612a8bcd.555ff4", + "wires": [ + [ + "1c69986e.121d38" + ] + ] + }, + { + "id": "1c69986e.121d38", + "type": "switchNode", + "name": "switch networkid found", + "xml": "<switch test=\"`$service-data.networks.network[$nidx].network-id == $network-topology-operation-input.network-information.network-id`\">\n\n", + "comments": "", + "outputs": 1, + "x": 2287.031265258789, + "y": 492.99999940395355, + "z": "612a8bcd.555ff4", + "wires": [ + [ + "835d02de.19c93" + ] + ] + }, + { + "id": "835d02de.19c93", + "type": "outcomeTrue", + "name": "true", + "xml": "<outcome value='true'>\n", + "comments": "", + "outputs": 1, + "x": 2457.531265258789, + "y": 492.99999940395355, + "z": "612a8bcd.555ff4", + "wires": [ + [ + "a4620b88.fbb918" + ] + ] + }, + { + "id": "a4620b88.fbb918", + "type": "set", + "name": "set tmp.nidx and ctx.network-data", + "xml": "<set>\n<parameter name='tmp.nidx' value='`$nidx`' />\n<parameter name='ctx.network-data.' value='`$service-data.networks.network[$nidx].network-data.`' />\n", + "comments": "", + "x": 2680.531265258789, + "y": 492.99999940395355, + "z": "612a8bcd.555ff4", + "wires": [ + + ] + }, + { + "id": "2c706feb.2be3b", + "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=\"network-topology-operation-input.network-request-input.network-id not found in service-data\" />\n", + "comments": "", + "x": 2215.031265258789, + "y": 532.9999994039536, + "z": "612a8bcd.555ff4", + "wires": [ + + ] + }, + { + "id": "c1c7826b.646b7", + "type": "outcome", + "name": "NULL", + "xml": "<outcome value=''>\n", + "comments": "", + "outputs": 1, + "x": 2077.531265258789, + "y": 532.9999994039536, + "z": "612a8bcd.555ff4", + "wires": [ + [ + "2c706feb.2be3b" + ] + ] + }, + { + "id": "f4cb0140.f19dc", + "type": "switchNode", + "name": "switch tmp.nidx ", + "xml": "<switch test=\"`$tmp.nidx`\">\n\n", + "comments": "", + "outputs": 1, + "x": 1923.531265258789, + "y": 532.9999994039536, + "z": "612a8bcd.555ff4", + "wires": [ + [ + "c1c7826b.646b7" + ] + ] + }, + { + "id": "ca8482b0.138b7", + "type": "switchNode", + "name": "switch network-level-oper-status", + "xml": "<switch test='`$service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`'>\n", + "comments": "", + "outputs": 1, + "x": 1302.6979522705078, + "y": 571.8888772726059, + "z": "612a8bcd.555ff4", + "wires": [ + [ + "ac1c944.a70cf68", + "64f9182f.832d98" + ] + ] + }, + { + "id": "ac1c944.a70cf68", + "type": "outcome", + "name": "outcome Created", + "xml": "<outcome value='Created'>\n", + "comments": "", + "outputs": 1, + "x": 1599.5313682556152, + "y": 571.8888753652573, + "z": "612a8bcd.555ff4", + "wires": [ + [ + "dd869d4d.7e624" + ] + ] + }, + { + "id": "64f9182f.832d98", + "type": "other", + "name": "other", + "xml": "<outcome value='Other'>\n", + "comments": "", + "outputs": 1, + "x": 1567.5313682556152, + "y": 611.8888753652573, + "z": "612a8bcd.555ff4", + "wires": [ + [ + "52f7cab.128ad34" + ] + ] + }, + { + "id": "52f7cab.128ad34", + "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=\"`'Network is not in appropriate state for activate. Current state is ' + $service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`\" />", + "comments": "", + "x": 1725.0313682556152, + "y": 611.8888753652573, + "z": "612a8bcd.555ff4", + "wires": [ + + ] + }, + { + "id": "c5c30480.3e58d8", + "type": "switchNode", + "name": "switch network-id", + "xml": "<switch test=\"`$network-topology-operation-input.network-information.network-id`\">\n", + "comments": "", + "outputs": 1, + "x": 1249.531265258789, + "y": 432.99999940395355, + "z": "612a8bcd.555ff4", + "wires": [ + [ + "edcc0678.bb4db8" + ] + ] + }, + { + "id": "edcc0678.bb4db8", + "type": "outcome", + "name": "NULL", + "xml": "<outcome value=''>", + "comments": "", + "outputs": 1, + "x": 1477.531265258789, + "y": 432.99999940395355, + "z": "612a8bcd.555ff4", + "wires": [ + [ + "df1eaa9a.c904b8" + ] + ] + }, + { + "id": "df1eaa9a.c904b8", + "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=\"network-request-input.network-input-parameters.name is a required input\" />\n", + "comments": "", + "x": 1615.031265258789, + "y": 432.99999940395355, + "z": "612a8bcd.555ff4", + "wires": [ + + ] + }, + { + "id": "174db933.229107", + "type": "execute", + "name": "execute requiredParameters", + "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='requiredParameters' >\n<parameter name=\"network-topology-operation-input.network-information.network-id\" value=\"$network-topology-operation-input.network-information.network-id\"/>\n\n", + "comments": "", + "outputs": 1, + "x": 1284.031265258789, + "y": 392.99999940395355, + "z": "612a8bcd.555ff4", + "wires": [ + [ + + ] + ] + }, + { + "id": "dee8bd53.56b7b", + "type": "switchNode", + "name": "switch network-level-oper-status", + "xml": "<switch test='`$service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`'>\n", + "comments": "", + "outputs": 1, + "x": 1330.864517211914, + "y": 821.8888543844223, + "z": "612a8bcd.555ff4", + "wires": [ + [ + "5a840e5a.dfcfb", + "1e04803d.2175e" + ] + ] + }, + { + "id": "5a840e5a.dfcfb", + "type": "outcome", + "name": "outcome Active", + "xml": "<outcome value='Active'>\n", + "comments": "", + "outputs": 1, + "x": 1604.1978912353516, + "y": 796.3333123922348, + "z": "612a8bcd.555ff4", + "wires": [ + [ + "1bb2b0bd.7522ff" + ] + ] + }, + { + "id": "1e04803d.2175e", + "type": "other", + "name": "other", + "xml": "<outcome value='Other'>\n", + "comments": "", + "outputs": 1, + "x": 1574.1978912353516, + "y": 836.3333123922348, + "z": "612a8bcd.555ff4", + "wires": [ + [ + "f180da96.e20aa8" + ] + ] + }, + { + "id": "f180da96.e20aa8", + "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=\"`'Network is not in appropriate state for deactivate. Current state is ' + $service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`\" />", + "comments": "", + "x": 1740.1978912353516, + "y": 838.3333123922348, + "z": "612a8bcd.555ff4", + "wires": [ + + ] + }, + { + "id": "5d3a1919.83ff78", + "type": "switchNode", + "name": "switch network-level-oper-status", + "xml": "<switch test='`$service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`'>\n", + "comments": "", + "outputs": 1, + "x": 1319.753433227539, + "y": 992.9999383687973, + "z": "612a8bcd.555ff4", + "wires": [ + [ + "c0abb2c6.46f4e", + "d275091d.1d6858" + ] + ] + }, + { + "id": "c0abb2c6.46f4e", + "type": "outcome", + "name": "outcome PendingDelete", + "xml": "<outcome value='PendingDelete'>\n", + "comments": "", + "outputs": 1, + "x": 1619.7534942626953, + "y": 960.7777341604233, + "z": "612a8bcd.555ff4", + "wires": [ + [ + "77485a8b.427a64" + ] + ] + }, + { + "id": "d275091d.1d6858", + "type": "other", + "name": "other", + "xml": "<outcome value='Other'>\n", + "comments": "", + "outputs": 1, + "x": 1563.0868072509766, + "y": 1007.4443963766098, + "z": "612a8bcd.555ff4", + "wires": [ + [ + "1df75e1e.6ce5d2" + ] + ] + }, + { + "id": "1df75e1e.6ce5d2", + "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=\"`'Network is not in appropriate state for delete. Current state is ' + $service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`\" />", + "comments": "", + "x": 1729.0868072509766, + "y": 1009.4443963766098, + "z": "612a8bcd.555ff4", + "wires": [ + + ] + }, + { + "id": "dd869d4d.7e624", + "type": "block", + "name": "block : atomic", + "xml": "<block atomic=\"true\">", + "atomic": "true", + "outputs": 1, + "x": 1787.5312461853027, + "y": 572.9999593496323, + "z": "612a8bcd.555ff4", + "wires": [ + [ + + ] + ] + }, + { + "id": "1bb2b0bd.7522ff", + "type": "block", + "name": "block : atomic", + "xml": "<block atomic=\"true\">", + "atomic": "true", + "outputs": 1, + "x": 1804.197769165039, + "y": 794.4814447164536, + "z": "612a8bcd.555ff4", + "wires": [ + [ + + ] + ] + }, + { + "id": "77485a8b.427a64", + "type": "block", + "name": "block : atomic", + "xml": "<block atomic=\"true\">", + "atomic": "true", + "outputs": 1, + "x": 1835.3089752197266, + "y": 961.148070693016, + "z": "612a8bcd.555ff4", + "wires": [ + [ + + ] + ] + } +] diff --git a/platform-logic/generic-resource-api/src/main/resources/graph.versions b/platform-logic/generic-resource-api/src/main/resources/graph.versions index c5d3c594..73e4f7c1 100644 --- a/platform-logic/generic-resource-api/src/main/resources/graph.versions +++ b/platform-logic/generic-resource-api/src/main/resources/graph.versions @@ -76,3 +76,8 @@ GENERIC-RESOURCE-API vnf-topology-operation-unassign ${project.version} sync GENERIC-RESOURCE-API vnf-topology-operation ${project.version} sync SUBNET-API managed-network-notification ${project.version} sync SUBNET-API subnet-allocated-notification ${project.version} sync +GENERIC-RESOURCE-API sotn-network-topology-operation-create ${project.version} sync +GENERIC-RESOURCE-API sotn-network-topology-operation-delete ${project.version} sync +GENERIC-RESOURCE-API sotn-network-topology-operation-activate ${project.version} sync +GENERIC-RESOURCE-API sotn-network-topology-operation-deactivate ${project.version} sync +GENERIC-RESOURCE-API validate-sotn-network-input-parameters ${project.version} sync
\ No newline at end of file diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_sotn-network-topology-operation-activate.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_sotn-network-topology-operation-activate.xml new file mode 100644 index 00000000..5a7aa88d --- /dev/null +++ b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_sotn-network-topology-operation-activate.xml @@ -0,0 +1,41 @@ +<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="GENERIC-RESOURCE-API" version="1.2.1-SNAPSHOT">
+ <method rpc="sotn-network-topology-operation-activate" mode="sync">
+ <block atomic="true">
+ <call module="GENERIC-RESOURCE-API" rpc="validate-sotn-network-input-parameters" mode="sync" />
+ <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="sotn-network-topology-operation-activate" />
+ <parameter name="field3" value="SOTN-Activate" />
+ </record>
+ <execute plugin="org.onap.ccsdk.sli.plugins.prop.PropertiesNode" method="readProperties">
+ <parameter name="fileName" value="%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties" />
+ <parameter name="contextPrefix" value="prop" />
+ </execute>
+ <set>
+ <parameter name="service-data.networks.network[$nidx].network-data.sdnc-request-header." value="`$network-topology-operation-input.sdnc-request-header.`" />
+ <parameter name="service-data.networks.network[$nidx].network-data.request-information." value="`$network-topology-operation-input.request-information.`" />
+ <parameter name="service-data.networks.network[$nidx].network-data.service-information." value="`$network-topology-operation-input.service-information.`" />
+ <parameter name="service-data.networks.network[$nidx].network-data.network-information." value="`$network-topology-operation-input.network-information.`" />
+ </set>
+ <set>
+ <parameter name="networkId" value="`$network-topology-operation-input.network-information.network-id`" />
+ <parameter name="network-object-path" value="`'restconf/config/GENERIC-RESOURCE-API:services/service/' + $network-topology-operation-input.service-information.service-instance-id + '/service-data/networks/network/' + $network-topology-operation-input.network-information.network-id + '/network-data/'` " />
+ </set>
+ <set>
+ <parameter name="service-data.networks.network[$nidx].network-data.network-level-oper-status.order-status" value="Active" />
+ <parameter name="service-data.networks.network[$nidx].network-data.network-level-oper-status.last-rpc-action" value="`$network-topology-operation-input.sdnc-request-header.svc-action`" />
+ <parameter name="service-data.networks.network[$nidx].network-data.network-level-oper-status.last-action" value="`$network-topology-operation-input.request-information.request-action`" />
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="configuration" key="configuration.configuration-id = $network-topology-operation-input.network-information.network-id">
+ <parameter name="configuration-id" value="`$network-topology-operation-input.network-information.network-id`" />
+ <parameter name="operational-status" value="Active" />
+ </update>
+ <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>
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_sotn-network-topology-operation-create.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_sotn-network-topology-operation-create.xml new file mode 100644 index 00000000..e5d9268c --- /dev/null +++ b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_sotn-network-topology-operation-create.xml @@ -0,0 +1,209 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<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="GENERIC-RESOURCE-API" version="1.2.1-SNAPSHOT">
+ <method rpc="sotn-network-topology-operation-create" mode="sync">
+ <block atomic="true">
+ <call module="GENERIC-RESOURCE-API" rpc="validate-sotn-network-input-parameters" mode="sync" />
+ <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="generateUUID">
+ <parameter name="ctx-destination" value="prop.sotn.network-id" />
+ </execute>
+ <for index="idx" start="0" end="`$network-topology-operation-input.network-request-input.network-input-parameters.param_length`">
+ <block>
+ <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'name'`">
+ <outcome value="true">
+ <set>
+ <parameter name="prop.sotn.etht-svc-name" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
+ </set>
+ </outcome>
+ </switch>
+ <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'description'`">
+ <outcome value="true">
+ <set>
+ <parameter name="prop.sotn.etht-svc-descr" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
+ </set>
+ </outcome>
+ </switch>
+ <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'tenantId'`">
+ <outcome value="true">
+ <set>
+ <parameter name="prop.sotn.tenantId" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
+ </set>
+ </outcome>
+ </switch>
+ <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'vpnType'`">
+ <outcome value="true">
+ <set>
+ <parameter name="prop.sotn.vpnType" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
+ </set>
+ </outcome>
+ </switch>
+ <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'CIR'`">
+ <outcome value="true">
+ <set>
+ <parameter name="prop.sotn.cir" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
+ </set>
+ </outcome>
+ </switch>
+ <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'EIR'`">
+ <outcome value="true">
+ <set>
+ <parameter name="prop.sotn.eir" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
+ </set>
+ </outcome>
+ </switch>
+ <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'CBS'`">
+ <outcome value="true">
+ <set>
+ <parameter name="prop.sotn.cbs" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
+ </set>
+ </outcome>
+ </switch>
+ <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'PBS'`">
+ <outcome value="true">
+ <set>
+ <parameter name="prop.sotn.pbs" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
+ </set>
+ </outcome>
+ </switch>
+ <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'color-aware'`">
+ <outcome value="true">
+ <set>
+ <parameter name="prop.sotn.colorAware" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
+ </set>
+ </outcome>
+ </switch>
+ <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'coupling-flag'`">
+ <outcome value="true">
+ <set>
+ <parameter name="prop.sotn.couplingFlag" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
+ </set>
+ </outcome>
+ </switch>
+ <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'access-provider-id'`">
+ <outcome value="true">
+ <set>
+ <parameter name="prop.sotn.access-provider-id" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
+ </set>
+ </outcome>
+ </switch>
+ <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'access-client-id'`">
+ <outcome value="true">
+ <set>
+ <parameter name="prop.sotn.access-client-id" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
+ </set>
+ </outcome>
+ </switch>
+ <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'access-topology-id'`">
+ <outcome value="true">
+ <set>
+ <parameter name="prop.sotn.access-topology-id" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
+ </set>
+ </outcome>
+ </switch>
+ <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'access-node-id'`">
+ <outcome value="true">
+ <set>
+ <parameter name="prop.sotn.access-node-id" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
+ </set>
+ </outcome>
+ </switch>
+ <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'access-ltp-id'`">
+ <outcome value="true">
+ <set>
+ <parameter name="prop.sotn.access-ltp-id" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
+ </set>
+ </outcome>
+ </switch>
+ <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'cVLAN'`">
+ <outcome value="true">
+ <set>
+ <parameter name="prop.sotn.cVLAN" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
+ </set>
+ </outcome>
+ </switch>
+ </block>
+ </for>
+ <switch test="`$service-data.networks.network_length`">
+ <outcome value="">
+ <set>
+ <parameter name="nidx" value="0" />
+ </set>
+ </outcome>
+ <outcome value="Other">
+ <block>
+ <set>
+ <parameter name="nidx" value="`$service-data.networks.network_length`" />
+ </set>
+ <for index="idx" start="0" end="`$nidx`">
+ <switch test="`$service-data.networks.network[$idx].network-id == $network-topology-operation-input.network-information.network-id`">
+ <outcome value="true">
+ <return status="failure">
+ <parameter name="ack-final" value="Y" />
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id already found in service-data" />
+ </return>
+ </outcome>
+ </switch>
+ </for>
+ </block>
+ </outcome>
+ </switch>
+ <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="sotn-network-topology-operation-create" />
+ <parameter name="field3" value="SOTN-Config" />
+ </record>
+ <set>
+ <parameter name="service-data.networks.network[$nidx].network-id" value="`$prop.sotn.network-id`" />
+ <parameter name="service-data.networks.network[$nidx].network-data.sdnc-request-header." value="`$network-topology-operation-input.sdnc-request-header.`" />
+ <parameter name="service-data.networks.network[$nidx].network-data.request-information." value="`$network-topology-operation-input.request-information.`" />
+ <parameter name="service-data.networks.network[$nidx].network-data.service-information." value="`$network-topology-operation-input.service-information.`" />
+ <parameter name="service-data.networks.network[$nidx].network-data.network-information." value="`$network-topology-operation-input.network-information.`" />
+ <parameter name="service-data.networks.network[$nidx].network-data.network-request-input." value="`$network-topology-operation-input.network-request-input.`" />
+ <parameter name="service-data.networks.network_length" value="`$nidx+1`" />
+ </set>
+ <set>
+ <parameter name="networkId" value="`$prop.sotn.network-id`" />
+ <parameter name="network-object-path" value="`'restconf/config/GENERIC-RESOURCE-API:services/service/' + $network-topology-operation-input.service-information.service-instance-id + '/service-data/networks/network/' + $prop.sotn.network-id + '/network-data/'` " />
+ </set>
+ <set>
+ <parameter name="service-data.networks.network[$nidx].network-data.network-level-oper-status.order-status" value="Created" />
+ <parameter name="service-data.networks.network[$nidx].network-data.network-level-oper-status.last-rpc-action" value="`$network-topology-operation-input.sdnc-request-header.svc-action`" />
+ <parameter name="service-data.networks.network[$nidx].network-data.network-level-oper-status.last-action" value="`$network-topology-operation-input.request-information.request-action`" />
+ </set>
+ <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="configuration" key="configuration.configuration-id = $prop.sotn.network-id">
+ <parameter name="configuration-id" value="`$prop.sotn.network-id`" />
+ <parameter name="configuration-name" value="`$prop.sotn.client-svc-name`" />
+ <parameter name="configuration-type" value="`$prop.sotn.client-svc-descr`" />
+ <parameter name="configuration-sub-type" value="`$prop.sotn.tenantId`" />
+ <parameter name="orchestration-status" value="`$prop.sotn.vpnType`" />
+ <parameter name="management-option" value="`$prop.sotn.cir`" />
+ <parameter name="operational-status" value="Created" />
+ <parameter name="model-customization-id" value="`$network-topology-operation-input.network-information.onap-model-information.model-customization-uuid`" />
+ <parameter name="model-invariant-id" value="`$network-topology-operation-input.network-information.onap-model-information.model-invariant-uuid`" />
+ <parameter name="model-version-id" value="`$network-topology-operation-input.network-information.onap-model-information.model-uuid`" />
+ <parameter name="configuration-selflink" value="`'restconf/config/GENERIC-RESOURCE-API:services/service/' + $network-topology-operation-input.service-information.service-instance-id + '/service-data/networks/network/' + $prop.sotn.network-id + '/network-data/'` " />
+ </save>
+ <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="service-instance:relationship-list" key="service-instance.service-instance-id = $service-data.service-information.service-instance-id AND customer.global-customer-id = $service-data.networks.network[$nidx].network-data.service-information.global-customer-id AND service-subscription.service-type = $service-data.networks.network[$nidx].network-data.service-information.subscription-service-type" force="true" pfx="tmp.AnAI-data">
+ <parameter name="relationship-list.relationship[0].related-to" value="configuration" />
+ <parameter name="relationship-list.relationship[0].related-link" value="`'/network/configurations/configuration/' + $prop.sotn.network-id`" />
+ <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="configuration.configuration-id" />
+ <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$prop.sotn.network-id`" />
+ </save>
+ <set>
+ <parameter name="unique-src-ltpId" value="`'nodeId-' + $prop.sotn.src-access-node-id + '-ltpId-' + $prop.sotn.src-access-ltp-id`" />
+ </set>
+ <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="configuration:relationship-list" key="configuration.configuration-id = $prop.sotn.network-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-src-ltpId`" />
+ <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="logical-link.link-id" />
+ <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$unique-src-ltpId`" />
+ </save>
+ <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>
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_sotn-network-topology-operation-deactivate.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_sotn-network-topology-operation-deactivate.xml new file mode 100644 index 00000000..33c69ce9 --- /dev/null +++ b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_sotn-network-topology-operation-deactivate.xml @@ -0,0 +1,41 @@ +<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="GENERIC-RESOURCE-API" version="1.2.1-SNAPSHOT">
+ <method rpc="sotn-network-topology-operation-deactivate" mode="sync">
+ <block atomic="true">
+ <call module="GENERIC-RESOURCE-API" rpc="validate-sotn-network-input-parameters" mode="sync" />
+ <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="sotn-network-topology-operation-activate" />
+ <parameter name="field3" value="SOTN-Deactivate" />
+ </record>
+ <execute plugin="org.onap.ccsdk.sli.plugins.prop.PropertiesNode" method="readProperties">
+ <parameter name="fileName" value="%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties" />
+ <parameter name="contextPrefix" value="prop" />
+ </execute>
+ <set>
+ <parameter name="service-data.networks.network[$nidx].network-data.sdnc-request-header." value="`$network-topology-operation-input.sdnc-request-header.`" />
+ <parameter name="service-data.networks.network[$nidx].network-data.request-information." value="`$network-topology-operation-input.request-information.`" />
+ <parameter name="service-data.networks.network[$nidx].network-data.service-information." value="`$network-topology-operation-input.service-information.`" />
+ <parameter name="service-data.networks.network[$nidx].network-data.network-information." value="`$network-topology-operation-input.network-information.`" />
+ </set>
+ <set>
+ <parameter name="networkId" value="`$network-topology-operation-input.network-information.network-id`" />
+ <parameter name="network-object-path" value="`'restconf/config/GENERIC-RESOURCE-API:services/service/' + $network-topology-operation-input.service-information.service-instance-id + '/service-data/networks/network/' + $network-topology-operation-input.network-information.network-id + '/network-data/'` " />
+ </set>
+ <set>
+ <parameter name="service-data.networks.network[$nidx].network-data.network-level-oper-status.order-status" value="PendingDelete" />
+ <parameter name="service-data.networks.network[$nidx].network-data.network-level-oper-status.last-rpc-action" value="`$network-topology-operation-input.sdnc-request-header.svc-action`" />
+ <parameter name="service-data.networks.network[$nidx].network-data.network-level-oper-status.last-action" value="`$network-topology-operation-input.request-information.request-action`" />
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="configuration" key="configuration.configuration-id = $network-topology-operation-input.network-information.network-id">
+ <parameter name="configuration-id" value="`$network-topology-operation-input.network-information.network-id`" />
+ <parameter name="operational-status" value="PendingDelete" />
+ </update>
+ <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>
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_sotn-network-topology-operation-delete.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_sotn-network-topology-operation-delete.xml new file mode 100644 index 00000000..b9ad46c5 --- /dev/null +++ b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_sotn-network-topology-operation-delete.xml @@ -0,0 +1,29 @@ +<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="GENERIC-RESOURCE-API" version="1.2.1-SNAPSHOT">
+ <method rpc="sotn-network-topology-operation-delete" mode="sync">
+ <block atomic="true">
+ <call module="GENERIC-RESOURCE-API" rpc="validate-sotn-network-input-parameters" mode="sync" />
+ <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="sotn-network-topology-operation-delete" />
+ <parameter name="field3" value="SOTN-Delete" />
+ </record>
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="configuration" key="configuration.configuration-id = $network-topology-operation-input.network-information.network-id" />
+ <set>
+ <parameter name="service-data.networks.network_length" value="`$service-data.networks.network_length - 1`" />
+ </set>
+ <set>
+ <parameter name="service-data.networks.network[$nidx]." value="" />
+ </set>
+ <set>
+ <parameter name="networkId" value="`$network-topology-operation-input.network-information.network-id`" />
+ <parameter name="service-object-path" value="`'restconf/config/GENERIC-RESOURCE-API:services/service/' + $network-topology-operation-input.service-information.service-instance-id + '/service-data/service-topology/'` " />
+ </set>
+ <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>
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_validate-sotn-network-input-parameters.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_validate-sotn-network-input-parameters.xml new file mode 100644 index 00000000..7d4e5feb --- /dev/null +++ b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_validate-sotn-network-input-parameters.xml @@ -0,0 +1,297 @@ +<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="GENERIC-RESOURCE-API" version="1.2.1-SNAPSHOT">
+ <method rpc="validate-sotn-network-input-parameters" mode="sync">
+ <block atomic="true">
+ <switch test="`$network-topology-operation-input.sdnc-request-header.svc-action`">
+ <outcome value="">
+ <return status="failure">
+ <parameter name="ack-final" value="Y" />
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="sdnc-request-header.svc-request-id is a required input" />
+ </return>
+ </outcome>
+ </switch>
+ <switch test="`$network-topology-operation-input.sdnc-request-header.svc-action`">
+ <outcome value="create">
+ <block atomic="true">
+ <switch test="`$network-topology-operation-input.request-information.request-action`">
+ <outcome value="CreateSOTNConnectivityIntance">
+ <block atomic="true">
+ <for index="i" start="0" end="`$network-topology-operation-input.network-request-input.network-input-parameters.param_length`">
+ <block>
+ <set>
+ <parameter name="tmp.name" value="" />
+ <parameter name="tmp.value" value="" />
+ </set>
+ <set>
+ <parameter name="tmp.name" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$i].name`" />
+ <parameter name="tmp.value" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$i].value`" />
+ </set>
+ <switch test="`$tmp.name`">
+ <outcome value="name">
+ <switch test="`$tmp.value`">
+ <outcome value="">
+ <return status="failure">
+ <parameter name="ack-final" value="Y" />
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="`'network-request-input.network-input-parameters.param '+ $tmp.name +' is a required input'`" />
+ </return>
+ </outcome>
+ </switch>
+ </outcome>
+ <outcome value="description">
+ <switch test="`$tmp.value`">
+ <outcome value="">
+ <return status="failure">
+ <parameter name="ack-final" value="Y" />
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="`'network-request-input.network-input-parameters.param '+ $tmp.name +' is a required input'`" />
+ </return>
+ </outcome>
+ </switch>
+ </outcome>
+ <outcome value="">
+ <return status="failure">
+ <parameter name="ack-final" value="Y" />
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="`'network-topology-operation-input.network-request-input.network-input-parameters.param[' + $i + ']' + '.name is a required input'`" />
+ </return>
+ </outcome>
+ </switch>
+ </block>
+ </for>
+ </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="request-information.request-action is required to be SOTN CreateVPNNetworkInstance for svc-action=create" />
+ </return>
+ </outcome>
+ </switch>
+ </block>
+ </outcome>
+ <outcome value="activate">
+ <switch test="`$network-topology-operation-input.request-information.request-action`">
+ <outcome value="ActivateSOTNConnectivityIntance">
+ <block atomic="true">
+ <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="requiredParameters">
+ <parameter name="network-topology-operation-input.network-information.network-id" value="$network-topology-operation-input.network-information.network-id" />
+ </execute>
+ <switch test="`$network-topology-operation-input.network-information.network-id`">
+ <outcome value="">
+ <return status="failure">
+ <parameter name="ack-final" value="Y" />
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="network-request-input.network-input-parameters.name is a required input" />
+ </return>
+ </outcome>
+ </switch>
+ <switch test="`$service-data.networks.network_length`">
+ <outcome value="">
+ <return status="failure">
+ <parameter name="ack-final" value="Y" />
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />
+ </return>
+ </outcome>
+ <outcome value="Other">
+ <block atomic="true">
+ <for index="nidx" start="0" end="`$service-data.networks.network_length`">
+ <switch test="`$service-data.networks.network[$nidx].network-id == $network-topology-operation-input.network-information.network-id`">
+ <outcome value="true">
+ <set>
+ <parameter name="tmp.nidx" value="`$nidx`" />
+ <parameter name="ctx.network-data." value="`$service-data.networks.network[$nidx].network-data.`" />
+ </set>
+ </outcome>
+ </switch>
+ </for>
+ <switch test="`$tmp.nidx`">
+ <outcome value="">
+ <return status="failure">
+ <parameter name="ack-final" value="Y" />
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />
+ </return>
+ </outcome>
+ </switch>
+ </block>
+ </outcome>
+ </switch>
+ <switch test="`$service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`">
+ <outcome value="Created">
+ <block atomic="true" />
+ </outcome>
+ <outcome value="Other">
+ <return status="failure">
+ <parameter name="ack-final" value="Y" />
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="`'Network is not in appropriate state for activate. Current state is ' + $service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`" />
+ </return>
+ </outcome>
+ </switch>
+ </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="request-information.request-action is required to be SOTN ActivateVPNNetworkInstance for svc-action=activate" />
+ </return>
+ </outcome>
+ </switch>
+ </outcome>
+ <outcome value="deactivate">
+ <switch test="`$network-topology-operation-input.request-information.request-action`">
+ <outcome value="DeactivateSOTNConnectivityIntance">
+ <block atomic="true">
+ <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="requiredParameters">
+ <parameter name="network-topology-operation-input.network-information.network-id" value="$network-topology-operation-input.network-information.network-id" />
+ </execute>
+ <switch test="`$network-topology-operation-input.network-information.network-id`">
+ <outcome value="">
+ <return status="failure">
+ <parameter name="ack-final" value="Y" />
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="network-request-input.network-input-parameters.name is a required input" />
+ </return>
+ </outcome>
+ </switch>
+ <switch test="`$service-data.networks.network_length`">
+ <outcome value="">
+ <return status="failure">
+ <parameter name="ack-final" value="Y" />
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />
+ </return>
+ </outcome>
+ <outcome value="Other">
+ <block atomic="true">
+ <for index="nidx" start="0" end="`$service-data.networks.network_length`">
+ <switch test="`$service-data.networks.network[$nidx].network-id == $network-topology-operation-input.network-information.network-id`">
+ <outcome value="true">
+ <set>
+ <parameter name="tmp.nidx" value="`$nidx`" />
+ <parameter name="ctx.network-data." value="`$service-data.networks.network[$nidx].network-data.`" />
+ </set>
+ </outcome>
+ </switch>
+ </for>
+ <switch test="`$tmp.nidx`">
+ <outcome value="">
+ <return status="failure">
+ <parameter name="ack-final" value="Y" />
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />
+ </return>
+ </outcome>
+ </switch>
+ </block>
+ </outcome>
+ </switch>
+ <switch test="`$service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`">
+ <outcome value="Active">
+ <block atomic="true" />
+ </outcome>
+ <outcome value="Other">
+ <return status="failure">
+ <parameter name="ack-final" value="Y" />
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="`'Network is not in appropriate state for deactivate. Current state is ' + $service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`" />
+ </return>
+ </outcome>
+ </switch>
+ </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="request-information.request-action is required to be SOTN DeactivateVPNNetworkInstance for svc-action=deactivate" />
+ </return>
+ </outcome>
+ </switch>
+ </outcome>
+ <outcome value="delete">
+ <switch test="`$network-topology-operation-input.request-information.request-action`">
+ <outcome value="DeleteSOTNConnectivityIntance">
+ <block atomic="true">
+ <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="requiredParameters">
+ <parameter name="network-topology-operation-input.network-information.network-id" value="$network-topology-operation-input.network-information.network-id" />
+ </execute>
+ <switch test="`$network-topology-operation-input.network-information.network-id`">
+ <outcome value="">
+ <return status="failure">
+ <parameter name="ack-final" value="Y" />
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="network-request-input.network-input-parameters.name is a required input" />
+ </return>
+ </outcome>
+ </switch>
+ <switch test="`$service-data.networks.network_length`">
+ <outcome value="">
+ <return status="failure">
+ <parameter name="ack-final" value="Y" />
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />
+ </return>
+ </outcome>
+ <outcome value="Other">
+ <block atomic="true">
+ <for index="nidx" start="0" end="`$service-data.networks.network_length`">
+ <switch test="`$service-data.networks.network[$nidx].network-id == $network-topology-operation-input.network-information.network-id`">
+ <outcome value="true">
+ <set>
+ <parameter name="tmp.nidx" value="`$nidx`" />
+ <parameter name="ctx.network-data." value="`$service-data.networks.network[$nidx].network-data.`" />
+ </set>
+ </outcome>
+ </switch>
+ </for>
+ <switch test="`$tmp.nidx`">
+ <outcome value="">
+ <return status="failure">
+ <parameter name="ack-final" value="Y" />
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />
+ </return>
+ </outcome>
+ </switch>
+ </block>
+ </outcome>
+ </switch>
+ <switch test="`$service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`">
+ <outcome value="PendingDelete">
+ <block atomic="true" />
+ </outcome>
+ <outcome value="Other">
+ <return status="failure">
+ <parameter name="ack-final" value="Y" />
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="`'Network is not in appropriate state for delete. Current state is ' + $service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`" />
+ </return>
+ </outcome>
+ </switch>
+ </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="request-information.request-action is required to be SOTN DeleteVPNNetworkInstance for svc-action=delete" />
+ </return>
+ </outcome>
+ </switch>
+ </outcome>
+ <outcome value="Other">
+ <return status="failure">
+ <parameter name="ack-final" value="Y" />
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="`$network-topology-operation-input.sdnc-request-header.svc-action + ' is not a valid svc-action'`" />
+ </return>
+ </outcome>
+ </switch>
+ </block>
+ </method>
+</service-logic>
|