1 package org.openecomp.sdc.asdctool.migration.core;
3 import org.openecomp.sdc.asdctool.migration.core.execution.MigrationExecutionResult;
4 import org.openecomp.sdc.asdctool.migration.core.execution.MigrationExecutorImpl;
5 import org.openecomp.sdc.asdctool.migration.core.task.IMigrationStage;
6 import org.openecomp.sdc.asdctool.migration.core.task.IMigrationStage.AspectMigrationEnum;
7 import org.openecomp.sdc.asdctool.migration.core.task.MigrationResult;
8 import org.openecomp.sdc.asdctool.migration.resolver.MigrationResolver;
9 import org.openecomp.sdc.asdctool.migration.service.SdcRepoService;
10 import org.openecomp.sdc.common.log.wrappers.Logger;
12 import java.util.List;
14 public class SdcMigrationTool {
16 private static final Logger LOGGER = Logger.getLogger(SdcMigrationTool.class);
18 private MigrationResolver migrationsResolver;
20 private SdcRepoService sdcRepoService;
22 public SdcMigrationTool(MigrationResolver migrationsResolver, SdcRepoService sdcRepoService) {
23 this.migrationsResolver = migrationsResolver;
24 this.sdcRepoService = sdcRepoService;
27 public SdcMigrationTool() {
30 public boolean migrate(boolean enforceAll) {
31 LOGGER.info("starting migration process");
32 handleEnforceMigrationFlag(enforceAll);
33 List<IMigrationStage> migrations = migrationsResolver.resolveMigrations();
34 LOGGER.info("there are {} migrations task to execute", migrations.size());
35 for (IMigrationStage migration : migrations) {
37 MigrationExecutionResult executionResult = new MigrationExecutorImpl().execute(migration);
38 if (migrationHasFailed(executionResult)) {
39 LOGGER.error("migration {} with version {} has failed. error msg: {}", migration.getClass().getName(), migration.getVersion().toString(), executionResult.getMsg());
42 if(migration.getAspectMigration() == AspectMigrationEnum.MIGRATION)
43 sdcRepoService.createMigrationTask(executionResult.toMigrationTaskEntry());
44 } catch (RuntimeException e) {
45 LOGGER.error("migration {} with version {} has failed. error msg: {}", migration.getClass().getName(), migration.getVersion().toString(), e);
52 private boolean migrationHasFailed(MigrationExecutionResult migrationResult) {
53 return migrationResult.getMigrationStatus().equals(MigrationResult.MigrationStatus.FAILED);
56 private void handleEnforceMigrationFlag(boolean enforceAll) {
58 LOGGER.info("enforcing migration for current version");
59 sdcRepoService.clearTasksForCurrentMajor();