Add daemon instance to Jython shell session
Given that the Daemon instance contains all Guices injectors, all Guice bindings can be reached from the Daemon instance. Expose Daemon instance to the Jython shell session as "d" variable. For example to dump the global capabilities: >>> from com.google.gerrit.server.config import AllProjectsNameProvider >>> from com.google.gerrit.server.git.MetaDataUpdate import Server >>> from com.google.gerrit.server.git import ProjectConfig >>> i = d.sysInjector >>> allProjectsNameProvider = i.getInstance(AllProjectsNameProvider) >>> metaUpdateFactory = i.getInstance(Server) >>> md = metaUpdateFactory.create(allProjectsNameProvider.get()) >>> cfg = ProjectConfig.read(md) >>> s = cfg.getAccessSection("GLOBAL_CAPABILITIES", True) >>> for p in s.getPermissions(): >>> ... print p ... accessDatabase [group Administrators] administrateServer [group Administrators] [...] streamEvents [group Non-Interactive Users] >>> Change-Id: If5de7491e55002fff6078741deb43d1dc3ed855e
This commit is contained in:
@@ -180,11 +180,8 @@ defined in the interpreter:
|
||||
"schk" is "com.google.gerrit.server.schema.SchemaVersionCheck@5e8cb9bd"
|
||||
"ds" is "com.google.gerrit.server.schema.DataSourceProvider@6b3592c"
|
||||
"m" is "com.google.gerrit.lifecycle.LifecycleManager@6f03b248"
|
||||
"q" is "com.google.gerrit.reviewdb.server.ReviewDb_Schema_GwtOrm$$23@56d3384d"
|
||||
"Shell" is "com.google.gerrit.pgm.shell.JythonShell@61644f2d"
|
||||
"x" is "com.google.gerrit.reviewdb.client.PatchLineComment@518acfa7"
|
||||
"z" is "com.google.gwtorm.jdbc.Database@668dfd9b"
|
||||
"db" is "com.google.gerrit.reviewdb.server.ReviewDb_Schema_GwtOrm$$23@6a3ccb09"
|
||||
"d" is "com.google.gerrit.pgm.Daemon@28a3f689"
|
||||
|
||||
Welcome to the Gerrit Inspector
|
||||
Enter help() to see the above again, EOF to quit and stop Gerrit
|
||||
|
@@ -226,6 +226,7 @@ public class Daemon extends SiteProgram {
|
||||
shell.set("m", manager);
|
||||
shell.set("ds", dbInjector.getInstance(DataSourceProvider.class));
|
||||
shell.set("schk", dbInjector.getInstance(SchemaVersionCheck.class));
|
||||
shell.set("d", this);
|
||||
shell.run();
|
||||
} else {
|
||||
RuntimeShutdown.waitFor();
|
||||
|
Reference in New Issue
Block a user