From 1373c30ec881e04db719ecafa45598d3ff88480e Mon Sep 17 00:00:00 2001 From: AndrewLamb Date: Mon, 7 Oct 2019 15:48:25 +0100 Subject: VNFM Simulator Removed. Moved to CSIT. Change-Id: I6c439615d52751578200ef84aacb20b0263b3846 Issue-ID: SO-1952 Signed-off-by: AndrewLamb --- .../svnfm/simulator/config/ApplicationConfig.java | 53 ---- .../svnfm/simulator/config/SvnfmApplication.java | 46 --- .../simulator/config/WebSecurityConfigImpl.java | 48 --- .../onap/svnfm/simulator/constants/Constant.java | 39 --- .../simulator/controller/SvnfmController.java | 171 ---------- .../exception/GlobalExceptionHandler.java | 47 --- .../onap/svnfm/simulator/model/VnfInstance.java | 182 ----------- .../onap/svnfm/simulator/model/VnfOperation.java | 80 ----- .../java/org/onap/svnfm/simulator/model/Vnfds.java | 97 ------ .../VnfInstantiationNotification.java | 47 --- .../VnfmAdapterCreationNotification.java | 48 --- .../VnfmAdapterDeletionNotification.java | 48 --- .../simulator/oauth/AuthorizationServerConfig.java | 28 -- .../oauth/JsonSerializerConfiguration.java | 49 --- .../simulator/oauth/OAuth2AccessTokenAdapter.java | 31 -- .../simulator/oauth/OAuth2ResourceServer.java | 36 --- .../repository/VnfOperationRepository.java | 33 -- .../simulator/repository/VnfmCacheRepository.java | 60 ---- .../svnfm/simulator/repository/VnfmRepository.java | 35 --- .../services/InstantiateOperationProgressor.java | 123 -------- .../simulator/services/OperationProgressor.java | 348 --------------------- .../simulator/services/SubscriptionService.java | 21 -- .../svnfm/simulator/services/SvnfmService.java | 169 ---------- .../services/TerminateOperationProgressor.java | 74 ----- .../onap/svnfm/simulator/services/VnfmHelper.java | 106 ------- 25 files changed, 2019 deletions(-) delete mode 100644 vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/config/ApplicationConfig.java delete mode 100644 vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/config/SvnfmApplication.java delete mode 100644 vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/config/WebSecurityConfigImpl.java delete mode 100644 vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/constants/Constant.java delete mode 100644 vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/controller/SvnfmController.java delete mode 100644 vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/exception/GlobalExceptionHandler.java delete mode 100644 vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/model/VnfInstance.java delete mode 100644 vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/model/VnfOperation.java delete mode 100644 vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/model/Vnfds.java delete mode 100644 vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/notifications/VnfInstantiationNotification.java delete mode 100644 vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/notifications/VnfmAdapterCreationNotification.java delete mode 100644 vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/notifications/VnfmAdapterDeletionNotification.java delete mode 100644 vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/oauth/AuthorizationServerConfig.java delete mode 100644 vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/oauth/JsonSerializerConfiguration.java delete mode 100644 vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/oauth/OAuth2AccessTokenAdapter.java delete mode 100644 vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/oauth/OAuth2ResourceServer.java delete mode 100644 vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/repository/VnfOperationRepository.java delete mode 100644 vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/repository/VnfmCacheRepository.java delete mode 100644 vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/repository/VnfmRepository.java delete mode 100644 vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/services/InstantiateOperationProgressor.java delete mode 100644 vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/services/OperationProgressor.java delete mode 100644 vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/services/SubscriptionService.java delete mode 100644 vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/services/SvnfmService.java delete mode 100644 vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/services/TerminateOperationProgressor.java delete mode 100644 vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/services/VnfmHelper.java (limited to 'vnfm-simulator/vnfm-service/src/main/java') diff --git a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/config/ApplicationConfig.java b/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/config/ApplicationConfig.java deleted file mode 100644 index a1abb05f07..0000000000 --- a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/config/ApplicationConfig.java +++ /dev/null @@ -1,53 +0,0 @@ -package org.onap.svnfm.simulator.config; - -import java.util.Arrays; -import org.onap.svnfm.simulator.constants.Constant; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.ApplicationArguments; -import org.springframework.boot.ApplicationRunner; -import org.springframework.cache.Cache; -import org.springframework.cache.CacheManager; -import org.springframework.cache.concurrent.ConcurrentMapCache; -import org.springframework.cache.support.SimpleCacheManager; -import org.springframework.context.annotation.Bean; -import org.springframework.core.env.Environment; -import org.springframework.stereotype.Component; - -@Component -public class ApplicationConfig implements ApplicationRunner { - - private static final String PORT = "local.server.port"; - - @Value("${server.dns.name:so-vnfm-simulator.onap}") - private String serverDnsName; - - @Value("${server.request.grant.auth:oauth}") - private String grantAuth; - - @Autowired - private Environment environment; - - private String baseUrl; - - @Override - public void run(final ApplicationArguments args) throws Exception { - baseUrl = "https://" + serverDnsName + ":" + environment.getProperty(PORT); - } - - public String getBaseUrl() { - return baseUrl; - } - - public String getGrantAuth() { - return grantAuth; - } - - @Bean - public CacheManager cacheManager() { - final Cache inlineResponse201 = new ConcurrentMapCache(Constant.IN_LINE_RESPONSE_201_CACHE); - final SimpleCacheManager manager = new SimpleCacheManager(); - manager.setCaches(Arrays.asList(inlineResponse201)); - return manager; - } -} diff --git a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/config/SvnfmApplication.java b/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/config/SvnfmApplication.java deleted file mode 100644 index 723ae906e6..0000000000 --- a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/config/SvnfmApplication.java +++ /dev/null @@ -1,46 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2019 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.svnfm.simulator.config; - -import org.onap.svnfm.simulator.controller.SvnfmController; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.autoconfigure.domain.EntityScan; -import org.springframework.cache.annotation.EnableCaching; -import org.springframework.data.jpa.repository.config.EnableJpaRepositories; - -/** - * The spring boot application for the VNF LCM. - *

- * The VNFM receives requests through its REST API {@link SvnfmController} - * - * @author Lathishbabu Ganesan (lathishbabu.ganesan@est.tech) - * @author ronan.kenny@est.tech - */ -@SpringBootApplication(scanBasePackages = {"org.onap"}) -@EnableJpaRepositories("org.onap.svnfm.simulator") -@EntityScan("org.onap.svnfm.simulator.model") -@EnableCaching -public class SvnfmApplication { - public static void main(final String[] args) { - SpringApplication.run(SvnfmApplication.class, args); - } -} diff --git a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/config/WebSecurityConfigImpl.java b/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/config/WebSecurityConfigImpl.java deleted file mode 100644 index 18eadd2fc3..0000000000 --- a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/config/WebSecurityConfigImpl.java +++ /dev/null @@ -1,48 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2019 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.svnfm.simulator.config; - -import org.onap.so.security.MSOSpringFirewall; -import org.onap.so.security.WebSecurityConfig; -import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.config.annotation.web.builders.WebSecurity; -import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; -import org.springframework.security.web.firewall.StrictHttpFirewall; - -/** - * Configure the web security for the application. - */ -@EnableWebSecurity -public class WebSecurityConfigImpl extends WebSecurityConfig { - - @Override - protected void configure(final HttpSecurity http) throws Exception { - http.csrf().disable().authorizeRequests().antMatchers("/**").permitAll(); - } - - @Override - public void configure(final WebSecurity web) throws Exception { - super.configure(web); - final StrictHttpFirewall firewall = new MSOSpringFirewall(); - web.httpFirewall(firewall); - } - -} diff --git a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/constants/Constant.java b/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/constants/Constant.java deleted file mode 100644 index 98f47bf455..0000000000 --- a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/constants/Constant.java +++ /dev/null @@ -1,39 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2019 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.svnfm.simulator.constants; - -/** - * - * @author Lathishbabu Ganesan (lathishbabu.ganesan@est.tech) - * @author ronan.kenny@est.tech - */ -public class Constant { - - public static final String BASE_URL = "/vnflcm/v1"; - public static final String VNF_PROVIDER = "XYZ"; - public static final String VNF_PROVIDER_NAME = "vCPE"; - public static final String VNF_SOFTWARE_VERSION = "1.24"; - public static final String VNFD_VERSION = "onapvcpe01_cxp9025898_4r85d01"; - public static final String VNF_NOT_INSTANTIATED = "NOT_INSTANTIATED"; - public static final String VNF_CONFIG_PROPERTIES = - "{\"isAutoScaleEnabled\": \"true\",\"isAutoHealingEnabled\": \"true\"}"; - public static final String IN_LINE_RESPONSE_201_CACHE = "inlineResponse201"; -} diff --git a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/controller/SvnfmController.java b/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/controller/SvnfmController.java deleted file mode 100644 index 2140b57488..0000000000 --- a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/controller/SvnfmController.java +++ /dev/null @@ -1,171 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2019 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.svnfm.simulator.controller; - -import java.util.UUID; -import javax.ws.rs.core.MediaType; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.CreateVnfRequest; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse200; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse2001; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.LccnSubscriptionRequest; -import org.onap.svnfm.simulator.constants.Constant; -import org.onap.svnfm.simulator.repository.VnfmCacheRepository; -import org.onap.svnfm.simulator.services.SvnfmService; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseStatus; -import org.springframework.web.bind.annotation.RestController; - -/** - * - * @author Lathishbabu Ganesan (lathishbabu.ganesan@est.tech) - * @author Ronan Kenny (ronan.kenny@est.tech) - */ -@RestController -@RequestMapping(path = Constant.BASE_URL, produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON) -public class SvnfmController { - - @Autowired - private SvnfmService svnfmService; - - @Autowired - private VnfmCacheRepository vnfmCacheRepository; - - private static final Logger LOGGER = LoggerFactory.getLogger(SvnfmController.class); - - /** - * To create the Vnf and stores the response in cache - * - * @param CreateVnfRequest - * @return InlineResponse201 - */ - @PostMapping(value = "/vnf_instances") - public ResponseEntity createVnf(@RequestBody final CreateVnfRequest createVNFRequest) { - LOGGER.info("Start createVnf {}", createVNFRequest); - final String id = UUID.randomUUID().toString(); - final HttpHeaders headers = new HttpHeaders(); - headers.add(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON); - final ResponseEntity responseEntity = - new ResponseEntity<>(vnfmCacheRepository.createVnf(createVNFRequest, id), headers, HttpStatus.CREATED); - LOGGER.info("Finished create {}", responseEntity); - return responseEntity; - } - - /** - * Get the vnf by id from cache - * - * @param vnfId - * @return InlineResponse201 - */ - @GetMapping(value = "/vnf_instances/{vnfInstanceId}") - @ResponseStatus(code = HttpStatus.OK) - public InlineResponse201 getVnf(@PathVariable("vnfInstanceId") final String vnfId) { - LOGGER.info("Start getVnf------"); - return vnfmCacheRepository.getVnf(vnfId); - } - - /** - * To instantiate the vnf and returns the operation id - * - * @param vnfId - * @throws InterruptedException - */ - @PostMapping(value = "/vnf_instances/{vnfInstanceId}/instantiate") - public ResponseEntity instantiateVnf(@PathVariable("vnfInstanceId") final String vnfId) { - LOGGER.info("Start instantiateVNFRequest for vnf id {} ", vnfId); - - final HttpHeaders headers = new HttpHeaders(); - headers.add(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON); - headers.add(HttpHeaders.LOCATION, svnfmService.instantiateVnf(vnfId)); - return new ResponseEntity<>(headers, HttpStatus.ACCEPTED); - } - - /** - * To delete the vnf by id - * - * @param vnfId - * @return InlineResponse201 - */ - @DeleteMapping(value = "/vnf_instances/{vnfInstanceId}") - @ResponseStatus(code = HttpStatus.OK) - public ResponseEntity deleteVnf(@PathVariable("vnfInstanceId") final String vnfId) { - LOGGER.info("Start deleting Vnf------"); - vnfmCacheRepository.deleteVnf(vnfId); - final HttpHeaders headers = new HttpHeaders(); - headers.add(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON); - return new ResponseEntity<>(headers, HttpStatus.NO_CONTENT); - } - - /** - * To terminate the vnf by id - * - * @param vnfId - * @throws InterruptedException - */ - @PostMapping(value = "/vnf_instances/{vnfInstanceId}/terminate") - public ResponseEntity terminateVnf(@PathVariable("vnfInstanceId") final String vnfId) { - LOGGER.info("Start terminateVNFRequest {}", vnfId); - final HttpHeaders headers = new HttpHeaders(); - headers.add(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON); - headers.add(HttpHeaders.LOCATION, svnfmService.terminateVnf(vnfId)); - return new ResponseEntity<>(headers, HttpStatus.ACCEPTED); - } - - - /** - * To get the status of the operation by id - * - * @param operationId - * @return response entity - * @throws InterruptedException - */ - @GetMapping(value = "/vnf_lcm_op_occs/{vnfLcmOpOccId}") - public ResponseEntity getOperationStatus( - @PathVariable("vnfLcmOpOccId") final String operationId) { - LOGGER.info("Start getOperationStatus"); - final HttpHeaders headers = new HttpHeaders(); - headers.add("Content-Type", MediaType.APPLICATION_JSON); - return new ResponseEntity<>(svnfmService.getOperationStatus(operationId), headers, HttpStatus.OK); - } - - @PostMapping(value = "/subscriptions") - public ResponseEntity subscribeForNotifications( - @RequestBody final LccnSubscriptionRequest lccnSubscriptionRequest) { - LOGGER.info("Subscription request received: {}", lccnSubscriptionRequest); - svnfmService.registerSubscription(lccnSubscriptionRequest); - final InlineResponse2001 response = new InlineResponse2001(); - - final HttpHeaders headers = new HttpHeaders(); - headers.add(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON); - return new ResponseEntity<>(response, headers, HttpStatus.CREATED); - } -} diff --git a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/exception/GlobalExceptionHandler.java b/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/exception/GlobalExceptionHandler.java deleted file mode 100644 index 1ea92b39ad..0000000000 --- a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/exception/GlobalExceptionHandler.java +++ /dev/null @@ -1,47 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2019 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.svnfm.simulator.exception; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.http.HttpStatus; -import org.springframework.web.HttpMediaTypeNotSupportedException; -import org.springframework.web.bind.annotation.ControllerAdvice; -import org.springframework.web.bind.annotation.ExceptionHandler; -import org.springframework.web.bind.annotation.ResponseStatus; - -/** - * - * @author Lathishbabu Ganesan (lathishbabu.ganesan@est.tech) - * @author ronan.kenny@est.tech - */ -@ControllerAdvice -public class GlobalExceptionHandler { - - private static final Logger logger = LoggerFactory.getLogger(GlobalExceptionHandler.class); - - @ResponseStatus(HttpStatus.UNSUPPORTED_MEDIA_TYPE) - @ExceptionHandler(HttpMediaTypeNotSupportedException.class) - public void handleConflict() { - final String error = "Media type Not Supported"; - logger.error(error); - } -} diff --git a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/model/VnfInstance.java b/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/model/VnfInstance.java deleted file mode 100644 index 6af860c8f8..0000000000 --- a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/model/VnfInstance.java +++ /dev/null @@ -1,182 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2019 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.svnfm.simulator.model; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -/** - * - * @author Lathishbabu Ganesan (lathishbabu.ganesan@est.tech) - * @author Ronan Kenny (ronan.kenny@est.tech) - */ -@Entity -@Table(name = "VNF_INSTANCE") -public class VnfInstance { - @Id - @Column(name = "id", nullable = false) - private String id; - private String vnfInstanceName; - private String vnfInstanceDescription; - private String vnfdId; - private String vnfProvider; - private String vnfProductName; - private String vnfSoftwareVersion; - private String vnfdVersion; - private String vnfPkgId; - private String vnfConfigurableProperties; - private String vimConnectionInfo; - private String vnfInstantiationState; - private String instantiatedVnfInfo; - private String metadata; - private String extensions; - private String links; - - public String getId() { - return id; - } - - public void setId(final String id) { - this.id = id; - } - - public String getVnfInstanceName() { - return vnfInstanceName; - } - - public void setVnfInstanceName(final String vnfInstanceName) { - this.vnfInstanceName = vnfInstanceName; - } - - public String getVnfInstanceDescription() { - return vnfInstanceDescription; - } - - public void setVnfInstanceDescription(final String vnfInstanceDescription) { - this.vnfInstanceDescription = vnfInstanceDescription; - } - - public String getVnfdId() { - return vnfdId; - } - - public void setVnfdId(final String vnfdId) { - this.vnfdId = vnfdId; - } - - public String getVnfProvider() { - return vnfProvider; - } - - public void setVnfProvider(final String vnfProvider) { - this.vnfProvider = vnfProvider; - } - - public String getVnfProductName() { - return vnfProductName; - } - - public void setVnfProductName(final String vnfProductName) { - this.vnfProductName = vnfProductName; - } - - public String getVnfSoftwareVersion() { - return vnfSoftwareVersion; - } - - public void setVnfSoftwareVersion(final String vnfSoftwareVersion) { - this.vnfSoftwareVersion = vnfSoftwareVersion; - } - - public String getVnfdVersion() { - return vnfdVersion; - } - - public void setVnfdVersion(final String vnfdVersion) { - this.vnfdVersion = vnfdVersion; - } - - public String getVnfPkgId() { - return vnfPkgId; - } - - public void setVnfPkgId(final String vnfPkgId) { - this.vnfPkgId = vnfPkgId; - } - - public String getVnfConfigurableProperties() { - return vnfConfigurableProperties; - } - - public void setVnfConfigurableProperties(final String vnfConfigurableProperties) { - this.vnfConfigurableProperties = vnfConfigurableProperties; - } - - public String getVimConnectionInfo() { - return vimConnectionInfo; - } - - public void setVimConnectionInfo(final String vimConnectionInfo) { - this.vimConnectionInfo = vimConnectionInfo; - } - - public String getInstantiationState() { - return vnfInstantiationState; - } - - public void setVnfInstantiationState(final String vnfInstantiationState) { - this.vnfInstantiationState = vnfInstantiationState; - } - - public String getVnfInstantiationState() { - return instantiatedVnfInfo; - } - - public void setInstantiatedVnfInfo(final String instantiatedVnfInfo) { - this.instantiatedVnfInfo = instantiatedVnfInfo; - } - - public String getMetadata() { - return metadata; - } - - public void setMetadata(final String metadata) { - this.metadata = metadata; - } - - public String getExtensions() { - return extensions; - } - - public void setExtensions(final String extensions) { - this.extensions = extensions; - } - - public String getLinks() { - return links; - } - - public void setLinks(final String links) { - this.links = links; - } -} diff --git a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/model/VnfOperation.java b/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/model/VnfOperation.java deleted file mode 100644 index c37f433668..0000000000 --- a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/model/VnfOperation.java +++ /dev/null @@ -1,80 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2019 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ -package org.onap.svnfm.simulator.model; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.EnumType; -import javax.persistence.Enumerated; -import javax.persistence.Id; -import javax.persistence.Table; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse200; - -/** - * - * @author Lathishbabu Ganesan (lathishbabu.ganesan@est.tech) - * @author Ronan Kenny (ronan.kenny@est.tech) - */ -@Entity -@Table(name = "VNF_OPERATION") -public class VnfOperation { - @Id - @Column(name = "operationId", nullable = false) - private String id; - private String vnfInstanceId; - - @Enumerated(EnumType.STRING) - private InlineResponse200.OperationEnum operation; - - @Enumerated(EnumType.STRING) - private InlineResponse200.OperationStateEnum operationState; - - public String getId() { - return id; - } - - public void setId(final String id) { - this.id = id; - } - - public String getVnfInstanceId() { - return vnfInstanceId; - } - - public void setVnfInstanceId(final String vnfInstanceId) { - this.vnfInstanceId = vnfInstanceId; - } - - public InlineResponse200.OperationEnum getOperation() { - return operation; - } - - public void setOperation(final InlineResponse200.OperationEnum operation) { - this.operation = operation; - } - - public InlineResponse200.OperationStateEnum getOperationState() { - return operationState; - } - - public void setOperationState(final InlineResponse200.OperationStateEnum operationState) { - this.operationState = operationState; - } -} diff --git a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/model/Vnfds.java b/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/model/Vnfds.java deleted file mode 100644 index ea171f0fce..0000000000 --- a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/model/Vnfds.java +++ /dev/null @@ -1,97 +0,0 @@ -package org.onap.svnfm.simulator.model; - -import java.util.List; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.stereotype.Component; - -@ConfigurationProperties(prefix = "vnfds") -@Component -public class Vnfds { - - private List vnfdList; - - public static class Vnfd { - - private String vnfdId; - private List vnfclist; - - - public String getVnfdId() { - return vnfdId; - } - - public void setVnfdId(final String vnfdId) { - this.vnfdId = vnfdId; - } - - public List getVnfcList() { - return vnfclist; - } - - public void setVnfcList(final List vnfclist) { - this.vnfclist = vnfclist; - } - } - - - public static class Vnfc { - - private String vnfcId; - private String type; - private String vduId; - private String resourceTemplateId; - private String grantResourceId; - - public String getVnfcId() { - return vnfcId; - } - - public void setVnfcId(final String vnfcId) { - this.vnfcId = vnfcId; - } - - public String getVduId() { - return vduId; - } - - public void setVduId(final String vduId) { - this.vduId = vduId; - } - - public String getType() { - return type; - } - - public void setType(final String type) { - this.type = type; - } - - public String getResourceTemplateId() { - return resourceTemplateId; - } - - public void setResourceTemplateId(final String resourceTemplateId) { - this.resourceTemplateId = resourceTemplateId; - } - - public String getGrantResourceId() { - return grantResourceId; - } - - public void setGrantResourceId(final String grantResourceId) { - this.grantResourceId = grantResourceId; - } - - } - - - public List getVnfdList() { - return vnfdList; - } - - - public void setVnfdList(final List vnfdList) { - this.vnfdList = vnfdList; - } - -} diff --git a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/notifications/VnfInstantiationNotification.java b/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/notifications/VnfInstantiationNotification.java deleted file mode 100644 index 9a3cd95bec..0000000000 --- a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/notifications/VnfInstantiationNotification.java +++ /dev/null @@ -1,47 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2019 Nordix Foundation. - * ================================================================================ - * Modifications Copyright (c) 2019 Samsung - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.svnfm.simulator.notifications; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * - * @author Lathishbabu Ganesan (lathishbabu.ganesan@est.tech) - * @author Ronan Kenny (ronan.kenny@est.tech) - */ -public class VnfInstantiationNotification implements Runnable { - - private static final Logger logger = LoggerFactory.getLogger(VnfInstantiationNotification.class); - - @Override - public void run() { - try { - Thread.sleep(10000); - } catch (final InterruptedException e) { - logger.error("Error occured while simulating instantiation ", e); - Thread.currentThread().interrupt(); - } - logger.info("Instantiation process finished"); - } -} diff --git a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/notifications/VnfmAdapterCreationNotification.java b/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/notifications/VnfmAdapterCreationNotification.java deleted file mode 100644 index 39de3444db..0000000000 --- a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/notifications/VnfmAdapterCreationNotification.java +++ /dev/null @@ -1,48 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2019 Nordix Foundation. - * ================================================================================ - * Modifications Copyright (c) 2019 Samsung - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.svnfm.simulator.notifications; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * - * @author Lathishbabu Ganesan (lathishbabu.ganesan@est.tech) - * @author Ronan Kenny (ronan.kenny@est.tech) - */ -public class VnfmAdapterCreationNotification implements Runnable { - - private static final Logger logger = LoggerFactory.getLogger(VnfmAdapterCreationNotification.class); - - @Override - public void run() { - try { - Thread.sleep(10000); - } catch (final InterruptedException e) { - logger.error("Error occured while simulating creation ", e); - Thread.currentThread().interrupt(); - } - logger.info("Call to VNFM Adapter-Create"); - } - -} diff --git a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/notifications/VnfmAdapterDeletionNotification.java b/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/notifications/VnfmAdapterDeletionNotification.java deleted file mode 100644 index af6064fd6a..0000000000 --- a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/notifications/VnfmAdapterDeletionNotification.java +++ /dev/null @@ -1,48 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2019 Nordix Foundation. - * ================================================================================ - * Modifications Copyright (c) 2019 Samsung - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.svnfm.simulator.notifications; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * - * @author Lathishbabu Ganesan (lathishbabu.ganesan@est.tech) - * @author Ronan Kenny (ronan.kenny@est.tech) - */ -public class VnfmAdapterDeletionNotification implements Runnable { - - private static final Logger logger = LoggerFactory.getLogger(VnfmAdapterDeletionNotification.class); - - @Override - public void run() { - try { - Thread.sleep(10000); - } catch (final InterruptedException e) { - logger.error("Error occured while simulating deletion ", e); - Thread.currentThread().interrupt(); - } - logger.info("Call to VNFM Adapter-Delete"); - } - -} diff --git a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/oauth/AuthorizationServerConfig.java b/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/oauth/AuthorizationServerConfig.java deleted file mode 100644 index 5d2c310635..0000000000 --- a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/oauth/AuthorizationServerConfig.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.onap.svnfm.simulator.oauth; - -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Profile; -import org.springframework.security.oauth2.config.annotation.configurers.ClientDetailsServiceConfigurer; -import org.springframework.security.oauth2.config.annotation.web.configuration.AuthorizationServerConfigurerAdapter; -import org.springframework.security.oauth2.config.annotation.web.configuration.EnableAuthorizationServer; - -@Configuration -@EnableAuthorizationServer -@Profile("oauth-authentication") -/** - * Configures the authorization server for oauth token based authentication when the spring profile - * "oauth-authentication" is active - */ -public class AuthorizationServerConfig extends AuthorizationServerConfigurerAdapter { - - private static final int ONE_DAY = 60 * 60 * 24; - - @Override - public void configure(final ClientDetailsServiceConfigurer clients) throws Exception { - clients.inMemory().withClient("vnfmadapter") - .secret("$2a$10$dHzTlqSBcm8hdO52LBvnX./zNTvUzzJy.lZrc4bCBL5gkln0wX6T6") - .authorizedGrantTypes("client_credentials").scopes("write").accessTokenValiditySeconds(ONE_DAY) - .refreshTokenValiditySeconds(ONE_DAY); - } - -} diff --git a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/oauth/JsonSerializerConfiguration.java b/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/oauth/JsonSerializerConfiguration.java deleted file mode 100644 index d6eda28eb6..0000000000 --- a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/oauth/JsonSerializerConfiguration.java +++ /dev/null @@ -1,49 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2019 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ -package org.onap.svnfm.simulator.oauth; - -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -import java.util.ArrayList; -import java.util.Collection; -import org.springframework.boot.autoconfigure.http.HttpMessageConverters; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.http.converter.HttpMessageConverter; -import org.springframework.http.converter.json.GsonHttpMessageConverter; -import org.springframework.security.oauth2.common.OAuth2AccessToken; - -/** - * Configures message converter - */ -@Configuration -public class JsonSerializerConfiguration { - - @Bean - public HttpMessageConverters customConverters() { - final Collection> messageConverters = new ArrayList<>(); - - final Gson gson = new GsonBuilder() - .registerTypeHierarchyAdapter(OAuth2AccessToken.class, new OAuth2AccessTokenAdapter()).create(); - final GsonHttpMessageConverter gsonHttpMessageConverter = new GsonHttpMessageConverter(gson); - messageConverters.add(gsonHttpMessageConverter); - return new HttpMessageConverters(true, messageConverters); - } -} diff --git a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/oauth/OAuth2AccessTokenAdapter.java b/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/oauth/OAuth2AccessTokenAdapter.java deleted file mode 100644 index 7bccffa2e0..0000000000 --- a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/oauth/OAuth2AccessTokenAdapter.java +++ /dev/null @@ -1,31 +0,0 @@ -package org.onap.svnfm.simulator.oauth; - -import com.google.gson.JsonArray; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.JsonSerializationContext; -import com.google.gson.JsonSerializer; -import java.lang.reflect.Type; -import org.springframework.security.oauth2.common.OAuth2AccessToken; - -public class OAuth2AccessTokenAdapter implements JsonSerializer { - - @Override - public JsonElement serialize(final OAuth2AccessToken src, final Type typeOfSrc, - final JsonSerializationContext context) { - final JsonObject obj = new JsonObject(); - obj.addProperty(OAuth2AccessToken.ACCESS_TOKEN, src.getValue()); - obj.addProperty(OAuth2AccessToken.TOKEN_TYPE, src.getTokenType()); - if (src.getRefreshToken() != null) { - obj.addProperty(OAuth2AccessToken.REFRESH_TOKEN, src.getRefreshToken().getValue()); - } - obj.addProperty(OAuth2AccessToken.EXPIRES_IN, src.getExpiresIn()); - final JsonArray scopeObj = new JsonArray(); - for (final String scope : src.getScope()) { - scopeObj.add(scope); - } - obj.add(OAuth2AccessToken.SCOPE, scopeObj); - - return obj; - } -} diff --git a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/oauth/OAuth2ResourceServer.java b/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/oauth/OAuth2ResourceServer.java deleted file mode 100644 index 18fb1a9461..0000000000 --- a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/oauth/OAuth2ResourceServer.java +++ /dev/null @@ -1,36 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2019 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.svnfm.simulator.oauth; - -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Profile; -import org.springframework.security.oauth2.config.annotation.web.configuration.EnableResourceServer; -import org.springframework.security.oauth2.config.annotation.web.configuration.ResourceServerConfigurerAdapter; - -@Configuration -@EnableResourceServer -@Profile("oauth-authentication") -/** - * Enforces oauth token based authentication when the spring profile "oauth-authentication" is active - */ -public class OAuth2ResourceServer extends ResourceServerConfigurerAdapter { - -} diff --git a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/repository/VnfOperationRepository.java b/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/repository/VnfOperationRepository.java deleted file mode 100644 index 43c201734f..0000000000 --- a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/repository/VnfOperationRepository.java +++ /dev/null @@ -1,33 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2019 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.svnfm.simulator.repository; - -import org.onap.svnfm.simulator.model.VnfOperation; -import org.springframework.data.repository.CrudRepository; - -/** - * - * @author Lathishbabu Ganesan (lathishbabu.ganesan@est.tech) - * @author Ronan Kenny (ronan.kenny@est.tech) - */ -public interface VnfOperationRepository extends CrudRepository { - -} diff --git a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/repository/VnfmCacheRepository.java b/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/repository/VnfmCacheRepository.java deleted file mode 100644 index fbdbf744d0..0000000000 --- a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/repository/VnfmCacheRepository.java +++ /dev/null @@ -1,60 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2019 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.svnfm.simulator.repository; - -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.CreateVnfRequest; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201; -import org.onap.svnfm.simulator.constants.Constant; -import org.onap.svnfm.simulator.services.SvnfmService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.cache.annotation.CacheEvict; -import org.springframework.cache.annotation.Cacheable; -import org.springframework.stereotype.Repository; - -/** - * - * @author Lathishbabu Ganesan (lathishbabu.ganesan@est.tech) - * @author Ronan Kenny (ronan.kenny@est.tech) - */ -@Repository -public class VnfmCacheRepository { - - @Autowired - private SvnfmService svnfmService; - - @Cacheable(value = Constant.IN_LINE_RESPONSE_201_CACHE, key = "#id") - public InlineResponse201 createVnf(final CreateVnfRequest createVnfRequest, final String id) { - return svnfmService.createVnf(createVnfRequest, id); - } - - - - public InlineResponse201 getVnf(final String id) { - return svnfmService.getVnf(id); - } - - /** - * @param vnfId - * @return - */ - @CacheEvict(value = Constant.IN_LINE_RESPONSE_201_CACHE, key = "#id") - public void deleteVnf(final String id) {} -} diff --git a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/repository/VnfmRepository.java b/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/repository/VnfmRepository.java deleted file mode 100644 index f28b54a137..0000000000 --- a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/repository/VnfmRepository.java +++ /dev/null @@ -1,35 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2019 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.svnfm.simulator.repository; - -import java.util.Optional; -import org.onap.svnfm.simulator.model.VnfInstance; -import org.springframework.data.repository.CrudRepository; -import org.springframework.data.repository.query.Param; - -/** - * - * @author Lathishbabu Ganesan (lathishbabu.ganesan@est.tech) - * @author Ronan Kenny (ronan.kenny@est.tech) - */ -public interface VnfmRepository extends CrudRepository { - public Optional findById(@Param("id") String id); -} diff --git a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/services/InstantiateOperationProgressor.java b/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/services/InstantiateOperationProgressor.java deleted file mode 100644 index 020fa0390d..0000000000 --- a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/services/InstantiateOperationProgressor.java +++ /dev/null @@ -1,123 +0,0 @@ -package org.onap.svnfm.simulator.services; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.UUID; -import org.modelmapper.ModelMapper; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.GrantsAddResources; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.GrantsAddResources.TypeEnum; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.InlineResponse201; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.InlineResponse201AddResources; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.InlineResponse201VimConnections; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.lcn.model.LcnVnfLcmOperationOccurrenceNotificationAffectedVnfcs.ChangeTypeEnum; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201.InstantiationStateEnum; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201InstantiatedVnfInfo; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201InstantiatedVnfInfoResourceHandle; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201InstantiatedVnfInfoVnfcResourceInfo; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201VimConnectionInfo; -import org.onap.svnfm.simulator.config.ApplicationConfig; -import org.onap.svnfm.simulator.model.VnfOperation; -import org.onap.svnfm.simulator.model.Vnfds; -import org.onap.svnfm.simulator.model.Vnfds.Vnfc; -import org.onap.svnfm.simulator.model.Vnfds.Vnfd; -import org.onap.svnfm.simulator.repository.VnfOperationRepository; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class InstantiateOperationProgressor extends OperationProgressor { - - private static final Logger LOGGER = LoggerFactory.getLogger(InstantiateOperationProgressor.class); - - public InstantiateOperationProgressor(final VnfOperation operation, final SvnfmService svnfmService, - final VnfOperationRepository vnfOperationRepository, final ApplicationConfig applicationConfig, - final Vnfds vnfds, final SubscriptionService subscriptionService) { - super(operation, svnfmService, vnfOperationRepository, applicationConfig, vnfds, subscriptionService); - } - - @Override - protected List getAddResources(final String vnfdId) { - final List resources = new ArrayList<>(); - - for (final Vnfd vnfd : vnfds.getVnfdList()) { - if (vnfd.getVnfdId().equals(vnfdId)) { - for (final Vnfc vnfc : vnfd.getVnfcList()) { - final GrantsAddResources addResource = new GrantsAddResources(); - vnfc.setGrantResourceId(UUID.randomUUID().toString()); - addResource.setId(vnfc.getGrantResourceId()); - addResource.setType(TypeEnum.fromValue(vnfc.getType())); - addResource.setResourceTemplateId(vnfc.getResourceTemplateId()); - addResource.setVduId(vnfc.getVduId()); - resources.add(addResource); - } - } - } - return resources; - } - - @Override - protected List getRemoveResources(final String vnfdId) { - return Collections.emptyList(); - } - - @Override - protected List handleGrantResponse( - final InlineResponse201 grantResponse) { - final InlineResponse201InstantiatedVnfInfo instantiatedVnfInfo = createInstantiatedVnfInfo(grantResponse); - svnfmService.updateVnf(InstantiationStateEnum.INSTANTIATED, instantiatedVnfInfo, operation.getVnfInstanceId(), - getVimConnections(grantResponse)); - return instantiatedVnfInfo.getVnfcResourceInfo(); - } - - private InlineResponse201InstantiatedVnfInfo createInstantiatedVnfInfo(final InlineResponse201 grantResponse) { - final InlineResponse201InstantiatedVnfInfo instantiatedVnfInfo = new InlineResponse201InstantiatedVnfInfo(); - - final Map mapOfGrantResourceIdToVimConnectionId = new HashMap<>(); - for (final InlineResponse201AddResources addResource : grantResponse.getAddResources()) { - mapOfGrantResourceIdToVimConnectionId.put(addResource.getResourceDefinitionId(), - addResource.getVimConnectionId()); - } - LOGGER.info("VIM connections in grant response: {}", mapOfGrantResourceIdToVimConnectionId); - - for (final Vnfd vnfd : vnfds.getVnfdList()) { - if (vnfd.getVnfdId().equals(svnfmService.getVnf(operation.getVnfInstanceId()).getVnfdId())) { - for (final Vnfc vnfc : vnfd.getVnfcList()) { - final InlineResponse201InstantiatedVnfInfoVnfcResourceInfo vnfcResourceInfoItem = - new InlineResponse201InstantiatedVnfInfoVnfcResourceInfo(); - vnfcResourceInfoItem.setId(vnfc.getVnfcId()); - vnfcResourceInfoItem.setVduId(vnfc.getVduId()); - final InlineResponse201InstantiatedVnfInfoResourceHandle computeResource = - new InlineResponse201InstantiatedVnfInfoResourceHandle(); - computeResource.setResourceId(UUID.randomUUID().toString()); - LOGGER.info("Checking for VIM connection id for : {}", vnfc.getGrantResourceId()); - computeResource - .setVimConnectionId(mapOfGrantResourceIdToVimConnectionId.get(vnfc.getGrantResourceId())); - - computeResource.setVimLevelResourceType("OS::Nova::Server"); - vnfcResourceInfoItem.setComputeResource(computeResource); - instantiatedVnfInfo.addVnfcResourceInfoItem(vnfcResourceInfoItem); - } - } - } - - return instantiatedVnfInfo; - } - - - private List getVimConnections(final InlineResponse201 grantResponse) { - final List vimConnectionInfo = new ArrayList<>(); - for (final InlineResponse201VimConnections vimConnection : grantResponse.getVimConnections()) { - final ModelMapper modelMapper = new ModelMapper(); - vimConnectionInfo.add(modelMapper.map(vimConnection, InlineResponse201VimConnectionInfo.class)); - } - return vimConnectionInfo; - } - - @Override - protected ChangeTypeEnum getVnfcChangeType() { - return ChangeTypeEnum.ADDED; - } - -} diff --git a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/services/OperationProgressor.java b/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/services/OperationProgressor.java deleted file mode 100644 index 6e9478bdeb..0000000000 --- a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/services/OperationProgressor.java +++ /dev/null @@ -1,348 +0,0 @@ -package org.onap.svnfm.simulator.services; - -import com.google.gson.JsonObject; -import com.google.gson.JsonParser; -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.net.URL; -import java.nio.charset.StandardCharsets; -import java.security.KeyStore; -import java.security.KeyStoreException; -import java.security.NoSuchAlgorithmException; -import java.security.UnrecoverableKeyException; -import java.security.cert.CertificateException; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; -import javax.net.ssl.HttpsURLConnection; -import javax.net.ssl.KeyManager; -import javax.net.ssl.KeyManagerFactory; -import javax.ws.rs.core.MediaType; -import org.apache.commons.codec.binary.Base64; -import org.modelmapper.ModelMapper; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.ApiResponse; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.GrantRequest; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.GrantsAddResources; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.GrantsLinks; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.GrantsLinksVnfLcmOpOcc; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.InlineResponse201; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.lcn.ApiClient; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.lcn.ApiException; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.lcn.api.DefaultApi; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.lcn.model.LcnVnfLcmOperationOccurrenceNotificationAffectedVnfcs; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.lcn.model.LcnVnfLcmOperationOccurrenceNotificationAffectedVnfcs.ChangeTypeEnum; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.lcn.model.LcnVnfLcmOperationOccurrenceNotificationLinks; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.lcn.model.LcnVnfLcmOperationOccurrenceNotificationLinksVnfInstance; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.lcn.model.VnfLcmOperationOccurrenceNotification; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.lcn.model.VnfLcmOperationOccurrenceNotification.NotificationStatusEnum; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.lcn.model.VnfLcmOperationOccurrenceNotification.NotificationTypeEnum; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.lcn.model.VnfLcmOperationOccurrenceNotification.OperationEnum; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.lcn.model.VnfLcmOperationOccurrenceNotification.OperationStateEnum; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse200; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201InstantiatedVnfInfoVnfcResourceInfo; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.SubscriptionsAuthenticationParamsBasic; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.SubscriptionsAuthenticationParamsOauth2ClientCredentials; -import org.onap.svnfm.simulator.config.ApplicationConfig; -import org.onap.svnfm.simulator.model.VnfOperation; -import org.onap.svnfm.simulator.model.Vnfds; -import org.onap.svnfm.simulator.repository.VnfOperationRepository; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.core.io.ClassPathResource; -import org.springframework.core.io.Resource; - -public abstract class OperationProgressor implements Runnable { - - private static final Logger LOGGER = LoggerFactory.getLogger(OperationProgressor.class); - private static final String CERTIFICATE_TO_TRUST = "so-vnfm-adapter.crt.pem"; - - private Resource keyStoreResource = new ClassPathResource("so-vnfm-simulator.p12"); - private String keyStorePassword = "7Em3&j4.19xYiMelhD5?xbQ."; - - protected final VnfOperation operation; - protected final SvnfmService svnfmService; - private final VnfOperationRepository vnfOperationRepository; - private final ApplicationConfig applicationConfig; - protected final Vnfds vnfds; - private final SubscriptionService subscriptionService; - private final DefaultApi notificationClient; - private final org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.api.DefaultApi grantClient; - - public OperationProgressor(final VnfOperation operation, final SvnfmService svnfmService, - final VnfOperationRepository vnfOperationRepository, final ApplicationConfig applicationConfig, - final Vnfds vnfds, final SubscriptionService subscriptionService) { - this.operation = operation; - this.svnfmService = svnfmService; - this.vnfOperationRepository = vnfOperationRepository; - this.applicationConfig = applicationConfig; - this.vnfds = vnfds; - this.subscriptionService = subscriptionService; - - final ApiClient apiClient = new ApiClient(); - String callBackUrl = subscriptionService.getSubscriptions().iterator().next().getCallbackUri(); - callBackUrl = callBackUrl.substring(0, callBackUrl.indexOf("/lcn/")); - apiClient.setBasePath(callBackUrl); - apiClient.setKeyManagers(getKeyManagers()); - apiClient.setSslCaCert(getCertificateToTrust()); - notificationClient = new DefaultApi(apiClient); - - final org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.ApiClient grantApiClient = - new org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.ApiClient(); - grantApiClient.setBasePath(callBackUrl); - grantApiClient.setKeyManagers(getKeyManagers()); - grantApiClient.setSslCaCert(getCertificateToTrust()); - grantClient = new org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.api.DefaultApi(grantApiClient); - } - - private InputStream getCertificateToTrust() { - try { - return new ClassPathResource(CERTIFICATE_TO_TRUST).getInputStream(); - } catch (final IOException exception) { - LOGGER.error("Error reading certificate to trust, https calls to VNFM adapter will fail", exception); - return null; - } - } - - private KeyManager[] getKeyManagers() { - KeyStore keystore; - try { - keystore = KeyStore.getInstance("pkcs12"); - keystore.load(keyStoreResource.getInputStream(), keyStorePassword.toCharArray()); - KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance("SunX509"); - keyManagerFactory.init(keystore, keyStorePassword.toCharArray()); - return keyManagerFactory.getKeyManagers(); - } catch (KeyStoreException | NoSuchAlgorithmException | CertificateException | IOException - | UnrecoverableKeyException exception) { - LOGGER.error("Error reading certificate, https calls using two way TLS to VNFM adapter will fail", - exception); - return new KeyManager[0]; - } - } - - @Override - public void run() { - try { - final VnfLcmOperationOccurrenceNotification notificationOfStarting = - buildNotification(NotificationStatusEnum.START, OperationStateEnum.STARTING); - sendNotification(notificationOfStarting); - - sleep(2000); - setState(InlineResponse200.OperationStateEnum.PROCESSING); - final VnfLcmOperationOccurrenceNotification notificationOfProcessing = - buildNotification(NotificationStatusEnum.START, OperationStateEnum.PROCESSING); - sendNotification(notificationOfProcessing); - - - final GrantRequest grantRequest = buildGrantRequest(); - final InlineResponse201 grantResponse = sendGrantRequest(grantRequest); - final List vnfcs = handleGrantResponse(grantResponse); - - svnfmService.getVnf(operation.getVnfInstanceId()).getInstantiatedVnfInfo(); - - sleep(10000); - setState(InlineResponse200.OperationStateEnum.COMPLETED); - final VnfLcmOperationOccurrenceNotification notificationOfCompleted = - buildNotification(NotificationStatusEnum.RESULT, OperationStateEnum.COMPLETED); - notificationOfCompleted.setAffectedVnfcs(getVnfcs(vnfcs)); - - sendNotification(notificationOfCompleted); - } catch (final Exception exception) { - LOGGER.error("Error in OperationProgressor ", exception); - } - - } - - private void sleep(final long milliSeconds) { - try { - Thread.sleep(milliSeconds); - } catch (final InterruptedException e) { - operation.setOperationState(InlineResponse200.OperationStateEnum.FAILED); - // Restore interrupted state - Thread.currentThread().interrupt(); - } - } - - private void setState(final InlineResponse200.OperationStateEnum state) { - LOGGER.info("Setting state to {} for operation {}", state, operation.getId()); - operation.setOperationState(state); - vnfOperationRepository.save(operation); - } - - private VnfLcmOperationOccurrenceNotification buildNotification(final NotificationStatusEnum status, - final OperationStateEnum operationState) { - final VnfLcmOperationOccurrenceNotification notification = new VnfLcmOperationOccurrenceNotification(); - notification.setId(UUID.randomUUID().toString()); - notification.setNotificationType(NotificationTypeEnum.VNFLCMOPERATIONOCCURRENCENOTIFICATION); - notification.setNotificationStatus(status); - notification.setOperationState(operationState); - notification.setOperation(OperationEnum.fromValue(operation.getOperation().toString())); - notification.setVnfInstanceId(operation.getVnfInstanceId()); - notification.setVnfLcmOpOccId(operation.getId()); - - final LcnVnfLcmOperationOccurrenceNotificationLinks links = new LcnVnfLcmOperationOccurrenceNotificationLinks(); - final LcnVnfLcmOperationOccurrenceNotificationLinksVnfInstance vnfInstanceLink = - new LcnVnfLcmOperationOccurrenceNotificationLinksVnfInstance(); - vnfInstanceLink.setHref(getVnfLink()); - links.setVnfInstance(vnfInstanceLink); - - - final LcnVnfLcmOperationOccurrenceNotificationLinksVnfInstance operationLink = - new LcnVnfLcmOperationOccurrenceNotificationLinksVnfInstance(); - operationLink.setHref(getOperationLink()); - links.setVnfLcmOpOcc(operationLink); - - notification.setLinks(links); - - return notification; - } - - private List getVnfcs( - final List instantiatedVnfcs) { - final List vnfcs = new ArrayList<>(); - if (instantiatedVnfcs != null) { - for (final InlineResponse201InstantiatedVnfInfoVnfcResourceInfo instantiatedVnfc : instantiatedVnfcs) { - LOGGER.info("VNFC TO BE CONVERTED: {}", instantiatedVnfc); - final ModelMapper mapper = new ModelMapper(); - final LcnVnfLcmOperationOccurrenceNotificationAffectedVnfcs vnfc = - mapper.map(instantiatedVnfc, LcnVnfLcmOperationOccurrenceNotificationAffectedVnfcs.class); - LOGGER.info("VNFC FROM CONVERSION: {}", vnfc); - vnfc.setChangeType(getVnfcChangeType()); - vnfcs.add(vnfc); - } - } - return vnfcs; - } - - private void sendNotification(final VnfLcmOperationOccurrenceNotification notification) { - LOGGER.info("Sending notification: {}", notification); - try { - final SubscriptionsAuthenticationParamsBasic subscriptionAuthentication = - subscriptionService.getSubscriptions().iterator().next().getAuthentication().getParamsBasic(); - final String auth = - subscriptionAuthentication.getUserName() + ":" + subscriptionAuthentication.getPassword(); - final byte[] encodedAuth = Base64.encodeBase64(auth.getBytes(StandardCharsets.ISO_8859_1)); - String authHeader = "Basic " + new String(encodedAuth); - - notificationClient.lcnVnfLcmOperationOccurrenceNotificationPostWithHttpInfo(notification, - MediaType.APPLICATION_JSON, authHeader); - } catch (final ApiException exception) { - LOGGER.error("Error sending notification: " + notification, exception); - LOGGER.error("Response code: {}, body: {}, basePath: {}", exception.getCode(), exception.getResponseBody(), - notificationClient.getApiClient().getBasePath()); - - } - } - - - public GrantRequest buildGrantRequest() { - final GrantRequest grantRequest = new GrantRequest(); - grantRequest.setVnfInstanceId(operation.getVnfInstanceId()); - final String vnfdId = svnfmService.getVnf(operation.getVnfInstanceId()).getVnfdId(); - grantRequest.setVnfdId(vnfdId); - grantRequest.setAddResources(getAddResources(vnfdId)); - grantRequest.setRemoveResources(getRemoveResources(vnfdId)); - grantRequest.setVnfLcmOpOccId(operation.getId()); - grantRequest - .setOperation(org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.GrantRequest.OperationEnum - .fromValue(operation.getOperation().getValue())); - grantRequest.setIsAutomaticInvocation(false); - - final GrantsLinksVnfLcmOpOcc vnfInstanceLink = new GrantsLinksVnfLcmOpOcc(); - vnfInstanceLink.setHref(getVnfLink()); - final GrantsLinksVnfLcmOpOcc operationInstanceLink = new GrantsLinksVnfLcmOpOcc(); - operationInstanceLink.setHref(getOperationLink()); - final GrantsLinks links = new GrantsLinks(); - links.setVnfInstance(vnfInstanceLink); - links.setVnfLcmOpOcc(operationInstanceLink); - grantRequest.setLinks(links); - return grantRequest; - } - - protected abstract List getAddResources(final String vnfdId); - - protected abstract List getRemoveResources(final String vnfdId); - - protected abstract List handleGrantResponse( - InlineResponse201 grantResponse); - - protected abstract ChangeTypeEnum getVnfcChangeType(); - - private InlineResponse201 sendGrantRequest(final GrantRequest grantRequest) { - LOGGER.info("Sending grant request: {}", grantRequest); - try { - - final SubscriptionsAuthenticationParamsOauth2ClientCredentials subscriptionAuthentication = - subscriptionService.getSubscriptions().iterator().next().getAuthentication() - .getParamsOauth2ClientCredentials(); - - final String authHeader = applicationConfig.getGrantAuth().equals("oauth") - ? "Bearer " + getToken(notificationClient.getApiClient(), subscriptionAuthentication) - : null; - - final ApiResponse response = grantClient.grantsPostWithHttpInfo(grantRequest, - MediaType.APPLICATION_JSON, MediaType.APPLICATION_JSON, authHeader); - LOGGER.info("Grant Response: {}", response); - return response.getData(); - } catch (final org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.ApiException exception) { - LOGGER.error("Error sending notification: " + grantRequest, exception); - return null; - } - } - - private String getVnfLink() { - return getLinkBaseUrl() + "/vnf_instances/" + operation.getVnfInstanceId(); - } - - private String getOperationLink() { - return getLinkBaseUrl() + "/vnf_lcm_op_occs/" + operation.getId(); - } - - private String getLinkBaseUrl() { - return applicationConfig.getBaseUrl() + "/vnflcm/v1"; - } - - private String getToken(final ApiClient apiClient, - final SubscriptionsAuthenticationParamsOauth2ClientCredentials oauthClientCredentials) { - final String basePath = apiClient.getBasePath().substring(0, apiClient.getBasePath().indexOf("/so/")); - final String tokenUrl = basePath + "/oauth/token?grant_type=client_credentials"; - - try { - URL url = new URL(tokenUrl); - HttpsURLConnection connection = (HttpsURLConnection) url.openConnection(); - connection.setRequestMethod("POST"); - final String authorizationHeader = getAuthorizationHeader(oauthClientCredentials); - connection.addRequestProperty("Authorization", authorizationHeader); - - connection.connect(); - - return getResponse(connection).get("access_token").getAsString(); - - } catch (IOException exception) { - LOGGER.error("Error getting token", exception); - return null; - } - } - - private String getAuthorizationHeader( - final SubscriptionsAuthenticationParamsOauth2ClientCredentials oauthClientCredentials) { - final String auth = oauthClientCredentials.getClientId() + ":" + oauthClientCredentials.getClientPassword(); - final byte[] encodedAuth = Base64.encodeBase64(auth.getBytes(StandardCharsets.UTF_8)); - return "Basic " + new String(encodedAuth); - } - - private JsonObject getResponse(HttpsURLConnection connection) throws IOException { - BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream())); - String line, data = ""; - while ((line = in.readLine()) != null) { - data += line; - } - in.close(); - connection.getInputStream().close(); - - JsonObject jsonObject = new JsonParser().parse(data).getAsJsonObject(); - return jsonObject; - } - -} diff --git a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/services/SubscriptionService.java b/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/services/SubscriptionService.java deleted file mode 100644 index 6a2340bdf6..0000000000 --- a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/services/SubscriptionService.java +++ /dev/null @@ -1,21 +0,0 @@ -package org.onap.svnfm.simulator.services; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.LccnSubscriptionRequest; -import org.springframework.stereotype.Service; - -@Service -public class SubscriptionService { - - Collection subscriptions = new ArrayList<>(); - - public void registerSubscription(final LccnSubscriptionRequest subscription) { - subscriptions.add(subscription); - } - - public Collection getSubscriptions() { - return Collections.unmodifiableCollection(subscriptions); - } -} diff --git a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/services/SvnfmService.java b/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/services/SvnfmService.java deleted file mode 100644 index 95043d35ed..0000000000 --- a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/services/SvnfmService.java +++ /dev/null @@ -1,169 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2019 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.svnfm.simulator.services; - -import java.lang.reflect.InvocationTargetException; -import java.util.List; -import java.util.UUID; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import org.modelmapper.ModelMapper; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.CreateVnfRequest; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse200; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201.InstantiationStateEnum; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201InstantiatedVnfInfo; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201VimConnectionInfo; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.LccnSubscriptionRequest; -import org.onap.svnfm.simulator.config.ApplicationConfig; -import org.onap.svnfm.simulator.constants.Constant; -import org.onap.svnfm.simulator.model.VnfInstance; -import org.onap.svnfm.simulator.model.VnfOperation; -import org.onap.svnfm.simulator.model.Vnfds; -import org.onap.svnfm.simulator.notifications.VnfInstantiationNotification; -import org.onap.svnfm.simulator.notifications.VnfmAdapterCreationNotification; -import org.onap.svnfm.simulator.repository.VnfOperationRepository; -import org.onap.svnfm.simulator.repository.VnfmRepository; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.cache.Cache; -import org.springframework.cache.CacheManager; -import org.springframework.cache.annotation.CachePut; -import org.springframework.cache.support.SimpleValueWrapper; -import org.springframework.stereotype.Service; - -/** - * - * @author Lathishbabu Ganesan (lathishbabu.ganesan@est.tech) - * @author Ronan Kenny (ronan.kenny@est.tech) - */ -@Service -public class SvnfmService { - - private VnfmRepository vnfmRepository; - private VnfOperationRepository vnfOperationRepository; - private VnfmHelper vnfmHelper; - private ApplicationConfig applicationConfig; - private CacheManager cacheManager; - private Vnfds vnfds; - private SubscriptionService subscriptionService; - - private final ExecutorService executor = Executors.newCachedThreadPool(); - - private static final Logger LOGGER = LoggerFactory.getLogger(SvnfmService.class); - - @Autowired - public SvnfmService(VnfmRepository vnfmRepository, VnfOperationRepository vnfOperationRepository, - VnfmHelper vnfmHelper, ApplicationConfig applicationConfig, CacheManager cacheManager, Vnfds vnfds, - SubscriptionService subscriptionService) { - this.vnfmRepository = vnfmRepository; - this.vnfOperationRepository = vnfOperationRepository; - this.vnfmHelper = vnfmHelper; - this.applicationConfig = applicationConfig; - this.cacheManager = cacheManager; - this.vnfds = vnfds; - this.subscriptionService = subscriptionService; - } - - public InlineResponse201 createVnf(final CreateVnfRequest createVNFRequest, final String id) { - InlineResponse201 inlineResponse201 = null; - try { - final VnfInstance vnfInstance = vnfmHelper.createVnfInstance(createVNFRequest, id); - vnfmRepository.save(vnfInstance); - final Thread creationNotification = new Thread(new VnfmAdapterCreationNotification()); - creationNotification.start(); - inlineResponse201 = vnfmHelper.getInlineResponse201(vnfInstance); - LOGGER.debug("Response from Create VNF {}", inlineResponse201); - } catch (IllegalAccessException | InvocationTargetException e) { - LOGGER.error("Failed in Create Vnf", e); - } - return inlineResponse201; - } - - @CachePut(value = Constant.IN_LINE_RESPONSE_201_CACHE, key = "#id") - public void updateVnf(final InstantiationStateEnum instantiationState, - final InlineResponse201InstantiatedVnfInfo instantiatedVnfInfo, final String id, - final List vimConnectionInfo) { - final InlineResponse201 vnf = getVnf(id); - vnf.setInstantiatedVnfInfo(instantiatedVnfInfo); - vnf.setInstantiationState(instantiationState); - vnf.setVimConnectionInfo(vimConnectionInfo); - } - - public String instantiateVnf(final String vnfId) { - final VnfOperation vnfOperation = buildVnfOperation(InlineResponse200.OperationEnum.INSTANTIATE, vnfId); - vnfOperationRepository.save(vnfOperation); - executor.submit(new InstantiateOperationProgressor(vnfOperation, this, vnfOperationRepository, - applicationConfig, vnfds, subscriptionService)); - return vnfOperation.getId(); - } - - private VnfOperation buildVnfOperation(final InlineResponse200.OperationEnum operation, final String vnfId) { - final VnfOperation vnfOperation = new VnfOperation(); - vnfOperation.setId(UUID.randomUUID().toString()); - vnfOperation.setOperation(operation); - vnfOperation.setOperationState(InlineResponse200.OperationStateEnum.STARTING); - vnfOperation.setVnfInstanceId(vnfId); - return vnfOperation; - } - - public InlineResponse200 getOperationStatus(final String operationId) { - LOGGER.info("Getting operation status with id: {}", operationId); - final Thread instantiationNotification = new Thread(new VnfInstantiationNotification()); - instantiationNotification.start(); - for (final VnfOperation operation : vnfOperationRepository.findAll()) { - LOGGER.info("Operation found: {}", operation); - if (operation.getId().equals(operationId)) { - final ModelMapper modelMapper = new ModelMapper(); - return modelMapper.map(operation, InlineResponse200.class); - } - } - return null; - } - - public InlineResponse201 getVnf(final String vnfId) { - final Cache ca = cacheManager.getCache(Constant.IN_LINE_RESPONSE_201_CACHE); - if (ca == null) - return null; - final SimpleValueWrapper wrapper = (SimpleValueWrapper) ca.get(vnfId); - if (wrapper == null) - return null; - final InlineResponse201 inlineResponse201 = (InlineResponse201) wrapper.get(); - if (inlineResponse201 != null) { - LOGGER.info("Cache Read Successful"); - return inlineResponse201; - } - return null; - } - - public String terminateVnf(final String vnfId) { - final VnfOperation vnfOperation = buildVnfOperation(InlineResponse200.OperationEnum.TERMINATE, vnfId); - vnfOperationRepository.save(vnfOperation); - executor.submit(new TerminateOperationProgressor(vnfOperation, this, vnfOperationRepository, applicationConfig, - vnfds, subscriptionService)); - return vnfOperation.getId(); - } - - public void registerSubscription(final LccnSubscriptionRequest subscription) { - subscriptionService.registerSubscription(subscription); - } -} diff --git a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/services/TerminateOperationProgressor.java b/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/services/TerminateOperationProgressor.java deleted file mode 100644 index c829be9a4f..0000000000 --- a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/services/TerminateOperationProgressor.java +++ /dev/null @@ -1,74 +0,0 @@ -package org.onap.svnfm.simulator.services; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.UUID; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.GrantsAddResources; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.GrantsAddResources.TypeEnum; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.GrantsResource; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.InlineResponse201; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.lcn.model.LcnVnfLcmOperationOccurrenceNotificationAffectedVnfcs.ChangeTypeEnum; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201.InstantiationStateEnum; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201InstantiatedVnfInfoResourceHandle; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201InstantiatedVnfInfoVnfcResourceInfo; -import org.onap.svnfm.simulator.config.ApplicationConfig; -import org.onap.svnfm.simulator.model.VnfOperation; -import org.onap.svnfm.simulator.model.Vnfds; -import org.onap.svnfm.simulator.repository.VnfOperationRepository; - -public class TerminateOperationProgressor extends OperationProgressor { - - public TerminateOperationProgressor(final VnfOperation operation, final SvnfmService svnfmService, - final VnfOperationRepository vnfOperationRepository, final ApplicationConfig applicationConfig, - final Vnfds vnfds, final SubscriptionService subscriptionService) { - super(operation, svnfmService, vnfOperationRepository, applicationConfig, vnfds, subscriptionService); - } - - @Override - protected List getAddResources(final String vnfdId) { - return Collections.emptyList(); - } - - @Override - protected List getRemoveResources(final String vnfdId) { - final List resources = new ArrayList<>(); - - final org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201 vnf = - svnfmService.getVnf(operation.getVnfInstanceId()); - for (final InlineResponse201InstantiatedVnfInfoVnfcResourceInfo vnfc : vnf.getInstantiatedVnfInfo() - .getVnfcResourceInfo()) { - final GrantsAddResources addResource = new GrantsAddResources(); - addResource.setId(UUID.randomUUID().toString()); - addResource.setType(TypeEnum.COMPUTE); - addResource.setVduId(vnfc.getVduId()); - final GrantsResource resource = new GrantsResource(); - - final InlineResponse201InstantiatedVnfInfoResourceHandle computeResource = vnfc.getComputeResource(); - resource.setResourceId(computeResource.getResourceId()); - resource.setVimConnectionId(computeResource.getVimConnectionId()); - resource.setVimLevelResourceType(computeResource.getVimLevelResourceType()); - addResource.setResource(resource); - resources.add(addResource); - - } - return resources; - } - - @Override - protected List handleGrantResponse( - final InlineResponse201 grantResponse) { - final List vnfcs = - svnfmService.getVnf(operation.getVnfInstanceId()).getInstantiatedVnfInfo().getVnfcResourceInfo(); - svnfmService.updateVnf(InstantiationStateEnum.NOT_INSTANTIATED, null, operation.getVnfInstanceId(), null); - return vnfcs; - } - - @Override - protected ChangeTypeEnum getVnfcChangeType() { - return ChangeTypeEnum.REMOVED; - } - - - -} diff --git a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/services/VnfmHelper.java b/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/services/VnfmHelper.java deleted file mode 100644 index 8f1e299fec..0000000000 --- a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/services/VnfmHelper.java +++ /dev/null @@ -1,106 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2019 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.svnfm.simulator.services; - -import java.lang.reflect.InvocationTargetException; -import java.util.HashMap; -import java.util.Map; -import org.apache.commons.beanutils.BeanUtils; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.CreateVnfRequest; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201.InstantiationStateEnum; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201Links; -import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201LinksSelf; -import org.onap.svnfm.simulator.config.ApplicationConfig; -import org.onap.svnfm.simulator.constants.Constant; -import org.onap.svnfm.simulator.model.VnfInstance; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -/** - * - * @author Lathishbabu Ganesan (lathishbabu.ganesan@est.tech) - * @author Ronan Kenny (ronan.kenny@est.tech) - */ -@Component -public class VnfmHelper { - - private ApplicationConfig applicationConfig; - - @Autowired - public VnfmHelper(ApplicationConfig applicationConfig) { - this.applicationConfig = applicationConfig; - } - - /** - * - * @param createVNFRequest - * @return vnfInstance - */ - public VnfInstance createVnfInstance(final CreateVnfRequest createVNFRequest, final String id) { - final VnfInstance vnfInstance = new VnfInstance(); - vnfInstance.setId(id); - vnfInstance.setVnfInstanceName(createVNFRequest.getVnfInstanceName()); - vnfInstance.setVnfInstanceDescription(createVNFRequest.getVnfInstanceDescription()); - vnfInstance.setVnfdId(createVNFRequest.getVnfdId()); - vnfInstance.setVnfProvider(Constant.VNF_PROVIDER); - vnfInstance.setVnfProductName(Constant.VNF_PROVIDER_NAME); - return vnfInstance; - } - - /** - * - * @param vnfInstance - * @return inlineResponse201 - * @throws IllegalAccessException - * @throws InvocationTargetException - */ - public InlineResponse201 getInlineResponse201(final VnfInstance vnfInstance) - throws IllegalAccessException, InvocationTargetException { - final InlineResponse201 inlineResponse201 = new InlineResponse201(); - BeanUtils.copyProperties(inlineResponse201, vnfInstance); - inlineResponse201.setVnfdVersion(Constant.VNFD_VERSION); - inlineResponse201.setVnfSoftwareVersion(Constant.VNF_SOFTWARE_VERSION); - inlineResponse201.setInstantiationState(InstantiationStateEnum.NOT_INSTANTIATED); - inlineResponse201.setVnfConfigurableProperties(getConfigProperties()); - addAdditionalPRopertyInlineResponse201(inlineResponse201); - return inlineResponse201; - } - - private Map getConfigProperties() { - final Map configProperties = new HashMap<>(); - configProperties.put("ipAddress", "10.11.12.13"); - return configProperties; - } - - private void addAdditionalPRopertyInlineResponse201(final InlineResponse201 inlineResponse201) { - final InlineResponse201LinksSelf VnfInstancesLinksSelf = new InlineResponse201LinksSelf(); - VnfInstancesLinksSelf - .setHref(applicationConfig.getBaseUrl() + "/vnflcm/v1/vnf_instances/" + inlineResponse201.getId()); - final InlineResponse201LinksSelf VnfInstancesLinksSelfInstantiate = new InlineResponse201LinksSelf(); - VnfInstancesLinksSelfInstantiate.setHref(applicationConfig.getBaseUrl() + "/vnflcm/v1/vnf_instances/" - + inlineResponse201.getId() + "/instantiate"); - final InlineResponse201Links inlineResponse201Links = new InlineResponse201Links(); - inlineResponse201Links.setSelf(VnfInstancesLinksSelf); - inlineResponse201Links.setInstantiate(VnfInstancesLinksSelfInstantiate); - inlineResponse201.setLinks(inlineResponse201Links); - } -} -- cgit 1.2.3-korg