diff options
Diffstat (limited to 'config-model/src')
28 files changed, 157 insertions, 160 deletions
diff --git a/config-model/src/main/java/com/yahoo/config/model/producer/package-info.java b/config-model/src/main/java/com/yahoo/config/model/producer/package-info.java index c58a116b196..e6d1731ddf8 100644 --- a/config-model/src/main/java/com/yahoo/config/model/producer/package-info.java +++ b/config-model/src/main/java/com/yahoo/config/model/producer/package-info.java @@ -2,4 +2,4 @@ @ExportPackage package com.yahoo.config.model.producer; -import com.yahoo.osgi.annotation.ExportPackage;
\ No newline at end of file +import com.yahoo.osgi.annotation.ExportPackage; diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/ConstantTensorTransformer.java b/config-model/src/main/java/com/yahoo/searchdefinition/ConstantTensorTransformer.java index b10a8633a3a..7232a2c5299 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/ConstantTensorTransformer.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/ConstantTensorTransformer.java @@ -71,4 +71,4 @@ class ConstantTensorTransformer extends ExpressionTransformer { return new ReferenceNode("constant", Arrays.asList(new NameNode(node.getName())), null); } -}
\ No newline at end of file +} diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/UnprocessingSearchBuilder.java b/config-model/src/main/java/com/yahoo/searchdefinition/UnprocessingSearchBuilder.java index 3df0c1f9953..70a51cfd7ba 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/UnprocessingSearchBuilder.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/UnprocessingSearchBuilder.java @@ -37,4 +37,4 @@ public class UnprocessingSearchBuilder extends SearchBuilder { builder.build(); return builder.getSearch(); } -}
\ No newline at end of file +} diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/derived/package-info.java b/config-model/src/main/java/com/yahoo/searchdefinition/derived/package-info.java index 4e63729ea34..a44c2f45d6f 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/derived/package-info.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/derived/package-info.java @@ -2,4 +2,4 @@ @ExportPackage package com.yahoo.searchdefinition.derived; -import com.yahoo.osgi.annotation.ExportPackage;
\ No newline at end of file +import com.yahoo.osgi.annotation.ExportPackage; diff --git a/config-model/src/main/java/com/yahoo/vespa/model/AbstractService.java b/config-model/src/main/java/com/yahoo/vespa/model/AbstractService.java index bda79ee2356..dd6556f81d2 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/AbstractService.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/AbstractService.java @@ -102,7 +102,7 @@ public abstract class AbstractService extends AbstractConfigProducer<AbstractCon Map<HostResource, List<SERVICE>> affinityMap = new HashMap<>(); for (SERVICE service : services) { if (!affinityMap.containsKey(service.getHostResource())) { - affinityMap.put(service.getHostResource(), new ArrayList<SERVICE>()); + affinityMap.put(service.getHostResource(), new ArrayList<>()); } int cpuSocket = affinityMap.get(service.getHostResource()).size(); affinityMap.get(service.getHostResource()).add(service); @@ -548,4 +548,9 @@ public abstract class AbstractService extends AbstractConfigProducer<AbstractCon public void setAffinity(Affinity affinity) { this.affinity = Optional.ofNullable(affinity); } + + @Override + public String toString() { + return getServiceName() + " on " + getHost().toString(); + } } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/HostResource.java b/config-model/src/main/java/com/yahoo/vespa/model/HostResource.java index d54dc912da6..46dc287bb10 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/HostResource.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/HostResource.java @@ -3,13 +3,11 @@ package com.yahoo.vespa.model; import com.yahoo.config.model.api.HostInfo; import com.yahoo.config.provision.ClusterMembership; -import com.yahoo.config.provision.ClusterSpec; import com.yahoo.config.provision.Flavor; import javax.annotation.Nullable; import java.util.ArrayList; import java.util.Collections; -import java.util.Iterator; import java.util.LinkedHashMap; import java.util.LinkedHashSet; import java.util.List; @@ -30,7 +28,7 @@ import java.util.stream.Collectors; public class HostResource implements Comparable<HostResource> { public final static int BASE_PORT = 19100; - public final static int MAX_PORTS = 799; + final static int MAX_PORTS = 799; private final Host host; // Map from "sentinel name" to service @@ -81,18 +79,6 @@ public class HostResource implements Comparable<HostResource> { 0; } - boolean isPortRangeAvailable(int start, int numPorts) { - int range = 0; - int port = start; - for (; port < BASE_PORT + MAX_PORTS && (range < numPorts); port++) { - if (portDB.containsKey(port)) { - return false; - } - range++; - } - return range == numPorts; - } - /** * Adds service and allocates resources for it. * @@ -179,7 +165,8 @@ public class HostResource implements Comparable<HostResource> { return port >= BASE_PORT && port < BASE_PORT + MAX_PORTS; } - private void portAlreadyReserved(AbstractService service, int port) { + + private void portAlreadyReserved(AbstractService service, int port) { AbstractService otherService = (AbstractService)portDB.get(port); int nextAvailablePort = nextAvailableBaseport(service.getPortCount()); if (nextAvailablePort == 0) { @@ -190,10 +177,9 @@ public class HostResource implements Comparable<HostResource> { : ""; throw new RuntimeException(service.getServiceName() + " cannot reserve port " + port + " on " + this + ": Already reserved for " + otherService.getServiceName() + - ". " + msg + "Next available port is: " + nextAvailablePort); + ". " + msg + "Next available port is: " + nextAvailablePort + " ports used: " + portDB); } - private void noMoreAvailablePorts() { throw new RuntimeException ("Too many ports are reserved in Vespa's port range (" + @@ -201,7 +187,6 @@ public class HostResource implements Comparable<HostResource> { ". Move one or more services to another host, or outside this port range."); } - /** * Returns the service with the given "sentinel name" on this Host, * or null if the name does not match any service. diff --git a/config-model/src/main/java/com/yahoo/vespa/model/PortsMeta.java b/config-model/src/main/java/com/yahoo/vespa/model/PortsMeta.java index a0b3cc7294b..e8f2bf42807 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/PortsMeta.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/PortsMeta.java @@ -20,7 +20,7 @@ public class PortsMeta implements Serializable { private Integer rpcAdminOffset = null; /** Remember the rpc status port offset. */ private Integer rpcStatusOffset = null; - /** Remember the https admin port offset. */ + /** Remember the http admin port offset. */ private Integer httpAdminOffset = null; /** Remember the http status port offset. */ private Integer httpStatusOffset = null; @@ -64,7 +64,7 @@ public class PortsMeta implements Serializable { private PortsMeta register(int offset, String meta) { // Allocate new LinkedLists on each element up-to-and-including offset for (int i = ports.size(); i <= offset; i++) { - ports.add(i, new LinkedList<String>()); + ports.add(i, new LinkedList<>()); } ports.get(offset).addFirst(meta); @@ -88,6 +88,7 @@ public class PortsMeta implements Serializable { public int getNumPorts() { return ports.size(); } + /** * Get an iterator of the Strings registered at the specific point. * @param offset The relative offset to inquire about tags. diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/Configserver.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/Configserver.java index b2c2510ce22..cd06ae67776 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/admin/Configserver.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/Configserver.java @@ -42,16 +42,16 @@ public class Configserver extends AbstractService { * Returns the desired base port for this service. */ public int getWantedPort() { - try { - // TODO: Provide configserver port as argument when creating this service instead - Process process = new ProcessBuilder(getDefaults().underVespaHome("bin/vespa-print-default"), "configserver_rpc_port").start(); - InputStream in = process.getInputStream(); - BufferedReader reader = new BufferedReader(new InputStreamReader(in)); - return Integer.parseInt(reader.readLine().trim()); - } catch (Exception exception) { - log.log(LogLevel.DEBUG, "Error reading port from script, using " + defaultPort); - return defaultPort; - } + try { + // TODO: Provide configserver port as argument when creating this service instead + Process process = new ProcessBuilder(getDefaults().underVespaHome("bin/vespa-print-default"), "configserver_rpc_port").start(); + InputStream in = process.getInputStream(); + BufferedReader reader = new BufferedReader(new InputStreamReader(in)); + return Integer.parseInt(reader.readLine().trim()); + } catch (Exception exception) { + log.log(LogLevel.DEBUG, "Error reading port from script, using " + defaultPort); + return defaultPort; + } } /** diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/Slobrok.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/Slobrok.java index a2b7c7a5532..912809178ee 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/admin/Slobrok.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/Slobrok.java @@ -13,8 +13,8 @@ public class Slobrok extends AbstractService { private static final long serialVersionUID = 1L; /** - * @param parent The parent ConfigProducer. - * @param index unique index for all slobroks + * @param parent The parent ConfigProducer. + * @param index unique index for all slobroks */ public Slobrok(AbstractConfigProducer parent, int index) { super(parent, "slobrok." + index); @@ -42,8 +42,8 @@ public class Slobrok extends AbstractService { public String getStartupCommand() { return "exec $ROOT/bin/slobrok -p " + getPort() + - " -s " + getStatePort() + - " -c " + getConfigId(); + " -s " + getStatePort() + + " -c " + getConfigId(); } /** diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/clustercontroller/ClusterControllerComponent.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/clustercontroller/ClusterControllerComponent.java index 8ec1cecf47a..d2dace21b86 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/admin/clustercontroller/ClusterControllerComponent.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/clustercontroller/ClusterControllerComponent.java @@ -17,4 +17,4 @@ public class ClusterControllerComponent extends SimpleComponent new ComponentSpecification("com.yahoo.vespa.clustercontroller.apps.clustercontroller.ClusterController"), new ComponentSpecification("clustercontroller-apps")))); } -}
\ No newline at end of file +} diff --git a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/DeploymentFileValidator.java b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/DeploymentFileValidator.java index e692b053de5..02e02cbe20a 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/DeploymentFileValidator.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/DeploymentFileValidator.java @@ -37,4 +37,4 @@ public class DeploymentFileValidator extends Validator { } } } -}
\ No newline at end of file +} diff --git a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/RankingConstantsValidator.java b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/RankingConstantsValidator.java index 7017a5a233c..83d06f470a7 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/RankingConstantsValidator.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/RankingConstantsValidator.java @@ -68,4 +68,4 @@ public class RankingConstantsValidator extends Validator { tensorApplicationFile.createReader()); } -}
\ No newline at end of file +} diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/Container.java b/config-model/src/main/java/com/yahoo/vespa/model/container/Container.java index 56fa3d01abc..baf4b8d41e4 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/Container.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/Container.java @@ -48,18 +48,7 @@ public class Container extends AbstractService implements ComponentsConfig.Producer, JdiscBindingsConfig.Producer, ContainerHttpConfig.Producer, - ContainerMbusConfig.Producer -{ - public static final class PortOverride { - public final ComponentSpecification serverId; - public final int port; - - public PortOverride(ComponentSpecification serverId, int port) { - this.serverId = serverId; - this.port = port; - } - } - + ContainerMbusConfig.Producer { public static final int BASEPORT = Defaults.getDefaults().vespaWebServicePort(); public static final String SINGLENODE_CONTAINER_SERVICESPEC = "default_singlenode_container"; @@ -80,15 +69,15 @@ public class Container extends AbstractService implements private final int index; private final ComponentGroup<Handler<?>> handlers = new ComponentGroup<>(this, "handler"); - private final ComponentGroup<Component<?, ?>> components = new ComponentGroup(this, "components"); + private final ComponentGroup<Component<?, ?>> components = new ComponentGroup<>(this, "components"); private final JettyHttpServer defaultHttpServer = new JettyHttpServer(new ComponentId("DefaultHttpServer")); private final List<PortOverride> portOverrides; private final int numHttpServerPorts; - private final int numRpcServerPorts = 2; - private static String defaultHostedJVMArgs = "-XX:+UseOSErrorReporting -XX:+SuppressFatalErrorMessage"; + private static final int numRpcServerPorts = 2; + private static final String defaultHostedJVMArgs = "-XX:+UseOSErrorReporting -XX:+SuppressFatalErrorMessage"; public Container(AbstractConfigProducer parent, String name, int index) { this(parent, name, Collections.<PortOverride>emptyList(), index); @@ -218,7 +207,7 @@ public class Container extends AbstractService implements return (parent instanceof ContainerCluster) && (((ContainerCluster)parent).getDocproc() != null); } - // TODO: hack to retain old service names, e.g. in ymon config, vespa.log etc. + // TODO: hack to retain old service names, e.g. in monitoring config, vespa.log etc. @Override public String getServiceType() { if (parent instanceof ContainerCluster) { @@ -404,4 +393,14 @@ public class Container extends AbstractService implements this.httpServerEnabled = httpServerEnabled; } + public static final class PortOverride { + public final ComponentSpecification serverId; + public final int port; + + public PortOverride(ComponentSpecification serverId, int port) { + this.serverId = serverId; + this.port = port; + } + } + } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java index dbae6851977..fdb0f08f631 100755 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java @@ -154,7 +154,7 @@ public final class ContainerCluster public static final String ROOT_HANDLER_BINDING = "*://*/"; - private String name; + private final String name; private List<Container> containers = new ArrayList<>(); @@ -243,9 +243,9 @@ public final class ContainerCluster Handler<AbstractConfigProducer<?>> stateHandler = new Handler<>( new ComponentModel(STATE_HANDLER_CLASS, null, null, null)); stateHandler.addServerBindings("http://*" + StateHandler.STATE_API_ROOT, - "https://*" + StateHandler.STATE_API_ROOT, - "http://*" + StateHandler.STATE_API_ROOT + "/*", - "https://*" + StateHandler.STATE_API_ROOT + "/*"); + "https://*" + StateHandler.STATE_API_ROOT, + "http://*" + StateHandler.STATE_API_ROOT + "/*", + "https://*" + StateHandler.STATE_API_ROOT + "/*"); addComponent(stateHandler); } @@ -308,12 +308,6 @@ public final class ContainerCluster } } - public final void addComponents(Collection<Component<?, ?>> components) { - for (Component<?, ?> component : components) { - addComponent(component); - } - } - public final void addSimpleComponent(String idSpec, String classSpec, String bundleSpec) { addComponent(new SimpleComponent(new ComponentModel(idSpec, classSpec, bundleSpec))); } @@ -847,14 +841,14 @@ public final class ContainerCluster } public static class MbusParams { - //the amount of the maxpendingbytes to process concurrently, typically 0.2 (20%) - public final Double maxConcurrentFactor; + // the amount of the maxpendingbytes to process concurrently, typically 0.2 (20%) + final Double maxConcurrentFactor; - //the amount that documents expand temporarily when processing them - public final Double documentExpansionFactor; + // the amount that documents expand temporarily when processing them + final Double documentExpansionFactor; - //the space to reserve for container, docproc stuff (memory that cannot be used for processing documents), in MB - public final Integer containerCoreMemory; + // the space to reserve for container, docproc stuff (memory that cannot be used for processing documents), in MB + final Integer containerCoreMemory; public MbusParams(Double maxConcurrentFactor, Double documentExpansionFactor, Integer containerCoreMemory) { this.maxConcurrentFactor = maxConcurrentFactor; diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/http/package-info.java b/config-model/src/main/java/com/yahoo/vespa/model/container/http/package-info.java index 304a6cd5052..e1671c78a94 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/http/package-info.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/http/package-info.java @@ -2,4 +2,4 @@ @ExportPackage package com.yahoo.vespa.model.container.http; -import com.yahoo.osgi.annotation.ExportPackage;
\ No newline at end of file +import com.yahoo.osgi.annotation.ExportPackage; diff --git a/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java index 90ad0117dfb..1ddfbbd76e1 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java @@ -6,6 +6,7 @@ import com.google.common.collect.Sets; import com.yahoo.config.model.ConfigModelContext; import com.yahoo.config.model.producer.AbstractConfigProducerRoot; import com.yahoo.config.provision.ClusterSpec; +import com.yahoo.config.provision.Environment; import com.yahoo.config.provision.RegionName; import com.yahoo.config.provision.Zone; import com.yahoo.vespa.config.content.MessagetyperouteselectorpolicyConfig; @@ -46,6 +47,7 @@ import org.w3c.dom.Element; import java.util.*; import java.util.logging.Level; import java.util.stream.Collectors; +import java.util.stream.Stream; /** * A content cluster. @@ -100,7 +102,7 @@ public class ContentCluster extends AbstractConfigProducer implements StorDistri ModelElement documentsElement = contentElement.getChild("documents"); Map<String, NewDocumentType> documentDefinitions = - new SearchDefinitionBuilder().build(context.getParentProducer().getRoot().getDeployState().getDocumentModel().getDocumentManager(), documentsElement); + new SearchDefinitionBuilder().build(context.getDeployState().getDocumentModel().getDocumentManager(), documentsElement); String routingSelection = new DocumentSelectionBuilder().build(documentsElement); Redundancy redundancy = new RedundancyBuilder().build(contentElement); @@ -108,7 +110,7 @@ public class ContentCluster extends AbstractConfigProducer implements StorDistri ContentCluster c = new ContentCluster(context.getParentProducer(), getClusterName(contentElement), documentDefinitions, globallyDistributedDocuments, routingSelection, redundancy, - context.getParentProducer().getRoot().getDeployState().getProperties().zone()); + context.getDeployState().getProperties().zone()); c.clusterControllerConfig = new ClusterControllerConfig.Builder(getClusterName(contentElement), contentElement).build(c, contentElement.getXml()); c.search = new ContentSearchCluster.Builder(documentDefinitions, globallyDistributedDocuments).build(c, contentElement.getXml()); c.persistenceFactory = new EngineFactoryBuilder().build(contentElement, c); @@ -585,19 +587,27 @@ public class ContentCluster extends AbstractConfigProducer implements StorDistri /** * Returns the distribution bits this cluster should use. - * OnHosted Vespa this is hardcoded not computed from the nodes because reducing the number of nodes is a common - * operation while reducing the number of distribution bits can lead to consistency problems. + * On Hosted Vespa this is hardcoded and not computed from the nodes because reducing the number of nodes is a common + * operation, while reducing the number of distribution bits can lead to consistency problems. * This hardcoded value should work fine from 1-200 nodes. Those who have more will need to set this value * in config and not remove it again if they reduce the node count. */ public int distributionBits() { - if (zone.region().equals(RegionName.from("us-west-1"))) return 16; // TODO: Enable for all hosted zones (i.e when zone isn't default) - if (zone.region().equals(RegionName.from("us-central-1"))) return 16; // TODO: Enable for all hosted zones (i.e when zone isn't default) - if (zone.region().equals(RegionName.from("eu-west-1"))) return 16; // TODO: Enable for all hosted zones (i.e when zone isn't default) - if (zone.region().equals(RegionName.from("ap-northeast-1"))) return 16; // TODO: Enable for all hosted zones (i.e when zone isn't default) - if (zone.region().equals(RegionName.from("ap-northeast-2"))) return 16; // TODO: Enable for all hosted zones (i.e when zone isn't default) - if (zone.region().equals(RegionName.from("us-east-3"))) return 16; // TODO: Enable for all hosted zones (i.e when zone isn't default) - return DistributionBitCalculator.getDistributionBits(getNodeCountPerGroup(), getDistributionMode()); + // TODO: Enable for all hosted zones (i.e when zone isn't default) + List<Zone> zonesWith16DistributionBits = Arrays.asList(createZone(Environment.prod, "us-west-1"), + createZone(Environment.prod, "us-central-1"), + createZone(Environment.prod, "eu-west-1"), + createZone(Environment.prod, "ap-northeast-1"), + createZone(Environment.prod, "ap-northeast-2"), + createZone(Environment.prod, "us-east-3")); + if (zonesWith16DistributionBits.contains(zone)) + return 16; + else + return DistributionBitCalculator.getDistributionBits(getNodeCountPerGroup(), getDistributionMode()); + } + + private Zone createZone(Environment environment, String region) { + return new Zone(environment, RegionName.from(region)); } @Override diff --git a/config-model/src/main/java/com/yahoo/vespa/model/utils/FileSender.java b/config-model/src/main/java/com/yahoo/vespa/model/utils/FileSender.java index 84685ecef3d..f43f579c26b 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/utils/FileSender.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/utils/FileSender.java @@ -147,4 +147,4 @@ public class FileSender implements Serializable { builder.setValue(reference.value()); } -}
\ No newline at end of file +} diff --git a/config-model/src/test/cfg/application/validation/ranking_constants_fail/services.xml b/config-model/src/test/cfg/application/validation/ranking_constants_fail/services.xml index 66af18ed7bc..be6672f415f 100644 --- a/config-model/src/test/cfg/application/validation/ranking_constants_fail/services.xml +++ b/config-model/src/test/cfg/application/validation/ranking_constants_fail/services.xml @@ -14,4 +14,4 @@ <node hostalias='node1' distribution-key='0'/> </nodes> </content> -</services>
\ No newline at end of file +</services> diff --git a/config-model/src/test/examples/weightedset-summaryto.sd b/config-model/src/test/examples/weightedset-summaryto.sd index b72d674e743..adc0ff163ea 100644 --- a/config-model/src/test/examples/weightedset-summaryto.sd +++ b/config-model/src/test/examples/weightedset-summaryto.sd @@ -12,4 +12,4 @@ search test { } -}
\ No newline at end of file +} diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/derived/EmptyRankProfileTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/derived/EmptyRankProfileTestCase.java index b790d9e68e8..b7eb1414f6d 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/derived/EmptyRankProfileTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/derived/EmptyRankProfileTestCase.java @@ -35,4 +35,4 @@ public class EmptyRankProfileTestCase extends SearchDefinitionTestCase { search = SearchBuilder.buildFromRawSearch(search, rankProfileRegistry); new DerivedConfiguration(search, rankProfileRegistry); } -}
\ No newline at end of file +} diff --git a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/ConstantTensorJsonValidatorTest.java b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/ConstantTensorJsonValidatorTest.java index 718f4592709..053d2ba87f2 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/ConstantTensorJsonValidatorTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/ConstantTensorJsonValidatorTest.java @@ -276,4 +276,4 @@ public class ConstantTensorJsonValidatorTest { "}")); } -}
\ No newline at end of file +} diff --git a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/RankingConstantsValidatorTest.java b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/RankingConstantsValidatorTest.java index c2aee71063d..d126dd0585c 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/RankingConstantsValidatorTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/RankingConstantsValidatorTest.java @@ -25,4 +25,4 @@ public class RankingConstantsValidatorTest { new VespaModelCreatorWithFilePkg("src/test/cfg/application/validation/ranking_constants_fail/").create(); } -}
\ No newline at end of file +} diff --git a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/search/IndexingScriptChangeValidatorTest.java b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/search/IndexingScriptChangeValidatorTest.java index 0dea99c7b01..3ad3f2c2fdc 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/search/IndexingScriptChangeValidatorTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/search/IndexingScriptChangeValidatorTest.java @@ -163,4 +163,4 @@ public class IndexingScriptChangeValidatorTest { validate()); } -}
\ No newline at end of file +} diff --git a/config-model/src/test/java/com/yahoo/vespa/model/container/ContainerClusterTest.java b/config-model/src/test/java/com/yahoo/vespa/model/container/ContainerClusterTest.java index 859dd15e040..9b0e02d580b 100755 --- a/config-model/src/test/java/com/yahoo/vespa/model/container/ContainerClusterTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/container/ContainerClusterTest.java @@ -207,7 +207,7 @@ public class ContainerClusterTest { addContainer(cluster, "c2", "host-c2"); assertTrue(false); } catch (IllegalArgumentException e) { - assertTrue(e.getMessage().startsWith("Cluster container1 does not accept container com.yahoo.vespa.model.container.Container")); + assertEquals("Cluster container1 does not accept container qrserver on host 'host-c2'", e.getMessage()); } } diff --git a/config-model/src/test/java/com/yahoo/vespa/model/content/ClusterTest.java b/config-model/src/test/java/com/yahoo/vespa/model/content/ClusterTest.java index 126fcf7a583..82cbc338a8e 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/content/ClusterTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/content/ClusterTest.java @@ -1,8 +1,14 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.model.content; +import com.yahoo.config.model.deploy.DeployProperties; +import com.yahoo.config.model.deploy.DeployState; +import com.yahoo.config.model.test.MockRoot; import com.yahoo.config.model.test.TestDriver; import com.yahoo.config.model.test.TestRoot; +import com.yahoo.config.provision.Environment; +import com.yahoo.config.provision.RegionName; +import com.yahoo.config.provision.Zone; import com.yahoo.vespa.config.content.core.StorDistributormanagerConfig; import com.yahoo.vespa.config.content.StorFilestorConfig; import com.yahoo.vespa.config.content.core.StorServerConfig; @@ -14,15 +20,20 @@ import com.yahoo.vespa.model.VespaModel; import com.yahoo.vespa.model.container.ContainerCluster; import com.yahoo.vespa.model.content.cluster.ContentCluster; import com.yahoo.vespa.model.content.engines.ProtonEngine; +import com.yahoo.vespa.model.content.utils.ContentClusterBuilder; +import com.yahoo.vespa.model.content.utils.ContentClusterUtils; +import com.yahoo.vespa.model.content.utils.SearchDefinitionBuilder; import com.yahoo.vespa.model.test.utils.ApplicationPackageUtils; import com.yahoo.vespa.model.test.utils.VespaModelCreatorWithMockPkg; import org.junit.Test; import java.util.List; +import static junit.framework.TestCase.assertEquals; import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.*; +// TODO Rename to ContentClusterTest public class ClusterTest extends ContentBaseTest { private final static String HOSTS = "<admin version='2.0'><adminserver hostalias='mockhost' /></admin>"; @@ -412,20 +423,8 @@ public class ClusterTest extends ContentBaseTest { "</content>" ); - { - FleetcontrollerConfig.Builder builder = new FleetcontrollerConfig.Builder(); - cluster.getConfig(builder); - cluster.getClusterControllerConfig().getConfig(builder); - FleetcontrollerConfig config = new FleetcontrollerConfig(builder); - assertEquals(8, config.ideal_distribution_bits()); - } + assertDistributionBitsInConfig(cluster, 8); - { - StorDistributormanagerConfig.Builder builder = new StorDistributormanagerConfig.Builder(); - cluster.getConfig(builder); - StorDistributormanagerConfig config = new StorDistributormanagerConfig(builder); - assertEquals(8, config.minsplitcount()); - } cluster = parse( "<content version=\"1.0\" id=\"storage\">\n" + " <documents/>" + @@ -438,20 +437,7 @@ public class ClusterTest extends ContentBaseTest { "</content>" ); - { - FleetcontrollerConfig.Builder builder = new FleetcontrollerConfig.Builder(); - cluster.getConfig(builder); - cluster.getClusterControllerConfig().getConfig(builder); - FleetcontrollerConfig config = new FleetcontrollerConfig(builder); - assertEquals(8, config.ideal_distribution_bits()); - } - - { - StorDistributormanagerConfig.Builder builder = new StorDistributormanagerConfig.Builder(); - cluster.getConfig(builder); - StorDistributormanagerConfig config = new StorDistributormanagerConfig(builder); - assertEquals(8, config.minsplitcount()); - } + assertDistributionBitsInConfig(cluster, 8); } @Test @@ -469,20 +455,8 @@ public class ClusterTest extends ContentBaseTest { "</content>" ); - { - FleetcontrollerConfig.Builder builder = new FleetcontrollerConfig.Builder(); - cluster.getConfig(builder); - cluster.getClusterControllerConfig().getConfig(builder); - FleetcontrollerConfig config = new FleetcontrollerConfig(builder); - assertEquals(8, config.ideal_distribution_bits()); - } + assertDistributionBitsInConfig(cluster, 8); - { - StorDistributormanagerConfig.Builder builder = new StorDistributormanagerConfig.Builder(); - cluster.getConfig(builder); - StorDistributormanagerConfig config = new StorDistributormanagerConfig(builder); - assertEquals(8, config.minsplitcount()); - } cluster = parse( "<content version=\"1.0\" id=\"storage\">\n" + " <documents/>" + @@ -498,23 +472,20 @@ public class ClusterTest extends ContentBaseTest { "</content>" ); - { - FleetcontrollerConfig.Builder builder = new FleetcontrollerConfig.Builder(); - cluster.getConfig(builder); - cluster.getClusterControllerConfig().getConfig(builder); - FleetcontrollerConfig config = new FleetcontrollerConfig(builder); - assertEquals(8, config.ideal_distribution_bits()); - } - - { - StorDistributormanagerConfig.Builder builder = new StorDistributormanagerConfig.Builder(); - cluster.getConfig(builder); - StorDistributormanagerConfig config = new StorDistributormanagerConfig(builder); - assertEquals(8, config.minsplitcount()); - } + assertDistributionBitsInConfig(cluster, 8); } @Test + public void testZoneDependentDistributionBits() throws Exception { + String xml = new ContentClusterBuilder().docTypes("test").getXml(); + + ContentCluster prodWith16Bits = createWithZone(xml, new Zone(Environment.prod, RegionName.from("us-east-3"))); + assertDistributionBitsInConfig(prodWith16Bits, 16); + + ContentCluster stagingNot16Bits = createWithZone(xml, new Zone(Environment.staging, RegionName.from("us-east-3"))); + assertDistributionBitsInConfig(stagingNot16Bits, 8); + } + @Test public void testGenerateSearchNodes() { ContentCluster cluster = parse( @@ -818,4 +789,31 @@ public class ClusterTest extends ContentBaseTest { assertThat(cluster.getSearch().getSearchNodes().size(), is(1)); assertTrue(cluster.getSearch().getSearchNodes().get(0).getPreShutdownCommand().isPresent()); } + + private ContentCluster createWithZone(String clusterXml, Zone zone) throws Exception { + DeployState.Builder deployStateBuilder = new DeployState.Builder().properties(new DeployProperties.Builder() + .hostedVespa(true) + .zone(zone) + .build()); + List<String> searchDefinitions = SearchDefinitionBuilder.createSearchDefinitions("test"); + MockRoot root = ContentClusterUtils.createMockRoot(searchDefinitions, deployStateBuilder); + ContentCluster cluster = ContentClusterUtils.createCluster(clusterXml, root); + root.freezeModelTopology(); + cluster.validate(); + return cluster; + } + + private void assertDistributionBitsInConfig(ContentCluster cluster, int distributionBits) { + FleetcontrollerConfig.Builder builder = new FleetcontrollerConfig.Builder(); + cluster.getConfig(builder); + cluster.getClusterControllerConfig().getConfig(builder); + FleetcontrollerConfig config = new FleetcontrollerConfig(builder); + assertEquals(distributionBits, config.ideal_distribution_bits()); + + StorDistributormanagerConfig.Builder sdBuilder = new StorDistributormanagerConfig.Builder(); + cluster.getConfig(sdBuilder); + StorDistributormanagerConfig storDistributormanagerConfig = new StorDistributormanagerConfig(sdBuilder); + assertEquals(distributionBits, storDistributormanagerConfig.minsplitcount()); + } + } diff --git a/config-model/src/test/java/com/yahoo/vespa/model/content/utils/ContentClusterUtils.java b/config-model/src/test/java/com/yahoo/vespa/model/content/utils/ContentClusterUtils.java index 595013c506e..aebe1b76644 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/content/utils/ContentClusterUtils.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/content/utils/ContentClusterUtils.java @@ -2,10 +2,8 @@ package com.yahoo.vespa.model.content.utils; import com.yahoo.config.application.api.ApplicationPackage; -import com.yahoo.config.application.api.DeployLogger; import com.yahoo.config.model.ConfigModelContext; import com.yahoo.config.model.api.HostProvisioner; -import com.yahoo.config.model.application.provider.BaseDeployLogger; import com.yahoo.config.model.deploy.DeployState; import com.yahoo.config.model.provision.InMemoryProvisioner; import com.yahoo.config.model.provision.SingleNodeProvisioner; @@ -34,14 +32,17 @@ public class ContentClusterUtils { } private static MockRoot createMockRoot(HostProvisioner provisioner, List<String> searchDefinitions) { - ApplicationPackage applicationPackage = new MockApplicationPackage.Builder().withSearchDefinitions(searchDefinitions).build(); - DeployState deployState = new DeployState.Builder() - .applicationPackage(applicationPackage) - .modelHostProvisioner(provisioner) - .build(); - return new MockRoot("", deployState); + return createMockRoot(provisioner, searchDefinitions, new DeployState.Builder()); + } + private static MockRoot createMockRoot(HostProvisioner provisioner, List<String> searchDefinitions, DeployState.Builder deployStateBuilder) { + ApplicationPackage applicationPackage = new MockApplicationPackage.Builder().withSearchDefinitions(searchDefinitions).build(); + deployStateBuilder.applicationPackage(applicationPackage) + .modelHostProvisioner(provisioner) + .build(); + return new MockRoot("", deployStateBuilder.build()); } + public static MockRoot createMockRoot(String[] hosts, List<String> searchDefinitions) throws Exception { return createMockRoot(new InMemoryProvisioner(true, hosts), searchDefinitions); } @@ -50,10 +51,14 @@ public class ContentClusterUtils { return createMockRoot(new SingleNodeProvisioner(), searchDefinitions); } + public static MockRoot createMockRoot(List<String> searchDefinitions, DeployState.Builder deployStateBuilder) { + return createMockRoot(new SingleNodeProvisioner(), searchDefinitions, deployStateBuilder); + } + public static ContentCluster createCluster(String clusterXml, MockRoot root) throws Exception { Document doc = XML.getDocument(clusterXml); Admin admin = new Admin(root, new Yamas("vespa", 60), new Metrics(), Collections.emptyMap(), false); - ConfigModelContext context = ConfigModelContext.create(null, DeployState.createTestState(), null, root, null); + ConfigModelContext context = ConfigModelContext.create(null, root.getDeployState(), null, root, null); return new ContentCluster.Builder(admin).build(Collections.emptyList(), context, doc.getDocumentElement()); } diff --git a/config-model/src/test/java/com/yahoo/vespa/model/generic/GenericServicesModelTest.java b/config-model/src/test/java/com/yahoo/vespa/model/generic/GenericServicesModelTest.java index d58e005e2ae..77019689e0a 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/generic/GenericServicesModelTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/generic/GenericServicesModelTest.java @@ -59,4 +59,4 @@ public class GenericServicesModelTest { assertThat(gsModel.serviceClusters().get(0).services().size(), is(1)); } -}
\ No newline at end of file +} diff --git a/config-model/src/test/java/com/yahoo/vespa/model/test/PortsMetaTestCase.java b/config-model/src/test/java/com/yahoo/vespa/model/test/PortsMetaTestCase.java index 40dc134190b..d9f8800ef77 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/test/PortsMetaTestCase.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/test/PortsMetaTestCase.java @@ -34,4 +34,4 @@ public class PortsMetaTestCase extends junit.framework.TestCase { assertNull(pm.getHttpStatusOffset()); } -}
\ No newline at end of file +} |