package com.hubspot.singularity; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.Optional; public class SingularityHostState { private final boolean master; private final long uptime; private final String driverStatus; private final Optional<Long> millisSinceLastOffer; private final int offerCacheSize; private final double availableCachedCpus; private final double availableCachedMemory; private final String hostAddress; private final String hostname; private final String mesosMaster; private final boolean mesosConnected; @JsonCreator public SingularityHostState(@JsonProperty("master") boolean master, @JsonProperty("uptime") long uptime, @JsonProperty("driverStatus") String driverStatus, @JsonProperty("millisSinceLastOffer") Optional<Long> millisSinceLastOffer, @JsonProperty("hostAddress") String hostAddress, @JsonProperty("hostname") String hostname, @JsonProperty("mesosMaster") String mesosMaster, @JsonProperty("mesosConnected") boolean mesosConnected, @JsonProperty("offerCacheSize") int offerCacheSize, @JsonProperty("availableCachedCpus") double availableCachedCpus, @JsonProperty("availableCachedMemory") double availableCachedMemory) { this.master = master; this.uptime = uptime; this.driverStatus = driverStatus; this.millisSinceLastOffer = millisSinceLastOffer; this.hostAddress = hostAddress; this.hostname = hostname; this.mesosMaster = mesosMaster; this.mesosConnected = mesosConnected; this.availableCachedCpus = availableCachedCpus; this.availableCachedMemory = availableCachedMemory; this.offerCacheSize = offerCacheSize; } public String getHostAddress() { return hostAddress; } public boolean isMaster() { return master; } public long getUptime() { return uptime; } public String getDriverStatus() { return driverStatus; } public Optional<Long> getMillisSinceLastOffer() { return millisSinceLastOffer; } public String getHostname() { return hostname; } public String getMesosMaster() { return mesosMaster; } public boolean isMesosConnected() { return mesosConnected; } public int getOfferCacheSize() { return offerCacheSize; } public double getAvailableCachedCpus() { return availableCachedCpus; } public double getAvailableCachedMemory() { return availableCachedMemory; } @Override public String toString() { return "SingularityHostState{" + "master=" + master + ", uptime=" + uptime + ", driverStatus='" + driverStatus + '\'' + ", millisSinceLastOffer=" + millisSinceLastOffer + ", offerCacheSize=" + offerCacheSize + ", availableCachedCpus=" + availableCachedCpus + ", availableCachedMemory=" + availableCachedMemory + ", hostAddress='" + hostAddress + '\'' + ", hostname='" + hostname + '\'' + ", mesosMaster='" + mesosMaster + '\'' + ", mesosConnected=" + mesosConnected + '}'; } }