package com.hubspot.baragon.agent.config;
import java.util.Collections;
import java.util.Set;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import com.google.common.base.Optional;
import com.google.common.base.Strings;
public class LoadBalancerConfiguration {
public static final int DEFAULT_COMMAND_TIMEOUT_MS = 10000;
@NotNull
private String name;
private String defaultDomain;
@Deprecated
private String domain;
@NotNull
private String rootPath;
@NotNull
private String checkConfigCommand;
@NotNull
private String reloadConfigCommand;
@Min(0)
private int commandTimeoutMs = DEFAULT_COMMAND_TIMEOUT_MS;
@NotNull
private Set<String> domains = Collections.emptySet();
@NotNull
@Min(1)
private int maxLbWorkerCount = 1;
@NotNull
private Optional<String> workerCountCommand = Optional.absent();
private boolean limitWorkerCount = false;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getRootPath() {
return rootPath;
}
public void setRootPath(String rootPath) {
this.rootPath = rootPath;
}
public String getCheckConfigCommand() {
return checkConfigCommand;
}
public void setCheckConfigCommand(String checkConfigCommand) {
this.checkConfigCommand = checkConfigCommand;
}
public String getReloadConfigCommand() {
return reloadConfigCommand;
}
public void setReloadConfigCommand(String reloadConfigCommand) {
this.reloadConfigCommand = reloadConfigCommand;
}
public int getCommandTimeoutMs() {
return commandTimeoutMs;
}
public void setCommandTimeoutMs(int commandTimeoutMs) {
this.commandTimeoutMs = commandTimeoutMs;
}
public Optional<String> getDefaultDomain() {
return Optional.fromNullable(Strings.emptyToNull(defaultDomain)).or(Optional.fromNullable(Strings.emptyToNull(domain)));
}
public void setDefaultDomain(String defaultDomain) {
this.defaultDomain = defaultDomain;
}
@Deprecated
public Optional<String> getDomain() {
return getDefaultDomain();
}
public void setDomain(String domain) {
this.domain = domain;
}
public Set<String> getDomains() {
return domains;
}
public void setDomains(Set<String> domains) {
this.domains = domains;
}
public int getMaxLbWorkerCount() {
return maxLbWorkerCount;
}
public void setMaxLbWorkerCount(int maxLbWorkerCount) {
this.maxLbWorkerCount = maxLbWorkerCount;
}
public Optional<String> getWorkerCountCommand() {
return workerCountCommand;
}
public void setWorkerCountCommand(Optional<String> workerCountCommand) {
this.workerCountCommand = workerCountCommand;
}
public boolean isLimitWorkerCount() {
return limitWorkerCount;
}
public void setLimitWorkerCount(boolean limitWorkerCount) {
this.limitWorkerCount = limitWorkerCount;
}
}