2 * Copyright 2016-2017, Nokia Corporation
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
16 package org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.vnfm;
18 import com.google.common.annotations.VisibleForTesting;
19 import com.nokia.cbam.catalog.v1.api.DefaultApi;
20 import com.nokia.cbam.lcm.v32.ApiClient;
21 import com.nokia.cbam.lcm.v32.api.OperationExecutionsApi;
22 import com.nokia.cbam.lcm.v32.api.VnfsApi;
23 import com.nokia.cbam.lcn.v32.api.SubscriptionsApi;
24 import org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.api.VnfmInfoProvider;
25 import org.onap.vnfmdriver.model.VnfmInfo;
27 import static org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.onap.core.GenericExternalSystemInfoProvider.convert;
30 * Responsible for providing client to access CBAM REST API
32 public class CbamRestApiProvider {
33 public static final String NOKIA_LCN_API_VERSION = "3.2";
34 public static final String NOKIA_LCM_API_VERSION = "3.2";
35 public static final String AUTH_NAME = "test";
36 private final CbamTokenProvider tokenProvider;
37 private final VnfmInfoProvider vnfmInfoProvider;
38 private final CbamSecurityProvider cbamSecurityProvider;
40 CbamRestApiProvider(CbamTokenProvider cbamTokenProvider, VnfmInfoProvider vnfmInfoProvider, CbamSecurityProvider cbamSecurityProvider) {
41 this.tokenProvider = cbamTokenProvider;
42 this.vnfmInfoProvider = vnfmInfoProvider;
43 this.cbamSecurityProvider = cbamSecurityProvider;
47 * @param vnfmId the identifier of the VNFM
48 * @return API to access CBAM LCM API
50 public VnfsApi getCbamLcmApi(String vnfmId) {
51 return buildLcmApiClient(vnfmId).createService(VnfsApi.class);
55 * @param vnfmId the identifier of the VNFM
56 * @return API to access the operation executions
58 public OperationExecutionsApi getCbamOperationExecutionApi(String vnfmId) {
59 return buildLcmApiClient(vnfmId).createService(OperationExecutionsApi.class);
63 * @param vnfmId the identifier of the VNFM
64 * @return API to access CBAM LCN subscription API
66 public SubscriptionsApi getCbamLcnApi(String vnfmId) {
67 return buildLcnApiClient(vnfmId).createService(SubscriptionsApi.class);
71 * @param vnfmId the identifier of the VNFM
72 * @return API to access CBAM catalog API
74 public DefaultApi getCbamCatalogApi(String vnfmId) {
75 return buildCatalogApiClient(vnfmId).createService(DefaultApi.class);
79 com.nokia.cbam.lcn.v32.ApiClient buildLcnApiClient(String vnfmId) {
80 com.nokia.cbam.lcn.v32.ApiClient apiClient = new com.nokia.cbam.lcn.v32.ApiClient();
81 apiClient.getOkBuilder().sslSocketFactory(cbamSecurityProvider.buildSSLSocketFactory(), cbamSecurityProvider.buildTrustManager());
82 apiClient.getOkBuilder().hostnameVerifier(cbamSecurityProvider.buildHostnameVerifier());
83 apiClient.addAuthorization(AUTH_NAME, tokenProvider.getToken(vnfmId));
84 apiClient.setAdapterBuilder(apiClient.getAdapterBuilder().baseUrl(convert(vnfmInfoProvider.getVnfmInfo(vnfmId)).getLcnUrl()));
89 com.nokia.cbam.catalog.v1.ApiClient buildCatalogApiClient(String vnfmId) {
90 com.nokia.cbam.catalog.v1.ApiClient apiClient = new com.nokia.cbam.catalog.v1.ApiClient();
91 apiClient.getOkBuilder().sslSocketFactory(cbamSecurityProvider.buildSSLSocketFactory(), cbamSecurityProvider.buildTrustManager());
92 apiClient.getOkBuilder().hostnameVerifier(cbamSecurityProvider.buildHostnameVerifier());
93 apiClient.addAuthorization(AUTH_NAME, tokenProvider.getToken(vnfmId));
94 apiClient.setAdapterBuilder(apiClient.getAdapterBuilder().baseUrl(convert(vnfmInfoProvider.getVnfmInfo(vnfmId)).getCatalogUrl()));
99 ApiClient buildLcmApiClient(String vnfmId) {
100 VnfmInfo vnfmInfo = vnfmInfoProvider.getVnfmInfo(vnfmId);
101 ApiClient apiClient = new ApiClient();
102 apiClient.getOkBuilder().sslSocketFactory(cbamSecurityProvider.buildSSLSocketFactory(), cbamSecurityProvider.buildTrustManager());
103 apiClient.getOkBuilder().hostnameVerifier(cbamSecurityProvider.buildHostnameVerifier());
104 apiClient.addAuthorization(AUTH_NAME, tokenProvider.getToken(vnfmId));
105 apiClient.setAdapterBuilder(apiClient.getAdapterBuilder().baseUrl(convert(vnfmInfoProvider.getVnfmInfo(vnfmId)).getLcmUrl()));