// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.model.container.configserver; import com.yahoo.vespa.model.container.configserver.option.CloudConfigOptions; import java.util.Objects; import java.util.Optional; /** * @author Ulf Lilleengen */ public class TestOptions implements CloudConfigOptions { private ConfigServer[] configServers = new ConfigServer[0]; private int[] configServerZookeeperIds = new int[0]; private Optional rpcPort = Optional.empty(); private Optional environment = Optional.empty(); private Optional region = Optional.empty(); private Optional useVespaVersionInRequest = Optional.empty(); private Optional hostedVespa = Optional.empty(); private String zooKeeperSnapshotMethod = "gz"; @Override public Optional rpcPort() { return rpcPort; } public TestOptions rpcPort(int port) { this.rpcPort = Optional.of(port); return this; } public TestOptions useVespaVersionInRequest(boolean useVespaVersionInRequest) { this.useVespaVersionInRequest = Optional.of(useVespaVersionInRequest); return this; } @Override public Optional multiTenant() { return Optional.empty(); } @Override public Optional hostedVespa() { return hostedVespa; } @Override public ConfigServer[] allConfigServers() { return configServers; } @Override public int[] configServerZookeeperIds() { return configServerZookeeperIds; } @Override public Optional zookeeperClientPort() { return Optional.empty(); } @Override public String[] configModelPluginDirs() { return new String[0]; } @Override public Optional sessionLifeTimeSecs() { return Optional.empty(); } @Override public Optional zookeeperBarrierTimeout() { return Optional.empty(); } @Override public Optional zookeeperElectionPort() { return Optional.empty(); } @Override public Optional zookeeperQuorumPort() { return Optional.empty(); } @Override public Optional environment() { return environment; } @Override public Optional region() { return region; } @Override public Optional system() { return Optional.empty(); } @Override public Optional useVespaVersionInRequest() { return useVespaVersionInRequest; } @Override public Optional loadBalancerAddress() { return Optional.empty(); } @Override public Optional athenzDnsSuffix() { return Optional.empty(); } @Override public Optional ztsUrl() { return Optional.empty(); } @Override public String zooKeeperSnapshotMethod() { return zooKeeperSnapshotMethod; } public TestOptions configServers(ConfigServer[] configServers) { this.configServers = configServers; return this; } public TestOptions configServerZookeeperIds(int[] configServerZookeeperIds) { this.configServerZookeeperIds = configServerZookeeperIds; return this; } public TestOptions environment(String environment) { this.environment = Optional.of(environment); return this; } public TestOptions region(String region) { this.region = Optional.of(region); return this; } public TestOptions hostedVespa(boolean hostedVespa) { this.hostedVespa = Optional.of(hostedVespa); return this; } public TestOptions zooKeeperSnapshotMethod(String snapshotMethod) { Objects.requireNonNull(snapshotMethod); this.zooKeeperSnapshotMethod = snapshotMethod; return this; } }