From 0cec350dd86f9a74344ed76beadc4699d5cfde38 Mon Sep 17 00:00:00 2001 From: Joshua Palis Date: Wed, 30 Aug 2023 12:00:11 -0700 Subject: [PATCH] Converts .opendistro-job-scheduler-lock index into a system index (#474) * Converts .opendistro-job-scheduler-lock into a system index Signed-off-by: Joshua Palis * testing Signed-off-by: Joshua Palis * setting fail-fast to false Signed-off-by: Joshua Palis * reverting CI/thread context modifications to the lockservice Signed-off-by: Joshua Palis --------- Signed-off-by: Joshua Palis --- .../jobscheduler/spi/utils/LockService.java | 2 +- .../opensearch/jobscheduler/JobSchedulerPlugin.java | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/spi/src/main/java/org/opensearch/jobscheduler/spi/utils/LockService.java b/spi/src/main/java/org/opensearch/jobscheduler/spi/utils/LockService.java index 0ddd4a79..7651f7a0 100644 --- a/spi/src/main/java/org/opensearch/jobscheduler/spi/utils/LockService.java +++ b/spi/src/main/java/org/opensearch/jobscheduler/spi/utils/LockService.java @@ -44,7 +44,7 @@ public final class LockService { private static final Logger logger = LogManager.getLogger(LockService.class); - private static final String LOCK_INDEX_NAME = ".opendistro-job-scheduler-lock"; + public static final String LOCK_INDEX_NAME = ".opendistro-job-scheduler-lock"; private final Client client; private final ClusterService clusterService; diff --git a/src/main/java/org/opensearch/jobscheduler/JobSchedulerPlugin.java b/src/main/java/org/opensearch/jobscheduler/JobSchedulerPlugin.java index f99b8897..96d7eddc 100644 --- a/src/main/java/org/opensearch/jobscheduler/JobSchedulerPlugin.java +++ b/src/main/java/org/opensearch/jobscheduler/JobSchedulerPlugin.java @@ -37,10 +37,12 @@ import org.opensearch.env.Environment; import org.opensearch.env.NodeEnvironment; import org.opensearch.index.IndexModule; +import org.opensearch.indices.SystemIndexDescriptor; import org.opensearch.jobscheduler.utils.JobDetailsService; import org.opensearch.plugins.ActionPlugin; import org.opensearch.plugins.ExtensiblePlugin; import org.opensearch.plugins.Plugin; +import org.opensearch.plugins.SystemIndexPlugin; import org.opensearch.repositories.RepositoriesService; import org.opensearch.rest.RestController; import org.opensearch.script.ScriptService; @@ -61,7 +63,7 @@ import com.google.common.collect.ImmutableList; -public class JobSchedulerPlugin extends Plugin implements ActionPlugin, ExtensiblePlugin { +public class JobSchedulerPlugin extends Plugin implements ActionPlugin, ExtensiblePlugin, SystemIndexPlugin { public static final String OPEN_DISTRO_JOB_SCHEDULER_THREAD_POOL_NAME = "open_distro_job_scheduler"; public static final String JS_BASE_URI = "/_plugins/_job_scheduler"; @@ -81,6 +83,13 @@ public JobSchedulerPlugin() { this.indexToJobProviders = new HashMap<>(); } + @Override + public Collection getSystemIndexDescriptors(Settings settings) { + return Collections.singletonList( + new SystemIndexDescriptor(LockService.LOCK_INDEX_NAME, "Stores lock documents used for plugin job execution") + ); + } + @Override public Collection createComponents( Client client,