From 88693e491b0d929b6b3f5783d11126fce87b1370 Mon Sep 17 00:00:00 2001 From: James Moger Date: Thu, 6 Mar 2014 13:38:12 -0500 Subject: [PATCH] Add and document REINDEX_TICKETS rpc request type --- src/main/java/com/gitblit/Constants.java | 2 +- .../java/com/gitblit/servlet/RpcServlet.java | 15 ++++++++- src/main/java/com/gitblit/utils/RpcUtils.java | 31 +++++++++++++++++++ src/site/rpc.mkd | 2 ++ 4 files changed, 48 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/gitblit/Constants.java b/src/main/java/com/gitblit/Constants.java index 5b71eeb9..e93f7b1d 100644 --- a/src/main/java/com/gitblit/Constants.java +++ b/src/main/java/com/gitblit/Constants.java @@ -350,7 +350,7 @@ public class Constants { public static enum RpcRequest { // Order is important here. anything above LIST_SETTINGS requires // administrator privileges and web.allowRpcManagement. - CLEAR_REPOSITORY_CACHE, GET_PROTOCOL, LIST_REPOSITORIES, LIST_BRANCHES, GET_USER, LIST_SETTINGS, + CLEAR_REPOSITORY_CACHE, REINDEX_TICKETS, GET_PROTOCOL, LIST_REPOSITORIES, LIST_BRANCHES, GET_USER, LIST_SETTINGS, CREATE_REPOSITORY, EDIT_REPOSITORY, DELETE_REPOSITORY, LIST_USERS, CREATE_USER, EDIT_USER, DELETE_USER, LIST_TEAMS, CREATE_TEAM, EDIT_TEAM, DELETE_TEAM, diff --git a/src/main/java/com/gitblit/servlet/RpcServlet.java b/src/main/java/com/gitblit/servlet/RpcServlet.java index 28f0d5bf..2d59ebd7 100644 --- a/src/main/java/com/gitblit/servlet/RpcServlet.java +++ b/src/main/java/com/gitblit/servlet/RpcServlet.java @@ -59,7 +59,7 @@ public class RpcServlet extends JsonServlet { private static final long serialVersionUID = 1L; - public static final int PROTOCOL_VERSION = 6; + public static final int PROTOCOL_VERSION = 7; private IStoredSettings settings; @@ -383,6 +383,19 @@ public class RpcServlet extends JsonServlet { } else { response.sendError(notAllowedCode); } + } else if (RpcRequest.REINDEX_TICKETS.equals(reqType)) { + if (allowManagement) { + if (StringUtils.isEmpty(objectName)) { + // reindex all tickets + gitblit.getTicketService().reindex(); + } else { + // reindex tickets in a specific repository + RepositoryModel model = gitblit.getRepositoryModel(objectName); + gitblit.getTicketService().reindex(model); + } + } else { + response.sendError(notAllowedCode); + } } // send the result of the request diff --git a/src/main/java/com/gitblit/utils/RpcUtils.java b/src/main/java/com/gitblit/utils/RpcUtils.java index 24e07dcd..5e577fb6 100644 --- a/src/main/java/com/gitblit/utils/RpcUtils.java +++ b/src/main/java/com/gitblit/utils/RpcUtils.java @@ -251,6 +251,37 @@ public class RpcUtils { password); } + /** + * Reindex all tickets on the Gitblit server. + * + * @param serverUrl + * @param account + * @param password + * @return true if the action succeeded + * @throws IOException + */ + public static boolean reindexTickets(String serverUrl, String account, + char[] password) throws IOException { + return doAction(RpcRequest.REINDEX_TICKETS, null, null, serverUrl, account, + password); + } + + /** + * Reindex tickets for the specified repository on the Gitblit server. + * + * @param serverUrl + * @param repositoryName + * @param account + * @param password + * @return true if the action succeeded + * @throws IOException + */ + public static boolean reindexTickets(String serverUrl, String repositoryName, + String account, char[] password) throws IOException { + return doAction(RpcRequest.REINDEX_TICKETS, repositoryName, null, serverUrl, + account, password); + } + /** * Create a user on the Gitblit server. * diff --git a/src/site/rpc.mkd b/src/site/rpc.mkd index 58b2966c..b86fd9ad 100644 --- a/src/site/rpc.mkd +++ b/src/site/rpc.mkd @@ -59,6 +59,7 @@ The Gitblit API includes methods for retrieving and interpreting RSS feeds. The Gitblit v1.1.04 Gitblit v1.2.0+5 Gitblit v1.3.1+6 +Gitblit v1.4.0+7 @@ -102,6 +103,7 @@ Use *SET_REPOSITORY_TEAM_PERMISSIONS* instead. SET_REPOSITORY_TEAM_PERMISSIONSrepository nameadmin5List<String>- LIST_SETTINGS-admin1-ServerSettings (management keys) CLEAR_REPOSITORY_CACHE--4-- +REINDEX_TICKETSrepository name-7-- web.enableRpcAdministration=true LIST_FEDERATION_REGISTRATIONS-admin1-List<FederationModel> LIST_FEDERATION_RESULTS-admin1-List<FederationModel> -- 2.39.5