blob: a1c80702d836ef9bcccf95d08e5ac5466be14e50 [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.orm.entities;
import java.util.Objects;
import static org.apache.commons.lang.StringUtils.defaultString;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToOne;
import org.apache.ambari.server.state.HostState;
@javax.persistence.Table(name = "hoststate")
@Entity
@NamedQueries({
@NamedQuery(name = "hostStateByHostId", query =
"SELECT hostState FROM HostStateEntity hostState " +
"WHERE hostState.hostId=:hostId"),
})
public class HostStateEntity {
@javax.persistence.Column(name = "host_id", nullable = false, insertable = false, updatable = false)
@Id
private Long hostId;
@Column(name = "available_mem", nullable = false, insertable = true, updatable = true)
@Basic
private Long availableMem = 0L;
@javax.persistence.Column(name = "time_in_state", nullable = false, insertable = true, updatable = true)
@Basic
private Long timeInState = 0L;
@Column(name = "health_status", insertable = true, updatable = true)
@Basic
private String healthStatus;
@Column(name = "agent_version", insertable = true, updatable = true)
@Basic
private String agentVersion = "";
@Column(name = "current_state", nullable = false, insertable = true, updatable = true)
@Enumerated(value = EnumType.STRING)
private HostState currentState = HostState.INIT;
@Column(name="maintenance_state", nullable = true, insertable = true, updatable = true)
private String maintenanceState = null;
@OneToOne
@JoinColumn(name = "host_id", referencedColumnName = "host_id", nullable = false)
private HostEntity hostEntity;
public Long getHostId() {
return hostId;
}
public void setHostId(Long hostId) {
this.hostId = hostId;
}
public Long getAvailableMem() {
return availableMem;
}
public void setAvailableMem(Long availableMem) {
this.availableMem = availableMem;
}
public Long getTimeInState() {
return timeInState;
}
public void setTimeInState(Long timeInState) {
this.timeInState = timeInState;
}
public String getHealthStatus() {
return healthStatus;
}
public void setHealthStatus(String healthStatus) {
this.healthStatus = healthStatus;
}
public String getAgentVersion() {
return defaultString(agentVersion);
}
public void setAgentVersion(String agentVersion) {
this.agentVersion = agentVersion;
}
public HostState getCurrentState() {
return currentState;
}
public void setCurrentState(HostState currentState) {
this.currentState = currentState;
}
public String getMaintenanceState() {
return maintenanceState;
}
public void setMaintenanceState(String state) {
maintenanceState = state;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
HostStateEntity that = (HostStateEntity) o;
return Objects.equals(hostId, that.hostId) &&
Objects.equals(availableMem, that.availableMem) &&
Objects.equals(timeInState, that.timeInState) &&
Objects.equals(agentVersion, that.agentVersion) &&
currentState == that.currentState;
}
@Override
public int hashCode() {
return Objects.hash(hostId, availableMem, timeInState, agentVersion, currentState);
}
public HostEntity getHostEntity() {
return hostEntity;
}
public void setHostEntity(HostEntity hostEntity) {
this.hostEntity = hostEntity;
}
}