package com.hubspot.baragon.models;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
@JsonIgnoreProperties( ignoreUnknown = true )
public class BaragonServiceStatus {
private final boolean leader;
private final int pendingRequestCount;
private final long workerLagMs;
private final long elbWorkerLagMs;
private final String zookeeperState;
@JsonCreator
public BaragonServiceStatus(@JsonProperty("leader") boolean leader,
@JsonProperty("pendingRequestCount") int pendingRequestCount,
@JsonProperty("workerLagMs") long workerLagMs,
@JsonProperty("elbWorkerLagMs") long elbWorkerLagMs,
@JsonProperty("zookeeperState") String zookeeperState) {
this.leader = leader;
this.pendingRequestCount = pendingRequestCount;
this.workerLagMs = workerLagMs;
this.elbWorkerLagMs = elbWorkerLagMs;
this.zookeeperState = zookeeperState;
}
public boolean isLeader() {
return leader;
}
public int getPendingRequestCount() {
return pendingRequestCount;
}
public long getWorkerLagMs() {
return workerLagMs;
}
public long getElbWorkerLagMs() {
return elbWorkerLagMs;
}
public String getZookeeperState() {
return zookeeperState;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
BaragonServiceStatus that = (BaragonServiceStatus) o;
if (leader != that.leader) {
return false;
}
if (pendingRequestCount != that.pendingRequestCount) {
return false;
}
if (workerLagMs != that.workerLagMs) {
return false;
}
if (elbWorkerLagMs != that.elbWorkerLagMs) {
return false;
}
if (!zookeeperState.equals(that.zookeeperState)) {
return false;
}
return true;
}
@Override
public int hashCode() {
int result = (leader ? 1 : 0);
result = 31 * result + pendingRequestCount;
result = 31 * result + (int) (workerLagMs ^ (workerLagMs >>> 32));
result = 31 * result + (int) (elbWorkerLagMs ^ (elbWorkerLagMs >>> 32));
result = 31 * result + zookeeperState.hashCode();
return result;
}
@Override
public String toString() {
return "BaragonServiceStatus [" +
"leader=" + leader +
", pendingRequestCount=" + pendingRequestCount +
", workerLagMs=" + workerLagMs +
", elbWorkerLagMs=" + elbWorkerLagMs +
", zookeeperState='" + zookeeperState + '\'' +
']';
}
}