Class CreateClusterLinkPolicy

java.lang.Object
io.confluent.kafka.server.plugins.policy.CreateClusterLinkPolicy
All Implemented Interfaces:
org.apache.kafka.common.Configurable, org.apache.kafka.common.Reconfigurable, org.apache.kafka.server.interceptor.ClusterLinkInterceptor, org.apache.kafka.server.policy.CreateClusterLinkPolicy

public class CreateClusterLinkPolicy extends Object implements org.apache.kafka.server.policy.CreateClusterLinkPolicy, org.apache.kafka.server.interceptor.ClusterLinkInterceptor, org.apache.kafka.common.Reconfigurable
Enforce the policy when creating the cluster links, for example enforcing maximum number of cluster links per tenant. Even though validate(), linkAdded() and linkDeleted() are thread-safe, clients should execute validate() and linkAdded() atomically so that the number of links won't exceed the limit.
  • Constructor Details

    • CreateClusterLinkPolicy

      public CreateClusterLinkPolicy()
  • Method Details

    • configure

      public void configure(Map<String,?> configs)
      Specified by:
      configure in interface org.apache.kafka.common.Configurable
    • reconfigure

      public void reconfigure(Map<String,?> configs)
      Specified by:
      reconfigure in interface org.apache.kafka.common.Reconfigurable
    • reconfigurableConfigs

      public Set<String> reconfigurableConfigs()
      Specified by:
      reconfigurableConfigs in interface org.apache.kafka.common.Reconfigurable
    • validateReconfiguration

      public void validateReconfiguration(Map<String,?> configs) throws org.apache.kafka.common.config.ConfigException
      Specified by:
      validateReconfiguration in interface org.apache.kafka.common.Reconfigurable
      Throws:
      org.apache.kafka.common.config.ConfigException
    • validate

      public void validate(Optional<String> tenantPrefix, String linkModeStr, Map<String,String> configs) throws org.apache.kafka.common.errors.PolicyViolationException
      Specified by:
      validate in interface org.apache.kafka.server.policy.CreateClusterLinkPolicy
      Throws:
      org.apache.kafka.common.errors.PolicyViolationException
    • setTenantMaxDestLinks

      public void setTenantMaxDestLinks(Optional<String> tenantId, Optional<Integer> maxDestinationLinks)
      Specified by:
      setTenantMaxDestLinks in interface org.apache.kafka.server.policy.CreateClusterLinkPolicy
    • setTenantMaxSourceLinks

      public void setTenantMaxSourceLinks(Optional<String> tenantId, Optional<Integer> maxSourceLinks)
      Specified by:
      setTenantMaxSourceLinks in interface org.apache.kafka.server.policy.CreateClusterLinkPolicy
    • linkAdded

      public void linkAdded(org.apache.kafka.common.Uuid linkId, Optional<String> tenantPrefix, String linkModeStr)
      Specified by:
      linkAdded in interface org.apache.kafka.server.interceptor.ClusterLinkInterceptor
    • linkDeleted

      public void linkDeleted(org.apache.kafka.common.Uuid linkId)
      Specified by:
      linkDeleted in interface org.apache.kafka.server.interceptor.ClusterLinkInterceptor
    • links

      public Set<org.apache.kafka.common.Uuid> links()
      Specified by:
      links in interface org.apache.kafka.server.interceptor.ClusterLinkInterceptor