Add tokens cache to default set of forwarded eviction events
Change-Id: I4f4cbd5e769386dfe7fc47e1e127226686a19dc6
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/cache/CachePatternMatcher.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/cache/CachePatternMatcher.java
index baf512f..ac6ea4c 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/cache/CachePatternMatcher.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/cache/CachePatternMatcher.java
@@ -26,7 +26,7 @@
@Singleton
class CachePatternMatcher {
private static final List<String> DEFAULT_PATTERNS =
- ImmutableList.of("^groups.*", "ldap_usernames", "projects", "sshkeys");
+ ImmutableList.of("^groups.*", "ldap_usernames", "projects", "sshkeys", "tokens");
private final Pattern pattern;
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/cache/Constants.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/cache/Constants.java
index b456998..d4fab98 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/cache/Constants.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/cache/Constants.java
@@ -22,6 +22,7 @@
public static final String GROUPS_BYINCLUDE = "groups_byinclude";
public static final String GROUPS_MEMBERS = "groups_members";
public static final String PROJECTS = "projects";
+ public static final String TOKENS = "tokens";
private Constants() {}
}
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/CacheKeyJsonParser.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/CacheKeyJsonParser.java
index ba28650..b8f5e9c 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/CacheKeyJsonParser.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/CacheKeyJsonParser.java
@@ -44,6 +44,7 @@
// Need to add a case for 'adv_bases'
switch (cacheName) {
case Constants.ACCOUNTS:
+ case Constants.TOKENS:
return id.get() == null ? null : Account.id(id.get().getAsInt());
case Constants.GROUPS:
return id.get() == null ? null : AccountGroup.id(id.get().getAsInt());
diff --git a/src/test/java/com/ericsson/gerrit/plugins/highavailability/cache/CachePatternMatcherTest.java b/src/test/java/com/ericsson/gerrit/plugins/highavailability/cache/CachePatternMatcherTest.java
index caf50b9..088b42e 100644
--- a/src/test/java/com/ericsson/gerrit/plugins/highavailability/cache/CachePatternMatcherTest.java
+++ b/src/test/java/com/ericsson/gerrit/plugins/highavailability/cache/CachePatternMatcherTest.java
@@ -47,6 +47,7 @@
"ldap_usernames",
"projects",
"sshkeys",
+ "tokens",
"my_cache_a",
"my_cache_b",
"other")) {
diff --git a/src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/CacheRestApiServletTest.java b/src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/CacheRestApiServletTest.java
index e4ffd59..58c0aef 100644
--- a/src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/CacheRestApiServletTest.java
+++ b/src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/CacheRestApiServletTest.java
@@ -87,6 +87,12 @@
}
@Test
+ public void evictTokensCache() throws Exception {
+ configureMocksFor(Constants.TOKENS);
+ verifyResponseIsOK();
+ }
+
+ @Test
public void evictDefault() throws Exception {
configureMocksFor(Constants.PROJECTS);
verifyResponseIsOK();
@@ -134,6 +140,8 @@
} else if (Constants.GROUPS_BYINCLUDE.equals(cacheName)
|| Constants.GROUPS_MEMBERS.equals(cacheName)) {
when(readerMock.readLine()).thenReturn("{\"uuid\":\"abcd1234\"}");
+ } else if (Constants.TOKENS.equals(cacheName)) {
+ when(readerMock.readLine()).thenReturn("{\"id\":\"1234\"}");
} else {
when(readerMock.readLine()).thenReturn("{}");
}