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/AgentResource.java ---------------------------------------------------------------------- diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/AgentResource.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/AgentResource.java deleted file mode 100644 index 20ef068..0000000 --- a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/AgentResource.java +++ /dev/null @@ -1,118 +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 org.apache.slider.server.appmaster.web.WebAppApi; -import org.apache.slider.server.services.security.SignCertResponse; -import org.apache.slider.server.services.security.SignMessage; -import org.apache.slider.server.appmaster.web.rest.AbstractSliderResource; -import org.codehaus.jackson.annotate.JsonIgnoreProperties; -import org.codehaus.jackson.map.annotate.JsonSerialize; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.ws.rs.Consumes; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; - -/** - * - */ -@JsonIgnoreProperties(ignoreUnknown = true) -@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL) -public class AgentResource extends AbstractSliderResource { - - private String agent_name; - - public AgentResource(WebAppApi slider) { - super(slider); - } - - private void init(HttpServletResponse res) { - res.setContentType(null); - } - - @GET - @Path("/agent/register") - public Response endpointAgentRegister() { - Response response = Response.status(200).entity("/agent/register").build(); - return response; - } - - @GET - @Path("/agent") - public Response endpointAgent() { - Response response = Response.status(200).entity("/agent").build(); - return response; - } - @GET - @Path("/") - public Response endpointRoot() { - Response response = Response.status(200).entity("/").build(); - return response; - } - - @POST - @Path("/{agent_name: [a-zA-Z][a-zA-Z0-9_-]*}/register") - @Consumes({MediaType.APPLICATION_JSON}) - @Produces({MediaType.APPLICATION_JSON}) - public RegistrationResponse register(Register registration, - @Context HttpServletResponse res, - @PathParam("agent_name") String agent_name) { - init(res); - this.agent_name = agent_name; - AgentRestOperations ops = slider.getAgentRestOperations(); - return ops.handleRegistration(registration); - - } - - @POST - @Path("/{agent_name: [a-zA-Z][a-zA-Z0-9_-]*}/heartbeat") - @Consumes(MediaType.APPLICATION_JSON) - @Produces({MediaType.APPLICATION_JSON}) - public HeartBeatResponse heartbeat(HeartBeat message, - @Context HttpServletResponse res, - @PathParam("agent_name") String agent_name) { - init(res); - AgentRestOperations ops = slider.getAgentRestOperations(); - return ops.handleHeartBeat(message); - } - - @GET - @Path("/cert/ca") - @Produces({MediaType.TEXT_PLAIN}) - public String downloadSrvrCrt() { - return slider.getCertificateManager().getServerCert(); - } - - @Path("/certs/{hostName}") - @POST - @Consumes(MediaType.APPLICATION_JSON) - @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) - public SignCertResponse signAgentCrt(@PathParam("hostName") String hostname, - SignMessage message, @Context HttpServletRequest req) { - return slider.getCertificateManager().signAgentCrt(hostname, - message.getCsr(), - message.getPassphrase()); - } -}
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/AgentRestOperations.java ---------------------------------------------------------------------- diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/AgentRestOperations.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/AgentRestOperations.java deleted file mode 100644 index 2891be8..0000000 --- a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/AgentRestOperations.java +++ /dev/null @@ -1,28 +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 interface AgentRestOperations { - - RegistrationResponse handleRegistration(Register registration); - - HeartBeatResponse handleHeartBeat(HeartBeat heartBeat); -} 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/AgentWebApp.java ---------------------------------------------------------------------- diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/AgentWebApp.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/AgentWebApp.java deleted file mode 100644 index 3a3b0c0..0000000 --- a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/AgentWebApp.java +++ /dev/null @@ -1,258 +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.common.base.Preconditions; -import com.sun.jersey.api.core.ResourceConfig; -import com.sun.jersey.spi.container.WebApplication; -import com.sun.jersey.spi.container.servlet.ServletContainer; -import com.sun.jersey.spi.container.servlet.WebConfig; -import com.sun.jersey.spi.inject.SingletonTypeInjectableProvider; -import org.apache.slider.core.conf.MapOperations; -import org.apache.slider.providers.agent.AgentKeys; -import org.apache.slider.server.appmaster.web.WebAppApi; -import org.apache.slider.server.services.security.SecurityUtils; -import org.mortbay.jetty.Connector; -import org.mortbay.jetty.Server; -import org.mortbay.jetty.security.SslSelectChannelConnector; -import org.mortbay.jetty.servlet.Context; -import org.mortbay.jetty.servlet.ServletHolder; -import org.mortbay.thread.QueuedThreadPool; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import javax.ws.rs.ext.Provider; -import java.io.Closeable; -import java.io.File; -import java.io.IOException; -import java.net.BindException; -import java.util.Set; - -/** - * - */ -public class AgentWebApp implements Closeable { - protected static final Logger LOG = LoggerFactory.getLogger(AgentWebApp.class); - private int port; - private int securedPort; - private static Server agentServer; - public static final String BASE_PATH = "slideragent"; - - public static class Builder { - final String name; - final String wsName; - final WebAppApi application; - int port; - int securedPort; - MapOperations configsMap; - - public Builder(String name, String wsName, WebAppApi application) { - this.name = name; - this.wsName = wsName; - this.application = application; - } - - public Builder withComponentConfig(MapOperations appMasterConfig) { - this.configsMap = appMasterConfig; - return this; - } - - public Builder withPort (int port) { - this.port = port; - return this; - } - - public Builder withSecuredPort (int securedPort) { - this.securedPort = securedPort; - return this; - } - - public AgentWebApp start() throws IOException { - if (configsMap == null) { - throw new IllegalStateException("No SSL Configuration Available"); - } - - agentServer = new Server(); - agentServer.setThreadPool( - new QueuedThreadPool( - configsMap.getOptionInt("agent.threadpool.size.max", 25))); - agentServer.setStopAtShutdown(true); - agentServer.setGracefulShutdown(1000); - - SslSelectChannelConnector ssl1WayConnector = createSSLConnector(false, port); - SslSelectChannelConnector ssl2WayConnector = - createSSLConnector(Boolean.valueOf( - configsMap.getOption(AgentKeys.KEY_AGENT_TWO_WAY_SSL_ENABLED, - "false")), securedPort); - agentServer.setConnectors(new Connector[]{ssl1WayConnector, - ssl2WayConnector}); - - ServletHolder agent = new ServletHolder(new AgentServletContainer()); - Context agentRoot = new Context(agentServer, "/", Context.SESSIONS); - - agent.setInitParameter("com.sun.jersey.config.property.resourceConfigClass", - "com.sun.jersey.api.core.PackagesResourceConfig"); - agent.setInitParameter("com.sun.jersey.config.property.packages", - "org.apache.slider.server.appmaster.web.rest.agent"); - agent.setInitParameter("com.sun.jersey.api.json.POJOMappingFeature", - "true"); -// agent.setInitParameter("com.sun.jersey.spi.container.ContainerRequestFilters", "com.sun.jersey.api.container.filter.LoggingFilter"); -// agent.setInitParameter("com.sun.jersey.spi.container.ContainerResponseFilters", "com.sun.jersey.api.container.filter.LoggingFilter"); -// agent.setInitParameter("com.sun.jersey.config.feature.Trace", "true"); - agentRoot.addServlet(agent, "/*"); - - try { - openListeners(); - agentServer.start(); - } catch (IOException e) { - LOG.error("Unable to start agent server", e); - throw e; - } catch (Exception e) { - LOG.error("Unable to start agent server", e); - throw new IOException("Unable to start agent server: " + e, e); - } - - AgentWebApp webApp = new AgentWebApp(); - webApp.setPort(getConnectorPort(agentServer, 0)); - webApp.setSecuredPort(getConnectorPort(agentServer, 1)); - return webApp; - - } - - private void openListeners() throws Exception { - // from HttpServer2.openListeners() - for (Connector listener : agentServer.getConnectors()) { - if (listener.getLocalPort() != -1) { - // This listener is either started externally or has been bound - continue; - } - int port = listener.getPort(); - while (true) { - // jetty has a bug where you can't reopen a listener that previously - // failed to open w/o issuing a close first, even if the port is changed - try { - listener.close(); - listener.open(); - LOG.info("Jetty bound to port " + listener.getLocalPort()); - break; - } catch (BindException ex) { - if (port == 0) { - BindException be = new BindException("Port in use: " - + listener.getHost() + ":" + listener.getPort()); - be.initCause(ex); - throw be; - } - } - // try the next port number - listener.setPort(++port); - Thread.sleep(100); - } - } - } - - private SslSelectChannelConnector createSSLConnector(boolean needClientAuth, int port) { - SslSelectChannelConnector sslConnector = new - SslSelectChannelConnector(); - - String keystore = SecurityUtils.getSecurityDir() + - File.separator + "keystore.p12"; - String srvrCrtPass = SecurityUtils.getKeystorePass(); - sslConnector.setKeystore(keystore); - sslConnector.setTruststore(keystore); - sslConnector.setPassword(srvrCrtPass); - sslConnector.setKeyPassword(srvrCrtPass); - sslConnector.setTrustPassword(srvrCrtPass); - sslConnector.setKeystoreType("PKCS12"); - sslConnector.setTruststoreType("PKCS12"); - sslConnector.setNeedClientAuth(needClientAuth); - - sslConnector.setPort(port); - sslConnector.setAcceptors(2); - return sslConnector; - } - - @Provider - public class WebAppApiProvider extends - SingletonTypeInjectableProvider<javax.ws.rs.core.Context, WebAppApi> { - - public WebAppApiProvider () { - super(WebAppApi.class, application); - } - } - - public class AgentServletContainer extends ServletContainer { - public AgentServletContainer() { - super(); - } - - @Override - protected void configure(WebConfig wc, - ResourceConfig rc, - WebApplication wa) { - super.configure(wc, rc, wa); - Set<Object> singletons = rc.getSingletons(); - singletons.add(new WebAppApiProvider()); - } - } - - private int getConnectorPort(Server webServer, int index) { - Preconditions.checkArgument(index >= 0); - if (index > webServer.getConnectors().length) - throw new IllegalStateException("Illegal connect index requested"); - - Connector c = webServer.getConnectors()[index]; - if (c.getLocalPort() == -1) { - // The connector is not bounded - throw new IllegalStateException("The connector is not bound to a port"); - } - - return c.getLocalPort(); - } - } - - public static Builder $for(String name, WebAppApi app, String wsPrefix) { - return new Builder(name, wsPrefix, app); - } - - public int getPort() { - return port; - } - - public void setPort(int port) { - this.port = port; - } - - public void setSecuredPort(int securedPort) { - this.securedPort = securedPort; - } - - public int getSecuredPort() { - return securedPort; - } - - public void close() throws IOException{ - //need to stop server and reset injector - try { - agentServer.stop(); - } catch (IOException e) { - throw e; - } catch (Exception e) { - throw new IOException(e.toString(), e); - } - } - -} 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/AgentWebServices.java ---------------------------------------------------------------------- diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/AgentWebServices.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/AgentWebServices.java deleted file mode 100644 index 684ce6f..0000000 --- a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/AgentWebServices.java +++ /dev/null @@ -1,40 +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 org.apache.slider.server.appmaster.web.WebAppApi; -import org.apache.slider.server.appmaster.web.rest.RestPaths; - -import javax.ws.rs.Path; -import javax.ws.rs.core.Context; - -/** The available agent REST services exposed by a slider AM. */ -@Path(RestPaths.SLIDER_AGENT_CONTEXT_ROOT) -public class AgentWebServices { - /** AM/WebApp info object */ - @Context - private WebAppApi slider; - - public AgentWebServices() { - } - - @Path(RestPaths.SLIDER_SUBPATH_AGENTS) - public AgentResource getAgentResource () { - return new AgentResource(slider); - } - -} 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/CommandReport.java ---------------------------------------------------------------------- diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/CommandReport.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/CommandReport.java deleted file mode 100644 index a37e490..0000000 --- a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/CommandReport.java +++ /dev/null @@ -1,207 +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 org.codehaus.jackson.annotate.JsonIgnoreProperties; -import org.codehaus.jackson.annotate.JsonProperty; -import org.codehaus.jackson.map.annotate.JsonSerialize; - -import java.util.Map; - -/** - * - */ -@JsonIgnoreProperties(ignoreUnknown = true) -@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL) -public class CommandReport { - - int exitCode; - private String role; - private String actionId; - private String stdout; - private String stderr; - private String structuredOut; - private String status; - private String clusterName; - private String serviceName; - private long taskId; - private String roleCommand; - private Map<String, String> folders; - private Map<String, String> allocatedPorts; - private Map<String, Map<String, String>> configurationTags; - - @JsonProperty("taskId") - public long getTaskId() { - return taskId; - } - - @JsonProperty("taskId") - public void setTaskId(long taskId) { - this.taskId = taskId; - } - - @JsonProperty("clusterName") - public String getClusterName() { - return this.clusterName; - } - - @JsonProperty("clusterName") - public void setClusterName(String clusterName) { - this.clusterName = clusterName; - } - - @JsonProperty("actionId") - public String getActionId() { - return this.actionId; - } - - @JsonProperty("actionId") - public void setActionId(String actionId) { - this.actionId = actionId; - } - - @JsonProperty("stderr") - public String getStdErr() { - return this.stderr; - } - - @JsonProperty("stderr") - public void setStdErr(String stderr) { - this.stderr = stderr; - } - - @JsonProperty("exitcode") - public int getExitCode() { - return this.exitCode; - } - - @JsonProperty("exitcode") - public void setExitCode(int exitCode) { - this.exitCode = exitCode; - } - - @JsonProperty("stdout") - public String getStdOut() { - return this.stdout; - } - - @JsonProperty("stdout") - public void setStdOut(String stdout) { - this.stdout = stdout; - } - - @JsonProperty("structuredOut") - public String getStructuredOut() { - return this.structuredOut; - } - - @JsonProperty("structuredOut") - public void setStructuredOut(String structuredOut) { - this.structuredOut = structuredOut; - } - - @JsonProperty("roleCommand") - public String getRoleCommand() { - return this.roleCommand; - } - - @JsonProperty("roleCommand") - public void setRoleCommand(String roleCommand) { - this.roleCommand = roleCommand; - } - - @JsonProperty("role") - public String getRole() { - return role; - } - - @JsonProperty("role") - public void setRole(String role) { - this.role = role; - } - - @JsonProperty("status") - public String getStatus() { - return status; - } - - @JsonProperty("status") - public void setStatus(String status) { - this.status = status; - } - - @JsonProperty("serviceName") - public String getServiceName() { - return serviceName; - } - - @JsonProperty("serviceName") - public void setServiceName(String serviceName) { - this.serviceName = serviceName; - } - - /** @return the config tags that match this command, or <code>null</code> if none are present */ - @JsonProperty("configurationTags") - public Map<String, Map<String, String>> getConfigurationTags() { - return configurationTags; - } - - /** @param tags the config tags that match this command */ - @JsonProperty("configurationTags") - public void setConfigurationTags(Map<String, Map<String, String>> tags) { - configurationTags = tags; - } - - /** @return the allocated ports, or <code>null</code> if none are present */ - @JsonProperty("allocatedPorts") - public Map<String, String> getAllocatedPorts() { - return allocatedPorts; - } - - /** @param ports allocated ports */ - @JsonProperty("allocatedPorts") - public void setAllocatedPorts(Map<String, String> ports) { - this.allocatedPorts = ports; - } - - /** @return the folders, or <code>null</code> if none are present */ - @JsonProperty("folders") - public Map<String, String> getFolders() { - return folders; - } - - /** @param folders allocated ports */ - @JsonProperty("folders") - public void setFolders(Map<String, String> folders) { - this.folders = folders; - } - - @Override - public String toString() { - return "CommandReport{" + - "role='" + role + '\'' + - ", actionId='" + actionId + '\'' + - ", status='" + status + '\'' + - ", exitCode=" + exitCode + - ", clusterName='" + clusterName + '\'' + - ", serviceName='" + serviceName + '\'' + - ", taskId=" + taskId + - ", roleCommand=" + roleCommand + - ", configurationTags=" + configurationTags + - '}'; - } -} 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/ComponentStatus.java ---------------------------------------------------------------------- diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/ComponentStatus.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/ComponentStatus.java deleted file mode 100644 index acdc234..0000000 --- a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/ComponentStatus.java +++ /dev/null @@ -1,129 +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 org.codehaus.jackson.annotate.JsonIgnoreProperties; -import org.codehaus.jackson.annotate.JsonProperty; -import org.codehaus.jackson.map.annotate.JsonSerialize; - -import java.util.Map; - -/** - * - */ -@JsonIgnoreProperties(ignoreUnknown = true) -@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL) -public class ComponentStatus { - String componentName; - String msg; - String status; - String serviceName; - String clusterName; - String roleCommand; - String ip; - String hostname; - @JsonProperty("configurations") - private Map<String, Map<String, String>> configurations; - - public String getRoleCommand() { - return roleCommand; - } - - public void setRoleCommand(String roleCommand) { - this.roleCommand = roleCommand; - } - - public String getComponentName() { - return this.componentName; - } - - public void setComponentName(String componentName) { - this.componentName = componentName; - } - - public String getMessage() { - return this.msg; - } - - public void setMessage(String msg) { - this.msg = msg; - } - - public String getStatus() { - return this.status; - } - - public void setStatus(String status) { - this.status = status; - } - - public String getServiceName() { - return serviceName; - } - - public void setServiceName(String serviceName) { - this.serviceName = serviceName; - } - - public String getClusterName() { - return clusterName; - } - - public void setClusterName(String clusterName) { - this.clusterName = clusterName; - } - - /** @return the config tags that match this command, or <code>null</code> if none are present */ - public Map<String, Map<String, String>> getConfigs() { - return configurations; - } - - /** @param configs the config tags that match this status */ - public void setConfigs(Map<String, Map<String, String>> configs) { - this.configurations = configs; - } - - @Override - public String toString() { - return "ComponentStatus{" + - "componentName='" + componentName + '\'' + - ", msg='" + msg + '\'' + - ", status='" + status + '\'' + - ", serviceName='" + serviceName + '\'' + - ", clusterName='" + clusterName + '\'' + - ", roleCommand='" + roleCommand + '\'' + - ", ip='" + ip + '\'' + - ", hostname='" + hostname + '\'' + - '}'; - } - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public String getHostname() { - return hostname; - } - - public void setHostname(String hostname) { - this.hostname = hostname; - } -} 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/DiskInfo.java ---------------------------------------------------------------------- diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/DiskInfo.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/DiskInfo.java deleted file mode 100644 index 27c4d54..0000000 --- a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/DiskInfo.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.rest.agent; - -import org.codehaus.jackson.annotate.JsonIgnoreProperties; -import org.codehaus.jackson.annotate.JsonProperty; -import org.codehaus.jackson.map.annotate.JsonSerialize; - -/** - * - */ -@JsonIgnoreProperties(ignoreUnknown = true) -@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL) -public class DiskInfo { - String available; - String mountpoint; - String device; - String used; - String percent; - String size; - String type; - - /** - * DiskInfo object that tracks information about a disk. - * @param mountpoint - * @param available - * @param used - * @param percent - * @param size - */ - public DiskInfo(String device, String mountpoint, String available, - String used, String percent, String size, String type) { - this.device = device; - this.mountpoint = mountpoint; - this.available = available; - this.used = used; - this.percent = percent; - this.size = size; - this.type = type; - } - - /** - * Needed for Serialization - */ - public DiskInfo() {} - - @JsonProperty("available") - public void setAvailable(String available) { - this.available = available; - } - - @JsonProperty("available") - public String getAvailable() { - return this.available; - } - - @JsonProperty("mountpoint") - public String getMountPoint() { - return this.mountpoint; - } - - @JsonProperty("mountpoint") - public void setMountPoint(String mountpoint) { - this.mountpoint = mountpoint; - } - - @JsonProperty("type") - public String getType() { - return this.type; - } - - @JsonProperty("type") - public void setType(String type) { - this.type = type; - } - - @JsonProperty("used") - public String getUsed() { - return this.used; - } - - @JsonProperty("used") - public void setUsed(String used) { - this.used = used; - } - - @JsonProperty("percent") - public String getPercent() { - return this.percent; - } - - @JsonProperty("percent") - public void setPercent(String percent) { - this.percent = percent; - } - - @JsonProperty("size") - public String getSize() { - return this.size; - } - - @JsonProperty("size") - public void setSize(String size) { - this.size = size; - } - - @Override - public String toString() { - return "available=" + this.available + ",mountpoint=" + this.mountpoint - + ",used=" + this.used + ",percent=" + this.percent + ",size=" + - this.size + ",device=" + this.device + - ",type=" + this.type; - } -} 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/ExecutionCommand.java ---------------------------------------------------------------------- diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/ExecutionCommand.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/ExecutionCommand.java deleted file mode 100644 index d3864b8..0000000 --- a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/ExecutionCommand.java +++ /dev/null @@ -1,310 +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 org.apache.slider.providers.agent.application.metadata.Component; -import org.apache.slider.providers.agent.application.metadata.DockerContainer; -import org.apache.slider.providers.agent.application.metadata.DockerContainerInputFile; -import org.apache.slider.providers.agent.application.metadata.DockerContainerMount; -import org.apache.slider.providers.agent.application.metadata.DockerContainerPort; -import org.apache.slider.providers.agent.application.metadata.Metainfo; -import org.codehaus.jackson.annotate.JsonIgnoreProperties; -import org.codehaus.jackson.annotate.JsonProperty; -import org.codehaus.jackson.map.annotate.JsonSerialize; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * - */ -@JsonIgnoreProperties(ignoreUnknown = true) -@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL) -public class ExecutionCommand { - protected static final Logger log = - LoggerFactory.getLogger(ExecutionCommand.class); - private AgentCommandType commandType = AgentCommandType.EXECUTION_COMMAND; - private String clusterName; - private long taskId; - private String commandId; - //TODO Remove hostname from being set in the command - private String hostname; - private String role; - private Map<String, String> hostLevelParams = new HashMap<String, String>(); - private Map<String, String> roleParams = null; - private String roleCommand; - private Map<String, Map<String, String>> configurations; - private Map<String, Map<String, String>> componentConfigurations; - private Map<String, String> commandParams; - private String serviceName; - private String componentName; - private String componentType; - private List<DockerContainer> containers = new ArrayList<>(); - private String pkg; - private boolean yarnDockerMode = false; - - public ExecutionCommand(AgentCommandType commandType) { - this.commandType = commandType; - } - - @JsonProperty("commandType") - public AgentCommandType getCommandType() { - return commandType; - } - - @JsonProperty("commandType") - public void setCommandType(AgentCommandType commandType) { - this.commandType = commandType; - } - - @JsonProperty("commandId") - public String getCommandId() { - return this.commandId; - } - - @JsonProperty("commandId") - public void setCommandId(String commandId) { - this.commandId = commandId; - } - - @JsonProperty("taskId") - public long getTaskId() { - return taskId; - } - - @JsonProperty("taskId") - public void setTaskId(long taskId) { - this.taskId = taskId; - } - - @JsonProperty("role") - public String getRole() { - return role; - } - - @JsonProperty("role") - public void setRole(String role) { - this.role = role; - } - - @JsonProperty("roleParams") - public Map<String, String> getRoleParams() { - return roleParams; - } - - @JsonProperty("roleParams") - public void setRoleParams(Map<String, String> roleParams) { - this.roleParams = roleParams; - } - - @JsonProperty("roleCommand") - public String getRoleCommand() { - return roleCommand; - } - - @JsonProperty("roleCommand") - public void setRoleCommand(String cmd) { - this.roleCommand = cmd; - } - - @JsonProperty("clusterName") - public String getClusterName() { - return clusterName; - } - - @JsonProperty("clusterName") - public void setClusterName(String clusterName) { - this.clusterName = clusterName; - } - - @JsonProperty("componentType") - public String getComponentType() { - return componentType; - } - - @JsonProperty("componentType") - public void setComponentType(String componentType) { - this.componentType = componentType; - } - - @JsonProperty("hostname") - public String getHostname() { - return hostname; - } - - @JsonProperty("hostname") - public void setHostname(String hostname) { - this.hostname = hostname; - } - - @JsonProperty("hostLevelParams") - public Map<String, String> getHostLevelParams() { - return hostLevelParams; - } - - @JsonProperty("hostLevelParams") - public void setHostLevelParams(Map<String, String> params) { - this.hostLevelParams = params; - } - - @JsonProperty("configurations") - public Map<String, Map<String, String>> getConfigurations() { - return configurations; - } - - @JsonProperty("configurations") - public void setConfigurations(Map<String, Map<String, String>> configurations) { - this.configurations = configurations; - } - - @JsonProperty("commandParams") - public Map<String, String> getCommandParams() { - return commandParams; - } - - @JsonProperty("commandParams") - public void setCommandParams(Map<String, String> commandParams) { - this.commandParams = commandParams; - } - - @JsonProperty("serviceName") - public String getServiceName() { - return serviceName; - } - - @JsonProperty("serviceName") - public void setServiceName(String serviceName) { - this.serviceName = serviceName; - } - - @JsonProperty("componentName") - public String getComponentName() { - return componentName; - } - - @JsonProperty("componentName") - public void setComponentName(String componentName) { - this.componentName = componentName; - } - - @JsonProperty("package") - public String getPkg() { - return pkg; - } - - @JsonProperty("package") - public void setPkg(String pkg) { - this.pkg = pkg; - } - - @JsonProperty("componentConfig") - public Map<String, Map<String, String>> getComponentConfigurations() { - return componentConfigurations; - } - - @JsonProperty("componentConfig") - public void setComponentConfigurations( - Map<String, Map<String, String>> componentConfigurations) { - this.componentConfigurations = componentConfigurations; - } - - @JsonProperty("containers") - public List<DockerContainer> getContainers() { - return containers; - } - - @JsonProperty("yarnDockerMode") - public boolean isYarnDockerMode() { - return yarnDockerMode ; - } - - @JsonProperty("yarnDockerMode") - public void setYarnDockerMode(boolean yarnDockerMode) { - this.yarnDockerMode = yarnDockerMode; - } - @Override - public String toString() { - StringBuilder builder = new StringBuilder(); - builder.append("ExecutionCommand [commandType=").append(commandType) - .append(", clusterName=").append(clusterName).append(", taskId=") - .append(taskId).append(", commandId=").append(commandId) - .append(", hostname=").append(hostname).append(", role=").append(role) - .append(", hostLevelParams=").append(hostLevelParams) - .append(", roleParams=").append(roleParams).append(", roleCommand=") - .append(roleCommand).append(", configurations=").append(configurations) - .append(", commandParams=").append(commandParams) - .append(", serviceName=").append(serviceName) - .append(", componentName=").append(componentName) - .append(", componentType=").append(componentType) - .append(", yarnDockerMode=").append(yarnDockerMode).append(", pkg=") - .append(pkg).append("]"); - return builder.toString(); - } - - public void addContainerDetails(String componentGroup, Metainfo metaInfo) { - Component component = metaInfo.getApplicationComponent(componentGroup); - this.setComponentType(component.getType()); - log.info("Adding container details for {}", componentGroup, " from ", - metaInfo.toString()); - for (DockerContainer metaContainer : component.getDockerContainers()) { - DockerContainer container = new DockerContainer(); - container.setImage(metaContainer.getImage()); - container.setNetwork(metaContainer.getNetwork()); - container.setUseNetworkScript(metaContainer.getUseNetworkScript()); - container.setName(metaContainer.getName()); - container.setOptions(metaContainer.getOptions()); - container.setAdditionalParam(metaContainer.getAdditionalParam()); - container.setCommandPath(metaContainer.getAdditionalParam()); - container.setStatusCommand(metaContainer.getStatusCommand()); - container.setStartCommand(metaContainer.getStartCommand()); - if (metaContainer.getMounts().size() > 0) { - for (DockerContainerMount metaContMount : metaContainer.getMounts()) { - DockerContainerMount contMnt = new DockerContainerMount(); - contMnt.setContainerMount(metaContMount.getContainerMount()); - contMnt.setHostMount(metaContMount.getHostMount()); - container.getMounts().add(contMnt); - } - } - if (metaContainer.getPorts().size() > 0) { - for (DockerContainerPort metaCntPort : metaContainer.getPorts()) { - DockerContainerPort cntPort = new DockerContainerPort(); - cntPort.setContainerPort(metaCntPort.getContainerPort()); - cntPort.setHostPort(metaCntPort.getHostPort()); - container.getPorts().add(cntPort); - } - } - if (metaContainer.getInputFiles().size() > 0) { - for (DockerContainerInputFile metaInpFile : metaContainer - .getInputFiles()) { - DockerContainerInputFile inpFile = new DockerContainerInputFile(); - inpFile.setContainerMount(metaInpFile.getContainerMount()); - inpFile.setFileLocalPath(metaInpFile.getFileLocalPath()); - container.getInputFiles().add(inpFile); - } - } - if (metaContainer.getConfigFiles() != null) { - container.setConfigFiles(metaContainer.getConfigFiles()); - } - log.info("Docker container meta info ready: " + container.toString()); - this.getContainers().add(container); - } - } -} 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/HeartBeat.java ---------------------------------------------------------------------- diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/HeartBeat.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/HeartBeat.java deleted file mode 100644 index d17c465..0000000 --- a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/HeartBeat.java +++ /dev/null @@ -1,149 +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 org.codehaus.jackson.annotate.JsonIgnoreProperties; -import org.codehaus.jackson.annotate.JsonProperty; -import org.codehaus.jackson.map.annotate.JsonSerialize; - -import java.util.ArrayList; -import java.util.List; - -/** - * - * - * Data model for agent heartbeat for server (ambari or app master). - * - */ - -@JsonIgnoreProperties(ignoreUnknown = true) -@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL) -public class HeartBeat { - private long responseId = -1; - private long timestamp; - private String hostname; - List<CommandReport> reports = new ArrayList<CommandReport>(); - List<ComponentStatus> componentStatus = new ArrayList<ComponentStatus>(); - private List<DiskInfo> mounts = new ArrayList<DiskInfo>(); - HostStatus nodeStatus; - private AgentEnv agentEnv = null; - private String fqdn; - private String pkg; - - public long getResponseId() { - return responseId; - } - - public void setResponseId(long responseId) { - this.responseId=responseId; - } - - public long getTimestamp() { - return timestamp; - } - - public void setTimestamp(long timestamp) { - this.timestamp = timestamp; - } - - public String getHostname() { - return hostname; - } - - public void setHostname(String hostname) { - this.hostname = hostname; - } - - public String getFqdn() { - return fqdn; - } - - public void setFqdn(String fqdn) { - this.fqdn = fqdn; - } - - @JsonProperty("reports") - public List<CommandReport> getReports() { - return this.reports; - } - - @JsonProperty("reports") - public void setReports(List<CommandReport> reports) { - this.reports = reports; - } - - public HostStatus getNodeStatus() { - return nodeStatus; - } - - public void setNodeStatus(HostStatus nodeStatus) { - this.nodeStatus = nodeStatus; - } - - public AgentEnv getAgentEnv() { - return agentEnv; - } - - public void setAgentEnv(AgentEnv env) { - agentEnv = env; - } - - @JsonProperty("componentStatus") - public List<ComponentStatus> getComponentStatus() { - return componentStatus; - } - - @JsonProperty("componentStatus") - public void setComponentStatus(List<ComponentStatus> componentStatus) { - this.componentStatus = componentStatus; - } - - @JsonProperty("mounts") - public List<DiskInfo> getMounts() { - return this.mounts; - } - - @JsonProperty("mounts") - public void setMounts(List<DiskInfo> mounts) { - this.mounts = mounts; - } - - @JsonProperty("package") - public String getPackage() { - return pkg; - } - - @JsonProperty("package") - public void setPackage(String pkg) { - this.pkg = pkg; - } - - @Override - public String toString() { - return "HeartBeat{" + - "responseId=" + responseId + - ", timestamp=" + timestamp + - ", hostname='" + hostname + '\'' + - ", reports=" + reports + - ", componentStatus=" + componentStatus + - ", package=" + pkg + - ", nodeStatus=" + nodeStatus + - '}'; - } -} 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/HeartBeatResponse.java ---------------------------------------------------------------------- diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/HeartBeatResponse.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/HeartBeatResponse.java deleted file mode 100644 index b500d67..0000000 --- a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/HeartBeatResponse.java +++ /dev/null @@ -1,147 +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 org.codehaus.jackson.annotate.JsonIgnoreProperties; -import org.codehaus.jackson.annotate.JsonProperty; -import org.codehaus.jackson.map.annotate.JsonSerialize; - -import java.util.ArrayList; -import java.util.List; - -/** - * - * Controller to Agent response data model. - * - */ -@JsonIgnoreProperties(ignoreUnknown = true) -@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL) -public class HeartBeatResponse { - - private long responseId; - - List<ExecutionCommand> executionCommands = new ArrayList<ExecutionCommand>(); - List<StatusCommand> statusCommands = new ArrayList<StatusCommand>(); - - RegistrationCommand registrationCommand; - - boolean yarnDockerMode = false; - boolean restartAgent = false; - boolean restartEnabled = true; - boolean hasMappedComponents = false; - boolean terminateAgent = false; - - @JsonProperty("responseId") - public long getResponseId() { - return responseId; - } - - @JsonProperty("responseId") - public void setResponseId(long responseId) { - this.responseId=responseId; - } - - @JsonProperty("executionCommands") - public List<ExecutionCommand> getExecutionCommands() { - return executionCommands; - } - - @JsonProperty("executionCommands") - public void setExecutionCommands(List<ExecutionCommand> executionCommands) { - this.executionCommands = executionCommands; - } - - @JsonProperty("statusCommands") - public List<StatusCommand> getStatusCommands() { - return statusCommands; - } - - @JsonProperty("statusCommands") - public void setStatusCommands(List<StatusCommand> statusCommands) { - this.statusCommands = statusCommands; - } - - @JsonProperty("registrationCommand") - public RegistrationCommand getRegistrationCommand() { - return registrationCommand; - } - - @JsonProperty("registrationCommand") - public void setRegistrationCommand(RegistrationCommand registrationCommand) { - this.registrationCommand = registrationCommand; - } - - @JsonProperty("restartAgent") - public boolean isRestartAgent() { - return restartAgent; - } - - @JsonProperty("restartAgent") - public void setRestartAgent(boolean restartAgent) { - this.restartAgent = restartAgent; - } - - @JsonProperty("restartEnabled") - public boolean getRstartEnabled() { - return restartEnabled; - } - - @JsonProperty("restartEnabled") - public void setRestartEnabled(boolean restartEnabled) { - this.restartEnabled = restartEnabled; - } - - @JsonProperty("hasMappedComponents") - public boolean hasMappedComponents() { - return hasMappedComponents; - } - - @JsonProperty("hasMappedComponents") - public void setHasMappedComponents(boolean hasMappedComponents) { - this.hasMappedComponents = hasMappedComponents; - } - - @JsonProperty("terminateAgent") - public boolean isTerminateAgent() { - return terminateAgent; - } - - @JsonProperty("terminateAgent") - public void setTerminateAgent(boolean terminateAgent) { - this.terminateAgent = terminateAgent; - } - - public void addExecutionCommand(ExecutionCommand execCmd) { - executionCommands.add(execCmd); - } - - public void addStatusCommand(StatusCommand statCmd) { - statusCommands.add(statCmd); - } - - @Override - public String toString() { - return "HeartBeatResponse{" + - "responseId=" + responseId + - ", executionCommands=" + executionCommands + - ", statusCommands=" + statusCommands + - ", registrationCommand=" + registrationCommand + - ", restartAgent=" + restartAgent + - ", terminateAgent=" + terminateAgent + - '}'; - } -} 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/HostInfo.java ---------------------------------------------------------------------- diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/HostInfo.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/HostInfo.java deleted file mode 100644 index bef7b07..0000000 --- a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/HostInfo.java +++ /dev/null @@ -1,398 +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 org.codehaus.jackson.annotate.JsonIgnoreProperties; -import org.codehaus.jackson.annotate.JsonProperty; -import org.codehaus.jackson.map.annotate.JsonSerialize; - -import java.util.ArrayList; -import java.util.List; - -@JsonIgnoreProperties(ignoreUnknown = true) -@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL) -public class HostInfo { - private String architecture; - private String domain; - private String fqdn; - private String hardwareisa; - private String hardwaremodel; - private String hostname; - private String id; - private String interfaces; - private String ipaddress; - private String kernel; - private String kernelmajversion; - private String kernelrelease; - private String kernelversion; - private String macaddress; - private long memoryfree; - private long memorysize; - private List<DiskInfo> mounts = new ArrayList<DiskInfo>(); - private long memorytotal; - private String netmask; - private String operatingsystem; - private String operatingsystemrelease; - private String osfamily; - private int physicalprocessorcount; - private int processorcount; - private boolean selinux; - private String swapfree; - private String swapsize; - private String timezone; - private String uptime; - private long uptime_days; - private long uptime_hours; - - - @JsonProperty("architecture") - public String getArchitecture() { - return this.architecture; - } - - @JsonProperty("architecture") - public void setArchitecture(String architecture) { - this.architecture = architecture; - } - - @JsonProperty("domain") - public String getDomain() { - return this.domain; - } - - @JsonProperty("domain") - public void setDomain(String domain) { - this.domain = domain; - } - - @JsonProperty("fqdn") - public String getFQDN() { - return this.fqdn; - } - - @JsonProperty("fqdn") - public void setFQDN(String fqdn) { - this.fqdn = fqdn; - } - - @JsonProperty("hardwareisa") - public String getHardwareIsa() { - return hardwareisa; - } - - @JsonProperty("hardwareisa") - public void setHardwareIsa(String hardwareisa) { - this.hardwareisa = hardwareisa; - } - - @JsonProperty("hardwaremodel") - public String getHardwareModel() { - return this.hardwaremodel; - } - - @JsonProperty("hardwaremodel") - public void setHardwareModel(String hardwaremodel) { - this.hardwaremodel = hardwaremodel; - } - - @JsonProperty("hostname") - public String getHostName() { - return this.hostname; - } - - @JsonProperty("hostname") - public void setHostName(String hostname) { - this.hostname = hostname; - } - - @JsonProperty("id") - public String getAgentUserId() { - return id; - } - - @JsonProperty("id") - public void setAgentUserId(String id) { - this.id = id; - } - - @JsonProperty("interfaces") - public String getInterfaces() { - return this.interfaces; - } - - @JsonProperty("interfaces") - public void setInterfaces(String interfaces) { - this.interfaces = interfaces; - } - - @JsonProperty("ipaddress") - public String getIPAddress() { - return this.ipaddress; - } - - @JsonProperty("ipaddress") - public void setIPAddress(String ipaddress) { - this.ipaddress = ipaddress; - } - - @JsonProperty("kernel") - public String getKernel() { - return this.kernel; - } - - @JsonProperty("kernel") - public void setKernel(String kernel) { - this.kernel = kernel; - } - - @JsonProperty("kernelmajversion") - public String getKernelMajVersion() { - return this.kernelmajversion; - } - - @JsonProperty("kernelmajversion") - public void setKernelMajVersion(String kernelmajversion) { - this.kernelmajversion = kernelmajversion; - } - - @JsonProperty("kernelrelease") - public String getKernelRelease() { - return this.kernelrelease; - } - - @JsonProperty("kernelrelease") - public void setKernelRelease(String kernelrelease) { - this.kernelrelease = kernelrelease; - } - - @JsonProperty("kernelversion") - public String getKernelVersion() { - return this.kernelversion; - } - - @JsonProperty("kernelversion") - public void setKernelVersion(String kernelversion) { - this.kernelversion = kernelversion; - } - - @JsonProperty("macaddress") - public String getMacAddress() { - return this.macaddress; - } - - @JsonProperty("macaddress") - public void setMacAddress(String macaddress) { - this.macaddress = macaddress; - } - - @JsonProperty("memoryfree") - public long getFreeMemory() { - return this.memoryfree; - } - - @JsonProperty("memoryfree") - public void setFreeMemory(long memoryfree) { - this.memoryfree = memoryfree; - } - - @JsonProperty("memorysize") - public long getMemorySize() { - return this.memorysize; - } - - @JsonProperty("memorysize") - public void setMemorySize(long memorysize) { - this.memorysize = memorysize; - } - - @JsonProperty("mounts") - public List<DiskInfo> getMounts() { - return this.mounts; - } - - @JsonProperty("mounts") - public void setMounts(List<DiskInfo> mounts) { - this.mounts = mounts; - } - - @JsonProperty("memorytotal") - public long getMemoryTotal() { - return this.memorytotal; - } - - @JsonProperty("memorytotal") - public void setMemoryTotal(long memorytotal) { - this.memorytotal = memorytotal; - } - - @JsonProperty("netmask") - public String getNetMask() { - return this.netmask; - } - - @JsonProperty("netmask") - public void setNetMask(String netmask) { - this.netmask = netmask; - } - - @JsonProperty("operatingsystem") - public String getOS() { - return this.operatingsystem; - } - - @JsonProperty("operatingsystem") - public void setOS(String operatingsystem) { - this.operatingsystem = operatingsystem; - } - - @JsonProperty("operatingsystemrelease") - public String getOSRelease() { - return this.operatingsystemrelease; - } - - @JsonProperty("operatingsystemrelease") - public void setOSRelease(String operatingsystemrelease) { - this.operatingsystemrelease = operatingsystemrelease; - } - - @JsonProperty("osfamily") - public String getOSFamily() { - return this.osfamily; - } - - @JsonProperty("osfamily") - public void setOSFamily(String osfamily) { - this.osfamily = osfamily; - } - - @JsonProperty("physicalprocessorcount") - public int getPhysicalProcessorCount() { - return this.physicalprocessorcount; - } - - @JsonProperty("physicalprocessorcount") - public void setPhysicalProcessorCount(int physicalprocessorcount) { - this.physicalprocessorcount = physicalprocessorcount; - } - - @JsonProperty("processorcount") - public int getProcessorCount() { - return this.processorcount; - } - - @JsonProperty("processorcount") - public void setProcessorCount(int processorcount) { - this.processorcount = processorcount; - } - - @JsonProperty("selinux") - public boolean getSeLinux() { - return selinux; - } - - @JsonProperty("selinux") - public void setSeLinux(boolean selinux) { - this.selinux = selinux; - } - - @JsonProperty("swapfree") - public String getSwapFree() { - return this.swapfree; - } - - @JsonProperty("swapfree") - public void setSwapFree(String swapfree) { - this.swapfree = swapfree; - } - - @JsonProperty("swapsize") - public String getSwapSize() { - return swapsize; - } - - @JsonProperty("swapsize") - public void setSwapSize(String swapsize) { - this.swapsize = swapsize; - } - - @JsonProperty("timezone") - public String getTimeZone() { - return this.timezone; - } - - @JsonProperty("timezone") - public void setTimeZone(String timezone) { - this.timezone = timezone; - } - - @JsonProperty("uptime") - public String getUptime() { - return this.uptime; - } - - @JsonProperty("uptime") - public void setUpTime(String uptime) { - this.uptime = uptime; - } - - @JsonProperty("uptime_hours") - public long getUptimeHours() { - return this.uptime_hours; - } - - @JsonProperty("uptime_hours") - public void setUpTimeHours(long uptime_hours) { - this.uptime_hours = uptime_hours; - } - - @JsonProperty("uptime_days") - public long getUpTimeDays() { - return this.uptime_days; - } - - @JsonProperty("uptime_days") - public void setUpTimeDays(long uptime_days) { - this.uptime_days = uptime_days; - } - - private String getDiskString() { - if (mounts == null) { - return null; - } - StringBuilder ret = new StringBuilder(); - for (DiskInfo diskInfo : mounts) { - ret.append("(").append(diskInfo.toString()).append(")"); - } - return ret.toString(); - } - - public String toString() { - return "[" + - "hostname=" + this.hostname + "," + - "fqdn=" + this.fqdn + "," + - "domain=" + this.domain + "," + - "architecture=" + this.architecture + "," + - "processorcount=" + this.processorcount + "," + - "physicalprocessorcount=" + this.physicalprocessorcount + "," + - "osname=" + this.operatingsystem + "," + - "osversion=" + this.operatingsystemrelease + "," + - "osfamily=" + this.osfamily + "," + - "memory=" + this.memorytotal + "," + - "uptime_hours=" + this.uptime_hours + "," + - "mounts=" + getDiskString() + "]\n"; - } -} 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/HostStatus.java ---------------------------------------------------------------------- diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/HostStatus.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/HostStatus.java deleted file mode 100644 index c584149..0000000 --- a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/HostStatus.java +++ /dev/null @@ -1,63 +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 org.codehaus.jackson.annotate.JsonIgnoreProperties; -import org.codehaus.jackson.map.annotate.JsonSerialize; - -/** - * - */ -@JsonIgnoreProperties(ignoreUnknown = true) -@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL) -public class HostStatus { - public HostStatus(Status status, String cause) { - super(); - this.status = status; - this.cause = cause; - } - public HostStatus() { - super(); - } - - public enum Status { - HEALTHY, - UNHEALTHY - } - Status status; - String cause; - public Status getStatus() { - return status; - } - public void setStatus(Status status) { - this.status = status; - } - public String getCause() { - return cause; - } - public void setCause(String cause) { - this.cause = cause; - } - - @Override - public String toString() { - return "HostStatus{" + - "status=" + status + - ", cause='" + cause + '\'' + - '}'; - } -} 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/Register.java ---------------------------------------------------------------------- diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/Register.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/Register.java deleted file mode 100644 index 0150079..0000000 --- a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/Register.java +++ /dev/null @@ -1,193 +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 org.apache.slider.providers.agent.State; -import org.codehaus.jackson.annotate.JsonIgnoreProperties; -import org.codehaus.jackson.annotate.JsonProperty; -import org.codehaus.jackson.map.annotate.JsonSerialize; - -import java.util.Map; - -/** Data model for agent to send heartbeat to ambari and/or app master. */ -@JsonIgnoreProperties(ignoreUnknown = true) -@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL) -public class Register { - private int responseId = -1; - private long timestamp; - private String label; - private int currentPingPort; - private HostInfo hardwareProfile; - private String publicHostname; - private String tags; - private AgentEnv agentEnv; - private String agentVersion; - private State actualState; - private State expectedState; - private Map<String, String> allocatedPorts; - private Map<String, String> logFolders; - private String pkg; - private String appVersion; - - @JsonProperty("responseId") - public int getResponseId() { - return responseId; - } - - @JsonProperty("responseId") - public void setResponseId(int responseId) { - this.responseId = responseId; - } - - public long getTimestamp() { - return timestamp; - } - - public void setTimestamp(long timestamp) { - this.timestamp = timestamp; - } - - public String getLabel() { - return label; - } - - public void setLabel(String label) { - this.label = label; - } - - public String getTags() { - return tags; - } - - public void setTags(String tags) { - this.tags = tags; - } - - public HostInfo getHardwareProfile() { - return hardwareProfile; - } - - public void setHardwareProfile(HostInfo hardwareProfile) { - this.hardwareProfile = hardwareProfile; - } - - public String getPublicHostname() { - return publicHostname; - } - - public void setPublicHostname(String name) { - this.publicHostname = name; - } - - public AgentEnv getAgentEnv() { - return agentEnv; - } - - public void setAgentEnv(AgentEnv env) { - this.agentEnv = env; - } - - public String getAgentVersion() { - return agentVersion; - } - - public void setAgentVersion(String agentVersion) { - this.agentVersion = agentVersion; - } - - public int getCurrentPingPort() { - return currentPingPort; - } - - public void setCurrentPingPort(int currentPingPort) { - this.currentPingPort = currentPingPort; - } - - public State getActualState() { - return actualState; - } - - public void setActualState(State actualState) { - this.actualState = actualState; - } - - public State getExpectedState() { - return expectedState; - } - - public void setExpectedState(State expectedState) { - this.expectedState = expectedState; - } - - /** @return the allocated ports, or <code>null</code> if none are present */ - @JsonProperty("allocatedPorts") - public Map<String, String> getAllocatedPorts() { - return allocatedPorts; - } - - /** @param ports allocated ports */ - @JsonProperty("allocatedPorts") - public void setAllocatedPorts(Map<String, String> ports) { - this.allocatedPorts = ports; - } - - /** @return the log folders, or <code>null</code> if none are present */ - @JsonProperty("logFolders") - public Map<String, String> getLogFolders() { - return logFolders; - } - - /** @param logFolders assigned log folders */ - @JsonProperty("logFolders") - public void setLogFolders(Map<String, String> logFolders) { - this.logFolders = logFolders; - } - - public String getPkg() { - return pkg; - } - - public void setPkg(String pkg) { - this.pkg = pkg; - } - - @JsonProperty("appVersion") - public String getAppVersion() { - return appVersion; - } - - @JsonProperty("appVersion") - public void setAppVersion(String appVersion) { - this.appVersion = appVersion; - } - - @Override - public String toString() { - String ret = "responseId=" + responseId + "\n" + - "timestamp=" + timestamp + "\n" + - "label=" + label + "\n" + - "hostname=" + publicHostname + "\n" + - "expectedState=" + expectedState + "\n" + - "actualState=" + actualState + "\n" + - "appVersion=" + appVersion + "\n"; - - if (hardwareProfile != null) { - ret = ret + "hardwareprofile=" + this.hardwareProfile.toString(); - } - return ret; - } -} 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/RegistrationCommand.java ---------------------------------------------------------------------- diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/RegistrationCommand.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/RegistrationCommand.java deleted file mode 100644 index 4b87dd2..0000000 --- a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/RegistrationCommand.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.rest.agent; - -import org.codehaus.jackson.annotate.JsonIgnoreProperties; -import org.codehaus.jackson.map.annotate.JsonSerialize; - -/** - * - */ -@JsonIgnoreProperties(ignoreUnknown = true) -@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL) -public class RegistrationCommand { - - private String command; - - public String getCommand() { - return command; - } - - public void setCommand(String command) { - this.command = command; - } - - public RegistrationCommand(String command) { - - this.command = 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/RegistrationResponse.java ---------------------------------------------------------------------- diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/RegistrationResponse.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/RegistrationResponse.java deleted file mode 100644 index 80b7a5e..0000000 --- a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/RegistrationResponse.java +++ /dev/null @@ -1,133 +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 org.codehaus.jackson.annotate.JsonIgnoreProperties; -import org.codehaus.jackson.annotate.JsonProperty; -import org.codehaus.jackson.map.annotate.JsonSerialize; - -import java.util.List; - -@JsonIgnoreProperties(ignoreUnknown = true) -@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL) -public class RegistrationResponse { - - @JsonProperty("response") - private RegistrationStatus response; - - /** - * exitstatus is a code of error which was rised on server side. exitstatus - * = 0 (OK - Default) exitstatus = 1 (Registration failed because different - * version of agent and server) - */ - @JsonProperty("exitstatus") - private int exitstatus; - - /** log - message, which will be printed to agents log */ - @JsonProperty("log") - private String log; - - /** tags - tags associated with the container */ - @JsonProperty("tags") - private String tags; - - @JsonProperty("package") - private String pkg; - - //Response id to start with, usually zero. - @JsonProperty("responseId") - private long responseId; - - @JsonProperty("statusCommands") - private List<StatusCommand> statusCommands = null; - - public RegistrationResponse() { - } - - public RegistrationStatus getResponse() { - return response; - } - - public void setResponse(RegistrationStatus response) { - this.response = response; - } - - public int getExitstatus() { - return exitstatus; - } - - public void setExitstatus(int exitstatus) { - this.exitstatus = exitstatus; - } - - public RegistrationStatus getResponseStatus() { - return response; - } - - public void setResponseStatus(RegistrationStatus response) { - this.response = response; - } - - public List<StatusCommand> getStatusCommands() { - return statusCommands; - } - - public void setStatusCommands(List<StatusCommand> statusCommands) { - this.statusCommands = statusCommands; - } - - public long getResponseId() { - return responseId; - } - - public void setResponseId(long responseId) { - this.responseId = responseId; - } - - public String getTags() { - return tags; - } - - public void setTags(String tags) { - this.tags = tags; - } - - public String getLog() { - return log; - } - - public void setLog(String log) { - this.log = log; - } - - public String getPkg() { - return pkg; - } - - public void setPkg(String pkg) { - this.pkg = pkg; - } - - @Override - public String toString() { - return "RegistrationResponse{" + - "response=" + response + - ", responseId=" + responseId + - ", statusCommands=" + statusCommands + - '}'; - } -} 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/RegistrationStatus.java ---------------------------------------------------------------------- diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/RegistrationStatus.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/RegistrationStatus.java deleted file mode 100644 index 8374710..0000000 --- a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/RegistrationStatus.java +++ /dev/null @@ -1,22 +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 RegistrationStatus { - OK, - FAILED -} 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/StatusCommand.java ---------------------------------------------------------------------- diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/StatusCommand.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/StatusCommand.java deleted file mode 100644 index 5b205b5..0000000 --- a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/StatusCommand.java +++ /dev/null @@ -1,152 +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 org.codehaus.jackson.annotate.JsonIgnoreProperties; -import org.codehaus.jackson.annotate.JsonProperty; -import org.codehaus.jackson.map.annotate.JsonSerialize; - -import java.util.HashMap; -import java.util.Map; - -/** - * Command to report the status of a list of services in roles. - */ -@JsonIgnoreProperties(ignoreUnknown = true) -@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL) -public class StatusCommand { - public static String STATUS_COMMAND = "STATUS"; - public static String GET_CONFIG_COMMAND = "GET_CONFIG"; - - AgentCommandType agentCommandType; - - private String clusterName; - private String serviceName; - private String componentName; - private Map<String, Map<String, String>> configurations; - private Map<String, String> commandParams = new HashMap<String, String>(); - private Map<String, String> hostLevelParams = new HashMap<String, String>(); - private String roleCommand; - private boolean yarnDockerMode; - - public StatusCommand() { - this.agentCommandType = AgentCommandType.STATUS_COMMAND; - } - - @JsonProperty("clusterName") - public String getClusterName() { - return clusterName; - } - - @JsonProperty("clusterName") - public void setClusterName(String clusterName) { - this.clusterName = clusterName; - } - - @JsonProperty("serviceName") - public String getServiceName() { - return serviceName; - } - - @JsonProperty("serviceName") - public void setServiceName(String serviceName) { - this.serviceName = serviceName; - } - - @JsonProperty("componentName") - public String getComponentName() { - return componentName; - } - - @JsonProperty("componentName") - public void setComponentName(String componentName) { - this.componentName = componentName; - } - - @JsonProperty("configurations") - public Map<String, Map<String, String>> getConfigurations() { - return configurations; - } - - @JsonProperty("configurations") - public void setConfigurations(Map<String, Map<String, String>> configurations) { - this.configurations = configurations; - } - - @JsonProperty("hostLevelParams") - public Map<String, String> getHostLevelParams() { - return hostLevelParams; - } - - @JsonProperty("hostLevelParams") - public void setHostLevelParams(Map<String, String> params) { - this.hostLevelParams = params; - } - - @JsonProperty("commandParams") - public Map<String, String> getCommandParams() { - return commandParams; - } - - @JsonProperty("commandParams") - public void setCommandParams(Map<String, String> commandParams) { - this.commandParams = commandParams; - } - - @JsonProperty("commandType") - public AgentCommandType getCommandType() { - return agentCommandType; - } - - @JsonProperty("commandType") - public void setCommandType(AgentCommandType commandType) { - this.agentCommandType = commandType; - } - - @JsonProperty("roleCommand") - public String getRoleCommand() { - return roleCommand; - } - - @JsonProperty("roleCommand") - public void setRoleCommand(String roleCommand) { - this.roleCommand = roleCommand; - } - - @JsonProperty("yarnDockerMode") - public boolean isYarnDockerMode() { - return yarnDockerMode; - } - - @JsonProperty("yarnDockerMode") - public void setYarnDockerMode(boolean yarnDockerMode) { - this.yarnDockerMode = yarnDockerMode; - } - - @Override - public String toString() { - StringBuilder builder = new StringBuilder(); - builder.append("StatusCommand [agentCommandType=").append(agentCommandType) - .append(", clusterName=").append(clusterName).append(", serviceName=") - .append(serviceName).append(", componentName=").append(componentName) - .append(", configurations=").append(configurations) - .append(", commandParams=").append(commandParams) - .append(", hostLevelParams=").append(hostLevelParams) - .append(", roleCommand=").append(roleCommand).append("]"); - return builder.toString(); - } -}