SLIDER-715 REST STOP action...add queues accessor to state access view of REST API
Project: http://git-wip-us.apache.org/repos/asf/incubator-slider/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-slider/commit/26549461 Tree: http://git-wip-us.apache.org/repos/asf/incubator-slider/tree/26549461 Diff: http://git-wip-us.apache.org/repos/asf/incubator-slider/diff/26549461 Branch: refs/heads/develop Commit: 2654946180aa4eb6db0fe095f025f2509c446192 Parents: 61855ab Author: Steve Loughran <[email protected]> Authored: Wed Jan 14 13:57:35 2015 +0000 Committer: Steve Loughran <[email protected]> Committed: Wed Jan 14 16:28:27 2015 +0000 ---------------------------------------------------------------------- .../slider/server/appmaster/SliderAppMaster.java | 3 ++- .../slider/server/appmaster/state/AppState.java | 2 +- .../appmaster/state/StateAccessForProviders.java | 5 +++++ .../slider/server/appmaster/web/WebAppApi.java | 16 ++++++++++++++++ .../slider/server/appmaster/web/WebAppApiImpl.java | 11 ++++++++++- .../TestMockAppStateAppRestIntegration.groovy | 2 +- .../web/view/TestClusterSpecificationBlock.groovy | 2 +- .../web/view/TestContainerStatsBlock.groovy | 2 +- .../server/appmaster/web/view/TestIndexBlock.groovy | 2 +- .../web/rest/agent/TestAMAgentWebServices.java | 3 ++- .../management/TestAMManagementWebServices.java | 3 ++- 11 files changed, 42 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/26549461/slider-core/src/main/java/org/apache/slider/server/appmaster/SliderAppMaster.java ---------------------------------------------------------------------- diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/SliderAppMaster.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/SliderAppMaster.java index 06e6c1d..2629a4d 100644 --- a/slider-core/src/main/java/org/apache/slider/server/appmaster/SliderAppMaster.java +++ b/slider-core/src/main/java/org/apache/slider/server/appmaster/SliderAppMaster.java @@ -902,7 +902,8 @@ public class SliderAppMaster extends AbstractSliderLaunchedService providerService, certificateManager, registryOperations, - metricsAndMonitoring); + metricsAndMonitoring, + actionQueues); initAMFilterOptions(serviceConf); // start the agent web app http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/26549461/slider-core/src/main/java/org/apache/slider/server/appmaster/state/AppState.java ---------------------------------------------------------------------- diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/state/AppState.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/state/AppState.java index f381cde..4b37e14 100644 --- a/slider-core/src/main/java/org/apache/slider/server/appmaster/state/AppState.java +++ b/slider-core/src/main/java/org/apache/slider/server/appmaster/state/AppState.java @@ -888,7 +888,7 @@ public class AppState { } /** - * Get a clone of the role status list. Concurrent events may mean this + * Get a deep clone of the role status list. Concurrent events may mean this * list (or indeed, some of the role status entries) may be inconsistent * @return a snapshot of the role status entries */ http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/26549461/slider-core/src/main/java/org/apache/slider/server/appmaster/state/StateAccessForProviders.java ---------------------------------------------------------------------- diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/state/StateAccessForProviders.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/state/StateAccessForProviders.java index 2cbe6b1..057c07b 100644 --- a/slider-core/src/main/java/org/apache/slider/server/appmaster/state/StateAccessForProviders.java +++ b/slider-core/src/main/java/org/apache/slider/server/appmaster/state/StateAccessForProviders.java @@ -214,5 +214,10 @@ public interface StateAccessForProviders { */ void refreshClusterStatus(); + /** + * Get a deep clone of the role status list. Concurrent events may mean this + * list (or indeed, some of the role status entries) may be inconsistent + * @return a snapshot of the role status entries + */ List<RoleStatus> cloneRoleStatusList(); } http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/26549461/slider-core/src/main/java/org/apache/slider/server/appmaster/web/WebAppApi.java ---------------------------------------------------------------------- diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/WebAppApi.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/WebAppApi.java index 6aa24c4..db32e48 100644 --- a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/WebAppApi.java +++ b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/WebAppApi.java @@ -19,6 +19,7 @@ package org.apache.slider.server.appmaster.web; import org.apache.hadoop.registry.client.api.RegistryOperations; import org.apache.slider.api.SliderClusterProtocol; import org.apache.slider.providers.ProviderService; +import org.apache.slider.server.appmaster.actions.QueueAccess; import org.apache.slider.server.appmaster.management.MetricsAndMonitoring; import org.apache.slider.server.appmaster.state.AppState; import org.apache.slider.server.appmaster.state.RoleStatus; @@ -66,7 +67,22 @@ public interface WebAppApi { AgentRestOperations getAgentRestOperations(); + /** + * Registry operations accessor + * @return registry access + */ RegistryOperations getRegistryOperations(); + /** + * Metrics and monitoring service + * @return the (singleton) instance + */ MetricsAndMonitoring getMetricsAndMonitoring(); + + /** + * Get the queue accessor + * @return the immediate and scheduled queues + */ + QueueAccess getQueues(); + } http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/26549461/slider-core/src/main/java/org/apache/slider/server/appmaster/web/WebAppApiImpl.java ---------------------------------------------------------------------- diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/WebAppApiImpl.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/WebAppApiImpl.java index d5532ea..0597c39 100644 --- a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/WebAppApiImpl.java +++ b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/WebAppApiImpl.java @@ -19,6 +19,7 @@ package org.apache.slider.server.appmaster.web; import org.apache.hadoop.registry.client.api.RegistryOperations; import org.apache.slider.api.SliderClusterProtocol; import org.apache.slider.providers.ProviderService; +import org.apache.slider.server.appmaster.actions.QueueAccess; import org.apache.slider.server.appmaster.management.MetricsAndMonitoring; import org.apache.slider.server.appmaster.state.RoleStatus; import org.apache.slider.server.appmaster.state.StateAccessForProviders; @@ -45,16 +46,19 @@ public class WebAppApiImpl implements WebAppApi { protected final CertificateManager certificateManager; private final RegistryOperations registryOperations; private final MetricsAndMonitoring metricsAndMonitoring; + private final QueueAccess queues; public WebAppApiImpl(SliderClusterProtocol clusterProto, StateAccessForProviders appState, ProviderService provider, CertificateManager certificateManager, RegistryOperations registryOperations, - MetricsAndMonitoring metricsAndMonitoring) { + MetricsAndMonitoring metricsAndMonitoring, + QueueAccess queues) { checkNotNull(clusterProto); checkNotNull(appState); checkNotNull(provider); + this.queues = queues; this.registryOperations = registryOperations; this.clusterProto = clusterProto; @@ -109,4 +113,9 @@ public class WebAppApiImpl implements WebAppApi { public MetricsAndMonitoring getMetricsAndMonitoring() { return metricsAndMonitoring; } + + @Override + public QueueAccess getQueues() { + return queues; + } } http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/26549461/slider-core/src/test/groovy/org/apache/slider/server/appmaster/model/appstate/TestMockAppStateAppRestIntegration.groovy ---------------------------------------------------------------------- diff --git a/slider-core/src/test/groovy/org/apache/slider/server/appmaster/model/appstate/TestMockAppStateAppRestIntegration.groovy b/slider-core/src/test/groovy/org/apache/slider/server/appmaster/model/appstate/TestMockAppStateAppRestIntegration.groovy index cf32f33..4672da9 100644 --- a/slider-core/src/test/groovy/org/apache/slider/server/appmaster/model/appstate/TestMockAppStateAppRestIntegration.groovy +++ b/slider-core/src/test/groovy/org/apache/slider/server/appmaster/model/appstate/TestMockAppStateAppRestIntegration.groovy @@ -118,7 +118,7 @@ class TestMockAppStateAppRestIntegration extends BaseMockAppStateTest implements stateAccess, new MockProviderService(), null, null, - new MetricsAndMonitoring("metrics")) + new MetricsAndMonitoring("metrics"), null) return api } http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/26549461/slider-core/src/test/groovy/org/apache/slider/server/appmaster/web/view/TestClusterSpecificationBlock.groovy ---------------------------------------------------------------------- diff --git a/slider-core/src/test/groovy/org/apache/slider/server/appmaster/web/view/TestClusterSpecificationBlock.groovy b/slider-core/src/test/groovy/org/apache/slider/server/appmaster/web/view/TestClusterSpecificationBlock.groovy index 164d93c..7ea5a2a 100644 --- a/slider-core/src/test/groovy/org/apache/slider/server/appmaster/web/view/TestClusterSpecificationBlock.groovy +++ b/slider-core/src/test/groovy/org/apache/slider/server/appmaster/web/view/TestClusterSpecificationBlock.groovy @@ -57,7 +57,7 @@ public class TestClusterSpecificationBlock { providerAppState, providerService, null, - null, null); + null, null, null); Injector injector = Guice.createInjector(new AbstractModule() { @Override http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/26549461/slider-core/src/test/groovy/org/apache/slider/server/appmaster/web/view/TestContainerStatsBlock.groovy ---------------------------------------------------------------------- diff --git a/slider-core/src/test/groovy/org/apache/slider/server/appmaster/web/view/TestContainerStatsBlock.groovy b/slider-core/src/test/groovy/org/apache/slider/server/appmaster/web/view/TestContainerStatsBlock.groovy index 669c00e..abd8477 100644 --- a/slider-core/src/test/groovy/org/apache/slider/server/appmaster/web/view/TestContainerStatsBlock.groovy +++ b/slider-core/src/test/groovy/org/apache/slider/server/appmaster/web/view/TestContainerStatsBlock.groovy @@ -64,7 +64,7 @@ public class TestContainerStatsBlock extends BaseMockAppStateTest { providerAppState, providerService, null, - null, metrics); + null, metrics, null); Injector injector = Guice.createInjector(new AbstractModule() { @Override http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/26549461/slider-core/src/test/groovy/org/apache/slider/server/appmaster/web/view/TestIndexBlock.groovy ---------------------------------------------------------------------- diff --git a/slider-core/src/test/groovy/org/apache/slider/server/appmaster/web/view/TestIndexBlock.groovy b/slider-core/src/test/groovy/org/apache/slider/server/appmaster/web/view/TestIndexBlock.groovy index 82e36f5..324aa38 100644 --- a/slider-core/src/test/groovy/org/apache/slider/server/appmaster/web/view/TestIndexBlock.groovy +++ b/slider-core/src/test/groovy/org/apache/slider/server/appmaster/web/view/TestIndexBlock.groovy @@ -56,7 +56,7 @@ public class TestIndexBlock extends BaseMockAppStateTest { providerAppState, providerService, null, - null, metrics); + null, metrics, null); Injector injector = Guice.createInjector(new AbstractModule() { @Override http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/26549461/slider-core/src/test/java/org/apache/slider/server/appmaster/web/rest/agent/TestAMAgentWebServices.java ---------------------------------------------------------------------- diff --git a/slider-core/src/test/java/org/apache/slider/server/appmaster/web/rest/agent/TestAMAgentWebServices.java b/slider-core/src/test/java/org/apache/slider/server/appmaster/web/rest/agent/TestAMAgentWebServices.java index 12ca949..4aac2f1 100644 --- a/slider-core/src/test/java/org/apache/slider/server/appmaster/web/rest/agent/TestAMAgentWebServices.java +++ b/slider-core/src/test/java/org/apache/slider/server/appmaster/web/rest/agent/TestAMAgentWebServices.java @@ -144,7 +144,8 @@ public class TestAMAgentWebServices { appState); slider = new WebAppApiImpl(new MockSliderClusterProtocol(), providerAppState, - new MockProviderService(), null, null, null); + new MockProviderService(), null, null, null, + null); MapOperations compOperations = new MapOperations(); http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/26549461/slider-core/src/test/java/org/apache/slider/server/appmaster/web/rest/management/TestAMManagementWebServices.java ---------------------------------------------------------------------- diff --git a/slider-core/src/test/java/org/apache/slider/server/appmaster/web/rest/management/TestAMManagementWebServices.java b/slider-core/src/test/java/org/apache/slider/server/appmaster/web/rest/management/TestAMManagementWebServices.java index 0776afc..f19f8f3 100644 --- a/slider-core/src/test/java/org/apache/slider/server/appmaster/web/rest/management/TestAMManagementWebServices.java +++ b/slider-core/src/test/java/org/apache/slider/server/appmaster/web/rest/management/TestAMManagementWebServices.java @@ -192,7 +192,8 @@ public class TestAMManagementWebServices extends JerseyTest { appState); slider = new WebAppApiImpl(new MockSliderClusterProtocol(), providerAppState, - new MockProviderService(), null, null, null); + new MockProviderService(), null, null, null, + null); bind(SliderJacksonJaxbJsonProvider.class); bind(MockSliderAMWebServices.class);
