[SDC-29] rebase continue work to align source
[sdc.git] / asdctool / src / main / java / org / openecomp / sdc / asdctool / impl / migration / v1707 / jsonmodel / VFResourcesMigration.java
1 package org.openecomp.sdc.asdctool.impl.migration.v1707.jsonmodel;
2
3 import fj.data.Either;
4 import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum;
5 import org.openecomp.sdc.be.model.Resource;
6 import org.openecomp.sdc.be.model.operations.api.IResourceOperation;
7 import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
8 import org.slf4j.Logger;
9 import org.slf4j.LoggerFactory;
10
11 import java.util.List;
12
13 public class VFResourcesMigration extends ComponentMigration<Resource> {
14
15     private static Logger LOGGER = LoggerFactory.getLogger(VFResourcesMigration.class);
16
17     @javax.annotation.Resource(name = "resource-operation")
18     private IResourceOperation resourceOperation;
19
20     @javax.annotation.Resource(name = "resource-version-migration")
21     private VersionMigration<Resource> versionMigration;
22
23     @Override
24     public String description() {
25         return "migrate VFs";
26     }
27
28     @Override
29     Either<List<Resource>, ?> getElementsToMigrate() {
30         return resourceOperation.getVFResources();
31     }
32
33     @Override
34     boolean save(Resource element) {
35         requirementsCapabilitiesMigrationService.overrideInstanceCapabilitiesRequirements(element);
36         return super.save(element);
37     }
38
39     @Override
40     boolean doPostSaveOperation(Resource element) {
41         return element.getComponentInstances() == null ||
42                 (requirementsCapabilitiesMigrationService.associateFulfilledRequirements(element, NodeTypeEnum.Resource) &&
43                  requirementsCapabilitiesMigrationService.associateFulfilledCapabilities(element, NodeTypeEnum.Resource));
44     }
45
46     @Override
47     boolean doPostMigrateOperation(List<Resource> elements) {
48         LOGGER.info("migrating VFs versions");
49         return versionMigration.buildComponentsVersionChain(elements);
50     }
51
52
53 }