Class PersistentQueryControllerConfiguration

java.lang.Object
com.illumon.iris.controller.PersistentQueryControllerConfiguration
All Implemented Interfaces:
Serializable

public class PersistentQueryControllerConfiguration extends Object implements Serializable
Class to hold serializable persistent query controller configuration information; used by the controller and any client which needs access to the controller's configuration information.
See Also:
  • Constructor Details

  • Method Details

    • getMinDataBufferPoolToHeapSizeRatio

      public double getMinDataBufferPoolToHeapSizeRatio()
    • getMaxDataBufferPoolToHeapSizeRatio

      public double getMaxDataBufferPoolToHeapSizeRatio()
    • getDbServerNames

      public Set<String> getDbServerNames()
    • getDbServers

      public Map<String,PersistentQueryDbServerConfig> getDbServers()
    • getConfigurationTypes

      @NotNull public Map<String,ConsoleConfigurationType> getConfigurationTypes()
    • getDefaultSchedulingDetails

      public String[] getDefaultSchedulingDetails()
    • getSchedulingLookForwardDays

      public int getSchedulingLookForwardDays()
    • getJvmProfileNames

      public Set<String> getJvmProfileNames()
    • getDefaultJvmProfileName

      public String getDefaultJvmProfileName()
    • getServerTypeToGroupsMap

      public Map<String,Set<String>> getServerTypeToGroupsMap()
    • getDefaultMaxHeapSizeGb

      public int getDefaultMaxHeapSizeGb()
    • getMaxHeapGBForServer

      public static double getMaxHeapGBForServer(@Nullable PersistentQueryControllerConfiguration controllerConfiguration, @NotNull String dbServerName)
      Return the maximum heap size in GB for a db server for a possibly-null PersistentQueryControllerConfiguration. If the controller configuration is null, then the maximum possible heap size is used. Otherwise, if the server name is found in the server map, return that server's value, otherwise return the default maximum.
      Parameters:
      dbServerName - the server name
      Returns:
      the maximum heap in GB
    • getMaxHeapGBForServer

      public double getMaxHeapGBForServer(String dbServerName)
      Return the maximum heap size in GB for a db server. If the server name is found in the server map, return that server's value, otherwise return the default maximum.
      Parameters:
      dbServerName - the server name
      Returns:
      the maximum heap in GB
    • getServerNamesForClasses

      @NotNull public List<String> getServerNamesForClasses(@NotNull Collection<String> serverClasses)
      Get the server names applicable for specified collection of server classes
      Parameters:
      serverClasses - the server classes for which to retrieve the names
      Returns:
      a List of valid server names
    • getServerNamesForClasses

      public List<String> getServerNamesForClasses(@NotNull String[] serverClasses)
      Get the server names applicable for specified array of server classes
      Parameters:
      serverClasses - the server classes for which to retrieve the names
      Returns:
      a List of valid server names
    • getDisplayableConfigurationTypes

      public Map<String,ConsoleConfigurationType> getDisplayableConfigurationTypes(IrisUserContext userContext)
      Get the Map of configuration types that are displayable and editable. A configuration type is displayable based on its entry from the configuration types XML file:
      • if its element does not change the default displayable="true" attribute to indicate false, and
      • if its element has an allowedGroups attribute, the user must be a superuser or member of that group
      Parameters:
      userContext - an IrisUserContext used to determine group memberships
      Returns:
      a Map of configuration names to ConsoleConfigurationType instances
    • isAllowedUserForQuery

      public boolean isAllowedUserForQuery(ConfigurationType consoleConfigurationType, UserContext userContext, IrisGroupProvider groupProvider)
      Determine whether the user is allowed to add or modify the specified configuration type
      Parameters:
      consoleConfigurationType - the configuration type
      userContext - an IrisUserContext used to determine group memberships
      Returns:
      true if the specified user context is allowed to create and edit the specified configuration type
    • getTemporaryQueueNames

      public Set<String> getTemporaryQueueNames()
    • getDefaultTemporaryQueueName

      public String getDefaultTemporaryQueueName()
    • getTemporaryQueueDetails

      public Map<String,ControllerTemporaryQueueDetails> getTemporaryQueueDetails()
    • getPublicKey

      public PublicKey getPublicKey()
    • getConsoleServerGroups

      public Map<String,Set<String>> getConsoleServerGroups()
    • getDataRoutingImplementationName

      public String getDataRoutingImplementationName()
    • getTableDataServiceInfoConfigs

      @NotNull public Collection<RoutingConfigurationInfo> getTableDataServiceInfoConfigs()
    • getDataImportServerConfigs

      @NotNull public Collection<RoutingConfigurationInfo> getDataImportServerConfigs()
      Return the list of DIS instances.
      Returns:
      a collection of DIS names, tags, and optional descriptions
    • getLogAggregatorServiceConfigs

      @NotNull public Collection<RoutingConfigurationInfo> getLogAggregatorServiceConfigs()
      Return a collection of log aggregator service instances.
      Returns:
      a collection of log aggregator service names and optional descriptions
    • getAllowedServerClassesForUser

      @NotNull public Set<String> getAllowedServerClassesForUser(IrisUserContext userContext)
    • getAssignmentPolicies

      public Map<String,AssignmentPolicyConfig> getAssignmentPolicies()
    • getDefaultAssignmentPolicyParams

      public String getDefaultAssignmentPolicyParams()
    • getDefaultAssignmentPolicyName

      public String getDefaultAssignmentPolicyName()
    • makeServerConfiguration

      public static PersistentQueryControllerConfiguration makeServerConfiguration(ControllerReloadableConfiguration reloadableConfig)