You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@slider.apache.org by go...@apache.org on 2016/08/25 20:19:45 UTC
[16/46] incubator-slider git commit: SLIDER-1165 Create
yarn-native-services branch on Slider corresponding to the
yarn-native-services branch on Hadoop
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/51c2b92c/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
deleted file mode 100644
index ad91183..0000000
--- a/slider-core/src/main/java/org/apache/slider/server/appmaster/state/StateAccessForProviders.java
+++ /dev/null
@@ -1,313 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.slider.server.appmaster.state;
-
-import org.apache.hadoop.yarn.api.records.Container;
-import org.apache.hadoop.yarn.api.records.ContainerId;
-import org.apache.hadoop.yarn.exceptions.YarnRuntimeException;
-import org.apache.slider.api.ClusterDescription;
-import org.apache.slider.api.ClusterNode;
-import org.apache.slider.api.StatusKeys;
-import org.apache.slider.api.types.ApplicationLivenessInformation;
-import org.apache.slider.api.types.ComponentInformation;
-import org.apache.slider.api.types.NodeInformation;
-import org.apache.slider.api.types.RoleStatistics;
-import org.apache.slider.core.conf.AggregateConf;
-import org.apache.slider.core.conf.ConfTreeOperations;
-import org.apache.slider.core.exceptions.NoSuchNodeException;
-import org.apache.slider.core.registry.docstore.PublishedConfigSet;
-import org.apache.slider.core.registry.docstore.PublishedExportsSet;
-
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-
-/**
- * The methods to offer state access to the providers and other parts of
- * the system which want read-only access to the state.
- */
-public interface StateAccessForProviders {
-
- /**
- * Get a map of role status entries by role Id
- * @return the map of currently defined roles.
- */
- Map<Integer, RoleStatus> getRoleStatusMap();
-
- /**
- * Get the name of the application
- * @return the name
- */
- String getApplicationName();
-
- /**
- * Get the published configurations
- * @return the configuration set
- */
- PublishedConfigSet getPublishedSliderConfigurations();
-
- /**
- * Get the published exports set
- * @return
- */
- PublishedExportsSet getPublishedExportsSet();
-
- /**
- * Get a named published config set
- * @param name name to look up
- * @return the instance or null
- */
- PublishedConfigSet getPublishedConfigSet(String name);
-
- /**
- * Get a named published config set, creating it if need be.
- * @param name name to look up
- * @return the instance -possibly a new one
- */
- PublishedConfigSet getOrCreatePublishedConfigSet(String name);
-
- /**
- * List the config sets -this takes a clone of the current set
- * @return a list of config sets
- */
- List<String> listConfigSets();
-
- /**
- * Get a map of all the failed containers
- * @return map of recorded failed containers
- */
- Map<ContainerId, RoleInstance> getFailedContainers();
-
- /**
- * Get the live containers.
- *
- * @return the live nodes
- */
- Map<ContainerId, RoleInstance> getLiveContainers();
-
- /**
- * Get the current cluster description
- * @return the actual state of the cluster
- */
- ClusterDescription getClusterStatus();
-
- /**
- * Get at the snapshot of the resource config
- * Changes here do not affect the application state.
- * @return the most recent settings
- */
- ConfTreeOperations getResourcesSnapshot();
-
- /**
- * Get at the snapshot of the appconf config
- * Changes here do not affect the application state.
- * @return the most recent settings
- */
- ConfTreeOperations getAppConfSnapshot();
-
- /**
- * Get at the snapshot of the internals config.
- * Changes here do not affect the application state.
- * @return the internals settings
- */
-
- ConfTreeOperations getInternalsSnapshot();
-
- /**
- * Flag set to indicate the application is live -this only happens
- * after the buildInstance operation
- */
- boolean isApplicationLive();
-
- long getSnapshotTime();
-
- /**
- * Get a snapshot of the entire aggregate configuration
- * @return the aggregate configuration
- */
- AggregateConf getInstanceDefinitionSnapshot();
-
- /**
- * Get the desired/unresolved value
- * @return unresolved
- */
- AggregateConf getUnresolvedInstanceDefinition();
-
- /**
- * Look up a role from its key -or fail
- *
- * @param key key to resolve
- * @return the status
- * @throws YarnRuntimeException on no match
- */
- RoleStatus lookupRoleStatus(int key);
-
- /**
- * Look up a role from its key -or fail
- *
- * @param c container in a role
- * @return the status
- * @throws YarnRuntimeException on no match
- */
- RoleStatus lookupRoleStatus(Container c) throws YarnRuntimeException;
-
- /**
- * Look up a role from its key -or fail
- *
- * @param name container in a role
- * @return the status
- * @throws YarnRuntimeException on no match
- */
- RoleStatus lookupRoleStatus(String name) throws YarnRuntimeException;
-
- /**
- * Clone a list of active containers
- * @return the active containers at the time
- * the call was made
- */
- List<RoleInstance> cloneOwnedContainerList();
-
- /**
- * Get the number of active containers
- * @return the number of active containers the time the call was made
- */
- int getNumOwnedContainers();
-
- /**
- * Get any active container with the given ID
- * @param id container Id
- * @return the active container or null if it is not found
- */
- RoleInstance getOwnedContainer(ContainerId id);
-
- /**
- * Get any active container with the given ID
- * @param id container Id
- * @return the active container or null if it is not found
- */
- RoleInstance getOwnedContainer(String id) throws NoSuchNodeException;
-
- /**
- * Create a clone of the list of live cluster nodes.
- * @return the list of nodes, may be empty
- */
- List<RoleInstance> cloneLiveContainerInfoList();
-
- /**
- * Get the {@link RoleInstance} details on a container.
- * This is an O(n) operation
- * @param containerId the container ID
- * @return null if there is no such node
- * @throws NoSuchNodeException if the node cannot be found
- */
- RoleInstance getLiveInstanceByContainerID(String containerId)
- throws NoSuchNodeException;
-
- /**
- * Get the details on a list of instaces referred to by ID.
- * Unknown nodes are not returned
- * <i>Important: the order of the results are undefined</i>
- * @param containerIDs the containers
- * @return list of instances
- */
- List<RoleInstance> getLiveInstancesByContainerIDs(
- Collection<String> containerIDs);
-
- /**
- * Update the cluster description with anything interesting
- */
- ClusterDescription 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();
-
- /**
- * get application liveness information
- * @return a snapshot of the current liveness information
- */
- ApplicationLivenessInformation getApplicationLivenessInformation();
-
- /**
- * Get the live statistics map
- * @return a map of statistics values, defined in the {@link StatusKeys}
- * keylist.
- */
- Map<String, Integer> getLiveStatistics();
-
- /**
- * Get a snapshot of component information.
- * <p>
- * This does <i>not</i> include any container list, which
- * is more expensive to create.
- * @return a map of current role status values.
- */
- Map<String, ComponentInformation> getComponentInfoSnapshot();
-
- /**
- * Find out about the nodes for specific roles
- * @return
- */
- Map<String, Map<String, ClusterNode>> getRoleClusterNodeMapping();
-
- /**
- * Enum all role instances by role.
- * @param role role, or "" for all roles
- * @return a list of instances, may be empty
- */
- List<RoleInstance> enumLiveInstancesInRole(String role);
-
- /**
- * Look up all containers of a specific component name
- * @param component component/role name
- * @return list of instances. This is a snapshot
- */
- List<RoleInstance> lookupRoleContainers(String component);
-
- /**
- * Get the JSON serializable information about a component
- * @param component component to look up
- * @return a structure describing the component.
- */
- ComponentInformation getComponentInformation(String component);
-
-
- /**
- * Get a clone of the nodemap.
- * The instances inside are not cloned
- * @return a possibly empty map of hostname top info
- */
- Map<String, NodeInformation> getNodeInformationSnapshot();
-
- /**
- * get information on a node
- * @param hostname hostname to look up
- * @return the information, or null if there is no information held.
- */
- NodeInformation getNodeInformation(String hostname);
-
- /**
- * Get the aggregate statistics across all roles
- * @return role statistics
- */
- RoleStatistics getRoleStatistics();
-}
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/51c2b92c/slider-core/src/main/java/org/apache/slider/server/appmaster/web/AgentService.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/AgentService.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/AgentService.java
deleted file mode 100644
index f840035..0000000
--- a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/AgentService.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.slider.server.appmaster.web;
-
-import org.apache.slider.server.appmaster.web.rest.agent.AgentWebApp;
-import org.apache.slider.server.services.workflow.ClosingService;
-import org.apache.slider.server.services.workflow.WorkflowCompositeService;
-
-/**
- * agent service gives the agent webapp lifecycle integration
- */
-public class AgentService extends ClosingService<AgentWebApp> {
-
-
- public AgentService(String name) {
- super(name);
- }
-
- public AgentService(String name, AgentWebApp app) {
- super(name, app);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/51c2b92c/slider-core/src/main/java/org/apache/slider/server/appmaster/web/HttpCacheHeaders.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/HttpCacheHeaders.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/HttpCacheHeaders.java
deleted file mode 100644
index be8960d..0000000
--- a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/HttpCacheHeaders.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.slider.server.appmaster.web;
-
-/*
-
-
- , );
- long now = System.currentTimeMillis();
- httpRes.addDateHeader ( "Expires", now );
- httpRes.addDateHeader ( "Date", now );
- httpRes.addHeader ( "Pragma", "no-cache" );
- */
-public interface HttpCacheHeaders {
- String HTTP_HEADER_CACHE_CONTROL = "Cache-Control";
- String HTTP_HEADER_CACHE_CONTROL_NONE = "no-cache";
- String HTTP_HEADER_PRAGMA = "Pragma";
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/51c2b92c/slider-core/src/main/java/org/apache/slider/server/appmaster/web/SliderAMController.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/SliderAMController.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/SliderAMController.java
deleted file mode 100644
index c3c6e60..0000000
--- a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/SliderAMController.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.slider.server.appmaster.web;
-
-import com.google.inject.Inject;
-import org.apache.hadoop.yarn.webapp.Controller;
-import org.apache.slider.server.appmaster.web.layout.AppLayout;
-import org.apache.slider.server.appmaster.web.layout.ClusterSpecificationView;
-import org.apache.slider.server.appmaster.web.layout.ContainerStatsView;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- *
- */
-public class SliderAMController extends Controller {
- private static final Logger log = LoggerFactory.getLogger(SliderAMController.class);
-
- private final WebAppApi slider;
-
- @Inject
- public SliderAMController(WebAppApi slider, RequestContext ctx) {
- super(ctx);
- this.slider = slider;
- }
-
- @Override
- public void index() {
- setTitle("Slider App Master");
-
- updateAppState();
-
- render(AppLayout.class);
- }
-
- public void containerStats() {
- setTitle("Container Statistics");
-
- updateAppState();
-
- render(ContainerStatsView.class);
- }
-
- public void specification() {
- setTitle("Cluster Specification");
-
- render(ClusterSpecificationView.class);
- }
-
- private void updateAppState() {
- //TODO don't do this on every request?
- slider.getAppState().refreshClusterStatus();
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/51c2b92c/slider-core/src/main/java/org/apache/slider/server/appmaster/web/SliderAMWebApp.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/SliderAMWebApp.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/SliderAMWebApp.java
deleted file mode 100644
index 7ecc00c..0000000
--- a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/SliderAMWebApp.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.slider.server.appmaster.web;
-
-import com.codahale.metrics.servlets.HealthCheckServlet;
-import com.codahale.metrics.servlets.MetricsServlet;
-import com.codahale.metrics.servlets.PingServlet;
-import com.codahale.metrics.servlets.ThreadDumpServlet;
-import com.google.common.base.Preconditions;
-import com.sun.jersey.api.container.filter.GZIPContentEncodingFilter;
-import com.sun.jersey.api.core.ResourceConfig;
-import com.sun.jersey.guice.spi.container.servlet.GuiceContainer;
-import com.sun.jersey.spi.container.servlet.ServletContainer;
-import org.apache.hadoop.yarn.webapp.Dispatcher;
-import org.apache.hadoop.yarn.webapp.GenericExceptionHandler;
-import org.apache.hadoop.yarn.webapp.WebApp;
-import org.apache.slider.server.appmaster.management.MetricsAndMonitoring;
-import org.apache.slider.server.appmaster.web.rest.AMWadlGeneratorConfig;
-import org.apache.slider.server.appmaster.web.rest.AMWebServices;
-import static org.apache.slider.server.appmaster.web.rest.RestPaths.*;
-import org.apache.slider.server.appmaster.web.rest.SliderJacksonJaxbJsonProvider;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-/**
- *
- */
-public class SliderAMWebApp extends WebApp {
- public static final String BASE_PATH = "slideram";
- public static final String CONTAINER_STATS = "/stats";
- public static final String CLUSTER_SPEC = "/spec";
-
- private final WebAppApi webAppApi;
-
- public SliderAMWebApp(WebAppApi webAppApi) {
- Preconditions.checkArgument(webAppApi != null, "webAppApi null");
- this.webAppApi = webAppApi;
- }
-
- @Override
- public void setup() {
- Logger.getLogger("com.sun.jersey").setLevel(Level.FINEST);
- // Make one of these to ensure that the jax-b annotations
- // are properly picked up.
- bind(SliderJacksonJaxbJsonProvider.class);
-
- // Get exceptions printed to the screen
- bind(GenericExceptionHandler.class);
- // bind the REST interface
- bind(AMWebServices.class);
- //bind(AMAgentWebServices.class);
- route("/", SliderAMController.class);
- route(CONTAINER_STATS, SliderAMController.class, "containerStats");
- route(CLUSTER_SPEC, SliderAMController.class, "specification");
- }
-
- @Override
- public void configureServlets() {
- setup();
-
- serve("/", "/__stop").with(Dispatcher.class);
-
- for (String path : this.getServePathSpecs()) {
- serve(path).with(Dispatcher.class);
- }
-
- // metrics
- MetricsAndMonitoring monitoring =
- webAppApi.getMetricsAndMonitoring();
- serve(SYSTEM_HEALTHCHECK).with(new HealthCheckServlet(monitoring.getHealth()));
- serve(SYSTEM_METRICS).with(new MetricsServlet(monitoring.getMetrics()));
- serve(SYSTEM_PING).with(new PingServlet());
- serve(SYSTEM_THREADS).with(new ThreadDumpServlet());
-
- String regex = "(?!/ws)";
- serveRegex(regex).with(SliderDefaultWrapperServlet.class);
-
- Map<String, String> params = new HashMap<>();
- params.put(ResourceConfig.FEATURE_IMPLICIT_VIEWABLES, "true");
- params.put(ServletContainer.FEATURE_FILTER_FORWARD_ON_404, "true");
- params.put(ResourceConfig.FEATURE_XMLROOTELEMENT_PROCESSING, "true");
- params.put(ResourceConfig.PROPERTY_CONTAINER_REQUEST_FILTERS, GZIPContentEncodingFilter.class.getName());
- params.put(ResourceConfig.PROPERTY_CONTAINER_RESPONSE_FILTERS, GZIPContentEncodingFilter.class.getName());
- //params.put("com.sun.jersey.spi.container.ContainerRequestFilters", "com.sun.jersey.api.container.filter.LoggingFilter");
- //params.put("com.sun.jersey.spi.container.ContainerResponseFilters", "com.sun.jersey.api.container.filter.LoggingFilter");
- //params.put("com.sun.jersey.config.feature.Trace", "true");
- params.put("com.sun.jersey.config.property.WadlGeneratorConfig",
- AMWadlGeneratorConfig.CLASSNAME);
- filter("/*").through(GuiceContainer.class, params);
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/51c2b92c/slider-core/src/main/java/org/apache/slider/server/appmaster/web/SliderDefaultWrapperServlet.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/SliderDefaultWrapperServlet.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/SliderDefaultWrapperServlet.java
deleted file mode 100644
index 12c41ac..0000000
--- a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/SliderDefaultWrapperServlet.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.slider.server.appmaster.web;
-
-import com.google.inject.Singleton;
-import org.apache.hadoop.yarn.webapp.DefaultWrapperServlet;
-
-import javax.servlet.RequestDispatcher;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletRequestWrapper;
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-
-/**
- *
- */
-@Singleton
-public class SliderDefaultWrapperServlet extends DefaultWrapperServlet {
- @Override
- protected void doPost(HttpServletRequest req, HttpServletResponse resp)
- throws ServletException, IOException {
- RequestDispatcher rd = getServletContext().getNamedDispatcher("default");
-
- HttpServletRequest wrapped = new HttpServletRequestWrapper(req) {
- public String getServletPath() {
- return "";
- }
- };
-
- rd.forward(wrapped, resp);
-
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/51c2b92c/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
deleted file mode 100644
index 0f99d6d..0000000
--- a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/WebAppApi.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-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.AppMasterActionOperations;
-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;
-import org.apache.slider.server.appmaster.state.StateAccessForProviders;
-import org.apache.slider.server.appmaster.web.rest.agent.AgentRestOperations;
-import org.apache.slider.server.appmaster.web.rest.application.resources.ContentCache;
-import org.apache.slider.server.services.security.CertificateManager;
-
-import java.util.Map;
-
-/**
- * Interface to pass information from the Slider AppMaster to the WebApp
- */
-public interface WebAppApi {
-
- /**
- * The {@link AppState} for the current cluster
- */
- StateAccessForProviders getAppState();
-
- /**
- * The {@link ProviderService} for the current cluster
- */
- ProviderService getProviderService();
-
-
- /**
- * The {@link CertificateManager} for the current cluster
- */
- CertificateManager getCertificateManager();
-
- /**
- * Generate a mapping from role name to its {@link RoleStatus}. Be aware that this
- * is a computed value and not just a getter
- */
- Map<String, RoleStatus> getRoleStatusByName();
-
- /**
- * Returns an interface that can support the agent-based REST operations.
- */
- 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();
-
- /**
- * API for AM operations
- * @return current operations implementation
- */
- AppMasterActionOperations getAMOperations();
-
- /**
- * Local cache of content
- * @return the cache
- */
- ContentCache getContentCache();
-}
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/51c2b92c/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
deleted file mode 100644
index a0fe310..0000000
--- a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/WebAppApiImpl.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.slider.server.appmaster.web;
-
-import org.apache.hadoop.registry.client.api.RegistryOperations;
-import org.apache.slider.providers.ProviderService;
-import org.apache.slider.server.appmaster.AppMasterActionOperations;
-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;
-import org.apache.slider.server.appmaster.web.rest.agent.AgentRestOperations;
-import org.apache.slider.server.appmaster.web.rest.application.resources.ContentCache;
-import org.apache.slider.server.services.security.CertificateManager;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.List;
-import java.util.Map;
-import java.util.TreeMap;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-
-/**
- *
- */
-public class WebAppApiImpl implements WebAppApi {
- private static final Logger log = LoggerFactory.getLogger(WebAppApiImpl.class);
-
- protected final StateAccessForProviders appState;
- protected final ProviderService provider;
- protected final CertificateManager certificateManager;
- private final RegistryOperations registryOperations;
- private final MetricsAndMonitoring metricsAndMonitoring;
- private final QueueAccess queues;
- private final AppMasterActionOperations appMasterOperations;
- private final ContentCache contentCache;
-
- public WebAppApiImpl(StateAccessForProviders appState,
- ProviderService provider,
- CertificateManager certificateManager,
- RegistryOperations registryOperations,
- MetricsAndMonitoring metricsAndMonitoring,
- QueueAccess queues,
- AppMasterActionOperations appMasterOperations,
- ContentCache contentCache) {
- this.appMasterOperations = appMasterOperations;
- this.contentCache = contentCache;
- checkNotNull(appState);
- checkNotNull(provider);
- this.queues = queues;
-
- this.registryOperations = registryOperations;
- this.appState = appState;
- this.provider = provider;
- this.certificateManager = certificateManager;
- this.metricsAndMonitoring = metricsAndMonitoring;
- }
-
- @Override
- public StateAccessForProviders getAppState() {
- return appState;
- }
-
- @Override
- public ProviderService getProviderService() {
- return provider;
- }
-
- @Override
- public CertificateManager getCertificateManager() {
- return certificateManager;
- }
-
- @Override
- public Map<String,RoleStatus> getRoleStatusByName() {
- List<RoleStatus> roleStatuses = appState.cloneRoleStatusList();
- Map<String, RoleStatus> map = new TreeMap<>();
- for (RoleStatus status : roleStatuses) {
- map.put(status.getName(), status);
- }
- return map;
- }
-
- @Override
- public AgentRestOperations getAgentRestOperations() {
- return provider.getAgentRestOperations();
- }
-
- @Override
- public RegistryOperations getRegistryOperations() {
- return registryOperations;
- }
-
- @Override
- public MetricsAndMonitoring getMetricsAndMonitoring() {
- return metricsAndMonitoring;
- }
-
- @Override
- public QueueAccess getQueues() {
- return queues;
- }
-
- @Override
- public AppMasterActionOperations getAMOperations() {
- return appMasterOperations;
- }
-
- @Override
- public ContentCache getContentCache() {
- return contentCache;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/51c2b92c/slider-core/src/main/java/org/apache/slider/server/appmaster/web/layout/AppLayout.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/layout/AppLayout.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/layout/AppLayout.java
deleted file mode 100644
index d9a2cda..0000000
--- a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/layout/AppLayout.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.slider.server.appmaster.web.layout;
-
-import org.apache.hadoop.yarn.webapp.SubView;
-import org.apache.slider.server.appmaster.web.view.IndexBlock;
-
-/**
- *
- */
-public class AppLayout extends WebUILayout {
-
- @Override
- protected Class<? extends SubView> content() {
- return IndexBlock.class;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/51c2b92c/slider-core/src/main/java/org/apache/slider/server/appmaster/web/layout/ClusterSpecificationView.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/layout/ClusterSpecificationView.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/layout/ClusterSpecificationView.java
deleted file mode 100644
index b54ca71..0000000
--- a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/layout/ClusterSpecificationView.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.slider.server.appmaster.web.layout;
-
-import org.apache.hadoop.yarn.webapp.SubView;
-import org.apache.slider.server.appmaster.web.view.ClusterSpecificationBlock;
-
-/**
- *
- */
-public class ClusterSpecificationView extends WebUILayout {
-
- @Override
- protected Class<? extends SubView> content() {
- return ClusterSpecificationBlock.class;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/51c2b92c/slider-core/src/main/java/org/apache/slider/server/appmaster/web/layout/ContainerStatsView.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/layout/ContainerStatsView.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/layout/ContainerStatsView.java
deleted file mode 100644
index 39ba0ad..0000000
--- a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/layout/ContainerStatsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.slider.server.appmaster.web.layout;
-
-import org.apache.hadoop.yarn.webapp.SubView;
-import org.apache.slider.server.appmaster.web.view.ContainerStatsBlock;
-
-
-
-/**
- *
- */
-public class ContainerStatsView extends WebUILayout {
-
- @Override
- protected Class<? extends SubView> content() {
- return ContainerStatsBlock.class;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/51c2b92c/slider-core/src/main/java/org/apache/slider/server/appmaster/web/layout/WebUILayout.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/layout/WebUILayout.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/layout/WebUILayout.java
deleted file mode 100644
index 1681f59..0000000
--- a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/layout/WebUILayout.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.slider.server.appmaster.web.layout;
-
-import org.apache.hadoop.yarn.webapp.SubView;
-import org.apache.hadoop.yarn.webapp.view.TwoColumnLayout;
-import org.apache.slider.server.appmaster.web.view.NavBlock;
-
-import static org.apache.hadoop.yarn.webapp.view.JQueryUI.ACCORDION;
-import static org.apache.hadoop.yarn.webapp.view.JQueryUI.ACCORDION_ID;
-import static org.apache.hadoop.yarn.webapp.view.JQueryUI.initID;
-
-/**
- *
- */
-public class WebUILayout extends TwoColumnLayout {
-
- @Override
- protected void preHead(Page.HTML<_> html) {
- set(ACCORDION_ID, "nav");
- set(initID(ACCORDION, "nav"), "{autoHeight:false, active:0}");
- }
-
- @Override
- protected Class<? extends SubView> nav() {
- return NavBlock.class;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/51c2b92c/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/AMWadlGenerator.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/AMWadlGenerator.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/AMWadlGenerator.java
deleted file mode 100644
index 05aaa5b..0000000
--- a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/AMWadlGenerator.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.slider.server.appmaster.web.rest;
-
-import com.sun.jersey.server.wadl.ApplicationDescription;
-import com.sun.jersey.server.wadl.WadlGenerator;
-import com.sun.jersey.server.wadl.WadlGeneratorImpl;
-import com.sun.research.ws.wadl.Application;
-import com.sun.research.ws.wadl.Resource;
-import com.sun.research.ws.wadl.Resources;
-
-import java.util.Iterator;
-import java.util.List;
-
-/**
- *
- */
-public class AMWadlGenerator extends WadlGeneratorImpl {
- @Override
- /**
- * This method is called once the WADL application has been assembled, so it
- * affords an opportunity to edit the resources presented by the WADL. In
- * this case, we're removing the internal "/agents" resources.
- */
- public void attachTypes(ApplicationDescription egd) {
- super.attachTypes(egd);
-
- Application application = egd.getApplication();
- List<Resources> resources = application.getResources();
-
- for (Resources appResources : resources) {
- List<Resource> resourceList = appResources.getResource();
- for (Resource appResource : resourceList) {
- String path = appResource.getPath();
- if (RestPaths.SLIDER_CONTEXT_ROOT.equals(path)) {
- List<Object> sliderResources = appResource.getMethodOrResource();
- Iterator<Object> itor = sliderResources.iterator();
- while (itor.hasNext()) {
- Object sliderRes = itor.next();
- if (sliderRes instanceof Resource) {
- Resource res = (Resource) sliderRes;
- if (RestPaths.SLIDER_SUBPATH_AGENTS.equals(res.getPath())) {
- // assuming I'll get a list modification issue if I remove at this
- // point
- itor.remove();
- }
- }
- }
- }
- }
- }
- }
-
- @Override
- public void setWadlGeneratorDelegate(WadlGenerator delegate) {
- // do nothing
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/51c2b92c/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/AMWadlGeneratorConfig.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/AMWadlGeneratorConfig.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/AMWadlGeneratorConfig.java
deleted file mode 100644
index ea9f22b..0000000
--- a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/AMWadlGeneratorConfig.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.slider.server.appmaster.web.rest;
-
-import com.sun.jersey.api.wadl.config.WadlGeneratorConfig;
-import com.sun.jersey.api.wadl.config.WadlGeneratorDescription;
-
-import java.util.List;
-
-/**
- * App master's WADL generation support
- */
-public class AMWadlGeneratorConfig extends WadlGeneratorConfig {
-
- public static final String CLASSNAME = "org.apache.slider.server.appmaster.web.rest.AMWadlGeneratorConfig";
- @Override
- public List<WadlGeneratorDescription> configure() {
- return generator(AMWadlGenerator.class).descriptions();
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/51c2b92c/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/AMWebServices.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/AMWebServices.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/AMWebServices.java
deleted file mode 100644
index 03bf703..0000000
--- a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/AMWebServices.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.slider.server.appmaster.web.rest;
-
-import com.google.inject.Inject;
-import com.google.inject.Singleton;
-import org.apache.slider.server.appmaster.web.WebAppApi;
-import org.apache.slider.server.appmaster.web.rest.agent.AgentResource;
-import org.apache.slider.server.appmaster.web.rest.application.ApplicationResource;
-import org.apache.slider.server.appmaster.web.rest.management.ManagementResource;
-import org.apache.slider.server.appmaster.web.rest.publisher.PublisherResource;
-import org.apache.slider.server.appmaster.web.rest.registry.RegistryResource;
-
-import javax.ws.rs.Path;
-
-/**
- * The available REST services exposed by a slider AM.
- */
-@Singleton
-@Path(RestPaths.SLIDER_CONTEXT_ROOT)
-public class AMWebServices {
-
- /** AM/WebApp info object */
- private WebAppApi slider;
- private final ManagementResource managementResource;
- private final PublisherResource publisherResource;
- private final RegistryResource registryResource;
- private final ApplicationResource applicationResource;
-
- @Inject
- public AMWebServices(WebAppApi slider) {
- this.slider = slider;
- managementResource = new ManagementResource(slider);
- publisherResource = new PublisherResource(slider);
- registryResource = new RegistryResource(slider);
- applicationResource = new ApplicationResource(slider);
- }
-
- @Path(RestPaths.SLIDER_SUBPATH_MANAGEMENT)
- public ManagementResource getManagementResource() {
- return managementResource;
- }
-
- @Path(RestPaths.SLIDER_SUBPATH_PUBLISHER)
- public PublisherResource getPublisherResource() {
- return publisherResource;
- }
-
- @Path(RestPaths.SLIDER_SUBPATH_REGISTRY)
- public RegistryResource getRegistryResource() {
- return registryResource;
- }
-
- @Path(RestPaths.SLIDER_SUBPATH_APPLICATION)
- public ApplicationResource getApplicationResource() {
- return applicationResource;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/51c2b92c/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/AbstractSliderResource.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/AbstractSliderResource.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/AbstractSliderResource.java
deleted file mode 100644
index 7ff83b6..0000000
--- a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/AbstractSliderResource.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.slider.server.appmaster.web.rest;
-
-import org.apache.hadoop.fs.PathNotFoundException;
-import org.apache.hadoop.registry.client.exceptions.AuthenticationFailedException;
-import org.apache.hadoop.registry.client.exceptions.NoPathPermissionsException;
-import org.apache.hadoop.yarn.webapp.ForbiddenException;
-import org.apache.hadoop.yarn.webapp.NotFoundException;
-import org.apache.slider.server.appmaster.management.MetricsAndMonitoring;
-import org.apache.slider.server.appmaster.web.WebAppApi;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.ws.rs.WebApplicationException;
-import javax.ws.rs.core.Response;
-import java.io.FileNotFoundException;
-import java.net.URI;
-import java.net.URL;
-
-/**
- * Abstract resource base class for REST resources
- * that use the slider WebAppApi
- */
-public abstract class AbstractSliderResource {
- private static final Logger log =
- LoggerFactory.getLogger(AbstractSliderResource.class);
- protected final WebAppApi slider;
- protected final MetricsAndMonitoring metricsAndMonitoring;
-
- protected AbstractSliderResource(WebAppApi slider) {
- this.slider = slider;
- metricsAndMonitoring = slider.getMetricsAndMonitoring();
- }
-
- /**
- * Generate a redirect to the WASL
- * @param request to base the URL on
- * @return a 302 response
- */
- protected Response redirectToAppWadl(HttpServletRequest request) {
- try {
- URI location = new URL(request.getScheme(),
- request.getServerName(),
- request.getServerPort(),
- RestPaths.APPLICATION_WADL).toURI();
- return Response.temporaryRedirect(location).build();
- } catch (Exception e) {
- log.error("Error during redirect to WADL", e);
- throw new WebApplicationException(Response.serverError().build());
- }
- }
-
- /**
- * Convert any exception caught into a web application
- * exception for rethrowing
- * @param path path of request
- * @param ex exception
- * @return an exception to throw
- */
- public WebApplicationException buildException(String path,
- Exception ex) {
- try {
- throw ex;
- } catch (WebApplicationException e) {
- // rethrow direct
- throw e;
- } catch (FileNotFoundException e) {
- return new NotFoundException("Not found: " + path);
- } catch (PathNotFoundException e) {
- return new NotFoundException("Not found: " + path);
- } catch (AuthenticationFailedException e) {
- return new ForbiddenException(path);
- } catch (NoPathPermissionsException e) {
- return new ForbiddenException(path);
- } catch (Exception e) {
- log.error("Error during generation of response: {}", e, e);
- return new WebApplicationException(e);
- }
- }
-
- /**
- * Mark an GET operation on a path
- * @param verb HTTP Verb
- * @param path path relative to slider API
- */
- protected void mark(String verb, String path) {
- metricsAndMonitoring.markMeterAndCounter(verb + "-" + path);
- }
-
- /**
- * Mark an GET operation on a path
- * @param verb HTTP Verb
- * @param path path relative to slider API
- */
- protected void mark(String verb, String path, String subpath) {
- metricsAndMonitoring.markMeterAndCounter(verb + "-" + path + subpath);
- }
-
- /**
- * Mark a GET operation on a path
- * @param path path relative to slider API
- */
- protected void markGet(String path) {
- mark("GET", path);
- }
-
- /**
- * Mark a GET operation on a path
- * @param path path relative to slider API
- */
- protected void markGet(String path, String subpath) {
- mark("GET", path, subpath);
- }
-
- /**
- * Mark a GET operation on a path
- * @param path path relative to slider API
- */
- protected void markPost(String path, String subpath) {
- mark("POST", path, subpath);
- }
-
- /**
- * Mark a GET operation on a path
- * @param path path relative to slider API
- */
- protected void markPut(String path, String subpath) {
- mark("PUT", path, subpath);
- }
-
- /**
- * Mark a GET operation on a path
- * @param path path relative to slider API
- */
- protected void markDelete(String path, String subpath) {
- mark("DELETE", path, subpath);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/51c2b92c/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/InsecureAmFilter.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/InsecureAmFilter.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/InsecureAmFilter.java
deleted file mode 100644
index d5b6b36..0000000
--- a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/InsecureAmFilter.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.slider.server.appmaster.web.rest;
-
-import org.apache.hadoop.yarn.server.webproxy.WebAppProxyServlet;
-import org.apache.hadoop.yarn.server.webproxy.amfilter.AmIpFilter;
-import org.apache.hadoop.yarn.server.webproxy.amfilter.AmIpPrincipal;
-import org.apache.hadoop.yarn.server.webproxy.amfilter.AmIpServletRequestWrapper;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.servlet.FilterChain;
-import javax.servlet.FilterConfig;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.Cookie;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-
-/**
- * This is a filter which is used to forward insecure operations
- * There's some metrics to track all operations too
- */
-public class InsecureAmFilter extends AmIpFilter {
- public static final String WS_CONTEXT_ROOT = "slider.rest.context.root";
- protected static final Logger log =
- LoggerFactory.getLogger(InsecureAmFilter.class);
-
- private String wsContextRoot;
-
-
- @Override
- public void init(FilterConfig conf) throws ServletException {
- super.init(conf);
- wsContextRoot = conf.getInitParameter(WS_CONTEXT_ROOT);
- if (wsContextRoot == null) {
- throw new ServletException("No value set for " + WS_CONTEXT_ROOT);
- }
- }
-
- private void rejectNonHttpRequests(ServletRequest req) throws
- ServletException {
- if (!(req instanceof HttpServletRequest)) {
- throw new ServletException("This filter only works for HTTP/HTTPS");
- }
- }
-
- @Override
- public void doFilter(ServletRequest req,
- ServletResponse resp,
- FilterChain chain) throws IOException, ServletException {
- rejectNonHttpRequests(req);
- HttpServletRequest httpReq = (HttpServletRequest) req;
- HttpServletResponse httpResp = (HttpServletResponse) resp;
-
-
- String requestURI = httpReq.getRequestURI();
- if (requestURI == null || !requestURI.startsWith(wsContextRoot)) {
- // hand off to the AM filter if it is not the context root
- super.doFilter(req, resp, chain);
- return;
- }
-
- String user = null;
-
- if (httpReq.getCookies() != null) {
- for (Cookie c : httpReq.getCookies()) {
- if (WebAppProxyServlet.PROXY_USER_COOKIE_NAME.equals(c.getName())) {
- user = c.getValue();
- break;
- }
- }
- }
-
- if (user == null) {
- log.debug("Could not find " + WebAppProxyServlet.PROXY_USER_COOKIE_NAME
- + " cookie, so user will not be set");
- chain.doFilter(req, resp);
- } else {
- final AmIpPrincipal principal = new AmIpPrincipal(user);
- ServletRequest requestWrapper = new AmIpServletRequestWrapper(httpReq,
- principal);
- chain.doFilter(requestWrapper, resp);
- }
-
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/51c2b92c/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/InsecureAmFilterInitializer.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/InsecureAmFilterInitializer.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/InsecureAmFilterInitializer.java
deleted file mode 100644
index 42a5bdd..0000000
--- a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/InsecureAmFilterInitializer.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.slider.server.appmaster.web.rest;
-
-import com.google.common.annotations.VisibleForTesting;
-import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.http.FilterContainer;
-import org.apache.hadoop.http.FilterInitializer;
-import org.apache.hadoop.http.HttpConfig;
-import org.apache.hadoop.yarn.api.ApplicationConstants;
-import org.apache.hadoop.yarn.conf.YarnConfiguration;
-import org.apache.hadoop.yarn.webapp.util.WebAppUtils;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-public class InsecureAmFilterInitializer extends FilterInitializer {
- private static final String FILTER_NAME = "AM_PROXY_FILTER";
- private static final String FILTER_CLASS =
- InsecureAmFilter.class.getCanonicalName();
- private static final String HTTPS_PREFIX = "https://";
- private static final String HTTP_PREFIX = "http://";
-
- static final String PROXY_HOSTS = "PROXY_HOSTS";
- static final String PROXY_HOSTS_DELIMITER = ",";
- static final String PROXY_URI_BASES = "PROXY_URI_BASES";
- static final String PROXY_URI_BASES_DELIMITER = ",";
-
- private Configuration configuration;
-
- public static final String NAME =
- "org.apache.slider.server.appmaster.web.rest.InsecureAmFilterInitializer";
-
- @Override
- public void initFilter(FilterContainer container, Configuration conf) {
- configuration = conf;
- Map<String, String> params = new HashMap<String, String>();
- String proxy = WebAppUtils.getProxyHostAndPort(conf);
- String[] parts = proxy.split(":");
- params.put(InsecureAmFilter.PROXY_HOST, parts[0]);
- // todo: eventually call WebAppUtils.getHttpSchemePrefix
- params.put(InsecureAmFilter.PROXY_URI_BASE, getHttpSchemePrefix()
- + proxy +
- getApplicationWebProxyBase());
- params.put(InsecureAmFilter.WS_CONTEXT_ROOT, RestPaths.WS_CONTEXT_ROOT);
- container.addFilter(FILTER_NAME, FILTER_CLASS, params);
- }
-
- private void classicAmFilterInitializerInit(FilterContainer container,
- Configuration conf) {
- Map<String, String> params = new HashMap<String, String>();
- List<String> proxies = WebAppUtils.getProxyHostsAndPortsForAmFilter(conf);
- StringBuilder sb = new StringBuilder();
- for (String proxy : proxies) {
- sb.append(proxy.split(":")[0]).append(PROXY_HOSTS_DELIMITER);
- }
- sb.setLength(sb.length() - 1);
- params.put(PROXY_HOSTS, sb.toString());
-
- String prefix = WebAppUtils.getHttpSchemePrefix(conf);
- String proxyBase = getApplicationWebProxyBase();
- sb = new StringBuilder();
- for (String proxy : proxies) {
- sb.append(prefix).append(proxy).append(proxyBase)
- .append(PROXY_HOSTS_DELIMITER);
- }
- sb.setLength(sb.length() - 1);
- params.put(PROXY_URI_BASES, sb.toString());
-
- }
-
- @VisibleForTesting
- protected String getApplicationWebProxyBase() {
- return System.getenv(ApplicationConstants.APPLICATION_WEB_PROXY_BASE_ENV);
- }
-
- private String getHttpSchemePrefix() {
- return HttpConfig.Policy.HTTPS_ONLY ==
- HttpConfig.Policy.fromString(configuration
- .get(
- YarnConfiguration.YARN_HTTP_POLICY_KEY,
- YarnConfiguration.YARN_HTTP_POLICY_DEFAULT))
- ? HTTPS_PREFIX : HTTP_PREFIX;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/51c2b92c/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/RestPaths.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/RestPaths.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/RestPaths.java
deleted file mode 100644
index ae9eb0f..0000000
--- a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/RestPaths.java
+++ /dev/null
@@ -1,172 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.slider.server.appmaster.web.rest;
-
-/**
- * Paths in the REST App
- */
-public class RestPaths {
-
- public static final String WS_CONTEXT = "ws";
- public static final String AGENT_WS_CONTEXT = "ws";
-
- /**
- * Root path for the web services context: {@value}
- */
- public static final String WS_CONTEXT_ROOT = "/" + WS_CONTEXT;
-
- /**
- * agent content root: {@value}
- */
- public static final String WS_AGENT_CONTEXT_ROOT = "/" + AGENT_WS_CONTEXT;
- public static final String V1_SLIDER = "/v1/slider";
- public static final String SLIDER_CONTEXT_ROOT = WS_CONTEXT_ROOT + V1_SLIDER;
- public static final String RELATIVE_API = WS_CONTEXT + V1_SLIDER;
- public static final String SLIDER_AGENT_CONTEXT_ROOT = WS_AGENT_CONTEXT_ROOT + V1_SLIDER;
- public static final String MANAGEMENT = "mgmt";
- public static final String SLIDER_SUBPATH_MANAGEMENT = "/" + MANAGEMENT;
- public static final String SLIDER_SUBPATH_AGENTS = "/agents";
- public static final String SLIDER_SUBPATH_PUBLISHER = "/publisher";
-
-
- /**
- * management path: {@value}
- */
- public static final String SLIDER_PATH_MANAGEMENT = SLIDER_CONTEXT_ROOT
- + SLIDER_SUBPATH_MANAGEMENT;
-
- public static final String RELATIVE_PATH_MANAGEMENT = RELATIVE_API
- + SLIDER_SUBPATH_MANAGEMENT;
-
- /**
- * Agents: {@value}
- */
- public static final String SLIDER_PATH_AGENTS = SLIDER_AGENT_CONTEXT_ROOT
- + SLIDER_SUBPATH_AGENTS;
-
- /**
- * Publisher: {@value}
- */
- public static final String SLIDER_PATH_PUBLISHER = SLIDER_CONTEXT_ROOT
- + SLIDER_SUBPATH_PUBLISHER;
-
- public static final String RELATIVE_PATH_PUBLISHER = RELATIVE_API
- + SLIDER_SUBPATH_PUBLISHER;
-
- /**
- * Registry subpath: {@value}
- */
- public static final String SLIDER_SUBPATH_REGISTRY = "/registry";
-
- /**
- * Registry: {@value}
- */
- public static final String SLIDER_PATH_REGISTRY = SLIDER_CONTEXT_ROOT
- + SLIDER_SUBPATH_REGISTRY;
- public static final String RELATIVE_PATH_REGISTRY = RELATIVE_API
- + SLIDER_SUBPATH_REGISTRY;
-
-
- /**
- * The regular expressions used to define valid configuration names/url path
- * fragments: {@value}
- */
- public static final String PUBLISHED_CONFIGURATION_REGEXP
- = "[a-z0-9][a-z0-9_\\+-]*";
-
- public static final String PUBLISHED_CONFIGURATION_SET_REGEXP
- = "[a-z0-9][a-z0-9_.\\+-]*";
-
- public static final String SLIDER_CONFIGSET = "slider";
- public static final String SLIDER_EXPORTS = "exports";
-
- public static final String SLIDER_CLASSPATH = "classpath";
-
- /**
- * Codahale Metrics - base path: {@value}
- */
-
- public static final String SYSTEM = "/system";
-
-
- /**
- * Codahale Metrics - health: {@value}
- */
- public static final String SYSTEM_HEALTHCHECK = SYSTEM + "/health";
- /**
- * Codahale Metrics - metrics: {@value}
- */
- public static final String SYSTEM_METRICS = SYSTEM + "/metrics";
- /**
- * Codahale Metrics - metrics as JSON: {@value}
- */
- public static final String SYSTEM_METRICS_JSON = SYSTEM_METRICS + "?format=json";
- /**
- * Codahale Metrics - ping: {@value}
- */
- public static final String SYSTEM_PING = SYSTEM + "/ping";
- /**
- * Codahale Metrics - thread dump: {@value}
- */
- public static final String SYSTEM_THREADS = SYSTEM + "/threads";
-
- /**
- * application subpath
- */
- public static final String SLIDER_SUBPATH_APPLICATION = "/application";
-
- /**
- * management path: {@value}
- */
- public static final String SLIDER_PATH_APPLICATION =
- SLIDER_CONTEXT_ROOT + SLIDER_SUBPATH_APPLICATION;
-
-
- public static final String APPLICATION_WADL = "/application.wadl";
- public static final String LIVE = "/live";
- public static final String LIVE_RESOURCES = "/live/resources";
- public static final String LIVE_CONTAINERS = "/live/containers";
- public static final String LIVE_COMPONENTS = "/live/components";
- public static final String LIVE_NODES = "/live/nodes";
- public static final String LIVE_LIVENESS = "/live/liveness";
- public static final String LIVE_STATISTICS = "/live/statistics";
- public static final String MODEL = "/model";
- public static final String MODEL_DESIRED = MODEL +"/desired";
- public static final String MODEL_DESIRED_APPCONF = MODEL_DESIRED +"/appconf";
- public static final String MODEL_DESIRED_RESOURCES = MODEL_DESIRED +"/resources";
- public static final String MODEL_RESOLVED = "/model/resolved";
- public static final String MODEL_RESOLVED_APPCONF = MODEL_RESOLVED +"/appconf";
- public static final String MODEL_RESOLVED_RESOURCES = MODEL_RESOLVED +"/resources";
- public static final String MODEL_INTERNAL = "/model/internal";
-
- public static final String ACTION = "/action";
- public static final String ACTION_PING = ACTION + "/ping";
- public static final String ACTION_STOP = ACTION + "/stop";
-
- /**
- * Path to a role
- * @param name role name
- * @return a path to it
- */
- public String pathToRole(String name) {
-
- // ws/v1/slider/application/live/components/$name
- return SLIDER_PATH_APPLICATION + LIVE_COMPONENTS + "/" + name;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/51c2b92c/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/SliderJacksonJaxbJsonProvider.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/SliderJacksonJaxbJsonProvider.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/SliderJacksonJaxbJsonProvider.java
deleted file mode 100644
index 86d68a8..0000000
--- a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/SliderJacksonJaxbJsonProvider.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.slider.server.appmaster.web.rest;
-
-import com.google.inject.Singleton;
-import org.apache.hadoop.classification.InterfaceAudience.Private;
-import org.apache.hadoop.classification.InterfaceStability.Unstable;
-import org.codehaus.jackson.jaxrs.JacksonJaxbJsonProvider;
-import org.codehaus.jackson.map.AnnotationIntrospector;
-import org.codehaus.jackson.map.ObjectMapper;
-import org.codehaus.jackson.map.introspect.JacksonAnnotationIntrospector;
-import org.codehaus.jackson.xc.JaxbAnnotationIntrospector;
-
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.ext.Provider;
-
-/**
- * Implementation of JAX-RS abstractions based on {@link
- * JacksonJaxbJsonProvider} needed to deserialize JSON content to, or serialize
- * it from, POJO objects.
- */
-@Singleton
-@Provider
-@Unstable
-@Private
-public class SliderJacksonJaxbJsonProvider extends JacksonJaxbJsonProvider {
-
- public SliderJacksonJaxbJsonProvider() {
- }
-
- @Override
- public ObjectMapper locateMapper(Class<?> type, MediaType mediaType) {
- ObjectMapper mapper = super.locateMapper(type, mediaType);
- AnnotationIntrospector introspector = new AnnotationIntrospector.Pair(
- new JaxbAnnotationIntrospector(),
- new JacksonAnnotationIntrospector()
- );
- mapper.setAnnotationIntrospector(introspector);
- //mapper.setSerializationInclusion(Inclusion.NON_NULL);
- return mapper;
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/51c2b92c/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/AgentCommandType.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/AgentCommandType.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/AgentCommandType.java
deleted file mode 100644
index 17cd8f2..0000000
--- a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/AgentCommandType.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.slider.server.appmaster.web.rest.agent;
-
-public enum AgentCommandType {
- EXECUTION_COMMAND,
- STATUS_COMMAND,
- REGISTRATION_COMMAND
-}
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/51c2b92c/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/AgentEnv.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/AgentEnv.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/AgentEnv.java
deleted file mode 100644
index 781ae00..0000000
--- a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/AgentEnv.java
+++ /dev/null
@@ -1,376 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.slider.server.appmaster.web.rest.agent;
-
-import com.google.gson.annotations.SerializedName;
-import org.codehaus.jackson.annotate.JsonIgnoreProperties;
-import org.codehaus.jackson.map.annotate.JsonSerialize;
-
-@JsonIgnoreProperties(ignoreUnknown = true)
-@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
-public class AgentEnv {
-
- /**
- * Various directories, configurable in <code>ambari-agent.ini</code>
- */
- private Directory[] stackFoldersAndFiles = new Directory[0];
-
- /**
- * Directories that match name <code>/etc/alternatives/*conf</code>
- */
- private Alternative[] alternatives = new Alternative[0];
-
- /**
- * List of existing users
- */
- private ExistingUser[] existingUsers = new ExistingUser[0];
-
- /**
- * List of repos
- */
- private String[] existingRepos = new String[0];
-
- /**
- * List of packages
- */
- private PackageDetail[] installedPackages = new PackageDetail[0];
-
- /**
- * The host health report
- */
- private HostHealth hostHealth = new HostHealth();
-
- private Integer umask;
-
- private Boolean iptablesIsRunning;
-
- public Integer getUmask() {
- return umask;
- }
-
- public void setUmask(Integer umask) {
- this.umask = umask;
- }
-
- public Directory[] getStackFoldersAndFiles() {
- return stackFoldersAndFiles;
- }
-
- public void setStackFoldersAndFiles(Directory[] dirs) {
- stackFoldersAndFiles = dirs;
- }
-
- public void setExistingUsers(ExistingUser[] users) {
- existingUsers = users;
- }
-
- public ExistingUser[] getExistingUsers() {
- return existingUsers;
- }
-
- public void setAlternatives(Alternative[] dirs) {
- alternatives = dirs;
- }
-
- public Alternative[] getAlternatives() {
- return alternatives;
- }
-
- public void setExistingRepos(String[] repos) {
- existingRepos = repos;
- }
-
- public String[] getExistingRepos() {
- return existingRepos;
- }
-
- public void setInstalledPackages(PackageDetail[] packages) {
- installedPackages = packages;
- }
-
- public PackageDetail[] getInstalledPackages() {
- return installedPackages;
- }
-
- public void setHostHealth(HostHealth healthReport) {
- hostHealth = healthReport;
- }
-
- public HostHealth getHostHealth() {
- return hostHealth;
- }
-
- public Boolean getIptablesIsRunning() {
- return iptablesIsRunning;
- }
-
- public void setIptablesIsRunning(Boolean iptablesIsRunning) {
- this.iptablesIsRunning = iptablesIsRunning;
- }
-
- public static class HostHealth {
- /**
- * Java processes running on the system. Default empty array.
- */
- @SerializedName("activeJavaProcs")
- private JavaProc[] activeJavaProcs = new JavaProc[0];
-
- /**
- * The current time when agent send the host check report
- */
- @SerializedName("agentTimeStampAtReporting")
- private long agentTimeStampAtReporting = 0;
-
- /**
- * The current time when host check report was received
- */
- @SerializedName("serverTimeStampAtReporting")
- private long serverTimeStampAtReporting = 0;
-
- /**
- * Live services running on the agent
- */
- @SerializedName("liveServices")
- private LiveService[] liveServices = new LiveService[0];
-
- public void setAgentTimeStampAtReporting(long currentTime) {
- agentTimeStampAtReporting = currentTime;
- }
-
- public long getAgentTimeStampAtReporting() {
- return agentTimeStampAtReporting;
- }
-
- public void setServerTimeStampAtReporting(long currentTime) {
- serverTimeStampAtReporting = currentTime;
- }
-
- public long getServerTimeStampAtReporting() {
- return serverTimeStampAtReporting;
- }
-
- public void setActiveJavaProcs(JavaProc[] procs) {
- activeJavaProcs = procs;
- }
-
- public JavaProc[] getActiveJavaProcs() {
- return activeJavaProcs;
- }
-
- public void setLiveServices(LiveService[] services) {
- liveServices = services;
- }
-
- public LiveService[] getLiveServices() {
- return liveServices;
- }
- }
-
- public static class PackageDetail {
- @SerializedName("name")
- private String pkgName;
- @SerializedName("version")
- private String pkgVersion;
- @SerializedName("repoName")
- private String pkgRepoName;
-
- public void setName(String name) {
- pkgName = name;
- }
-
- public String getName() {
- return pkgName;
- }
-
- public void setVersion(String version) {
- pkgVersion = version;
- }
-
- public String getVersion() {
- return pkgVersion;
- }
-
- public void setRepoName(String repoName) {
- pkgRepoName = repoName;
- }
-
- public String getRepoName() {
- return pkgRepoName;
- }
- }
-
- /**
- * Represents information about a directory of interest.
- */
- public static class Directory {
- @SerializedName("name")
- private String dirName;
- @SerializedName("type")
- private String dirType;
-
- public void setName(String name) {
- dirName = name;
- }
-
- public String getName() {
- return dirName;
- }
-
- public void setType(String type) {
- dirType = type;
- }
-
- public String getType() {
- return dirType;
- }
- }
-
- /**
- * Represents information about running java processes.
- */
- public static class JavaProc {
- @SerializedName("user")
- private String user;
- @SerializedName("pid")
- private int pid = 0;
- @SerializedName("hadoop")
- private boolean is_hadoop = false;
- @SerializedName("command")
- private String command;
-
- public void setUser(String user) {
- this.user = user;
- }
-
- public String getUser() {
- return user;
- }
-
- public void setPid(int pid) {
- this.pid = pid;
- }
-
- public int getPid() {
- return pid;
- }
-
- public void setHadoop(boolean hadoop) {
- is_hadoop = hadoop;
- }
-
- public boolean isHadoop() {
- return is_hadoop;
- }
-
- public void setCommand(String cmd) {
- command = cmd;
- }
-
- public String getCommand() {
- return command;
- }
- }
-
- public static class Alternative {
- @SerializedName("name")
- private String altName;
- @SerializedName("target")
- private String altTarget;
-
- public void setName(String name) {
- altName = name;
- }
-
- public String getName() {
- return altName;
- }
-
- public void setTarget(String target) {
- altTarget = target;
- }
-
- public String getTarget() {
- return altTarget;
- }
- }
-
- public static class LiveService {
- @SerializedName("name")
- private String svcName;
- @SerializedName("status")
- private String svcStatus;
- @SerializedName("desc")
- private String svcDesc;
-
- public void setName(String name) {
- svcName = name;
- }
-
- public String getName() {
- return svcName;
- }
-
- public void setStatus(String status) {
- svcStatus = status;
- }
-
- public String getStatus() {
- return svcStatus;
- }
-
- public void setDesc(String desc) {
- svcDesc = desc;
- }
-
- public String getDesc() {
- return svcDesc;
- }
- }
-
- public static class ExistingUser {
- @SerializedName("name")
- private String name;
- @SerializedName("homeDir")
- private String homeDir;
- @SerializedName("status")
- private String status;
-
- public void setUserName(String userName) {
- name = userName;
- }
-
- public String getUserName() {
- return name;
- }
-
- public void setUserHomeDir(String userHomeDir) {
- homeDir = userHomeDir;
- }
-
- public String getUserHomeDir() {
- return homeDir;
- }
-
- public void setUserStatus(String userStatus) {
- status = userStatus;
- }
-
- public String getUserStatus() {
- return status;
- }
- }
-}