Class AgentLaunchersAutoConfiguration

java.lang.Object
com.netflix.genie.web.spring.autoconfigure.agent.launchers.AgentLaunchersAutoConfiguration

@Configuration @EnableConfigurationProperties({LocalAgentLauncherProperties.class,TitusAgentLauncherProperties.class}) @AutoConfigureAfter(org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration.class) public class AgentLaunchersAutoConfiguration extends Object
Auto configuration for beans responsible for launching Genie Agent instances.
Since:
4.0.0
  • Constructor Details

    • AgentLaunchersAutoConfiguration

      public AgentLaunchersAutoConfiguration()
  • Method Details

    • titusRestTemplate

      @Bean @ConditionalOnProperty(name="genie.agent.launcher.titus.enabled", havingValue="true") @ConditionalOnMissingBean(name="titusRestTemplate") public org.springframework.web.client.RestTemplate titusRestTemplate(org.springframework.boot.web.client.RestTemplateBuilder restTemplateBuilder)
      Provide a RestTemplate instance used for calling the Titus REST API if no other instance is provided.
      Parameters:
      restTemplateBuilder - The Spring RestTemplateBuilder instance to use
      Returns:
      The rest template to use
    • titusJobRequestAdapter

      @Bean @ConditionalOnProperty(name="genie.agent.launcher.titus.enabled", havingValue="true") @ConditionalOnMissingBean(TitusJobRequestAdapter.class) public TitusAgentLauncherImpl.TitusJobRequestAdapter titusJobRequestAdapter()
      Provides a default implementation of TitusAgentLauncherImpl.TitusJobRequestAdapter that is a no-op if no other implementation has been provided elsewhere.
      Returns:
      A no-op implementation
    • titusAPIRetryPolicy

      @Bean @ConditionalOnProperty(name="genie.agent.launcher.titus.enabled", havingValue="true") @ConditionalOnMissingBean(name="titusAPIRetryPolicy", value=org.springframework.retry.RetryPolicy.class) public TitusAgentLauncherImpl.TitusAPIRetryPolicy titusAPIRetryPolicy()
      Provides a default implementation of RetryPolicy that retries based on a set of HTTP status codes. Currently just HttpStatus.SERVICE_UNAVAILABLE and HttpStatus.REQUEST_TIMEOUT. Max retries set to 3.
      Returns:
      A TitusAgentLauncherImpl.TitusAPIRetryPolicy instance with the default settings applied
    • titusAPIBackoffPolicy

      @Bean @ConditionalOnProperty(name="genie.agent.launcher.titus.enabled", havingValue="true") @ConditionalOnMissingBean(name="titusAPIBackoffPolicy", value=org.springframework.retry.backoff.BackOffPolicy.class) public org.springframework.retry.backoff.ExponentialBackOffPolicy titusAPIBackoffPolicy()
      Provides a default implementation of BackOffPolicy if no other has been defined in the context.
      Returns:
      A default ExponentialBackOffPolicy instance
    • titusAPIRetryTemplate

      @Bean @ConditionalOnProperty(name="genie.agent.launcher.titus.enabled", havingValue="true") @ConditionalOnMissingBean(name="titusAPIRetryTemplate", value=org.springframework.retry.support.RetryTemplate.class) public org.springframework.retry.support.RetryTemplate titusAPIRetryTemplate(@Qualifier("titusAPIRetryPolicy") org.springframework.retry.RetryPolicy retryPolicy, @Qualifier("titusAPIBackoffPolicy") org.springframework.retry.backoff.BackOffPolicy backOffPolicy)
      Provides a default implementation of RetryTemplate that will be used to retry failed Titus api calls based on the retry policy and backoff policies defined in the application context.
      Parameters:
      retryPolicy - The RetryPolicy to use for Titus API call failures
      backOffPolicy - The BackOffPolicy to use for Titus API call failures
      Returns:
      A RetryTemplate instance configured with the supplied retry and backoff policies
    • titusAgentLauncher

      @Bean @ConditionalOnProperty(name="genie.agent.launcher.titus.enabled", havingValue="true") public TitusAgentLauncherImpl titusAgentLauncher(@Qualifier("titusRestTemplate") org.springframework.web.client.RestTemplate restTemplate, @Qualifier("titusAPIRetryTemplate") org.springframework.retry.support.RetryTemplate retryTemplate, TitusAgentLauncherImpl.TitusJobRequestAdapter titusJobRequestAdapter, GenieHostInfo genieHostInfo, TitusAgentLauncherProperties titusAgentLauncherProperties, BraveTracingComponents tracingComponents, org.springframework.core.env.Environment environment, io.micrometer.core.instrument.MeterRegistry registry)
      Provide a TitusAgentLauncherImpl implementation which launches agent processes in a dedicated Titus container if enabled via property.
      Parameters:
      restTemplate - the rest template
      retryTemplate - The RetryTemplate instance to use to retry failed Titus API calls
      titusJobRequestAdapter - The TitusAgentLauncherImpl.TitusJobRequestAdapter implementation to use
      genieHostInfo - the metadata about the local server and host
      titusAgentLauncherProperties - the configuration properties
      tracingComponents - The BraveTracingComponents instance to use
      environment - The application Environment used to pull dynamic properties after launch
      registry - the metric registry
      Returns:
      a TitusAgentLauncherImpl
    • processExecutorFactory

      @Bean @ConditionalOnMissingBean(ExecutorFactory.class) public ExecutorFactory processExecutorFactory()
      Provide an ExecutorFactory instance if no other was defined.
      Returns:
      Instance of ExecutorFactory
    • localAgentLauncher

      @Bean @ConditionalOnProperty(name="genie.agent.launcher.local.enabled", havingValue="true") public LocalAgentLauncherImpl localAgentLauncher(GenieWebHostInfo genieWebHostInfo, GenieWebRpcInfo genieWebRpcInfo, DataServices dataServices, LocalAgentLauncherProperties launcherProperties, ExecutorFactory executorFactory, BraveTracingComponents tracingComponents, io.micrometer.core.instrument.MeterRegistry registry)
      Provide a AgentLauncher implementation which launches local agent processes if enabled via property.
      Parameters:
      genieWebHostInfo - The GenieWebHostInfo of this instance
      genieWebRpcInfo - The GenieWebRpcInfo of this instance
      dataServices - The DataServices instance to use
      launcherProperties - The properties related to launching an agent locally
      executorFactory - The ExecutorFactory to use to launch agent processes
      tracingComponents - The BraveTracingComponents instance to use
      registry - The MeterRegistry to register metrics
      Returns:
      A LocalAgentLauncherImpl instance