Adapt warm-cache script for gerrit 3.7
The script is pretty old, looks like it was developed sometime in 2016
based on Gerrit 2.14 (?). As such when running it in Gerrit 3.7 some
classes are missing and therefore the commands will fail.
Change the script in a way that compiles with gerrit 3.7 version
and all exposed commands run successfully. Replace ReviewDB operations
with its successor where possible.
Change-Id: I594a32d7e4eff6dabf1c761b6dcb9342508812f9
diff --git a/admin/warm-cache-1.0.groovy b/admin/warm-cache-1.0.groovy
index eb1df2c..1bad068 100644
--- a/admin/warm-cache-1.0.groovy
+++ b/admin/warm-cache-1.0.groovy
@@ -13,13 +13,12 @@
// limitations under the License.
import com.google.gerrit.common.data.GlobalCapability
+import com.google.gerrit.entities.AccountGroup
import com.google.gerrit.sshd.*
import com.google.gerrit.extensions.annotations.*
import com.google.gerrit.server.project.*
import com.google.gerrit.server.account.*
import com.google.gerrit.server.IdentifiedUser
-import com.google.gerrit.reviewdb.client.AccountGroup
-import com.google.gerrit.reviewdb.server.ReviewDb
import com.google.inject.*
import org.kohsuke.args4j.*
@@ -75,8 +74,8 @@
private HashSet<AccountGroup.UUID> allGroupsUUIDs() {
def allGroupsUuids = new HashSet<AccountGroup.UUID>()
for (project in cache.all()) {
- def groupUuids = cache.get(project)?.getConfig()?.getAllGroupUUIDs()
- if (groupUuids != null) { allGroupsUuids.addAll(groupUuids) }
+ def groupUuids = cache.get(project).stream().flatMap { it.config.allGroupUUIDs.stream() }
+ allGroupsUuids.addAll(groupUuids.collect())
}
allGroupsUuids.addAll(groupIncludeCache.allExternalMembers())
return allGroupsUuids;
@@ -90,12 +89,11 @@
def groupsLoaded = 0
for (groupUuid in allGroupsUuids) {
- groupIncludeCache.subgroupsOf(groupUuid)
groupIncludeCache.parentGroupsOf(groupUuid)
def group = groupCache.get(groupUuid)
- if(group != null) {
- groupCache.get(group.getNameKey())
- groupCache.get(group.getId())
+ group.ifPresent { internalGroup ->
+ groupCache.get(internalGroup.getNameKey())
+ groupCache.get(internalGroup.getId())
}
groupsLoaded++
@@ -117,16 +115,16 @@
AccountCache cache
@Inject
- Provider<ReviewDb> db
+ Accounts accounts
public void run() {
println "Loading accounts ..."
def start = System.currentTimeMillis()
- def allAccounts = db.get().accounts().all()
+ def allAccounts = accounts.all()
def loaded = 0
for (account in allAccounts) {
- cache.get(account.accountId)
+ cache.get(account.account().id())
loaded++
if (loaded%1000==0) {
println "$loaded accounts"
@@ -148,13 +146,13 @@
public void run() {
println "Loading groups ..."
def start = System.currentTimeMillis()
- def allAccounts = db.get().accounts().all()
+ def allAccounts = accounts.all()
def loaded = 0
def allGroupsUUIDs = new HashSet<AccountGroup.UUID>()
def lastDisplay = 0
for (account in allAccounts) {
- def user = userFactory.create(account.accountId)
+ def user = userFactory.create(account.account().id())
def groupsUUIDs = user?.getEffectiveGroups()?.getKnownGroups()
if (groupsUUIDs != null) { allGroupsUUIDs.addAll(groupsUUIDs) }