Consistency checker for groups

This checks for

 * Internal groups that includes themselves (transitively)
 * Dangling group references
 * Dangling group names.
 * Non-unique group names
 * Non-unique sequential group IDs
 * Malformed configuration files
 * Missing group name ref

Change-Id: I0f9fdea82128581f893ac3bfb5b3714fafffd858
This commit is contained in:
Han-Wen Nienhuys
2017-11-14 14:33:21 +01:00
parent aaa3e8e71a
commit 2b915714ec
7 changed files with 685 additions and 7 deletions

View File

@@ -20,6 +20,7 @@ import java.util.Objects;
public class ConsistencyCheckInfo {
public CheckAccountsResultInfo checkAccountsResult;
public CheckAccountExternalIdsResultInfo checkAccountExternalIdsResult;
public CheckGroupsResultInfo checkGroupsResult;
public static class CheckAccountsResultInfo {
public List<ConsistencyProblemInfo> problems;
@@ -37,6 +38,14 @@ public class ConsistencyCheckInfo {
}
}
public static class CheckGroupsResultInfo {
public List<ConsistencyProblemInfo> problems;
public CheckGroupsResultInfo(List<ConsistencyProblemInfo> problems) {
this.problems = problems;
}
}
public static class ConsistencyProblemInfo {
public enum Status {
ERROR,

View File

@@ -17,8 +17,11 @@ package com.google.gerrit.extensions.api.config;
public class ConsistencyCheckInput {
public CheckAccountsInput checkAccounts;
public CheckAccountExternalIdsInput checkAccountExternalIds;
public CheckGroupsInput checkGroups;
public static class CheckAccountsInput {}
public static class CheckAccountExternalIdsInput {}
public static class CheckGroupsInput {}
}