Merge branch 'stable-3.0' * stable-3.0: Upgrade bazlets to latest stable-2.16 to build with 2.16.17 API Upgrade bazlets to latest stable-3.0 to build with 3.0.8 API Change-Id: I95f83f70dc04fe8a5be1e9291a648426fc606644
diff --git a/WORKSPACE b/WORKSPACE index e101f49..51723e0 100644 --- a/WORKSPACE +++ b/WORKSPACE
@@ -3,24 +3,24 @@ load("//:bazlets.bzl", "load_bazlets") load_bazlets( - commit = "97eef86854b0fb68b9287831f3075b6f6218ff41", + commit = "2add9fecf8bec8634bddf354815bd0fa93f58dd5", #local_path = "/home/<user>/projects/bazlets", ) # Snapshot Plugin API -#load( -# "@com_googlesource_gerrit_bazlets//:gerrit_api_maven_local.bzl", -# "gerrit_api_maven_local", -#) - -# Load snapshot Plugin API -#gerrit_api_maven_local() - -# Release Plugin API load( - "@com_googlesource_gerrit_bazlets//:gerrit_api.bzl", - "gerrit_api", + "@com_googlesource_gerrit_bazlets//:gerrit_api_maven_local.bzl", + "gerrit_api_maven_local", ) +# Load snapshot Plugin API +gerrit_api_maven_local() + +# Release Plugin API +#load( +# "@com_googlesource_gerrit_bazlets//:gerrit_api.bzl", +# "gerrit_api", +#) + # Load release Plugin API -gerrit_api() +#gerrit_api()
diff --git a/src/main/java/com/ericsson/gerrit/plugins/projectgroupstructure/DefaultAccessRights.java b/src/main/java/com/ericsson/gerrit/plugins/projectgroupstructure/DefaultAccessRights.java index 2b7e337..01b983a 100644 --- a/src/main/java/com/ericsson/gerrit/plugins/projectgroupstructure/DefaultAccessRights.java +++ b/src/main/java/com/ericsson/gerrit/plugins/projectgroupstructure/DefaultAccessRights.java
@@ -17,11 +17,11 @@ import com.google.gerrit.common.data.AccessSection; import com.google.gerrit.common.data.Permission; import com.google.gerrit.common.data.PermissionRule; +import com.google.gerrit.entities.AccountGroup; +import com.google.gerrit.entities.Project; import com.google.gerrit.exceptions.InvalidNameException; import com.google.gerrit.extensions.annotations.PluginData; import com.google.gerrit.extensions.events.NewProjectCreatedListener; -import com.google.gerrit.reviewdb.client.AccountGroup; -import com.google.gerrit.reviewdb.client.Project; import com.google.gerrit.server.account.GroupCache; import com.google.gerrit.server.git.meta.MetaDataUpdate; import com.google.gerrit.server.group.InternalGroup; @@ -97,15 +97,16 @@ return; } - ProjectState project = projectCache.get(Project.NameKey.parse(projectName)); - if (project == null) { + Optional<ProjectState> project = projectCache.get(Project.NameKey.parse(projectName)); + if (!project.isPresent()) { log.error("Could not retrieve projet {} from cache", projectName); return; } - try (MetaDataUpdate md = metaDataUpdateFactory.create(project.getProject().getNameKey())) { + try (MetaDataUpdate md = + metaDataUpdateFactory.create(project.get().getProject().getNameKey())) { ProjectConfig config = projectConfigFactory.read(md); - setAccessRights(config, project); + setAccessRights(config, project.get()); md.setMessage("Set default access rights\n"); config.commit(md); } catch (Exception e) { @@ -191,7 +192,7 @@ // we need to check if group exist if if it does, get its // uuid. Optional<InternalGroup> group = - groupCache.get(new AccountGroup.NameKey(rule.getGroup().getName())); + groupCache.get(AccountGroup.nameKey(rule.getGroup().getName())); if (!group.isPresent()) { log.error("Group {} not found", rule.getGroup().getName());
diff --git a/src/main/java/com/ericsson/gerrit/plugins/projectgroupstructure/ProjectCreationValidator.java b/src/main/java/com/ericsson/gerrit/plugins/projectgroupstructure/ProjectCreationValidator.java index f764b9e..331c968 100644 --- a/src/main/java/com/ericsson/gerrit/plugins/projectgroupstructure/ProjectCreationValidator.java +++ b/src/main/java/com/ericsson/gerrit/plugins/projectgroupstructure/ProjectCreationValidator.java
@@ -17,6 +17,8 @@ import com.google.common.base.Charsets; import com.google.common.hash.Hashing; import com.google.gerrit.common.data.GroupReference; +import com.google.gerrit.entities.AccountGroup; +import com.google.gerrit.entities.Project; import com.google.gerrit.extensions.annotations.PluginCanonicalWebUrl; import com.google.gerrit.extensions.annotations.PluginName; import com.google.gerrit.extensions.api.groups.Groups; @@ -24,8 +26,6 @@ import com.google.gerrit.extensions.restapi.AuthException; import com.google.gerrit.extensions.restapi.ResourceConflictException; import com.google.gerrit.extensions.restapi.RestApiException; -import com.google.gerrit.reviewdb.client.AccountGroup; -import com.google.gerrit.reviewdb.client.Project; import com.google.gerrit.server.CurrentUser; import com.google.gerrit.server.account.GroupMembership; import com.google.gerrit.server.config.AllProjectsNameProvider;
diff --git a/src/test/java/com/ericsson/gerrit/plugins/projectgroupstructure/DefaultAccessRightsIT.java b/src/test/java/com/ericsson/gerrit/plugins/projectgroupstructure/DefaultAccessRightsIT.java index 33a986d..7eca913 100644 --- a/src/test/java/com/ericsson/gerrit/plugins/projectgroupstructure/DefaultAccessRightsIT.java +++ b/src/test/java/com/ericsson/gerrit/plugins/projectgroupstructure/DefaultAccessRightsIT.java
@@ -15,20 +15,24 @@ package com.ericsson.gerrit.plugins.projectgroupstructure; import static com.google.common.truth.Truth.assertThat; +import static com.google.gerrit.acceptance.testsuite.project.TestProjectUpdate.allowCapability; import static com.google.gerrit.server.group.SystemGroupBackend.REGISTERED_USERS; import com.google.gerrit.acceptance.LightweightPluginDaemonTest; import com.google.gerrit.acceptance.TestPlugin; +import com.google.gerrit.acceptance.testsuite.project.ProjectOperations; import com.google.gerrit.common.data.AccessSection; import com.google.gerrit.common.data.GlobalCapability; import com.google.gerrit.common.data.Permission; +import com.google.gerrit.entities.AccountGroup; +import com.google.gerrit.entities.Project; import com.google.gerrit.extensions.api.projects.ProjectInput; import com.google.gerrit.extensions.restapi.Url; -import com.google.gerrit.reviewdb.client.AccountGroup; -import com.google.gerrit.reviewdb.client.Project; import com.google.gerrit.server.project.ProjectConfig; import com.google.gerrit.server.project.ProjectState; +import com.google.inject.Inject; import java.nio.file.Files; +import java.util.Optional; import org.junit.Before; import org.junit.Test; @@ -37,6 +41,8 @@ sysModule = "com.ericsson.gerrit.plugins.projectgroupstructure.Module") public class DefaultAccessRightsIT extends LightweightPluginDaemonTest { + @Inject private ProjectOperations projectOperations; + @Override @Before public void setUpTestPlugin() throws Exception { @@ -60,8 +66,16 @@ super.setUpTestPlugin(); // These access rights are mandatory configuration for this plugin as // documented in config.md - allowGlobalCapabilities(REGISTERED_USERS, GlobalCapability.CREATE_GROUP); - allowGlobalCapabilities(REGISTERED_USERS, GlobalCapability.CREATE_PROJECT); + projectOperations + .project(allProjects) + .forUpdate() + .add(allowCapability(GlobalCapability.CREATE_GROUP).group(REGISTERED_USERS)) + .update(); + projectOperations + .project(allProjects) + .forUpdate() + .add(allowCapability(GlobalCapability.CREATE_PROJECT).group(REGISTERED_USERS)) + .update(); } @Test @@ -71,9 +85,9 @@ String projectName = name("someProject"); userRestSession.put("/projects/" + projectName, in).assertCreated(); - ProjectState projectState = projectCache.get(new Project.NameKey(projectName)); - AccountGroup.UUID ownerUUID = projectState.getOwners().iterator().next(); - ProjectConfig projectConfig = projectState.getConfig(); + Optional<ProjectState> projectState = projectCache.get(Project.nameKey(projectName)); + AccountGroup.UUID ownerUUID = projectState.get().getOwners().iterator().next(); + ProjectConfig projectConfig = projectState.get().getConfig(); assertThat(projectConfig.getAccessSections().size()).isEqualTo(2); @@ -127,7 +141,8 @@ assertThat( projectCache - .get(new Project.NameKey(projectName)) + .get(Project.nameKey(projectName)) + .get() .getConfig() .getAccessSections() .size())
diff --git a/src/test/java/com/ericsson/gerrit/plugins/projectgroupstructure/ProjectCreationValidatorIT.java b/src/test/java/com/ericsson/gerrit/plugins/projectgroupstructure/ProjectCreationValidatorIT.java index f390a30..1f1d52c 100644 --- a/src/test/java/com/ericsson/gerrit/plugins/projectgroupstructure/ProjectCreationValidatorIT.java +++ b/src/test/java/com/ericsson/gerrit/plugins/projectgroupstructure/ProjectCreationValidatorIT.java
@@ -15,6 +15,7 @@ package com.ericsson.gerrit.plugins.projectgroupstructure; import static com.google.common.truth.Truth.assertThat; +import static com.google.gerrit.acceptance.testsuite.project.TestProjectUpdate.allowCapability; import static com.google.gerrit.server.group.SystemGroupBackend.REGISTERED_USERS; import com.google.common.base.Charsets; @@ -23,15 +24,18 @@ import com.google.gerrit.acceptance.LightweightPluginDaemonTest; import com.google.gerrit.acceptance.RestResponse; import com.google.gerrit.acceptance.TestPlugin; +import com.google.gerrit.acceptance.testsuite.project.ProjectOperations; import com.google.gerrit.common.data.GlobalCapability; import com.google.gerrit.common.data.GroupReference; +import com.google.gerrit.entities.AccountGroup; +import com.google.gerrit.entities.Project; import com.google.gerrit.extensions.api.groups.GroupApi; import com.google.gerrit.extensions.api.projects.ProjectInput; import com.google.gerrit.extensions.restapi.Url; -import com.google.gerrit.reviewdb.client.AccountGroup; -import com.google.gerrit.reviewdb.client.Project; import com.google.gerrit.server.project.ProjectConfig; import com.google.gerrit.server.project.ProjectState; +import com.google.inject.Inject; +import java.util.Optional; import org.junit.Before; import org.junit.Test; @@ -40,6 +44,8 @@ sysModule = "com.ericsson.gerrit.plugins.projectgroupstructure.Module") public class ProjectCreationValidatorIT extends LightweightPluginDaemonTest { + @Inject private ProjectOperations projectOperations; + private static final String PLUGIN_NAME = "project-group-structure"; @Override @@ -48,8 +54,16 @@ super.setUpTestPlugin(); // These access rights are mandatory configuration for this plugin as // documented in config.md - allowGlobalCapabilities(REGISTERED_USERS, GlobalCapability.CREATE_GROUP); - allowGlobalCapabilities(REGISTERED_USERS, GlobalCapability.CREATE_PROJECT); + projectOperations + .project(allProjects) + .forUpdate() + .add(allowCapability(GlobalCapability.CREATE_GROUP).group(REGISTERED_USERS)) + .update(); + projectOperations + .project(allProjects) + .forUpdate() + .add(allowCapability(GlobalCapability.CREATE_PROJECT).group(REGISTERED_USERS)) + .update(); } @Test @@ -159,19 +173,19 @@ ProjectInput in = new ProjectInput(); in.permissionsOnly = true; userRestSession.put("/projects/" + rootProject, in).assertCreated(); - ProjectState projectState = projectCache.get(new Project.NameKey(rootProject)); - assertThat(projectState.getOwners().size()).isEqualTo(1); - assertThat(projectState.getOwners()) + Optional<ProjectState> projectState = projectCache.get(Project.nameKey(rootProject)); + assertThat(projectState.get().getOwners().size()).isEqualTo(1); + assertThat(projectState.get().getOwners()) .contains( - groupCache.get(new AccountGroup.NameKey(rootProject + "-admins")).get().getGroupUUID()); + groupCache.get(AccountGroup.nameKey(rootProject + "-admins")).get().getGroupUUID()); // case when <project-name>-admins group already exists rootProject = name("rootProject2"); String existingGroupName = rootProject + "-admins"; gApi.groups().create(existingGroupName); userRestSession.put("/projects/" + rootProject, in).assertCreated(); - projectState = projectCache.get(new Project.NameKey(rootProject)); - assertThat(projectState.getOwners().size()).isEqualTo(1); + projectState = projectCache.get(Project.nameKey(rootProject)); + assertThat(projectState.get().getOwners().size()).isEqualTo(1); String expectedOwnerGroup = existingGroupName + "-" @@ -179,9 +193,8 @@ .hashString(existingGroupName, Charsets.UTF_8) .toString() .substring(0, 7); - assertThat(projectState.getOwners()) - .contains( - groupCache.get(new AccountGroup.NameKey(expectedOwnerGroup)).get().getGroupUUID()); + assertThat(projectState.get().getOwners()) + .contains(groupCache.get(AccountGroup.nameKey(expectedOwnerGroup)).get().getGroupUUID()); } @Test @@ -213,7 +226,7 @@ GroupApi dGroup = gApi.groups().create(delegatingGroup); dGroup.addMembers(user.username()); // the group is in the project.config - Project.NameKey parentNameKey = new Project.NameKey(parent); + Project.NameKey parentNameKey = Project.nameKey(parent); try (ProjectConfigUpdate cfgUpdate = updateProject(parentNameKey)) { ProjectConfig cfg = cfgUpdate.getConfig(); String gId = gApi.groups().id(delegatingGroup).get().id; @@ -236,7 +249,7 @@ String delegatingGroup = name("someGroup"); GroupApi dGroup = gApi.groups().create(delegatingGroup); dGroup.addMembers(user.username()); - Project.NameKey parentNameKey = new Project.NameKey(parent); + Project.NameKey parentNameKey = Project.nameKey(parent); try (ProjectConfigUpdate cfgUpdate = updateProject(parentNameKey)) { ProjectConfig cfg = cfgUpdate.getConfig(); String gId = gApi.groups().id(delegatingGroup).get().id; @@ -252,22 +265,19 @@ in.parent = parent; String childProject = parent + "/childProject"; userRestSession.put("/projects/" + Url.encode(childProject), in).assertCreated(); - ProjectState projectState = projectCache.get(new Project.NameKey(childProject)); - assertThat(projectState.getOwners().size()).isEqualTo(1); - assertThat(projectState.getOwners()) + Optional<ProjectState> projectState = projectCache.get(Project.nameKey(childProject)); + assertThat(projectState.get().getOwners().size()).isEqualTo(1); + assertThat(projectState.get().getOwners()) .contains( - groupCache - .get(new AccountGroup.NameKey(childProject + "-admins")) - .get() - .getGroupUUID()); + groupCache.get(AccountGroup.nameKey(childProject + "-admins")).get().getGroupUUID()); // case when <project-name>-admins group already exists String childProject2 = parent + "/childProject2"; String existingGroupName = childProject2 + "-admins"; gApi.groups().create(existingGroupName); userRestSession.put("/projects/" + Url.encode(childProject2), in).assertCreated(); - projectState = projectCache.get(new Project.NameKey(childProject2)); - assertThat(projectState.getOwners().size()).isEqualTo(1); + projectState = projectCache.get(Project.nameKey(childProject2)); + assertThat(projectState.get().getOwners().size()).isEqualTo(1); String expectedOwnerGroup = existingGroupName + "-" @@ -275,9 +285,8 @@ .hashString(existingGroupName, Charsets.UTF_8) .toString() .substring(0, 7); - assertThat(projectState.getOwners()) - .contains( - groupCache.get(new AccountGroup.NameKey(expectedOwnerGroup)).get().getGroupUUID()); + assertThat(projectState.get().getOwners()) + .contains(groupCache.get(AccountGroup.nameKey(expectedOwnerGroup)).get().getGroupUUID()); } @Test @@ -291,7 +300,7 @@ String delegatingGroup = name("someGroup"); GroupApi dGroup = gApi.groups().create(delegatingGroup); dGroup.addMembers(user.username()); - Project.NameKey parentNameKey = new Project.NameKey(parent); + Project.NameKey parentNameKey = Project.nameKey(parent); try (ProjectConfigUpdate cfgUpdate = updateProject(parentNameKey)) { ProjectConfig cfg = cfgUpdate.getConfig(); String gId = gApi.groups().id(delegatingGroup).get().id; @@ -308,8 +317,8 @@ in.parent = parent; String childProject = parent + "/childProject"; userRestSession.put("/projects/" + Url.encode(childProject), in).assertCreated(); - ProjectState projectState = projectCache.get(new Project.NameKey(childProject)); - assertThat(projectState.getOwners().size()).isEqualTo(0); + Optional<ProjectState> projectState = projectCache.get(Project.nameKey(childProject)); + assertThat(projectState.get().getOwners().size()).isEqualTo(0); } @Test @@ -334,7 +343,7 @@ GroupApi dGroup = gApi.groups().create(delegatingGroup); dGroup.addMembers(user.username()); // the group is in the project.config - Project.NameKey parentNameKey = new Project.NameKey(parent); + Project.NameKey parentNameKey = Project.nameKey(parent); try (ProjectConfigUpdate cfgUpdate = updateProject(parentNameKey)) { ProjectConfig cfg = cfgUpdate.getConfig(); cfg.getPluginConfig(PLUGIN_NAME) @@ -371,7 +380,7 @@ dGroup.addGroups(nestedGroup); // the group is in the project.config - Project.NameKey parentNameKey = new Project.NameKey(parent); + Project.NameKey parentNameKey = Project.nameKey(parent); try (ProjectConfigUpdate cfgUpdate = updateProject(parentNameKey)) { ProjectConfig cfg = cfgUpdate.getConfig(); String gId = gApi.groups().id(delegatingGroup).get().id; @@ -406,7 +415,7 @@ gApi.groups().create(delegatingGroup); // The user is not added to the delegated group // the group is in the project.config - Project.NameKey parentNameKey = new Project.NameKey(parent); + Project.NameKey parentNameKey = Project.nameKey(parent); try (ProjectConfigUpdate cfgUpdate = updateProject(parentNameKey)) { ProjectConfig cfg = cfgUpdate.getConfig(); String gId = gApi.groups().id(delegatingGroup).get().id; @@ -439,7 +448,7 @@ // The delegating group is not created String delegatingGroup = name("groupB"); // the group is in the project.config - Project.NameKey parentNameKey = new Project.NameKey(parent); + Project.NameKey parentNameKey = Project.nameKey(parent); try (ProjectConfigUpdate cfgUpdate = updateProject(parentNameKey)) { ProjectConfig cfg = cfgUpdate.getConfig(); String gId = "fake-gId"; @@ -474,7 +483,7 @@ GroupApi dGroup = gApi.groups().create(delegatingGroup); dGroup.addMembers(user.username()); // the group is in the project.config - Project.NameKey parentNameKey = new Project.NameKey(parent); + Project.NameKey parentNameKey = Project.nameKey(parent); try (ProjectConfigUpdate cfgUpdate = updateProject(parentNameKey)) { ProjectConfig cfg = cfgUpdate.getConfig();