Ignore remote ref-updated stream events for replication
The ref-updated happened on foreign Gerrit servers, which means
that the instance-id of the event is different than the local one,
should not be considered as a ref-update to action.
The pull-replication has a specific separate listener to
react on remote events and the ReplicationQueue should only
be used for triggering replication actions due to local ref-updates
only.
Add gerrit.instanceId to all integration tests, which was needed
even before this change but, somehow, still working before without
it.
Bug: Issue 16924
Change-Id: I8cd27f756becf4c4c990641d31639f30918f4da9
diff --git a/src/main/java/com/googlesource/gerrit/plugins/replication/pull/ReplicationQueue.java b/src/main/java/com/googlesource/gerrit/plugins/replication/pull/ReplicationQueue.java
index b90969b..c7a44d0 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/replication/pull/ReplicationQueue.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/replication/pull/ReplicationQueue.java
@@ -25,6 +25,7 @@
import com.google.gerrit.extensions.events.ProjectDeletedListener;
import com.google.gerrit.extensions.registration.DynamicItem;
import com.google.gerrit.metrics.Timer1.Context;
+import com.google.gerrit.server.config.GerritInstanceId;
import com.google.gerrit.server.events.EventDispatcher;
import com.google.gerrit.server.events.EventListener;
import com.google.gerrit.server.events.RefUpdatedEvent;
@@ -90,6 +91,7 @@
private Provider<RevisionReader> revReaderProvider;
private final ApplyObjectMetrics applyObjectMetrics;
private final FetchReplicationMetrics fetchMetrics;
+ private final String instanceId;
@Inject
ReplicationQueue(
@@ -101,7 +103,8 @@
ExcludedRefsFilter refsFilter,
Provider<RevisionReader> revReaderProvider,
ApplyObjectMetrics applyObjectMetrics,
- FetchReplicationMetrics fetchMetrics) {
+ FetchReplicationMetrics fetchMetrics,
+ @GerritInstanceId String instanceId) {
workQueue = wq;
dispatcher = dis;
sources = rd;
@@ -112,6 +115,7 @@
this.revReaderProvider = revReaderProvider;
this.applyObjectMetrics = applyObjectMetrics;
this.fetchMetrics = fetchMetrics;
+ this.instanceId = instanceId;
}
@Override
@@ -151,7 +155,7 @@
@Override
public void onEvent(com.google.gerrit.server.events.Event e) {
- if (e.type.equals(REF_UDPATED_EVENT_TYPE)) {
+ if (e.type.equals(REF_UDPATED_EVENT_TYPE) && instanceId.equals(e.instanceId)) {
RefUpdatedEvent event = (RefUpdatedEvent) e;
if (isRefToBeReplicated(event.getRefName())) {
diff --git a/src/test/java/com/googlesource/gerrit/plugins/replication/pull/FakeGitReferenceUpdatedEvent.java b/src/test/java/com/googlesource/gerrit/plugins/replication/pull/FakeGitReferenceUpdatedEvent.java
index 47c00c7..1472be2 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/replication/pull/FakeGitReferenceUpdatedEvent.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/replication/pull/FakeGitReferenceUpdatedEvent.java
@@ -21,12 +21,17 @@
public class FakeGitReferenceUpdatedEvent extends RefUpdatedEvent {
FakeGitReferenceUpdatedEvent(
- Project.NameKey project, String ref, String oldObjectId, String newObjectId) {
+ Project.NameKey project,
+ String ref,
+ String oldObjectId,
+ String newObjectId,
+ String instanceId) {
RefUpdateAttribute upd = new RefUpdateAttribute();
upd.newRev = newObjectId;
upd.oldRev = oldObjectId;
upd.project = project.get();
upd.refName = ref;
this.refUpdate = Suppliers.ofInstance(upd);
+ this.instanceId = instanceId;
}
}
diff --git a/src/test/java/com/googlesource/gerrit/plugins/replication/pull/PullReplicationFanoutConfigIT.java b/src/test/java/com/googlesource/gerrit/plugins/replication/pull/PullReplicationFanoutConfigIT.java
index 1aaf434..b9ea0c8 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/replication/pull/PullReplicationFanoutConfigIT.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/replication/pull/PullReplicationFanoutConfigIT.java
@@ -105,7 +105,11 @@
ReplicationQueue pullReplicationQueue = getInstance(ReplicationQueue.class);
FakeGitReferenceUpdatedEvent event =
new FakeGitReferenceUpdatedEvent(
- project, sourceRef, ObjectId.zeroId().getName(), sourceCommit.getId().getName());
+ project,
+ sourceRef,
+ ObjectId.zeroId().getName(),
+ sourceCommit.getId().getName(),
+ TEST_REPLICATION_REMOTE);
pullReplicationQueue.onEvent(event);
try (Repository repo = repoManager.openRepository(project)) {
@@ -137,7 +141,11 @@
ReplicationQueue pullReplicationQueue = getInstance(ReplicationQueue.class);
FakeGitReferenceUpdatedEvent event =
new FakeGitReferenceUpdatedEvent(
- project, sourceRef, ObjectId.zeroId().getName(), sourceCommit.getId().getName());
+ project,
+ sourceRef,
+ ObjectId.zeroId().getName(),
+ sourceCommit.getId().getName(),
+ TEST_REPLICATION_REMOTE);
pullReplicationQueue.onEvent(event);
try (Repository repo = repoManager.openRepository(project)) {
@@ -166,7 +174,11 @@
plugin.getSysInjector().getInstance(ReplicationQueue.class);
FakeGitReferenceUpdatedEvent event =
new FakeGitReferenceUpdatedEvent(
- project, newBranch, ObjectId.zeroId().getName(), branchRevision);
+ project,
+ newBranch,
+ ObjectId.zeroId().getName(),
+ branchRevision,
+ TEST_REPLICATION_REMOTE);
pullReplicationQueue.onEvent(event);
try (Repository repo = repoManager.openRepository(project);
diff --git a/src/test/java/com/googlesource/gerrit/plugins/replication/pull/PullReplicationIT.java b/src/test/java/com/googlesource/gerrit/plugins/replication/pull/PullReplicationIT.java
index 180094d..ce65d88 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/replication/pull/PullReplicationIT.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/replication/pull/PullReplicationIT.java
@@ -91,7 +91,11 @@
ReplicationQueue pullReplicationQueue = getInstance(ReplicationQueue.class);
FakeGitReferenceUpdatedEvent event =
new FakeGitReferenceUpdatedEvent(
- project, sourceRef, ObjectId.zeroId().getName(), sourceCommit.getId().getName());
+ project,
+ sourceRef,
+ ObjectId.zeroId().getName(),
+ sourceCommit.getId().getName(),
+ TEST_REPLICATION_REMOTE);
pullReplicationQueue.onEvent(event);
try (Repository repo = repoManager.openRepository(project)) {
@@ -120,7 +124,11 @@
plugin.getSysInjector().getInstance(ReplicationQueue.class);
FakeGitReferenceUpdatedEvent event =
new FakeGitReferenceUpdatedEvent(
- project, newBranch, ObjectId.zeroId().getName(), branchRevision);
+ project,
+ newBranch,
+ ObjectId.zeroId().getName(),
+ branchRevision,
+ TEST_REPLICATION_REMOTE);
pullReplicationQueue.onEvent(event);
try (Repository repo = repoManager.openRepository(project);
@@ -159,7 +167,11 @@
plugin.getSysInjector().getInstance(ReplicationQueue.class);
FakeGitReferenceUpdatedEvent event =
new FakeGitReferenceUpdatedEvent(
- project, newBranch, ObjectId.zeroId().getName(), branchRevision);
+ project,
+ newBranch,
+ ObjectId.zeroId().getName(),
+ branchRevision,
+ TEST_REPLICATION_REMOTE);
pullReplicationQueue.onEvent(event);
try (Repository repo = repoManager.openRepository(project)) {
@@ -181,7 +193,11 @@
FakeGitReferenceUpdatedEvent forcedPushEvent =
new FakeGitReferenceUpdatedEvent(
- project, newBranch, branchRevision, amendedCommit.getId().getName());
+ project,
+ newBranch,
+ branchRevision,
+ amendedCommit.getId().getName(),
+ TEST_REPLICATION_REMOTE);
pullReplicationQueue.onEvent(forcedPushEvent);
try (Repository repo = repoManager.openRepository(project);
@@ -216,7 +232,11 @@
ReplicationQueue pullReplicationQueue = getInstance(ReplicationQueue.class);
FakeGitReferenceUpdatedEvent event =
new FakeGitReferenceUpdatedEvent(
- project, sourceRef, ObjectId.zeroId().getName(), sourceCommit.getId().getName());
+ project,
+ sourceRef,
+ ObjectId.zeroId().getName(),
+ sourceCommit.getId().getName(),
+ TEST_REPLICATION_REMOTE);
pullReplicationQueue.onEvent(event);
try (Repository repo = repoManager.openRepository(project)) {
@@ -253,7 +273,11 @@
plugin.getSysInjector().getInstance(ReplicationQueue.class);
FakeGitReferenceUpdatedEvent event =
new FakeGitReferenceUpdatedEvent(
- project, newBranch, ObjectId.zeroId().getName(), branchRevision);
+ project,
+ newBranch,
+ ObjectId.zeroId().getName(),
+ branchRevision,
+ TEST_REPLICATION_REMOTE);
pullReplicationQueue.onEvent(event);
try (Repository repo = repoManager.openRepository(project);
@@ -341,7 +365,11 @@
ReplicationQueue pullReplicationQueue = getInstance(ReplicationQueue.class);
FakeGitReferenceUpdatedEvent event =
new FakeGitReferenceUpdatedEvent(
- project, sourceRef, ObjectId.zeroId().getName(), sourceCommit.getId().getName());
+ project,
+ sourceRef,
+ ObjectId.zeroId().getName(),
+ sourceCommit.getId().getName(),
+ TEST_REPLICATION_REMOTE);
pullReplicationQueue.onEvent(event);
try (Repository repo = repoManager.openRepository(project)) {
diff --git a/src/test/java/com/googlesource/gerrit/plugins/replication/pull/PullReplicationWithGitHttpTransportProtocolIT.java b/src/test/java/com/googlesource/gerrit/plugins/replication/pull/PullReplicationWithGitHttpTransportProtocolIT.java
index 40a9d03..e55e383 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/replication/pull/PullReplicationWithGitHttpTransportProtocolIT.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/replication/pull/PullReplicationWithGitHttpTransportProtocolIT.java
@@ -82,7 +82,11 @@
ReplicationQueue pullReplicationQueue = getInstance(ReplicationQueue.class);
FakeGitReferenceUpdatedEvent event =
new FakeGitReferenceUpdatedEvent(
- project, sourceRef, ObjectId.zeroId().getName(), sourceCommit.getId().getName());
+ project,
+ sourceRef,
+ ObjectId.zeroId().getName(),
+ sourceCommit.getId().getName(),
+ TEST_REPLICATION_REMOTE);
pullReplicationQueue.onEvent(event);
try (Repository repo = repoManager.openRepository(project)) {
diff --git a/src/test/java/com/googlesource/gerrit/plugins/replication/pull/ReplicationQueueTest.java b/src/test/java/com/googlesource/gerrit/plugins/replication/pull/ReplicationQueueTest.java
index dc6e429..d989c4d 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/replication/pull/ReplicationQueueTest.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/replication/pull/ReplicationQueueTest.java
@@ -73,6 +73,9 @@
@RunWith(MockitoJUnitRunner.class)
public class ReplicationQueueTest {
private static int CONNECTION_TIMEOUT = 1000000;
+ private static final String LOCAL_INSTANCE_ID = "local instance id";
+ private static final String FOREIGN_INSTANCE_ID = "any other instance id";
+ private static final String TEST_REF_NAME = "refs/meta/heads/anyref";
@Mock private WorkQueue wq;
@Mock private Source source;
@@ -159,7 +162,8 @@
refsFilter,
() -> revReader,
applyObjectMetrics,
- fetchMetrics);
+ fetchMetrics,
+ LOCAL_INSTANCE_ID);
}
@Test
@@ -172,6 +176,17 @@
}
@Test
+ public void shouldIgnoreEventWhenIsNotLocalInstanceId()
+ throws ClientProtocolException, IOException {
+ Event event = new TestEvent();
+ event.instanceId = FOREIGN_INSTANCE_ID;
+ objectUnderTest.start();
+ objectUnderTest.onEvent(event);
+
+ verify(fetchRestApiClient, never()).callSendObjects(any(), anyString(), any(), any());
+ }
+
+ @Test
public void shouldCallInitProjectWhenProjectIsMissing() throws IOException {
Event event = new TestEvent("refs/changes/01/1/meta");
when(httpResult.isSuccessful()).thenReturn(false);
@@ -293,7 +308,8 @@
refsFilter,
() -> revReader,
applyObjectMetrics,
- fetchMetrics);
+ fetchMetrics,
+ LOCAL_INSTANCE_ID);
Event event = new TestEvent("refs/multi-site/version");
objectUnderTest.onEvent(event);
@@ -369,6 +385,11 @@
}
private class TestEvent extends RefUpdatedEvent {
+
+ public TestEvent() {
+ this(TEST_REF_NAME);
+ }
+
public TestEvent(String refName) {
this(
refName,
@@ -383,6 +404,7 @@
upd.project = projectName;
upd.refName = refName;
this.refUpdate = Suppliers.ofInstance(upd);
+ this.instanceId = LOCAL_INSTANCE_ID;
}
}
diff --git a/src/test/java/com/googlesource/gerrit/plugins/replication/pull/api/ApplyObjectActionIT.java b/src/test/java/com/googlesource/gerrit/plugins/replication/pull/api/ApplyObjectActionIT.java
index 2ab5caf..784515e 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/replication/pull/api/ApplyObjectActionIT.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/replication/pull/api/ApplyObjectActionIT.java
@@ -27,6 +27,7 @@
public class ApplyObjectActionIT extends ActionITBase {
@Test
+ @GerritConfig(name = "gerrit.instanceId", value = "testInstanceId")
public void shouldAcceptPayloadWithAsyncField() throws Exception {
String payloadWithAsyncFieldTemplate =
"{\"label\":\""
@@ -48,6 +49,7 @@
}
@Test
+ @GerritConfig(name = "gerrit.instanceId", value = "testInstanceId")
public void shouldAcceptPayloadWithoutAsyncField() throws Exception {
String payloadWithoutAsyncFieldTemplate =
"{\"label\":\""
@@ -70,6 +72,7 @@
}
@Test
+ @GerritConfig(name = "gerrit.instanceId", value = "testInstanceId")
@GerritConfig(name = "container.replica", value = "true")
public void shouldAcceptPayloadWhenNodeIsAReplica() throws Exception {
String payloadWithoutAsyncFieldTemplate =
@@ -93,6 +96,7 @@
}
@Test
+ @GerritConfig(name = "gerrit.instanceId", value = "testInstanceId")
@GerritConfig(name = "container.replica", value = "true")
public void shouldAcceptPayloadWhenNodeIsAReplicaAndProjectNameContainsSlash() throws Exception {
String payloadWithoutAsyncFieldTemplate =
@@ -119,6 +123,7 @@
}
@Test
+ @GerritConfig(name = "gerrit.instanceId", value = "testInstanceId")
@GerritConfig(name = "container.replica", value = "true")
public void shouldReturnForbiddenWhenNodeIsAReplicaAndUSerIsAnonymous() throws Exception {
String payloadWithoutAsyncFieldTemplate =
@@ -140,6 +145,7 @@
}
@Test
+ @GerritConfig(name = "gerrit.instanceId", value = "testInstanceId")
public void shouldReturnBadRequestCodeWhenMandatoryFieldLabelIsMissing() throws Exception {
String payloadWithoutLabelFieldTemplate =
"{\"ref_name\":\"%s\",\"revision_data\":{\"commit_object\":{\"type\":1,\"content\":\"%s\"},\"tree_object\":{\"type\":2,\"content\":\"%s\"},\"blobs\":[]}, \"async\":true}";
@@ -160,6 +166,7 @@
}
@Test
+ @GerritConfig(name = "gerrit.instanceId", value = "testInstanceId")
public void shouldReturnBadRequestCodeWhenPayloadIsNotAProperJSON() throws Exception {
String wrongPayloadTemplate =
"{\"label\":\""
@@ -181,6 +188,7 @@
}
@Test
+ @GerritConfig(name = "gerrit.instanceId", value = "testInstanceId")
@GerritConfig(name = "container.replica", value = "true")
@GerritConfig(name = "auth.bearerToken", value = "some-bearer-token")
public void shouldAcceptPayloadWhenNodeIsAReplicaWithBearerToken() throws Exception {
@@ -206,6 +214,7 @@
}
@Test
+ @GerritConfig(name = "gerrit.instanceId", value = "testInstanceId")
@GerritConfig(name = "container.replica", value = "false")
@GerritConfig(name = "auth.bearerToken", value = "some-bearer-token")
public void shouldAcceptPayloadWhenNodeIsAPrimaryWithBearerToken() throws Exception {
diff --git a/src/test/java/com/googlesource/gerrit/plugins/replication/pull/api/FetchActionIT.java b/src/test/java/com/googlesource/gerrit/plugins/replication/pull/api/FetchActionIT.java
index cc01c2a..0a69c3d 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/replication/pull/api/FetchActionIT.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/replication/pull/api/FetchActionIT.java
@@ -23,6 +23,7 @@
public class FetchActionIT extends ActionITBase {
@Test
+ @GerritConfig(name = "gerrit.instanceId", value = "testInstanceId")
@GerritConfig(name = "container.replica", value = "true")
public void shouldFetchRefWhenNodeIsAReplica() throws Exception {
String refName = createRef();
@@ -41,6 +42,7 @@
}
@Test
+ @GerritConfig(name = "gerrit.instanceId", value = "testInstanceId")
@GerritConfig(name = "container.replica", value = "true")
public void shouldFetchRefWhenNodeIsAReplicaAndProjectNameContainsSlash() throws Exception {
NameKey projectName = Project.nameKey("test/repo");
@@ -63,6 +65,7 @@
}
@Test
+ @GerritConfig(name = "gerrit.instanceId", value = "testInstanceId")
@GerritConfig(name = "container.replica", value = "true")
public void shouldReturnForbiddenWhenNodeIsAReplicaAndUSerIsAnonymous() throws Exception {
String refName = createRef();
@@ -79,6 +82,7 @@
}
@Test
+ @GerritConfig(name = "gerrit.instanceId", value = "testInstanceId")
@GerritConfig(name = "container.replica", value = "true")
@GerritConfig(name = "auth.bearerToken", value = "some-bearer-token")
public void shouldFetchRefWhenNodeIsAReplicaWithBearerToken() throws Exception {
@@ -99,6 +103,7 @@
}
@Test
+ @GerritConfig(name = "gerrit.instanceId", value = "testInstanceId")
@GerritConfig(name = "container.replica", value = "false")
@GerritConfig(name = "auth.bearerToken", value = "some-bearer-token")
public void shouldFetchRefWhenNodeIsAPrimaryWithBearerToken() throws Exception {
diff --git a/src/test/java/com/googlesource/gerrit/plugins/replication/pull/api/ProjectDeletionActionIT.java b/src/test/java/com/googlesource/gerrit/plugins/replication/pull/api/ProjectDeletionActionIT.java
index a46a721..10415e4 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/replication/pull/api/ProjectDeletionActionIT.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/replication/pull/api/ProjectDeletionActionIT.java
@@ -33,6 +33,7 @@
@Inject private ProjectOperations projectOperations;
@Test
+ @GerritConfig(name = "gerrit.instanceId", value = "testInstanceId")
public void shouldReturnUnauthorizedForUserWithoutPermissions() throws Exception {
httpClientFactory
.create(source)
@@ -41,6 +42,7 @@
}
@Test
+ @GerritConfig(name = "gerrit.instanceId", value = "testInstanceId")
public void shouldDeleteRepositoryWhenUserHasProjectDeletionCapabilities() throws Exception {
String testProjectName = project.get();
url = getURLWithAuthenticationPrefix(testProjectName);
@@ -64,6 +66,7 @@
}
@Test
+ @GerritConfig(name = "gerrit.instanceId", value = "testInstanceId")
public void shouldReturnOKWhenProjectIsDeleted() throws Exception {
String testProjectName = project.get();
url = getURLWithAuthenticationPrefix(testProjectName);
@@ -76,6 +79,7 @@
}
@Test
+ @GerritConfig(name = "gerrit.instanceId", value = "testInstanceId")
@Ignore("Failing in RestApiServlet: to be enabled again once that is fixed in core")
public void shouldReturnBadRequestWhenDeletingAnInvalidProjectName() throws Exception {
url = getURLWithAuthenticationPrefix(INVALID_TEST_PROJECT_NAME);
@@ -88,6 +92,7 @@
}
@Test
+ @GerritConfig(name = "gerrit.instanceId", value = "testInstanceId")
@GerritConfig(name = "container.replica", value = "true")
public void shouldReturnForbiddenForUserWithoutPermissionsOnReplica() throws Exception {
httpClientFactory
@@ -96,6 +101,7 @@
}
@Test
+ @GerritConfig(name = "gerrit.instanceId", value = "testInstanceId")
@GerritConfig(name = "container.replica", value = "true")
public void shouldReturnOKWhenProjectIsDeletedOnReplica() throws Exception {
String testProjectName = project.get();
@@ -109,6 +115,7 @@
}
@Test
+ @GerritConfig(name = "gerrit.instanceId", value = "testInstanceId")
@GerritConfig(name = "container.replica", value = "true")
public void shouldDeleteRepositoryWhenUserHasProjectDeletionCapabilitiesAndNodeIsAReplica()
throws Exception {
@@ -132,6 +139,7 @@
}
@Test
+ @GerritConfig(name = "gerrit.instanceId", value = "testInstanceId")
@GerritConfig(name = "container.replica", value = "true")
public void shouldReturnBadRequestWhenDeletingAnInvalidProjectNameWhenNodeIsAReplica()
throws Exception {
@@ -145,6 +153,7 @@
}
@Test
+ @GerritConfig(name = "gerrit.instanceId", value = "testInstanceId")
@GerritConfig(name = "container.replica", value = "true")
@GerritConfig(name = "auth.bearerToken", value = "some-bearer-token")
public void shouldReturnOKWhenProjectIsDeletedOnReplicaWithBearerToken() throws Exception {
@@ -159,6 +168,7 @@
}
@Test
+ @GerritConfig(name = "gerrit.instanceId", value = "testInstanceId")
@GerritConfig(name = "container.replica", value = "false")
@GerritConfig(name = "auth.bearerToken", value = "some-bearer-token")
public void shouldReturnOKWhenProjectIsDeletedOnPrimaryWithBearerToken() throws Exception {
diff --git a/src/test/java/com/googlesource/gerrit/plugins/replication/pull/api/ProjectInitializationActionIT.java b/src/test/java/com/googlesource/gerrit/plugins/replication/pull/api/ProjectInitializationActionIT.java
index 77f05a1..c543969 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/replication/pull/api/ProjectInitializationActionIT.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/replication/pull/api/ProjectInitializationActionIT.java
@@ -35,6 +35,7 @@
@Inject private ProjectOperations projectOperations;
@Test
+ @GerritConfig(name = "gerrit.instanceId", value = "testInstanceId")
public void shouldReturnUnauthorizedForUserWithoutPermissions() throws Exception {
httpClientFactory
.create(source)
@@ -44,6 +45,7 @@
}
@Test
+ @GerritConfig(name = "gerrit.instanceId", value = "testInstanceId")
public void shouldReturnBadRequestIfContentNotSet() throws Exception {
httpClientFactory
.create(source)
@@ -53,6 +55,7 @@
}
@Test
+ @GerritConfig(name = "gerrit.instanceId", value = "testInstanceId")
public void shouldCreateRepository() throws Exception {
String newProjectName = "new/newProjectForPrimary";
url = getURLWithAuthenticationPrefix(newProjectName);
@@ -72,6 +75,7 @@
}
@Test
+ @GerritConfig(name = "gerrit.instanceId", value = "testInstanceId")
public void shouldCreateRepositoryWhenUserHasProjectCreationCapabilities() throws Exception {
String newProjectName = "new/newProjectForUserWithCapabilities";
url = getURLWithAuthenticationPrefix(newProjectName);
@@ -94,6 +98,7 @@
}
@Test
+ @GerritConfig(name = "gerrit.instanceId", value = "testInstanceId")
public void shouldReturnForbiddenIfUserNotAuthorized() throws Exception {
httpClientFactory
.create(source)
@@ -103,6 +108,7 @@
}
@Test
+ @GerritConfig(name = "gerrit.instanceId", value = "testInstanceId")
@GerritConfig(name = "container.replica", value = "true")
public void shouldCreateRepositoryWhenNodeIsAReplica() throws Exception {
String newProjectName = "new/newProjectForReplica";
@@ -115,6 +121,8 @@
}
@Test
+ @GerritConfig(name = "gerrit.instanceId", value = "testInstanceId")
+ @GerritConfig(name = "gerrit.instanceId", value = "testInstanceId")
@GerritConfig(name = "container.replica", value = "true")
public void shouldReturnForbiddenIfUserNotAuthorizedAndNodeIsAReplica() throws Exception {
httpClientFactory
@@ -125,6 +133,7 @@
}
@Test
+ @GerritConfig(name = "gerrit.instanceId", value = "testInstanceId")
@GerritConfig(name = "container.replica", value = "true")
public void shouldCreateRepositoryWhenUserHasProjectCreationCapabilitiesAndNodeIsAReplica()
throws Exception {
@@ -149,6 +158,7 @@
}
@Test
+ @GerritConfig(name = "gerrit.instanceId", value = "testInstanceId")
@GerritConfig(name = "container.replica", value = "true")
public void shouldReturnBadRequestIfProjectNameIsInvalidAndCannotBeCreatedWhenNodeIsAReplica()
throws Exception {
@@ -161,6 +171,7 @@
}
@Test
+ @GerritConfig(name = "gerrit.instanceId", value = "testInstanceId")
@GerritConfig(name = "container.replica", value = "true")
public void shouldReturnBadRequestIfContentNotSetWhenNodeIsAReplica() throws Exception {
httpClientFactory
@@ -171,6 +182,7 @@
}
@Test
+ @GerritConfig(name = "gerrit.instanceId", value = "testInstanceId")
@GerritConfig(name = "container.replica", value = "true")
public void shouldReturnForbiddenForUserWithoutPermissionsWhenNodeIsAReplica() throws Exception {
httpClientFactory
@@ -181,6 +193,7 @@
}
@Test
+ @GerritConfig(name = "gerrit.instanceId", value = "testInstanceId")
@GerritConfig(name = "container.replica", value = "true")
@GerritConfig(name = "auth.bearerToken", value = "some-bearer-token")
public void shouldCreateRepositoryWhenNodeIsAReplicaWithBearerToken() throws Exception {
@@ -194,6 +207,7 @@
}
@Test
+ @GerritConfig(name = "gerrit.instanceId", value = "testInstanceId")
@GerritConfig(name = "container.replica", value = "false")
@GerritConfig(name = "auth.bearerToken", value = "some-bearer-token")
public void shouldCreateRepositoryWhenNodeIsAPrimaryWithBearerToken() throws Exception {
diff --git a/src/test/java/com/googlesource/gerrit/plugins/replication/pull/api/UpdateHeadActionIT.java b/src/test/java/com/googlesource/gerrit/plugins/replication/pull/api/UpdateHeadActionIT.java
index 7c725b3..f6e631f 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/replication/pull/api/UpdateHeadActionIT.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/replication/pull/api/UpdateHeadActionIT.java
@@ -36,6 +36,7 @@
@Inject private ProjectOperations projectOperations;
@Test
+ @GerritConfig(name = "gerrit.instanceId", value = "testInstanceId")
public void shouldReturnUnauthorizedForUserWithoutPermissions() throws Exception {
httpClientFactory
.create(source)
@@ -45,6 +46,7 @@
}
@Test
+ @GerritConfig(name = "gerrit.instanceId", value = "testInstanceId")
public void shouldReturnBadRequestWhenInputIsEmpty() throws Exception {
httpClientFactory
.create(source)
@@ -54,6 +56,7 @@
}
@Test
+ @GerritConfig(name = "gerrit.instanceId", value = "testInstanceId")
public void shouldReturnOKWhenHeadIsUpdated() throws Exception {
String testProjectName = project.get();
String newBranch = "refs/heads/mybranch";
@@ -71,6 +74,7 @@
}
@Test
+ @GerritConfig(name = "gerrit.instanceId", value = "testInstanceId")
@GerritConfig(name = "container.replica", value = "true")
public void shouldReturnBadRequestWhenInputIsEmptyInReplica() throws Exception {
httpClientFactory
@@ -81,6 +85,7 @@
}
@Test
+ @GerritConfig(name = "gerrit.instanceId", value = "testInstanceId")
@GerritConfig(name = "container.replica", value = "true")
public void shouldReturnOKWhenHeadIsUpdatedInReplica() throws Exception {
String testProjectName = project.get();
@@ -99,6 +104,7 @@
}
@Test
+ @GerritConfig(name = "gerrit.instanceId", value = "testInstanceId")
public void shouldReturnForbiddenWhenMissingPermissions() throws Exception {
httpClientFactory
.create(source)
@@ -108,6 +114,7 @@
}
@Test
+ @GerritConfig(name = "gerrit.instanceId", value = "testInstanceId")
public void shouldReturnOKWhenRegisteredUserHasPermissions() throws Exception {
String testProjectName = project.get();
String newBranch = "refs/heads/mybranch";
@@ -132,6 +139,7 @@
}
@Test
+ @GerritConfig(name = "gerrit.instanceId", value = "testInstanceId")
@GerritConfig(name = "container.replica", value = "true")
public void shouldReturnForbiddenWhenMissingPermissionsInReplica() throws Exception {
httpClientFactory
@@ -142,6 +150,7 @@
}
@Test
+ @GerritConfig(name = "gerrit.instanceId", value = "testInstanceId")
@GerritConfig(name = "container.replica", value = "true")
@GerritConfig(name = "auth.bearerToken", value = "some-bearer-token")
@Ignore("Waiting for resolving: Issue 16332: Not able to update the HEAD from internal user")
@@ -164,6 +173,7 @@
}
@Test
+ @GerritConfig(name = "gerrit.instanceId", value = "testInstanceId")
@GerritConfig(name = "container.replica", value = "false")
@GerritConfig(name = "auth.bearerToken", value = "some-bearer-token")
@Ignore("Waiting for resolving: Issue 16332: Not able to update the HEAD from internal user")