@Configuration @EnableConfigurationProperties(value={DataServiceRetryProperties.class,FileCacheProperties.class,HealthProperties.class,JobsCleanupProperties.class,JobsForwardingProperties.class,JobsLocationsProperties.class,JobsMaxProperties.class,JobsMemoryProperties.class,JobsUsersProperties.class,ExponentialBackOffTriggerProperties.class,JobsActiveLimitProperties.class}) public class GenieServicesAutoConfiguration extends java.lang.Object
Constructor and Description |
---|
GenieServicesAutoConfiguration() |
Modifier and Type | Method and Description |
---|---|
AgentFilterService |
agentFilterService()
Get a NOOP/fallback
AgentFilterService instance if there isn't already one. |
AgentJobService |
agentJobService(JobPersistenceService jobPersistenceService,
JobSpecificationService jobSpecificationService,
AgentFilterService agentFilterService,
io.micrometer.core.instrument.MeterRegistry meterRegistry)
Get a
AgentJobService instance if there isn't already one. |
AgentMetricsServiceImpl |
agentMetricsService(GenieHostInfo genieHostInfo,
AgentConnectionPersistenceService agentConnectionPersistenceService,
io.micrometer.core.instrument.MeterRegistry registry)
Provide an implementation of
AgentMetricsService if one hasn't been provided. |
AgentRoutingService |
agentRoutingService(AgentConnectionPersistenceService agentConnectionPersistenceService,
GenieHostInfo genieHostInfo)
Get an implementation of
AgentRoutingService if one hasn't already been defined. |
AttachmentService |
attachmentService(JobsProperties jobsProperties)
The attachment service to use.
|
GenieFileTransferService |
cacheGenieFileTransferService(FileTransferFactory fileTransferFactory,
FileCacheProperties fileCacheProperties,
LocalFileTransferImpl localFileTransfer,
io.micrometer.core.instrument.MeterRegistry registry)
Get an instance of the Cache Genie File Transfer service.
|
AgentFileStreamService |
fallbackAgentFileStreamService()
Get a fallback implementation of
AgentFileStreamService in case gRPC is disabled. |
JobKillServiceV4 |
fallbackJobKillServiceV4()
Get a fallback implementation of
JobKillServiceV4 in case gRPC is disabled. |
org.springframework.beans.factory.config.ServiceLocatorFactoryBean |
fileTransferFactory()
FileTransfer factory.
|
GenieFileTransferService |
genieFileTransferService(FileTransferFactory fileTransferFactory)
Get an instance of the Genie File Transfer service.
|
JobCompletionService |
jobCompletionService(JobPersistenceService jobPersistenceService,
JobSearchService jobSearchService,
JobArchiveService jobArchiveService,
org.springframework.core.io.Resource genieWorkingDir,
MailService mailService,
io.micrometer.core.instrument.MeterRegistry registry,
JobsProperties jobsProperties,
org.springframework.retry.support.RetryTemplate retryTemplate)
Get an implementation of
JobCompletionService if one hasn't already been defined. |
JobCoordinatorService |
jobCoordinatorService(JobPersistenceService jobPersistenceService,
JobKillService jobKillService,
JobStateService jobStateService,
JobSearchService jobSearchService,
JobsProperties jobsProperties,
ApplicationPersistenceService applicationPersistenceService,
ClusterPersistenceService clusterPersistenceService,
CommandPersistenceService commandPersistenceService,
JobSpecificationService specificationService,
io.micrometer.core.instrument.MeterRegistry registry,
GenieHostInfo genieHostInfo)
Get an instance of the JobCoordinatorService.
|
JobDirectoryServerService |
jobDirectoryServerService(org.springframework.core.io.ResourceLoader resourceLoader,
JobPersistenceService jobPersistenceService,
JobFileService jobFileService,
AgentFileStreamService agentFileStreamService,
io.micrometer.core.instrument.MeterRegistry meterRegistry)
Provide the default implementation of
JobDirectoryServerService for serving job directory resources. |
JobFileService |
jobFileService(org.springframework.core.io.Resource jobsDir)
Get a
JobFileService implementation if one is required. |
JobKillService |
jobKillService(JobKillServiceV3 jobKillServiceV3,
JobKillServiceV4 jobKillServiceV4,
JobPersistenceService jobPersistenceService)
Get an local implementation of the JobKillService.
|
JobKillServiceV3 |
jobKillServiceV3(GenieHostInfo genieHostInfo,
JobSearchService jobSearchService,
org.apache.commons.exec.Executor executor,
JobsProperties jobsProperties,
GenieEventBus genieEventBus,
org.springframework.core.io.Resource genieWorkingDir,
com.fasterxml.jackson.databind.ObjectMapper objectMapper,
ProcessChecker.Factory processCheckerFactory)
Get an local implementation of the JobKillService.
|
JobSpecificationService |
jobSpecificationService(ApplicationPersistenceService applicationPersistenceService,
ClusterPersistenceService clusterPersistenceService,
CommandPersistenceService commandPersistenceService,
@NotEmpty java.util.List<ClusterLoadBalancer> clusterLoadBalancers,
io.micrometer.core.instrument.MeterRegistry registry,
JobsProperties jobsProperties)
Get an implementation of
JobSpecificationService if one hasn't already been defined. |
JobsProperties |
jobsProperties(JobsCleanupProperties cleanup,
JobsForwardingProperties forwarding,
JobsLocationsProperties locations,
JobsMaxProperties max,
JobsMemoryProperties memory,
JobsUsersProperties users,
ExponentialBackOffTriggerProperties completionCheckBackOff,
JobsActiveLimitProperties activeLimit)
Collection of properties related to job execution.
|
JobSubmitterService |
jobSubmitterService(JobPersistenceService jobPersistenceService,
GenieEventBus genieEventBus,
java.util.List<WorkflowTask> workflowTasks,
org.springframework.core.io.Resource genieWorkingDir,
io.micrometer.core.instrument.MeterRegistry registry)
Get a implementation of the JobSubmitterService that runs jobs locally.
|
@Bean public JobsProperties jobsProperties(JobsCleanupProperties cleanup, JobsForwardingProperties forwarding, JobsLocationsProperties locations, JobsMaxProperties max, JobsMemoryProperties memory, JobsUsersProperties users, ExponentialBackOffTriggerProperties completionCheckBackOff, JobsActiveLimitProperties activeLimit)
cleanup
- cleanup propertiesforwarding
- forwarding propertieslocations
- locations propertiesmax
- max propertiesmemory
- memory propertiesusers
- users propertiescompletionCheckBackOff
- completion back-off propertiesactiveLimit
- active limit propertiesJobsProperties
instance@Bean @ConditionalOnMissingBean(value=JobKillServiceV3.class) public JobKillServiceV3 jobKillServiceV3(GenieHostInfo genieHostInfo, JobSearchService jobSearchService, org.apache.commons.exec.Executor executor, JobsProperties jobsProperties, GenieEventBus genieEventBus, @Qualifier(value="jobsDir") org.springframework.core.io.Resource genieWorkingDir, com.fasterxml.jackson.databind.ObjectMapper objectMapper, ProcessChecker.Factory processCheckerFactory)
genieHostInfo
- Information about the host the Genie process is running onjobSearchService
- The job search service to use to locate job information.executor
- The executor to use to run system processes.jobsProperties
- The jobs properties to usegenieEventBus
- The application event bus to use to publish system wide eventsgenieWorkingDir
- Working directory for genie where it creates jobs directories.objectMapper
- The Jackson ObjectMapper used to serialize from/to JSONprocessCheckerFactory
- The process checker factory@Bean @ConditionalOnMissingBean(value=JobKillService.class) public JobKillService jobKillService(JobKillServiceV3 jobKillServiceV3, JobKillServiceV4 jobKillServiceV4, JobPersistenceService jobPersistenceService)
jobKillServiceV3
- Service to kill V3 jobs.jobKillServiceV4
- Service to kill V4 jobs.jobPersistenceService
- Job persistence service@Bean @ConditionalOnMissingBean(value=JobKillServiceV4.class) public JobKillServiceV4 fallbackJobKillServiceV4()
JobKillServiceV4
in case gRPC is disabled.@Bean @ConditionalOnMissingBean(name="genieFileTransferService") public GenieFileTransferService genieFileTransferService(FileTransferFactory fileTransferFactory) throws GenieException
fileTransferFactory
- file transfer implementation factoryGenieException
- If there is any problem@Bean @ConditionalOnMissingBean(name="cacheGenieFileTransferService") public GenieFileTransferService cacheGenieFileTransferService(FileTransferFactory fileTransferFactory, FileCacheProperties fileCacheProperties, LocalFileTransferImpl localFileTransfer, io.micrometer.core.instrument.MeterRegistry registry) throws GenieException
fileTransferFactory
- file transfer implementation factoryfileCacheProperties
- Properties related to the file cache that can be set by the adminlocalFileTransfer
- local file transfer serviceregistry
- RegistryGenieException
- If there is any problem@Bean @ConditionalOnMissingBean(value=JobSubmitterService.class) public JobSubmitterService jobSubmitterService(JobPersistenceService jobPersistenceService, GenieEventBus genieEventBus, java.util.List<WorkflowTask> workflowTasks, @Qualifier(value="jobsDir") org.springframework.core.io.Resource genieWorkingDir, io.micrometer.core.instrument.MeterRegistry registry)
jobPersistenceService
- Implementation of the job persistence service.genieEventBus
- The genie event bus implementation to useworkflowTasks
- List of all the workflow tasks to be executed.genieWorkingDir
- Working directory for genie where it creates jobs directories.registry
- The metrics registry to use@Bean @ConditionalOnMissingBean(value=JobCoordinatorService.class) public JobCoordinatorService jobCoordinatorService(JobPersistenceService jobPersistenceService, JobKillService jobKillService, @Qualifier(value="jobMonitoringCoordinator") JobStateService jobStateService, JobSearchService jobSearchService, JobsProperties jobsProperties, ApplicationPersistenceService applicationPersistenceService, ClusterPersistenceService clusterPersistenceService, CommandPersistenceService commandPersistenceService, JobSpecificationService specificationService, io.micrometer.core.instrument.MeterRegistry registry, GenieHostInfo genieHostInfo)
jobPersistenceService
- implementation of job persistence service interfacejobKillService
- The job kill service to usejobStateService
- The running job metrics service to usejobSearchService
- Implementation of job search service interfacejobsProperties
- The jobs properties to useapplicationPersistenceService
- Implementation of application service interfaceclusterPersistenceService
- Implementation of cluster service interfacecommandPersistenceService
- Implementation of command service interfacespecificationService
- The job specification service to useregistry
- The metrics registry to usegenieHostInfo
- Information about the host the Genie process is running on@Bean @ConditionalOnMissingBean(value=AttachmentService.class) public AttachmentService attachmentService(JobsProperties jobsProperties)
jobsProperties
- All properties related to jobs@Bean @ConditionalOnMissingBean(name="fileTransferFactory", value=org.springframework.beans.factory.config.ServiceLocatorFactoryBean.class) public org.springframework.beans.factory.config.ServiceLocatorFactoryBean fileTransferFactory()
@Bean @ConditionalOnMissingBean(value=AgentJobService.class) public AgentJobService agentJobService(JobPersistenceService jobPersistenceService, JobSpecificationService jobSpecificationService, AgentFilterService agentFilterService, io.micrometer.core.instrument.MeterRegistry meterRegistry)
AgentJobService
instance if there isn't already one.jobPersistenceService
- The persistence service to usejobSpecificationService
- The specification service to useagentFilterService
- The agent filter service to usemeterRegistry
- The metrics registry to useAgentJobServiceImpl
instance.@Bean @ConditionalOnMissingBean(value=JobFileService.class) public JobFileService jobFileService(@Qualifier(value="jobsDir") org.springframework.core.io.Resource jobsDir) throws java.io.IOException
JobFileService
implementation if one is required.jobsDir
- The job directory resourceDiskJobFileServiceImpl
instancejava.io.IOException
- When the job directory can't be created or isn't a directory@Bean @ConditionalOnMissingBean(value=JobSpecificationService.class) public JobSpecificationService jobSpecificationService(ApplicationPersistenceService applicationPersistenceService, ClusterPersistenceService clusterPersistenceService, CommandPersistenceService commandPersistenceService, @NotEmpty @NotEmpty java.util.List<ClusterLoadBalancer> clusterLoadBalancers, io.micrometer.core.instrument.MeterRegistry registry, JobsProperties jobsProperties)
JobSpecificationService
if one hasn't already been defined.applicationPersistenceService
- The service to use to manipulate applicationsclusterPersistenceService
- The service to use to manipulate clusterscommandPersistenceService
- The service to use to manipulate commandsclusterLoadBalancers
- The load balancer implementations to useregistry
- The metrics repository to usejobsProperties
- The properties for running a job set by the userJobSpecificationServiceImpl
instance@Bean @ConditionalOnMissingBean(value=AgentRoutingService.class) public AgentRoutingService agentRoutingService(AgentConnectionPersistenceService agentConnectionPersistenceService, GenieHostInfo genieHostInfo)
AgentRoutingService
if one hasn't already been defined.agentConnectionPersistenceService
- The persistence service to use for agent connectionsgenieHostInfo
- The local genie host informationAgentRoutingServiceImpl
instance@Bean @ConditionalOnMissingBean(value=JobCompletionService.class) public JobCompletionService jobCompletionService(JobPersistenceService jobPersistenceService, JobSearchService jobSearchService, JobArchiveService jobArchiveService, @Qualifier(value="jobsDir") org.springframework.core.io.Resource genieWorkingDir, MailService mailService, io.micrometer.core.instrument.MeterRegistry registry, JobsProperties jobsProperties, @Qualifier(value="genieRetryTemplate") org.springframework.retry.support.RetryTemplate retryTemplate) throws GenieException
JobCompletionService
if one hasn't already been defined.jobPersistenceService
- The job persistence service to usejobSearchService
- The job search service to usejobArchiveService
- The JobArchiveService
implementation to usegenieWorkingDir
- Working directory for genie where it creates jobs directories.mailService
- The mail serviceregistry
- RegistryjobsProperties
- The jobs properties to useretryTemplate
- The retry templateJobCompletionService
GenieException
- if the bean fails during construction@Bean @ConditionalOnMissingBean(value=AgentFilterService.class) public AgentFilterService agentFilterService()
AgentFilterService
instance if there isn't already one.AgentFilterService
instance.GenieAgentFilterAutoConfiguration
@Bean @ConditionalOnMissingBean(value=JobDirectoryServerService.class) public JobDirectoryServerService jobDirectoryServerService(org.springframework.core.io.ResourceLoader resourceLoader, JobPersistenceService jobPersistenceService, JobFileService jobFileService, AgentFileStreamService agentFileStreamService, io.micrometer.core.instrument.MeterRegistry meterRegistry)
JobDirectoryServerService
for serving job directory resources.resourceLoader
- The application resource loader used to get references to resourcesjobPersistenceService
- The job persistence service used to get information about a jobjobFileService
- The service responsible for managing the job working directory on disk for V3 JobsagentFileStreamService
- The service to request a file from an agent running a jobmeterRegistry
- The meter registry used to keep track of metricsJobDirectoryServerServiceImpl
@Bean @ConditionalOnMissingBean(value=AgentFileStreamService.class) public AgentFileStreamService fallbackAgentFileStreamService()
AgentFileStreamService
in case gRPC is disabled.@Bean @ConditionalOnMissingBean(value=AgentMetricsService.class) public AgentMetricsServiceImpl agentMetricsService(GenieHostInfo genieHostInfo, AgentConnectionPersistenceService agentConnectionPersistenceService, io.micrometer.core.instrument.MeterRegistry registry)
AgentMetricsService
if one hasn't been provided.genieHostInfo
- The Genie host informationagentConnectionPersistenceService
- Implementation of AgentConnectionPersistenceService
to get
information about running agents in the ecosystemregistry
- The metrics repositoryAgentMetricsServiceImpl