HTTPS Proxy support for A1 adapter southbound
[ccsdk/distribution.git] / platform-logic / a1Adapter-api / src / main / xml / A1-ADAPTER-API_putA1Policy.xml
1 <service-logic
2     xmlns='http://www.onap.org/sdnc/svclogic'
3     xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='A1-ADAPTER-API' version='${project.version}'>
4     <method rpc='putA1Policy' mode='sync'>
5         <block atomic='true'>
6             <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
7                 <parameter name="file" value="/opt/opendaylight/current/data/log/A1-Adapter.log" />
8                 <parameter name="level" value="info" />
9                 <parameter name="field1" value="Put A1 Policy :"/>
10                 <parameter name="field2" value="`$put-a1-policy-input.near-rt-ric-url`"/>
11                 <parameter name="field3" value="`$put-a1-policy-input.body`"/>
12             </record>
13             <set>
14                 <parameter name='response-code' value='200' />
15                 <parameter name='response-message' value='Put A1 Policy executed successfully' />
16             </set>
17             <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >
18                 <parameter name='fileName' value='/opt/onap/ccsdk/data/properties/a1-adapter-api-dg.properties' />
19                 <parameter name='contextPrefix' value='prop' />
20             </execute>
21             <block atomic='true'>
22                 <set>
23                     <parameter name="tmp.near-rt-ric-url" value="`$put-a1-policy-input.near-rt-ric-url`"/>
24                     <parameter name="tmp.body" value="`$put-a1-policy-input.body`"/>
25                 </set>
26                 <block>
27                     <set>
28                         <parameter name="tmp.proxy-url" value="`$prop.a1Mediator.proxy.url`"/>
29                     </set>
30                     <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
31                         <parameter name="file" value="/opt/opendaylight/current/data/log/A1-Adapter.log" />
32                         <parameter name="level" value="info" />
33                         <parameter name="field1" value="Put A1 Policy: Check for proxy url: "/>
34                         <parameter name="field2" value="`$tmp.proxy-url`"/>
35                     </record>
36                     <switch test='`$tmp.proxy-url`'>
37                         <outcome value=''>
38                             <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
39                                 <parameter name="file" value="/opt/opendaylight/current/data/log/A1-Adapter.log" />
40                                 <parameter name="level" value="info" />
41                                 <parameter name="field1" value="Put A1 Policy: No proxy found on properties file "/>
42                             </record>
43                         </outcome>
44                         <outcome value='Other'>
45                             <block>
46                                 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>
47                                     <parameter name="original_string" value="`$tmp.near-rt-ric-url`" />
48                                     <parameter name="regex" value="/"/>
49                                     <parameter name="ctx_memory_result_key" value="tmp.near-rt-ric-url-splitList"/>
50                                 </execute>
51                                 <for index='idx' start='3' end="`$tmp.near-rt-ric-url-splitList_length`" >
52                                     <set>
53                                         <parameter name='tmp.proxy-url' value="`$tmp.proxy-url +'/' + $tmp.near-rt-ric-url-splitList[$idx] `" />
54                                     </set>
55                                 </for>
56                                 <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
57                                     <parameter name="file" value="/opt/opendaylight/current/data/log/A1-Adapter.log" />
58                                     <parameter name="level" value="info" />
59                                     <parameter name="field1" value="Put A1 Policy: Url with proxy: "/>
60                                     <parameter name="field2" value="`$tmp.proxy-url`"/>
61                                 </record>
62                                 <set>
63                                     <parameter name="tmp.near-rt-ric-url" value="`$tmp.proxy-url`"/>
64                                 </set>
65                             </block>
66                         </outcome>
67                     </switch>
68                 </block>
69                 <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
70                     <parameter name="file" value="/opt/opendaylight/current/data/log/A1-Adapter.log" />
71                     <parameter name="level" value="info" />
72                     <parameter name="field1" value="Setting variables for Put A1 Policy."/>
73                     <parameter name="field2" value="`$tmp.near-rt-ric-url`"/>
74                     <parameter name="field3" value="`$tmp.body`"/>
75                 </record>
76                 <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
77                     <parameter name="restapiUrl" value="`$tmp.near-rt-ric-url`"/>
78                     <parameter name="format" value="json"/>
79                     <parameter name="httpMethod" value="PUT"/>
80                     <parameter name="responsePrefix" value="a1MediatorRsp"/>
81                     <parameter name='contentType' value='application/json' />
82                     <parameter name='accept' value='application/json' />
83                     <parameter name="requestBody" value="`$tmp.body`"/>
84                     <parameter name="convertResponse" value="false"/>
85                     <outcome value='failure'>
86                         <block>
87                             <set>
88                                 <parameter name='response-code' value='500'/>
89                                 <parameter name='response-message' value='Seems A1 Mediator Not Healthy'/>
90                             </set>
91                             <return status='failure'>
92                                 <parameter name='ack-final' value='Y'/>
93                                 <parameter name="response-code" value="404" />
94                                 <parameter name="response-message" value="Error creating A1 Policy. Aborting A1 Policy creation" />
95                             </return>
96                         </block>
97                     </outcome>
98                     <outcome value='success'>
99                         <block>
100                             <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
101                                 <parameter name="file" value="/opt/opendaylight/current/data/log/A1-Adapter.log" />
102                                 <parameter name="level" value="info" />
103                                 <parameter name="field1" value="A1 Policy Instance Created."/>
104                             </record>
105                         </block>
106                     </outcome>
107                 </execute>
108             </block>
109         </block>
110     </method>
111 </service-logic>