package voldemort.server;
import voldemort.annotations.jmx.JmxGetter;
import voldemort.store.metadata.MetadataStore;
public class ServerState {
private final MetadataStore store;
public ServerState(MetadataStore store) {
this.store = store;
}
private int isEnabled(boolean val) {
// It mimics the Unix return codes, 0 -> success, 1 -> false
return val ? 0 : 1;
}
@JmxGetter(name = "state", description = "State of the Server 0 -> normal/ 1 -> offline/ 2 -> rebalancing")
public int getState() {
return store.getServerStateLocked().ordinal();
}
@JmxGetter(name = "slopStreamingState", description = "Slop Streaming 0 -> enabled, 1 -> disabled ")
public int getSlopStreamingState() {
return isEnabled(store.getSlopStreamingEnabledLocked());
}
@JmxGetter(name = "partitionStreamingState", description = " Partition streaming 0 -> enabled, 1 -> disabled ")
public int getPartitionStreamingState() {
return isEnabled(store.getPartitionStreamingEnabledLocked());
}
@JmxGetter(name = "readOnlyFetchingState", description = " read only fetch 0 -> enabled, 1 -> disabled ")
public int getReadOnlyFetchState() {
return isEnabled(store.getReadOnlyFetchEnabledLocked());
}
@JmxGetter(name = "quotaEnforcingState", description = " quota enforcing 0 -> enabled, 1 -> disabled ")
public int getQuotaEnforcingState() {
return isEnabled(store.getQuotaEnforcingEnabledLocked());
}
}