Author: jlowe Date: Tue Jul 23 19:25:19 2013 New Revision: 1506230 URL: http://svn.apache.org/r1506230 Log: svn merge -c 1506226 FIXES: MAPREDUCE-5356. Ability to refresh aggregated log retention period and check interval. Contributed by Ashwin Shankar
Modified: hadoop/common/branches/branch-2/hadoop-mapreduce-project/CHANGES.txt hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/JobHistoryServer.java hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/client/HSAdmin.java hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/protocol/HSAdminRefreshProtocol.java hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/protocolPB/HSAdminRefreshProtocolClientSideTranslatorPB.java hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/protocolPB/HSAdminRefreshProtocolServerSideTranslatorPB.java hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/server/HSAdminServer.java hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/proto/HSAdminRefreshProtocol.proto hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/test/java/org/apache/hadoop/mapreduce/v2/hs/server/TestHSAdminServer.java Modified: hadoop/common/branches/branch-2/hadoop-mapreduce-project/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-mapreduce-project/CHANGES.txt?rev=1506230&r1=1506229&r2=1506230&view=diff ============================================================================== --- hadoop/common/branches/branch-2/hadoop-mapreduce-project/CHANGES.txt (original) +++ hadoop/common/branches/branch-2/hadoop-mapreduce-project/CHANGES.txt Tue Jul 23 19:25:19 2013 @@ -9,6 +9,9 @@ Release 2.3.0 - UNRELEASED MAPREDUCE-5265. History server admin service to refresh user and superuser group mappings (Ashwin Shankar via jlowe) + MAPREDUCE-5356. Ability to refresh aggregated log retention period and + check interval (Ashwin Shankar via jlowe) + IMPROVEMENTS OPTIMIZATIONS Modified: hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/JobHistoryServer.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/JobHistoryServer.java?rev=1506230&r1=1506229&r2=1506230&view=diff ============================================================================== --- hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/JobHistoryServer.java (original) +++ hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/JobHistoryServer.java Tue Jul 23 19:25:19 2013 @@ -83,7 +83,7 @@ public class JobHistoryServer extends Co clientService = new HistoryClientService(historyContext, this.jhsDTSecretManager); aggLogDelService = new AggregatedLogDeletionService(); - hsAdminServer = new HSAdminServer(); + hsAdminServer = new HSAdminServer(aggLogDelService); addService(jobHistoryService); addService(clientService); addService(aggLogDelService); Modified: hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/client/HSAdmin.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/client/HSAdmin.java?rev=1506230&r1=1506229&r2=1506230&view=diff ============================================================================== --- hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/client/HSAdmin.java (original) +++ hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/client/HSAdmin.java Tue Jul 23 19:25:19 2013 @@ -60,6 +60,8 @@ public class HSAdmin extends Configured .println("Usage: mapred hsadmin [-refreshSuperUserGroupsConfiguration]"); } else if ("-refreshAdminAcls".equals(cmd)) { System.err.println("Usage: mapred hsadmin [-refreshAdminAcls]"); + } else if ("-refreshLogRetentionSettings".equals(cmd)) { + System.err.println("Usage: mapred hsadmin [-refreshLogRetentionSettings]"); } else if ("-getGroups".equals(cmd)) { System.err.println("Usage: mapred hsadmin" + " [-getGroups [username]]"); } else { @@ -67,6 +69,7 @@ public class HSAdmin extends Configured System.err.println(" [-refreshUserToGroupsMappings]"); System.err.println(" [-refreshSuperUserGroupsConfiguration]"); System.err.println(" [-refreshAdminAcls]"); + System.err.println(" [-refreshLogRetentionSettings]"); System.err.println(" [-getGroups [username]]"); System.err.println(" [-help [cmd]]"); System.err.println(); @@ -89,6 +92,8 @@ public class HSAdmin extends Configured String refreshAdminAcls = "-refreshAdminAcls: Refresh acls for administration of Job history server\n"; + String refreshLogRetentionSettings = "-refreshLogRetentionSettings: Refresh 'log retention time' and 'log retention check interval' \n"; + String getGroups = "-getGroups [username]: Get the groups which given user belongs to\n"; String help = "-help [cmd]: \tDisplays help for the given command or all commands if none\n" @@ -102,6 +107,8 @@ public class HSAdmin extends Configured System.out.println(refreshSuperUserGroupsConfiguration); } else if ("refreshAdminAcls".equals(cmd)) { System.out.println(refreshAdminAcls); + } else if ("refreshLogRetentionSettings".equals(cmd)) { + System.out.println(refreshLogRetentionSettings); } else if ("getGroups".equals(cmd)) { System.out.println(getGroups); } else { @@ -109,6 +116,7 @@ public class HSAdmin extends Configured System.out.println(refreshUserToGroupsMappings); System.out.println(refreshSuperUserGroupsConfiguration); System.out.println(refreshAdminAcls); + System.out.println(refreshLogRetentionSettings); System.out.println(getGroups); System.out.println(help); System.out.println(); @@ -198,6 +206,22 @@ public class HSAdmin extends Configured return 0; } + private int refreshLogRetentionSettings() throws IOException { + // Refresh log retention settings + Configuration conf = getConf(); + InetSocketAddress address = conf.getSocketAddr( + JHAdminConfig.JHS_ADMIN_ADDRESS, + JHAdminConfig.DEFAULT_JHS_ADMIN_ADDRESS, + JHAdminConfig.DEFAULT_JHS_ADMIN_PORT); + + HSAdminRefreshProtocol refreshProtocol = HSProxies + .createProxy(conf, address, HSAdminRefreshProtocol.class, + UserGroupInformation.getCurrentUser()); + + refreshProtocol.refreshLogRetentionSettings(); + return 0; + } + @Override public int run(String[] args) throws Exception { if (args.length < 1) { @@ -211,7 +235,8 @@ public class HSAdmin extends Configured if ("-refreshUserToGroupsMappings".equals(cmd) || "-refreshSuperUserGroupsConfiguration".equals(cmd) - || "-refreshAdminAcls".equals(cmd)) { + || "-refreshAdminAcls".equals(cmd) + || "-refreshLogRetentionSettings".equals(cmd)) { if (args.length != 1) { printUsage(cmd); return exitCode; @@ -225,6 +250,8 @@ public class HSAdmin extends Configured exitCode = refreshSuperUserGroupsConfiguration(); } else if ("-refreshAdminAcls".equals(cmd)) { exitCode = refreshAdminAcls(); + } else if ("-refreshLogRetentionSettings".equals(cmd)) { + exitCode = refreshLogRetentionSettings(); } else if ("-getGroups".equals(cmd)) { String[] usernames = Arrays.copyOfRange(args, i, args.length); exitCode = getGroups(usernames); Modified: hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/protocol/HSAdminRefreshProtocol.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/protocol/HSAdminRefreshProtocol.java?rev=1506230&r1=1506229&r2=1506230&view=diff ============================================================================== --- hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/protocol/HSAdminRefreshProtocol.java (original) +++ hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/protocol/HSAdminRefreshProtocol.java Tue Jul 23 19:25:19 2013 @@ -40,4 +40,11 @@ public interface HSAdminRefreshProtocol */ public void refreshAdminAcls() throws IOException; + /** + * Refresh log retention settings. + * + * @throws IOException + */ + public void refreshLogRetentionSettings() throws IOException; + } Modified: hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/protocolPB/HSAdminRefreshProtocolClientSideTranslatorPB.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/protocolPB/HSAdminRefreshProtocolClientSideTranslatorPB.java?rev=1506230&r1=1506229&r2=1506230&view=diff ============================================================================== --- hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/protocolPB/HSAdminRefreshProtocolClientSideTranslatorPB.java (original) +++ hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/protocolPB/HSAdminRefreshProtocolClientSideTranslatorPB.java Tue Jul 23 19:25:19 2013 @@ -27,6 +27,7 @@ import org.apache.hadoop.ipc.ProtocolMet import org.apache.hadoop.ipc.RPC; import org.apache.hadoop.ipc.RpcClientUtil; import org.apache.hadoop.mapreduce.v2.hs.proto.HSAdminRefreshProtocolProtos.RefreshAdminAclsRequestProto; +import org.apache.hadoop.mapreduce.v2.hs.proto.HSAdminRefreshProtocolProtos.RefreshLogRetentionSettingsRequestProto; import org.apache.hadoop.mapreduce.v2.hs.protocol.HSAdminRefreshProtocol; import com.google.protobuf.RpcController; @@ -43,7 +44,10 @@ public class HSAdminRefreshProtocolClien private final static RefreshAdminAclsRequestProto VOID_REFRESH_ADMIN_ACLS_REQUEST = RefreshAdminAclsRequestProto .newBuilder().build(); - + + private final static RefreshLogRetentionSettingsRequestProto VOID_REFRESH_LOG_RETENTION_SETTINGS_REQUEST = RefreshLogRetentionSettingsRequestProto + .newBuilder().build(); + public HSAdminRefreshProtocolClientSideTranslatorPB( HSAdminRefreshProtocolPB rpcProxy) { this.rpcProxy = rpcProxy; @@ -65,6 +69,16 @@ public class HSAdminRefreshProtocolClien } @Override + public void refreshLogRetentionSettings() throws IOException { + try { + rpcProxy.refreshLogRetentionSettings(NULL_CONTROLLER, + VOID_REFRESH_LOG_RETENTION_SETTINGS_REQUEST); + } catch (ServiceException se) { + throw ProtobufHelper.getRemoteException(se); + } + } + + @Override public boolean isMethodSupported(String methodName) throws IOException { return RpcClientUtil.isMethodSupported(rpcProxy, HSAdminRefreshProtocolPB.class, RPC.RpcKind.RPC_PROTOCOL_BUFFER, Modified: hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/protocolPB/HSAdminRefreshProtocolServerSideTranslatorPB.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/protocolPB/HSAdminRefreshProtocolServerSideTranslatorPB.java?rev=1506230&r1=1506229&r2=1506230&view=diff ============================================================================== --- hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/protocolPB/HSAdminRefreshProtocolServerSideTranslatorPB.java (original) +++ hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/protocolPB/HSAdminRefreshProtocolServerSideTranslatorPB.java Tue Jul 23 19:25:19 2013 @@ -23,6 +23,8 @@ import java.io.IOException; import org.apache.hadoop.classification.InterfaceAudience.Private; import org.apache.hadoop.mapreduce.v2.hs.proto.HSAdminRefreshProtocolProtos.RefreshAdminAclsResponseProto; import org.apache.hadoop.mapreduce.v2.hs.proto.HSAdminRefreshProtocolProtos.RefreshAdminAclsRequestProto; +import org.apache.hadoop.mapreduce.v2.hs.proto.HSAdminRefreshProtocolProtos.RefreshLogRetentionSettingsRequestProto; +import org.apache.hadoop.mapreduce.v2.hs.proto.HSAdminRefreshProtocolProtos.RefreshLogRetentionSettingsResponseProto; import org.apache.hadoop.mapreduce.v2.hs.protocol.HSAdminRefreshProtocol; import com.google.protobuf.RpcController; @@ -36,6 +38,8 @@ public class HSAdminRefreshProtocolServe private final static RefreshAdminAclsResponseProto VOID_REFRESH_ADMIN_ACLS_RESPONSE = RefreshAdminAclsResponseProto .newBuilder().build(); + private final static RefreshLogRetentionSettingsResponseProto VOID_REFRESH_LOG_RETENTION_SETTINGS_RESPONSE = RefreshLogRetentionSettingsResponseProto + .newBuilder().build(); public HSAdminRefreshProtocolServerSideTranslatorPB( HSAdminRefreshProtocol impl) { @@ -54,4 +58,15 @@ public class HSAdminRefreshProtocolServe return VOID_REFRESH_ADMIN_ACLS_RESPONSE; } + @Override + public RefreshLogRetentionSettingsResponseProto refreshLogRetentionSettings( + RpcController controller, RefreshLogRetentionSettingsRequestProto request) + throws ServiceException { + try { + impl.refreshLogRetentionSettings(); + } catch (IOException e) { + throw new ServiceException(e); + } + return VOID_REFRESH_LOG_RETENTION_SETTINGS_RESPONSE; + } } Modified: hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/server/HSAdminServer.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/server/HSAdminServer.java?rev=1506230&r1=1506229&r2=1506230&view=diff ============================================================================== --- hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/server/HSAdminServer.java (original) +++ hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/server/HSAdminServer.java Tue Jul 23 19:25:19 2013 @@ -34,6 +34,7 @@ import org.apache.hadoop.security.Groups import org.apache.hadoop.security.UserGroupInformation; import org.apache.hadoop.security.authorize.AccessControlList; import org.apache.hadoop.security.authorize.ProxyUsers; +import org.apache.hadoop.yarn.logaggregation.AggregatedLogDeletionService; import org.apache.hadoop.security.proto.RefreshUserMappingsProtocolProtos.RefreshUserMappingsProtocolService; import org.apache.hadoop.security.protocolPB.RefreshUserMappingsProtocolPB; import org.apache.hadoop.security.protocolPB.RefreshUserMappingsProtocolServerSideTranslatorPB; @@ -55,14 +56,16 @@ public class HSAdminServer extends Abstr private static final Log LOG = LogFactory.getLog(HSAdminServer.class); private AccessControlList adminAcl; + private AggregatedLogDeletionService aggLogDelService = null; /** The RPC server that listens to requests from clients */ protected RPC.Server clientRpcServer; protected InetSocketAddress clientRpcAddress; private static final String HISTORY_ADMIN_SERVER = "HSAdminServer"; - - public HSAdminServer() { + + public HSAdminServer(AggregatedLogDeletionService aggLogDelService) { super(HSAdminServer.class.getName()); + this.aggLogDelService = aggLogDelService; } @Override @@ -101,6 +104,7 @@ public class HSAdminServer extends Abstr adminAcl = new AccessControlList(conf.get(JHAdminConfig.JHS_ADMIN_ACL, JHAdminConfig.DEFAULT_JHS_ADMIN_ACL)); + } @Override @@ -192,5 +196,14 @@ public class HSAdminServer extends Abstr HSAuditLogger.logSuccess(user.getShortUserName(), "refreshAdminAcls", HISTORY_ADMIN_SERVER); } + + @Override + public void refreshLogRetentionSettings() throws IOException { + UserGroupInformation user = checkAcls("refreshLogRetentionSettings"); + aggLogDelService.refreshLogRetentionSettings(); + + HSAuditLogger.logSuccess(user.getShortUserName(), + "refreshLogRetentionSettings", "HSAdminServer"); + } } Modified: hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/proto/HSAdminRefreshProtocol.proto URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/proto/HSAdminRefreshProtocol.proto?rev=1506230&r1=1506229&r2=1506230&view=diff ============================================================================== --- hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/proto/HSAdminRefreshProtocol.proto (original) +++ hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/proto/HSAdminRefreshProtocol.proto Tue Jul 23 19:25:19 2013 @@ -34,6 +34,18 @@ message RefreshAdminAclsResponseProto { } /** + * refresh log retention request. + */ +message RefreshLogRetentionSettingsRequestProto { +} + +/** + * Response for refresh log retention. + */ +message RefreshLogRetentionSettingsResponseProto { +} + +/** * Refresh Protocols implemented by the History server */ service HSAdminRefreshProtocolService { @@ -42,4 +54,9 @@ service HSAdminRefreshProtocolService { */ rpc refreshAdminAcls(RefreshAdminAclsRequestProto) returns(RefreshAdminAclsResponseProto); + /** + * Refresh log retention + */ + rpc refreshLogRetentionSettings(RefreshLogRetentionSettingsRequestProto) + returns(RefreshLogRetentionSettingsResponseProto); } \ No newline at end of file Modified: hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/test/java/org/apache/hadoop/mapreduce/v2/hs/server/TestHSAdminServer.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/test/java/org/apache/hadoop/mapreduce/v2/hs/server/TestHSAdminServer.java?rev=1506230&r1=1506229&r2=1506230&view=diff ============================================================================== --- hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/test/java/org/apache/hadoop/mapreduce/v2/hs/server/TestHSAdminServer.java (original) +++ hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/test/java/org/apache/hadoop/mapreduce/v2/hs/server/TestHSAdminServer.java Tue Jul 23 19:25:19 2013 @@ -39,14 +39,17 @@ import org.junit.Before; import org.junit.Test; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; +import static org.mockito.Mockito.verify; import org.apache.hadoop.security.authorize.AuthorizationException; +import org.apache.hadoop.yarn.logaggregation.AggregatedLogDeletionService; public class TestHSAdminServer { private HSAdminServer hsAdminServer = null; private HSAdmin hsAdminClient = null; Configuration conf = null; private static long groupRefreshTimeoutSec = 1; + AggregatedLogDeletionService alds = null; public static class MockUnixGroupsMapping implements GroupMappingServiceProvider { @@ -82,7 +85,9 @@ public class TestHSAdminServer { GroupMappingServiceProvider.class); conf.setLong("hadoop.security.groups.cache.secs", groupRefreshTimeoutSec); Groups.getUserToGroupsMappingService(conf); - hsAdminServer = new HSAdminServer() { + alds = mock(AggregatedLogDeletionService.class); + + hsAdminServer = new HSAdminServer(alds) { @Override protected Configuration createConf() { return conf; @@ -231,6 +236,14 @@ public class TestHSAdminServer { } assertTrue(th instanceof RemoteException); } + + @Test + public void testRefreshLogRetentionSettings() throws Exception { + String[] args = new String[1]; + args[0] = "-refreshLogRetentionSettings"; + hsAdminClient.run(args); + verify(alds).refreshLogRetentionSettings(); + } @After public void cleanUp() {