Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id C4EAD200C6E for ; Mon, 8 May 2017 20:50:32 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id C3476160BA2; Mon, 8 May 2017 18:50:32 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 7517F160BA5 for ; Mon, 8 May 2017 20:50:30 +0200 (CEST) Received: (qmail 11859 invoked by uid 500); 8 May 2017 18:50:29 -0000 Mailing-List: contact commits-help@ambari.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: ambari-dev@ambari.apache.org Delivered-To: mailing list commits@ambari.apache.org Received: (qmail 11838 invoked by uid 99); 8 May 2017 18:50:29 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 08 May 2017 18:50:29 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 04EA5DFF36; Mon, 8 May 2017 18:50:29 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: adoroszlai@apache.org To: commits@ambari.apache.org Date: Mon, 08 May 2017 18:50:29 -0000 Message-Id: In-Reply-To: References: X-Mailer: ASF-Git Admin Mailer Subject: [2/2] ambari git commit: AMBARI-20951. Integrate HostService resource with Swagger archived-at: Mon, 08 May 2017 18:50:33 -0000 AMBARI-20951. Integrate HostService resource with Swagger Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/0e13b018 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/0e13b018 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/0e13b018 Branch: refs/heads/ambari-rest-api-explorer Commit: 0e13b01849f1b13010a83b01861102a5febb5e7c Parents: 4ede671 Author: Attila Doroszlai Authored: Mon Apr 24 09:46:37 2017 +0200 Committer: Attila Doroszlai Committed: Mon May 8 20:52:42 2017 +0200 ---------------------------------------------------------------------- .../ambari/server/api/services/BaseService.java | 26 ++ .../ambari/server/api/services/HostService.java | 188 +++++++++--- .../request/eventcreator/HostEventCreator.java | 4 +- .../ambari/server/controller/HostRequest.java | 72 ++--- .../ambari/server/controller/HostResponse.java | 287 +++++-------------- .../controller/RootServiceResponseFactory.java | 2 +- .../internal/HostResourceProvider.java | 188 ++++++------ .../controller/internal/HostStatusHelper.java | 7 +- ...ootServiceHostComponentResourceProvider.java | 2 +- .../internal/ScaleClusterRequest.java | 10 +- .../controller/utilities/PropertyHelper.java | 2 +- .../ambari/server/state/host/HostImpl.java | 6 +- .../ambari/server/topology/AmbariContext.java | 2 +- .../ambari/server/topology/HostRequest.java | 2 +- .../server/api/services/HostServiceTest.java | 2 +- .../request/creator/HostEventCreatorTest.java | 4 +- .../AmbariManagementControllerTest.java | 54 ++-- .../internal/AbstractResourceProviderTest.java | 5 +- .../internal/HostResourceProviderTest.java | 74 ++--- ...erviceHostComponentResourceProviderTest.java | 11 +- .../internal/ScaleClusterRequestTest.java | 14 +- .../server/topology/TopologyManagerTest.java | 4 +- 22 files changed, 434 insertions(+), 532 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/0e13b018/ambari-server/src/main/java/org/apache/ambari/server/api/services/BaseService.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/BaseService.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/BaseService.java index 0185d37..76d2b70 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/BaseService.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/BaseService.java @@ -49,6 +49,32 @@ import org.slf4j.LoggerFactory; public abstract class BaseService { public final static MediaType MEDIA_TYPE_TEXT_CSV_TYPE = new MediaType("text", "csv"); + static final String SUCCESSFUL_OPERATION = "Successful operation"; + static final String REQUEST_ACCEPTED = "Request is accepted, but not completely processed yet"; + static final String INVALID_ARGUMENTS = "Invalid arguments"; + static final String CLUSTER_NOT_FOUND = "Cluster not found"; + static final String CLUSTER_OR_HOST_NOT_FOUND = "Cluster or host not found"; + static final String NOT_AUTHENTICATED = "Not authenticated"; + static final String PERMISSION_DENIED = "Not permitted to perform the operation"; + static final String SERVER_ERROR = "Internal server error"; + + static final String QUERY_FIELDS = "fields"; + static final String QUERY_FILTER_DESCRIPTION = "Filter fields in the response (identifier fields are mandatory)"; + static final String QUERY_SORT = "sortBy"; + static final String QUERY_SORT_DESCRIPTION = "Sort resources in result by (asc | desc)"; + static final String QUERY_PAGE_SIZE = "page_size"; + static final String QUERY_PAGE_SIZE_DESCRIPTION = "The number of resources to be returned for the paged response."; + static final String DEFAULT_PAGE_SIZE = "10"; + static final String QUERY_FROM = "from"; + static final String QUERY_FROM_DESCRIPTION = "The starting page resource (inclusive). \"start\" is also accepted."; + static final String QUERY_FROM_TYPE = "integer"; + static final String QUERY_FROM_VALUES = "range[0, infinity]"; + static final String DEFAULT_FROM = "0"; + static final String QUERY_TO = "to"; + static final String QUERY_TO_DESCRIPTION = "The ending page resource (inclusive). \"end\" is also accepted."; + static final String QUERY_TO_TYPE = "integer"; + static final String QUERY_TO_VALUES = "range[1, infinity]"; + /** * Logger instance. */ http://git-wip-us.apache.org/repos/asf/ambari/blob/0e13b018/ambari-server/src/main/java/org/apache/ambari/server/api/services/HostService.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/HostService.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/HostService.java index c26c5d8..7b5f9cf 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/HostService.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/HostService.java @@ -34,23 +34,39 @@ import javax.ws.rs.core.Response; import javax.ws.rs.core.UriInfo; import org.apache.ambari.server.api.resources.ResourceInstance; +import org.apache.ambari.server.controller.HostResponse; import org.apache.ambari.server.controller.spi.Resource; +import org.apache.http.HttpStatus; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import io.swagger.annotations.ApiResponse; +import io.swagger.annotations.ApiResponses; /** * Service responsible for hosts resource requests. */ -@Path("/hosts/") +@Path("/hosts") +@Api(value = "/hosts", description = "Endpoint for host-specific operations") public class HostService extends BaseService { + private static final String UNKNOWN_HOSTS = "Attempt to add hosts that have not been registered"; + private static final String HOST_ALREADY_EXISTS = "Attempt to create a host which already exists"; + private static final String HOST_REQUEST_TYPE = "org.apache.ambari.server.controller.HostRequest"; + /** * Parent cluster id. */ - private String m_clusterName; + private final String m_clusterName; /** * Constructor. */ public HostService() { + this(null); } /** @@ -68,17 +84,28 @@ public class HostService extends BaseService { * * @param headers http headers * @param ui uri info - * @param hostName host id + * @param hostName host name * @return host resource representation */ @GET @Path("{hostName}") @Produces("text/plain") + @ApiOperation(value = "Returns information about a single host", response = HostResponse.Wrapper.class) + @ApiImplicitParams({ + @ApiImplicitParam(name = QUERY_FIELDS, value = QUERY_FILTER_DESCRIPTION, dataType = "string", paramType = "query"), + }) + @ApiResponses({ + @ApiResponse(code = HttpStatus.SC_OK, message = SUCCESSFUL_OPERATION), + @ApiResponse(code = HttpStatus.SC_NOT_FOUND, message = CLUSTER_OR_HOST_NOT_FOUND), + @ApiResponse(code = HttpStatus.SC_UNAUTHORIZED, message = NOT_AUTHENTICATED), + @ApiResponse(code = HttpStatus.SC_FORBIDDEN, message = PERMISSION_DENIED), + @ApiResponse(code = HttpStatus.SC_INTERNAL_SERVER_ERROR, message = SERVER_ERROR), + }) public Response getHost(String body, @Context HttpHeaders headers, @Context UriInfo ui, - @PathParam("hostName") String hostName) { - + @ApiParam(value = "host name", required = true) @PathParam("hostName") String hostName + ) { return handleRequest(headers, body, ui, Request.Type.GET, - createHostResource(m_clusterName, hostName, ui)); + createHostResource(m_clusterName, hostName)); } /** @@ -91,9 +118,24 @@ public class HostService extends BaseService { */ @GET @Produces("text/plain") + @ApiOperation(value = "Returns a collection of all hosts", response = HostResponse.Wrapper.class, responseContainer = "List") + @ApiImplicitParams({ + @ApiImplicitParam(name = QUERY_FIELDS, value = QUERY_FILTER_DESCRIPTION, defaultValue = "Hosts/*", dataType = "string", paramType = "query"), + @ApiImplicitParam(name = QUERY_SORT, value = QUERY_SORT_DESCRIPTION, defaultValue = "Hosts/host_name.asc", dataType = "string", paramType = "query"), + @ApiImplicitParam(name = QUERY_PAGE_SIZE, value = QUERY_PAGE_SIZE_DESCRIPTION, defaultValue = DEFAULT_PAGE_SIZE, dataType = "integer", paramType = "query"), + @ApiImplicitParam(name = QUERY_FROM, value = QUERY_FROM_DESCRIPTION, allowableValues = QUERY_FROM_VALUES, defaultValue = DEFAULT_FROM, dataType = QUERY_FROM_TYPE, paramType = "query"), + @ApiImplicitParam(name = QUERY_TO, value = QUERY_TO_DESCRIPTION, allowableValues = QUERY_TO_VALUES, dataType = QUERY_TO_TYPE, paramType = "query"), + }) + @ApiResponses({ + @ApiResponse(code = HttpStatus.SC_OK, message = SUCCESSFUL_OPERATION), + @ApiResponse(code = HttpStatus.SC_NOT_FOUND, message = CLUSTER_NOT_FOUND), + @ApiResponse(code = HttpStatus.SC_UNAUTHORIZED, message = NOT_AUTHENTICATED), + @ApiResponse(code = HttpStatus.SC_FORBIDDEN, message = PERMISSION_DENIED), + @ApiResponse(code = HttpStatus.SC_INTERNAL_SERVER_ERROR, message = SERVER_ERROR), + }) public Response getHosts(String body, @Context HttpHeaders headers, @Context UriInfo ui) { return handleRequest(headers, body, ui, Request.Type.GET, - createHostResource(m_clusterName, null, ui)); + createHostResource(m_clusterName, null)); } /** @@ -109,10 +151,23 @@ public class HostService extends BaseService { */ @POST @Produces("text/plain") + @ApiOperation(value = "Creates multiple hosts in a single request") + @ApiImplicitParams({ + @ApiImplicitParam(dataType = HOST_REQUEST_TYPE, paramType = "body", allowMultiple = true) + }) + @ApiResponses({ + @ApiResponse(code = HttpStatus.SC_CREATED, message = SUCCESSFUL_OPERATION), + @ApiResponse(code = HttpStatus.SC_ACCEPTED, message = REQUEST_ACCEPTED), + @ApiResponse(code = HttpStatus.SC_BAD_REQUEST, message = UNKNOWN_HOSTS), + @ApiResponse(code = HttpStatus.SC_NOT_FOUND, message = CLUSTER_NOT_FOUND), + @ApiResponse(code = HttpStatus.SC_CONFLICT, message = HOST_ALREADY_EXISTS), + @ApiResponse(code = HttpStatus.SC_UNAUTHORIZED, message = NOT_AUTHENTICATED), + @ApiResponse(code = HttpStatus.SC_FORBIDDEN, message = PERMISSION_DENIED), + @ApiResponse(code = HttpStatus.SC_INTERNAL_SERVER_ERROR, message = SERVER_ERROR), + }) public Response createHosts(String body, @Context HttpHeaders headers, @Context UriInfo ui) { - return handleRequest(headers, body, ui, Request.Type.POST, - createHostResource(m_clusterName, null, ui)); + createHostResource(m_clusterName, null)); } /** @@ -122,18 +177,32 @@ public class HostService extends BaseService { * @param body http body * @param headers http headers * @param ui uri info - * @param hostName host id + * @param hostName host name * * @return host resource representation */ @POST @Path("{hostName}") @Produces("text/plain") + @ApiOperation(value = "Creates a host") + @ApiImplicitParams({ + @ApiImplicitParam(dataType = HOST_REQUEST_TYPE, paramType = "body") + }) + @ApiResponses({ + @ApiResponse(code = HttpStatus.SC_CREATED, message = SUCCESSFUL_OPERATION), + @ApiResponse(code = HttpStatus.SC_ACCEPTED, message = REQUEST_ACCEPTED), + @ApiResponse(code = HttpStatus.SC_BAD_REQUEST, message = INVALID_ARGUMENTS), + @ApiResponse(code = HttpStatus.SC_NOT_FOUND, message = CLUSTER_NOT_FOUND), + @ApiResponse(code = HttpStatus.SC_CONFLICT, message = HOST_ALREADY_EXISTS), + @ApiResponse(code = HttpStatus.SC_UNAUTHORIZED, message = NOT_AUTHENTICATED), + @ApiResponse(code = HttpStatus.SC_FORBIDDEN, message = PERMISSION_DENIED), + @ApiResponse(code = HttpStatus.SC_INTERNAL_SERVER_ERROR, message = SERVER_ERROR), + }) public Response createHost(String body, @Context HttpHeaders headers, @Context UriInfo ui, - @PathParam("hostName") String hostName) { - + @ApiParam(value = "host name", required = true) @PathParam("hostName") String hostName + ) { return handleRequest(headers, body, ui, Request.Type.POST, - createHostResource(m_clusterName, hostName, ui)); + createHostResource(m_clusterName, hostName)); } /** @@ -143,18 +212,31 @@ public class HostService extends BaseService { * @param body http body * @param headers http headers * @param ui uri info - * @param hostName host id + * @param hostName host name * * @return information regarding updated host */ @PUT @Path("{hostName}") @Produces("text/plain") + @ApiOperation(value = "Updates a host") + @ApiImplicitParams({ + @ApiImplicitParam(dataType = HOST_REQUEST_TYPE, paramType = "body") + }) + @ApiResponses({ + @ApiResponse(code = HttpStatus.SC_OK, message = SUCCESSFUL_OPERATION), + @ApiResponse(code = HttpStatus.SC_ACCEPTED, message = REQUEST_ACCEPTED), + @ApiResponse(code = HttpStatus.SC_BAD_REQUEST, message = INVALID_ARGUMENTS), + @ApiResponse(code = HttpStatus.SC_NOT_FOUND, message = CLUSTER_OR_HOST_NOT_FOUND), + @ApiResponse(code = HttpStatus.SC_UNAUTHORIZED, message = NOT_AUTHENTICATED), + @ApiResponse(code = HttpStatus.SC_FORBIDDEN, message = PERMISSION_DENIED), + @ApiResponse(code = HttpStatus.SC_INTERNAL_SERVER_ERROR, message = SERVER_ERROR), + }) public Response updateHost(String body, @Context HttpHeaders headers, @Context UriInfo ui, - @PathParam("hostName") String hostName) { - + @ApiParam(value = "host name", required = true) @PathParam("hostName") String hostName + ) { return handleRequest(headers, body, ui, Request.Type.PUT, - createHostResource(m_clusterName, hostName, ui)); + createHostResource(m_clusterName, hostName)); } /** @@ -169,10 +251,22 @@ public class HostService extends BaseService { */ @PUT @Produces("text/plain") + @ApiOperation(value = "Updates multiple hosts in a single request") + @ApiImplicitParams({ + @ApiImplicitParam(dataType = HOST_REQUEST_TYPE, paramType = "body", allowMultiple = true) + }) + @ApiResponses({ + @ApiResponse(code = HttpStatus.SC_OK, message = SUCCESSFUL_OPERATION), + @ApiResponse(code = HttpStatus.SC_ACCEPTED, message = REQUEST_ACCEPTED), + @ApiResponse(code = HttpStatus.SC_BAD_REQUEST, message = INVALID_ARGUMENTS), + @ApiResponse(code = HttpStatus.SC_NOT_FOUND, message = CLUSTER_OR_HOST_NOT_FOUND), + @ApiResponse(code = HttpStatus.SC_UNAUTHORIZED, message = NOT_AUTHENTICATED), + @ApiResponse(code = HttpStatus.SC_FORBIDDEN, message = PERMISSION_DENIED), + @ApiResponse(code = HttpStatus.SC_INTERNAL_SERVER_ERROR, message = SERVER_ERROR), + }) public Response updateHosts(String body, @Context HttpHeaders headers, @Context UriInfo ui) { - return handleRequest(headers, body, ui, Request.Type.PUT, - createHostResource(m_clusterName, null, ui)); + createHostResource(m_clusterName, null)); } /** @@ -181,32 +275,50 @@ public class HostService extends BaseService { * * @param headers http headers * @param ui uri info - * @param hostName host id + * @param hostName host name * * @return host resource representation */ @DELETE @Path("{hostName}") @Produces("text/plain") + @ApiOperation(value = "Deletes a host") + @ApiResponses({ + @ApiResponse(code = HttpStatus.SC_OK, message = SUCCESSFUL_OPERATION), + @ApiResponse(code = HttpStatus.SC_NOT_FOUND, message = CLUSTER_OR_HOST_NOT_FOUND), + @ApiResponse(code = HttpStatus.SC_UNAUTHORIZED, message = NOT_AUTHENTICATED), + @ApiResponse(code = HttpStatus.SC_FORBIDDEN, message = PERMISSION_DENIED), + @ApiResponse(code = HttpStatus.SC_INTERNAL_SERVER_ERROR, message = SERVER_ERROR), + }) public Response deleteHost(@Context HttpHeaders headers, @Context UriInfo ui, - @PathParam("hostName") String hostName) { - + @ApiParam(value = "host name", required = true) @PathParam("hostName") String hostName + ) { return handleRequest(headers, null, ui, Request.Type.DELETE, - createHostResource(m_clusterName, hostName, ui)); + createHostResource(m_clusterName, hostName)); } @DELETE @Produces("text/plain") + @ApiOperation(value = "Deletes multiple hosts in a single request") + @ApiImplicitParams({ + @ApiImplicitParam(dataType = HOST_REQUEST_TYPE, paramType = "body", allowMultiple = true) + }) + @ApiResponses({ + @ApiResponse(code = HttpStatus.SC_OK, message = SUCCESSFUL_OPERATION), + @ApiResponse(code = HttpStatus.SC_NOT_FOUND, message = CLUSTER_OR_HOST_NOT_FOUND), + @ApiResponse(code = HttpStatus.SC_UNAUTHORIZED, message = NOT_AUTHENTICATED), + @ApiResponse(code = HttpStatus.SC_FORBIDDEN, message = PERMISSION_DENIED), + @ApiResponse(code = HttpStatus.SC_INTERNAL_SERVER_ERROR, message = SERVER_ERROR), + }) public Response deleteHosts(String body, @Context HttpHeaders headers, @Context UriInfo ui) { - return handleRequest(headers, body, ui, Request.Type.DELETE, - createHostResource(m_clusterName, null, ui)); + createHostResource(m_clusterName, null)); } /** * Get the host_components sub-resource. * - * @param hostName host id + * @param hostName host name * @return the host_components service */ @Path("{hostName}/host_components") @@ -217,7 +329,7 @@ public class HostService extends BaseService { /** * Get the kerberos_identities sub-resource. * - * @param hostName host id + * @param hostName host name * @return the host_components service */ @Path("{hostName}/kerberos_identities") @@ -228,7 +340,7 @@ public class HostService extends BaseService { /** * Get the alerts sub-resource. * - * @param hostName host id + * @param hostName host name * @return the alerts service */ @Path("{hostName}/alerts") @@ -239,11 +351,8 @@ public class HostService extends BaseService { /** * Gets the alert history service * - * @param request - * the request - * @param hostName - * the host name - * + * @param request the request + * @param hostName the host name * @return the alert history service */ @Path("{hostName}/alert_history") @@ -257,11 +366,8 @@ public class HostService extends BaseService { /** * Gets the host stack versions service. * - * @param request - * the request - * @param hostName - * the host name - * + * @param request the request + * @param hostName the host name * @return the host stack versions service */ @Path("{hostName}/stack_versions") @@ -274,15 +380,11 @@ public class HostService extends BaseService { /** * Create a service resource instance. * - * - * * @param clusterName cluster * @param hostName host name - * @param ui uri information - * * @return a host resource instance */ - ResourceInstance createHostResource(String clusterName, String hostName, UriInfo ui) { + protected ResourceInstance createHostResource(String clusterName, String hostName) { Map mapIds = new HashMap<>(); mapIds.put(Resource.Type.Host, hostName); if (clusterName != null) { http://git-wip-us.apache.org/repos/asf/ambari/blob/0e13b018/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/HostEventCreator.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/HostEventCreator.java b/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/HostEventCreator.java index d05fe9d..eec7a3a 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/HostEventCreator.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/HostEventCreator.java @@ -59,7 +59,7 @@ public class HostEventCreator implements RequestAuditEventCreator { /** * Pattern to retrieve hostname from url */ - private static final Pattern HOSTNAME_PATTERN = Pattern.compile(".*" + HostResourceProvider.HOST_NAME_PROPERTY_ID + "\\s*=\\s*([^&\\s]+).*"); + private static final Pattern HOSTNAME_PATTERN = Pattern.compile(".*" + HostResourceProvider.HOST_HOST_NAME_PROPERTY_ID + "\\s*=\\s*([^&\\s]+).*"); /** * {@inheritDoc} @@ -109,7 +109,7 @@ public class HostEventCreator implements RequestAuditEventCreator { .withResultStatus(result.getStatus()) .withUrl(request.getURI()) .withRemoteIp(request.getRemoteAddress()) - .withHostName(RequestAuditEventCreatorHelper.getNamedProperty(request, HostResourceProvider.HOST_NAME_PROPERTY_ID)) + .withHostName(RequestAuditEventCreatorHelper.getNamedProperty(request, HostResourceProvider.HOST_HOST_NAME_PROPERTY_ID)) .build(); case QUERY_POST: return AddComponentToHostRequestAuditEvent.builder() http://git-wip-us.apache.org/repos/asf/ambari/blob/0e13b018/ambari-server/src/main/java/org/apache/ambari/server/controller/HostRequest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/HostRequest.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/HostRequest.java index a616839..98fd37d 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/HostRequest.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/HostRequest.java @@ -19,28 +19,28 @@ package org.apache.ambari.server.controller; import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -public class HostRequest { +import org.apache.ambari.server.controller.internal.HostResourceProvider; + +import io.swagger.annotations.ApiModelProperty; + +public class HostRequest implements ApiModel { private String hostname; private String publicHostname; private String clusterName; // CREATE/UPDATE - private Map hostAttributes; // CREATE/UPDATE private String rackInfo; private List desiredConfigs; // UPDATE private String maintenanceState; // UPDATE private String blueprint; - private String hostgroup; - private String hostToClone; + private String hostGroup; - public HostRequest(String hostname, String clusterName, Map hostAttributes) { + public HostRequest(String hostname, String clusterName) { this.hostname = hostname; this.clusterName = clusterName; - this.hostAttributes = hostAttributes; } + @ApiModelProperty(name = HostResourceProvider.HOST_NAME_PROPERTY_ID) public String getHostname() { return hostname; } @@ -49,6 +49,7 @@ public class HostRequest { this.hostname = hostname; } + @ApiModelProperty(hidden = true) public String getClusterName() { return clusterName; } @@ -57,14 +58,7 @@ public class HostRequest { this.clusterName = clusterName; } - public Map getHostAttributes() { - return hostAttributes; - } - - public void setHostAttributes(Map hostAttributes) { - this.hostAttributes = hostAttributes; - } - + @ApiModelProperty(name = HostResourceProvider.RACK_INFO_PROPERTY_ID) public String getRackInfo() { return rackInfo; } @@ -72,7 +66,8 @@ public class HostRequest { public void setRackInfo(String info) { rackInfo = info; } - + + @ApiModelProperty(name = HostResourceProvider.PUBLIC_NAME_PROPERTY_ID) public String getPublicHostName() { return publicHostname; } @@ -84,15 +79,17 @@ public class HostRequest { public void setDesiredConfigs(List request) { desiredConfigs = request; } - + + @ApiModelProperty(name = HostResourceProvider.DESIRED_CONFIGS_PROPERTY_ID) public List getDesiredConfigs() { return desiredConfigs; } - + public void setMaintenanceState(String state) { maintenanceState = state; } - + + @ApiModelProperty(name = HostResourceProvider.MAINTENANCE_STATE_PROPERTY_ID) public String getMaintenanceState() { return maintenanceState; } @@ -101,44 +98,21 @@ public class HostRequest { blueprint = blueprintName; } + @ApiModelProperty(name = HostResourceProvider.BLUEPRINT_PROPERTY_ID) public String getBlueprintName() { return blueprint; } - public void setHostGroupName(String hostgroupName) { - hostgroup = hostgroupName; + public void setHostGroupName(String hostGroupName) { + hostGroup = hostGroupName; } + @ApiModelProperty(name = HostResourceProvider.HOST_GROUP_PROPERTY_ID) public String getHostGroupName() { - return hostgroup; - } - - public void setHostToClone(String hostname) { - hostToClone = hostname; - } - - public String getHostToClone() { - return hostToClone; + return hostGroup; } public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("{ hostname=").append(hostname).append(", clusterName=").append(clusterName); - if (hostAttributes != null) { - sb.append(", hostAttributes=["); - int i = 0; - for (Entry attr : hostAttributes.entrySet()) { - if (i != 0) { - sb.append(","); - } - ++i; - sb.append(attr.getKey()); - sb.append("="); - sb.append(attr.getValue()); - } - sb.append(']'); - } - sb.append(" }"); - return sb.toString(); + return "{ hostname=" + hostname + ", clusterName=" + clusterName + " }"; } } http://git-wip-us.apache.org/repos/asf/ambari/blob/0e13b018/ambari-server/src/main/java/org/apache/ambari/server/controller/HostResponse.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/HostResponse.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/HostResponse.java index 8032801..2479514 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/HostResponse.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/HostResponse.java @@ -22,16 +22,20 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Objects; import org.apache.ambari.server.agent.AgentEnv; import org.apache.ambari.server.agent.DiskInfo; import org.apache.ambari.server.agent.RecoveryReport; +import org.apache.ambari.server.controller.internal.HostResourceProvider; import org.apache.ambari.server.state.AgentVersion; -import org.apache.ambari.server.state.DesiredConfig; import org.apache.ambari.server.state.HostConfig; import org.apache.ambari.server.state.HostHealthStatus; +import org.apache.ambari.server.state.HostState; import org.apache.ambari.server.state.MaintenanceState; +import io.swagger.annotations.ApiModelProperty; + public class HostResponse { private String hostname; @@ -44,42 +48,28 @@ public class HostResponse { private String ipv4; /** - * Host IP if ipv6 interface available - */ - private String ipv6; - - /** * Count of cores on Host */ - private int cpuCount; + private long cpuCount; /** * Count of physical cores on Host */ - private int phCpuCount; - - + private long phCpuCount; + /** * Os Architecture */ private String osArch; + private String osFamily; + /** * OS Type */ private String osType; /** - * OS Information - */ - private String osInfo; - - /** - * Amount of available memory for the Host - */ - private long availableMemBytes; - - /** * Amount of physical memory for the Host */ private long totalMemBytes; @@ -137,14 +127,12 @@ public class HostResponse { /** * Public name. */ - private String publicHostname = null; + private String publicHostname; /** * Host State */ - private String hostState; - - private Map desiredConfigs; + private HostState hostState; /** * Configs derived from Config groups @@ -156,25 +144,22 @@ public class HostResponse { */ private String status; - private MaintenanceState maintenanceState = null; + private MaintenanceState maintenanceState; public HostResponse(String hostname, String clusterName, - String ipv4, String ipv6, int cpuCount, int phCpuCount, String osArch, String osType, - String osInfo, long availableMemBytes, long totalMemBytes, + String ipv4, int cpuCount, int phCpuCount, String osArch, String osType, + long totalMemBytes, List disksInfo, long lastHeartbeatTime, long lastRegistrationTime, String rackInfo, Map hostAttributes, AgentVersion agentVersion, - HostHealthStatus healthStatus, String hostState, String status) { + HostHealthStatus healthStatus, HostState hostState, String status) { this.hostname = hostname; this.clusterName = clusterName; this.ipv4 = ipv4; - this.ipv6 = ipv6; this.cpuCount = cpuCount; this.phCpuCount = phCpuCount; this.osArch = osArch; this.osType = osType; - this.osInfo = osInfo; - this.availableMemBytes = availableMemBytes; this.totalMemBytes = totalMemBytes; this.disksInfo = disksInfo; this.lastHeartbeatTime = lastHeartbeatTime; @@ -183,37 +168,30 @@ public class HostResponse { this.hostAttributes = hostAttributes; this.agentVersion = agentVersion; this.healthStatus = healthStatus; - this.setHostState(hostState); + this.hostState = hostState; this.status = status; } //todo: why are we passing in empty strings for host/cluster name instead of null? public HostResponse(String hostname) { - this(hostname, "", "", "", - 0, 0, "", "", - "", 0, 0, new ArrayList(), + this(hostname, "", "", + 0, 0, "", "", + 0, new ArrayList(), 0, 0, "", new HashMap(), null, null, null, null); } - /** - * @return the hostname - */ + @ApiModelProperty(name = HostResourceProvider.HOST_NAME_PROPERTY_ID) public String getHostname() { return hostname; } - /** - * @param hostname the hostname to set - */ public void setHostname(String hostname) { this.hostname = hostname; } - /** - * @return the clusterNames - */ + @ApiModelProperty(name = HostResourceProvider.CLUSTER_NAME_PROPERTY_ID) public String getClusterName() { return clusterName; } @@ -225,300 +203,175 @@ public class HostResponse { this.clusterName = clusterName; } - /** - * @return the ipv4 - */ + @ApiModelProperty(name = HostResourceProvider.IP_PROPERTY_ID) public String getIpv4() { return ipv4; } - /** - * @param ipv4 the ipv4 to set - */ public void setIpv4(String ipv4) { this.ipv4 = ipv4; } - /** - * @return the ipv6 - */ - public String getIpv6() { - return ipv6; - } - - /** - * @param ipv6 the ipv6 to set - */ - public void setIpv6(String ipv6) { - this.ipv6 = ipv6; - } - - /** - * @return the cpuCount - */ - public int getCpuCount() { + @ApiModelProperty(name = HostResourceProvider.CPU_COUNT_PROPERTY_ID) + public long getCpuCount() { return cpuCount; } - /** - * @param cpuCount the cpuCount to set - */ - public void setCpuCount(int cpuCount) { + public void setCpuCount(long cpuCount) { this.cpuCount = cpuCount; } - /** - * @return the phCpuCount - */ - public int getPhCpuCount() { + @ApiModelProperty(name = HostResourceProvider.PHYSICAL_CPU_COUNT_PROPERTY_ID) + public long getPhCpuCount() { return phCpuCount; } - /** - * @param phCpuCount the physical cpu count to set - */ - public void setPhCpuCount(int phCpuCount) { + public void setPhCpuCount(long phCpuCount) { this.phCpuCount = phCpuCount; } - - - /** - * @return the osArch - */ + @ApiModelProperty(name = HostResourceProvider.OS_ARCH_PROPERTY_ID) public String getOsArch() { return osArch; } - /** - * @param osArch the osArch to set - */ public void setOsArch(String osArch) { this.osArch = osArch; } - /** - * @return the osType - */ - public String getOsType() { - return osType; + @ApiModelProperty(name = HostResourceProvider.OS_FAMILY_PROPERTY_ID) + public String getOsFamily() { + return osFamily; } - /** - * @param osType the osType to set - */ - public void setOsType(String osType) { - this.osType = osType; + public void setOsFamily(String osFamily) { + this.osFamily = osFamily; } - /** - * @return the osInfo - */ - public String getOsInfo() { - return osInfo; - } - - /** - * @param osInfo the osInfo to set - */ - public void setOsInfo(String osInfo) { - this.osInfo = osInfo; - } - - /** - * @return the availableMemBytes - */ - public long getAvailableMemBytes() { - return availableMemBytes; + @ApiModelProperty(name = HostResourceProvider.OS_TYPE_PROPERTY_ID) + public String getOsType() { + return osType; } - /** - * @param availableMemBytes the availableMemBytes to set - */ - public void setAvailableMemBytes(long availableMemBytes) { - this.availableMemBytes = availableMemBytes; + public void setOsType(String osType) { + this.osType = osType; } - /** - * @return the totalMemBytes - */ + @ApiModelProperty(name = HostResourceProvider.TOTAL_MEM_PROPERTY_ID) public long getTotalMemBytes() { return totalMemBytes; } - /** - * @param totalMemBytes the totalMemBytes to set - */ public void setTotalMemBytes(long totalMemBytes) { this.totalMemBytes = totalMemBytes; } - /** - * @return the disksInfo - */ + @ApiModelProperty(name = HostResourceProvider.DISK_INFO_PROPERTY_ID) public List getDisksInfo() { return disksInfo; } - /** - * @param disksInfo the disksInfo to set - */ public void setDisksInfo(List disksInfo) { this.disksInfo = disksInfo; } - /** - * @return the lastHeartbeatTime - */ + @ApiModelProperty(name = HostResourceProvider.LAST_HEARTBEAT_TIME_PROPERTY_ID) public long getLastHeartbeatTime() { return lastHeartbeatTime; } - /** - * @param lastHeartbeatTime the lastHeartbeatTime to set - */ public void setLastHeartbeatTime(long lastHeartbeatTime) { this.lastHeartbeatTime = lastHeartbeatTime; } - /** - * @return the lastRegistrationTime - */ + @ApiModelProperty(name = HostResourceProvider.LAST_REGISTRATION_TIME_PROPERTY_ID) public long getLastRegistrationTime() { return lastRegistrationTime; } - /** - * @param lastRegistrationTime the lastRegistrationTime to set - */ public void setLastRegistrationTime(long lastRegistrationTime) { this.lastRegistrationTime = lastRegistrationTime; } - /** - * @return the rackInfo - */ + @ApiModelProperty(name = HostResourceProvider.RACK_INFO_PROPERTY_ID) public String getRackInfo() { return rackInfo; } - /** - * @param rackInfo the rackInfo to set - */ public void setRackInfo(String rackInfo) { this.rackInfo = rackInfo; } - /** - * @return the hostAttributes - */ + @ApiModelProperty(hidden = true) public Map getHostAttributes() { return hostAttributes; } - /** - * @param hostAttributes the hostAttributes to set - */ public void setHostAttributes(Map hostAttributes) { this.hostAttributes = hostAttributes; } - /** - * @return the agentVersion - */ + @ApiModelProperty(hidden = true) public AgentVersion getAgentVersion() { return agentVersion; } - /** - * @param agentVersion the agentVersion to set - */ public void setAgentVersion(AgentVersion agentVersion) { this.agentVersion = agentVersion; } - /** - * @return the healthStatus - */ - public HostHealthStatus getHealthStatus() { - return healthStatus; + @ApiModelProperty(name = HostResourceProvider.HOST_HEALTH_REPORT_PROPERTY_ID) + public String getHealthReport() { + return healthStatus.getHealthReport(); } - /** - * @param healthStatus the healthStatus to set - */ public void setHealthStatus(HostHealthStatus healthStatus) { this.healthStatus = healthStatus; } - - @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; - HostResponse that = (HostResponse) o; - - if (hostname != null ? - !hostname.equals(that.hostname) : that.hostname != null) { - return false; - } + HostResponse other = (HostResponse) o; - return true; + return Objects.equals(hostname, other.hostname); } @Override public int hashCode() { - int result = hostname != null ? hostname.hashCode() : 0; - return result; + return Objects.hashCode(hostname); } + @ApiModelProperty(name = HostResourceProvider.PUBLIC_NAME_PROPERTY_ID) public String getPublicHostName() { return publicHostname; } - + public void setPublicHostName(String name) { publicHostname = name; } - /** - * @return the hostState - */ - public String getHostState() { + @ApiModelProperty(name = HostResourceProvider.STATE_PROPERTY_ID) + public HostState getHostState() { return hostState; } - /** - * @param hostState the hostState to set - */ - public void setHostState(String hostState) { + public void setHostState(HostState hostState) { this.hostState = hostState; } - + @ApiModelProperty(name = HostResourceProvider.LAST_AGENT_ENV_PROPERTY_ID) public AgentEnv getLastAgentEnv() { return lastAgentEnv; } - /** - * @param agentEnv - */ public void setLastAgentEnv(AgentEnv agentEnv) { lastAgentEnv = agentEnv; } - /** - * @param desired - */ - public void setDesiredConfigs(Map desired) { - desiredConfigs = desired; - } - - public Map getDesiredConfigs() { - return desiredConfigs; - } - + @ApiModelProperty(name = HostResourceProvider.DESIRED_CONFIGS_PROPERTY_ID) public Map getDesiredHostConfigs() { return desiredHostConfigs; } @@ -527,6 +380,7 @@ public class HostResponse { this.desiredHostConfigs = desiredHostConfigs; } + @ApiModelProperty(name = HostResourceProvider.HOST_STATUS_PROPERTY_ID) public String getStatus() { return status; } @@ -535,31 +389,25 @@ public class HostResponse { this.status = status; } - /** - * @param state the maintenance state - */ public void setMaintenanceState(MaintenanceState state) { maintenanceState = state; } - /** - * @return the maintenance state - */ + @ApiModelProperty(name = HostResourceProvider.MAINTENANCE_STATE_PROPERTY_ID) public MaintenanceState getMaintenanceState() { return maintenanceState; } /** * Get the recovery summary for the host - * @return */ + @ApiModelProperty(name = HostResourceProvider.RECOVERY_SUMMARY_PROPERTY_ID) public String getRecoverySummary() { return recoverySummary; } /** * Set the recovery summary for the host - * @return */ public void setRecoverySummary(String recoverySummary) { this.recoverySummary = recoverySummary; @@ -567,17 +415,22 @@ public class HostResponse { /** * Get the detailed recovery report - * @return */ + @ApiModelProperty(name = HostResourceProvider.RECOVERY_REPORT_PROPERTY_ID) public RecoveryReport getRecoveryReport() { return recoveryReport; } /** * Set the detailed recovery report - * @param recoveryReport */ public void setRecoveryReport(RecoveryReport recoveryReport) { this.recoveryReport = recoveryReport; } + + public interface Wrapper extends ApiModel { + @ApiModelProperty(name = HostResourceProvider.RESPONSE_KEY) + @SuppressWarnings("unused") + HostResponse getHostResponse(); + } } http://git-wip-us.apache.org/repos/asf/ambari/blob/0e13b018/ambari-server/src/main/java/org/apache/ambari/server/controller/RootServiceResponseFactory.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/RootServiceResponseFactory.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/RootServiceResponseFactory.java index 40fe369..2ceb769 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/RootServiceResponseFactory.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/RootServiceResponseFactory.java @@ -223,7 +223,7 @@ public class RootServiceResponseFactory extends RUNNING_STATE, getComponentVersion(component.getComponentName(), host), component.getProperties())); else response.add(new RootServiceHostComponentResponse(host.getHostname(), component.getComponentName(), - host.getHostState(), getComponentVersion(component.getComponentName(), host), component.getProperties())); + host.getHostState().toString(), getComponentVersion(component.getComponentName(), host), component.getProperties())); } } http://git-wip-us.apache.org/repos/asf/ambari/blob/0e13b018/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostResourceProvider.java index f604a7f..8a78911 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostResourceProvider.java @@ -39,7 +39,6 @@ import org.apache.ambari.server.controller.AmbariManagementController; import org.apache.ambari.server.controller.ConfigurationRequest; import org.apache.ambari.server.controller.HostRequest; import org.apache.ambari.server.controller.HostResponse; -import org.apache.ambari.server.controller.MaintenanceStateHelper; import org.apache.ambari.server.controller.RequestStatusResponse; import org.apache.ambari.server.controller.ServiceComponentHostRequest; import org.apache.ambari.server.controller.spi.NoSuchParentResourceException; @@ -88,78 +87,67 @@ public class HostResourceProvider extends AbstractControllerResourceProvider { // ----- Property ID constants --------------------------------------------- // Hosts - public static final String HOST_CLUSTER_NAME_PROPERTY_ID = - PropertyHelper.getPropertyId("Hosts", "cluster_name"); - public static final String HOST_NAME_PROPERTY_ID = - PropertyHelper.getPropertyId("Hosts", "host_name"); - public static final String HOST_PUBLIC_NAME_PROPERTY_ID = - PropertyHelper.getPropertyId("Hosts", "public_host_name"); - public static final String HOST_IP_PROPERTY_ID = - PropertyHelper.getPropertyId("Hosts", "ip"); - public static final String HOST_TOTAL_MEM_PROPERTY_ID = - PropertyHelper.getPropertyId("Hosts", "total_mem"); - public static final String HOST_CPU_COUNT_PROPERTY_ID = - PropertyHelper.getPropertyId("Hosts", "cpu_count"); - public static final String HOST_PHYSICAL_CPU_COUNT_PROPERTY_ID = - PropertyHelper.getPropertyId("Hosts", "ph_cpu_count"); - public static final String HOST_OS_ARCH_PROPERTY_ID = - PropertyHelper.getPropertyId("Hosts", "os_arch"); - public static final String HOST_OS_TYPE_PROPERTY_ID = - PropertyHelper.getPropertyId("Hosts", "os_type"); - public static final String HOST_OS_FAMILY_PROPERTY_ID = - PropertyHelper.getPropertyId("Hosts", "os_family"); - public static final String HOST_RACK_INFO_PROPERTY_ID = - PropertyHelper.getPropertyId("Hosts", "rack_info"); - public static final String HOST_LAST_HEARTBEAT_TIME_PROPERTY_ID = - PropertyHelper.getPropertyId("Hosts", "last_heartbeat_time"); - public static final String HOST_LAST_REGISTRATION_TIME_PROPERTY_ID = - PropertyHelper.getPropertyId("Hosts", "last_registration_time"); - public static final String HOST_DISK_INFO_PROPERTY_ID = - PropertyHelper.getPropertyId("Hosts", "disk_info"); - - - public static final String HOST_HOST_STATUS_PROPERTY_ID = - PropertyHelper.getPropertyId("Hosts", "host_status"); - public static final String HOST_MAINTENANCE_STATE_PROPERTY_ID = - PropertyHelper.getPropertyId("Hosts", "maintenance_state"); - - public static final String HOST_HOST_HEALTH_REPORT_PROPERTY_ID = - PropertyHelper.getPropertyId("Hosts", "host_health_report"); - public static final String HOST_RECOVERY_REPORT_PROPERTY_ID = - PropertyHelper.getPropertyId("Hosts", "recovery_report"); - public static final String HOST_RECOVERY_SUMMARY_PROPERTY_ID = - PropertyHelper.getPropertyId("Hosts", "recovery_summary"); - public static final String HOST_STATE_PROPERTY_ID = - PropertyHelper.getPropertyId("Hosts", "host_state"); - public static final String HOST_LAST_AGENT_ENV_PROPERTY_ID = - PropertyHelper.getPropertyId("Hosts", "last_agent_env"); - public static final String HOST_DESIRED_CONFIGS_PROPERTY_ID = - PropertyHelper.getPropertyId("Hosts", "desired_configs"); - - public static final String BLUEPRINT_PROPERTY_ID = - PropertyHelper.getPropertyId(null, "blueprint"); - public static final String HOSTGROUP_PROPERTY_ID = - PropertyHelper.getPropertyId(null, "host_group"); - public static final String HOST_NAME_NO_CATEGORY_PROPERTY_ID = - PropertyHelper.getPropertyId(null, "host_name"); - public static final String HOST_COUNT_PROPERTY_ID = - PropertyHelper.getPropertyId(null, "host_count"); - public static final String HOST_PREDICATE_PROPERTY_ID = - PropertyHelper.getPropertyId(null, "host_predicate"); + public static final String RESPONSE_KEY = "Hosts"; + + public static final String CLUSTER_NAME_PROPERTY_ID = "cluster_name"; + public static final String CPU_COUNT_PROPERTY_ID = "cpu_count"; + public static final String DESIRED_CONFIGS_PROPERTY_ID = "desired_configs"; + public static final String DISK_INFO_PROPERTY_ID = "disk_info"; + public static final String HOST_HEALTH_REPORT_PROPERTY_ID = "host_health_report"; + public static final String HOST_NAME_PROPERTY_ID = "host_name"; + public static final String HOST_STATUS_PROPERTY_ID = "host_status"; + public static final String IP_PROPERTY_ID = "ip"; + public static final String LAST_AGENT_ENV_PROPERTY_ID = "last_agent_env"; + public static final String LAST_HEARTBEAT_TIME_PROPERTY_ID = "last_heartbeat_time"; + public static final String LAST_REGISTRATION_TIME_PROPERTY_ID = "last_registration_time"; + public static final String MAINTENANCE_STATE_PROPERTY_ID = "maintenance_state"; + public static final String OS_ARCH_PROPERTY_ID = "os_arch"; + public static final String OS_FAMILY_PROPERTY_ID = "os_family"; + public static final String OS_TYPE_PROPERTY_ID = "os_type"; + public static final String PHYSICAL_CPU_COUNT_PROPERTY_ID = "ph_cpu_count"; + public static final String PUBLIC_NAME_PROPERTY_ID = "public_host_name"; + public static final String RACK_INFO_PROPERTY_ID = "rack_info"; + public static final String RECOVERY_REPORT_PROPERTY_ID = "recovery_report"; + public static final String RECOVERY_SUMMARY_PROPERTY_ID = "recovery_summary"; + public static final String STATE_PROPERTY_ID = "host_state"; + public static final String TOTAL_MEM_PROPERTY_ID = "total_mem"; + + public static final String HOST_CLUSTER_NAME_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + CLUSTER_NAME_PROPERTY_ID; + public static final String HOST_CPU_COUNT_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + CPU_COUNT_PROPERTY_ID; + public static final String HOST_DESIRED_CONFIGS_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + DESIRED_CONFIGS_PROPERTY_ID; + public static final String HOST_DISK_INFO_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + DISK_INFO_PROPERTY_ID; + public static final String HOST_HOST_HEALTH_REPORT_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + HOST_HEALTH_REPORT_PROPERTY_ID; + public static final String HOST_HOST_STATUS_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + HOST_STATUS_PROPERTY_ID; + public static final String HOST_IP_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + IP_PROPERTY_ID; + public static final String HOST_LAST_AGENT_ENV_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + LAST_AGENT_ENV_PROPERTY_ID; + public static final String HOST_LAST_HEARTBEAT_TIME_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + LAST_HEARTBEAT_TIME_PROPERTY_ID; + public static final String HOST_LAST_REGISTRATION_TIME_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + LAST_REGISTRATION_TIME_PROPERTY_ID; + public static final String HOST_MAINTENANCE_STATE_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + MAINTENANCE_STATE_PROPERTY_ID; + public static final String HOST_HOST_NAME_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + HOST_NAME_PROPERTY_ID; + public static final String HOST_OS_ARCH_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + OS_ARCH_PROPERTY_ID; + public static final String HOST_OS_FAMILY_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + OS_FAMILY_PROPERTY_ID; + public static final String HOST_OS_TYPE_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + OS_TYPE_PROPERTY_ID; + public static final String HOST_PHYSICAL_CPU_COUNT_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + PHYSICAL_CPU_COUNT_PROPERTY_ID; + public static final String HOST_PUBLIC_NAME_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + PUBLIC_NAME_PROPERTY_ID; + public static final String HOST_RACK_INFO_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + RACK_INFO_PROPERTY_ID; + public static final String HOST_RECOVERY_REPORT_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + RECOVERY_REPORT_PROPERTY_ID; + public static final String HOST_RECOVERY_SUMMARY_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + RECOVERY_SUMMARY_PROPERTY_ID; + public static final String HOST_STATE_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + STATE_PROPERTY_ID; + public static final String HOST_TOTAL_MEM_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + TOTAL_MEM_PROPERTY_ID; + + public static final String BLUEPRINT_PROPERTY_ID = "blueprint"; + public static final String HOST_GROUP_PROPERTY_ID = "host_group"; + public static final String HOST_COUNT_PROPERTY_ID = "host_count"; + public static final String HOST_PREDICATE_PROPERTY_ID = "host_predicate"; //todo use the same json structure for cluster host addition (cluster template and upscale) - public static final String HOST_RACK_INFO_NO_CATEGORY_PROPERTY_ID = - PropertyHelper.getPropertyId(null, "rack_info"); protected static final String FORCE_DELETE_COMPONENTS = "force_delete_components"; private static Set pkPropertyIds = new HashSet<>(Arrays.asList(new String[]{ - HOST_NAME_PROPERTY_ID})); - - @Inject - private MaintenanceStateHelper maintenanceStateHelper; + HOST_HOST_NAME_PROPERTY_ID})); @Inject private OsFamily osFamily; @@ -250,7 +238,7 @@ public class HostResourceProvider extends AbstractControllerResourceProvider { setResourceProperty(resource, HOST_CLUSTER_NAME_PROPERTY_ID, response.getClusterName(), requestedIds); } - setResourceProperty(resource, HOST_NAME_PROPERTY_ID, + setResourceProperty(resource, HOST_HOST_NAME_PROPERTY_ID, response.getHostname(), requestedIds); setResourceProperty(resource, HOST_PUBLIC_NAME_PROPERTY_ID, response.getPublicHostName(), requestedIds); @@ -259,22 +247,15 @@ public class HostResourceProvider extends AbstractControllerResourceProvider { setResourceProperty(resource, HOST_TOTAL_MEM_PROPERTY_ID, response.getTotalMemBytes(), requestedIds); setResourceProperty(resource, HOST_CPU_COUNT_PROPERTY_ID, - (long) response.getCpuCount(), requestedIds); + response.getCpuCount(), requestedIds); setResourceProperty(resource, HOST_PHYSICAL_CPU_COUNT_PROPERTY_ID, - (long) response.getPhCpuCount(), requestedIds); + response.getPhCpuCount(), requestedIds); setResourceProperty(resource, HOST_OS_ARCH_PROPERTY_ID, response.getOsArch(), requestedIds); setResourceProperty(resource, HOST_OS_TYPE_PROPERTY_ID, response.getOsType(), requestedIds); - - String hostOsFamily = osFamily.find(response.getOsType()); - if (hostOsFamily == null) { - LOG.error("Can not find host OS family. For OS type = '{}' and host name = '{}'", - response.getOsType(), response.getHostname()); - } setResourceProperty(resource, HOST_OS_FAMILY_PROPERTY_ID, - hostOsFamily, requestedIds); - + response.getOsFamily(), requestedIds); setResourceProperty(resource, HOST_RACK_INFO_PROPERTY_ID, response.getRackInfo(), requestedIds); setResourceProperty(resource, HOST_LAST_HEARTBEAT_TIME_PROPERTY_ID, @@ -286,7 +267,7 @@ public class HostResourceProvider extends AbstractControllerResourceProvider { setResourceProperty(resource, HOST_HOST_STATUS_PROPERTY_ID, response.getStatus(),requestedIds); setResourceProperty(resource, HOST_HOST_HEALTH_REPORT_PROPERTY_ID, - response.getHealthStatus().getHealthReport(), requestedIds); + response.getHealthReport(), requestedIds); setResourceProperty(resource, HOST_RECOVERY_REPORT_PROPERTY_ID, response.getRecoveryReport(), requestedIds); setResourceProperty(resource, HOST_RECOVERY_SUMMARY_PROPERTY_ID, @@ -363,12 +344,11 @@ public class HostResourceProvider extends AbstractControllerResourceProvider { Set baseUnsupported = super.checkPropertyIds(propertyIds); baseUnsupported.remove(BLUEPRINT_PROPERTY_ID); - baseUnsupported.remove(HOSTGROUP_PROPERTY_ID); - baseUnsupported.remove(HOST_NAME_NO_CATEGORY_PROPERTY_ID); - //todo: constants + baseUnsupported.remove(HOST_GROUP_PROPERTY_ID); + baseUnsupported.remove(HOST_NAME_PROPERTY_ID); baseUnsupported.remove(HOST_COUNT_PROPERTY_ID); baseUnsupported.remove(HOST_PREDICATE_PROPERTY_ID); - baseUnsupported.remove(HOST_RACK_INFO_NO_CATEGORY_PROPERTY_ID); + baseUnsupported.remove(RACK_INFO_PROPERTY_ID); return checkConfigPropertyIds(baseUnsupported, "Hosts"); } @@ -397,7 +377,7 @@ public class HostResourceProvider extends AbstractControllerResourceProvider { Set> properties = request.getProperties(); if (properties != null && ! properties.isEmpty()) { //todo: for now, either all or none of the hosts need to specify a hg. Unable to mix. - String hgName = (String) properties.iterator().next().get(HOSTGROUP_PROPERTY_ID); + String hgName = (String) properties.iterator().next().get(HOST_GROUP_PROPERTY_ID); isHostGroupRequest = hgName != null && ! hgName.isEmpty(); } return isHostGroupRequest; @@ -413,21 +393,21 @@ public class HostResourceProvider extends AbstractControllerResourceProvider { private HostRequest getRequest(Map properties) { if (properties == null) { - return new HostRequest(null, null, null); + return new HostRequest(null, null); } HostRequest hostRequest = new HostRequest( getHostNameFromProperties(properties), - (String) properties.get(HOST_CLUSTER_NAME_PROPERTY_ID), - null); + (String) properties.get(HOST_CLUSTER_NAME_PROPERTY_ID) + ); hostRequest.setPublicHostName((String) properties.get(HOST_PUBLIC_NAME_PROPERTY_ID)); String rackInfo = (String) ((null != properties.get(HOST_RACK_INFO_PROPERTY_ID))? properties.get(HOST_RACK_INFO_PROPERTY_ID): - properties.get(HOST_RACK_INFO_NO_CATEGORY_PROPERTY_ID)); + properties.get(RACK_INFO_PROPERTY_ID)); hostRequest.setRackInfo(rackInfo); hostRequest.setBlueprintName((String) properties.get(BLUEPRINT_PROPERTY_ID)); - hostRequest.setHostGroupName((String) properties.get(HOSTGROUP_PROPERTY_ID)); + hostRequest.setHostGroupName((String) properties.get(HOST_GROUP_PROPERTY_ID)); Object o = properties.get(HOST_MAINTENANCE_STATE_PROPERTY_ID); if (null != o) { @@ -446,7 +426,6 @@ public class HostResourceProvider extends AbstractControllerResourceProvider { * Accepts a request with registered hosts and if the request contains a cluster name then will map all of the * hosts onto that cluster. * @param request Request that must contain registered hosts, and optionally a cluster. - * @throws AmbariException */ public synchronized void createHosts(Request request) throws AmbariException { @@ -469,7 +448,7 @@ public class HostResourceProvider extends AbstractControllerResourceProvider { for (Map propertyMap : propertySet) { HostRequest hostRequest = getRequest(propertyMap); hostRequests.add(hostRequest); - if (! propertyMap.containsKey(HOSTGROUP_PROPERTY_ID)) { + if (! propertyMap.containsKey(HOST_GROUP_PROPERTY_ID)) { createHostResource(clusters, duplicates, unknowns, allHosts, hostRequest); } } @@ -518,9 +497,6 @@ public class HostResourceProvider extends AbstractControllerResourceProvider { clusterSet.add(hostRequest.getClusterName()); allClusterSet.add(hostRequest.getClusterName()); hostClustersMap.put(hostRequest.getHostname(), clusterSet); - if (hostRequest.getHostAttributes() != null) { - hostAttributes.put(hostRequest.getHostname(), hostRequest.getHostAttributes()); - } } } clusters.updateHostWithClusterAndAttributes(hostClustersMap, hostAttributes); @@ -603,7 +579,7 @@ public class HostResourceProvider extends AbstractControllerResourceProvider { for (HostRequest request : requests) { try { - response.addAll(getHosts(controller, request)); + response.addAll(getHosts(controller, request, osFamily)); } catch (HostNotFoundException e) { if (requests.size() == 1) { // only throw exception if 1 request. @@ -615,7 +591,10 @@ public class HostResourceProvider extends AbstractControllerResourceProvider { return response; } - protected static Set getHosts(AmbariManagementController controller, HostRequest request) + /** + * @param osFamily provides OS to OS family lookup; may be null if OS family is ignored anyway (eg. for liveness check) + */ + protected static Set getHosts(AmbariManagementController controller, HostRequest request, OsFamily osFamily) throws AmbariException { //TODO/FIXME host can only belong to a single cluster so get host directly from Cluster @@ -665,6 +644,13 @@ public class HostResourceProvider extends AbstractControllerResourceProvider { r.setClusterName(clusterName); r.setDesiredHostConfigs(h.getDesiredHostConfigs(cluster, desiredConfigs)); r.setMaintenanceState(h.getMaintenanceState(cluster.getClusterId())); + if (osFamily != null) { + String hostOsFamily = osFamily.find(r.getOsType()); + if (hostOsFamily == null) { + LOG.error("Can not find host OS family. For OS type = '{}' and host name = '{}'", r.getOsType(), r.getHostname()); + } + r.setOsFamily(hostOsFamily); + } response.add(r); } else if (hostName != null) { @@ -726,13 +712,6 @@ public class HostResourceProvider extends AbstractControllerResourceProvider { // do nothing } - if (null != request.getHostAttributes()) { - if(!AuthorizationHelper.isAuthorized(ResourceType.CLUSTER, resourceId, RoleAuthorization.HOST_ADD_DELETE_HOSTS)) { - throw new AuthorizationException("The authenticated user is not authorized to update host attributes"); - } - host.setHostAttributes(request.getHostAttributes()); - } - String rackInfo = host.getRackInfo(); String requestRackInfo = request.getRackInfo(); boolean rackChange = requestRackInfo != null && !requestRackInfo.equals(rackInfo); @@ -999,9 +978,6 @@ public class HostResourceProvider extends AbstractControllerResourceProvider { /** * Removes hostname from the stateful cluster topology - * @param clusters - * @param hostRequest - * @throws AmbariException */ private void removeHostFromClusterTopology(Clusters clusters, HostRequest hostRequest) throws AmbariException{ if (hostRequest.getClusterName() == null) { @@ -1032,10 +1008,10 @@ public class HostResourceProvider extends AbstractControllerResourceProvider { * @return the host name for the host request */ private String getHostNameFromProperties(Map properties) { - String hostname = (String) properties.get(HOST_NAME_PROPERTY_ID); + String hostname = (String) properties.get(HOST_HOST_NAME_PROPERTY_ID); return hostname != null ? hostname : - (String) properties.get(HOST_NAME_NO_CATEGORY_PROPERTY_ID); + (String) properties.get(HOST_NAME_PROPERTY_ID); } //todo: for api/v1/hosts we also end up here so we need to ensure proper 400 response http://git-wip-us.apache.org/repos/asf/ambari/blob/0e13b018/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostStatusHelper.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostStatusHelper.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostStatusHelper.java index 96457ed..11512c4 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostStatusHelper.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostStatusHelper.java @@ -72,9 +72,8 @@ public class HostStatusHelper { HostResponse hostResponse; try { - HostRequest hostRequest = new HostRequest(hostName, clusterName, - Collections.emptyMap()); - Set hosts = HostResourceProvider.getHosts(managementController, hostRequest); + HostRequest hostRequest = new HostRequest(hostName, clusterName); + Set hosts = HostResourceProvider.getHosts(managementController, hostRequest, null); hostResponse = hosts.size() == 1 ? hosts.iterator().next() : null; } catch (AmbariException e) { @@ -83,6 +82,6 @@ public class HostStatusHelper { } //Cluster without host return hostResponse != null && - !hostResponse.getHostState().equals(HostState.HEARTBEAT_LOST.name()); + !hostResponse.getHostState().equals(HostState.HEARTBEAT_LOST); } } http://git-wip-us.apache.org/repos/asf/ambari/blob/0e13b018/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RootServiceHostComponentResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RootServiceHostComponentResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RootServiceHostComponentResourceProvider.java index c2fb844..d5c33c1 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RootServiceHostComponentResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RootServiceHostComponentResourceProvider.java @@ -163,7 +163,7 @@ public class RootServiceHostComponentResourceProvider extends AmbariManagementController controller = getManagementController(); //Get all hosts of all clusters Set hosts = HostResourceProvider.getHosts(controller, - new HostRequest(request.getHostName(), null, null)); + new HostRequest(request.getHostName(), null), null); return controller.getRootServiceResponseFactory().getRootServiceHostComponent(request, hosts); } http://git-wip-us.apache.org/repos/asf/ambari/blob/0e13b018/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ScaleClusterRequest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ScaleClusterRequest.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ScaleClusterRequest.java index b5d2f9d..5e9091f 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ScaleClusterRequest.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ScaleClusterRequest.java @@ -112,7 +112,7 @@ public class ScaleClusterRequest extends BaseClusterRequest { throw new InvalidTopologyTemplateException("Blueprint name must be specified for all host groups"); } - String hgName = String.valueOf(properties.get(HostResourceProvider.HOSTGROUP_PROPERTY_ID)); + String hgName = String.valueOf(properties.get(HostResourceProvider.HOST_GROUP_PROPERTY_ID)); if (hgName == null || hgName.equals("null")) { throw new InvalidTopologyTemplateException("A name must be specified for all host groups"); } @@ -187,8 +187,8 @@ public class ScaleClusterRequest extends BaseClusterRequest { String rackInfo = null; if (properties.containsKey(HostResourceProvider.HOST_RACK_INFO_PROPERTY_ID)) { rackInfo = (String) properties.get(HostResourceProvider.HOST_RACK_INFO_PROPERTY_ID); - } else if (properties.containsKey(HostResourceProvider.HOST_RACK_INFO_NO_CATEGORY_PROPERTY_ID)) { - rackInfo = (String) properties.get(HostResourceProvider.HOST_RACK_INFO_NO_CATEGORY_PROPERTY_ID); + } else if (properties.containsKey(HostResourceProvider.RACK_INFO_PROPERTY_ID)) { + rackInfo = (String) properties.get(HostResourceProvider.RACK_INFO_PROPERTY_ID); } else { LOGGER.debug("No rack info provided"); } @@ -226,9 +226,9 @@ public class ScaleClusterRequest extends BaseClusterRequest { */ //todo: this was copied exactly from HostResourceProvider private String getHostNameFromProperties(Map properties) { - String hostName = (String) properties.get(HostResourceProvider.HOST_NAME_PROPERTY_ID); + String hostName = (String) properties.get(HostResourceProvider.HOST_HOST_NAME_PROPERTY_ID); if (hostName == null) { - hostName = (String) properties.get(HostResourceProvider.HOST_NAME_NO_CATEGORY_PROPERTY_ID); + hostName = (String) properties.get(HostResourceProvider.HOST_NAME_PROPERTY_ID); } return hostName; } http://git-wip-us.apache.org/repos/asf/ambari/blob/0e13b018/ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/PropertyHelper.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/PropertyHelper.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/PropertyHelper.java index c747a33..3fb59be 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/PropertyHelper.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/PropertyHelper.java @@ -49,7 +49,7 @@ public class PropertyHelper { private static final String SQLSERVER_PROPERTIES_FILE = "sqlserver_properties.json"; private static final String JMX_PROPERTIES_FILE = "jmx_properties.json"; private static final String KEY_PROPERTIES_FILE = "key_properties.json"; - private static final char EXTERNAL_PATH_SEP = '/'; + public static final char EXTERNAL_PATH_SEP = '/'; /** * Aggregate functions implicitly supported by the Metrics Service http://git-wip-us.apache.org/repos/asf/ambari/blob/0e13b018/ambari-server/src/main/java/org/apache/ambari/server/state/host/HostImpl.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/host/HostImpl.java b/ambari-server/src/main/java/org/apache/ambari/server/state/host/HostImpl.java index db228b1..4624ea8 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/state/host/HostImpl.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/state/host/HostImpl.java @@ -938,25 +938,21 @@ public class HostImpl implements Host { public HostResponse convertToResponse() { HostResponse r = new HostResponse(getHostName()); - r.setAgentVersion(getAgentVersion()); - r.setAvailableMemBytes(getAvailableMemBytes()); r.setPhCpuCount(getPhCpuCount()); r.setCpuCount(getCpuCount()); r.setDisksInfo(getDisksInfo()); r.setHealthStatus(getHealthStatus()); r.setHostAttributes(getHostAttributes()); r.setIpv4(getIPv4()); - r.setIpv6(getIPv6()); r.setLastHeartbeatTime(getLastHeartbeatTime()); r.setLastAgentEnv(lastAgentEnv); r.setLastRegistrationTime(getLastRegistrationTime()); r.setOsArch(getOsArch()); - r.setOsInfo(getOsInfo()); r.setOsType(getOsType()); r.setRackInfo(getRackInfo()); r.setTotalMemBytes(getTotalMemBytes()); r.setPublicHostName(getPublicHostName()); - r.setHostState(getState().toString()); + r.setHostState(getState()); r.setStatus(getStatus()); r.setRecoveryReport(getRecoveryReport()); r.setRecoverySummary(getRecoveryReport().getSummary()); http://git-wip-us.apache.org/repos/asf/ambari/blob/0e13b018/ambari-server/src/main/java/org/apache/ambari/server/topology/AmbariContext.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/topology/AmbariContext.java b/ambari-server/src/main/java/org/apache/ambari/server/topology/AmbariContext.java index 6d12402..f2b616c 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/topology/AmbariContext.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/topology/AmbariContext.java @@ -264,7 +264,7 @@ public class AmbariContext { Map properties = new HashMap<>(); properties.put(HostResourceProvider.HOST_CLUSTER_NAME_PROPERTY_ID, clusterName); - properties.put(HostResourceProvider.HOST_NAME_PROPERTY_ID, hostName); + properties.put(HostResourceProvider.HOST_HOST_NAME_PROPERTY_ID, hostName); properties.put(HostResourceProvider.HOST_RACK_INFO_PROPERTY_ID, host.getRackInfo()); try { http://git-wip-us.apache.org/repos/asf/ambari/blob/0e13b018/ambari-server/src/main/java/org/apache/ambari/server/topology/HostRequest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/topology/HostRequest.java b/ambari-server/src/main/java/org/apache/ambari/server/topology/HostRequest.java index 168d13b..54420a4 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/topology/HostRequest.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/topology/HostRequest.java @@ -488,7 +488,7 @@ public class HostRequest implements Comparable { private void buildPropertyMap(HostImpl host) { hostResource = new ResourceImpl(Resource.Type.Host); - hostResource.setProperty(HostResourceProvider.HOST_NAME_PROPERTY_ID, + hostResource.setProperty(HostResourceProvider.HOST_HOST_NAME_PROPERTY_ID, host.getHostName()); hostResource.setProperty(HostResourceProvider.HOST_PUBLIC_NAME_PROPERTY_ID, host.getPublicHostName()); http://git-wip-us.apache.org/repos/asf/ambari/blob/0e13b018/ambari-server/src/test/java/org/apache/ambari/server/api/services/HostServiceTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/api/services/HostServiceTest.java b/ambari-server/src/test/java/org/apache/ambari/server/api/services/HostServiceTest.java index 6aef04d..84f08ae 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/api/services/HostServiceTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/api/services/HostServiceTest.java @@ -96,7 +96,7 @@ public class HostServiceTest extends BaseServiceTest { } @Override - ResourceInstance createHostResource(String clusterName, String hostName, UriInfo ui) { + protected ResourceInstance createHostResource(String clusterName, String hostName) { assertEquals(m_clusterId, clusterName); assertEquals(m_hostId, hostName); return getTestResource(); http://git-wip-us.apache.org/repos/asf/ambari/blob/0e13b018/ambari-server/src/test/java/org/apache/ambari/server/audit/request/creator/HostEventCreatorTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/audit/request/creator/HostEventCreatorTest.java b/ambari-server/src/test/java/org/apache/ambari/server/audit/request/creator/HostEventCreatorTest.java index 2d1cefc..bc32aff 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/audit/request/creator/HostEventCreatorTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/audit/request/creator/HostEventCreatorTest.java @@ -45,7 +45,7 @@ public class HostEventCreatorTest extends AuditEventCreatorTestBase{ HostEventCreator creator = new HostEventCreator(); Map properties = new HashMap<>(); - properties.put(HostResourceProvider.HOST_NAME_PROPERTY_ID, "ambari1.example.com"); + properties.put(HostResourceProvider.HOST_HOST_NAME_PROPERTY_ID, "ambari1.example.com"); Request request = AuditEventCreatorTestHelper.createRequest(Request.Type.POST, Resource.Type.Host, properties, null); Result result = AuditEventCreatorTestHelper.createResult(new ResultStatus(ResultStatus.STATUS.OK)); @@ -73,7 +73,7 @@ public class HostEventCreatorTest extends AuditEventCreatorTestBase{ properties.put("host_components", set); - Request request = AuditEventCreatorTestHelper.createRequest(Request.Type.QUERY_POST, Resource.Type.Host, properties, null, HostResourceProvider.HOST_NAME_PROPERTY_ID + "=ambari1.example.com"); + Request request = AuditEventCreatorTestHelper.createRequest(Request.Type.QUERY_POST, Resource.Type.Host, properties, null, HostResourceProvider.HOST_HOST_NAME_PROPERTY_ID + "=ambari1.example.com"); Result result = AuditEventCreatorTestHelper.createResult(new ResultStatus(ResultStatus.STATUS.OK)); AuditEvent event = AuditEventCreatorTestHelper.getEvent(creator, request, result); http://git-wip-us.apache.org/repos/asf/ambari/blob/0e13b018/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java index 554e089..d613a2e 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java @@ -1803,7 +1803,7 @@ public class AmbariManagementControllerTest { Map hostAttributes = null; - HostRequest r1 = new HostRequest(host1, null, hostAttributes); + HostRequest r1 = new HostRequest(host1, null); r1.toString(); Set requests = new HashSet<>(); @@ -1820,7 +1820,7 @@ public class AmbariManagementControllerTest { setOsFamily(clusters.getHost(host1), "redhat", "5.9"); setOsFamily(clusters.getHost(host2), "redhat", "5.9"); - HostRequest request = new HostRequest(host2, "foo", new HashMap()); + HostRequest request = new HostRequest(host2, "foo"); requests.add(request); try { @@ -1874,9 +1874,9 @@ public class AmbariManagementControllerTest { setOsFamily(clusters.getHost(host2), "redhat", "5.9"); setOsFamily(clusters.getHost(host3), "redhat", "5.9"); - HostRequest r1 = new HostRequest(host1, cluster1, null); - HostRequest r2 = new HostRequest(host2, cluster1, null); - HostRequest r3 = new HostRequest(host3, null, null); + HostRequest r1 = new HostRequest(host1, cluster1); + HostRequest r2 = new HostRequest(host2, cluster1); + HostRequest r3 = new HostRequest(host3, null); Set set1 = new HashSet<>(); set1.add(r1); @@ -1902,7 +1902,7 @@ public class AmbariManagementControllerTest { try { set1.clear(); HostRequest rInvalid = - new HostRequest(host1, null, null); + new HostRequest(host1, null); set1.add(rInvalid); HostResourceProviderTest.createHosts(controller, set1); fail("Expected failure for invalid host"); @@ -1915,7 +1915,7 @@ public class AmbariManagementControllerTest { try { set1.clear(); HostRequest rInvalid = - new HostRequest(host1, cluster1, null); + new HostRequest(host1, cluster1); set1.add(rInvalid); HostResourceProviderTest.createHosts(controller, set1); fail("Expected failure for invalid cluster"); @@ -1928,9 +1928,9 @@ public class AmbariManagementControllerTest { try { set1.clear(); HostRequest rInvalid1 = - new HostRequest(host1, cluster1, null); + new HostRequest(host1, cluster1); HostRequest rInvalid2 = - new HostRequest(host1, cluster1, null); + new HostRequest(host1, cluster1); set1.add(rInvalid1); set1.add(rInvalid2); HostResourceProviderTest.createHosts(controller, set1); @@ -3094,7 +3094,7 @@ public class AmbariManagementControllerTest { attrs.put("a2", "b2"); clusters.getHost(host4).setHostAttributes(attrs); - HostRequest r = new HostRequest(null, null, null); + HostRequest r = new HostRequest(null, null); Set resps = HostResourceProviderTest.getHosts(controller, Collections.singleton(r)); @@ -3127,7 +3127,7 @@ public class AmbariManagementControllerTest { Assert.assertEquals(4, foundHosts.size()); - r = new HostRequest(host1, null, null); + r = new HostRequest(host1, null); resps = HostResourceProviderTest.getHosts(controller, Collections.singleton(r)); Assert.assertEquals(1, resps.size()); HostResponse resp = resps.iterator().next(); @@ -8884,7 +8884,7 @@ public class AmbariManagementControllerTest { // Case 1: Attempt delete when components still exist Set requests = new HashSet<>(); requests.clear(); - requests.add(new HostRequest(host1, cluster1, null)); + requests.add(new HostRequest(host1, cluster1)); try { HostResourceProviderTest.deleteHosts(controller, requests, false, false); fail("Expect failure deleting hosts when components exist and have not been deleted."); @@ -8993,7 +8993,7 @@ public class AmbariManagementControllerTest { // Case 1: Attempt delete when components still exist Set requests = new HashSet<>(); requests.clear(); - requests.add(new HostRequest(host1, cluster1, null)); + requests.add(new HostRequest(host1, cluster1)); try { HostResourceProviderTest.deleteHosts(controller, requests); fail("Expect failure deleting hosts when components exist and have not been deleted."); @@ -9020,7 +9020,7 @@ public class AmbariManagementControllerTest { // Deletion without specifying cluster should be successful requests.clear(); - requests.add(new HostRequest(host1, null, null)); + requests.add(new HostRequest(host1, null)); try { HostResourceProviderTest.deleteHosts(controller, requests); } catch (Exception e) { @@ -9033,7 +9033,7 @@ public class AmbariManagementControllerTest { // Case 3: Delete host that is still part of the cluster, and specify the cluster_name in the request requests.clear(); - requests.add(new HostRequest(host2, cluster1, null)); + requests.add(new HostRequest(host2, cluster1)); try { HostResourceProviderTest.deleteHosts(controller, requests); } catch (Exception e) { @@ -9046,7 +9046,7 @@ public class AmbariManagementControllerTest { // Case 4: Attempt to delete a host that has already been deleted requests.clear(); - requests.add(new HostRequest(host1, null, null)); + requests.add(new HostRequest(host1, null)); try { HostResourceProviderTest.deleteHosts(controller, requests); Assert.fail("Expected a HostNotFoundException trying to remove a host that was already deleted."); @@ -9064,7 +9064,7 @@ public class AmbariManagementControllerTest { // Case 5: Attempt to delete a host that was never added to the cluster requests.clear(); - requests.add(new HostRequest(host3, null, null)); + requests.add(new HostRequest(host3, null)); try { HostResourceProviderTest.deleteHosts(controller, requests); Assert.fail("Expected a HostNotFoundException trying to remove a host that was never added."); @@ -9307,7 +9307,7 @@ public class AmbariManagementControllerTest { // add some hosts Set hrs = new HashSet<>(); - hrs.add(new HostRequest(HOST1, CLUSTER_NAME, null)); + hrs.add(new HostRequest(HOST1, CLUSTER_NAME)); HostResourceProviderTest.createHosts(amc, hrs); Set serviceRequests = new HashSet<>(); @@ -9422,9 +9422,9 @@ public class AmbariManagementControllerTest { ComponentResourceProviderTest.createComponents(amc, serviceComponentRequests); Set hostRequests = new HashSet<>(); - hostRequests.add(new HostRequest(host1, cluster1, null)); - hostRequests.add(new HostRequest(host2, cluster1, null)); - hostRequests.add(new HostRequest(host3, cluster1, null)); + hostRequests.add(new HostRequest(host1, cluster1)); + hostRequests.add(new HostRequest(host2, cluster1)); + hostRequests.add(new HostRequest(host3, cluster1)); HostResourceProviderTest.createHosts(amc, hostRequests); @@ -9703,7 +9703,7 @@ public class AmbariManagementControllerTest { ComponentResourceProviderTest.createComponents(amc, serviceComponentRequests); Set hostRequests = new HashSet<>(); - hostRequests.add(new HostRequest(HOST1, CLUSTER_NAME, null)); + hostRequests.add(new HostRequest(HOST1, CLUSTER_NAME)); HostResourceProviderTest.createHosts(amc, hostRequests); @@ -10232,7 +10232,7 @@ public class AmbariManagementControllerTest { } // passivate a host - HostRequest hr = new HostRequest(host1, cluster1, requestProperties); + HostRequest hr = new HostRequest(host1, cluster1); hr.setMaintenanceState(MaintenanceState.ON.name()); HostResourceProviderTest.updateHosts(controller, Collections.singleton(hr) ); @@ -10274,9 +10274,9 @@ public class AmbariManagementControllerTest { } // passivate several hosts - HostRequest hr1 = new HostRequest(host1, cluster1, requestProperties); + HostRequest hr1 = new HostRequest(host1, cluster1); hr1.setMaintenanceState(MaintenanceState.ON.name()); - HostRequest hr2 = new HostRequest(host2, cluster1, requestProperties); + HostRequest hr2 = new HostRequest(host2, cluster1); hr2.setMaintenanceState(MaintenanceState.ON.name()); Set set = new HashSet<>(); set.add(hr1); @@ -10292,9 +10292,9 @@ public class AmbariManagementControllerTest { host.getMaintenanceState(cluster.getClusterId())); // reset - hr1 = new HostRequest(host1, cluster1, requestProperties); + hr1 = new HostRequest(host1, cluster1); hr1.setMaintenanceState(MaintenanceState.OFF.name()); - hr2 = new HostRequest(host2, cluster1, requestProperties); + hr2 = new HostRequest(host2, cluster1); hr2.setMaintenanceState(MaintenanceState.OFF.name()); set = new HashSet<>(); set.add(hr1); http://git-wip-us.apache.org/repos/asf/ambari/blob/0e13b018/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/AbstractResourceProviderTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/AbstractResourceProviderTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/AbstractResourceProviderTest.java index c761323..e828ab1 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/AbstractResourceProviderTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/AbstractResourceProviderTest.java @@ -468,7 +468,7 @@ public class AbstractResourceProviderTest { private final HostRequest hostRequest; public HostRequestSetMatcher(String hostname, String clusterName, Map hostAttributes) { - hostRequest = new HostRequest(hostname, clusterName, hostAttributes); + hostRequest = new HostRequest(hostname, clusterName); add(hostRequest); } @@ -488,8 +488,7 @@ public class AbstractResourceProviderTest { return request instanceof HostRequest && eq(((HostRequest) request).getClusterName(), hostRequest.getClusterName()) && - eq(((HostRequest) request).getHostname(), hostRequest.getHostname()) && - eq(((HostRequest) request).getHostAttributes(), hostRequest.getHostAttributes()); + eq(((HostRequest) request).getHostname(), hostRequest.getHostname()); } @Override