diff options
Diffstat (limited to 'nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/vnfm/CbamRestApiProvider.java')
-rw-r--r-- | nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/vnfm/CbamRestApiProvider.java | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/vnfm/CbamRestApiProvider.java b/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/vnfm/CbamRestApiProvider.java new file mode 100644 index 00000000..5fdc919a --- /dev/null +++ b/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/vnfm/CbamRestApiProvider.java @@ -0,0 +1,115 @@ +/* + * Copyright 2016-2017, Nokia Corporation + * + * 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. + */ +package org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.vnfm; + +import com.google.common.io.BaseEncoding; +import com.nokia.cbam.catalog.v1.api.DefaultApi; +import com.nokia.cbam.lcm.v32.ApiClient; +import com.nokia.cbam.lcm.v32.api.OperationExecutionsApi; +import com.nokia.cbam.lcm.v32.api.VnfsApi; +import com.nokia.cbam.lcn.v32.api.SubscriptionsApi; +import org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.api.VnfmInfoProvider; +import org.onap.vnfmdriver.model.VnfmInfo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; + +import java.io.ByteArrayInputStream; + +/** + * Responsible for providing client to access CBAM REST API + */ +@Component +public class CbamRestApiProvider { + public static final String NOKIA_LCN_API_VERSION = "3.2"; + public static final String NOKIA_LCM_API_VERSION = "3.2"; + private final DriverProperties driverProperties; + private final CbamTokenProvider tokenProvider; + private final VnfmInfoProvider vnfmInfoProvider; + + @Value("${trustedCertificates}") + private String trustedCertificates; + @Value("${skipCertificateVerification}") + private boolean skipCertificateVerification; + + @Autowired + public CbamRestApiProvider(DriverProperties driverProperties, CbamTokenProvider cbamTokenProvider, VnfmInfoProvider vnfmInfoProvider) { + this.driverProperties = driverProperties; + this.tokenProvider = cbamTokenProvider; + this.vnfmInfoProvider = vnfmInfoProvider; + } + + /** + * @param vnfmId the identifier of the VNFM + * @return API to access CBAM LCM API + */ + public VnfsApi getCbamLcmApi(String vnfmId) { + return new VnfsApi(getLcmApiClient(vnfmId)); + } + + /** + * @param vnfmId the identifier of the VNFM + * @return API to access the operation executions + */ + public OperationExecutionsApi getCbamOperationExecutionApi(String vnfmId) { + return new OperationExecutionsApi(getLcmApiClient(vnfmId)); + } + + /** + * @param vnfmId the identifier of the VNFM + * @return API to access CBAM LCN subscription API + */ + public SubscriptionsApi getCbamLcnApi(String vnfmId) { + com.nokia.cbam.lcn.v32.ApiClient apiClient = new com.nokia.cbam.lcn.v32.ApiClient(); + if (!skipCertificateVerification) { + apiClient.setSslCaCert(new ByteArrayInputStream(BaseEncoding.base64().decode(trustedCertificates))); + } else { + apiClient.setVerifyingSsl(false); + } + apiClient.setBasePath(driverProperties.getCbamLcnUrl()); + apiClient.setAccessToken(tokenProvider.getToken(vnfmId)); + return new SubscriptionsApi(apiClient); + } + + /** + * @param vnfmId the identifier of the VNFM + * @return API to access CBAM catalog API + */ + public DefaultApi getCbamCatalogApi(String vnfmId) { + com.nokia.cbam.catalog.v1.ApiClient apiClient = new com.nokia.cbam.catalog.v1.ApiClient(); + if (!skipCertificateVerification) { + apiClient.setSslCaCert(new ByteArrayInputStream(BaseEncoding.base64().decode(trustedCertificates))); + } else { + apiClient.setVerifyingSsl(false); + } + apiClient.setBasePath(driverProperties.getCbamCatalogUrl()); + apiClient.setAccessToken(tokenProvider.getToken(vnfmId)); + return new DefaultApi(apiClient); + } + + private ApiClient getLcmApiClient(String vnfmId) { + VnfmInfo vnfmInfo = vnfmInfoProvider.getVnfmInfo(vnfmId); + ApiClient apiClient = new ApiClient(); + if (!skipCertificateVerification) { + apiClient.setSslCaCert(new ByteArrayInputStream(BaseEncoding.base64().decode(trustedCertificates))); + } else { + apiClient.setVerifyingSsl(false); + } + apiClient.setAccessToken(tokenProvider.getToken(vnfmId)); + apiClient.setBasePath(vnfmInfo.getUrl()); + return apiClient; + } +} |