public List checkConflict()

in hugegraph-tools/src/main/java/org/apache/hugegraph/manager/AuthBackupRestoreManager.java [258:300]


        public List<String> checkConflict() {
            List<User> users = retry(client.authManager()::listUsers,
                                     "querying users of authority");
            Map<String, User> userMap = Maps.newHashMap();
            for (User user : users) {
                userMap.put(user.name(), user);
            }
            List<String> userJsons = readRestoreData(HugeType.USER);
            List<String> conflicts = Lists.newArrayList();
            for (String user : userJsons) {
                int conflict = NO_CONFLICT;
                User restoreUser = JsonUtil.fromJson(user, User.class);
                if (!userMap.containsKey(restoreUser.name())) {
                    this.prepareUserForRestore(restoreUser);
                    continue;
                }
                User existUser = userMap.get(restoreUser.name());
                if (!StringUtils.equals(existUser.phone(),
                                        restoreUser.phone())) {
                    conflict++;
                }
                if (!StringUtils.equals(existUser.email(),
                                        restoreUser.email())) {
                    conflict++;
                }
                if (!StringUtils.equals(existUser.avatar(),
                                        restoreUser.avatar())) {
                    conflict++;
                }
                if (conflict > NO_CONFLICT) {
                    E.checkState(strategy.isStopStrategy() ||
                                 strategy.isIgnoreStrategy(),
                                 "Restore users strategy is not found");
                    if (strategy.isStopStrategy()) {
                        conflicts.add(restoreUser.toString());
                    }
                } else {
                    idsMap.put(restoreUser.id().toString(),
                               existUser.id().toString());
                }
            }
            return conflicts;
        }