Bug fixing in DGs related to network and links storing in AAI.
[sdnc/oam.git] / platform-logic / datachange / src / main / xml / DataChange_update-network-links-to-aai.xml
index 3495214..8777891 100644 (file)
-<service-logic
-        xmlns='http://www.onap.org/sdnc/svclogic'
-        xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='DataChange' version='${project.version}'>
-    <method rpc='update-network-links-to-aai' mode='sync'>
+<service-logic xsi:schemaLocation="http://www.onap.org/sdnc/svclogic ./svclogic.xsd" module="DataChange" version="${project.version}">
+    <method rpc="update-network-links-to-aai" mode="sync">
         <block atomic="true">
-            <for index='pidx' start='0' end='`$network.link_length`' >
+            <for index="pidx" start="0" end="`$network.link_length`">
                 <set>
-                    <parameter name='link.' value='`$network.link[$pidx].`' />
-                    <parameter name='unique-networkId' value='`$tmp.network-id`' />
-                    <parameter name='unique-linkId' value="`'networkId-' + $unique-networkId + '-linkId-' + $link.link-id`" />
-                    <parameter name='src-tpId' value="`'networkId-' + $unique-networkId + '-nodeId-' + $link.source.source-node + '-ltpId-' + $link.source.source-tp`" />
-                    <parameter name='dst-tpId' value="`'networkId-' + $unique-networkId + '-nodeId-' + $link.destination.dest-node + '-ltpId-' + $link.destination.dest-tp`" />
+                    <parameter name="link." value="`$network.link[$pidx].`"/>
+                    <parameter name="unique-networkId" value="`$tmp.network-id`"/>
                 </set>
-                <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='logical-link'
-                      key='logical-link.link-name = $unique-linkId' >
-                    <parameter name='link-name' value='`$unique-linkId`' />
-                    <parameter name='link-id' value='`$link.link-id`' />
-                </save>
-                <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='logical-link:relationship-list'
-                      key='logical-link.link-name = $unique-linkId' force="true" pfx="tmp.AnAI-data">
-                    <parameter name="relationship-list.relationship[0].related-to" value="p-interface" />
-                    <parameter name="relationship-list.relationship[0].related-link" value="`'/p-interfaces/p-interface/' + $src-tpId`" />
-                    <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="p-interface.interface-name" />
-                    <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$src-tpId`" />
-                    <parameter name="relationship-list.relationship[1].related-to" value="p-interface" />
-                    <parameter name="relationship-list.relationship[1].related-link" value="`'/p-interfaces/p-interface/' + $dst-tpId`" />
-                    <parameter name="relationship-list.relationship[1].relationship-data[0].relationship-key" value="p-interface.interface-name" />
-                    <parameter name="relationship-list.relationship[1].relationship-data[0].relationship-value" value="`$dst-tpId`" />
-                </save>
-                <for index='tidx' start='0' end='`$link.te.te-link-attributes.label-restriction_length`' >
-                    <set>
-                        <parameter name='label-restriction.' value='`$link.te.te-link-attributes.label-restriction[$tidx].`' />
-                        <parameter name='unique-lrId' value="`$unique-linkId + '-lrId-' + $label-restriction.index`" />
-                    </set>
-                    <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='label-restriction'
-                          key='logical-link.link-name = $unique-linkId
-      AND label-restriction.id = $unique-lrId' >
-                        <parameter name='id' value='`$unique-lrId`' />
-                        <parameter name='label-start' value='`$label-restriction.label-start`' />
-                        <parameter name='label-end' value='`$label-restriction.label-end`' />
-                        <parameter name='range-bitmap' value='`$label-restriction.range-bitmap`' />
-                        <parameter name='label-step' value='`$label-restriction.label-step`' />
-                        <parameter name='inclusive-exclusive' value='`$label-restriction.inclusive-exclusive`' />
-                        <outcome value='success'>
-                            <block></block>
-                        </outcome>
-                        <outcome value='failure'>
-                            <update plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='label-restriction'
-                                    key='logical-link.link-name = $unique-linkId
-      AND label-restriction.id = $unique-lrId' >
-                                <parameter name='id' value='`$unique-lrId`' />
-                                <parameter name='label-start' value='`$label-restriction.label-start`' />
-                                <parameter name='label-end' value='`$label-restriction.label-end`' />
-                                <parameter name='range-bitmap' value='`$label-restriction.range-bitmap`' />
-                                <parameter name='label-step' value='`$label-restriction.label-step`' />
-                                <parameter name='inclusive-exclusive' value='`$label-restriction.inclusive-exclusive`' />
-                            </update>
-                        </outcome>
-                    </save>
-                    <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='logical-link:relationship-list'
-                          key='logical-link.link-name = $unique-linkId' force="true" pfx="tmp.AnAI-data">
-                        <parameter name="relationship-list.relationship[$tidx].related-to" value="label-restriction" />
-                        <parameter name="relationship-list.relationship[$tidx].related-link" value="`'/network/label-restrictions/label-restriction/' + $unique-lrId`" />
-                        <parameter name="relationship-list.relationship[$tidx].relationship-data[0].relationship-key" value="label-restriction.id" />
-                        <parameter name="relationship-list.relationship[$tidx].relationship-data[0].relationship-value" value="`$unique-lrId`" />
-                    </save>
-                </for>
+                <set>
+                    <parameter name="unique-linkId" value="`'networkId-' + $unique-networkId + '-linkId-' + $link.link-id`"/>
+                    <parameter name="src-tpId" value="`'networkId-' + $unique-networkId + '-nodeId-' + $link.source.source-node + '-ltpId-' + $link.source.source-tp`"/>
+                    <parameter name="unique-src-node-Id" value="`'networkId-' + $unique-networkId + '-nodeId-' + $link.source.source-node`"/>
+                </set>
+                <switch test="`$link.destination`">
+                    <outcome value="">
+                        <block>
+                            <set>
+                                <parameter name="is-open-ended-link" value="true"/>
+                            </set>
+                            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="p-interface" key="pnf.pnf-name = $unique-src-node-Id and p-interface.interface-name = $src-tpId" local-only="false" pfx="tmp.aai.p-interface">
+                                <outcome value="success">
+                                    <set>
+                                        <parameter name="alt-unique-linkId" value="`$tmp.aai.p-interface.inter-domain-plug-id`"/>
+                                    </set>
+                                </outcome>
+                                <outcome value="not-found">
+                                    <return status="failure">
+                                        <parameter name="ack-final" value="Y"/>
+                                        <parameter name="error-code" value="500"/>
+                                        <parameter name="error-message" value="`'An error occurred while querying pnf from AnAI with pnf-name = ' + $prop.l3vpn.pe1_id`"/>
+                                    </return>
+                                </outcome>
+                                <outcome value="failure">
+                                    <return status="failure">
+                                        <parameter name="error-code" value=""/>
+                                        <parameter name="error-message" value=""/>
+                                    </return>
+                                </outcome>
+                            </get-resource>
+                        </block>
+                    </outcome>
+                    <outcome value="Other">
+                        <set>
+                            <parameter name="dst-tpId" value="`'networkId-' + $unique-networkId + '-nodeId-' + $link.destination.dest-node + '-ltpId-' + $link.destination.dest-tp`"/>
+                            <parameter name="unique-dst-node-Id" value="`'networkId-' + $unique-networkId + '-nodeId-' + $link.destination.dest-node`"/>
+                            <parameter name="is-open-ended-link" value="false"/>
+                        </set>
+                    </outcome>
+                </switch>
+                <switch test="`$is-open-ended-link`">
+                    <outcome value="true">
+                        <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="logical-link" key="logical-link.link-name = $alt-unique-linkId" local-only="false" pfx="tmp.aai.logical-link">
+                            <outcome value="success">
+                                <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="logical-link:relationship-list" key="logical-link.link-name = $alt-unique-linkId" force="true" pfx="tmp.AnAI-data">
+                                    <!--
+                                    <parameter name="relationship-list.relationship[0].related-to" value="p-interface" />
+                                    -->
+                                    <!--
+                                    <parameter name="relationship-list.relationship[0].related-link" value="`'/network/pnfs/pnf/' + $unique-src-node-Id + '/p-interfaces/p-interface/' + $src-tpId`" />
+                                    -->
+                                    <!--
+                                    <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="p-interface.interface-name" />
+                                    -->
+                                    <!--
+                                    <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$src-tpId`" />
+                                    -->
+                                    <parameter name="relationship-list.relationship[1].related-to" value="p-interface"/>
+                                    <parameter name="relationship-list.relationship[1].related-link" value="`'/network/pnfs/pnf/' + $unique-src-node-Id + '/p-interfaces/p-interface/' + $src-tpId`"/>
+                                    <parameter name="relationship-list.relationship[1].relationship-data[0].relationship-key" value="p-interface.interface-name"/>
+                                    <parameter name="relationship-list.relationship[1].relationship-data[0].relationship-value" value="`$src-tpId`"/>
+                                </update>
+                            </outcome>
+                            <outcome value="not-found">
+                                <block atomic="true">
+                                    <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="logical-link" key="logical-link.link-name = $alt-unique-linkId">
+                                        <parameter name="link-name" value="`$alt-unique-linkId`"/>
+                                        <parameter name="link-id" value="`$link.link-id`"/>
+                                        <parameter name="link-type" value="`$link.te.te-link-attributes.access-type`"/>
+                                    </save>
+                                    <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="logical-link:relationship-list" key="logical-link.link-name = $unique-linkId" force="true" pfx="tmp.AnAI-data">
+                                        <parameter name="relationship-list.relationship[0].related-to" value="p-interface"/>
+                                        <parameter name="relationship-list.relationship[0].related-link" value="`'/network/pnfs/pnf/' + $unique-src-node-Id + '/p-interfaces/p-interface/' + $src-tpId`"/>
+                                        <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="p-interface.interface-name"/>
+                                        <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$src-tpId`"/>
+                                    </save>
+                                    <switch test="`$link.te.te-link-attributes.label-restriction`">
+                                        <outcome value="">
+                                            <block/>
+                                        </outcome>
+                                        <outcome value="Other">
+                                            <for index="tidx" start="0" end="`$link.te.te-link-attributes.label-restriction_length`">
+                                                <set>
+                                                    <parameter name="label-restriction." value="`$link.te.te-link-attributes.label-restriction[$tidx].`"/>
+                                                    <parameter name="unique-lrId" value="`$alt-unique-linkId + '-lrId-' + $label-restriction.index`"/>
+                                                </set>
+                                                <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="label-restriction" key="logical-link.link-name = $alt-unique-linkId AND label-restriction.id = $unique-lrId">
+                                                    <parameter name="id" value="`$unique-lrId`"/>
+                                                    <parameter name="label-start" value="`$label-restriction.label-start`"/>
+                                                    <parameter name="label-end" value="`$label-restriction.label-end`"/>
+                                                    <parameter name="range-bitmap" value="`$label-restriction.range-bitmap`"/>
+                                                    <parameter name="label-step" value="`$label-restriction.label-step`"/>
+                                                    <parameter name="inclusive-exclusive" value="`$label-restriction.inclusive-exclusive`"/>
+                                                    <outcome value="success">
+                                                        <block/>
+                                                    </outcome>
+                                                    <outcome value="failure">
+                                                        <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="label-restriction" key="logical-link.link-name = $alt-unique-linkId AND label-restriction.id = $unique-lrId">
+                                                            <parameter name="id" value="`$unique-lrId`"/>
+                                                            <parameter name="label-start" value="`$label-restriction.label-start`"/>
+                                                            <parameter name="label-end" value="`$label-restriction.label-end`"/>
+                                                            <parameter name="range-bitmap" value="`$label-restriction.range-bitmap`"/>
+                                                            <parameter name="label-step" value="`$label-restriction.label-step`"/>
+                                                            <parameter name="inclusive-exclusive" value="`$label-restriction.inclusive-exclusive`"/>
+                                                        </update>
+                                                    </outcome>
+                                                </save>
+                                                <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="logical-link:relationship-list" key="logical-link.link-name = $alt-unique-linkId" force="true" pfx="tmp.AnAI-data">
+                                                    <parameter name="relationship-list.relationship[$tidx].related-to" value="label-restriction"/>
+                                                    <parameter name="relationship-list.relationship[$tidx].related-link" value="`'/network/label-restrictions/label-restriction/' + $unique-lrId`"/>
+                                                    <parameter name="relationship-list.relationship[$tidx].relationship-data[0].relationship-key" value="label-restriction.id"/>
+                                                    <parameter name="relationship-list.relationship[$tidx].relationship-data[0].relationship-value" value="`$unique-lrId`"/>
+                                                </save>
+                                            </for>
+                                        </outcome>
+                                    </switch>
+                                </block>
+                            </outcome>
+                        </get-resource>
+                    </outcome>
+                    <outcome value="false">
+                        <block atomic="true">
+                            <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="logical-link" key="logical-link.link-name = $unique-linkId">
+                                <parameter name="link-name" value="`$unique-linkId`"/>
+                                <parameter name="link-id" value="`$link.link-id`"/>
+                                <parameter name="link-type" value="`$link.te.te-link-attributes.access-type`"/>
+                            </save>
+                            <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="logical-link:relationship-list" key="logical-link.link-name = $unique-linkId" force="true" pfx="tmp.AnAI-data">
+                                <parameter name="relationship-list.relationship[0].related-to" value="p-interface"/>
+                                <parameter name="relationship-list.relationship[0].related-link" value="`'/network/pnfs/pnf/' + $unique-src-node-Id + '/p-interfaces/p-interface/' + $src-tpId`"/>
+                                <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="p-interface.interface-name"/>
+                                <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$src-tpId`"/>
+                                <parameter name="relationship-list.relationship[1].related-to" value="p-interface"/>
+                                <parameter name="relationship-list.relationship[1].related-link" value="`'/network/pnfs/pnf/' + $unique-dst-node-Id + '/p-interfaces/p-interface/' + $dst-tpId`"/>
+                                <parameter name="relationship-list.relationship[1].relationship-data[0].relationship-key" value="p-interface.interface-name"/>
+                                <parameter name="relationship-list.relationship[1].relationship-data[0].relationship-value" value="`$dst-tpId`"/>
+                            </save>
+                            <switch test="`$link.te.te-link-attributes.label-restriction`">
+                                <outcome value="">
+                                    <block/>
+                                </outcome>
+                                <outcome value="Other">
+                                    <for index="tidx" start="0" end="`$link.te.te-link-attributes.label-restriction_length`">
+                                        <set>
+                                            <parameter name="label-restriction." value="`$link.te.te-link-attributes.label-restriction[$tidx].`"/>
+                                            <parameter name="unique-lrId" value="`$unique-linkId + '-lrId-' + $label-restriction.index`"/>
+                                        </set>
+                                        <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="label-restriction" key="logical-link.link-name = $unique-linkId AND label-restriction.id = $unique-lrId">
+                                            <parameter name="id" value="`$unique-lrId`"/>
+                                            <parameter name="label-start" value="`$label-restriction.label-start`"/>
+                                            <parameter name="label-end" value="`$label-restriction.label-end`"/>
+                                            <parameter name="range-bitmap" value="`$label-restriction.range-bitmap`"/>
+                                            <parameter name="label-step" value="`$label-restriction.label-step`"/>
+                                            <parameter name="inclusive-exclusive" value="`$label-restriction.inclusive-exclusive`"/>
+                                            <outcome value="success">
+                                                <block/>
+                                            </outcome>
+                                            <outcome value="failure">
+                                                <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="label-restriction" key="logical-link.link-name = $unique-linkId AND label-restriction.id = $unique-lrId">
+                                                    <parameter name="id" value="`$unique-lrId`"/>
+                                                    <parameter name="label-start" value="`$label-restriction.label-start`"/>
+                                                    <parameter name="label-end" value="`$label-restriction.label-end`"/>
+                                                    <parameter name="range-bitmap" value="`$label-restriction.range-bitmap`"/>
+                                                    <parameter name="label-step" value="`$label-restriction.label-step`"/>
+                                                    <parameter name="inclusive-exclusive" value="`$label-restriction.inclusive-exclusive`"/>
+                                                </update>
+                                            </outcome>
+                                        </save>
+                                        <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="logical-link:relationship-list" key="logical-link.link-name = $unique-linkId" force="true" pfx="tmp.AnAI-data">
+                                            <parameter name="relationship-list.relationship[$tidx].related-to" value="label-restriction"/>
+                                            <parameter name="relationship-list.relationship[$tidx].related-link" value="`'/network/label-restrictions/label-restriction/' + $unique-lrId`"/>
+                                            <parameter name="relationship-list.relationship[$tidx].relationship-data[0].relationship-key" value="label-restriction.id"/>
+                                            <parameter name="relationship-list.relationship[$tidx].relationship-data[0].relationship-value" value="`$unique-lrId`"/>
+                                        </save>
+                                    </for>
+                                </outcome>
+                            </switch>
+                        </block>
+                    </outcome>
+                </switch>
             </for>
         </block>
     </method>