Class ContainerCluster<CONTAINER extends Container>

  • All Implemented Interfaces:
    com.yahoo.cloud.config.ClusterInfoConfig.Producer, com.yahoo.cloud.config.ConfigserverConfig.Producer, com.yahoo.cloud.config.RoutingProviderConfig.Producer, com.yahoo.config.ConfigInstance.Producer, com.yahoo.config.docproc.DocprocConfig.Producer, com.yahoo.config.docproc.SchemamappingConfig.Producer, com.yahoo.container.BundlesConfig.Producer, com.yahoo.container.ComponentsConfig.Producer, com.yahoo.container.core.ApplicationMetadataConfig.Producer, com.yahoo.container.core.document.ContainerDocumentConfig.Producer, com.yahoo.container.handler.ThreadpoolConfig.Producer, com.yahoo.container.jdisc.config.HealthMonitorConfig.Producer, com.yahoo.container.jdisc.JdiscBindingsConfig.Producer, com.yahoo.container.QrSearchersConfig.Producer, com.yahoo.document.config.DocumentmanagerConfig.Producer, com.yahoo.prelude.semantics.SemanticRulesConfig.Producer, com.yahoo.search.config.IndexInfoConfig.Producer, com.yahoo.search.config.QrStartConfig.Producer, com.yahoo.search.pagetemplates.PageTemplatesConfig.Producer, com.yahoo.search.query.profile.config.QueryProfilesConfig.Producer, com.yahoo.vespa.configdefinition.IlscriptsConfig.Producer, ConfigProducer, java.io.Serializable
    Direct Known Subclasses:
    ApplicationContainerCluster, ClusterControllerContainerCluster, LogserverContainerCluster, MetricsProxyContainerCluster

    public abstract class ContainerCluster<CONTAINER extends Container>
    extends AbstractConfigProducer<AbstractConfigProducer<?>>
    implements com.yahoo.container.ComponentsConfig.Producer, com.yahoo.container.jdisc.JdiscBindingsConfig.Producer, com.yahoo.document.config.DocumentmanagerConfig.Producer, com.yahoo.container.core.document.ContainerDocumentConfig.Producer, com.yahoo.container.jdisc.config.HealthMonitorConfig.Producer, com.yahoo.container.core.ApplicationMetadataConfig.Producer, com.yahoo.container.BundlesConfig.Producer, com.yahoo.search.config.IndexInfoConfig.Producer, com.yahoo.vespa.configdefinition.IlscriptsConfig.Producer, com.yahoo.config.docproc.SchemamappingConfig.Producer, com.yahoo.container.QrSearchersConfig.Producer, com.yahoo.search.config.QrStartConfig.Producer, com.yahoo.search.query.profile.config.QueryProfilesConfig.Producer, com.yahoo.search.pagetemplates.PageTemplatesConfig.Producer, com.yahoo.prelude.semantics.SemanticRulesConfig.Producer, com.yahoo.config.docproc.DocprocConfig.Producer, com.yahoo.cloud.config.ClusterInfoConfig.Producer, com.yahoo.cloud.config.RoutingProviderConfig.Producer, com.yahoo.cloud.config.ConfigserverConfig.Producer, com.yahoo.container.handler.ThreadpoolConfig.Producer
    Parent class for all container cluster types.
    Author:
    gjoranv, Einar M R Rosenvinge, Tony Vaagenes
    See Also:
    Serialized Form
    • Field Detail

      • RESERVED_URI_PREFIX

        public static final java.lang.String RESERVED_URI_PREFIX
        URI prefix used for internal, usually programmatic, APIs. URIs using this prefix should never considered available for direct use by customers, and normal compatibility concerns only applies to libraries using the URIs in question, not contents served from the URIs themselves.
        See Also:
        Constant Field Values
      • APPLICATION_STATUS_HANDLER_CLASS

        public static final java.lang.String APPLICATION_STATUS_HANDLER_CLASS
        See Also:
        Constant Field Values
      • BINDINGS_OVERVIEW_HANDLER_CLASS

        public static final java.lang.String BINDINGS_OVERVIEW_HANDLER_CLASS
      • LOG_HANDLER_CLASS

        public static final java.lang.String LOG_HANDLER_CLASS
      • DEFAULT_LINGUISTICS_PROVIDER

        public static final java.lang.String DEFAULT_LINGUISTICS_PROVIDER
        See Also:
        Constant Field Values
      • STATE_HANDLER_CLASS

        public static final java.lang.String STATE_HANDLER_CLASS
        See Also:
        Constant Field Values
      • STATE_HANDLER_BINDING_1

        public static final java.lang.String STATE_HANDLER_BINDING_1
        See Also:
        Constant Field Values
      • STATE_HANDLER_BINDING_2

        public static final java.lang.String STATE_HANDLER_BINDING_2
        See Also:
        Constant Field Values
      • ROOT_HANDLER_PATH

        public static final java.lang.String ROOT_HANDLER_PATH
        See Also:
        Constant Field Values
      • ROOT_HANDLER_BINDING

        public static final java.lang.String ROOT_HANDLER_BINDING
        See Also:
        Constant Field Values
      • VIP_HANDLER_BINDING

        public static final java.lang.String VIP_HANDLER_BINDING
        See Also:
        Constant Field Values
    • Constructor Detail

    • Method Detail

      • getThreadPoolSizeFactor

        public double getThreadPoolSizeFactor()
      • getQueueSizeFactor

        public double getQueueSizeFactor()
      • setZone

        public void setZone​(com.yahoo.config.provision.Zone zone)
      • getZone

        public com.yahoo.config.provision.Zone getZone()
      • addDefaultHandlersWithVip

        public void addDefaultHandlersWithVip()
      • addDefaultHandlersExceptStatus

        public final void addDefaultHandlersExceptStatus()
      • addMetricStateHandler

        public void addMetricStateHandler()
      • addDefaultRootHandler

        public void addDefaultRootHandler()
      • addApplicationStatusHandler

        public void addApplicationStatusHandler()
      • addVipHandler

        public void addVipHandler()
      • addComponent

        public final void addComponent​(Component<?,​?> component)
      • addSimpleComponent

        public final void addSimpleComponent​(java.lang.String idSpec,
                                             java.lang.String classSpec,
                                             java.lang.String bundleSpec)
      • removeComponent

        public Component removeComponent​(com.yahoo.component.ComponentId componentId)
        Removes a component by id
        Returns:
        the removed component, or null if it was not present
      • addSimpleComponent

        protected void addSimpleComponent​(java.lang.String className)
      • prepare

        public void prepare​(DeployState deployState)
      • doPrepare

        protected abstract void doPrepare​(DeployState deployState)
      • getName

        public java.lang.String getName()
      • getContainers

        public java.util.List<CONTAINER> getContainers()
      • addContainer

        public void addContainer​(CONTAINER container)
      • addContainers

        public void addContainers​(java.util.Collection<CONTAINER> containers)
      • setProcessingChains

        public void setProcessingChains​(ProcessingChains processingChains,
                                        java.lang.String... serverBindings)
      • setHttp

        public void setHttp​(Http http)
      • getHttp

        public Http getHttp()
      • getHandlers

        public java.util.Collection<Handler<?>> getHandlers()
      • setSecretStore

        public void setSecretStore​(SecretStore secretStore)
      • getSecretStore

        public java.util.Optional<SecretStore> getSecretStore()
      • getComponentsMap

        public java.util.Map<com.yahoo.component.ComponentId,​Component<?,​?>> getComponentsMap()
      • getAllComponents

        public java.util.Collection<Component<?,​?>> getAllComponents()
        Returns all components in this cluster (generic, handlers, chained)
      • getConfig

        public void getConfig​(com.yahoo.container.ComponentsConfig.Builder builder)
        Specified by:
        getConfig in interface com.yahoo.container.ComponentsConfig.Producer
      • getConfig

        public void getConfig​(com.yahoo.container.jdisc.JdiscBindingsConfig.Builder builder)
        Specified by:
        getConfig in interface com.yahoo.container.jdisc.JdiscBindingsConfig.Producer
      • getConfig

        public void getConfig​(com.yahoo.document.config.DocumentmanagerConfig.Builder builder)
        Specified by:
        getConfig in interface com.yahoo.document.config.DocumentmanagerConfig.Producer
      • getConfig

        public void getConfig​(com.yahoo.container.core.document.ContainerDocumentConfig.Builder builder)
        Specified by:
        getConfig in interface com.yahoo.container.core.document.ContainerDocumentConfig.Producer
      • getConfig

        public void getConfig​(com.yahoo.container.jdisc.config.HealthMonitorConfig.Builder builder)
        Specified by:
        getConfig in interface com.yahoo.container.jdisc.config.HealthMonitorConfig.Producer
      • getConfig

        public void getConfig​(com.yahoo.container.core.ApplicationMetadataConfig.Builder builder)
        Specified by:
        getConfig in interface com.yahoo.container.core.ApplicationMetadataConfig.Producer
      • addPlatformBundle

        public final void addPlatformBundle​(java.nio.file.Path bundlePath)
        Adds a bundle present at a known location at the target container nodes.
        Parameters:
        bundlePath - usually an absolute path, e.g. '$VESPA_HOME/lib/jars/foo.jar'
      • getConfig

        public void getConfig​(com.yahoo.container.BundlesConfig.Builder builder)
        Specified by:
        getConfig in interface com.yahoo.container.BundlesConfig.Producer
      • getConfig

        public void getConfig​(com.yahoo.container.QrSearchersConfig.Builder builder)
        Specified by:
        getConfig in interface com.yahoo.container.QrSearchersConfig.Producer
      • getConfig

        public void getConfig​(com.yahoo.search.config.QrStartConfig.Builder builder)
        Specified by:
        getConfig in interface com.yahoo.search.config.QrStartConfig.Producer
      • getConfig

        public void getConfig​(com.yahoo.config.docproc.DocprocConfig.Builder builder)
        Specified by:
        getConfig in interface com.yahoo.config.docproc.DocprocConfig.Producer
      • getConfig

        public void getConfig​(com.yahoo.search.pagetemplates.PageTemplatesConfig.Builder builder)
        Specified by:
        getConfig in interface com.yahoo.search.pagetemplates.PageTemplatesConfig.Producer
      • getConfig

        public void getConfig​(com.yahoo.prelude.semantics.SemanticRulesConfig.Builder builder)
        Specified by:
        getConfig in interface com.yahoo.prelude.semantics.SemanticRulesConfig.Producer
      • getConfig

        public void getConfig​(com.yahoo.search.query.profile.config.QueryProfilesConfig.Builder builder)
        Specified by:
        getConfig in interface com.yahoo.search.query.profile.config.QueryProfilesConfig.Producer
      • getConfig

        public void getConfig​(com.yahoo.config.docproc.SchemamappingConfig.Builder builder)
        Specified by:
        getConfig in interface com.yahoo.config.docproc.SchemamappingConfig.Producer
      • getConfig

        public void getConfig​(com.yahoo.search.config.IndexInfoConfig.Builder builder)
        Specified by:
        getConfig in interface com.yahoo.search.config.IndexInfoConfig.Producer
      • initialize

        public void initialize​(java.util.Map<java.lang.String,​AbstractSearchCluster> clusterMap)
      • addDefaultSearchAccessLog

        public void addDefaultSearchAccessLog()
      • getConfig

        public void getConfig​(com.yahoo.vespa.configdefinition.IlscriptsConfig.Builder builder)
        Specified by:
        getConfig in interface com.yahoo.vespa.configdefinition.IlscriptsConfig.Producer
      • getConfig

        public void getConfig​(com.yahoo.cloud.config.ClusterInfoConfig.Builder builder)
        Specified by:
        getConfig in interface com.yahoo.cloud.config.ClusterInfoConfig.Producer
      • getConfig

        public void getConfig​(com.yahoo.cloud.config.ConfigserverConfig.Builder builder)
        Returns a config server config containing the right zone settings (and defaults for the rest). This is useful to allow applications to find out in which zone they are runnung by having the Zone object (which is constructed from this config) injected.
        Specified by:
        getConfig in interface com.yahoo.cloud.config.ConfigserverConfig.Producer
      • isHostedVespa

        public boolean isHostedVespa()
      • getConfig

        public void getConfig​(com.yahoo.cloud.config.RoutingProviderConfig.Builder builder)
        Specified by:
        getConfig in interface com.yahoo.cloud.config.RoutingProviderConfig.Producer
      • concreteDocumentTypes

        public java.util.Map<java.lang.String,​java.lang.String> concreteDocumentTypes()
      • serviceAliases

        public java.util.List<java.lang.String> serviceAliases()
        The configured service aliases for the service in this cluster
      • endpointAliases

        public java.util.List<java.lang.String> endpointAliases()
        The configured endpoint aliases (fqdn) for the service in this cluster
      • setHostClusterId

        public void setHostClusterId​(java.lang.String clusterId)
      • getHostClusterId

        public java.util.Optional<java.lang.String> getHostClusterId()
        Returns the id of the content cluster which hosts this container cluster, if any. This is only set with hosted clusters where this container cluster is set up to run on the nodes of a content cluster.
      • setJvmGCOptions

        public void setJvmGCOptions​(java.lang.String opts)
      • setEnvironmentVars

        public void setEnvironmentVars​(java.lang.String environmentVars)
      • getJvmGCOptions

        public java.util.Optional<java.lang.String> getJvmGCOptions()
      • setRpcServerEnabled

        public final void setRpcServerEnabled​(boolean rpcServerEnabled)
      • setHttpServerEnabled

        public void setHttpServerEnabled​(boolean httpServerEnabled)
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • messageBusEnabled

        protected abstract boolean messageBusEnabled()