blob: 9bbf3636d27ecf24fc26bb0aaa09f8a6b698416e [file] [log] [blame]
/**
* 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.ambari.server.controller;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.ambari.server.agent.AgentEnv;
import org.apache.ambari.server.agent.DiskInfo;
import org.apache.ambari.server.state.AgentVersion;
import org.apache.ambari.server.state.HostHealthStatus;
public class HostResponse {
private String hostname;
private String clusterName;
/**
* Host IP if ipv4 interface available
*/
private String ipv4;
/**
* Host IP if ipv6 interface available
*/
private String ipv6;
/**
* Count of cores on Host
*/
private int cpuCount;
/**
* Os Architecture
*/
private String osArch;
/**
* 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;
/**
* Disks mounted on the Host
*/
private List<DiskInfo> disksInfo;
/**
* Last heartbeat timestamp from the Host
*/
private long lastHeartbeatTime;
/**
* Last environment information
*/
private AgentEnv lastAgentEnv;
/**
* Last registration timestamp for the Host
*/
private long lastRegistrationTime;
/**
* Rack to which the Host belongs to
*/
private String rackInfo;
/**
* Additional Host attributes
*/
private Map<String, String> hostAttributes;
/**
* Version of agent running on the Host
*/
private AgentVersion agentVersion;
/**
* Host Health Status
*/
private HostHealthStatus healthStatus;
/**
* Public name.
*/
private String publicHostname = null;
/**
* Host State
*/
private String hostState;
public HostResponse(String hostname, String clusterName,
String ipv4, String ipv6, int cpuCount, String osArch, String osType,
String osInfo, long availableMemBytes, long totalMemBytes,
List<DiskInfo> disksInfo, long lastHeartbeatTime,
long lastRegistrationTime, String rackInfo,
Map<String, String> hostAttributes, AgentVersion agentVersion,
HostHealthStatus healthStatus, String hostState) {
super();
this.hostname = hostname;
this.clusterName = clusterName;
this.ipv4 = ipv4;
this.ipv6 = ipv6;
this.cpuCount = cpuCount;
this.osArch = osArch;
this.osType = osType;
this.osInfo = osInfo;
this.availableMemBytes = availableMemBytes;
this.totalMemBytes = totalMemBytes;
this.disksInfo = disksInfo;
this.lastHeartbeatTime = lastHeartbeatTime;
this.lastRegistrationTime = lastRegistrationTime;
this.rackInfo = rackInfo;
this.hostAttributes = hostAttributes;
this.agentVersion = agentVersion;
this.healthStatus = healthStatus;
this.setHostState(hostState);
}
//todo: why are we passing in empty strings for host/cluster name instead of null?
public HostResponse(String hostname) {
this(hostname, "", "", "",
0, "", "",
"", 0, 0, new ArrayList<DiskInfo>(),
0, 0, "",
new HashMap<String, String>(),
null, null, null);
}
/**
* @return the hostname
*/
public String getHostname() {
return hostname;
}
/**
* @param hostname the hostname to set
*/
public void setHostname(String hostname) {
this.hostname = hostname;
}
/**
* @return the clusterNames
*/
public String getClusterName() {
return clusterName;
}
/**
* @param clusterName the name of the associated cluster
*/
public void setClusterName(String clusterName) {
this.clusterName = clusterName;
}
/**
* @return the ipv4
*/
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() {
return cpuCount;
}
/**
* @param cpuCount the cpuCount to set
*/
public void setCpuCount(int cpuCount) {
this.cpuCount = cpuCount;
}
/**
* @return the osArch
*/
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;
}
/**
* @param osType the osType to set
*/
public void setOsType(String osType) {
this.osType = osType;
}
/**
* @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;
}
/**
* @param availableMemBytes the availableMemBytes to set
*/
public void setAvailableMemBytes(long availableMemBytes) {
this.availableMemBytes = availableMemBytes;
}
/**
* @return the totalMemBytes
*/
public long getTotalMemBytes() {
return totalMemBytes;
}
/**
* @param totalMemBytes the totalMemBytes to set
*/
public void setTotalMemBytes(long totalMemBytes) {
this.totalMemBytes = totalMemBytes;
}
/**
* @return the disksInfo
*/
public List<DiskInfo> getDisksInfo() {
return disksInfo;
}
/**
* @param disksInfo the disksInfo to set
*/
public void setDisksInfo(List<DiskInfo> disksInfo) {
this.disksInfo = disksInfo;
}
/**
* @return the lastHeartbeatTime
*/
public long getLastHeartbeatTime() {
return lastHeartbeatTime;
}
/**
* @param lastHeartbeatTime the lastHeartbeatTime to set
*/
public void setLastHeartbeatTime(long lastHeartbeatTime) {
this.lastHeartbeatTime = lastHeartbeatTime;
}
/**
* @return the lastRegistrationTime
*/
public long getLastRegistrationTime() {
return lastRegistrationTime;
}
/**
* @param lastRegistrationTime the lastRegistrationTime to set
*/
public void setLastRegistrationTime(long lastRegistrationTime) {
this.lastRegistrationTime = lastRegistrationTime;
}
/**
* @return the rackInfo
*/
public String getRackInfo() {
return rackInfo;
}
/**
* @param rackInfo the rackInfo to set
*/
public void setRackInfo(String rackInfo) {
this.rackInfo = rackInfo;
}
/**
* @return the hostAttributes
*/
public Map<String, String> getHostAttributes() {
return hostAttributes;
}
/**
* @param hostAttributes the hostAttributes to set
*/
public void setHostAttributes(Map<String, String> hostAttributes) {
this.hostAttributes = hostAttributes;
}
/**
* @return the agentVersion
*/
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;
}
/**
* @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;
}
return true;
}
@Override
public int hashCode() {
int result = hostname != null ? hostname.hashCode() : 0;
return result;
}
public String getPublicHostName() {
return publicHostname;
}
public void setPublicHostName(String name) {
publicHostname = name;
}
/**
* @return the hostState
*/
public String getHostState() {
return hostState;
}
/**
* @param hostState the hostState to set
*/
public void setHostState(String hostState) {
this.hostState = hostState;
}
public AgentEnv getLastAgentEnv() {
return lastAgentEnv;
}
/**
* @param lastAgentEnv
*/
public void setLastAgentEnv(AgentEnv agentEnv) {
lastAgentEnv = agentEnv;
}
}