in src/main/kotlin/org/opensearch/indexmanagement/indexstatemanagement/ManagedIndexCoordinator.kt [529:567]
fun initTemplateMigration(enableSetting: Long) {
if (!templateMigrationEnabled) return
if (!isIndexStateManagementEnabled()) return
if (!clusterService.state().nodes().isLocalNodeElectedMaster) return
scheduledTemplateMigration?.cancel()
// if service has finished, re-enable it
if (templateService.finishFlag) {
logger.info("Re-enable template migration service.")
templateService.reenableTemplateMigration()
}
val scheduledJob = Runnable {
launch {
try {
if (templateService.finishFlag) {
logger.info("ISM template migration process finished, cancel scheduled job.")
scheduledTemplateMigration?.cancel()
return@launch
}
logger.info("Performing ISM template migration.")
if (enableSetting == 0L) {
if (onMasterTimeStamp != 0L)
templateService.doMigration(Instant.ofEpochMilli(onMasterTimeStamp))
else {
logger.error("No valid onMaster time cached, cancel ISM template migration job.")
scheduledTemplateMigration?.cancel()
}
} else
templateService.doMigration(Instant.ofEpochMilli(enableSetting))
} catch (e: Exception) {
logger.error("Failed to migrate ISM template", e)
}
}
}
scheduledTemplateMigration = threadPool.scheduleWithFixedDelay(scheduledJob, TimeValue.timeValueMinutes(1), executorName())
}