15648b486b5946e006ba07c9916a6ec9f13c6009
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / GENERIC-RESOURCE-API_self-serve-eipam-create-pool.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='self-serve-eipam-create-pool' mode='sync'>\r
5         <block atomic="true">\r
6             <set>\r
7                 <parameter name='vnf-index' value='0' />\r
8                 <parameter name='vf-module-index' value='0' />\r
9                 <parameter name='ss.capability-name' value='self-serve-eipam-create-pool' />\r
10                 <parameter name='ss.capability-action' value='assign' />\r
11                 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.sdnc-generated-cloud-resources' \r
12         value='true' />\r
13                 <parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param_length' value = '1' />\r
14                 <parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].name' value = 'ipv4-wan-address-pool' />\r
15                 <parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].value' value = '${ipv4-wan-address-pool}' />\r
16                 <parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.capability-name' value = 'eipam-create-pool' />\r
17                 <parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[0].name' value = 'group-flag' />\r
18                 <parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[0].value' value = 'Y' />\r
19                 <parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[1].name' value = 'plan-name' />\r
20                 <parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[1].value' value = 'GMIS_V4_VPE_WAN' />\r
21                 <parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[2].name' value = 'service-instance-id' />\r
22                 <parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[2].value' value = '12345' />\r
23                 <parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[3].name' value = 'region' />\r
24                 <parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[3].value' value = 'mtn6' />\r
25                 <parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[4].name' value = 'address-family' />\r
26                 <parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[4].value' value = 'ipv4' />\r
27                 <parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[5].name' value = 'equipment' />\r
28                 <parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[5].value' value = 'VPE' />\r
29                 <parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[6].name' value = 'mask' />\r
30                 <parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[6].value' value = '32' />\r
31                 <parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[7].name' value = 'allocateSubnetFlag' />\r
32                 <parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[7].value' value = 'N' />\r
33                 <parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[8].name' value = 'service-instance-id' />\r
34                 <parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[8].value' value = '111222' />\r
35                 <parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key_length' value = '9' />\r
36                 <parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.status' value = 'PENDING' />\r
37             </set>\r
38             <switch test='`$ss.capability-name`'>\r
39                 <outcome value=''>\r
40                     <return status="failure">\r
41                         <parameter name="ack-final" value="Y" />\r
42                         <parameter name="error-code" value="500"/>\r
43                         <parameter name="error-message" value="ss.capability-name is null" />\r
44                     </return>\r
45                 </outcome>\r
46             </switch>\r
47             <switch test='`$ss.capability-action`'>\r
48                 <outcome value=''>\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="ss.capability-action is null" />\r
53                     </return>\r
54                 </outcome>\r
55                 <outcome value='Other'>\r
56                     <return status="failure">\r
57                         <parameter name="ack-final" value="Y" />\r
58                         <parameter name="error-code" value="500"/>\r
59                         <parameter name="error-message" value="`'Invalid capability-action: '+ ss.capability-action + 'only assign is supported'`" />\r
60                     </return>\r
61                 </outcome>\r
62                 <outcome value='assign'>\r
63                     <block atomic="true">\r
64                         <block>\r
65                             <for index="pidx" start="0" end="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`">\r
66                                 <set>\r
67                                     <parameter name='tmp.ss.param.capability-name' \r
68         value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.capability-name`' />\r
69                                 </set>\r
70                                 <switch test='`$tmp.ss.param.capability-name == $ss.capability-name`'>\r
71                                     <outcome value='true'>\r
72                                         <break/>\r
73                                     </outcome>\r
74                                 </switch>\r
75                             </for>\r
76                             <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
77                                 <parameter name="logger" value="message-log"/>\r
78                                 <parameter name="field1" value="__TIMESTAMP__"/>\r
79                                 <parameter name="field2" value="`'SS: pidx: ' + $pidx`"/>\r
80                             </record>\r
81                             <for index="kidx" start="0" end="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key_length`">\r
82                                 <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].name`'>\r
83                                     <outcome value='group-flag'>\r
84                                         <set>\r
85                                             <parameter name='tmp.ss.group-flag' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].value`' />\r
86                                         </set>\r
87                                     </outcome>\r
88                                     <outcome value='allocateSubnetFlag'>\r
89                                         <set>\r
90                                             <parameter name='tmp.ss.allocateSubnetFlag' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].value`' />\r
91                                         </set>\r
92                                     </outcome>\r
93                                     <outcome value='plan-name'>\r
94                                         <set>\r
95                                             <parameter name='tmp.ss.plan-name' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].value`' />\r
96                                         </set>\r
97                                     </outcome>\r
98                                     <outcome value='service-instance-id'>\r
99                                         <set>\r
100                                             <parameter name='tmp.ss.service-instance-id' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].value`' />\r
101                                         </set>\r
102                                     </outcome>\r
103                                     <outcome value='address-family'>\r
104                                         <set>\r
105                                             <parameter name='tmp.ss.address-family' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].value`' />\r
106                                         </set>\r
107                                     </outcome>\r
108                                     <outcome value='mask'>\r
109                                         <set>\r
110                                             <parameter name='tmp.ss.mask' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].value`' />\r
111                                         </set>\r
112                                     </outcome>\r
113                                 </switch>\r
114                             </for>\r
115                         </block>\r
116                         <set>\r
117                             <parameter name='aai.cloud-region.cloud-region-id' \r
118         value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.aic-cloud-region`' />\r
119                         </set>\r
120                         <set>\r
121                             <parameter name='tmp.skip-first-level' value='Y' />\r
122                             <parameter name='tmp.allocate-subnet-flag' value='`$tmp.ss.allocateSubnetFlag`' />\r
123                             <parameter name='eipam-ip-block.group-flag' value='`$tmp.ss.group-flag`' />\r
124                         </set>\r
125                         <switch test='`$tmp.ss.address-family`'>\r
126                             <outcome value='ipv4'>\r
127                                 <set>\r
128                                     <parameter name='network-model.eipam-v4-address-plan' value='tmp.ss.plan-name' />\r
129                                     <parameter name='network-model.use-ipv4' value='Y' />\r
130                                     <parameter name='network-model.ipv4-ip-version' value='tmp.ss.address-family' />\r
131                                     <parameter name='network-model.ipv4-cidr-mask' value='tmp.ss.mask' />\r
132                                 </set>\r
133                             </outcome>\r
134                             <outcome value='ipv6'>\r
135                                 <set>\r
136                                     <parameter name='network-model.eipam-v6-address-plan' value='tmp.ss.plan-name' />\r
137                                     <parameter name='network-model.use-ipv6' value='Y' />\r
138                                     <parameter name='network-model.ipv6-ip-version' value='tmp.ss.address-family' />\r
139                                     <parameter name='network-model.ipv6-cidr-mask' value='tmp.ss.mask' />\r
140                                 </set>\r
141                             </outcome>\r
142                         </switch>\r
143                         <call module='GENERIC-RESOURCE-API' rpc='process-generic-eipam-pools' mode='sync' >\r
144                             <outcome value='failure'>\r
145                                 <return status="failure">\r
146                                     <parameter name="ack-final" value="Y" />\r
147                                     <parameter name="error-code" value="500"/>\r
148                                     <parameter name="error-message" value="`'Error from process-generic-eipam-pools, ' + $error-message`" />\r
149                                 </return>\r
150                             </outcome>\r
151                         </call>\r
152                     </block>\r
153                 </outcome>\r
154             </switch>\r
155         </block>\r
156     </method>\r
157 </service-logic>