Upgrading current ETSI CSIT to latest honolulu
[integration/csit.git] / plans / so / integration-etsi-testing / so-simulators / vnfm-simulator / vnfm-service / src / main / java / org / onap / so / svnfm / simulator / services / TerminateOperationProgressor.java
1 package org.onap.so.svnfm.simulator.services;
2
3 import java.util.ArrayList;
4 import java.util.Collections;
5 import java.util.List;
6 import java.util.UUID;
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.config.ApplicationConfig;
16 import org.onap.so.svnfm.simulator.model.VnfOperation;
17 import org.onap.so.svnfm.simulator.model.Vnfds;
18 import org.onap.so.svnfm.simulator.repository.VnfOperationRepository;
19 import org.slf4j.Logger;
20 import org.slf4j.LoggerFactory;
21
22 public class TerminateOperationProgressor extends OperationProgressor {
23     private static final Logger LOGGER = LoggerFactory.getLogger(TerminateOperationProgressor.class);
24
25     public TerminateOperationProgressor(final VnfOperation operation, final SvnfmService svnfmService,
26             final VnfOperationRepository vnfOperationRepository, final ApplicationConfig applicationConfig,
27             final Vnfds vnfds, final SubscriptionService subscriptionService) {
28         super(operation, svnfmService, vnfOperationRepository, applicationConfig, vnfds, subscriptionService);
29     }
30
31     @Override
32     protected List<GrantsAddResources> getAddResources(final String vnfdId) {
33         return Collections.emptyList();
34     }
35
36     @Override
37     protected List<GrantsAddResources> getRemoveResources(final String vnfdId) {
38         final List<GrantsAddResources> resources = new ArrayList<>();
39         LOGGER.info("Will find RemoveResources for vnfdId: {}", vnfdId);
40
41         final String vnfInstanceId = operation.getVnfInstanceId();
42         final org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201 vnf =
43                 svnfmService.getVnf(vnfInstanceId);
44         LOGGER.info("Found InlineResponse201: {} for vnfInstanceId: {}", vnf, vnfInstanceId);
45         for (final InlineResponse201InstantiatedVnfInfoVnfcResourceInfo vnfc : vnf.getInstantiatedVnfInfo()
46                 .getVnfcResourceInfo()) {
47             final GrantsAddResources addResource = new GrantsAddResources();
48             addResource.setId(UUID.randomUUID().toString());
49             addResource.setType(TypeEnum.COMPUTE);
50             addResource.setVduId(vnfc.getVduId());
51             final GrantsResource resource = new GrantsResource();
52
53             final InlineResponse201InstantiatedVnfInfoResourceHandle computeResource = vnfc.getComputeResource();
54             resource.setResourceId(computeResource.getResourceId());
55             resource.setVimConnectionId(computeResource.getVimConnectionId());
56             resource.setVimLevelResourceType(computeResource.getVimLevelResourceType());
57             addResource.setResource(resource);
58             resources.add(addResource);
59
60         }
61         return resources;
62     }
63
64     @Override
65     protected List<InlineResponse201InstantiatedVnfInfoVnfcResourceInfo> handleGrantResponse(
66             final InlineResponse201 grantResponse) {
67         final List<InlineResponse201InstantiatedVnfInfoVnfcResourceInfo> vnfcs =
68                 svnfmService.getVnf(operation.getVnfInstanceId()).getInstantiatedVnfInfo().getVnfcResourceInfo();
69         svnfmService.updateVnf(InstantiationStateEnum.NOT_INSTANTIATED, null, operation.getVnfInstanceId(), null);
70         return vnfcs;
71     }
72
73     @Override
74     protected ChangeTypeEnum getVnfcChangeType() {
75         return ChangeTypeEnum.REMOVED;
76     }
77
78
79
80 }