All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.yahoo.container.core.VipStatusConfig Maven / Gradle / Ivy

/**
 * This file is generated from a config definition file.
 * ------------   D O   N O T   E D I T !   ------------
 */

package com.yahoo.container.core;

import java.util.*;
import java.nio.file.Path;
import edu.umd.cs.findbugs.annotations.NonNull;
import com.yahoo.config.*;

/**
 * This class represents the root node of vip-status
 *
 * Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
 */
public final class VipStatusConfig extends ConfigInstance {

  public final static String CONFIG_DEF_MD5 = "3ba4170a4cc4608640dc128bf122e209";
  public final static String CONFIG_DEF_NAME = "vip-status";
  public final static String CONFIG_DEF_NAMESPACE = "container.core";
  public final static String CONFIG_DEF_VERSION = "";
  public final static String[] CONFIG_DEF_SCHEMA = {
    "namespace=container.core",
    "noSearchBackendsImpliesOutOfService bool default=true",
    "accessdisk bool default=false",
    "statusfile string default=\"share/qrsdocs/status.html\""
  };

  public static String getDefMd5()       { return CONFIG_DEF_MD5; }
  public static String getDefName()      { return CONFIG_DEF_NAME; }
  public static String getDefNamespace() { return CONFIG_DEF_NAMESPACE; }
  public static String getDefVersion()   { return CONFIG_DEF_VERSION; }

  public interface Producer extends ConfigInstance.Producer {
    void getConfig(Builder builder);
  }

  public static class Builder implements ConfigInstance.Builder {
    private Set __uninitialized = new HashSet();

    private Boolean noSearchBackendsImpliesOutOfService = null;
    private Boolean accessdisk = null;
    private String statusfile = null;

    public Builder() { }

    public Builder(VipStatusConfig config) {
      noSearchBackendsImpliesOutOfService(config.noSearchBackendsImpliesOutOfService());
      accessdisk(config.accessdisk());
      statusfile(config.statusfile());
    }

    private Builder override(Builder __superior) {
      if (__superior.noSearchBackendsImpliesOutOfService != null)
        noSearchBackendsImpliesOutOfService(__superior.noSearchBackendsImpliesOutOfService);
      if (__superior.accessdisk != null)
        accessdisk(__superior.accessdisk);
      if (__superior.statusfile != null)
        statusfile(__superior.statusfile);
      return this;
    }

    public Builder noSearchBackendsImpliesOutOfService(boolean __value) {
      noSearchBackendsImpliesOutOfService = __value;
      return this;
    }

    private Builder noSearchBackendsImpliesOutOfService(String __value) {
      return noSearchBackendsImpliesOutOfService(Boolean.valueOf(__value));
    }

    public Builder accessdisk(boolean __value) {
      accessdisk = __value;
      return this;
    }

    private Builder accessdisk(String __value) {
      return accessdisk(Boolean.valueOf(__value));
    }

    public Builder statusfile(String __value) {
    if (__value == null) throw new IllegalArgumentException("Null value is not allowed.");
      statusfile = __value;
      return this;
    }


    @java.lang.Override
    public final boolean dispatchGetConfig(ConfigInstance.Producer producer) {
      if (producer instanceof Producer) {
        ((Producer)producer).getConfig(this);
        return true;
      }
      return false;
    }

    @java.lang.Override
    public final String getDefMd5()       { return CONFIG_DEF_MD5; }
    @java.lang.Override
    public final String getDefName()      { return CONFIG_DEF_NAME; }
    @java.lang.Override
    public final String getDefNamespace() { return CONFIG_DEF_NAMESPACE; }
  }

  // If there is a Vespa search backend connected to this container, and that
  // backend is out of service, automatically remove this container from VIP
  // rotation, ignoring any status file.
  private final BooleanNode noSearchBackendsImpliesOutOfService;
  // Whether to return hard coded reply or serve "status.html" from disk
  private final BooleanNode accessdisk;
  // The file to serve as the status file.
  // If the paht is relative vespa home is prepended
  private final StringNode statusfile;

  public VipStatusConfig(Builder builder) {
    this(builder, true);
  }

  private VipStatusConfig(Builder builder, boolean throwIfUninitialized) {
    if (throwIfUninitialized && ! builder.__uninitialized.isEmpty())
      throw new IllegalArgumentException("The following builder parameters for " +
          "vip-status must be initialized: " + builder.__uninitialized);

    noSearchBackendsImpliesOutOfService = (builder.noSearchBackendsImpliesOutOfService == null) ?
        new BooleanNode(true) : new BooleanNode(builder.noSearchBackendsImpliesOutOfService);
    accessdisk = (builder.accessdisk == null) ?
        new BooleanNode(false) : new BooleanNode(builder.accessdisk);
    statusfile = (builder.statusfile == null) ?
        new StringNode("share/qrsdocs/status.html") : new StringNode(builder.statusfile);
  }

  /**
   * @return vip-status.noSearchBackendsImpliesOutOfService
   */
  public boolean noSearchBackendsImpliesOutOfService() {
    return noSearchBackendsImpliesOutOfService.value();
  }

  /**
   * @return vip-status.accessdisk
   */
  public boolean accessdisk() {
    return accessdisk.value();
  }

  /**
   * @return vip-status.statusfile
   */
  public String statusfile() {
    return statusfile.value();
  }

  private ChangesRequiringRestart getChangesRequiringRestart(VipStatusConfig newConfig) {
    ChangesRequiringRestart changes = new ChangesRequiringRestart("vip-status");
    return changes;
  }

  private static boolean containsFieldsFlaggedWithRestart() {
    return false;
  }


}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy