summaryrefslogtreecommitdiffstats
path: root/so-nssmf-adapter-application/src/main/java/org/onap/so/adapters/nssmf/manager/impl/InternalNssmfManager.java
blob: 49f13063864b6a67f4438ee69496d04c86ed68c5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
/*-
 * ============LICENSE_START=======================================================
 * ONAP - SO
 * ================================================================================
 # Copyright (c) 2020, CMCC Technologies Co., Ltd.
 #
 # Licensed under the Apache License, Version 2.0 (the "License")
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at
 #
 #       http://www.apache.org/licenses/LICENSE-2.0
 #
 # Unless required by applicable law or agreed to in writing, software
 # distributed under the License is distributed on an "AS IS" BASIS,
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
 * ============LICENSE_END=========================================================
 */

package org.onap.so.adapters.nssmf.manager.impl;

import org.apache.http.Header;
import org.apache.http.message.BasicHeader;
import org.onap.so.adapters.nssmf.consts.NssmfAdapterConsts;
import org.onap.so.adapters.nssmf.entity.RestResponse;
import org.onap.so.adapters.nssmf.enums.SelectionType;
import org.onap.so.adapters.nssmf.exceptions.ApplicationException;
import org.onap.so.beans.nsmf.*;
import org.onap.so.db.request.beans.ResourceOperationStatus;
import static org.onap.so.adapters.nssmf.enums.JobStatus.PROCESSING;
import static org.onap.so.adapters.nssmf.util.NssmfAdapterUtil.marshal;

public abstract class InternalNssmfManager extends BaseNssmfManager {

    @Override
    protected String wrapAllocateReqBody(NssmfAdapterNBIRequest nbiRequest) throws ApplicationException {
        return doWrapAllocateReqBody(nbiRequest);
    }

    protected abstract String doWrapAllocateReqBody(NssmfAdapterNBIRequest nbiRequest) throws ApplicationException;

    @Override
    protected String wrapReqBody(Object object) throws ApplicationException {
        NssmfRequest nssmfRequest = new NssmfRequest(serviceInfo, esrInfo.getNetworkType(), object);
        return marshal(nssmfRequest);
    }


    @Override
    protected String wrapActDeActReqBody(ActDeActNssi actDeActNssi) throws ApplicationException {

        return wrapReqBody(actDeActNssi);
    }


    @Override
    protected String wrapDeAllocateReqBody(DeAllocateNssi deAllocateNssi) throws ApplicationException {
        return wrapReqBody(deAllocateNssi);
    }


    @Override
    protected RestResponse doQueryJobStatus(ResourceOperationStatus status) throws ApplicationException {
        return responseDBStatus(status);
    }

    private RestResponse responseDBStatus(ResourceOperationStatus status) throws ApplicationException {
        JobStatusResponse statusResponse = new JobStatusResponse();
        ResponseDescriptor descriptor = new ResponseDescriptor();
        if (status == null) {
            descriptor.setProgress(0);
            descriptor.setStatus(PROCESSING.name());
            descriptor.setStatusDescription("Initiating Nssi Instance");
        } else {
            descriptor.setStatus(status.getStatus());
            descriptor.setStatusDescription(status.getStatusDescription());
            descriptor.setProgress(Integer.parseInt(status.getProgress()));
            descriptor.setNssiId(status.getResourceInstanceID());
        }
        statusResponse.setResponseDescriptor(descriptor);
        return restUtil.createResponse(200, marshal(statusResponse));
    }

    @Override
    protected RestResponse sendRequest(String content) {
        return sendInternalRequest(content);
    }

    @Override
    protected void afterRequest() {
        //
    }

    @Override
    protected void afterQueryJobStatus(ResourceOperationStatus status) {
        // internal
    }

    // internal
    private RestResponse sendInternalRequest(String content) {
        Header header = new BasicHeader("Authorization", adapterConfig.getInfraAuth());
        this.nssmfUrl = adapterConfig.getInfraEndpoint() + this.nssmfUrl;
        return restUtil.send(this.nssmfUrl, this.httpMethod, content, header);
    }

    @Override
    protected String getApiVersion() {
        return NssmfAdapterConsts.CURRENT_INTERNAL_NSSMF_API_VERSION;
    }


    @Override
    protected SelectionType doQueryNSSISelectionCapability() {
        return SelectionType.NSSMF;
    }

    @Override
    protected String wrapModifyReqBody(NssmfAdapterNBIRequest nbiRequest) throws ApplicationException {
        return doWrapModifyReqBody(nbiRequest);
    }

    protected abstract String doWrapModifyReqBody(NssmfAdapterNBIRequest nbiRequest) throws ApplicationException;

    @Override
    protected RestResponse doQuerySubnetCapability(QuerySubnetCapability req) throws ApplicationException {
        // handler
        return sendRequest(marshal(req));
    }
}