Chore: Add gerrit maven verify GHA workflow
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / GENERIC-RESOURCE-API_create-l3-subnet.xml
1 <service-logic\r
2     xmlns='http://www.onap.org/sdnc/svclogic'\r
3     xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>\r
4     <method rpc='create-l3-subnet' mode='sync'>\r
5         <block atomic="true">\r
6             <set>\r
7                 <parameter name='subnet-idx' value='0' />\r
8             </set>\r
9             <switch test='`$v4.entity-id`'>\r
10                 <outcome value=''>\r
11                     <block atomic="true">\r
12                         <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
13                             <parameter name="logger" value="message-log"/>\r
14                             <parameter name="field1" value="__TIMESTAMP__"/>\r
15                             <parameter name="field2" value="GENERIC-RESOURCE-API.create-l3-subnet:REQID"/>\r
16                             <parameter name="field3" value="`$network-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
17                             <parameter name="field4" value="v4.entity-id"/>\r
18                             <parameter name="field5" value="null"/>\r
19                         </record>\r
20                     </block>\r
21                 </outcome>\r
22                 <outcome value='Other'>\r
23                     <block atomic="true">\r
24                         <switch test='`$network-model.ipv4-dhcp-enabled`'>\r
25                             <outcome value='Y'>\r
26                                 <block atomic="true">\r
27                                     <set>\r
28                                         <parameter name='tmp.ipv4dhcp-enabled' value='true' />\r
29                                     </set>\r
30                                 </block>\r
31                             </outcome>\r
32                             <outcome value='N'>\r
33                                 <block atomic="true">\r
34                                     <set>\r
35                                         <parameter name='tmp.ipv4dhcp-enabled' value='false' />\r
36                                     </set>\r
37                                 </block>\r
38                             </outcome>\r
39                         </switch>\r
40                         <execute plugin="com.att.sdnctl.sli.plugin.ipAddressTools.IpAddressTool" method="getSubnetAddresses">\r
41                             <parameter name="ipAddress" value="`$v4.ip-prefix`" />\r
42                             <parameter name="ipVersion" value="4" />\r
43                             <parameter name="subnet" value="`$v4.mask`" />\r
44                             <parameter name="dhcp-enabled" value="`$tmp.ipv4dhcp-enabled`" />\r
45                             <parameter name="ctxGateway" value="tmp.return.generate.gateway-address" />\r
46                             <parameter name="ctxDhcpStart" value="tmp.return.generate.dhcp-start-address" />\r
47                             <parameter name="ctxDhcpEnd" value="tmp.return.generate.dhcp-end-address" />\r
48                             <outcome value='failure'>\r
49                                 <return status='failure'>\r
50                                     <parameter name='ack-final' value='Y'/>\r
51                                     <parameter name="error-code" value="500" />\r
52                                     <parameter name="error-message" value="Failed to generate ipv4 addresses using IpAddressTools" />\r
53                                 </return>\r
54                             </outcome>\r
55                         </execute>\r
56                         <set>\r
57                             <parameter name='tmp.l3-network.subnet[$subnet-idx].orchestration-status' value='PendingCreate' />\r
58                             <parameter name='tmp.l3-network.subnet[$subnet-idx].subnet-id' value='`$v4.entity-id`' />\r
59                             <parameter name='tmp.l3-network.subnet[$subnet-idx].subnet-name' value="`$tmp.l3-network.network-name + '_S' + $subnet-idx`" />\r
60                             <parameter name='tmp.l3-network.subnet[$subnet-idx].gateway-address' value='`$tmp.return.generate.gateway-address`' />\r
61                             <parameter name='tmp.l3-network.subnet[$subnet-idx].network-start-address' value='`$v4.ip-prefix`' />\r
62                             <parameter name='tmp.l3-network.subnet[$subnet-idx].cidr-mask' value='`$v4.mask`' />\r
63                             <parameter name='tmp.l3-network.subnet[$subnet-idx].ip-version' value='`$network-model.ipv4-ip-version`' />\r
64                         </set>\r
65                         <switch test='`$network-model.ipv4-dhcp-enabled`'>\r
66                             <outcome value='Y'>\r
67                                 <block atomic="true">\r
68                                     <set>\r
69                                         <parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-enabled' value='true' />\r
70                                         <parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-start' value='`$tmp.return.generate.dhcp-start-address`' />\r
71                                         <parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-end' value='`$tmp.return.generate.dhcp-end-address`' />\r
72                                     </set>\r
73                                 </block>\r
74                             </outcome>\r
75                             <outcome value='N'>\r
76                                 <block atomic="true">\r
77                                     <set>\r
78                                         <parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-enabled' value='false' />\r
79                                         <parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-start' value='' />\r
80                                         <parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-end' value='' />\r
81                                     </set>\r
82                                 </block>\r
83                             </outcome>\r
84                         </switch>\r
85                         <set>\r
86                             <parameter name='subnet-idx' value='`$subnet-idx+1`' />\r
87                         </set>\r
88                         <set>\r
89                             <parameter name='tmp.l3-network.subnet_length' value='`$subnet-idx`' />\r
90                         </set>\r
91                     </block>\r
92                 </outcome>\r
93             </switch>\r
94             <switch test='`$v6.entity-id`'>\r
95                 <outcome value=''>\r
96                     <block atomic="true">\r
97                         <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
98                             <parameter name="logger" value="message-log"/>\r
99                             <parameter name="field1" value="__TIMESTAMP__"/>\r
100                             <parameter name="field2" value="GENERIC-RESOURCE-API.create-l3-subnet:REQID"/>\r
101                             <parameter name="field3" value="`$network-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
102                             <parameter name="field4" value="v6.entity-id"/>\r
103                             <parameter name="field5" value="null"/>\r
104                         </record>\r
105                     </block>\r
106                 </outcome>\r
107                 <outcome value='Other'>\r
108                     <block atomic="true">\r
109                         <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
110                             <parameter name="logger" value="message-log"/>\r
111                             <parameter name="field1" value="__TIMESTAMP__"/>\r
112                             <parameter name="field2" value="GENERIC-RESOURCE-API.create-l3-subnet:REQID"/>\r
113                             <parameter name="field3" value="`$network-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
114                             <parameter name="field4" value="v6.entity-id"/>\r
115                             <parameter name="field5" value="`$v6.entity-id`"/>\r
116                         </record>\r
117                         <switch test='`$network-model.ipv6-dhcp-enabled`'>\r
118                             <outcome value='Y'>\r
119                                 <block atomic="true">\r
120                                     <set>\r
121                                         <parameter name='tmp.ipv6dhcp-enabled' value='true' />\r
122                                     </set>\r
123                                 </block>\r
124                             </outcome>\r
125                             <outcome value='N'>\r
126                                 <block atomic="true">\r
127                                     <set>\r
128                                         <parameter name='tmp.ipv6dhcp-enabled' value='false' />\r
129                                     </set>\r
130                                 </block>\r
131                             </outcome>\r
132                         </switch>\r
133                         <execute plugin="com.att.sdnctl.sli.plugin.ipAddressTools.IpAddressTool" method="getSubnetAddresses">\r
134                             <parameter name="ipAddress" value="`$v6.ip-prefix`" />\r
135                             <parameter name="ipVersion" value="6" />\r
136                             <parameter name="subnet" value="`$v6.mask`" />\r
137                             <parameter name="dhcp-enabled" value="`$tmp.ipv6dhcp-enabled`" />\r
138                             <parameter name="ctxGateway" value="tmp.return.generate.gateway-address" />\r
139                             <parameter name="ctxDhcpStart" value="tmp.return.generate.dhcp-start-address" />\r
140                             <parameter name="ctxDhcpEnd" value="tmp.return.generate.dhcp-end-address" />\r
141                             <outcome value='failure'>\r
142                                 <return status='failure'>\r
143                                     <parameter name='ack-final' value='Y'/>\r
144                                     <parameter name="error-code" value="500" />\r
145                                     <parameter name="error-message" value="Failed to generate ipv6 addresses using IpAddressTools" />\r
146                                 </return>\r
147                             </outcome>\r
148                         </execute>\r
149                         <set>\r
150                             <parameter name='tmp.l3-network.subnet[$subnet-idx].orchestration-status' value='PendingCreate' />\r
151                             <parameter name='tmp.l3-network.subnet[$subnet-idx].subnet-id' value='`$v6.entity-id`' />\r
152                             <parameter name='tmp.l3-network.subnet[$subnet-idx].subnet-name' value="`$tmp.l3-network.network-name + '_S' + $subnet-idx`" />\r
153                             <parameter name='tmp.l3-network.subnet[$subnet-idx].gateway-address' value='`$tmp.return.generate.gateway-address`' />\r
154                             <parameter name='tmp.l3-network.subnet[$subnet-idx].network-start-address' value='`$v6.ip-prefix`' />\r
155                             <parameter name='tmp.l3-network.subnet[$subnet-idx].cidr-mask' value='`$v6.mask`' />\r
156                             <parameter name='tmp.l3-network.subnet[$subnet-idx].ip-version' value='`$network-model.ipv6-ip-version`' />\r
157                         </set>\r
158                         <switch test='`$network-model.ipv6-dhcp-enabled`'>\r
159                             <outcome value='Y'>\r
160                                 <block atomic="true">\r
161                                     <set>\r
162                                         <parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-enabled' value='true' />\r
163                                         <parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-start' value='`$tmp.return.generate.dhcp-start-address`' />\r
164                                         <parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-end' value='`$tmp.return.generate.dhcp-end-address`' />\r
165                                     </set>\r
166                                 </block>\r
167                             </outcome>\r
168                             <outcome value='N'>\r
169                                 <block atomic="true">\r
170                                     <set>\r
171                                         <parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-enabled' value='false' />\r
172                                         <parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-start' value='' />\r
173                                         <parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-end' value='' />\r
174                                     </set>\r
175                                 </block>\r
176                             </outcome>\r
177                         </switch>\r
178                         <set>\r
179                             <parameter name='subnet-idx' value='`$subnet-idx+1`' />\r
180                         </set>\r
181                         <set>\r
182                             <parameter name='tmp.l3-network.subnet_length' value='`$subnet-idx`' />\r
183                         </set>\r
184                     </block>\r
185                 </outcome>\r
186             </switch>\r
187             <return status='success'>\r
188                 <parameter name='' value='' />\r
189             </return>\r
190         </block>\r
191     </method>\r
192 </service-logic>