[SDC-29] rebase continue work to align source
[sdc.git] / asdctool / src / main / java / org / openecomp / sdc / asdctool / impl / migration / v1707 / jsonmodel / UsersMigration.java
1 package org.openecomp.sdc.asdctool.impl.migration.v1707.jsonmodel;
2
3 import fj.data.Either;
4 import org.openecomp.sdc.be.dao.api.ActionStatus;
5 import org.openecomp.sdc.be.dao.utils.UserStatusEnum;
6 import org.openecomp.sdc.be.model.User;
7 import org.openecomp.sdc.be.model.operations.api.IUserAdminOperation;
8 import org.slf4j.Logger;
9 import org.slf4j.LoggerFactory;
10
11 import javax.annotation.Resource;
12 import java.util.List;
13
14 import static org.openecomp.sdc.asdctool.impl.migration.v1707.MigrationUtils.handleError;
15
16 public class UsersMigration extends JsonModelMigration<User> {
17
18     private static Logger LOGGER = LoggerFactory.getLogger(UsersMigration.class);
19
20     @Resource(name = "user-operation")
21     IUserAdminOperation userAdminOperation;
22
23     @Resource(name = "user-operation-migration")
24     IUserAdminOperation userAdminOperationMigration;
25
26
27     @Override
28     Either<List<User>, ActionStatus> getElementsToMigrate() {
29         LOGGER.debug("fetching users to migrate from old graph");
30         return userAdminOperation.getAllUsers();
31     }
32
33     @Override
34     Either<User, ActionStatus> getElementFromNewGraph(User user) {
35         LOGGER.debug(String.format("trying to load user %s from new graph", user.getUserId()));
36         return user.getStatus().equals(UserStatusEnum.ACTIVE) ? userAdminOperationMigration.getUserData(user.getUserId(), false) :
37                                                                 userAdminOperationMigration.getInactiveUserData(user.getUserId());
38     }
39
40     @Override
41     boolean save(User user) {
42         LOGGER.debug(String.format("trying to save user %s to new graph", user.getUserId()));
43         return userAdminOperationMigration.saveUserData(user)
44                 .either(savedUser -> true,
45                         err -> handleError(String.format("failed when saving user %s. error %s", user.getUserId(), err.name())));
46     }
47
48     @Override
49     public ActionStatus getNotFoundErrorStatus() {
50         return ActionStatus.USER_NOT_FOUND;
51     }
52
53     @Override
54     public String description() {
55         return "migrate users";
56     }
57
58 }