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
1 <service-logic xsi:schemaLocation="http://www.onap.org/sdnc/svclogic ./svclogic.xsd" module="DataChange" version="${project.version}">
2     <method rpc="update-network-links-to-aai" mode="sync">
3         <block atomic="true">
4             <for index="pidx" start="0" end="`$network.link_length`">
5                 <set>
6                     <parameter name="link." value="`$network.link[$pidx].`"/>
7                     <parameter name="unique-networkId" value="`$tmp.network-id`"/>
8                 </set>
9                 <set>
10                     <parameter name="unique-linkId" value="`'networkId-' + $unique-networkId + '-linkId-' + $link.link-id`"/>
11                     <parameter name="src-tpId" value="`'networkId-' + $unique-networkId + '-nodeId-' + $link.source.source-node + '-ltpId-' + $link.source.source-tp`"/>
12                     <parameter name="unique-src-node-Id" value="`'networkId-' + $unique-networkId + '-nodeId-' + $link.source.source-node`"/>
13                 </set>
14                 <switch test="`$link.destination`">
15                     <outcome value="">
16                         <block>
17                             <set>
18                                 <parameter name="is-open-ended-link" value="true"/>
19                             </set>
20                             <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">
21                                 <outcome value="success">
22                                     <set>
23                                         <parameter name="alt-unique-linkId" value="`$tmp.aai.p-interface.inter-domain-plug-id`"/>
24                                     </set>
25                                 </outcome>
26                                 <outcome value="not-found">
27                                     <return status="failure">
28                                         <parameter name="ack-final" value="Y"/>
29                                         <parameter name="error-code" value="500"/>
30                                         <parameter name="error-message" value="`'An error occurred while querying pnf from AnAI with pnf-name = ' + $prop.l3vpn.pe1_id`"/>
31                                     </return>
32                                 </outcome>
33                                 <outcome value="failure">
34                                     <return status="failure">
35                                         <parameter name="error-code" value=""/>
36                                         <parameter name="error-message" value=""/>
37                                     </return>
38                                 </outcome>
39                             </get-resource>
40                         </block>
41                     </outcome>
42                     <outcome value="Other">
43                         <set>
44                             <parameter name="dst-tpId" value="`'networkId-' + $unique-networkId + '-nodeId-' + $link.destination.dest-node + '-ltpId-' + $link.destination.dest-tp`"/>
45                             <parameter name="unique-dst-node-Id" value="`'networkId-' + $unique-networkId + '-nodeId-' + $link.destination.dest-node`"/>
46                             <parameter name="is-open-ended-link" value="false"/>
47                         </set>
48                     </outcome>
49                 </switch>
50                 <switch test="`$is-open-ended-link`">
51                     <outcome value="true">
52                         <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">
53                             <outcome value="success">
54                                 <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">
55                                     <!--
56                                     <parameter name="relationship-list.relationship[0].related-to" value="p-interface" />
57                                     -->
58                                     <!--
59                                     <parameter name="relationship-list.relationship[0].related-link" value="`'/network/pnfs/pnf/' + $unique-src-node-Id + '/p-interfaces/p-interface/' + $src-tpId`" />
60                                     -->
61                                     <!--
62                                     <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="p-interface.interface-name" />
63                                     -->
64                                     <!--
65                                     <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$src-tpId`" />
66                                     -->
67                                     <parameter name="relationship-list.relationship[1].related-to" value="p-interface"/>
68                                     <parameter name="relationship-list.relationship[1].related-link" value="`'/network/pnfs/pnf/' + $unique-src-node-Id + '/p-interfaces/p-interface/' + $src-tpId`"/>
69                                     <parameter name="relationship-list.relationship[1].relationship-data[0].relationship-key" value="p-interface.interface-name"/>
70                                     <parameter name="relationship-list.relationship[1].relationship-data[0].relationship-value" value="`$src-tpId`"/>
71                                 </update>
72                             </outcome>
73                             <outcome value="not-found">
74                                 <block atomic="true">
75                                     <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="logical-link" key="logical-link.link-name = $alt-unique-linkId">
76                                         <parameter name="link-name" value="`$alt-unique-linkId`"/>
77                                         <parameter name="link-id" value="`$link.link-id`"/>
78                                         <parameter name="link-type" value="`$link.te.te-link-attributes.access-type`"/>
79                                     </save>
80                                     <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">
81                                         <parameter name="relationship-list.relationship[0].related-to" value="p-interface"/>
82                                         <parameter name="relationship-list.relationship[0].related-link" value="`'/network/pnfs/pnf/' + $unique-src-node-Id + '/p-interfaces/p-interface/' + $src-tpId`"/>
83                                         <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="p-interface.interface-name"/>
84                                         <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$src-tpId`"/>
85                                     </save>
86                                     <switch test="`$link.te.te-link-attributes.label-restriction`">
87                                         <outcome value="">
88                                             <block/>
89                                         </outcome>
90                                         <outcome value="Other">
91                                             <for index="tidx" start="0" end="`$link.te.te-link-attributes.label-restriction_length`">
92                                                 <set>
93                                                     <parameter name="label-restriction." value="`$link.te.te-link-attributes.label-restriction[$tidx].`"/>
94                                                     <parameter name="unique-lrId" value="`$alt-unique-linkId + '-lrId-' + $label-restriction.index`"/>
95                                                 </set>
96                                                 <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">
97                                                     <parameter name="id" value="`$unique-lrId`"/>
98                                                     <parameter name="label-start" value="`$label-restriction.label-start`"/>
99                                                     <parameter name="label-end" value="`$label-restriction.label-end`"/>
100                                                     <parameter name="range-bitmap" value="`$label-restriction.range-bitmap`"/>
101                                                     <parameter name="label-step" value="`$label-restriction.label-step`"/>
102                                                     <parameter name="inclusive-exclusive" value="`$label-restriction.inclusive-exclusive`"/>
103                                                     <outcome value="success">
104                                                         <block/>
105                                                     </outcome>
106                                                     <outcome value="failure">
107                                                         <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">
108                                                             <parameter name="id" value="`$unique-lrId`"/>
109                                                             <parameter name="label-start" value="`$label-restriction.label-start`"/>
110                                                             <parameter name="label-end" value="`$label-restriction.label-end`"/>
111                                                             <parameter name="range-bitmap" value="`$label-restriction.range-bitmap`"/>
112                                                             <parameter name="label-step" value="`$label-restriction.label-step`"/>
113                                                             <parameter name="inclusive-exclusive" value="`$label-restriction.inclusive-exclusive`"/>
114                                                         </update>
115                                                     </outcome>
116                                                 </save>
117                                                 <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">
118                                                     <parameter name="relationship-list.relationship[$tidx].related-to" value="label-restriction"/>
119                                                     <parameter name="relationship-list.relationship[$tidx].related-link" value="`'/network/label-restrictions/label-restriction/' + $unique-lrId`"/>
120                                                     <parameter name="relationship-list.relationship[$tidx].relationship-data[0].relationship-key" value="label-restriction.id"/>
121                                                     <parameter name="relationship-list.relationship[$tidx].relationship-data[0].relationship-value" value="`$unique-lrId`"/>
122                                                 </save>
123                                             </for>
124                                         </outcome>
125                                     </switch>
126                                 </block>
127                             </outcome>
128                         </get-resource>
129                     </outcome>
130                     <outcome value="false">
131                         <block atomic="true">
132                             <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="logical-link" key="logical-link.link-name = $unique-linkId">
133                                 <parameter name="link-name" value="`$unique-linkId`"/>
134                                 <parameter name="link-id" value="`$link.link-id`"/>
135                                 <parameter name="link-type" value="`$link.te.te-link-attributes.access-type`"/>
136                             </save>
137                             <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">
138                                 <parameter name="relationship-list.relationship[0].related-to" value="p-interface"/>
139                                 <parameter name="relationship-list.relationship[0].related-link" value="`'/network/pnfs/pnf/' + $unique-src-node-Id + '/p-interfaces/p-interface/' + $src-tpId`"/>
140                                 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="p-interface.interface-name"/>
141                                 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$src-tpId`"/>
142                                 <parameter name="relationship-list.relationship[1].related-to" value="p-interface"/>
143                                 <parameter name="relationship-list.relationship[1].related-link" value="`'/network/pnfs/pnf/' + $unique-dst-node-Id + '/p-interfaces/p-interface/' + $dst-tpId`"/>
144                                 <parameter name="relationship-list.relationship[1].relationship-data[0].relationship-key" value="p-interface.interface-name"/>
145                                 <parameter name="relationship-list.relationship[1].relationship-data[0].relationship-value" value="`$dst-tpId`"/>
146                             </save>
147                             <switch test="`$link.te.te-link-attributes.label-restriction`">
148                                 <outcome value="">
149                                     <block/>
150                                 </outcome>
151                                 <outcome value="Other">
152                                     <for index="tidx" start="0" end="`$link.te.te-link-attributes.label-restriction_length`">
153                                         <set>
154                                             <parameter name="label-restriction." value="`$link.te.te-link-attributes.label-restriction[$tidx].`"/>
155                                             <parameter name="unique-lrId" value="`$unique-linkId + '-lrId-' + $label-restriction.index`"/>
156                                         </set>
157                                         <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">
158                                             <parameter name="id" value="`$unique-lrId`"/>
159                                             <parameter name="label-start" value="`$label-restriction.label-start`"/>
160                                             <parameter name="label-end" value="`$label-restriction.label-end`"/>
161                                             <parameter name="range-bitmap" value="`$label-restriction.range-bitmap`"/>
162                                             <parameter name="label-step" value="`$label-restriction.label-step`"/>
163                                             <parameter name="inclusive-exclusive" value="`$label-restriction.inclusive-exclusive`"/>
164                                             <outcome value="success">
165                                                 <block/>
166                                             </outcome>
167                                             <outcome value="failure">
168                                                 <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">
169                                                     <parameter name="id" value="`$unique-lrId`"/>
170                                                     <parameter name="label-start" value="`$label-restriction.label-start`"/>
171                                                     <parameter name="label-end" value="`$label-restriction.label-end`"/>
172                                                     <parameter name="range-bitmap" value="`$label-restriction.range-bitmap`"/>
173                                                     <parameter name="label-step" value="`$label-restriction.label-step`"/>
174                                                     <parameter name="inclusive-exclusive" value="`$label-restriction.inclusive-exclusive`"/>
175                                                 </update>
176                                             </outcome>
177                                         </save>
178                                         <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">
179                                             <parameter name="relationship-list.relationship[$tidx].related-to" value="label-restriction"/>
180                                             <parameter name="relationship-list.relationship[$tidx].related-link" value="`'/network/label-restrictions/label-restriction/' + $unique-lrId`"/>
181                                             <parameter name="relationship-list.relationship[$tidx].relationship-data[0].relationship-key" value="label-restriction.id"/>
182                                             <parameter name="relationship-list.relationship[$tidx].relationship-data[0].relationship-value" value="`$unique-lrId`"/>
183                                         </save>
184                                     </for>
185                                 </outcome>
186                             </switch>
187                         </block>
188                     </outcome>
189                 </switch>
190             </for>
191         </block>
192     </method>
193 </service-logic>