From 8fbd4b5b38a37e1a342d94fb115b21be5a165cfd Mon Sep 17 00:00:00 2001 From: Paul Sebastian Date: Wed, 26 Feb 2025 14:27:41 -0800 Subject: [PATCH] Bump version 3.0.0-alpha1-SNAPSHOT (#1073) * Bump version 3.0.0-alpha1-SNAPSHOT Signed-off-by: Paul Sebastian * Update github actions checkout and upload-artifact to v4 Signed-off-by: Paul Sebastian * update bwcversion Signed-off-by: Paul Sebastian * update imports and bump kotlin version Signed-off-by: Shenoy Pratik * add resolution for org.jetbrains.kotlin:kotlin-stdlib-jdk7 Signed-off-by: Shenoy Pratik * fix linter errors Signed-off-by: Shenoy Pratik * update tests Signed-off-by: Shenoy Pratik --------- Signed-off-by: Paul Sebastian Signed-off-by: Paul Sebastian Signed-off-by: Shenoy Pratik Co-authored-by: Shenoy Pratik --- .github/workflows/maven-publish.yml | 2 +- ...orts-scheduler-test-and-build-workflow.yml | 60 +++----- build.gradle | 15 +- .../ReportsSchedulerPlugin.kt | 2 +- .../action/CreateReportDefinitionAction.kt | 2 +- .../action/DeleteReportDefinitionAction.kt | 2 +- .../action/GetAllReportDefinitionsAction.kt | 2 +- .../action/GetAllReportInstancesAction.kt | 2 +- .../action/GetReportDefinitionAction.kt | 2 +- .../action/GetReportInstanceAction.kt | 2 +- .../action/InContextReportCreateAction.kt | 2 +- .../action/OnDemandReportCreateAction.kt | 2 +- .../action/PluginBaseAction.kt | 2 +- .../action/ReportInstanceActions.kt | 3 +- .../action/UpdateReportDefinitionAction.kt | 2 +- .../UpdateReportInstanceStatusAction.kt | 2 +- .../index/ReportDefinitionsIndex.kt | 2 +- .../index/ReportInstancesIndex.kt | 2 +- .../model/ReportDefinition.kt | 144 +++++++++--------- .../resthandler/OnDemandReportRestHandler.kt | 2 +- .../resthandler/PluginBaseHandler.kt | 2 +- .../ReportDefinitionListRestHandler.kt | 2 +- .../ReportDefinitionRestHandler.kt | 2 +- .../ReportInstanceListRestHandler.kt | 2 +- .../resthandler/ReportInstanceRestHandler.kt | 2 +- .../resthandler/ReportStatsRestHandler.kt | 2 +- .../util/SecureIndexClient.kt | 2 +- .../rest/OnDemandReportGenerationIT.kt | 3 +- .../reportsscheduler/TestHelpers.kt | 4 +- 29 files changed, 127 insertions(+), 148 deletions(-) diff --git a/.github/workflows/maven-publish.yml b/.github/workflows/maven-publish.yml index 5c83ae73..6b75a24d 100644 --- a/.github/workflows/maven-publish.yml +++ b/.github/workflows/maven-publish.yml @@ -20,7 +20,7 @@ jobs: - uses: actions/setup-java@v3 with: distribution: temurin # Temurin is a distribution of adoptium - java-version: 11 + java-version: 21 - uses: actions/checkout@v3 - uses: aws-actions/configure-aws-credentials@v1 with: diff --git a/.github/workflows/reports-scheduler-test-and-build-workflow.yml b/.github/workflows/reports-scheduler-test-and-build-workflow.yml index ce324719..481bbd4a 100644 --- a/.github/workflows/reports-scheduler-test-and-build-workflow.yml +++ b/.github/workflows/reports-scheduler-test-and-build-workflow.yml @@ -20,12 +20,16 @@ jobs: # this image tag is subject to change as more dependencies and updates will arrive over time image: ${{ needs.Get-CI-Image-Tag.outputs.ci-image-version-linux }} # need to switch to root so that github actions can install runner binary on container without permission issues. - options: --user root + options: ${{ needs.Get-CI-Image-Tag.outputs.ci-image-start-options }} env: ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true steps: + - name: Run start commands + run: ${{ needs.Get-CI-Image-Tag.outputs.ci-image-start-command }} + - uses: actions/checkout@v4 + - name: Set up JDK ${{ matrix.java }} uses: actions/setup-java@v1 with: @@ -46,7 +50,7 @@ jobs: su `id -un 1000` -c "./gradlew build" - name: Upload coverage - uses: codecov/codecov-action@v1 + uses: codecov/codecov-action@v4 with: flags: reports-scheduler directory: reports-scheduler/ @@ -59,48 +63,19 @@ jobs: chown -R 1000:1000 `pwd` - name: Upload Artifacts - uses: actions/upload-artifact@v1 + uses: actions/upload-artifact@v4 with: name: reports-scheduler-linux path: reports-scheduler-builds - windows-build: - strategy: - matrix: - java: - - 21 - runs-on: windows-latest - - steps: - - name: Set up JDK ${{ matrix.java }} - uses: actions/setup-java@v1 - with: - java-version: ${{ matrix.java }} - - - name: Checkout Reports Scheduler - uses: actions/checkout@v2 - - - name: Build with Gradle - run: | - ./gradlew.bat build - - - name: Create Artifact Path - run: | - mkdir -p reports-scheduler-builds - cp -r ./build/distributions/*.zip reports-scheduler-builds/ - - - name: Upload Artifacts - uses: actions/upload-artifact@v1 - with: - name: reports-scheduler-windows - path: reports-scheduler-builds - - macos-build: + build-windows-macos: strategy: + # Run all jobs + fail-fast: false matrix: - java: - - 21 - runs-on: macos-latest + java: [21] + os: [windows-latest, macos-latest] + runs-on: ${{ matrix.os }} steps: - name: Set up JDK ${{ matrix.java }} @@ -108,9 +83,8 @@ jobs: with: java-version: ${{ matrix.java }} - # reports-scheduler - name: Checkout Reports Scheduler - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Build with Gradle run: | @@ -122,7 +96,7 @@ jobs: cp -r ./build/distributions/*.zip reports-scheduler-builds/ - name: Upload Artifacts - uses: actions/upload-artifact@v1 + uses: actions/upload-artifact@v4 with: - name: reports-scheduler-macos - path: reports-scheduler-builds + name: eports-scheduler-${{ matrix.os }} + path: eports-scheduler-builds diff --git a/build.gradle b/build.gradle index 8c2ef559..4f58ad6c 100644 --- a/build.gradle +++ b/build.gradle @@ -12,8 +12,8 @@ buildscript { opensearch_group = "org.opensearch" isSnapshot = "true" == System.getProperty("build.snapshot", "true") - opensearch_version = System.getProperty("opensearch.version", "3.0.0-SNAPSHOT") - buildVersionQualifier = System.getProperty("build.version_qualifier", "") + opensearch_version = System.getProperty("opensearch.version", "3.0.0-alpha1-SNAPSHOT") + buildVersionQualifier = System.getProperty("build.version_qualifier", "alpha1") // 2.0.0-rc1-SNAPSHOT -> 2.0.0.0-rc1-SNAPSHOT version_tokens = opensearch_version.tokenize('-') opensearch_build = version_tokens[0] + '.0' @@ -26,7 +26,7 @@ buildscript { common_utils_version = System.getProperty("common_utils.version", opensearch_build) job_scheduler_version = System.getProperty("job_scheduler.version", opensearch_build) - kotlin_version = System.getProperty("kotlin.version", "1.8.21") + kotlin_version = System.getProperty("kotlin.version", "2.0.21") } repositories { @@ -132,6 +132,7 @@ configurations.all { resolutionStrategy { force "org.jetbrains.kotlin:kotlin-stdlib:${kotlin_version}" force "org.jetbrains.kotlin:kotlin-stdlib-jdk8:${kotlin_version}" + force "org.jetbrains.kotlin:kotlin-stdlib-jdk7:${kotlin_version}" force "org.jetbrains.kotlin:kotlin-reflect:${kotlin_version}" force "org.jetbrains.kotlin:kotlin-stdlib-common:${kotlin_version}" force "com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:2.11.4" @@ -149,18 +150,18 @@ ext { } plugins.withId('java') { - sourceCompatibility = targetCompatibility = "11" + sourceCompatibility = targetCompatibility = "21" } plugins.withId('org.jetbrains.kotlin.jvm') { - compileKotlin.kotlinOptions.jvmTarget = compileTestKotlin.kotlinOptions.jvmTarget = "11" + compileKotlin.kotlinOptions.jvmTarget = compileTestKotlin.kotlinOptions.jvmTarget = "21" } allprojects { group = "org.opensearch" version = "${opensearch_build}" plugins.withId('java') { - sourceCompatibility = targetCompatibility = "11" + sourceCompatibility = targetCompatibility = "21" } } @@ -329,7 +330,7 @@ testClusters.integTest { } // For job-scheduler and reports-scheduler, the latest opensearch releases appear to be 1.1.0.0. -String baseVersion = "2.16.0" +String baseVersion = "2.20.0" String bwcVersion = baseVersion + ".0" String baseName = "reportsSchedulerBwcCluster" String bwcFilePath = "src/test/resources/bwc" diff --git a/src/main/kotlin/org/opensearch/reportsscheduler/ReportsSchedulerPlugin.kt b/src/main/kotlin/org/opensearch/reportsscheduler/ReportsSchedulerPlugin.kt index 016a47d6..c69c32c5 100644 --- a/src/main/kotlin/org/opensearch/reportsscheduler/ReportsSchedulerPlugin.kt +++ b/src/main/kotlin/org/opensearch/reportsscheduler/ReportsSchedulerPlugin.kt @@ -6,7 +6,6 @@ package org.opensearch.reportsscheduler import org.opensearch.action.ActionRequest -import org.opensearch.client.Client import org.opensearch.cluster.metadata.IndexNameExpressionResolver import org.opensearch.cluster.node.DiscoveryNodes import org.opensearch.cluster.service.ClusterService @@ -55,6 +54,7 @@ import org.opensearch.rest.RestController import org.opensearch.rest.RestHandler import org.opensearch.script.ScriptService import org.opensearch.threadpool.ThreadPool +import org.opensearch.transport.client.Client import org.opensearch.watcher.ResourceWatcherService import java.util.function.Supplier diff --git a/src/main/kotlin/org/opensearch/reportsscheduler/action/CreateReportDefinitionAction.kt b/src/main/kotlin/org/opensearch/reportsscheduler/action/CreateReportDefinitionAction.kt index f003d9bb..26b07126 100644 --- a/src/main/kotlin/org/opensearch/reportsscheduler/action/CreateReportDefinitionAction.kt +++ b/src/main/kotlin/org/opensearch/reportsscheduler/action/CreateReportDefinitionAction.kt @@ -7,13 +7,13 @@ package org.opensearch.reportsscheduler.action import org.opensearch.action.ActionType import org.opensearch.action.support.ActionFilters -import org.opensearch.client.Client import org.opensearch.common.inject.Inject import org.opensearch.commons.authuser.User import org.opensearch.core.xcontent.NamedXContentRegistry import org.opensearch.reportsscheduler.model.CreateReportDefinitionRequest import org.opensearch.reportsscheduler.model.CreateReportDefinitionResponse import org.opensearch.transport.TransportService +import org.opensearch.transport.client.Client /** * Create reportDefinition transport action diff --git a/src/main/kotlin/org/opensearch/reportsscheduler/action/DeleteReportDefinitionAction.kt b/src/main/kotlin/org/opensearch/reportsscheduler/action/DeleteReportDefinitionAction.kt index 453f9a0a..bdbf09bc 100644 --- a/src/main/kotlin/org/opensearch/reportsscheduler/action/DeleteReportDefinitionAction.kt +++ b/src/main/kotlin/org/opensearch/reportsscheduler/action/DeleteReportDefinitionAction.kt @@ -7,13 +7,13 @@ package org.opensearch.reportsscheduler.action import org.opensearch.action.ActionType import org.opensearch.action.support.ActionFilters -import org.opensearch.client.Client import org.opensearch.common.inject.Inject import org.opensearch.commons.authuser.User import org.opensearch.core.xcontent.NamedXContentRegistry import org.opensearch.reportsscheduler.model.DeleteReportDefinitionRequest import org.opensearch.reportsscheduler.model.DeleteReportDefinitionResponse import org.opensearch.transport.TransportService +import org.opensearch.transport.client.Client /** * Delete reportDefinition transport action diff --git a/src/main/kotlin/org/opensearch/reportsscheduler/action/GetAllReportDefinitionsAction.kt b/src/main/kotlin/org/opensearch/reportsscheduler/action/GetAllReportDefinitionsAction.kt index 6c469c97..fa565b31 100644 --- a/src/main/kotlin/org/opensearch/reportsscheduler/action/GetAllReportDefinitionsAction.kt +++ b/src/main/kotlin/org/opensearch/reportsscheduler/action/GetAllReportDefinitionsAction.kt @@ -7,13 +7,13 @@ package org.opensearch.reportsscheduler.action import org.opensearch.action.ActionType import org.opensearch.action.support.ActionFilters -import org.opensearch.client.Client import org.opensearch.common.inject.Inject import org.opensearch.commons.authuser.User import org.opensearch.core.xcontent.NamedXContentRegistry import org.opensearch.reportsscheduler.model.GetAllReportDefinitionsRequest import org.opensearch.reportsscheduler.model.GetAllReportDefinitionsResponse import org.opensearch.transport.TransportService +import org.opensearch.transport.client.Client /** * Get all reportDefinitions transport action diff --git a/src/main/kotlin/org/opensearch/reportsscheduler/action/GetAllReportInstancesAction.kt b/src/main/kotlin/org/opensearch/reportsscheduler/action/GetAllReportInstancesAction.kt index e9f31dec..fa0f8588 100644 --- a/src/main/kotlin/org/opensearch/reportsscheduler/action/GetAllReportInstancesAction.kt +++ b/src/main/kotlin/org/opensearch/reportsscheduler/action/GetAllReportInstancesAction.kt @@ -7,13 +7,13 @@ package org.opensearch.reportsscheduler.action import org.opensearch.action.ActionType import org.opensearch.action.support.ActionFilters -import org.opensearch.client.Client import org.opensearch.common.inject.Inject import org.opensearch.commons.authuser.User import org.opensearch.core.xcontent.NamedXContentRegistry import org.opensearch.reportsscheduler.model.GetAllReportInstancesRequest import org.opensearch.reportsscheduler.model.GetAllReportInstancesResponse import org.opensearch.transport.TransportService +import org.opensearch.transport.client.Client /** * Get all report instances transport action diff --git a/src/main/kotlin/org/opensearch/reportsscheduler/action/GetReportDefinitionAction.kt b/src/main/kotlin/org/opensearch/reportsscheduler/action/GetReportDefinitionAction.kt index 00c80ce0..7fac2a95 100644 --- a/src/main/kotlin/org/opensearch/reportsscheduler/action/GetReportDefinitionAction.kt +++ b/src/main/kotlin/org/opensearch/reportsscheduler/action/GetReportDefinitionAction.kt @@ -7,13 +7,13 @@ package org.opensearch.reportsscheduler.action import org.opensearch.action.ActionType import org.opensearch.action.support.ActionFilters -import org.opensearch.client.Client import org.opensearch.common.inject.Inject import org.opensearch.commons.authuser.User import org.opensearch.core.xcontent.NamedXContentRegistry import org.opensearch.reportsscheduler.model.GetReportDefinitionRequest import org.opensearch.reportsscheduler.model.GetReportDefinitionResponse import org.opensearch.transport.TransportService +import org.opensearch.transport.client.Client /** * Get reportDefinition transport action diff --git a/src/main/kotlin/org/opensearch/reportsscheduler/action/GetReportInstanceAction.kt b/src/main/kotlin/org/opensearch/reportsscheduler/action/GetReportInstanceAction.kt index c51039a0..68349e82 100644 --- a/src/main/kotlin/org/opensearch/reportsscheduler/action/GetReportInstanceAction.kt +++ b/src/main/kotlin/org/opensearch/reportsscheduler/action/GetReportInstanceAction.kt @@ -7,13 +7,13 @@ package org.opensearch.reportsscheduler.action import org.opensearch.action.ActionType import org.opensearch.action.support.ActionFilters -import org.opensearch.client.Client import org.opensearch.common.inject.Inject import org.opensearch.commons.authuser.User import org.opensearch.core.xcontent.NamedXContentRegistry import org.opensearch.reportsscheduler.model.GetReportInstanceRequest import org.opensearch.reportsscheduler.model.GetReportInstanceResponse import org.opensearch.transport.TransportService +import org.opensearch.transport.client.Client /** * Get report instance transport action diff --git a/src/main/kotlin/org/opensearch/reportsscheduler/action/InContextReportCreateAction.kt b/src/main/kotlin/org/opensearch/reportsscheduler/action/InContextReportCreateAction.kt index f8b0865d..c2757afb 100644 --- a/src/main/kotlin/org/opensearch/reportsscheduler/action/InContextReportCreateAction.kt +++ b/src/main/kotlin/org/opensearch/reportsscheduler/action/InContextReportCreateAction.kt @@ -7,13 +7,13 @@ package org.opensearch.reportsscheduler.action import org.opensearch.action.ActionType import org.opensearch.action.support.ActionFilters -import org.opensearch.client.Client import org.opensearch.common.inject.Inject import org.opensearch.commons.authuser.User import org.opensearch.core.xcontent.NamedXContentRegistry import org.opensearch.reportsscheduler.model.InContextReportCreateRequest import org.opensearch.reportsscheduler.model.InContextReportCreateResponse import org.opensearch.transport.TransportService +import org.opensearch.transport.client.Client /** * In-Context ReportCreate transport action diff --git a/src/main/kotlin/org/opensearch/reportsscheduler/action/OnDemandReportCreateAction.kt b/src/main/kotlin/org/opensearch/reportsscheduler/action/OnDemandReportCreateAction.kt index 59276232..35bf77db 100644 --- a/src/main/kotlin/org/opensearch/reportsscheduler/action/OnDemandReportCreateAction.kt +++ b/src/main/kotlin/org/opensearch/reportsscheduler/action/OnDemandReportCreateAction.kt @@ -7,13 +7,13 @@ package org.opensearch.reportsscheduler.action import org.opensearch.action.ActionType import org.opensearch.action.support.ActionFilters -import org.opensearch.client.Client import org.opensearch.common.inject.Inject import org.opensearch.commons.authuser.User import org.opensearch.core.xcontent.NamedXContentRegistry import org.opensearch.reportsscheduler.model.OnDemandReportCreateRequest import org.opensearch.reportsscheduler.model.OnDemandReportCreateResponse import org.opensearch.transport.TransportService +import org.opensearch.transport.client.Client /** * On-Demand ReportCreate transport action diff --git a/src/main/kotlin/org/opensearch/reportsscheduler/action/PluginBaseAction.kt b/src/main/kotlin/org/opensearch/reportsscheduler/action/PluginBaseAction.kt index a6486cbe..b2400a6a 100644 --- a/src/main/kotlin/org/opensearch/reportsscheduler/action/PluginBaseAction.kt +++ b/src/main/kotlin/org/opensearch/reportsscheduler/action/PluginBaseAction.kt @@ -13,7 +13,6 @@ import org.opensearch.OpenSearchStatusException import org.opensearch.action.ActionRequest import org.opensearch.action.support.ActionFilters import org.opensearch.action.support.HandledTransportAction -import org.opensearch.client.Client import org.opensearch.common.util.concurrent.ThreadContext import org.opensearch.commons.ConfigConstants.OPENSEARCH_SECURITY_USER_INFO_THREAD_CONTEXT import org.opensearch.commons.authuser.User @@ -29,6 +28,7 @@ import org.opensearch.reportsscheduler.metrics.Metrics import org.opensearch.reportsscheduler.util.logger import org.opensearch.tasks.Task import org.opensearch.transport.TransportService +import org.opensearch.transport.client.Client import java.io.IOException abstract class PluginBaseAction( diff --git a/src/main/kotlin/org/opensearch/reportsscheduler/action/ReportInstanceActions.kt b/src/main/kotlin/org/opensearch/reportsscheduler/action/ReportInstanceActions.kt index 80ec9c72..9f701195 100644 --- a/src/main/kotlin/org/opensearch/reportsscheduler/action/ReportInstanceActions.kt +++ b/src/main/kotlin/org/opensearch/reportsscheduler/action/ReportInstanceActions.kt @@ -89,7 +89,8 @@ internal object ReportInstanceActions { val endTime: Instant if (!reportDefinitionDetails.reportDefinition.format.timeFrom.isNullOrBlank() && - !reportDefinitionDetails.reportDefinition.format.timeTo.isNullOrBlank()) { + !reportDefinitionDetails.reportDefinition.format.timeTo.isNullOrBlank() + ) { beginTime = Instant.parse(reportDefinitionDetails.reportDefinition.format.timeFrom) endTime = Instant.parse(reportDefinitionDetails.reportDefinition.format.timeTo) } else { diff --git a/src/main/kotlin/org/opensearch/reportsscheduler/action/UpdateReportDefinitionAction.kt b/src/main/kotlin/org/opensearch/reportsscheduler/action/UpdateReportDefinitionAction.kt index e3585917..c9bc5598 100644 --- a/src/main/kotlin/org/opensearch/reportsscheduler/action/UpdateReportDefinitionAction.kt +++ b/src/main/kotlin/org/opensearch/reportsscheduler/action/UpdateReportDefinitionAction.kt @@ -7,13 +7,13 @@ package org.opensearch.reportsscheduler.action import org.opensearch.action.ActionType import org.opensearch.action.support.ActionFilters -import org.opensearch.client.Client import org.opensearch.common.inject.Inject import org.opensearch.commons.authuser.User import org.opensearch.core.xcontent.NamedXContentRegistry import org.opensearch.reportsscheduler.model.UpdateReportDefinitionRequest import org.opensearch.reportsscheduler.model.UpdateReportDefinitionResponse import org.opensearch.transport.TransportService +import org.opensearch.transport.client.Client /** * Update reportDefinitions transport action diff --git a/src/main/kotlin/org/opensearch/reportsscheduler/action/UpdateReportInstanceStatusAction.kt b/src/main/kotlin/org/opensearch/reportsscheduler/action/UpdateReportInstanceStatusAction.kt index 4da0d7e3..acbf8255 100644 --- a/src/main/kotlin/org/opensearch/reportsscheduler/action/UpdateReportInstanceStatusAction.kt +++ b/src/main/kotlin/org/opensearch/reportsscheduler/action/UpdateReportInstanceStatusAction.kt @@ -7,13 +7,13 @@ package org.opensearch.reportsscheduler.action import org.opensearch.action.ActionType import org.opensearch.action.support.ActionFilters -import org.opensearch.client.Client import org.opensearch.common.inject.Inject import org.opensearch.commons.authuser.User import org.opensearch.core.xcontent.NamedXContentRegistry import org.opensearch.reportsscheduler.model.UpdateReportInstanceStatusRequest import org.opensearch.reportsscheduler.model.UpdateReportInstanceStatusResponse import org.opensearch.transport.TransportService +import org.opensearch.transport.client.Client /** * Update ReportInstance Status transport action diff --git a/src/main/kotlin/org/opensearch/reportsscheduler/index/ReportDefinitionsIndex.kt b/src/main/kotlin/org/opensearch/reportsscheduler/index/ReportDefinitionsIndex.kt index 9650bef8..b1dcfb53 100644 --- a/src/main/kotlin/org/opensearch/reportsscheduler/index/ReportDefinitionsIndex.kt +++ b/src/main/kotlin/org/opensearch/reportsscheduler/index/ReportDefinitionsIndex.kt @@ -13,7 +13,6 @@ import org.opensearch.action.get.GetRequest import org.opensearch.action.index.IndexRequest import org.opensearch.action.search.SearchRequest import org.opensearch.action.update.UpdateRequest -import org.opensearch.client.Client import org.opensearch.cluster.service.ClusterService import org.opensearch.common.unit.TimeValue import org.opensearch.common.xcontent.LoggingDeprecationHandler @@ -31,6 +30,7 @@ import org.opensearch.reportsscheduler.settings.PluginSettings import org.opensearch.reportsscheduler.util.SecureIndexClient import org.opensearch.reportsscheduler.util.logger import org.opensearch.search.builder.SearchSourceBuilder +import org.opensearch.transport.client.Client import java.util.concurrent.TimeUnit /** diff --git a/src/main/kotlin/org/opensearch/reportsscheduler/index/ReportInstancesIndex.kt b/src/main/kotlin/org/opensearch/reportsscheduler/index/ReportInstancesIndex.kt index 766b5f3e..233b1d6c 100644 --- a/src/main/kotlin/org/opensearch/reportsscheduler/index/ReportInstancesIndex.kt +++ b/src/main/kotlin/org/opensearch/reportsscheduler/index/ReportInstancesIndex.kt @@ -13,7 +13,6 @@ import org.opensearch.action.get.GetRequest import org.opensearch.action.index.IndexRequest import org.opensearch.action.search.SearchRequest import org.opensearch.action.update.UpdateRequest -import org.opensearch.client.Client import org.opensearch.cluster.service.ClusterService import org.opensearch.common.unit.TimeValue import org.opensearch.common.xcontent.LoggingDeprecationHandler @@ -31,6 +30,7 @@ import org.opensearch.reportsscheduler.settings.PluginSettings import org.opensearch.reportsscheduler.util.SecureIndexClient import org.opensearch.reportsscheduler.util.logger import org.opensearch.search.builder.SearchSourceBuilder +import org.opensearch.transport.client.Client import java.util.concurrent.TimeUnit /** diff --git a/src/main/kotlin/org/opensearch/reportsscheduler/model/ReportDefinition.kt b/src/main/kotlin/org/opensearch/reportsscheduler/model/ReportDefinition.kt index 024d3c58..6e3e95a2 100644 --- a/src/main/kotlin/org/opensearch/reportsscheduler/model/ReportDefinition.kt +++ b/src/main/kotlin/org/opensearch/reportsscheduler/model/ReportDefinition.kt @@ -234,85 +234,85 @@ internal data class ReportDefinition( * Report definition format data class */ internal data class Format( - val duration: Duration, - val fileFormat: FileFormat, - val limit: Int?, - val header: String?, - val footer: String?, - val timeFrom: String?, - val timeTo: String? -) : ToXContentObject { - internal companion object { - private const val DURATION_TAG = "duration" - private const val FILE_FORMAT_TAG = "fileFormat" - private const val LIMIT_TAG = "limit" - private const val HEADER_TAG = "header" - private const val FOOTER_TAG = "footer" - private const val TIME_FROM_TAG = "timeFrom" - private const val TIME_TO_TAG = "timeTo" + val duration: Duration, + val fileFormat: FileFormat, + val limit: Int?, + val header: String?, + val footer: String?, + val timeFrom: String?, + val timeTo: String? + ) : ToXContentObject { + internal companion object { + private const val DURATION_TAG = "duration" + private const val FILE_FORMAT_TAG = "fileFormat" + private const val LIMIT_TAG = "limit" + private const val HEADER_TAG = "header" + private const val FOOTER_TAG = "footer" + private const val TIME_FROM_TAG = "timeFrom" + private const val TIME_TO_TAG = "timeTo" - /** - * Parse the data from parser and create Format object - * @param parser data referenced at parser - * @return created Format object - */ - fun parse(parser: XContentParser): Format { - var durationSeconds: Duration? = null - var fileFormat: FileFormat? = null - var limit: Int? = null - var header: String? = null - var footer: String? = null - var timeFrom: String? = null - var timeTo: String? = null - XContentParserUtils.ensureExpectedToken(XContentParser.Token.START_OBJECT, parser.currentToken(), parser) - while (XContentParser.Token.END_OBJECT != parser.nextToken()) { - val fieldName = parser.currentName() - parser.nextToken() - when (fieldName) { - DURATION_TAG -> durationSeconds = Duration.parse(parser.text()) - FILE_FORMAT_TAG -> fileFormat = FileFormat.valueOf(parser.text()) - LIMIT_TAG -> limit = parser.intValue() - HEADER_TAG -> header = parser.textOrNull() - FOOTER_TAG -> footer = parser.textOrNull() - TIME_FROM_TAG -> timeFrom = parser.textOrNull() - TIME_TO_TAG -> timeTo = parser.textOrNull() - else -> { - parser.skipChildren() - log.info("$LOG_PREFIX:Format Skipping Unknown field $fieldName") + /** + * Parse the data from parser and create Format object + * @param parser data referenced at parser + * @return created Format object + */ + fun parse(parser: XContentParser): Format { + var durationSeconds: Duration? = null + var fileFormat: FileFormat? = null + var limit: Int? = null + var header: String? = null + var footer: String? = null + var timeFrom: String? = null + var timeTo: String? = null + XContentParserUtils.ensureExpectedToken(XContentParser.Token.START_OBJECT, parser.currentToken(), parser) + while (XContentParser.Token.END_OBJECT != parser.nextToken()) { + val fieldName = parser.currentName() + parser.nextToken() + when (fieldName) { + DURATION_TAG -> durationSeconds = Duration.parse(parser.text()) + FILE_FORMAT_TAG -> fileFormat = FileFormat.valueOf(parser.text()) + LIMIT_TAG -> limit = parser.intValue() + HEADER_TAG -> header = parser.textOrNull() + FOOTER_TAG -> footer = parser.textOrNull() + TIME_FROM_TAG -> timeFrom = parser.textOrNull() + TIME_TO_TAG -> timeTo = parser.textOrNull() + else -> { + parser.skipChildren() + log.info("$LOG_PREFIX:Format Skipping Unknown field $fieldName") + } } } + durationSeconds ?: throw IllegalArgumentException("$DURATION_TAG field absent") + fileFormat ?: throw IllegalArgumentException("$FILE_FORMAT_TAG field absent") + return Format( + durationSeconds, + fileFormat, + limit, + header, + footer, + timeFrom, + timeTo + ) } - durationSeconds ?: throw IllegalArgumentException("$DURATION_TAG field absent") - fileFormat ?: throw IllegalArgumentException("$FILE_FORMAT_TAG field absent") - return Format( - durationSeconds, - fileFormat, - limit, - header, - footer, - timeFrom, - timeTo - ) } - } - /** - * {@inheritDoc} - */ - override fun toXContent(builder: XContentBuilder?, params: ToXContent.Params?): XContentBuilder { - builder!! - builder.startObject() - .field(DURATION_TAG, duration.toString()) - .field(FILE_FORMAT_TAG, fileFormat.name) - if (limit != null) builder.field(LIMIT_TAG, limit) - if (header != null) builder.field(HEADER_TAG, header) - if (footer != null) builder.field(FOOTER_TAG, footer) - builder.field(TIME_FROM_TAG, timeFrom) - builder.field(TIME_TO_TAG, timeTo) - builder.endObject() - return builder + /** + * {@inheritDoc} + */ + override fun toXContent(builder: XContentBuilder?, params: ToXContent.Params?): XContentBuilder { + builder!! + builder.startObject() + .field(DURATION_TAG, duration.toString()) + .field(FILE_FORMAT_TAG, fileFormat.name) + if (limit != null) builder.field(LIMIT_TAG, limit) + if (header != null) builder.field(HEADER_TAG, header) + if (footer != null) builder.field(FOOTER_TAG, footer) + builder.field(TIME_FROM_TAG, timeFrom) + builder.field(TIME_TO_TAG, timeTo) + builder.endObject() + return builder + } } -} /** * Report definition trigger data class diff --git a/src/main/kotlin/org/opensearch/reportsscheduler/resthandler/OnDemandReportRestHandler.kt b/src/main/kotlin/org/opensearch/reportsscheduler/resthandler/OnDemandReportRestHandler.kt index 3c803d32..fd30264b 100644 --- a/src/main/kotlin/org/opensearch/reportsscheduler/resthandler/OnDemandReportRestHandler.kt +++ b/src/main/kotlin/org/opensearch/reportsscheduler/resthandler/OnDemandReportRestHandler.kt @@ -4,7 +4,6 @@ */ package org.opensearch.reportsscheduler.resthandler -import org.opensearch.client.node.NodeClient import org.opensearch.core.rest.RestStatus import org.opensearch.reportsscheduler.ReportsSchedulerPlugin.Companion.BASE_REPORTS_URI import org.opensearch.reportsscheduler.ReportsSchedulerPlugin.Companion.LEGACY_BASE_REPORTS_URI @@ -23,6 +22,7 @@ import org.opensearch.rest.RestHandler.Route import org.opensearch.rest.RestRequest import org.opensearch.rest.RestRequest.Method.POST import org.opensearch.rest.RestRequest.Method.PUT +import org.opensearch.transport.client.node.NodeClient /** * Rest handler for creating on-demand report instances. diff --git a/src/main/kotlin/org/opensearch/reportsscheduler/resthandler/PluginBaseHandler.kt b/src/main/kotlin/org/opensearch/reportsscheduler/resthandler/PluginBaseHandler.kt index a308c480..32bb54ed 100644 --- a/src/main/kotlin/org/opensearch/reportsscheduler/resthandler/PluginBaseHandler.kt +++ b/src/main/kotlin/org/opensearch/reportsscheduler/resthandler/PluginBaseHandler.kt @@ -5,10 +5,10 @@ package org.opensearch.reportsscheduler.resthandler -import org.opensearch.client.node.NodeClient import org.opensearch.reportsscheduler.metrics.Metrics import org.opensearch.rest.BaseRestHandler import org.opensearch.rest.RestRequest +import org.opensearch.transport.client.node.NodeClient abstract class PluginBaseHandler : BaseRestHandler() { diff --git a/src/main/kotlin/org/opensearch/reportsscheduler/resthandler/ReportDefinitionListRestHandler.kt b/src/main/kotlin/org/opensearch/reportsscheduler/resthandler/ReportDefinitionListRestHandler.kt index 6a813ddc..d4919fd5 100644 --- a/src/main/kotlin/org/opensearch/reportsscheduler/resthandler/ReportDefinitionListRestHandler.kt +++ b/src/main/kotlin/org/opensearch/reportsscheduler/resthandler/ReportDefinitionListRestHandler.kt @@ -4,7 +4,6 @@ */ package org.opensearch.reportsscheduler.resthandler -import org.opensearch.client.node.NodeClient import org.opensearch.core.rest.RestStatus import org.opensearch.reportsscheduler.ReportsSchedulerPlugin.Companion.BASE_REPORTS_URI import org.opensearch.reportsscheduler.ReportsSchedulerPlugin.Companion.LEGACY_BASE_REPORTS_URI @@ -21,6 +20,7 @@ import org.opensearch.rest.RestHandler.ReplacedRoute import org.opensearch.rest.RestHandler.Route import org.opensearch.rest.RestRequest import org.opensearch.rest.RestRequest.Method.GET +import org.opensearch.transport.client.node.NodeClient /** * Rest handler for getting list of report definitions. diff --git a/src/main/kotlin/org/opensearch/reportsscheduler/resthandler/ReportDefinitionRestHandler.kt b/src/main/kotlin/org/opensearch/reportsscheduler/resthandler/ReportDefinitionRestHandler.kt index 6a3abf4d..733902df 100644 --- a/src/main/kotlin/org/opensearch/reportsscheduler/resthandler/ReportDefinitionRestHandler.kt +++ b/src/main/kotlin/org/opensearch/reportsscheduler/resthandler/ReportDefinitionRestHandler.kt @@ -4,7 +4,6 @@ */ package org.opensearch.reportsscheduler.resthandler -import org.opensearch.client.node.NodeClient import org.opensearch.core.rest.RestStatus import org.opensearch.reportsscheduler.ReportsSchedulerPlugin.Companion.BASE_REPORTS_URI import org.opensearch.reportsscheduler.ReportsSchedulerPlugin.Companion.LEGACY_BASE_REPORTS_URI @@ -29,6 +28,7 @@ import org.opensearch.rest.RestRequest.Method.DELETE import org.opensearch.rest.RestRequest.Method.GET import org.opensearch.rest.RestRequest.Method.POST import org.opensearch.rest.RestRequest.Method.PUT +import org.opensearch.transport.client.node.NodeClient /** * Rest handler for report definitions lifecycle management. diff --git a/src/main/kotlin/org/opensearch/reportsscheduler/resthandler/ReportInstanceListRestHandler.kt b/src/main/kotlin/org/opensearch/reportsscheduler/resthandler/ReportInstanceListRestHandler.kt index a5094bbe..89f0efbd 100644 --- a/src/main/kotlin/org/opensearch/reportsscheduler/resthandler/ReportInstanceListRestHandler.kt +++ b/src/main/kotlin/org/opensearch/reportsscheduler/resthandler/ReportInstanceListRestHandler.kt @@ -4,7 +4,6 @@ */ package org.opensearch.reportsscheduler.resthandler -import org.opensearch.client.node.NodeClient import org.opensearch.core.rest.RestStatus import org.opensearch.reportsscheduler.ReportsSchedulerPlugin.Companion.BASE_REPORTS_URI import org.opensearch.reportsscheduler.ReportsSchedulerPlugin.Companion.LEGACY_BASE_REPORTS_URI @@ -21,6 +20,7 @@ import org.opensearch.rest.RestHandler.ReplacedRoute import org.opensearch.rest.RestHandler.Route import org.opensearch.rest.RestRequest import org.opensearch.rest.RestRequest.Method.GET +import org.opensearch.transport.client.node.NodeClient /** * Rest handler for getting list of report instances. diff --git a/src/main/kotlin/org/opensearch/reportsscheduler/resthandler/ReportInstanceRestHandler.kt b/src/main/kotlin/org/opensearch/reportsscheduler/resthandler/ReportInstanceRestHandler.kt index 1400d7a3..c4424a89 100644 --- a/src/main/kotlin/org/opensearch/reportsscheduler/resthandler/ReportInstanceRestHandler.kt +++ b/src/main/kotlin/org/opensearch/reportsscheduler/resthandler/ReportInstanceRestHandler.kt @@ -4,7 +4,6 @@ */ package org.opensearch.reportsscheduler.resthandler -import org.opensearch.client.node.NodeClient import org.opensearch.core.rest.RestStatus import org.opensearch.reportsscheduler.ReportsSchedulerPlugin.Companion.BASE_REPORTS_URI import org.opensearch.reportsscheduler.ReportsSchedulerPlugin.Companion.LEGACY_BASE_REPORTS_URI @@ -23,6 +22,7 @@ import org.opensearch.rest.RestHandler.Route import org.opensearch.rest.RestRequest import org.opensearch.rest.RestRequest.Method.GET import org.opensearch.rest.RestRequest.Method.POST +import org.opensearch.transport.client.node.NodeClient /** * Rest handler for report instances lifecycle management. diff --git a/src/main/kotlin/org/opensearch/reportsscheduler/resthandler/ReportStatsRestHandler.kt b/src/main/kotlin/org/opensearch/reportsscheduler/resthandler/ReportStatsRestHandler.kt index 0a19975e..1dfde166 100644 --- a/src/main/kotlin/org/opensearch/reportsscheduler/resthandler/ReportStatsRestHandler.kt +++ b/src/main/kotlin/org/opensearch/reportsscheduler/resthandler/ReportStatsRestHandler.kt @@ -4,7 +4,6 @@ */ package org.opensearch.reportsscheduler.resthandler -import org.opensearch.client.node.NodeClient import org.opensearch.core.rest.RestStatus import org.opensearch.reportsscheduler.ReportsSchedulerPlugin.Companion.BASE_REPORTS_URI import org.opensearch.reportsscheduler.ReportsSchedulerPlugin.Companion.LEGACY_BASE_REPORTS_URI @@ -16,6 +15,7 @@ import org.opensearch.rest.RestHandler.ReplacedRoute import org.opensearch.rest.RestHandler.Route import org.opensearch.rest.RestRequest import org.opensearch.rest.RestRequest.Method.GET +import org.opensearch.transport.client.node.NodeClient /** * Rest handler for getting reporting backend stats diff --git a/src/main/kotlin/org/opensearch/reportsscheduler/util/SecureIndexClient.kt b/src/main/kotlin/org/opensearch/reportsscheduler/util/SecureIndexClient.kt index daa100d3..62edcc76 100644 --- a/src/main/kotlin/org/opensearch/reportsscheduler/util/SecureIndexClient.kt +++ b/src/main/kotlin/org/opensearch/reportsscheduler/util/SecureIndexClient.kt @@ -34,11 +34,11 @@ import org.opensearch.action.termvectors.TermVectorsRequest import org.opensearch.action.termvectors.TermVectorsResponse import org.opensearch.action.update.UpdateRequest import org.opensearch.action.update.UpdateResponse -import org.opensearch.client.Client import org.opensearch.common.action.ActionFuture import org.opensearch.common.util.concurrent.ThreadContext import org.opensearch.core.action.ActionListener import org.opensearch.core.action.ActionResponse +import org.opensearch.transport.client.Client /** * Wrapper class on [Client] with security context removed. diff --git a/src/test/kotlin/org/opensearch/integTest/rest/OnDemandReportGenerationIT.kt b/src/test/kotlin/org/opensearch/integTest/rest/OnDemandReportGenerationIT.kt index 29eb4ed1..e0aa3704 100644 --- a/src/test/kotlin/org/opensearch/integTest/rest/OnDemandReportGenerationIT.kt +++ b/src/test/kotlin/org/opensearch/integTest/rest/OnDemandReportGenerationIT.kt @@ -36,7 +36,8 @@ class OnDemandReportGenerationIT : PluginRestTestCase() { "fileFormat":"Pdf", "limit":1000, "header":"optional header", - "footer":"optional footer" + "footer":"optional footer", + "timeFrom":null, "timeTo":null }, "trigger":{ "triggerType":"OnDemand" diff --git a/src/test/kotlin/org/opensearch/reportsscheduler/TestHelpers.kt b/src/test/kotlin/org/opensearch/reportsscheduler/TestHelpers.kt index 1d52e223..88d56161 100644 --- a/src/test/kotlin/org/opensearch/reportsscheduler/TestHelpers.kt +++ b/src/test/kotlin/org/opensearch/reportsscheduler/TestHelpers.kt @@ -50,7 +50,9 @@ internal fun createReportDefinitionObject(): ReportDefinition { fileFormat = ReportDefinition.FileFormat.Pdf, limit = 1000, header = "optional header", - footer = "optional footer" + footer = "optional footer", + timeFrom = null, + timeTo = null ) val trigger = ReportDefinition.Trigger(