diff options
Diffstat (limited to 'vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/services/SvnfmService.java')
-rw-r--r-- | vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/services/SvnfmService.java | 169 |
1 files changed, 0 insertions, 169 deletions
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<InlineResponse201VimConnectionInfo> 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); - } -} |