DG'S added for MDONS use case to handle cross domain
[sdnc/oam.git] / platform-logic / optical-service / src / main / xml / optical-service_optical-service-create.xml
index 240316a..0c09b4a 100644 (file)
     xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='optical-service' version='${project.version}'>\r
     <method rpc='optical-service-create' mode='sync'>\r
         <block atomic='true'>\r
-            <call module='optical-service' rpc='optical-validate-input-params' mode='sync' ></call>\r
-            <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
-                <parameter name='fileName' value='/opt/onap/sdnc/data/properties/optical-service-dg.properties' />\r
-                <parameter name='contextPrefix' value='prop' />\r
-            </execute>\r
-            <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
-key='SELECT controller_id\r
-from TOPOLOGY_LOGICAL_RELATION_TO_PINTERFACE\r
-WHERE interface_name = $optical-service-create-input.payload.service-aend.port-id\r
-AND interface_id = $optical-service-create-input.payload.service-aend.port-name'\r
-pfx='controllerid'>\r
-                <outcome value='success'>\r
-                    <set>\r
-                        <parameter name='controller-id' value='`$controllerid.controller-id`' />\r
-                    </set>\r
-                </outcome>\r
-            </get-resource>\r
-            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
-                <parameter name="original_string" value='`$controller-id`'/>\r
-                <parameter name="regex" value="_"/>\r
-                <parameter name="ctx_memory_result_key" value="param-prefix"/>\r
-            </execute>\r
-            <set>\r
-                <parameter name='controller-ip' value='`$param-prefix[1]`' />\r
-            </set>\r
-            <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
-key='SELECT *\r
-from TOPOLOGY_LOGICAL_RELATION_TO_PINTERFACE\r
-WHERE interface_name = $optical-service-create-input.payload.service-aend.port-id\r
-AND interface_id = $optical-service-create-input.payload.service-aend.port-name'\r
-pfx='db-aend'>\r
+            <for index='idx' start='0' end='`$optical-service-create-input.payload.param_length`' >\r
+                <set>\r
+                    <parameter name='params' value='`$optical-service-create-input.payload.param[$idx]`' />\r
+                </set>\r
+                <switch test="`$optical-service-create-input.payload.param[$idx].name == 'uni1_id'`">\r
+                    <outcome value='true'>\r
+                        <set>\r
+                            <parameter name='optical-service-create-input.payload.service-aend.port-id' value="`$optical-service-create-input.payload.param[$idx].value`"/>\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+                <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
+                    <parameter name="file" value="/opt/opendaylight/current/data/log/optical-service-create.log" />\r
+                    <parameter name="level" value="info" />\r
+                    <parameter name="field1" value="`$optical-service-create-input.payload.service-aend.port-id`"/>\r
+                </record>\r
+                <switch test="`$optical-service-create-input.payload.param[$idx].name == 'uni2_id'`">\r
+                    <outcome value='true'>\r
+                        <set>\r
+                            <parameter name='optical-service-create-input.payload.service-zend.port-id' value="`$optical-service-create-input.payload.param[$idx].value`"/>\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+                <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
+                    <parameter name="file" value="/opt/opendaylight/current/data/log/optical-service-create.log" />\r
+                    <parameter name="level" value="info" />\r
+                    <parameter name="field1" value="`$optical-service-create-input.payload.service-zend.port-id`"/>\r
+                </record>\r
+                <switch test="`$optical-service-create-input.payload.param[$idx].name == 'uni1_coding_func'`">\r
+                    <outcome value='true'>\r
+                        <set>\r
+                            <parameter name='optical-service-create-input.payload.service-rate' value="`$optical-service-create-input.payload.param[$idx].value`"/>\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+                <switch test="`$optical-service-create-input.payload.param[$idx].name == 'uni_id'`">\r
+                    <outcome value='true'>\r
+                        <set>\r
+                            <parameter name='optical-service-create-input.payload.service-aend.port-id' value="`$optical-service-create-input.payload.param[$idx].value`"/>\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+                <switch test="`$optical-service-create-input.payload.param[$idx].name == 'enni_id'`">\r
+                    <outcome value='true'>\r
+                        <set>\r
+                            <parameter name='optical-service-create-input.payload.service-zend.port-id' value="`$optical-service-create-input.payload.param[$idx].value`"/>\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+                <switch test="`$optical-service-create-input.payload.param[$idx].name == 'uni_coding_func'`">\r
+                    <outcome value='true'>\r
+                        <set>\r
+                            <parameter name='optical-service-create-input.payload.service-rate' value="`$optical-service-create-input.payload.param[$idx].value`"/>\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+                <switch test="`$optical-service-create-input.payload.param[$idx].name == 'enni1_id'`">\r
+                    <outcome value='true'>\r
+                        <set>\r
+                            <parameter name='optical-service-create-input.payload.service-aend.port-id' value="`$optical-service-create-input.payload.param[$idx].value`"/>\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+                <switch test="`$optical-service-create-input.payload.param[$idx].name == 'enni2_id'`">\r
+                    <outcome value='true'>\r
+                        <set>\r
+                            <parameter name='optical-service-create-input.payload.service-zend.port-id' value="`$optical-service-create-input.payload.param[$idx].value`"/>\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+                <switch test="`$optical-service-create-input.payload.param[$idx].name == 'enni1_coding_func'`">\r
+                    <outcome value='true'>\r
+                        <set>\r
+                            <parameter name='optical-service-create-input.payload.service-rate' value="`$optical-service-create-input.payload.param[$idx].value`"/>\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+                <switch test="`$optical-service-create-input.payload.param[$idx].name == 'service-name'`">\r
+                    <outcome value='true'>\r
+                        <set>\r
+                            <parameter name='optical-service-create-input.payload.service-name' value="`$optical-service-create-input.payload.param[$idx].value`"/>\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL' \r
+key='SELECT controller_id \r
+from TOPOLOGY_LOGICAL_RELATION_TO_PINTERFACE \r
+WHERE interface_name = $optical-service-create-input.payload.service-aend.port-id' \r
+pfx='db.source1'>\r
                 <outcome value='success'>\r
                     <set>\r
-                        <parameter name='aend-nodeid' value='`$db-aend.pnf-id`' />\r
-                        <parameter name='a-end-pnf-name' value='`$db-aend.pnf-name`' />\r
-                        <parameter name='aend-clli' value='`$db-aend.clli`' />\r
+                        <parameter name='controller1' value="`$db.source1.controller-id`"/>\r
                     </set>\r
                 </outcome>\r
             </get-resource>\r
-            <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
-key='SELECT *\r
-from TOPOLOGY_LOGICAL_RELATION_TO_PINTERFACE\r
-WHERE interface_name = $optical-service-create-input.payload.service-zend.port-id\r
-AND interface_id = $optical-service-create-input.payload.service-zend.port-name'\r
-pfx='db-zend'>\r
+            <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL' \r
+key='SELECT controller_id \r
+from TOPOLOGY_LOGICAL_RELATION_TO_PINTERFACE \r
+WHERE interface_name = $optical-service-create-input.payload.service-zend.port-id' \r
+pfx='db.source2'>\r
                 <outcome value='success'>\r
                     <set>\r
-                        <parameter name='zend-nodeid' value='`$db-zend.pnf-id`' />\r
-                        <parameter name='z-end-pnf-name' value='`$db-zend.pnf-name`' />\r
-                        <parameter name='zend-clli' value='`$db-zend.clli`' />\r
+                        <parameter name='controller2' value="`$db.source2.controller-id`"/>\r
                     </set>\r
                 </outcome>\r
             </get-resource>\r
-            <switch test='`$optical-service-create-input.payload.domain-type`'>\r
-                <outcome value='MSA'>\r
-                    <block atomic='true'>\r
-                        <call module='optical-service' rpc='service-create-msa' mode='sync' ></call>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\r
+                <parameter name="ctx-destination" value="service1-svc-instance-id"/>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
+                <parameter name="original_string" value='`$controller1`'/>\r
+                <parameter name="regex" value="_"/>\r
+                <parameter name="ctx_memory_result_key" value="param-prefix1"/>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
+                <parameter name="original_string" value='`$controller2`'/>\r
+                <parameter name="regex" value="_"/>\r
+                <parameter name="ctx_memory_result_key" value="param-prefix2"/>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\r
+                <parameter name="ctx-destination" value="service1-request-id"/>\r
+            </execute>\r
+            <set>\r
+                <parameter name='controller-ip1' value='`$param-prefix1[1]`' />\r
+                <parameter name='domain-type1' value='`$param-prefix1[0]`' />\r
+                <parameter name='controller-ip2' value='`$param-prefix2[1]`' />\r
+                <parameter name='domain-type2' value='`$param-prefix2[0]`' />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\r
+                <parameter name="ctx-destination" value="service2-svc-instance-id"/>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\r
+                <parameter name="ctx-destination" value="service2-request-id"/>\r
+            </execute>\r
+            <switch test='`$controller1==$controller2`'>\r
+                <outcome value='true'>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name='as-request-id' value='`$optical-service-create-input.request-id`' />\r
+                            <parameter name='as-svc-instance-id' value='`$optical-service-create-input.service-id`' />\r
+                        </set>\r
+                        <set>\r
+                            <parameter name='domain-requests' value="`$service1-request-id`" />\r
+                            <parameter name='optical-service-create-input.request-id' value="`$service1-request-id`" />\r
+                            <parameter name='optical-service-create-input.service-id' value="`$service1-svc-instance-id`" />\r
+                            <parameter name='optical-service-create-input.payload.service-name' value="`$optical-service-create-input.payload.service-name + '_' + 'MDONS-OTN'`" />\r
+                        </set>\r
+                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
+                            <parameter name="file" value="/opt/opendaylight/current/data/log/optical-service-create.log" />\r
+                            <parameter name="level" value="info" />\r
+                            <parameter name="field1" value="`'domain rquest_' + $domain-requests`"/>\r
+                            <parameter name="field2" value="`'Access rquest_' + $as-request-id`"/>\r
+                        </record>\r
+                        <save plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL" key="INSERT INTO REQUEST_DETAILS (request_id, controller_id, status, service_rate, service_instance_id, service_type, global_customer_id, notification_url, domain_requests ) VALUES ( $as-request-id , null , 'CREATING' , $optical-service-create-input.payload.service-rate ,  $as-svc-instance-id , $optical-service-create-input.service-type , $optical-service-create-input.global-customer-id , $optical-service-create-input.notification-url , $domain-requests );"></save>\r
+                        <call module='optical-service' rpc='main-create' mode='sync' >\r
+                            <outcome value='success'>\r
+                                <switch test='`$final-response-code`'>\r
+                                    <outcome value='200'>\r
+                                        <block>\r
+                                            <save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' \r
+resource='SQL' \r
+key='UPDATE REQUEST_DETAILS SET status = "CREATED" WHERE request_id = $as-request-id'\r
+force='true' pfx='save-result'></save>\r
+                                            <call module='optical-service' rpc='create-service-relationship' mode='sync' ></call>\r
+                                            <return status='success'>\r
+                                                <parameter name='error-code' value='200' />\r
+                                                <parameter name='error-message' value='Service Created Successfully' />\r
+                                                <parameter name='ack-final-indicator' value='Y' />\r
+                                            </return>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </outcome>\r
+                        </call>\r
                     </block>\r
                 </outcome>\r
-                <outcome value='TAPI'>\r
-                    <block atomic='true'>\r
-                        <call module='optical-service' rpc='service-create-tapi' mode='sync' ></call>\r
+                <outcome value='false'>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name='as-request-id' value='`$optical-service-create-input.request-id`' />\r
+                            <parameter name='as-svc-instance-id' value='`$optical-service-create-input.service-id`' />\r
+                            <parameter name='domain-requests' value="`$service1-request-id + ',' + $service2-request-id`" />\r
+                        </set>\r
+                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
+                            <parameter name="file" value="/opt/opendaylight/current/data/log/optical-service-create.log" />\r
+                            <parameter name="level" value="info" />\r
+                            <parameter name="field1" value="`'domain rquest_' + $domain-requests`"/>\r
+                            <parameter name="field2" value="`'Service 1 req id---' + $service1-request-id`"/>\r
+                            <parameter name="field3" value="`'Service 2 req id---' + $service2-request-id`"/>\r
+                        </record>\r
+                        <save plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL" key="INSERT INTO REQUEST_DETAILS (request_id, controller_id, status, service_rate, service_instance_id, service_type, global_customer_id, notification_url, domain_requests ) VALUES ( $as-request-id , null , 'CREATING' , $optical-service-create-input.payload.service-rate ,  $as-svc-instance-id , $optical-service-create-input.service-type , $optical-service-create-input.global-customer-id , $optical-service-create-input.notification-url , $domain-requests );"></save>\r
+                        <set>\r
+                            <parameter name='access-aend' value="`$optical-service-create-input.payload.service-aend.port-id`"/>\r
+                            <parameter name='access-zend' value="`$optical-service-create-input.payload.service-zend.port-id`"/>\r
+                        </set>\r
+                        <call module='optical-service' rpc='inter-domain-handling' mode='sync' ></call>\r
                     </block>\r
                 </outcome>\r
             </switch>\r