Add generic-resource-api DG seed code
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / GENERIC-RESOURCE-API_validate-network-input.xml
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_validate-network-input.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_validate-network-input.xml
new file mode 100755 (executable)
index 0000000..49735fd
--- /dev/null
@@ -0,0 +1,274 @@
+<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='${project.version}'><method rpc='validate-network-input' mode='sync'>\r
+<block atomic="true"><switch test='`$network-topology-operation-input.sdnc-request-header.svc-action`'>\r
+<outcome value=''><return status='failure'>\r
+       <parameter name='ack-final' value='Y'/>\r
+       <parameter name="error-code" value="500" />\r
+    <parameter name="error-message" value="sdnc-request-header.svc-action is a required input" />\r
+</return></outcome></switch><switch test='`$network-topology-operation-input.sdnc-request-header.svc-request-id`'>\r
+<outcome value=''><return status='failure'>\r
+       <parameter name='ack-final' value='Y'/>\r
+       <parameter name="error-code" value="500" />\r
+    <parameter name="error-message" value="sdnc-request-header.svc-request-id is a required input" />\r
+</return></outcome></switch><switch test='`$network-topology-operation-input.request-information.request-action`'>\r
+<outcome value=''><return status='failure'>\r
+       <parameter name='ack-final' value='Y'/>\r
+       <parameter name="error-code" value="500" />\r
+    <parameter name="error-message" value="request-information.request-action is a required input" />\r
+</return></outcome></switch><switch test='`$network-topology-operation-input.service-information.service-instance-id`'>\r
+<outcome value=''><return status='failure'>\r
+       <parameter name='ack-final' value='Y'/>\r
+       <parameter name="error-code" value="500" />\r
+    <parameter name="error-message" value="service-information.service-instance-id is a required input" />\r
+</return></outcome></switch><switch test='`$network-topology-operation-input.sdnc-request-header.svc-action`'>\r
+<outcome value='assign'><block atomic="true"><switch test='`$network-topology-operation-input.request-information.request-action`'>\r
+<outcome value='CreateNetworkInstance'><block atomic="true"><switch test='`$network-topology-operation-input.network-information.network-id`'>\r
+\r
+<outcome value=''><return status='success'>\r
+<parameter name='' value='' />\r
+</return></outcome><outcome value='Other'><block>\r
+<switch test='`$service-data.networks.network_length`'>\r
+<outcome value=''>\r
+<record plugin="com.att.sdnctl.sli.recording.Slf4jRecorder">\r
+<parameter name="logger" value="message-log"/>\r
+<parameter name="field1" value="__TIMESTAMP__"/>\r
+<parameter name="field2" value="GENERIC-RESOURCE-API.validate-network-input"/>\r
+<parameter name="field3" value="`$network-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
+<parameter name="field4" value="Network id proveded but no network exists that matches"/>\r
+<parameter name="field5" value="`$network-topology-operation-input.network-information.network-id`"/>\r
+\r
+\r
+\r
+</record></outcome><outcome value='Other'>\r
+<block atomic="true"><for index='nidx' start='0' end='`$service-data.networks.network_length`' >\r
+<switch test="`$service-data.networks.network[$nidx].network-id == $network-topology-operation-input.network-information.network-id`">\r
+\r
+<outcome value='true'>\r
+<block atomic="true"><set>\r
+<parameter name='tmp.nidx' value='`$nidx`' />\r
+<parameter name='ctx.network-data.' value='`$service-data.networks.network[$nidx].`' />\r
+</set></block></outcome></switch></for><switch test="`$tmp.nidx`">\r
+\r
+<outcome value=''>\r
+<return status='failure'>\r
+       <parameter name='ack-final' value='Y'/>\r
+       <parameter name="error-code" value="500" />\r
+    <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />\r
+</return></outcome></switch></block></outcome></switch></block></outcome></switch><switch test='`$network-topology-operation-input.network-information.ecomp-model-information.model-invariant-uuid`'>\r
+<outcome value=''><return status='failure'>\r
+       <parameter name='ack-final' value='Y'/>\r
+       <parameter name="error-code" value="500" />\r
+    <parameter name="error-message" value="network-information.ecomp-model-information.model-invariant-uuid is a required input" />\r
+</return></outcome></switch><switch test='`$network-topology-operation-input.network-information.ecomp-model-information.model-customization-uuid`'>\r
+<outcome value=''><return status='failure'>\r
+       <parameter name='ack-final' value='Y'/>\r
+       <parameter name="error-code" value="500" />\r
+    <parameter name="error-message" value="network-information.ecomp-model-information.model-customization-uuid is a required input" />\r
+</return></outcome></switch><switch test='`$network-topology-operation-input.network-information.ecomp-model-information.model-uuid`'>\r
+<outcome value=''><return status='failure'>\r
+       <parameter name='ack-final' value='Y'/>\r
+       <parameter name="error-code" value="500" />\r
+    <parameter name="error-message" value="network-information.ecomp-model-information.model-uuid is a required input" />\r
+</return></outcome></switch><switch test='`$network-topology-operation-input.network-request-input.tenant`'>\r
+<outcome value=''><return status='failure'>\r
+       <parameter name='ack-final' value='Y'/>\r
+       <parameter name="error-code" value="500" />\r
+    <parameter name="error-message" value="network-request-input.tenant is a required input" />\r
+</return></outcome></switch><switch test='`$network-topology-operation-input.network-request-input.aic-cloud-region`'>\r
+<outcome value=''><return status='failure'>\r
+       <parameter name='ack-final' value='Y'/>\r
+       <parameter name="error-code" value="500" />\r
+    <parameter name="error-message" value="service-information.network-request-information.aic-cloud-region is a required input" />\r
+</return></outcome></switch><switch test='`$network-topology-operation-input.service-information.ecomp-model-information.model-uuid`'>\r
+<outcome value=''><block atomic="true"><get-resource plugin='org.onap.ccsdk.sli.adaptors.sli.resource.sql.SqlResource' resource='SQL'\r
+  key='SELECT * from SERVICE_MODEL WHERE service_uuid = $service-data.service-information.ecomp-model-information.model-uuid'\r
+  pfx='service-model'><outcome value='not-found'>\r
+<return status='failure'>\r
+       <parameter name='ack-final' value='Y'/>\r
+       <parameter name="error-code" value="500" />\r
+    <parameter name="error-message" value="`'No service model found for service UUID ' + $network-topology-operation-input.service-information.ecomp-model-information.model-uuid`" />\r
+</return></outcome><outcome value='failure'>\r
+<return status='failure'>\r
+       <parameter name='ack-final' value='Y'/>\r
+       <parameter name="error-code" value="500" />\r
+    <parameter name="error-message" value="`'No service model found for service UUID ' + $network-topology-operation-input.service-information.ecomp-model-information.model-uuid`" />\r
+</return></outcome></get-resource><get-resource plugin='org.onap.ccsdk.sli.adaptors.sli.resource.sql.SqlResource' resource='SQL'\r
+  key='SELECT * from NETWORK_MODEL WHERE customization_uuid = $network-topology-operation-input.network-information.ecomp-model-information.model-customization-uuid\r
+  and service_uuid = $service-data.service-information.ecomp-model-information.model-uuid'\r
+  pfx='network-model'>\r
+\r
+<outcome value='not-found'>\r
+<return status='failure'>\r
+       <parameter name='ack-final' value='Y'/>\r
+       <parameter name="error-code" value="500" />\r
+    <parameter name="error-message" value="`'No network model found for customization UUID ' \r
+    + $network-topology-operation-input.network-information.ecomp-model-information.model-customization-uuid +\r
+    ' and model-uuid ' + $network-topology-operation-input.service-information.ecomp-model-information.model-uuid`" />\r
+</return></outcome><outcome value='failure'>\r
+<return status='failure'>\r
+       <parameter name='ack-final' value='Y'/>\r
+       <parameter name="error-code" value="500" />\r
+    <parameter name="error-message" value="`'No network model found for customization UUID ' \r
+    + $network-topology-operation-input.network-information.ecomp-model-information.model-customization-uuid +\r
+    ' and model-uuid ' + $network-topology-operation-input.service-information.ecomp-model-information.model-uuid`" />\r
+</return></outcome></get-resource></block></outcome><outcome value='Other'><block atomic="true"><get-resource plugin='org.onap.ccsdk.sli.adaptors.sli.resource.sql.SqlResource' resource='SQL'\r
+  key='SELECT * from SERVICE_MODEL WHERE service_uuid = $network-topology-operation-input.service-information.ecomp-model-information.model-uuid'\r
+  pfx='service-model'>\r
+\r
+<outcome value='not-found'>\r
+<return status='failure'>\r
+       <parameter name='ack-final' value='Y'/>\r
+       <parameter name="error-code" value="500" />\r
+    <parameter name="error-message" value="`'No service model found for service UUID ' + $network-topology-operation-input.service-information.ecomp-model-information.model-uuid`" />\r
+</return></outcome><outcome value='failure'>\r
+<return status='failure'>\r
+       <parameter name='ack-final' value='Y'/>\r
+       <parameter name="error-code" value="500" />\r
+    <parameter name="error-message" value="`'No service model found for service UUID ' + $network-topology-operation-input.service-information.ecomp-model-information.model-uuid`" />\r
+</return></outcome></get-resource><get-resource plugin='org.onap.ccsdk.sli.adaptors.sli.resource.sql.SqlResource' resource='SQL'\r
+  key='SELECT * from NETWORK_MODEL WHERE customization_uuid = $network-topology-operation-input.network-information.ecomp-model-information.model-customization-uuid\r
+  and service_uuid = $network-topology-operation-input.service-information.ecomp-model-information.model-uuid'\r
+  pfx='network-model'>\r
+\r
+<outcome value='not-found'>\r
+<return status='failure'>\r
+       <parameter name='ack-final' value='Y'/>\r
+       <parameter name="error-code" value="500" />\r
+    <parameter name="error-message" value="`'No network model found for customization UUID ' \r
+    + $network-topology-operation-input.network-information.ecomp-model-information.model-customization-uuid +\r
+    ' and model-uuid ' + $network-topology-operation-input.service-information.ecomp-model-information.model-uuid`" />\r
+</return></outcome><outcome value='failure'>\r
+<return status='failure'>\r
+       <parameter name='ack-final' value='Y'/>\r
+       <parameter name="error-code" value="500" />\r
+    <parameter name="error-message" value="`'No network model found for customization UUID ' \r
+    + $network-topology-operation-input.network-information.ecomp-model-information.model-customization-uuid +\r
+    ' and model-uuid ' + $network-topology-operation-input.service-information.ecomp-model-information.model-uuid`" />\r
+</return></outcome></get-resource></block></outcome></switch></block></outcome><outcome value='Other'><return status='failure'>\r
+       <parameter name='ack-final' value='Y'/>\r
+       <parameter name="error-code" value="500" />\r
+    <parameter name="error-message" value="request-information.request-action is required to be CreateNetworkInstance for svc-action=assign" />\r
+</return></outcome></switch></block></outcome><outcome value='activate'><block atomic="true"><switch test='`$network-topology-operation-input.request-information.request-action`'>\r
+<outcome value='CreateNetworkInstance'><block atomic="true"><switch test='`$network-topology-operation-input.network-information.network-id`'>\r
+<outcome value=''><return status='failure'>\r
+       <parameter name='ack-final' value='Y'/>\r
+       <parameter name="error-code" value="500" />\r
+    <parameter name="error-message" value="service-information.network-information.network-id is a required input" />\r
+</return></outcome></switch><switch test='`$network-topology-operation-input.network-information.ecomp-model-information.model-invariant-uuid`'>\r
+<outcome value=''><return status='failure'>\r
+       <parameter name='ack-final' value='Y'/>\r
+       <parameter name="error-code" value="500" />\r
+    <parameter name="error-message" value="network-information.ecomp-model-information.model-invariant-uuid is a required input" />\r
+</return></outcome></switch><switch test='`$network-topology-operation-input.network-information.ecomp-model-information.model-customization-uuid`'>\r
+<outcome value=''><return status='failure'>\r
+       <parameter name='ack-final' value='Y'/>\r
+       <parameter name="error-code" value="500" />\r
+    <parameter name="error-message" value="network-information.ecomp-model-information.model-customization-uuid is a required input" />\r
+</return></outcome></switch><switch test='`$network-topology-operation-input.network-information.ecomp-model-information.model-uuid`'>\r
+<outcome value=''><return status='failure'>\r
+       <parameter name='ack-final' value='Y'/>\r
+       <parameter name="error-code" value="500" />\r
+    <parameter name="error-message" value="network-information.ecomp-model-information.model-uuid is a required input" />\r
+</return></outcome></switch><switch test='`$network-topology-operation-input.network-request-input.tenant`'>\r
+<outcome value=''><return status='failure'>\r
+       <parameter name='ack-final' value='Y'/>\r
+       <parameter name="error-code" value="500" />\r
+    <parameter name="error-message" value="network-request-input.tenant is a required input" />\r
+</return></outcome></switch><switch test='`$network-topology-operation-input.network-request-input.aic-cloud-region`'>\r
+<outcome value=''><return status='failure'>\r
+       <parameter name='ack-final' value='Y'/>\r
+       <parameter name="error-code" value="500" />\r
+    <parameter name="error-message" value="service-information.network-request-information.aic-cloud-region is a required input" />\r
+</return></outcome></switch><switch test='`$network-topology-operation-input.service-information.ecomp-model-information.model-uuid`'>\r
+<outcome value=''><block atomic="true"><get-resource plugin='org.onap.ccsdk.sli.adaptors.sli.resource.sql.SqlResource' resource='SQL'\r
+  key='SELECT * from SERVICE_MODEL WHERE service_uuid = $service-data.service-information.ecomp-model-information.model-uuid'\r
+  pfx='service-model'><outcome value='not-found'>\r
+<return status='failure'>\r
+       <parameter name='ack-final' value='Y'/>\r
+       <parameter name="error-code" value="500" />\r
+    <parameter name="error-message" value="`'No service model found for service UUID ' + $network-topology-operation-input.service-information.ecomp-model-information.model-uuid`" />\r
+</return></outcome><outcome value='failure'>\r
+<return status='failure'>\r
+       <parameter name='ack-final' value='Y'/>\r
+       <parameter name="error-code" value="500" />\r
+    <parameter name="error-message" value="`'No service model found for service UUID ' + $network-topology-operation-input.service-information.ecomp-model-information.model-uuid`" />\r
+</return></outcome></get-resource><get-resource plugin='org.onap.ccsdk.sli.adaptors.sli.resource.sql.SqlResource' resource='SQL'\r
+  key='SELECT * from NETWORK_MODEL WHERE customization_uuid = $network-topology-operation-input.network-information.ecomp-model-information.model-customization-uuid\r
+  and service_uuid = $service-data.service-information.ecomp-model-information.model-uuid'\r
+  pfx='network-model'>\r
+\r
+<outcome value='not-found'>\r
+<return status='failure'>\r
+       <parameter name='ack-final' value='Y'/>\r
+       <parameter name="error-code" value="500" />\r
+    <parameter name="error-message" value="`'No network model found for customization UUID ' \r
+    + $network-topology-operation-input.network-information.ecomp-model-information.model-customization-uuid +\r
+    ' and model-uuid ' + $network-topology-operation-input.service-information.ecomp-model-information.model-uuid`" />\r
+</return></outcome><outcome value='failure'>\r
+<return status='failure'>\r
+       <parameter name='ack-final' value='Y'/>\r
+       <parameter name="error-code" value="500" />\r
+    <parameter name="error-message" value="`'No network model found for customization UUID ' \r
+    + $network-topology-operation-input.network-information.ecomp-model-information.model-customization-uuid +\r
+    ' and model-uuid ' + $network-topology-operation-input.service-information.ecomp-model-information.model-uuid`" />\r
+</return></outcome></get-resource></block></outcome><outcome value='Other'><block atomic="true"><get-resource plugin='org.onap.ccsdk.sli.adaptors.sli.resource.sql.SqlResource' resource='SQL'\r
+  key='SELECT * from SERVICE_MODEL WHERE service_uuid = $network-topology-operation-input.service-information.ecomp-model-information.model-uuid'\r
+  pfx='service-model'>\r
+\r
+<outcome value='not-found'>\r
+<return status='failure'>\r
+       <parameter name='ack-final' value='Y'/>\r
+       <parameter name="error-code" value="500" />\r
+    <parameter name="error-message" value="`'No service model found for service UUID ' + $network-topology-operation-input.service-information.ecomp-model-information.model-uuid`" />\r
+</return></outcome><outcome value='failure'>\r
+<return status='failure'>\r
+       <parameter name='ack-final' value='Y'/>\r
+       <parameter name="error-code" value="500" />\r
+    <parameter name="error-message" value="`'No service model found for service UUID ' + $network-topology-operation-input.service-information.ecomp-model-information.model-uuid`" />\r
+</return></outcome></get-resource><get-resource plugin='org.onap.ccsdk.sli.adaptors.sli.resource.sql.SqlResource' resource='SQL'\r
+  key='SELECT * from NETWORK_MODEL WHERE customization_uuid = $network-topology-operation-input.network-information.ecomp-model-information.model-customization-uuid\r
+  and service_uuid = $network-topology-operation-input.service-information.ecomp-model-information.model-uuid'\r
+  pfx='network-model'>\r
+\r
+<outcome value='not-found'>\r
+<return status='failure'>\r
+       <parameter name='ack-final' value='Y'/>\r
+       <parameter name="error-code" value="500" />\r
+    <parameter name="error-message" value="`'No network model found for customization UUID ' \r
+    + $network-topology-operation-input.network-information.ecomp-model-information.model-customization-uuid +\r
+    ' and model-uuid ' + $network-topology-operation-input.service-information.ecomp-model-information.model-uuid`" />\r
+</return></outcome><outcome value='failure'>\r
+<return status='failure'>\r
+       <parameter name='ack-final' value='Y'/>\r
+       <parameter name="error-code" value="500" />\r
+    <parameter name="error-message" value="`'No network model found for customization UUID ' \r
+    + $network-topology-operation-input.network-information.ecomp-model-information.model-customization-uuid +\r
+    ' and model-uuid ' + $network-topology-operation-input.service-information.ecomp-model-information.model-uuid`" />\r
+</return></outcome></get-resource></block></outcome></switch></block></outcome><outcome value='Other'><return status='failure'>\r
+       <parameter name='ack-final' value='Y'/>\r
+       <parameter name="error-code" value="500" />\r
+    <parameter name="error-message" value="request-information.request-action is required to be CreateNetworkInstance for svc-action=activate" />\r
+</return></outcome></switch></block></outcome><outcome value='deactivate'><block atomic="true"><switch test='`$network-topology-operation-input.request-information.request-action`'>\r
+<outcome value='DeleteNetworkInstance'><block atomic="true"><switch test='`$network-topology-operation-input.network-information.network-id`'>\r
+<outcome value=''><return status='failure'>\r
+       <parameter name='ack-final' value='Y'/>\r
+       <parameter name="error-code" value="500" />\r
+    <parameter name="error-message" value="service-information.network-information.network-id is a required input" />\r
+</return></outcome></switch></block></outcome><outcome value='Other'><return status='failure'>\r
+       <parameter name='ack-final' value='Y'/>\r
+       <parameter name="error-code" value="500" />\r
+    <parameter name="error-message" value="request-information.request-action is required to be DeleteNetworkInstance for svc-action=deactivate" />\r
+</return></outcome></switch></block></outcome><outcome value='unassign'><block atomic="true"><switch test='`$network-topology-operation-input.request-information.request-action`'>\r
+<outcome value='DeleteNetworkInstance'><block atomic="true"><switch test='`$network-topology-operation-input.network-information.network-id`'>\r
+<outcome value=''><return status='failure'>\r
+       <parameter name='ack-final' value='Y'/>\r
+       <parameter name="error-code" value="500" />\r
+    <parameter name="error-message" value="service-information.network-information.network-id is a required input" />\r
+</return></outcome></switch></block></outcome><outcome value='Other'><return status='failure'>\r
+       <parameter name='ack-final' value='Y'/>\r
+       <parameter name="error-code" value="500" />\r
+    <parameter name="error-message" value="request-information.request-action is required to be DeleteNetworkInstance for svc-action=unassign" />\r
+</return></outcome></switch></block></outcome></switch><return status='success'>\r
+<parameter name="ack-final-indicator" value="Y" />\r
+<parameter name="error-code" value="200" />\r
+<parameter name="error-message" value="`$error-message`" />\r
+</return></block></method></service-logic>