Initial commit for OpenECOMP SDN-C OA&M
[sdnc/oam.git] / platform-logic / vnfapi / src / main / xml / dg-vf-module-topology-operation.xml
diff --git a/platform-logic/vnfapi/src/main/xml/dg-vf-module-topology-operation.xml b/platform-logic/vnfapi/src/main/xml/dg-vf-module-topology-operation.xml
new file mode 100644 (file)
index 0000000..e0c3246
--- /dev/null
@@ -0,0 +1,90 @@
+<!--
+  ============LICENSE_START=======================================================
+  openECOMP : SDN-C
+  ================================================================================
+  Copyright (C) 2017 AT&T Intellectual Property. All rights
+              reserved.
+  ================================================================================
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+       http://www.apache.org/licenses/LICENSE-2.0
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+  ============LICENSE_END=========================================================
+  -->
+
+<service-logic xmlns="http://www.openecomp.org/sdnc/svclogic"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.openecomp.org/sdnc/svclogic ./svclogic.xsd" module='VNF-API' version='${project.version}'><method rpc='vf-module-topology-operation' mode='sync'>
+<block atomic="true"><record plugin="org.openecomp.sdnc.sli.recording.FileRecorder">
+<parameter name="file" value="/opt/opendaylight/current/data/log/svclogic.log"/>
+<parameter name="field1" value="__TIMESTAMP__"/>
+<parameter name="field2" value="vf-module-topology-operation"/>
+<parameter name="field3" value="`$vf-module-topology-operation-input.sdnc-request-header.svc-action`"/>
+<parameter name="field4" value="`$vf-module-topology-operation-input.sdnc-request-header.svc-request-id`"/>
+<parameter name="field5" value="`$vf-module-topology-operation-input.request-information.source`"/>
+<parameter name="field6" value="`$vf-module-topology-operation-input.request-information.request-id`"/>
+<parameter name="field7" value="`$vf-module-topology-operation-input.request-information.request-action`"/>
+<parameter name="field8" value="`$vf-module-topology-operation-input.service-information.service-id`"/>
+<parameter name="field9" value="`$vf-module-topology-operation-input.service-information.service-type`"/>
+<parameter name="field10" value="`$vf-module-topology-operation-input.service-information.subscriber-name`"/>
+<parameter name="field11" value="`$vf-module-topology-operation-input.service-information.service-instance-id`"/>
+<parameter name="field12" value="`$vf-module-topology-operation-input.vf-module-topology-information.vf-module-id`"/>
+<parameter name="field13" value="`$vf-module-topology-operation-input.vf-module-topology-information.vf-module-model-id`"/>
+<parameter name="field14" value="`$vf-module-topology-operation-input.vf-module-topology-information.vf-module-name`"/>
+<parameter name="field15" value="`$vf-module-topology-operation-input.vf-module-topology-information.request-version`"/>
+<parameter name="field16" value="`$vf-module-topology-operation-input.vf-module-topology-information.vnf-instance-id`"/>
+<parameter name="field17" value="`$vf-module-topology-operation-input.vf-module-topology-information.vnf-model-id`"/>
+<parameter name="field18" value="`$vf-module-topology-operation-input.vf-module-topology-information.vnf-instance-name`"/>
+<parameter name="field19" value="`$vf-module-topology-operation-input.vf-module-topology-information.aic-cloud-region`"/>
+<parameter name="field20" value="`$vf-module-topology-operation-input.vf-module-topology-information.tenant`"/></record><switch test="`$vf-module-topology-operation-input.vf-module-request-information.vf-module-name`"><outcome value='Other'><switch test="`$vf-module-preload-data.vf-module-topology-information.vf-module-identifiers.vf-module-name`"><outcome value='Other'><switch test="`$vf-module-topology-operation-input.vf-module-request-information.vf-module-name == $vf-module-preload-data.vf-module-topology-information.vf-module-identifiers.vf-module-name`"><outcome value='false'>
+<return status='failure'>
+    <parameter name='error-code' value='404'/>
+    <parameter name='error-message' value='vf-module-name not found in vf-module-preload-data'/></return></outcome></switch></outcome><outcome value=''><return status='failure'>
+    <parameter name='error-code' value='400'/>
+    <parameter name='error-message' value='No preload data found to match vf-module-name'/></return></outcome></switch></outcome><outcome value=''><return status='failure'>
+    <parameter name='error-code' value='400'/>
+    <parameter name='error-message' value='vf-module-name is required'/></return></outcome></switch><switch test="`$vf-module-topology-operation-input.vf-module-request-information.vf-module-model-id`"><outcome value='Other'><switch test="`$vf-module-preload-data.vf-module-topology-information.vf-module-identifiers.vf-module-model-id`"><outcome value='Other'><switch test="`$vf-module-topology-operation-input.vf-module-request-information.vf-module-model-id == $vf-module-preload-data.vf-module-topology-information.vf-module-identifiers.vf-module-model-id`"><outcome value='false'>
+<return status='failure'>
+    <parameter name='error-code' value='404'/>
+    <parameter name='error-message' value='vf-module-model-id not found in vf-module-preload-data'/></return></outcome></switch></outcome><outcome value=''><return status='failure'>
+    <parameter name='error-code' value='400'/>
+    <parameter name='error-message' value='No preload data found to match vf-module-model-id from input'/></return></outcome></switch></outcome><outcome value=''><return status='failure'>
+    <parameter name='error-code' value='400'/>
+    <parameter name='error-message' value='vf-module-model-id is required'/></return></outcome></switch><switch test="`$vf-module-topology-operation-input.vf-module-request-information.vf-module-id`"><outcome value='0'><return status='failure'>
+    <parameter name='error-code' value='400'/>
+    <parameter name='error-message' value='vf-module-id cannot be NULL or 0'/></return></outcome><outcome value=''><return status='failure'>
+    <parameter name='error-code' value='400'/>
+    <parameter name='error-message' value='vf-module-id cannot be NULL or 0'/></return></outcome></switch><switch test="`$vf-module-topology-operation-input.vf-module-request-information.vnf-instance-id`"><outcome value='0'><return status='failure'>
+    <parameter name='error-code' value='400'/>
+    <parameter name='error-message' value='vnf-instance-id cannot be NULL or 0'/></return></outcome><outcome value=''><return status='failure'>
+    <parameter name='error-code' value='400'/>
+    <parameter name='error-message' value='vnf-instance-id cannot be NULL or 0'/></return></outcome></switch><switch test="`$vf-module-topology-operation-input.vf-module-request-information.vnf-instance-name`"><outcome value=''><return status='failure'>
+    <parameter name='error-code' value='400'/>
+    <parameter name='error-message' value='vnf-instance-name cannot be NULL'/></return></outcome></switch><switch test="`$vf-module-topology-operation-input.vf-module-request-information.vnf-model-id`"><outcome value=''><return status='failure'>
+    <parameter name='error-code' value='400'/>
+    <parameter name='error-message' value='vnf-model-id cannot be NULL'/></return></outcome></switch><switch test="`$vf-module-topology-operation-input.vf-module-request-information.aic-cloud-region`"><outcome value=''><return status='failure'>
+    <parameter name='error-code' value='400'/>
+    <parameter name='error-message' value='aic-cloud-region cannot be NULL'/></return></outcome></switch><switch test="`$vf-module-topology-operation-input.sdnc-request-header.svc-action`">
+<!--
+leaf svc-action {
+    type enumeration {
+        enum "reserve";
+        enum "assign";
+        enum "activate";  // equal to commit
+        enum "delete";      // equal to commit
+        enum "changeassign";
+        enum "changedelete";
+        enum "rollback";
+    }
+}
+-->
+
+<outcome value='assign'><call module='VNF-API' rpc='vf-module-topology-assign' mode='sync' ></call></outcome><outcome value='changeassign'><call module='VNF-API' rpc='vf-module-topology-changeassign' mode='sync' ></call></outcome><outcome value='activate'><call module='VNF-API' rpc='vf-module-topology-activate' mode='sync' ></call></outcome><outcome value='rollback'><call module='VNF-API' rpc='vf-module-topology-rollback' mode='sync' ></call></outcome><outcome value='delete'><call module='VNF-API' rpc='vf-module-topology-delete' mode='sync' ></call></outcome><outcome value='Other'><return status='failure'>
+    <parameter name='error-code' value='400'/>
+    <parameter name='error-message' value='svc-action not recognized'/>
+</return></outcome></switch></block></method></service-logic>