1 package org.onap.so.svnfm.simulator.services;
 
   3 import java.util.ArrayList;
 
   4 import java.util.Collections;
 
   7 import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.GrantsAddResources;
 
   8 import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.GrantsAddResources.TypeEnum;
 
   9 import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.GrantsResource;
 
  10 import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.InlineResponse201;
 
  11 import org.onap.so.adapters.vnfmadapter.extclients.vnfm.lcn.model.LcnVnfLcmOperationOccurrenceNotificationAffectedVnfcs.ChangeTypeEnum;
 
  12 import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201.InstantiationStateEnum;
 
  13 import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201InstantiatedVnfInfoResourceHandle;
 
  14 import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201InstantiatedVnfInfoVnfcResourceInfo;
 
  15 import org.onap.so.svnfm.simulator.model.Vnfds;
 
  16 import org.onap.so.svnfm.simulator.repository.VnfOperationRepository;
 
  17 import org.onap.so.svnfm.simulator.config.ApplicationConfig;
 
  18 import org.onap.so.svnfm.simulator.model.VnfOperation;
 
  20 public class TerminateOperationProgressor extends OperationProgressor {
 
  22     public TerminateOperationProgressor(final VnfOperation operation, final SvnfmService svnfmService,
 
  23             final VnfOperationRepository vnfOperationRepository, final ApplicationConfig applicationConfig,
 
  24             final Vnfds vnfds, final SubscriptionService subscriptionService) {
 
  25         super(operation, svnfmService, vnfOperationRepository, applicationConfig, vnfds, subscriptionService);
 
  29     protected List<GrantsAddResources> getAddResources(final String vnfdId) {
 
  30         return Collections.emptyList();
 
  34     protected List<GrantsAddResources> getRemoveResources(final String vnfdId) {
 
  35         final List<GrantsAddResources> resources = new ArrayList<>();
 
  37         final org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201 vnf =
 
  38                 svnfmService.getVnf(operation.getVnfInstanceId());
 
  39         for (final InlineResponse201InstantiatedVnfInfoVnfcResourceInfo vnfc : vnf.getInstantiatedVnfInfo()
 
  40                 .getVnfcResourceInfo()) {
 
  41             final GrantsAddResources addResource = new GrantsAddResources();
 
  42             addResource.setId(UUID.randomUUID().toString());
 
  43             addResource.setType(TypeEnum.COMPUTE);
 
  44             addResource.setVduId(vnfc.getVduId());
 
  45             final GrantsResource resource = new GrantsResource();
 
  47             final InlineResponse201InstantiatedVnfInfoResourceHandle computeResource = vnfc.getComputeResource();
 
  48             resource.setResourceId(computeResource.getResourceId());
 
  49             resource.setVimConnectionId(computeResource.getVimConnectionId());
 
  50             resource.setVimLevelResourceType(computeResource.getVimLevelResourceType());
 
  51             addResource.setResource(resource);
 
  52             resources.add(addResource);
 
  59     protected List<InlineResponse201InstantiatedVnfInfoVnfcResourceInfo> handleGrantResponse(
 
  60             final InlineResponse201 grantResponse) {
 
  61         final List<InlineResponse201InstantiatedVnfInfoVnfcResourceInfo> vnfcs =
 
  62                 svnfmService.getVnf(operation.getVnfInstanceId()).getInstantiatedVnfInfo().getVnfcResourceInfo();
 
  63         svnfmService.updateVnf(InstantiationStateEnum.NOT_INSTANTIATED, null, operation.getVnfInstanceId(), null);
 
  68     protected ChangeTypeEnum getVnfcChangeType() {
 
  69         return ChangeTypeEnum.REMOVED;