NNI-based Service creation DG bug fixes (uni, l2vpn, and underlay resources).
[sdnc/oam.git] / platform-logic / datachange / src / main / xml / DataChange_update-network-links-to-aai.xml
index 3495214..f870e36 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'>
-        <block atomic="true">
-            <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`" />
-                </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>
-            </for>
-        </block>
-    </method>
+<service-logic\r
+    xmlns='http://www.onap.org/sdnc/svclogic'\r
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='DataChange' version='${project.version}'>\r
+    <method rpc='update-network-links-to-aai' mode='sync'>\r
+        <block atomic="true">\r
+            <for index='pidx' start='0' end='`$network.link_length`' >\r
+                <set>\r
+                    <parameter name='link.' value='' />\r
+                    <parameter name='dst-tpId' value='' />\r
+                    <parameter name='unique-dst-node-Id' value='' />\r
+                    <parameter name='is-open-ended-link' value='false' />\r
+                    <parameter name='is-invalid-open-ended-link' value='false' />\r
+                </set>\r
+                <set>\r
+                    <parameter name='link.' value='`$network.link[$pidx].`' />\r
+                    <parameter name='unique-networkId' value='`$tmp.network-id`' />\r
+                </set>\r
+                <set>\r
+                    <parameter name='unique-linkId' value="`'networkId-' + $unique-networkId + '-linkId-' + $link.link-id`" />\r
+                    <parameter name='src-tpId' value="`'networkId-' + $unique-networkId + '-nodeId-' + $link.source.source-node + '-ltpId-' + $link.source.source-tp`" />\r
+                    <parameter name='unique-src-node-Id' value="`'networkId-' + $unique-networkId + '-nodeId-' + $link.source.source-node`" />\r
+                </set>\r
+                <switch test='`$link.destination.dest-node`'>\r
+                    <outcome value=''>\r
+                        <block>\r
+                            <set>\r
+                                <parameter name='is-open-ended-link' value='true' />\r
+                            </set>\r
+                            <set>\r
+                                <parameter name='tmp.aai.p-interface' value='' />\r
+                                <parameter name='tmp.aai.p-interface.inter-domain-plug-id' value='' />\r
+                            </set>\r
+                            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="p-interface"\r
+           key="pnf.pnf-name = $unique-src-node-Id\r
+               and p-interface.interface-name = $src-tpId"\r
+               local-only="false" \r
+               pfx="tmp.aai.p-interface" >\r
+                                <outcome value='success'>\r
+                                    <switch test='`$tmp.aai.p-interface.inter-domain-plug-id`'>\r
+                                        <outcome value=''>\r
+                                            <set>\r
+                                                <parameter name='is-open-ended-link' value='false' />\r
+                                                <parameter name='is-invalid-open-ended-link' value='true' />\r
+                                            </set>\r
+                                        </outcome>\r
+                                        <outcome value='Other'>\r
+                                            <set>\r
+                                                <parameter name='alt-unique-linkId' value="`$tmp.aai.p-interface.inter-domain-plug-id`" />\r
+                                                <!--<parameter name='alt-unique-linkId' value="`'networkId-' + $unique-networkId + '-linkId-' + $tmp.aai.p-interface.inter-domain-plug-id`" />-->\r
+                                            </set>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                </outcome>\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="`'An error occurred while querying pnf from AnAI with pnf-name = ' + $prop.l3vpn.pe1_id`" />\r
+                                    </return>\r
+                                </outcome>\r
+                                <outcome value='failure'>\r
+                                    <return status='failure'>\r
+                                        <parameter name='error-code' value='' />\r
+                                        <parameter name='error-message' value='' />\r
+                                    </return>\r
+                                </outcome>\r
+                            </get-resource>\r
+                        </block>\r
+                    </outcome>\r
+                    <outcome value='Other'>\r
+                        <set>\r
+                            <parameter name='dst-tpId' value="`'networkId-' + $unique-networkId + '-nodeId-' + $link.destination.dest-node + '-ltpId-' + $link.destination.dest-tp`" />\r
+                            <parameter name='unique-dst-node-Id' value="`'networkId-' + $unique-networkId + '-nodeId-' + $link.destination.dest-node`" />\r
+                            <parameter name='is-open-ended-link' value='false' />\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+                <switch test='`$is-invalid-open-ended-link`'>\r
+                    <outcome value='true'>\r
+                        <block></block>\r
+                    </outcome>\r
+                    <outcome value='false'>\r
+                        <switch test='`$is-open-ended-link`'>\r
+                            <outcome value='true'>\r
+                                <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="logical-link"\r
+           key="logical-link.link-name = $alt-unique-linkId"\r
+               local-only="false" \r
+               pfx="tmp.aai.logical-link" >\r
+                                    <outcome value='success'>\r
+                                        <block>\r
+                                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
+                                                <parameter name="file" value="/opt/onap/logMerge.txt" />\r
+                                                <parameter name="field1" value="__TIMESTAMP__" />\r
+                                                <parameter name="field2" value="altUniqueLinkId" />\r
+                                                <parameter name="field3" value="`$alt-unique-linkId`" />\r
+                                                <parameter name="field4" value="srcTpId" />\r
+                                                <parameter name="field5" value="`$src-tpId`" />\r
+                                                <parameter name="field6" value="relationship-value" />\r
+                                                <parameter name="field7" value='`$tmp.aai.logical-link.relationship-list.relationship[0].relationship-data[1].relationship-value`' />\r
+                                            </record>\r
+                                            <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='logical-link:relationship-list' \r
+      key='logical-link.link-name = $alt-unique-linkId' force="true" pfx="tmp.AnAI-data">\r
+                                                <!--<parameter name="relationship-list.relationship[0].related-to" value="p-interface" />-->\r
+                                                <!--<parameter name="relationship-list.relationship[0].related-link" value="`'/network/pnfs/pnf/' + $unique-src-node-Id + '/p-interfaces/p-interface/' + $src-tpId`" />-->\r
+                                                <!--<parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="p-interface.interface-name" />-->\r
+                                                <!--<parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$src-tpId`" />-->\r
+                                                <parameter name="relationship-list.relationship[0].related-to" value="p-interface" />\r
+                                                <parameter name="relationship-list.relationship[0].related-link" value="`'/network/pnfs/pnf/' + $unique-src-node-Id + '/p-interfaces/p-interface/' + $src-tpId`" />\r
+                                                <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="p-interface.interface-name" />\r
+                                                <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$src-tpId`" />\r
+                                                <outcome value='success'>\r
+                                                    <block>\r
+                                                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
+                                                            <parameter name="file" value="/opt/onap/logMergeSuccess.txt" />\r
+                                                            <parameter name="field1" value="__TIMESTAMP__" />\r
+                                                            <parameter name="field2" value="altUniqueLinkId" />\r
+                                                            <parameter name="field3" value="`$alt-unique-linkId`" />\r
+                                                            <parameter name="field4" value="srcTpId" />\r
+                                                            <parameter name="field5" value="`$src-tpId`" />\r
+                                                            <parameter name="field6" value="relationship-value" />\r
+                                                            <parameter name="field7" value='`$tmp.aai.logical-link.relationship-list.relationship[0].relationship-data[1].relationship-value`' />\r
+                                                        </record>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                                <outcome value='failure'>\r
+                                                    <block>\r
+                                                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
+                                                            <parameter name="file" value="/opt/onap/logMergeFailure.txt" />\r
+                                                            <parameter name="field1" value="__TIMESTAMP__" />\r
+                                                            <parameter name="field2" value="altUniqueLinkId" />\r
+                                                            <parameter name="field3" value="`$alt-unique-linkId`" />\r
+                                                            <parameter name="field4" value="srcTpId" />\r
+                                                            <parameter name="field5" value="`$src-tpId`" />\r
+                                                            <parameter name="field6" value="relationship-value" />\r
+                                                            <parameter name="field7" value='`$tmp.aai.logical-link.relationship-list.relationship[0].relationship-data[1].relationship-value`' />\r
+                                                        </record>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                            </save>\r
+                                            <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='te-link-attribute' \r
+      key='te-link-attribute.id = $link.te.te-link-attributes.name' >\r
+                                                <parameter name='id' value='`$link.te.te-link-attributes.name`' />\r
+                                                <parameter name='access-type' value='`$link.te.te-link-attributes.access-type`' />\r
+                                            </save>\r
+                                            <switch test='`$link.te.te-link-attributes.label-restriction_length`'>\r
+                                                <outcome value=''>\r
+                                                    <block></block>\r
+                                                </outcome>\r
+                                                <outcome value='0'>\r
+                                                    <block></block>\r
+                                                </outcome>\r
+                                                <outcome value='Other'>\r
+                                                    <for index='tidx' start='0' end='`$link.te.te-link-attributes.label-restriction_length`' >\r
+                                                        <set>\r
+                                                            <parameter name='label-restriction.' value='' />\r
+                                                            <parameter name='unique-lrId' value="" />\r
+                                                        </set>\r
+                                                        <set>\r
+                                                            <parameter name='label-restriction.' value='`$link.te.te-link-attributes.label-restriction[$tidx].`' />\r
+                                                        </set>\r
+                                                        <set>\r
+                                                            <parameter name='unique-lrId' value="`$alt-unique-linkId + '-lrId-' + $label-restriction.index`" />\r
+                                                        </set>\r
+                                                        <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='label-restriction' \r
+      key='label-restriction.id = $unique-lrId' >\r
+                                                            <parameter name='id' value='`$unique-lrId`' />\r
+                                                            <parameter name='label-start' value='`$label-restriction.label-start.te-label-tpn`' />\r
+                                                            <parameter name='label-end' value='`$label-restriction.label-end.te-label-tpn`' />\r
+                                                            <parameter name='range-bitmap' value='`$label-restriction.range-bitmap`' />\r
+                                                            <parameter name='label-step' value='`$label-restriction.label-step`' />\r
+                                                            <parameter name='inclusive-exclusive' value='`$label-restriction.inclusive-exclusive`' />\r
+                                                            <outcome value='success'>\r
+                                                                <block></block>\r
+                                                            </outcome>\r
+                                                            <outcome value='failure'>\r
+                                                                <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='label-restriction' \r
+      key='label-restriction.id = $unique-lrId' >\r
+                                                                    <parameter name='id' value='`$unique-lrId`' />\r
+                                                                    <parameter name='label-start' value='`$label-restriction.label-start.te-label-tpn`' />\r
+                                                                    <parameter name='label-end' value='`$label-restriction.label-end.te-label-tpn`' />\r
+                                                                    <parameter name='range-bitmap' value='`$label-restriction.range-bitmap`' />\r
+                                                                    <parameter name='label-step' value='`$label-restriction.label-step`' />\r
+                                                                    <parameter name='inclusive-exclusive' value='`$label-restriction.inclusive-exclusive`' />\r
+                                                                </save>\r
+                                                            </outcome>\r
+                                                        </save>\r
+                                                        <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='te-link-attribute:relationship-list' \r
+      key='te-link-attribute.id = $link.te.te-link-attributes.name' force="true" pfx="tmp.AnAI-data">\r
+                                                            <parameter name="relationship-list.relationship[0].related-to" value="logical-link" />\r
+                                                            <parameter name="relationship-list.relationship[0].related-link" value="`'/network/logical-links/logical-link/' + $alt-unique-linkId`" />\r
+                                                            <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="logical-link.link-name" />\r
+                                                            <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$alt-unique-linkId`" />\r
+                                                        </save>\r
+                                                        <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='te-link-attribute:relationship-list' \r
+      key='te-link-attribute.id = $link.te.te-link-attributes.name' force="true" pfx="tmp.AnAI-data">\r
+                                                            <parameter name="relationship-list.relationship[0].related-to" value="label-restriction" />\r
+                                                            <parameter name="relationship-list.relationship[0].related-link" value="`'/network/label-restrictions/label-restriction/' + $unique-lrId`" />\r
+                                                            <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="label-restriction.id" />\r
+                                                            <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$unique-lrId`" />\r
+                                                        </save>\r
+                                                    </for>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                        </block>\r
+                                    </outcome>\r
+                                    <outcome value='not-found'>\r
+                                        <block atomic='true'>\r
+                                            <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='logical-link' \r
+      key='logical-link.link-name = $alt-unique-linkId' >\r
+                                                <parameter name='link-name' value='`$alt-unique-linkId`' />\r
+                                                <parameter name='link-id' value='`$link.link-id`' />\r
+                                                <parameter name='link-type' value='`$link.te.te-link-attributes.access-type`' />\r
+                                                <parameter name='link-role' value='cross-domain' />\r
+                                            </save>\r
+                                            <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='logical-link:relationship-list' \r
+      key='logical-link.link-name = $alt-unique-linkId' force="true" pfx="tmp.AnAI-data">\r
+                                                <parameter name="relationship-list.relationship[0].related-to" value="p-interface" />\r
+                                                <parameter name="relationship-list.relationship[0].related-link" value="`'/network/pnfs/pnf/' + $unique-src-node-Id + '/p-interfaces/p-interface/' + $src-tpId`" />\r
+                                                <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="p-interface.interface-name" />\r
+                                                <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$src-tpId`" />\r
+                                            </save>\r
+                                            <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='te-link-attribute' \r
+      key='te-link-attribute.id = $link.te.te-link-attributes.name' >\r
+                                                <parameter name='id' value='`$link.te.te-link-attributes.name`' />\r
+                                                <parameter name='access-type' value='`$link.te.te-link-attributes.access-type`' />\r
+                                            </save>\r
+                                            <switch test='`$link.te.te-link-attributes.label-restriction_length`'>\r
+                                                <outcome value=''>\r
+                                                    <block></block>\r
+                                                </outcome>\r
+                                                <outcome value='0'>\r
+                                                    <block></block>\r
+                                                </outcome>\r
+                                                <outcome value='Other'>\r
+                                                    <for index='tidx' start='0' end='`$link.te.te-link-attributes.label-restriction_length`' >\r
+                                                        <set>\r
+                                                            <parameter name='label-restriction.' value='' />\r
+                                                            <parameter name='unique-lrId' value="" />\r
+                                                        </set>\r
+                                                        <set>\r
+                                                            <parameter name='label-restriction.' value='`$link.te.te-link-attributes.label-restriction[$tidx].`' />\r
+                                                        </set>\r
+                                                        <set>\r
+                                                            <parameter name='unique-lrId' value="`$alt-unique-linkId + '-lrId-' + $label-restriction.index`" />\r
+                                                        </set>\r
+                                                        <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='label-restriction' \r
+      key='label-restriction.id = $unique-lrId' >\r
+                                                            <parameter name='id' value='`$unique-lrId`' />\r
+                                                            <parameter name='label-start' value='`$label-restriction.label-start.te-label-tpn`' />\r
+                                                            <parameter name='label-end' value='`$label-restriction.label-end.te-label-tpn`' />\r
+                                                            <parameter name='range-bitmap' value='`$label-restriction.range-bitmap`' />\r
+                                                            <parameter name='label-step' value='`$label-restriction.label-step`' />\r
+                                                            <parameter name='inclusive-exclusive' value='`$label-restriction.inclusive-exclusive`' />\r
+                                                            <outcome value='success'>\r
+                                                                <block></block>\r
+                                                            </outcome>\r
+                                                            <outcome value='failure'>\r
+                                                                <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='label-restriction' \r
+      key='logical-link.link-name = $alt-unique-linkId\r
+      AND label-restriction.id = $unique-lrId' >\r
+                                                                    <parameter name='id' value='`$unique-lrId`' />\r
+                                                                    <parameter name='label-start' value='`$label-restriction.label-start`' />\r
+                                                                    <parameter name='label-end' value='`$label-restriction.label-end`' />\r
+                                                                    <parameter name='range-bitmap' value='`$label-restriction.range-bitmap`' />\r
+                                                                    <parameter name='label-step' value='`$label-restriction.label-step`' />\r
+                                                                    <parameter name='inclusive-exclusive' value='`$label-restriction.inclusive-exclusive`' />\r
+                                                                </save>\r
+                                                            </outcome>\r
+                                                        </save>\r
+                                                        <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='te-link-attribute:relationship-list' \r
+      key='te-link-attribute.id = $link.te.te-link-attributes.name' force="true" pfx="tmp.AnAI-data">\r
+                                                            <parameter name="relationship-list.relationship[0].related-to" value="logical-link" />\r
+                                                            <parameter name="relationship-list.relationship[0].related-link" value="`'/network/logical-links/logical-link/' + $alt-unique-linkId`" />\r
+                                                            <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="logical-link.link-name" />\r
+                                                            <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$alt-unique-linkId`" />\r
+                                                        </save>\r
+                                                        <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='te-link-attribute:relationship-list' \r
+      key='te-link-attribute.id = $link.te.te-link-attributes.name' force="true" pfx="tmp.AnAI-data">\r
+                                                            <parameter name="relationship-list.relationship[0].related-to" value="label-restriction" />\r
+                                                            <parameter name="relationship-list.relationship[0].related-link" value="`'/network/label-restrictions/label-restriction/' + $unique-lrId`" />\r
+                                                            <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="label-restriction.id" />\r
+                                                            <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$unique-lrId`" />\r
+                                                        </save>\r
+                                                    </for>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </get-resource>\r
+                            </outcome>\r
+                            <outcome value='false'>\r
+                                <block atomic='true'>\r
+                                    <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='logical-link' \r
+      key='logical-link.link-name = $unique-linkId' >\r
+                                        <parameter name='link-name' value='`$unique-linkId`' />\r
+                                        <parameter name='link-id' value='`$link.link-id`' />\r
+                                        <parameter name='link-type' value='`$link.te.te-link-attributes.access-type`' />\r
+                                    </save>\r
+                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
+                                        <parameter name="file" value="/opt/onap/logTopologyDiscovery.txt" />\r
+                                        <parameter name="field1" value="__TIMESTAMP__" />\r
+                                        <parameter name="field2" value="uniqueLinkId" />\r
+                                        <parameter name="field3" value="`$unique-linkId`" />\r
+                                        <parameter name="field4" value="srcTpId" />\r
+                                        <parameter name="field5" value="`$src-tpId`" />\r
+                                        <parameter name="field6" value="dstTpId" />\r
+                                        <parameter name="field7" value="`$dst-tpId`" />\r
+                                    </record>\r
+                                    <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='logical-link:relationship-list' \r
+      key='logical-link.link-name = $unique-linkId' force="true" pfx="tmp.AnAI-data">\r
+                                        <parameter name="relationship-list.relationship[0].related-to" value="p-interface" />\r
+                                        <parameter name="relationship-list.relationship[0].related-link" value="`'/network/pnfs/pnf/' + $unique-src-node-Id + '/p-interfaces/p-interface/' + $src-tpId`" />\r
+                                        <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="p-interface.interface-name" />\r
+                                        <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$src-tpId`" />\r
+                                        <parameter name="relationship-list.relationship[1].related-to" value="p-interface" />\r
+                                        <parameter name="relationship-list.relationship[1].related-link" value="`'/network/pnfs/pnf/' + $unique-dst-node-Id + '/p-interfaces/p-interface/' + $dst-tpId`" />\r
+                                        <parameter name="relationship-list.relationship[1].relationship-data[0].relationship-key" value="p-interface.interface-name" />\r
+                                        <parameter name="relationship-list.relationship[1].relationship-data[0].relationship-value" value="`$dst-tpId`" />\r
+                                    </save>\r
+                                    <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='te-link-attribute' \r
+      key='te-link-attribute.id = $link.te.te-link-attributes.name' >\r
+                                        <parameter name='id' value='`$link.te.te-link-attributes.name`' />\r
+                                        <parameter name='access-type' value='`$link.te.te-link-attributes.access-type`' />\r
+                                    </save>\r
+                                    <switch test='`$link.te.te-link-attributes.label-restriction_length`'>\r
+                                        <outcome value=''>\r
+                                            <block></block>\r
+                                        </outcome>\r
+                                        <outcome value='0'>\r
+                                            <block></block>\r
+                                        </outcome>\r
+                                        <outcome value='Other'>\r
+                                            <for index='tidx' start='0' end='`$link.te.te-link-attributes.label-restriction_length`' >\r
+                                                <set>\r
+                                                    <parameter name='label-restriction.' value='' />\r
+                                                    <parameter name='unique-lrId' value="" />\r
+                                                </set>\r
+                                                <set>\r
+                                                    <parameter name='label-restriction.' value='`$link.te.te-link-attributes.label-restriction[$tidx].`' />\r
+                                                </set>\r
+                                                <set>\r
+                                                    <parameter name='unique-lrId' value="`$unique-linkId + '-lrId-' + $label-restriction.index`" />\r
+                                                </set>\r
+                                                <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='label-restriction' \r
+      key='label-restriction.id = $unique-lrId' >\r
+                                                    <parameter name='id' value='`$unique-lrId`' />\r
+                                                    <parameter name='label-start' value='`$label-restriction.label-start.te-label-tpn`' />\r
+                                                    <parameter name='label-end' value='`$label-restriction.label-end.te-label-tpn`' />\r
+                                                    <parameter name='range-bitmap' value='`$label-restriction.range-bitmap`' />\r
+                                                    <parameter name='label-step' value='`$label-restriction.label-step`' />\r
+                                                    <parameter name='inclusive-exclusive' value='`$label-restriction.inclusive-exclusive`' />\r
+                                                    <outcome value='success'>\r
+                                                        <block></block>\r
+                                                    </outcome>\r
+                                                    <outcome value='failure'>\r
+                                                        <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='label-restriction' \r
+      key='logical-link.link-name = $unique-linkId\r
+      AND label-restriction.id = $unique-lrId' >\r
+                                                            <parameter name='id' value='`$unique-lrId`' />\r
+                                                            <parameter name='label-start' value='`$label-restriction.label-start`' />\r
+                                                            <parameter name='label-end' value='`$label-restriction.label-end`' />\r
+                                                            <parameter name='range-bitmap' value='`$label-restriction.range-bitmap`' />\r
+                                                            <parameter name='label-step' value='`$label-restriction.label-step`' />\r
+                                                            <parameter name='inclusive-exclusive' value='`$label-restriction.inclusive-exclusive`' />\r
+                                                        </save>\r
+                                                    </outcome>\r
+                                                </save>\r
+                                                <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='te-link-attribute:relationship-list' \r
+      key='te-link-attribute.id = $link.te.te-link-attributes.name' force="true" pfx="tmp.AnAI-data">\r
+                                                    <parameter name="relationship-list.relationship[0].related-to" value="logical-link" />\r
+                                                    <parameter name="relationship-list.relationship[0].related-link" value="`'/network/logical-links/logical-link/' + $unique-linkId`" />\r
+                                                    <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="logical-link.link-name" />\r
+                                                    <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$unique-linkId`" />\r
+                                                </save>\r
+                                                <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='te-link-attribute:relationship-list' \r
+      key='te-link-attribute.id = $link.te.te-link-attributes.name' force="true" pfx="tmp.AnAI-data">\r
+                                                    <parameter name="relationship-list.relationship[0].related-to" value="label-restriction" />\r
+                                                    <parameter name="relationship-list.relationship[0].related-link" value="`'/network/label-restrictions/label-restriction/' + $unique-lrId`" />\r
+                                                    <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="label-restriction.id" />\r
+                                                    <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$unique-lrId`" />\r
+                                                </save>\r
+                                            </for>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+        </block>\r
+    </method>\r
 </service-logic>
\ No newline at end of file