f439b400d9a3b2978e416d9c65e9005a1c7bdbfe
[so.git] /
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP - SO
4  * ================================================================================
5  # Copyright (c) 2020, CMCC Technologies Co., Ltd.
6  #
7  # Licensed under the Apache License, Version 2.0 (the "License")
8  # you may not use this file except in compliance with the License.
9  # You may obtain a copy of the License at
10  #
11  #       http://www.apache.org/licenses/LICENSE-2.0
12  #
13  # Unless required by applicable law or agreed to in writing, software
14  # distributed under the License is distributed on an "AS IS" BASIS,
15  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  # See the License for the specific language governing permissions and
17  # limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.onap.so.adapters.nssmf.manager.impl;
22
23 import org.apache.http.Header;
24 import org.apache.http.message.BasicHeader;
25 import org.onap.so.adapters.nssmf.consts.NssmfAdapterConsts;
26 import org.onap.so.adapters.nssmf.entity.RestResponse;
27 import org.onap.so.adapters.nssmf.enums.SelectionType;
28 import org.onap.so.adapters.nssmf.exceptions.ApplicationException;
29 import org.onap.so.beans.nsmf.*;
30 import org.onap.so.db.request.beans.ResourceOperationStatus;
31 import static org.onap.so.adapters.nssmf.enums.JobStatus.PROCESSING;
32 import static org.onap.so.adapters.nssmf.util.NssmfAdapterUtil.marshal;
33
34 public abstract class InternalNssmfManager extends BaseNssmfManager {
35
36     @Override
37     protected String wrapAllocateReqBody(NssmfAdapterNBIRequest nbiRequest) throws ApplicationException {
38         return doWrapAllocateReqBody(nbiRequest);
39     }
40
41     protected abstract String doWrapAllocateReqBody(NssmfAdapterNBIRequest nbiRequest) throws ApplicationException;
42
43     @Override
44     protected String wrapReqBody(Object object) throws ApplicationException {
45         NssmfRequest nssmfRequest = new NssmfRequest(serviceInfo, esrInfo.getNetworkType(), object);
46         return marshal(nssmfRequest);
47     }
48
49
50     @Override
51     protected String wrapActDeActReqBody(ActDeActNssi actDeActNssi) throws ApplicationException {
52
53         return wrapReqBody(actDeActNssi);
54     }
55
56
57     @Override
58     protected String wrapDeAllocateReqBody(DeAllocateNssi deAllocateNssi) throws ApplicationException {
59         return wrapReqBody(deAllocateNssi);
60     }
61
62
63     @Override
64     protected RestResponse doQueryJobStatus(ResourceOperationStatus status) throws ApplicationException {
65         return responseDBStatus(status);
66     }
67
68     private RestResponse responseDBStatus(ResourceOperationStatus status) throws ApplicationException {
69         ResponseDescriptor descriptor = new ResponseDescriptor();
70         if (status == null) {
71             descriptor.setProgress(0);
72             descriptor.setStatus(PROCESSING.name());
73             descriptor.setStatusDescription("Initiating Nssi Instance");
74             return restUtil.createResponse(200, marshal(descriptor));
75         }
76         descriptor.setStatus(status.getStatus());
77         descriptor.setStatusDescription(status.getStatusDescription());
78         descriptor.setProgress(Integer.parseInt(status.getProgress()));
79         // descriptor.setResponseId(status.getOperationId());
80         return restUtil.createResponse(200, marshal(descriptor));
81     }
82
83     @Override
84     protected RestResponse sendRequest(String content) {
85         return sendInternalRequest(content);
86     }
87
88     @Override
89     protected void afterRequest() {
90         //
91     }
92
93     @Override
94     protected void afterQueryJobStatus(ResourceOperationStatus status) {
95         // internal
96     }
97
98     // internal
99     private RestResponse sendInternalRequest(String content) {
100         Header header = new BasicHeader("X-Auth-Token", adapterConfig.getInfraAuth());
101         this.nssmfUrl = adapterConfig.getInfraEndpoint() + this.nssmfUrl;
102         return restUtil.send(this.nssmfUrl, this.httpMethod, content, header);
103     }
104
105     @Override
106     protected String getApiVersion() {
107         return NssmfAdapterConsts.CURRENT_INTERNAL_NSSMF_API_VERSION;
108     }
109
110
111     @Override
112     protected SelectionType doQueryNSSISelectionCapability() {
113         return SelectionType.NSSMF;
114     }
115
116     @Override
117     protected String wrapModifyReqBody(NssmfAdapterNBIRequest nbiRequest) throws ApplicationException {
118         return doWrapModifyReqBody(nbiRequest);
119     }
120
121     protected abstract String doWrapModifyReqBody(NssmfAdapterNBIRequest nbiRequest) throws ApplicationException;
122
123     @Override
124     protected RestResponse doQuerySubnetCapability(String req) throws ApplicationException {
125         // handler
126         return sendRequest(req);
127     }
128 }