From 4de21a299a69138d8be74273b2c835946b89171e Mon Sep 17 00:00:00 2001 From: Mark Vieira Date: Tue, 3 Sep 2024 15:56:12 -0700 Subject: [PATCH 01/34] Initial version bump to Elasticsearch 9.0 --- .buildkite/pipelines/intake.yml | 2 +- .buildkite/pipelines/periodic-packaging.yml | 323 +-------------- .buildkite/pipelines/periodic.yml | 384 +----------------- .ci/bwcVersions | 19 +- .ci/snapshotBwcVersions | 2 +- REST_API_COMPATIBILITY.md | 6 +- .../AbstractYamlRestCompatTestPlugin.java | 10 +- .../LegacyYamlRestCompatTestPlugin.java | 2 +- .../compat/YamlRestCompatTestPlugin.java | 2 +- .../gradle/internal/BwcVersionsSpec.groovy | 27 ++ build-tools-internal/version.properties | 2 +- .../elasticsearch/core/RestApiVersion.java | 11 +- modules/aggregations/build.gradle | 2 +- modules/analysis-common/build.gradle | 2 +- .../health-shards-availability/build.gradle | 2 +- modules/ingest-attachment/build.gradle | 4 +- modules/ingest-common/build.gradle | 2 +- modules/ingest-geoip/build.gradle | 2 +- .../qa/full-cluster-restart/build.gradle | 2 - .../ingest/geoip/FullClusterRestartIT.java | 2 + modules/ingest-user-agent/build.gradle | 2 +- modules/lang-mustache/build.gradle | 2 +- modules/lang-painless/build.gradle | 2 +- modules/parent-join/build.gradle | 2 +- modules/percolator/build.gradle | 2 +- modules/reindex/build.gradle | 4 +- modules/runtime-fields-common/build.gradle | 2 +- plugins/analysis-icu/build.gradle | 2 +- rest-api-spec/build.gradle | 2 +- .../main/java/org/elasticsearch/Version.java | 3 +- .../elasticsearch/index/IndexVersions.java | 2 +- .../plugin/autoscaling/qa/rest/build.gradle | 2 +- x-pack/plugin/build.gradle | 7 +- x-pack/plugin/downsample/qa/rest/build.gradle | 4 +- .../qa/full-cluster-restart/build.gradle | 5 - .../application/FullClusterRestartIT.java | 2 + x-pack/plugin/eql/qa/rest/build.gradle | 2 +- .../plugin/mapper-unsigned-long/build.gradle | 2 +- x-pack/plugin/ml/build.gradle | 6 +- x-pack/plugin/watcher/qa/rest/build.gradle | 2 +- .../qa/repository-old-versions/build.gradle | 4 +- .../qa/xpack-prefix-rest-compat/build.gradle | 17 +- 42 files changed, 133 insertions(+), 753 deletions(-) diff --git a/.buildkite/pipelines/intake.yml b/.buildkite/pipelines/intake.yml index bb3c75f10aaea..ab5e7084fcf3e 100644 --- a/.buildkite/pipelines/intake.yml +++ b/.buildkite/pipelines/intake.yml @@ -62,7 +62,7 @@ steps: timeout_in_minutes: 300 matrix: setup: - BWC_VERSION: ["7.17.24", "8.15.1", "8.16.0"] + BWC_VERSION: ["8.15.1", "8.16.0", "9.0.0"] agents: provider: gcp image: family/elasticsearch-ubuntu-2004 diff --git a/.buildkite/pipelines/periodic-packaging.yml b/.buildkite/pipelines/periodic-packaging.yml index 12729a9b6ebda..501fd10d49e01 100644 --- a/.buildkite/pipelines/periodic-packaging.yml +++ b/.buildkite/pipelines/periodic-packaging.yml @@ -33,312 +33,6 @@ steps: env: {} - group: packaging-tests-upgrade steps: - - label: "{{matrix.image}} / 7.0.1 / packaging-tests-upgrade" - command: ./.ci/scripts/packaging-test.sh -Dbwc.checkout.align=true destructiveDistroUpgradeTest.v7.0.1 - timeout_in_minutes: 300 - matrix: - setup: - image: - - rocky-8 - - ubuntu-2004 - agents: - provider: gcp - image: family/elasticsearch-{{matrix.image}} - machineType: custom-16-32768 - buildDirectory: /dev/shm/bk - diskSizeGb: 250 - env: - BWC_VERSION: 7.0.1 - - - label: "{{matrix.image}} / 7.1.1 / packaging-tests-upgrade" - command: ./.ci/scripts/packaging-test.sh -Dbwc.checkout.align=true destructiveDistroUpgradeTest.v7.1.1 - timeout_in_minutes: 300 - matrix: - setup: - image: - - rocky-8 - - ubuntu-2004 - agents: - provider: gcp - image: family/elasticsearch-{{matrix.image}} - machineType: custom-16-32768 - buildDirectory: /dev/shm/bk - diskSizeGb: 250 - env: - BWC_VERSION: 7.1.1 - - - label: "{{matrix.image}} / 7.2.1 / packaging-tests-upgrade" - command: ./.ci/scripts/packaging-test.sh -Dbwc.checkout.align=true destructiveDistroUpgradeTest.v7.2.1 - timeout_in_minutes: 300 - matrix: - setup: - image: - - rocky-8 - - ubuntu-2004 - agents: - provider: gcp - image: family/elasticsearch-{{matrix.image}} - machineType: custom-16-32768 - buildDirectory: /dev/shm/bk - diskSizeGb: 250 - env: - BWC_VERSION: 7.2.1 - - - label: "{{matrix.image}} / 7.3.2 / packaging-tests-upgrade" - command: ./.ci/scripts/packaging-test.sh -Dbwc.checkout.align=true destructiveDistroUpgradeTest.v7.3.2 - timeout_in_minutes: 300 - matrix: - setup: - image: - - rocky-8 - - ubuntu-2004 - agents: - provider: gcp - image: family/elasticsearch-{{matrix.image}} - machineType: custom-16-32768 - buildDirectory: /dev/shm/bk - diskSizeGb: 250 - env: - BWC_VERSION: 7.3.2 - - - label: "{{matrix.image}} / 7.4.2 / packaging-tests-upgrade" - command: ./.ci/scripts/packaging-test.sh -Dbwc.checkout.align=true destructiveDistroUpgradeTest.v7.4.2 - timeout_in_minutes: 300 - matrix: - setup: - image: - - rocky-8 - - ubuntu-2004 - agents: - provider: gcp - image: family/elasticsearch-{{matrix.image}} - machineType: custom-16-32768 - buildDirectory: /dev/shm/bk - diskSizeGb: 250 - env: - BWC_VERSION: 7.4.2 - - - label: "{{matrix.image}} / 7.5.2 / packaging-tests-upgrade" - command: ./.ci/scripts/packaging-test.sh -Dbwc.checkout.align=true destructiveDistroUpgradeTest.v7.5.2 - timeout_in_minutes: 300 - matrix: - setup: - image: - - rocky-8 - - ubuntu-2004 - agents: - provider: gcp - image: family/elasticsearch-{{matrix.image}} - machineType: custom-16-32768 - buildDirectory: /dev/shm/bk - diskSizeGb: 250 - env: - BWC_VERSION: 7.5.2 - - - label: "{{matrix.image}} / 7.6.2 / packaging-tests-upgrade" - command: ./.ci/scripts/packaging-test.sh -Dbwc.checkout.align=true destructiveDistroUpgradeTest.v7.6.2 - timeout_in_minutes: 300 - matrix: - setup: - image: - - rocky-8 - - ubuntu-2004 - agents: - provider: gcp - image: family/elasticsearch-{{matrix.image}} - machineType: custom-16-32768 - buildDirectory: /dev/shm/bk - diskSizeGb: 250 - env: - BWC_VERSION: 7.6.2 - - - label: "{{matrix.image}} / 7.7.1 / packaging-tests-upgrade" - command: ./.ci/scripts/packaging-test.sh -Dbwc.checkout.align=true destructiveDistroUpgradeTest.v7.7.1 - timeout_in_minutes: 300 - matrix: - setup: - image: - - rocky-8 - - ubuntu-2004 - agents: - provider: gcp - image: family/elasticsearch-{{matrix.image}} - machineType: custom-16-32768 - buildDirectory: /dev/shm/bk - diskSizeGb: 250 - env: - BWC_VERSION: 7.7.1 - - - label: "{{matrix.image}} / 7.8.1 / packaging-tests-upgrade" - command: ./.ci/scripts/packaging-test.sh -Dbwc.checkout.align=true destructiveDistroUpgradeTest.v7.8.1 - timeout_in_minutes: 300 - matrix: - setup: - image: - - rocky-8 - - ubuntu-2004 - agents: - provider: gcp - image: family/elasticsearch-{{matrix.image}} - machineType: custom-16-32768 - buildDirectory: /dev/shm/bk - diskSizeGb: 250 - env: - BWC_VERSION: 7.8.1 - - - label: "{{matrix.image}} / 7.9.3 / packaging-tests-upgrade" - command: ./.ci/scripts/packaging-test.sh -Dbwc.checkout.align=true destructiveDistroUpgradeTest.v7.9.3 - timeout_in_minutes: 300 - matrix: - setup: - image: - - rocky-8 - - ubuntu-2004 - agents: - provider: gcp - image: family/elasticsearch-{{matrix.image}} - machineType: custom-16-32768 - buildDirectory: /dev/shm/bk - diskSizeGb: 250 - env: - BWC_VERSION: 7.9.3 - - - label: "{{matrix.image}} / 7.10.2 / packaging-tests-upgrade" - command: ./.ci/scripts/packaging-test.sh -Dbwc.checkout.align=true destructiveDistroUpgradeTest.v7.10.2 - timeout_in_minutes: 300 - matrix: - setup: - image: - - rocky-8 - - ubuntu-2004 - agents: - provider: gcp - image: family/elasticsearch-{{matrix.image}} - machineType: custom-16-32768 - buildDirectory: /dev/shm/bk - diskSizeGb: 250 - env: - BWC_VERSION: 7.10.2 - - - label: "{{matrix.image}} / 7.11.2 / packaging-tests-upgrade" - command: ./.ci/scripts/packaging-test.sh -Dbwc.checkout.align=true destructiveDistroUpgradeTest.v7.11.2 - timeout_in_minutes: 300 - matrix: - setup: - image: - - rocky-8 - - ubuntu-2004 - agents: - provider: gcp - image: family/elasticsearch-{{matrix.image}} - machineType: custom-16-32768 - buildDirectory: /dev/shm/bk - diskSizeGb: 250 - env: - BWC_VERSION: 7.11.2 - - - label: "{{matrix.image}} / 7.12.1 / packaging-tests-upgrade" - command: ./.ci/scripts/packaging-test.sh -Dbwc.checkout.align=true destructiveDistroUpgradeTest.v7.12.1 - timeout_in_minutes: 300 - matrix: - setup: - image: - - rocky-8 - - ubuntu-2004 - agents: - provider: gcp - image: family/elasticsearch-{{matrix.image}} - machineType: custom-16-32768 - buildDirectory: /dev/shm/bk - diskSizeGb: 250 - env: - BWC_VERSION: 7.12.1 - - - label: "{{matrix.image}} / 7.13.4 / packaging-tests-upgrade" - command: ./.ci/scripts/packaging-test.sh -Dbwc.checkout.align=true destructiveDistroUpgradeTest.v7.13.4 - timeout_in_minutes: 300 - matrix: - setup: - image: - - rocky-8 - - ubuntu-2004 - agents: - provider: gcp - image: family/elasticsearch-{{matrix.image}} - machineType: custom-16-32768 - buildDirectory: /dev/shm/bk - diskSizeGb: 250 - env: - BWC_VERSION: 7.13.4 - - - label: "{{matrix.image}} / 7.14.2 / packaging-tests-upgrade" - command: ./.ci/scripts/packaging-test.sh -Dbwc.checkout.align=true destructiveDistroUpgradeTest.v7.14.2 - timeout_in_minutes: 300 - matrix: - setup: - image: - - rocky-8 - - ubuntu-2004 - agents: - provider: gcp - image: family/elasticsearch-{{matrix.image}} - machineType: custom-16-32768 - buildDirectory: /dev/shm/bk - diskSizeGb: 250 - env: - BWC_VERSION: 7.14.2 - - - label: "{{matrix.image}} / 7.15.2 / packaging-tests-upgrade" - command: ./.ci/scripts/packaging-test.sh -Dbwc.checkout.align=true destructiveDistroUpgradeTest.v7.15.2 - timeout_in_minutes: 300 - matrix: - setup: - image: - - rocky-8 - - ubuntu-2004 - agents: - provider: gcp - image: family/elasticsearch-{{matrix.image}} - machineType: custom-16-32768 - buildDirectory: /dev/shm/bk - diskSizeGb: 250 - env: - BWC_VERSION: 7.15.2 - - - label: "{{matrix.image}} / 7.16.3 / packaging-tests-upgrade" - command: ./.ci/scripts/packaging-test.sh -Dbwc.checkout.align=true destructiveDistroUpgradeTest.v7.16.3 - timeout_in_minutes: 300 - matrix: - setup: - image: - - rocky-8 - - ubuntu-2004 - agents: - provider: gcp - image: family/elasticsearch-{{matrix.image}} - machineType: custom-16-32768 - buildDirectory: /dev/shm/bk - diskSizeGb: 250 - env: - BWC_VERSION: 7.16.3 - - - label: "{{matrix.image}} / 7.17.24 / packaging-tests-upgrade" - command: ./.ci/scripts/packaging-test.sh -Dbwc.checkout.align=true destructiveDistroUpgradeTest.v7.17.24 - timeout_in_minutes: 300 - matrix: - setup: - image: - - rocky-8 - - ubuntu-2004 - agents: - provider: gcp - image: family/elasticsearch-{{matrix.image}} - machineType: custom-16-32768 - buildDirectory: /dev/shm/bk - diskSizeGb: 250 - env: - BWC_VERSION: 7.17.24 - - label: "{{matrix.image}} / 8.0.1 / packaging-tests-upgrade" command: ./.ci/scripts/packaging-test.sh -Dbwc.checkout.align=true destructiveDistroUpgradeTest.v8.0.1 timeout_in_minutes: 300 @@ -628,6 +322,23 @@ steps: env: BWC_VERSION: 8.16.0 + - label: "{{matrix.image}} / 9.0.0 / packaging-tests-upgrade" + command: ./.ci/scripts/packaging-test.sh -Dbwc.checkout.align=true destructiveDistroUpgradeTest.v9.0.0 + timeout_in_minutes: 300 + matrix: + setup: + image: + - rocky-8 + - ubuntu-2004 + agents: + provider: gcp + image: family/elasticsearch-{{matrix.image}} + machineType: custom-16-32768 + buildDirectory: /dev/shm/bk + diskSizeGb: 250 + env: + BWC_VERSION: 9.0.0 + - group: packaging-tests-windows steps: - label: "{{matrix.image}} / packaging-tests-windows" diff --git a/.buildkite/pipelines/periodic.yml b/.buildkite/pipelines/periodic.yml index 740fec13d1790..81378b920f3c2 100644 --- a/.buildkite/pipelines/periodic.yml +++ b/.buildkite/pipelines/periodic.yml @@ -2,366 +2,6 @@ steps: - group: bwc steps: - - label: 7.0.1 / bwc - command: .ci/scripts/run-gradle.sh -Dbwc.checkout.align=true v7.0.1#bwcTest - timeout_in_minutes: 300 - agents: - provider: gcp - image: family/elasticsearch-ubuntu-2004 - machineType: n1-standard-32 - buildDirectory: /dev/shm/bk - preemptible: true - diskSizeGb: 250 - env: - BWC_VERSION: 7.0.1 - retry: - automatic: - - exit_status: "-1" - limit: 3 - signal_reason: none - - signal_reason: agent_stop - limit: 3 - - - label: 7.1.1 / bwc - command: .ci/scripts/run-gradle.sh -Dbwc.checkout.align=true v7.1.1#bwcTest - timeout_in_minutes: 300 - agents: - provider: gcp - image: family/elasticsearch-ubuntu-2004 - machineType: n1-standard-32 - buildDirectory: /dev/shm/bk - preemptible: true - diskSizeGb: 250 - env: - BWC_VERSION: 7.1.1 - retry: - automatic: - - exit_status: "-1" - limit: 3 - signal_reason: none - - signal_reason: agent_stop - limit: 3 - - - label: 7.2.1 / bwc - command: .ci/scripts/run-gradle.sh -Dbwc.checkout.align=true v7.2.1#bwcTest - timeout_in_minutes: 300 - agents: - provider: gcp - image: family/elasticsearch-ubuntu-2004 - machineType: n1-standard-32 - buildDirectory: /dev/shm/bk - preemptible: true - diskSizeGb: 250 - env: - BWC_VERSION: 7.2.1 - retry: - automatic: - - exit_status: "-1" - limit: 3 - signal_reason: none - - signal_reason: agent_stop - limit: 3 - - - label: 7.3.2 / bwc - command: .ci/scripts/run-gradle.sh -Dbwc.checkout.align=true v7.3.2#bwcTest - timeout_in_minutes: 300 - agents: - provider: gcp - image: family/elasticsearch-ubuntu-2004 - machineType: n1-standard-32 - buildDirectory: /dev/shm/bk - preemptible: true - diskSizeGb: 250 - env: - BWC_VERSION: 7.3.2 - retry: - automatic: - - exit_status: "-1" - limit: 3 - signal_reason: none - - signal_reason: agent_stop - limit: 3 - - - label: 7.4.2 / bwc - command: .ci/scripts/run-gradle.sh -Dbwc.checkout.align=true v7.4.2#bwcTest - timeout_in_minutes: 300 - agents: - provider: gcp - image: family/elasticsearch-ubuntu-2004 - machineType: n1-standard-32 - buildDirectory: /dev/shm/bk - preemptible: true - diskSizeGb: 250 - env: - BWC_VERSION: 7.4.2 - retry: - automatic: - - exit_status: "-1" - limit: 3 - signal_reason: none - - signal_reason: agent_stop - limit: 3 - - - label: 7.5.2 / bwc - command: .ci/scripts/run-gradle.sh -Dbwc.checkout.align=true v7.5.2#bwcTest - timeout_in_minutes: 300 - agents: - provider: gcp - image: family/elasticsearch-ubuntu-2004 - machineType: n1-standard-32 - buildDirectory: /dev/shm/bk - preemptible: true - diskSizeGb: 250 - env: - BWC_VERSION: 7.5.2 - retry: - automatic: - - exit_status: "-1" - limit: 3 - signal_reason: none - - signal_reason: agent_stop - limit: 3 - - - label: 7.6.2 / bwc - command: .ci/scripts/run-gradle.sh -Dbwc.checkout.align=true v7.6.2#bwcTest - timeout_in_minutes: 300 - agents: - provider: gcp - image: family/elasticsearch-ubuntu-2004 - machineType: n1-standard-32 - buildDirectory: /dev/shm/bk - preemptible: true - diskSizeGb: 250 - env: - BWC_VERSION: 7.6.2 - retry: - automatic: - - exit_status: "-1" - limit: 3 - signal_reason: none - - signal_reason: agent_stop - limit: 3 - - - label: 7.7.1 / bwc - command: .ci/scripts/run-gradle.sh -Dbwc.checkout.align=true v7.7.1#bwcTest - timeout_in_minutes: 300 - agents: - provider: gcp - image: family/elasticsearch-ubuntu-2004 - machineType: n1-standard-32 - buildDirectory: /dev/shm/bk - preemptible: true - diskSizeGb: 250 - env: - BWC_VERSION: 7.7.1 - retry: - automatic: - - exit_status: "-1" - limit: 3 - signal_reason: none - - signal_reason: agent_stop - limit: 3 - - - label: 7.8.1 / bwc - command: .ci/scripts/run-gradle.sh -Dbwc.checkout.align=true v7.8.1#bwcTest - timeout_in_minutes: 300 - agents: - provider: gcp - image: family/elasticsearch-ubuntu-2004 - machineType: n1-standard-32 - buildDirectory: /dev/shm/bk - preemptible: true - diskSizeGb: 250 - env: - BWC_VERSION: 7.8.1 - retry: - automatic: - - exit_status: "-1" - limit: 3 - signal_reason: none - - signal_reason: agent_stop - limit: 3 - - - label: 7.9.3 / bwc - command: .ci/scripts/run-gradle.sh -Dbwc.checkout.align=true v7.9.3#bwcTest - timeout_in_minutes: 300 - agents: - provider: gcp - image: family/elasticsearch-ubuntu-2004 - machineType: n1-standard-32 - buildDirectory: /dev/shm/bk - preemptible: true - diskSizeGb: 250 - env: - BWC_VERSION: 7.9.3 - retry: - automatic: - - exit_status: "-1" - limit: 3 - signal_reason: none - - signal_reason: agent_stop - limit: 3 - - - label: 7.10.2 / bwc - command: .ci/scripts/run-gradle.sh -Dbwc.checkout.align=true v7.10.2#bwcTest - timeout_in_minutes: 300 - agents: - provider: gcp - image: family/elasticsearch-ubuntu-2004 - machineType: n1-standard-32 - buildDirectory: /dev/shm/bk - preemptible: true - diskSizeGb: 250 - env: - BWC_VERSION: 7.10.2 - retry: - automatic: - - exit_status: "-1" - limit: 3 - signal_reason: none - - signal_reason: agent_stop - limit: 3 - - - label: 7.11.2 / bwc - command: .ci/scripts/run-gradle.sh -Dbwc.checkout.align=true v7.11.2#bwcTest - timeout_in_minutes: 300 - agents: - provider: gcp - image: family/elasticsearch-ubuntu-2004 - machineType: n1-standard-32 - buildDirectory: /dev/shm/bk - preemptible: true - diskSizeGb: 250 - env: - BWC_VERSION: 7.11.2 - retry: - automatic: - - exit_status: "-1" - limit: 3 - signal_reason: none - - signal_reason: agent_stop - limit: 3 - - - label: 7.12.1 / bwc - command: .ci/scripts/run-gradle.sh -Dbwc.checkout.align=true v7.12.1#bwcTest - timeout_in_minutes: 300 - agents: - provider: gcp - image: family/elasticsearch-ubuntu-2004 - machineType: n1-standard-32 - buildDirectory: /dev/shm/bk - preemptible: true - diskSizeGb: 250 - env: - BWC_VERSION: 7.12.1 - retry: - automatic: - - exit_status: "-1" - limit: 3 - signal_reason: none - - signal_reason: agent_stop - limit: 3 - - - label: 7.13.4 / bwc - command: .ci/scripts/run-gradle.sh -Dbwc.checkout.align=true v7.13.4#bwcTest - timeout_in_minutes: 300 - agents: - provider: gcp - image: family/elasticsearch-ubuntu-2004 - machineType: n1-standard-32 - buildDirectory: /dev/shm/bk - preemptible: true - diskSizeGb: 250 - env: - BWC_VERSION: 7.13.4 - retry: - automatic: - - exit_status: "-1" - limit: 3 - signal_reason: none - - signal_reason: agent_stop - limit: 3 - - - label: 7.14.2 / bwc - command: .ci/scripts/run-gradle.sh -Dbwc.checkout.align=true v7.14.2#bwcTest - timeout_in_minutes: 300 - agents: - provider: gcp - image: family/elasticsearch-ubuntu-2004 - machineType: n1-standard-32 - buildDirectory: /dev/shm/bk - preemptible: true - diskSizeGb: 250 - env: - BWC_VERSION: 7.14.2 - retry: - automatic: - - exit_status: "-1" - limit: 3 - signal_reason: none - - signal_reason: agent_stop - limit: 3 - - - label: 7.15.2 / bwc - command: .ci/scripts/run-gradle.sh -Dbwc.checkout.align=true v7.15.2#bwcTest - timeout_in_minutes: 300 - agents: - provider: gcp - image: family/elasticsearch-ubuntu-2004 - machineType: n1-standard-32 - buildDirectory: /dev/shm/bk - preemptible: true - diskSizeGb: 250 - env: - BWC_VERSION: 7.15.2 - retry: - automatic: - - exit_status: "-1" - limit: 3 - signal_reason: none - - signal_reason: agent_stop - limit: 3 - - - label: 7.16.3 / bwc - command: .ci/scripts/run-gradle.sh -Dbwc.checkout.align=true v7.16.3#bwcTest - timeout_in_minutes: 300 - agents: - provider: gcp - image: family/elasticsearch-ubuntu-2004 - machineType: n1-standard-32 - buildDirectory: /dev/shm/bk - preemptible: true - diskSizeGb: 250 - env: - BWC_VERSION: 7.16.3 - retry: - automatic: - - exit_status: "-1" - limit: 3 - signal_reason: none - - signal_reason: agent_stop - limit: 3 - - - label: 7.17.24 / bwc - command: .ci/scripts/run-gradle.sh -Dbwc.checkout.align=true v7.17.24#bwcTest - timeout_in_minutes: 300 - agents: - provider: gcp - image: family/elasticsearch-ubuntu-2004 - machineType: n1-standard-32 - buildDirectory: /dev/shm/bk - preemptible: true - diskSizeGb: 250 - env: - BWC_VERSION: 7.17.24 - retry: - automatic: - - exit_status: "-1" - limit: 3 - signal_reason: none - - signal_reason: agent_stop - limit: 3 - - label: 8.0.1 / bwc command: .ci/scripts/run-gradle.sh -Dbwc.checkout.align=true v8.0.1#bwcTest timeout_in_minutes: 300 @@ -702,6 +342,26 @@ steps: - signal_reason: agent_stop limit: 3 + - label: 9.0.0 / bwc + command: .ci/scripts/run-gradle.sh -Dbwc.checkout.align=true v9.0.0#bwcTest + timeout_in_minutes: 300 + agents: + provider: gcp + image: family/elasticsearch-ubuntu-2004 + machineType: n1-standard-32 + buildDirectory: /dev/shm/bk + preemptible: true + diskSizeGb: 250 + env: + BWC_VERSION: 9.0.0 + retry: + automatic: + - exit_status: "-1" + limit: 3 + signal_reason: none + - signal_reason: agent_stop + limit: 3 + - label: concurrent-search-tests command: .ci/scripts/run-gradle.sh -Dbwc.checkout.align=true -Dtests.jvm.argline=-Des.concurrent_search=true -Des.concurrent_search=true functionalTests timeout_in_minutes: 420 @@ -771,7 +431,7 @@ steps: setup: ES_RUNTIME_JAVA: - openjdk17 - BWC_VERSION: ["7.17.24", "8.15.1", "8.16.0"] + BWC_VERSION: ["8.15.1", "8.16.0", "9.0.0"] agents: provider: gcp image: family/elasticsearch-ubuntu-2004 @@ -821,7 +481,7 @@ steps: - openjdk21 - openjdk22 - openjdk23 - BWC_VERSION: ["7.17.24", "8.15.1", "8.16.0"] + BWC_VERSION: ["8.15.1", "8.16.0", "9.0.0"] agents: provider: gcp image: family/elasticsearch-ubuntu-2004 diff --git a/.ci/bwcVersions b/.ci/bwcVersions index e43b3333dd755..f5a1ae4aa735b 100644 --- a/.ci/bwcVersions +++ b/.ci/bwcVersions @@ -1,22 +1,4 @@ BWC_VERSION: - - "7.0.1" - - "7.1.1" - - "7.2.1" - - "7.3.2" - - "7.4.2" - - "7.5.2" - - "7.6.2" - - "7.7.1" - - "7.8.1" - - "7.9.3" - - "7.10.2" - - "7.11.2" - - "7.12.1" - - "7.13.4" - - "7.14.2" - - "7.15.2" - - "7.16.3" - - "7.17.24" - "8.0.1" - "8.1.3" - "8.2.3" @@ -34,3 +16,4 @@ BWC_VERSION: - "8.14.3" - "8.15.1" - "8.16.0" + - "9.0.0" diff --git a/.ci/snapshotBwcVersions b/.ci/snapshotBwcVersions index 2eea118e57e2a..0dac06e1b63f6 100644 --- a/.ci/snapshotBwcVersions +++ b/.ci/snapshotBwcVersions @@ -1,4 +1,4 @@ BWC_VERSION: - - "7.17.24" - "8.15.1" - "8.16.0" + - "9.0.0" diff --git a/REST_API_COMPATIBILITY.md b/REST_API_COMPATIBILITY.md index c36b4ea9dbfb0..4a6ad4e7e17f5 100644 --- a/REST_API_COMPATIBILITY.md +++ b/REST_API_COMPATIBILITY.md @@ -158,12 +158,12 @@ The above code checks the request's compatible version and if the request has th The primary means of testing compatibility is via the prior major version's YAML REST tests. The build system will download the latest prior version of the YAML rest tests and execute them against the current cluster version. Prior to execution the tests will be transformed by injecting the correct headers to enable compatibility as well as other custom changes to the tests to allow the tests to pass. These customizations are configured via the build.gradle and happen just prior to test execution. Since the compatibility tests are manipulated version of the tests stored in Github (via the past major version), it is important to find the local (on disk) version for troubleshooting compatibility tests. -The tests are wired into the `check` task, so that is the easiest way to test locally prior to committing. More specifically the task is called `yamlRestTestV7CompatTest`, where 7 is the version of tests that are executing. For example, version 8 of the server will have a task named `yamlRestTestV7CompatTest` and version 9 of the server will have a task named `yamlRestTestV8CompatTest`. These behaves nearly identical to it's non-compat `yamlRestTest` task. The only variance is that the tests are sourced from the prior version branch and the tests go through a transformation phase before execution. The transformation task is `yamlRestTestV7CompatTransform` where the Vnumber follows the same convention as the test. +The tests are wired into the `check` task, so that is the easiest way to test locally prior to committing. More specifically the task is called `yamlRestCompatTest`. These behave nearly identical to it's non-compat `yamlRestTest` task. The only variance is that the tests are sourced from the prior version branch and the tests go through a transformation phase before execution. The transformation task is `yamlRestCompatTestTransform`. For example: ```bash -./gradlew :rest-api-spec:yamlRestTestV7CompatTest +./gradlew :rest-api-spec:yamlRestCompatTest ``` Since these are a variation of backward compatibility testing, the entire suite of compatibility tests will be skipped anytime the backward compatibility testing is disabled. Since the source code for these tests live in a branch of code, disabling a specific test should be done via the transformation task configuration in build.gradle (i.e. `yamlRestTestV7CompatTransform`). @@ -188,7 +188,7 @@ Muting compatibility tests should be done via a test transform. A per test skip ```groovy -tasks.named("yamlRestTestV7CompatTransform").configure({ task -> +tasks.named("yamlRestCompatTestTransform").configure({ task -> task.skipTestsByFilePattern("**/cat*/*.yml", "Cat API are not supported") task.skipTest("bulk/10_basic/Array of objects", "Muted due failures. See #12345") }) diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/test/rest/compat/compat/AbstractYamlRestCompatTestPlugin.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/test/rest/compat/compat/AbstractYamlRestCompatTestPlugin.java index c6320394ef5b9..0324e8c53338b 100644 --- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/test/rest/compat/compat/AbstractYamlRestCompatTestPlugin.java +++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/test/rest/compat/compat/AbstractYamlRestCompatTestPlugin.java @@ -8,8 +8,6 @@ package org.elasticsearch.gradle.internal.test.rest.compat.compat; -import org.elasticsearch.gradle.Version; -import org.elasticsearch.gradle.VersionProperties; import org.elasticsearch.gradle.internal.ElasticsearchJavaBasePlugin; import org.elasticsearch.gradle.internal.test.rest.CopyRestApiTask; import org.elasticsearch.gradle.internal.test.rest.CopyRestTestsTask; @@ -40,7 +38,6 @@ import java.nio.file.Path; import java.util.Arrays; import java.util.Map; - import javax.inject.Inject; import static org.elasticsearch.gradle.internal.test.rest.RestTestUtil.setupYamlRestTestDependenciesDefaults; @@ -59,8 +56,7 @@ public abstract class AbstractYamlRestCompatTestPlugin implements Plugin transformCompatTestTask = project.getTasks() - .register("yamlRestTestV" + COMPATIBLE_VERSION + "CompatTransform", RestCompatTestTransformTask.class, task -> { + .register("yamlRestCompatTestTransform", RestCompatTestTransformTask.class, task -> { task.getSourceDirectory().set(copyCompatYamlTestTask.flatMap(CopyRestTestsTask::getOutputResourceDir)); task.getOutputDirectory() .set(project.getLayout().getBuildDirectory().dir(compatTestsDir.resolve("transformed").toString())); diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/test/rest/compat/compat/LegacyYamlRestCompatTestPlugin.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/test/rest/compat/compat/LegacyYamlRestCompatTestPlugin.java index e84c84cc426a3..0bff8d65586d3 100644 --- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/test/rest/compat/compat/LegacyYamlRestCompatTestPlugin.java +++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/test/rest/compat/compat/LegacyYamlRestCompatTestPlugin.java @@ -34,7 +34,7 @@ public LegacyYamlRestCompatTestPlugin(ProjectLayout projectLayout, FileOperation @Override public TaskProvider registerTestTask(Project project, SourceSet sourceSet) { - return RestTestUtil.registerTestTask(project, sourceSet, sourceSet.getTaskName(null, "test")); + return RestTestUtil.registerTestTask(project, sourceSet, sourceSet.getName()); } @Override diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/test/rest/compat/compat/YamlRestCompatTestPlugin.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/test/rest/compat/compat/YamlRestCompatTestPlugin.java index 79588ca722ff1..b376284761ff0 100644 --- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/test/rest/compat/compat/YamlRestCompatTestPlugin.java +++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/test/rest/compat/compat/YamlRestCompatTestPlugin.java @@ -32,7 +32,7 @@ public YamlRestCompatTestPlugin(ProjectLayout projectLayout, FileOperations file @Override public TaskProvider registerTestTask(Project project, SourceSet sourceSet) { - return RestTestUtil.registerTestTask(project, sourceSet, sourceSet.getTaskName(null, "test"), StandaloneRestIntegTestTask.class); + return RestTestUtil.registerTestTask(project, sourceSet, sourceSet.getName(), StandaloneRestIntegTestTask.class); } @Override diff --git a/build-tools-internal/src/test/groovy/org/elasticsearch/gradle/internal/BwcVersionsSpec.groovy b/build-tools-internal/src/test/groovy/org/elasticsearch/gradle/internal/BwcVersionsSpec.groovy index 39a9af38e6a9c..d158bb9789764 100644 --- a/build-tools-internal/src/test/groovy/org/elasticsearch/gradle/internal/BwcVersionsSpec.groovy +++ b/build-tools-internal/src/test/groovy/org/elasticsearch/gradle/internal/BwcVersionsSpec.groovy @@ -134,6 +134,33 @@ class BwcVersionsSpec extends Specification { bwc.indexCompatible == osFiltered([v('7.14.0'), v('7.14.1'), v('7.14.2'), v('7.15.0'), v('7.15.1'), v('7.15.2'), v('7.16.0'), v('7.16.1'), v('7.17.0'), v('7.17.1'), v('8.0.0')]) } + def "current version is major with unreleased next minor"() { + given: + addVersion('7.14.0', '8.9.0') + addVersion('7.14.1', '8.9.0') + addVersion('7.14.2', '8.9.0') + addVersion('7.15.0', '8.9.0') + addVersion('7.15.1', '8.9.0') + addVersion('7.15.2', '8.9.0') + addVersion('7.16.0', '8.10.0') + addVersion('7.16.1', '8.10.0') + addVersion('7.17.0', '8.10.0') + addVersion('8.0.0', '9.0.0') + + when: + def bwc = new BwcVersions(versionLines, v('8.0.0')) + def unreleased = bwc.unreleased.collectEntries { [it, bwc.unreleasedInfo(it)] } + + then: + unreleased == [ + (v('7.16.1')): new UnreleasedVersionInfo(v('7.16.1'), '7.16', ':distribution:bwc:bugfix'), + (v('7.17.0')): new UnreleasedVersionInfo(v('7.17.0'), '7.17', ':distribution:bwc:staged'), + (v('8.0.0')): new UnreleasedVersionInfo(v('8.0.0'), 'main', ':distribution'), + ] + bwc.wireCompatible == [v('7.17.0'), v('8.0.0')] + bwc.indexCompatible == osFiltered([v('7.14.0'), v('7.14.1'), v('7.14.2'), v('7.15.0'), v('7.15.1'), v('7.15.2'), v('7.16.0'), v('7.16.1'), v('7.17.0'), v('8.0.0')]) + } + def "current version is next bugfix"() { given: addVersion('7.14.0', '8.9.0') diff --git a/build-tools-internal/version.properties b/build-tools-internal/version.properties index 1dd9fb95bd17b..edb97a2968bc8 100644 --- a/build-tools-internal/version.properties +++ b/build-tools-internal/version.properties @@ -1,4 +1,4 @@ -elasticsearch = 8.16.0 +elasticsearch = 9.0.0 lucene = 9.11.1 bundled_jdk_vendor = openjdk diff --git a/libs/core/src/main/java/org/elasticsearch/core/RestApiVersion.java b/libs/core/src/main/java/org/elasticsearch/core/RestApiVersion.java index 74acb00925e5a..25dac468aeffe 100644 --- a/libs/core/src/main/java/org/elasticsearch/core/RestApiVersion.java +++ b/libs/core/src/main/java/org/elasticsearch/core/RestApiVersion.java @@ -17,6 +17,8 @@ */ public enum RestApiVersion { + V_9(9), + V_8(8), @UpdateForV9 // v9 will not need to support the v7 REST API @@ -24,8 +26,8 @@ public enum RestApiVersion { public final byte major; - private static final RestApiVersion CURRENT = V_8; - private static final RestApiVersion PREVIOUS = V_7; + private static final RestApiVersion CURRENT = V_9; + private static final RestApiVersion PREVIOUS = V_8; RestApiVersion(int major) { this.major = (byte) major; @@ -49,6 +51,7 @@ public static RestApiVersion minimumSupported() { public static Predicate equalTo(RestApiVersion restApiVersion) { return switch (restApiVersion) { + case V_9 -> r -> r.major == V_9.major; case V_8 -> r -> r.major == V_8.major; case V_7 -> r -> r.major == V_7.major; }; @@ -56,6 +59,7 @@ public static Predicate equalTo(RestApiVersion restApiVersion) { public static Predicate onOrAfter(RestApiVersion restApiVersion) { return switch (restApiVersion) { + case V_9 -> r -> r.major >= V_9.major; case V_8 -> r -> r.major >= V_8.major; case V_7 -> r -> r.major >= V_7.major; }; @@ -69,6 +73,9 @@ public static RestApiVersion forMajor(int major) { case 8 -> { return V_8; } + case 9 -> { + return V_9; + } default -> throw new IllegalArgumentException("Unknown REST API version " + major); } } diff --git a/modules/aggregations/build.gradle b/modules/aggregations/build.gradle index a773c751eeaf5..f4ee74c75fb5e 100644 --- a/modules/aggregations/build.gradle +++ b/modules/aggregations/build.gradle @@ -36,7 +36,7 @@ if (BuildParams.isSnapshotBuild() == false) { } } -tasks.named("yamlRestTestV7CompatTransform").configure { task -> +tasks.named("yamlRestCompatTestTransform").configure { task -> task.skipTest("search.aggregation/20_terms/string profiler via global ordinals filters implementation", "The profiler results aren't backwards compatible.") task.skipTest("search.aggregation/20_terms/string profiler via global ordinals native implementation", "The profiler results aren't backwards compatible.") task.skipTest("search.aggregation/20_terms/string profiler via map", "The profiler results aren't backwards compatible.") diff --git a/modules/analysis-common/build.gradle b/modules/analysis-common/build.gradle index 1fc42a1b294fe..ffbdc1ba8124d 100644 --- a/modules/analysis-common/build.gradle +++ b/modules/analysis-common/build.gradle @@ -29,7 +29,7 @@ dependencies { clusterModules project(':modules:mapper-extras') } -tasks.named("yamlRestTestV7CompatTransform").configure { task -> +tasks.named("yamlRestCompatTestTransform").configure { task -> task.skipTest("indices.analyze/10_analyze/htmlStrip_deprecated", "Cleanup versioned deprecations in analysis #41560") task.skipTest("analysis-common/40_token_filters/delimited_payload_filter_error", "Remove preconfigured delimited_payload_filter #43686") task.skipTest("analysis-common/20_analyzers/standard_html_strip", "Cleanup versioned deprecations in analysis #41560") diff --git a/modules/health-shards-availability/build.gradle b/modules/health-shards-availability/build.gradle index 6c7cf5a19c8ac..0107de8fe86ee 100644 --- a/modules/health-shards-availability/build.gradle +++ b/modules/health-shards-availability/build.gradle @@ -20,6 +20,6 @@ restResources { } } -tasks.named("yamlRestTestV7CompatTransform").configure {task -> +tasks.named("yamlRestCompatTestTransform").configure {task -> task.addAllowedWarningRegex("setting \\[ecs\\] is deprecated as ECS format is the default and only option") } diff --git a/modules/ingest-attachment/build.gradle b/modules/ingest-attachment/build.gradle index 89f0b530713c6..5260ec9154744 100644 --- a/modules/ingest-attachment/build.gradle +++ b/modules/ingest-attachment/build.gradle @@ -138,7 +138,7 @@ tasks.named("forbiddenPatterns").configure { exclude '**/text-cjk-*.txt' } -tasks.named("yamlRestTestV7CompatTransform").configure { task -> +tasks.named("yamlRestCompatTestTransform").configure { task -> // 2 new tika metadata fields are returned in v8 task.replaceValueInLength("_source.attachment", 8, "Test ingest attachment processor with .doc file") task.replaceValueInLength("_source.attachment", 8, "Test ingest attachment processor with .docx file") @@ -153,5 +153,5 @@ tasks.named("thirdPartyAudit").configure { if (BuildParams.inFipsJvm) { tasks.named("test").configure { enabled = false } tasks.named("yamlRestTest").configure { enabled = false }; - tasks.named("yamlRestTestV7CompatTest").configure { enabled = false }; + tasks.named("yamlRestCompatTest").configure { enabled = false }; } diff --git a/modules/ingest-common/build.gradle b/modules/ingest-common/build.gradle index 90d52de6f0fff..935b6f8f0547c 100644 --- a/modules/ingest-common/build.gradle +++ b/modules/ingest-common/build.gradle @@ -48,6 +48,6 @@ tasks.named("thirdPartyAudit").configure { ) } -tasks.named("yamlRestTestV7CompatTransform").configure { task -> +tasks.named("yamlRestCompatTestTransform").configure { task -> task.addAllowedWarningRegex("\\[types removal\\].*") } diff --git a/modules/ingest-geoip/build.gradle b/modules/ingest-geoip/build.gradle index bc5bb165cd0d2..fa0338af761e9 100644 --- a/modules/ingest-geoip/build.gradle +++ b/modules/ingest-geoip/build.gradle @@ -84,7 +84,7 @@ tasks.named("dependencyLicenses").configure { ignoreFile 'elastic-geoip-database-service-agreement-LICENSE.txt' } -tasks.named("yamlRestTestV7CompatTransform").configure { task -> +tasks.named("yamlRestCompatTestTransform").configure { task -> task.skipTestsByFilePattern("**/ingest_geoip/20_geoip_processor.yml", "from 8.0 yaml rest tests use geoip test fixture and default geoip are no longer packaged. In 7.x yaml tests used default databases which makes tests results very different, so skipping these tests") // task.skipTest("lang_mustache/50_multi_search_template/Multi-search template with errors", "xxx") } diff --git a/modules/ingest-geoip/qa/full-cluster-restart/build.gradle b/modules/ingest-geoip/qa/full-cluster-restart/build.gradle index a97664923438b..306d425a4d923 100644 --- a/modules/ingest-geoip/qa/full-cluster-restart/build.gradle +++ b/modules/ingest-geoip/qa/full-cluster-restart/build.gradle @@ -20,8 +20,6 @@ dependencies { javaRestTestImplementation(testArtifact(project(":qa:full-cluster-restart"), "javaRestTest")) } -assert Version.fromString(VersionProperties.getVersions().get("elasticsearch")).getMajor() == 8 : - "If we are targeting a branch other than 8, we should enable migration tests" // once we are ready to test migrations from 8.x to 9.x, we can set the compatible version to 8.0.0 // see https://github.com/elastic/elasticsearch/pull/93666 diff --git a/modules/ingest-geoip/qa/full-cluster-restart/src/javaRestTest/java/org/elasticsearch/ingest/geoip/FullClusterRestartIT.java b/modules/ingest-geoip/qa/full-cluster-restart/src/javaRestTest/java/org/elasticsearch/ingest/geoip/FullClusterRestartIT.java index 4f8abf4b82390..6774d02bb217c 100644 --- a/modules/ingest-geoip/qa/full-cluster-restart/src/javaRestTest/java/org/elasticsearch/ingest/geoip/FullClusterRestartIT.java +++ b/modules/ingest-geoip/qa/full-cluster-restart/src/javaRestTest/java/org/elasticsearch/ingest/geoip/FullClusterRestartIT.java @@ -13,6 +13,7 @@ import org.apache.http.util.EntityUtils; import org.elasticsearch.client.Request; +import org.elasticsearch.core.UpdateForV9; import org.elasticsearch.test.cluster.ElasticsearchCluster; import org.elasticsearch.test.cluster.FeatureFlag; import org.elasticsearch.test.cluster.local.distribution.DistributionType; @@ -59,6 +60,7 @@ protected ElasticsearchCluster getUpgradeCluster() { return cluster; } + @UpdateForV9 public void testGeoIpSystemFeaturesMigration() throws Exception { if (isRunningAgainstOldCluster()) { Request enableDownloader = new Request("PUT", "/_cluster/settings"); diff --git a/modules/ingest-user-agent/build.gradle b/modules/ingest-user-agent/build.gradle index 64cd38c584820..50ce3104d9e3e 100644 --- a/modules/ingest-user-agent/build.gradle +++ b/modules/ingest-user-agent/build.gradle @@ -19,6 +19,6 @@ restResources { } } -tasks.named("yamlRestTestV7CompatTransform").configure {task -> +tasks.named("yamlRestCompatTestTransform").configure {task -> task.addAllowedWarningRegex("setting \\[ecs\\] is deprecated as ECS format is the default and only option") } diff --git a/modules/lang-mustache/build.gradle b/modules/lang-mustache/build.gradle index c36275699e21f..4c6321deb419b 100644 --- a/modules/lang-mustache/build.gradle +++ b/modules/lang-mustache/build.gradle @@ -26,7 +26,7 @@ restResources { } } -tasks.named("yamlRestTestV7CompatTransform").configure {task -> +tasks.named("yamlRestCompatTestTransform").configure {task -> task.addAllowedWarningRegex("\\[types removal\\].*") task.replaceValueInMatch("responses.1.error.root_cause.0.type", "x_content_e_o_f_exception", "Multi-search template with errors") } diff --git a/modules/lang-painless/build.gradle b/modules/lang-painless/build.gradle index cc557ac2289f6..c03baaab84688 100644 --- a/modules/lang-painless/build.gradle +++ b/modules/lang-painless/build.gradle @@ -61,7 +61,7 @@ tasks.named("test").configure { jvmArgs '-XX:-OmitStackTraceInFastThrow', '-XX:-HeapDumpOnOutOfMemoryError' } -tasks.named("yamlRestTestV7CompatTest").configure { +tasks.named("yamlRestCompatTest").configure { systemProperty 'tests.rest.blacklist', [ 'painless/20_scriptfield/Scripted Field Doing Compare (fields api)', 'painless/70_execute_painless_scripts/Execute with double field context (single-value, fields api)', diff --git a/modules/parent-join/build.gradle b/modules/parent-join/build.gradle index 844478c83e7c7..913083cbdbc6f 100644 --- a/modules/parent-join/build.gradle +++ b/modules/parent-join/build.gradle @@ -20,6 +20,6 @@ restResources { } } -tasks.named("yamlRestTestV7CompatTransform").configure { task -> +tasks.named("yamlRestCompatTestTransform").configure { task -> task.skipTest("/30_inner_hits/profile fetch", "profile output has changed") } diff --git a/modules/percolator/build.gradle b/modules/percolator/build.gradle index b9b257a42e051..96b7af9d8cd5d 100644 --- a/modules/percolator/build.gradle +++ b/modules/percolator/build.gradle @@ -24,6 +24,6 @@ restResources { } } -tasks.named("yamlRestTestV7CompatTransform").configure{ task -> +tasks.named("yamlRestCompatTestTransform").configure{ task -> task.addAllowedWarningRegex("\\[types removal\\].*") } diff --git a/modules/reindex/build.gradle b/modules/reindex/build.gradle index 9cd7963224cf8..2e151bd1b0777 100644 --- a/modules/reindex/build.gradle +++ b/modules/reindex/build.gradle @@ -161,7 +161,7 @@ if (OS.current() == OS.WINDOWS) { } } -tasks.named("yamlRestTestV7CompatTransform").configure { task -> +tasks.named("yamlRestCompatTestTransform").configure { task -> task.skipTest("reindex/20_validation/reindex without source gives useful error message", "exception with a type. Not much benefit adding _doc there.") task.skipTest("update_by_query/20_validation/update_by_query without source gives useful error message", "exception with a type. Not much benefit adding _doc there.") @@ -179,7 +179,7 @@ tasks.named("yamlRestTestV7CompatTransform").configure { task -> task.addAllowedWarningRegex("\\[types removal\\].*") } -tasks.named("yamlRestTestV7CompatTest").configure { +tasks.named("yamlRestCompatTest").configure { systemProperty 'tests.rest.blacklist', [ 'update_by_query/80_scripting/Can\'t change _id', 'update_by_query/80_scripting/Set unsupported operation type', diff --git a/modules/runtime-fields-common/build.gradle b/modules/runtime-fields-common/build.gradle index 5a2d268cf7a4e..f51e90b4c01bf 100644 --- a/modules/runtime-fields-common/build.gradle +++ b/modules/runtime-fields-common/build.gradle @@ -22,7 +22,7 @@ dependencies { api project(':libs:elasticsearch-dissect') } -tasks.named("yamlRestTestV7CompatTransform").configure { task -> +tasks.named("yamlRestCompatTestTransform").configure { task -> task.skipTest("runtime_fields/100_geo_point/fetch fields from source", "Format changed. Old format was a bug.") task.skipTest("runtime_fields/101_geo_point_from_source/fetch fields from source", "Format changed. Old format was a bug.") task.skipTest("runtime_fields/102_geo_point_source_in_query/fetch fields from source", "Format changed. Old format was a bug.") diff --git a/plugins/analysis-icu/build.gradle b/plugins/analysis-icu/build.gradle index 1c7db6d040be5..67b61e2f68ea8 100644 --- a/plugins/analysis-icu/build.gradle +++ b/plugins/analysis-icu/build.gradle @@ -43,7 +43,7 @@ tasks.named("dependencyLicenses").configure { mapping from: /lucene-.*/, to: 'lucene' } -tasks.named("yamlRestTestV7CompatTransform").configure { task -> +tasks.named("yamlRestCompatTestTransform").configure { task -> task.skipTest("analysis_icu/10_basic/Normalization with deprecated unicodeSetFilter", "Cleanup versioned deprecations in analysis #41560") } diff --git a/rest-api-spec/build.gradle b/rest-api-spec/build.gradle index 089b7470e9a97..a0936c226c5db 100644 --- a/rest-api-spec/build.gradle +++ b/rest-api-spec/build.gradle @@ -41,7 +41,7 @@ dependencies { clusterModules project(':modules:data-streams') } -tasks.named("yamlRestTestV7CompatTransform").configure { task -> +tasks.named("yamlRestCompatTestTransform").configure { task -> task.skipTestsByFilePattern("**/cat*/*.yml", "Cat API are meant to be consumed by humans, so will not be supported by Compatible REST API") task.skipTestsByFilePattern("**/indices.upgrade/*.yml", "upgrade api will only get a dummy endpoint returning an exception suggesting to use _reindex") diff --git a/server/src/main/java/org/elasticsearch/Version.java b/server/src/main/java/org/elasticsearch/Version.java index 333669ca8079c..13c4f637be972 100644 --- a/server/src/main/java/org/elasticsearch/Version.java +++ b/server/src/main/java/org/elasticsearch/Version.java @@ -183,7 +183,8 @@ public class Version implements VersionId, ToXContentFragment { public static final Version V_8_15_0 = new Version(8_15_00_99); public static final Version V_8_15_1 = new Version(8_15_01_99); public static final Version V_8_16_0 = new Version(8_16_00_99); - public static final Version CURRENT = V_8_16_0; + public static final Version V_9_0_0 = new Version(9_00_00_99); + public static final Version CURRENT = V_9_0_0; private static final NavigableMap VERSION_IDS; private static final Map VERSION_STRINGS; diff --git a/server/src/main/java/org/elasticsearch/index/IndexVersions.java b/server/src/main/java/org/elasticsearch/index/IndexVersions.java index 608d88fdef664..2b49a43a9c458 100644 --- a/server/src/main/java/org/elasticsearch/index/IndexVersions.java +++ b/server/src/main/java/org/elasticsearch/index/IndexVersions.java @@ -166,7 +166,7 @@ private static IndexVersion def(int id, Version luceneVersion) { * In branches 8.7-8.11 see server/src/main/java/org/elasticsearch/index/IndexVersion.java for the equivalent definitions. */ - public static final IndexVersion MINIMUM_COMPATIBLE = V_7_0_0; + public static final IndexVersion MINIMUM_COMPATIBLE = V_8_0_0; static final NavigableMap VERSION_IDS = getAllVersionIds(IndexVersions.class); static final IndexVersion LATEST_DEFINED; diff --git a/x-pack/plugin/autoscaling/qa/rest/build.gradle b/x-pack/plugin/autoscaling/qa/rest/build.gradle index 19254880a7089..b43003322be70 100644 --- a/x-pack/plugin/autoscaling/qa/rest/build.gradle +++ b/x-pack/plugin/autoscaling/qa/rest/build.gradle @@ -13,7 +13,7 @@ restResources { } } -tasks.named("yamlRestTestV7CompatTest").configure { +tasks.named("yamlRestCompatTest").configure { systemProperty 'tests.rest.blacklist', [ "autoscaling/get_autoscaling_capacity/Test get fixed autoscaling capacity", ].join(',') diff --git a/x-pack/plugin/build.gradle b/x-pack/plugin/build.gradle index ff45cc9430633..970532020cc07 100644 --- a/x-pack/plugin/build.gradle +++ b/x-pack/plugin/build.gradle @@ -22,8 +22,7 @@ dependencies { // let the yamlRestTests see the classpath of test GradleUtils.extendSourceSet(project, "test", "yamlRestTest", tasks.named("yamlRestTest")) -int compatVersion = VersionProperties.getElasticsearchVersion().getMajor() - 1; -GradleUtils.extendSourceSet(project, "test", "yamlRestTestV${compatVersion}Compat") +GradleUtils.extendSourceSet(project, "test", "yamlRestCompatTest") restResources { restApi { @@ -59,7 +58,7 @@ tasks.named("yamlRestTest").configure { systemProperty 'tests.rest.blacklist', restTestBlacklist.join(',') } -tasks.named("yamlRestTestV7CompatTest").configure { +tasks.named("yamlRestCompatTest").configure { systemProperty 'tests.rest.blacklist', [ 'unsigned_long/50_script_values/Scripted sort values', 'unsigned_long/50_script_values/script_score query', @@ -80,7 +79,7 @@ tasks.named("yamlRestTestV7CompatTest").configure { ].join(',') } -tasks.named("yamlRestTestV7CompatTransform").configure { task -> +tasks.named("yamlRestCompatTestTransform").configure { task -> task.skipTest( "vectors/10_dense_vector_basic/Deprecated function signature", "to support it, it would require to almost revert back the #48725 and complicate the code" diff --git a/x-pack/plugin/downsample/qa/rest/build.gradle b/x-pack/plugin/downsample/qa/rest/build.gradle index 603d69d695cac..cb7f90eaf1133 100644 --- a/x-pack/plugin/downsample/qa/rest/build.gradle +++ b/x-pack/plugin/downsample/qa/rest/build.gradle @@ -29,7 +29,7 @@ artifacts { tasks.named('yamlRestTest') { usesDefaultDistribution() } -tasks.named('yamlRestTestV7CompatTest') { +tasks.named('yamlRestCompatTest') { usesDefaultDistribution() } if (BuildParams.inFipsJvm){ @@ -37,6 +37,6 @@ if (BuildParams.inFipsJvm){ tasks.named("yamlRestTest").configure{enabled = false } } -tasks.named("yamlRestTestV7CompatTransform").configure { task -> +tasks.named("yamlRestCompatTestTransform").configure { task -> task.skipTest("rollup/10_basic/Rollup index", "Downsample for TSDB changed the configuration") } diff --git a/x-pack/plugin/ent-search/qa/full-cluster-restart/build.gradle b/x-pack/plugin/ent-search/qa/full-cluster-restart/build.gradle index b0f1e8bd026b0..eb14d6fe46958 100644 --- a/x-pack/plugin/ent-search/qa/full-cluster-restart/build.gradle +++ b/x-pack/plugin/ent-search/qa/full-cluster-restart/build.gradle @@ -6,8 +6,6 @@ * Side Public License, v 1. */ -import org.elasticsearch.gradle.Version -import org.elasticsearch.gradle.VersionProperties import org.elasticsearch.gradle.internal.info.BuildParams import org.elasticsearch.gradle.testclusters.StandaloneRestIntegTestTask @@ -21,9 +19,6 @@ dependencies { javaRestTestImplementation(testArtifact(project(":qa:full-cluster-restart"), "javaRestTest")) } -assert Version.fromString(VersionProperties.getVersions().get("elasticsearch")).getMajor() == 8: - "If we are targeting a branch other than 8, we should enable migration tests" - BuildParams.bwcVersions.withWireCompatible(v -> v.after("8.8.0")) { bwcVersion, baseName -> tasks.register(bwcTaskName(bwcVersion), StandaloneRestIntegTestTask) { usesBwcDistribution(bwcVersion) diff --git a/x-pack/plugin/ent-search/qa/full-cluster-restart/src/javaRestTest/java/org/elasticsearch/xpack/application/FullClusterRestartIT.java b/x-pack/plugin/ent-search/qa/full-cluster-restart/src/javaRestTest/java/org/elasticsearch/xpack/application/FullClusterRestartIT.java index e01b8de941851..5e3fd5eb6d112 100644 --- a/x-pack/plugin/ent-search/qa/full-cluster-restart/src/javaRestTest/java/org/elasticsearch/xpack/application/FullClusterRestartIT.java +++ b/x-pack/plugin/ent-search/qa/full-cluster-restart/src/javaRestTest/java/org/elasticsearch/xpack/application/FullClusterRestartIT.java @@ -12,6 +12,7 @@ import org.elasticsearch.client.Request; import org.elasticsearch.client.Response; import org.elasticsearch.client.ResponseException; +import org.elasticsearch.core.UpdateForV9; import org.elasticsearch.test.cluster.ElasticsearchCluster; import org.elasticsearch.test.cluster.local.distribution.DistributionType; import org.elasticsearch.test.rest.ObjectPath; @@ -25,6 +26,7 @@ import static org.elasticsearch.Version.V_8_12_0; import static org.hamcrest.Matchers.greaterThanOrEqualTo; +@UpdateForV9 // Investigate what needs to be added in terms of 9.0 migration testing public class FullClusterRestartIT extends ParameterizedFullClusterRestartTestCase { // DSL was introduced with version 8.12.0 of ES. private static final Version DSL_DEFAULT_RETENTION_VERSION = V_8_12_0; diff --git a/x-pack/plugin/eql/qa/rest/build.gradle b/x-pack/plugin/eql/qa/rest/build.gradle index 5f1911dd579bf..d5b0cc42091f3 100644 --- a/x-pack/plugin/eql/qa/rest/build.gradle +++ b/x-pack/plugin/eql/qa/rest/build.gradle @@ -26,7 +26,7 @@ tasks.named('javaRestTest') { tasks.named('yamlRestTest') { usesDefaultDistribution() } -tasks.named('yamlRestTestV7CompatTest') { +tasks.named('yamlRestCompatTest') { usesDefaultDistribution() } diff --git a/x-pack/plugin/mapper-unsigned-long/build.gradle b/x-pack/plugin/mapper-unsigned-long/build.gradle index 9c04584cdf130..86695fa650acf 100644 --- a/x-pack/plugin/mapper-unsigned-long/build.gradle +++ b/x-pack/plugin/mapper-unsigned-long/build.gradle @@ -37,7 +37,7 @@ restResources { } } -tasks.named("yamlRestTestV7CompatTest").configure { +tasks.named("yamlRestCompatTest").configure { systemProperty 'tests.rest.blacklist', [ '50_script_values/Scripted fields values return Long', '50_script_values/Scripted sort values', diff --git a/x-pack/plugin/ml/build.gradle b/x-pack/plugin/ml/build.gradle index 706d7ea73aea9..e0cd1b45f63ad 100644 --- a/x-pack/plugin/ml/build.gradle +++ b/x-pack/plugin/ml/build.gradle @@ -93,9 +93,11 @@ dependencies { testImplementation "com.google.jimfs:jimfs:${versions.jimfs}" } -def mlCppVersion(){ +def mlCppVersion() { + def mlVersion = "8.16.0" // Just use the latest 8.x builds until we have 9.0 snapshots return (project.gradle.parent != null && BuildParams.isSnapshotBuild() == false) ? - (project.version + "-SNAPSHOT") : project.version; + // (project.version + "-SNAPSHOT") : project.version; + (mlVersion + "-SNAPSHOT") : mlVersion; } artifacts { diff --git a/x-pack/plugin/watcher/qa/rest/build.gradle b/x-pack/plugin/watcher/qa/rest/build.gradle index 3f61bdcb3c2ed..15f5e52ee8ff7 100644 --- a/x-pack/plugin/watcher/qa/rest/build.gradle +++ b/x-pack/plugin/watcher/qa/rest/build.gradle @@ -36,7 +36,7 @@ if (BuildParams.inFipsJvm){ } -tasks.named("yamlRestTestV7CompatTransform").configure{ task -> +tasks.named("yamlRestCompatTestTransform").configure{ task -> task.skipTest("mustache/30_search_input/Test search input mustache integration (using request body and rest_total_hits_as_int)", "remove JodaCompatibleDateTime -- ZonedDateTime doesn't output millis/nanos if they're 0 (#78417)") task.skipTest("mustache/30_search_input/Test search input mustache integration (using request body)", "remove JodaCompatibleDateTime -- ZonedDateTime doesn't output millis/nanos if they're 0 (#78417)") task.skipTest("mustache/40_search_transform/Test search transform mustache integration (using request body)", "remove JodaCompatibleDateTime -- ZonedDateTime doesn't output millis/nanos if they're 0 (#78417)") diff --git a/x-pack/qa/repository-old-versions/build.gradle b/x-pack/qa/repository-old-versions/build.gradle index c8659aa0753f4..c5225927c48f0 100644 --- a/x-pack/qa/repository-old-versions/build.gradle +++ b/x-pack/qa/repository-old-versions/build.gradle @@ -66,8 +66,8 @@ if (OS.current() == OS.WINDOWS) { }); int currentMajorVersion = org.elasticsearch.gradle.VersionProperties.elasticsearchVersion.major - assert (currentMajorVersion - 2) == 6 : "add archive BWC tests for major version " + (currentMajorVersion - 2) - for (String versionString : ['5.0.0', '5.6.16', '6.0.0', '6.8.20']) { + assert (currentMajorVersion - 2) == 7 : "add archive BWC tests for major version " + (currentMajorVersion - 2) + for (String versionString : ['5.0.0', '5.6.16', '6.0.0', '6.8.20', '7.17.23']) { Version version = Version.fromString(versionString) String packageName = 'org.elasticsearch.distribution.zip' String artifact = "${packageName}:elasticsearch:${version}@zip" diff --git a/x-pack/qa/xpack-prefix-rest-compat/build.gradle b/x-pack/qa/xpack-prefix-rest-compat/build.gradle index 8b91aae21ff73..7adfba8ba3516 100644 --- a/x-pack/qa/xpack-prefix-rest-compat/build.gradle +++ b/x-pack/qa/xpack-prefix-rest-compat/build.gradle @@ -8,7 +8,6 @@ import org.elasticsearch.gradle.Version -import org.elasticsearch.gradle.VersionProperties apply plugin: 'elasticsearch.legacy-yaml-rest-compat-test' @@ -21,11 +20,9 @@ configurations { compatXpackTests } -int compatVersion = VersionProperties.getElasticsearchVersion().getMajor() - 1; - dependencies { - "yamlRestTestV${compatVersion}CompatImplementation" project(':test:framework') - "yamlRestTestV${compatVersion}CompatImplementation"(testArtifact(project(':x-pack:plugin'))) + yamlRestCompatTestImplementation project(':test:framework') + yamlRestCompatTestImplementation testArtifact(project(':x-pack:plugin')) compatXpackTests project(path: ':x-pack:plugin', configuration: 'restCompatTests') } @@ -35,7 +32,7 @@ tasks.named("copyRestCompatTestTask").configure { task -> task.setXpackConfig(configurations.compatXpackTests); task.getIncludeXpack().set(List.of("license", "migration", "ml", "rollup", "sql", "ssl")); def fileOperations = task.getFileOperations() - task.getOutputResourceDir().set(project.getLayout().getBuildDirectory().dir("restResources/v${compatVersion}/yamlTests/original")) + task.getOutputResourceDir().set(project.getLayout().getBuildDirectory().dir("restResources/yamlTests/original")) task.setXpackConfigToFileTree( config -> fileOperations.fileTree( config.getSingleFile() @@ -65,13 +62,13 @@ def copyExtraResources = tasks.register("copyExtraResources", Copy) { into extraResourceDir } // Add keystores to test classpath: it expects it there -sourceSets."yamlRestTestV${compatVersion}Compat".resources.compiledBy(copyExtraResources, t -> { +sourceSets.yamlRestCompatTest.resources.compiledBy(copyExtraResources, t -> { def dirProp = project.objects.directoryProperty() dirProp.set(t.destinationDir) return dirProp; }) -tasks.named("processYamlRestTestV${compatVersion}CompatResources").configure { +tasks.named("processYamlRestCompatTestResources").configure { dependsOn("copyExtraResources") } @@ -104,7 +101,7 @@ testClusters.configureEach { } // transform (again) the (already) transformed x-pack compatibility tests to test the xpack prefixes -tasks.named("yamlRestTestV7CompatTransform").configure{ task -> +tasks.named("yamlRestCompatTestTransform").configure{ task -> task.replaceKeyInDo("license.delete", "xpack-license.delete") task.replaceKeyInDo("license.get", "xpack-license.get") @@ -184,7 +181,7 @@ tasks.named("yamlRestTestV7CompatTransform").configure{ task -> task.addAllowedWarningRegexForTest(".*_xpack/ssl.* is deprecated.*", "Test get SSL certificates") } -tasks.named("yamlRestTestV7CompatTest").configure { +tasks.named("yamlRestCompatTest").configure { systemProperty 'tests.rest.blacklist', [ 'ml/evaluate_data_frame/Test classification auc_roc', 'ml/evaluate_data_frame/Test classification auc_roc with default top_classes_field', From da4131af2f63b84e9e160d7cbc64fc85210e77b4 Mon Sep 17 00:00:00 2001 From: Mark Vieira Date: Tue, 3 Sep 2024 16:51:40 -0700 Subject: [PATCH 02/34] Reintroduce concept of a major-1.x branch to BwcVersions --- .../gradle/internal/BwcVersions.java | 33 +++++++++---- .../AbstractYamlRestCompatTestPlugin.java | 18 ++++++- .../gradle/internal/BwcVersionsSpec.groovy | 47 +++++++++++++++---- 3 files changed, 76 insertions(+), 22 deletions(-) diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/BwcVersions.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/BwcVersions.java index 41bfddb01e665..8257f31c955ad 100644 --- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/BwcVersions.java +++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/BwcVersions.java @@ -67,18 +67,23 @@ public class BwcVersions { private static final Pattern LINE_PATTERN = Pattern.compile( "\\W+public static final Version V_(\\d+)_(\\d+)_(\\d+)(_alpha\\d+|_beta\\d+|_rc\\d+)?.*\\);" ); - private static final Version MINIMUM_WIRE_COMPATIBLE_VERSION = Version.fromString("7.17.0"); + private static final Version MINIMUM_WIRE_COMPATIBLE_VERSION = Version.fromString("8.16.0"); private static final String GLIBC_VERSION_ENV_VAR = "GLIBC_VERSION"; private final Version currentVersion; private final List versions; private final Map unreleased; + private final Version minimumWireCompatibleVersion; public BwcVersions(List versionLines) { - this(versionLines, Version.fromString(VersionProperties.getElasticsearch())); + this(versionLines, Version.fromString(VersionProperties.getElasticsearch()), MINIMUM_WIRE_COMPATIBLE_VERSION); } public BwcVersions(Version currentVersionProperty, List allVersions) { + this(currentVersionProperty, allVersions, MINIMUM_WIRE_COMPATIBLE_VERSION); + } + + public BwcVersions(Version currentVersionProperty, List allVersions, Version minimumWireCompatibleVersion) { if (allVersions.isEmpty()) { throw new IllegalArgumentException("Could not parse any versions"); } @@ -88,11 +93,12 @@ public BwcVersions(Version currentVersionProperty, List allVersions) { assertCurrentVersionMatchesParsed(currentVersionProperty); this.unreleased = computeUnreleased(); + this.minimumWireCompatibleVersion = MINIMUM_WIRE_COMPATIBLE_VERSION; } // Visible for testing - BwcVersions(List versionLines, Version currentVersionProperty) { - this(currentVersionProperty, parseVersionLines(versionLines)); + BwcVersions(List versionLines, Version currentVersionProperty, Version minimumWireCompatibleVersion) { + this(currentVersionProperty, parseVersionLines(versionLines), minimumWireCompatibleVersion); } private static List parseVersionLines(List versionLines) { @@ -155,6 +161,7 @@ private Map computeUnreleased() { List unreleasedList = unreleased.stream().sorted(Comparator.reverseOrder()).toList(); Map result = new TreeMap<>(); + boolean newMinor = false; for (int i = 0; i < unreleasedList.size(); i++) { Version esVersion = unreleasedList.get(i); // This is either a new minor or staged release @@ -162,11 +169,17 @@ private Map computeUnreleased() { result.put(esVersion, new UnreleasedVersionInfo(esVersion, getBranchFor(esVersion), ":distribution")); } else if (esVersion.getRevision() == 0) { // If there are two upcoming unreleased minors then this one is the new minor - if (unreleasedList.get(i + 1).getRevision() == 0) { - result.put(esVersion, new UnreleasedVersionInfo(esVersion, getBranchFor(esVersion), ":distribution:bwc:minor")); - } else { - result.put(esVersion, new UnreleasedVersionInfo(esVersion, getBranchFor(esVersion), ":distribution:bwc:staged")); - } + if (newMinor == false && unreleasedList.get(i + 1).getRevision() == 0) { + result.put(esVersion, new UnreleasedVersionInfo(esVersion, esVersion.getMajor() + ".x", ":distribution:bwc:minor")); + newMinor = true; + } else if (newMinor == false + && unreleasedList.stream().filter(v -> v.getMajor() == esVersion.getMajor() && v.getRevision() == 0).count() == 1) { + // This is the only unreleased new minor which means we've not yet staged it for release + result.put(esVersion, new UnreleasedVersionInfo(esVersion, esVersion.getMajor() + ".x", ":distribution:bwc:minor")); + newMinor = true; + } else { + result.put(esVersion, new UnreleasedVersionInfo(esVersion, getBranchFor(esVersion), ":distribution:bwc:staged")); + } } else { // If this is the oldest unreleased version and we have a maintenance release if (i == unreleasedList.size() - 1 && hasMaintenanceRelease) { @@ -286,7 +299,7 @@ public List getUnreleasedWireCompatible() { } public Version getMinimumWireCompatibleVersion() { - return MINIMUM_WIRE_COMPATIBLE_VERSION; + return minimumWireCompatibleVersion; } public record UnreleasedVersionInfo(Version version, String branch, String gradleProjectPath) {} diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/test/rest/compat/compat/AbstractYamlRestCompatTestPlugin.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/test/rest/compat/compat/AbstractYamlRestCompatTestPlugin.java index 0324e8c53338b..2ed50e1bc76cc 100644 --- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/test/rest/compat/compat/AbstractYamlRestCompatTestPlugin.java +++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/test/rest/compat/compat/AbstractYamlRestCompatTestPlugin.java @@ -8,7 +8,10 @@ package org.elasticsearch.gradle.internal.test.rest.compat.compat; +import org.elasticsearch.gradle.Version; +import org.elasticsearch.gradle.VersionProperties; import org.elasticsearch.gradle.internal.ElasticsearchJavaBasePlugin; +import org.elasticsearch.gradle.internal.info.BuildParams; import org.elasticsearch.gradle.internal.test.rest.CopyRestApiTask; import org.elasticsearch.gradle.internal.test.rest.CopyRestTestsTask; import org.elasticsearch.gradle.internal.test.rest.LegacyYamlRestTestPlugin; @@ -37,7 +40,9 @@ import java.io.File; import java.nio.file.Path; import java.util.Arrays; +import java.util.Comparator; import java.util.Map; + import javax.inject.Inject; import static org.elasticsearch.gradle.internal.test.rest.RestTestUtil.setupYamlRestTestDependenciesDefaults; @@ -84,10 +89,19 @@ public void apply(Project project) { SourceSet yamlTestSourceSet = sourceSets.getByName(YamlRestTestPlugin.YAML_REST_TEST); GradleUtils.extendSourceSet(project, YamlRestTestPlugin.YAML_REST_TEST, SOURCE_SET_NAME); + // determine the previous rest compatibility version and BWC project path + int currenMajor = VersionProperties.getElasticsearchVersion().getMajor(); + Version lastMinor = BuildParams.getBwcVersions() + .getUnreleased() + .stream() + .filter(v -> v.getMajor() == currenMajor - 1) + .min(Comparator.reverseOrder()) + .get(); + String lastMinorProjectPath = BuildParams.getBwcVersions().unreleasedInfo(lastMinor).gradleProjectPath(); + // copy compatible rest specs Configuration bwcMinorConfig = project.getConfigurations().create(BWC_MINOR_CONFIG_NAME); - Dependency bwcMinor = project.getDependencies() - .project(Map.of("path", ":distribution:bwc:maintenance", "configuration", "checkout")); + Dependency bwcMinor = project.getDependencies().project(Map.of("path", lastMinorProjectPath, "configuration", "checkout")); project.getDependencies().add(bwcMinorConfig.getName(), bwcMinor); String projectPath = project.getPath(); diff --git a/build-tools-internal/src/test/groovy/org/elasticsearch/gradle/internal/BwcVersionsSpec.groovy b/build-tools-internal/src/test/groovy/org/elasticsearch/gradle/internal/BwcVersionsSpec.groovy index d158bb9789764..04b054d541037 100644 --- a/build-tools-internal/src/test/groovy/org/elasticsearch/gradle/internal/BwcVersionsSpec.groovy +++ b/build-tools-internal/src/test/groovy/org/elasticsearch/gradle/internal/BwcVersionsSpec.groovy @@ -35,14 +35,14 @@ class BwcVersionsSpec extends Specification { addVersion('8.1.0', '9.0.0') when: - def bwc = new BwcVersions(versionLines, v('8.1.0')) + def bwc = new BwcVersions(versionLines, v('8.1.0'), v('7.17.0')) def unreleased = bwc.unreleased.collectEntries { [it, bwc.unreleasedInfo(it)] } then: unreleased == [ (v('7.16.2')): new UnreleasedVersionInfo(v('7.16.2'), '7.16', ':distribution:bwc:bugfix'), (v('7.17.0')): new UnreleasedVersionInfo(v('7.17.0'), '7.17', ':distribution:bwc:staged'), - (v('8.0.0')): new UnreleasedVersionInfo(v('8.0.0'), '8.0', ':distribution:bwc:minor'), + (v('8.0.0')): new UnreleasedVersionInfo(v('8.0.0'), '8.x', ':distribution:bwc:minor'), (v('8.1.0')): new UnreleasedVersionInfo(v('8.1.0'), 'main', ':distribution') ] bwc.wireCompatible == [v('7.17.0'), v('8.0.0'), v('8.1.0')] @@ -64,14 +64,14 @@ class BwcVersionsSpec extends Specification { addVersion('8.1.0', '9.1.0') when: - def bwc = new BwcVersions(versionLines, v('8.1.0')) + def bwc = new BwcVersions(versionLines, v('8.1.0'), v('7.17.0')) def unreleased = bwc.unreleased.collectEntries { [it, bwc.unreleasedInfo(it)] } then: unreleased == [ (v('7.16.1')): new UnreleasedVersionInfo(v('7.16.1'), '7.16', ':distribution:bwc:bugfix'), (v('7.17.0')): new UnreleasedVersionInfo(v('7.17.0'), '7.17', ':distribution:bwc:staged'), - (v('8.0.0')): new UnreleasedVersionInfo(v('8.0.0'), '8.0', ':distribution:bwc:minor'), + (v('8.0.0')): new UnreleasedVersionInfo(v('8.0.0'), '8.x', ':distribution:bwc:minor'), (v('8.1.0')): new UnreleasedVersionInfo(v('8.1.0'), 'main', ':distribution') ] bwc.wireCompatible == [v('7.17.0'), v('8.0.0'), v('8.1.0')] @@ -94,7 +94,7 @@ class BwcVersionsSpec extends Specification { addVersion('8.1.0', '9.1.0') when: - def bwc = new BwcVersions(versionLines, v('8.1.0')) + def bwc = new BwcVersions(versionLines, v('8.1.0'), v('7.17.0')) def unreleased = bwc.unreleased.collectEntries { [it, bwc.unreleasedInfo(it)] } then: @@ -122,7 +122,7 @@ class BwcVersionsSpec extends Specification { addVersion('8.0.0', '9.0.0') when: - def bwc = new BwcVersions(versionLines, v('8.0.0')) + def bwc = new BwcVersions(versionLines, v('8.0.0'), v('7.17.0')) def unreleased = bwc.unreleased.collectEntries { [it, bwc.unreleasedInfo(it)] } then: @@ -148,19 +148,46 @@ class BwcVersionsSpec extends Specification { addVersion('8.0.0', '9.0.0') when: - def bwc = new BwcVersions(versionLines, v('8.0.0')) + def bwc = new BwcVersions(versionLines, v('8.0.0'), v('7.17.0')) def unreleased = bwc.unreleased.collectEntries { [it, bwc.unreleasedInfo(it)] } then: unreleased == [ (v('7.16.1')): new UnreleasedVersionInfo(v('7.16.1'), '7.16', ':distribution:bwc:bugfix'), - (v('7.17.0')): new UnreleasedVersionInfo(v('7.17.0'), '7.17', ':distribution:bwc:staged'), + (v('7.17.0')): new UnreleasedVersionInfo(v('7.17.0'), '7.x', ':distribution:bwc:minor'), (v('8.0.0')): new UnreleasedVersionInfo(v('8.0.0'), 'main', ':distribution'), ] bwc.wireCompatible == [v('7.17.0'), v('8.0.0')] bwc.indexCompatible == osFiltered([v('7.14.0'), v('7.14.1'), v('7.14.2'), v('7.15.0'), v('7.15.1'), v('7.15.2'), v('7.16.0'), v('7.16.1'), v('7.17.0'), v('8.0.0')]) } + def "current version is major with staged next minor"() { + given: + addVersion('7.14.0', '8.9.0') + addVersion('7.14.1', '8.9.0') + addVersion('7.14.2', '8.9.0') + addVersion('7.15.0', '8.9.0') + addVersion('7.15.1', '8.9.0') + addVersion('7.15.2', '8.9.0') + addVersion('7.16.0', '8.10.0') + addVersion('7.17.0', '8.10.0') + addVersion('8.0.0', '9.0.0') + + when: + def bwc = new BwcVersions(versionLines, v('8.0.0'), v('7.17.0')) + def unreleased = bwc.unreleased.collectEntries { [it, bwc.unreleasedInfo(it)] } + + then: + unreleased == [ + (v('7.15.2')): new UnreleasedVersionInfo(v('7.15.2'), '7.15', ':distribution:bwc:bugfix'), + (v('7.16.0')): new UnreleasedVersionInfo(v('7.16.0'), '7.16', ':distribution:bwc:staged'), + (v('7.17.0')): new UnreleasedVersionInfo(v('7.17.0'), '7.x', ':distribution:bwc:minor'), + (v('8.0.0')): new UnreleasedVersionInfo(v('8.0.0'), 'main', ':distribution'), + ] + bwc.wireCompatible == [v('7.17.0'), v('8.0.0')] + bwc.indexCompatible == osFiltered([v('7.14.0'), v('7.14.1'), v('7.14.2'), v('7.15.0'), v('7.15.1'), v('7.15.2'), v('7.16.0'), v('7.17.0'), v('8.0.0')]) + } + def "current version is next bugfix"() { given: addVersion('7.14.0', '8.9.0') @@ -177,7 +204,7 @@ class BwcVersionsSpec extends Specification { addVersion('8.0.1', '9.0.0') when: - def bwc = new BwcVersions(versionLines, v('8.0.1')) + def bwc = new BwcVersions(versionLines, v('8.0.1'), v('7.17.0')) def unreleased = bwc.unreleased.collectEntries { [it, bwc.unreleasedInfo(it)] } then: @@ -206,7 +233,7 @@ class BwcVersionsSpec extends Specification { addVersion('8.1.0', '9.1.0') when: - def bwc = new BwcVersions(versionLines, v('8.1.0')) + def bwc = new BwcVersions(versionLines, v('8.1.0'), v('7.17.0')) def unreleased = bwc.unreleased.collectEntries { [it, bwc.unreleasedInfo(it)] } then: From 57f454940be0f9df951b8e48c90b33b83ef64a4a Mon Sep 17 00:00:00 2001 From: Mark Vieira Date: Wed, 4 Sep 2024 09:56:58 -0700 Subject: [PATCH 03/34] Update rest compat plugin tests --- ...acyYamlRestCompatTestPluginFuncTest.groovy | 61 +++++++++---------- .../gradle/internal/BwcVersions.java | 4 ++ .../AbstractYamlRestCompatTestPlugin.java | 7 +-- .../qa/xpack-prefix-rest-compat/build.gradle | 2 +- 4 files changed, 37 insertions(+), 37 deletions(-) diff --git a/build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/test/rest/LegacyYamlRestCompatTestPluginFuncTest.groovy b/build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/test/rest/LegacyYamlRestCompatTestPluginFuncTest.groovy index b7c4908e39b62..80255ff072850 100644 --- a/build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/test/rest/LegacyYamlRestCompatTestPluginFuncTest.groovy +++ b/build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/test/rest/LegacyYamlRestCompatTestPluginFuncTest.groovy @@ -19,10 +19,9 @@ import org.gradle.testkit.runner.TaskOutcome class LegacyYamlRestCompatTestPluginFuncTest extends AbstractRestResourcesFuncTest { - def compatibleVersion = Version.fromString(VersionProperties.getVersions().get("elasticsearch")).getMajor() - 1 - def specIntermediateDir = "restResources/v${compatibleVersion}/yamlSpecs" - def testIntermediateDir = "restResources/v${compatibleVersion}/yamlTests" - def transformTask = ":yamlRestTestV${compatibleVersion}CompatTransform" + def specIntermediateDir = "restResources/compat/yamlSpecs" + def testIntermediateDir = "restResources/compat/yamlTests" + def transformTask = ":yamlRestCompatTestTransform" def YAML_FACTORY = new YAMLFactory() def MAPPER = new ObjectMapper(YAML_FACTORY) def READER = MAPPER.readerFor(ObjectNode.class) @@ -36,9 +35,11 @@ class LegacyYamlRestCompatTestPluginFuncTest extends AbstractRestResourcesFuncTe buildApiRestrictionsDisabled = true } - def "yamlRestTestVxCompatTest does nothing when there are no tests"() { + def "yamlRestCompatTest does nothing when there are no tests"() { given: - subProject(":distribution:bwc:maintenance") << """ + internalBuild() + + subProject(":distribution:bwc:staged") << """ configurations { checkout } artifacts { checkout(new File(projectDir, "checkoutDir")) @@ -46,27 +47,25 @@ class LegacyYamlRestCompatTestPluginFuncTest extends AbstractRestResourcesFuncTe """ buildFile << """ - plugins { - id 'elasticsearch.legacy-yaml-rest-compat-test' - } + apply plugin: 'elasticsearch.legacy-yaml-rest-compat-test' """ when: - def result = gradleRunner("yamlRestTestV${compatibleVersion}CompatTest", '--stacktrace').build() + def result = gradleRunner("yamlRestCompatTest", '--stacktrace').build() then: // we set the task to be skipped if there are no matching tests in the compatibility test sourceSet - result.task(":yamlRestTestV${compatibleVersion}CompatTest").outcome == TaskOutcome.SKIPPED + result.task(":yamlRestCompatTest").outcome == TaskOutcome.SKIPPED result.task(':copyRestCompatApiTask').outcome == TaskOutcome.NO_SOURCE result.task(':copyRestCompatTestTask').outcome == TaskOutcome.NO_SOURCE result.task(transformTask).outcome == TaskOutcome.NO_SOURCE } - def "yamlRestTestVxCompatTest executes and copies api and transforms tests from :bwc:maintenance"() { + def "yamlRestCompatTest executes and copies api and transforms tests from :bwc:staged"() { given: internalBuild() - subProject(":distribution:bwc:maintenance") << """ + subProject(":distribution:bwc:staged") << """ configurations { checkout } artifacts { checkout(new File(projectDir, "checkoutDir")) @@ -91,7 +90,7 @@ class LegacyYamlRestCompatTestPluginFuncTest extends AbstractRestResourcesFuncTe String wrongTest = "wrong_version.yml" String additionalTest = "additional_test.yml" setupRestResources([wrongApi], [wrongTest]) //setups up resources for current version, which should not be used for this test - String sourceSetName = "yamlRestTestV" + compatibleVersion + "Compat" + String sourceSetName = "yamlRestCompatTest" addRestTestsToProject([additionalTest], sourceSetName) //intentionally adding to yamlRestTest source set since the .classes are copied from there file("src/yamlRestTest/java/MockIT.java") << "import org.junit.Test;class MockIT { @Test public void doNothing() { }}" @@ -99,14 +98,14 @@ class LegacyYamlRestCompatTestPluginFuncTest extends AbstractRestResourcesFuncTe String api = "foo.json" String test = "10_basic.yml" //add the compatible test and api files, these are the prior version's normal yaml rest tests - file("distribution/bwc/maintenance/checkoutDir/rest-api-spec/src/main/resources/rest-api-spec/api/" + api) << "" - file("distribution/bwc/maintenance/checkoutDir/src/yamlRestTest/resources/rest-api-spec/test/" + test) << "" + file("distribution/bwc/staged/checkoutDir/rest-api-spec/src/main/resources/rest-api-spec/api/" + api) << "" + file("distribution/bwc/staged/checkoutDir/src/yamlRestTest/resources/rest-api-spec/test/" + test) << "" when: - def result = gradleRunner("yamlRestTestV${compatibleVersion}CompatTest").build() + def result = gradleRunner("yamlRestCompatTest").build() then: - result.task(":yamlRestTestV${compatibleVersion}CompatTest").outcome == TaskOutcome.SKIPPED + result.task(":yamlRestCompatTest").outcome == TaskOutcome.SKIPPED result.task(':copyRestCompatApiTask').outcome == TaskOutcome.SUCCESS result.task(':copyRestCompatTestTask').outcome == TaskOutcome.SUCCESS result.task(transformTask).outcome == TaskOutcome.SUCCESS @@ -133,19 +132,20 @@ class LegacyYamlRestCompatTestPluginFuncTest extends AbstractRestResourcesFuncTe result.task(':copyYamlTestsTask').outcome == TaskOutcome.NO_SOURCE when: - result = gradleRunner("yamlRestTestV${compatibleVersion}CompatTest").build() + result = gradleRunner("yamlRestCompatTest").build() then: - result.task(":yamlRestTestV${compatibleVersion}CompatTest").outcome == TaskOutcome.SKIPPED + result.task(":yamlRestCompatTest").outcome == TaskOutcome.SKIPPED result.task(':copyRestCompatApiTask').outcome == TaskOutcome.UP_TO_DATE result.task(':copyRestCompatTestTask').outcome == TaskOutcome.UP_TO_DATE result.task(transformTask).outcome == TaskOutcome.UP_TO_DATE } - def "yamlRestTestVxCompatTest is wired into check and checkRestCompat"() { + def "yamlRestCompatTest is wired into check and checkRestCompat"() { given: + internalBuild() withVersionCatalogue() - subProject(":distribution:bwc:maintenance") << """ + subProject(":distribution:bwc:staged") << """ configurations { checkout } artifacts { checkout(new File(projectDir, "checkoutDir")) @@ -153,10 +153,7 @@ class LegacyYamlRestCompatTestPluginFuncTest extends AbstractRestResourcesFuncTe """ buildFile << """ - plugins { - id 'elasticsearch.legacy-yaml-rest-compat-test' - } - + apply plugin: 'elasticsearch.legacy-yaml-rest-compat-test' """ when: @@ -165,7 +162,7 @@ class LegacyYamlRestCompatTestPluginFuncTest extends AbstractRestResourcesFuncTe then: result.task(':check').outcome == TaskOutcome.UP_TO_DATE result.task(':checkRestCompat').outcome == TaskOutcome.UP_TO_DATE - result.task(":yamlRestTestV${compatibleVersion}CompatTest").outcome == TaskOutcome.SKIPPED + result.task(":yamlRestCompatTest").outcome == TaskOutcome.SKIPPED result.task(':copyRestCompatApiTask').outcome == TaskOutcome.NO_SOURCE result.task(':copyRestCompatTestTask').outcome == TaskOutcome.NO_SOURCE result.task(transformTask).outcome == TaskOutcome.NO_SOURCE @@ -179,7 +176,7 @@ class LegacyYamlRestCompatTestPluginFuncTest extends AbstractRestResourcesFuncTe then: result.task(':check').outcome == TaskOutcome.UP_TO_DATE result.task(':checkRestCompat').outcome == TaskOutcome.UP_TO_DATE - result.task(":yamlRestTestV${compatibleVersion}CompatTest").outcome == TaskOutcome.SKIPPED + result.task(":yamlRestCompatTest").outcome == TaskOutcome.SKIPPED result.task(':copyRestCompatApiTask').outcome == TaskOutcome.SKIPPED result.task(':copyRestCompatTestTask').outcome == TaskOutcome.SKIPPED result.task(transformTask).outcome == TaskOutcome.SKIPPED @@ -189,7 +186,7 @@ class LegacyYamlRestCompatTestPluginFuncTest extends AbstractRestResourcesFuncTe given: internalBuild() - subProject(":distribution:bwc:maintenance") << """ + subProject(":distribution:bwc:staged") << """ configurations { checkout } artifacts { checkout(new File(projectDir, "checkoutDir")) @@ -205,7 +202,7 @@ class LegacyYamlRestCompatTestPluginFuncTest extends AbstractRestResourcesFuncTe dependencies { yamlRestTestImplementation "junit:junit:4.12" } - tasks.named("yamlRestTestV${compatibleVersion}CompatTransform").configure({ task -> + tasks.named("yamlRestCompatTestTransform").configure({ task -> task.skipTest("test/test/two", "This is a test to skip test two") task.replaceValueInMatch("_type", "_doc") task.replaceValueInMatch("_source.values", ["z", "x", "y"], "one") @@ -233,7 +230,7 @@ class LegacyYamlRestCompatTestPluginFuncTest extends AbstractRestResourcesFuncTe setupRestResources([], []) - file("distribution/bwc/maintenance/checkoutDir/src/yamlRestTest/resources/rest-api-spec/test/test.yml" ) << """ + file("distribution/bwc/staged/checkoutDir/src/yamlRestTest/resources/rest-api-spec/test/test.yml" ) << """ "one": - do: do_.some.key_to_replace: @@ -280,7 +277,7 @@ class LegacyYamlRestCompatTestPluginFuncTest extends AbstractRestResourcesFuncTe - match: {} """.stripIndent() when: - def result = gradleRunner("yamlRestTestV${compatibleVersion}CompatTest").build() + def result = gradleRunner("yamlRestCompatTest").build() then: diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/BwcVersions.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/BwcVersions.java index 8257f31c955ad..65349a4692b84 100644 --- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/BwcVersions.java +++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/BwcVersions.java @@ -302,6 +302,10 @@ public Version getMinimumWireCompatibleVersion() { return minimumWireCompatibleVersion; } + public Version getCurrentVersion() { + return currentVersion; + } + public record UnreleasedVersionInfo(Version version, String branch, String gradleProjectPath) {} /** diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/test/rest/compat/compat/AbstractYamlRestCompatTestPlugin.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/test/rest/compat/compat/AbstractYamlRestCompatTestPlugin.java index 2ed50e1bc76cc..e39cb48db8e98 100644 --- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/test/rest/compat/compat/AbstractYamlRestCompatTestPlugin.java +++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/test/rest/compat/compat/AbstractYamlRestCompatTestPlugin.java @@ -9,7 +9,6 @@ package org.elasticsearch.gradle.internal.test.rest.compat.compat; import org.elasticsearch.gradle.Version; -import org.elasticsearch.gradle.VersionProperties; import org.elasticsearch.gradle.internal.ElasticsearchJavaBasePlugin; import org.elasticsearch.gradle.internal.info.BuildParams; import org.elasticsearch.gradle.internal.test.rest.CopyRestApiTask; @@ -74,7 +73,7 @@ public AbstractYamlRestCompatTestPlugin(ProjectLayout projectLayout, FileOperati @Override public void apply(Project project) { - final Path compatRestResourcesDir = Path.of("restResources"); + final Path compatRestResourcesDir = Path.of("restResources").resolve("compat"); final Path compatSpecsDir = compatRestResourcesDir.resolve("yamlSpecs"); final Path compatTestsDir = compatRestResourcesDir.resolve("yamlTests"); project.getPluginManager().apply(getBasePlugin()); @@ -90,11 +89,11 @@ public void apply(Project project) { GradleUtils.extendSourceSet(project, YamlRestTestPlugin.YAML_REST_TEST, SOURCE_SET_NAME); // determine the previous rest compatibility version and BWC project path - int currenMajor = VersionProperties.getElasticsearchVersion().getMajor(); + int currentMajor = BuildParams.getBwcVersions().getCurrentVersion().getMajor(); Version lastMinor = BuildParams.getBwcVersions() .getUnreleased() .stream() - .filter(v -> v.getMajor() == currenMajor - 1) + .filter(v -> v.getMajor() == currentMajor - 1) .min(Comparator.reverseOrder()) .get(); String lastMinorProjectPath = BuildParams.getBwcVersions().unreleasedInfo(lastMinor).gradleProjectPath(); diff --git a/x-pack/qa/xpack-prefix-rest-compat/build.gradle b/x-pack/qa/xpack-prefix-rest-compat/build.gradle index 7adfba8ba3516..58030b05f0ffb 100644 --- a/x-pack/qa/xpack-prefix-rest-compat/build.gradle +++ b/x-pack/qa/xpack-prefix-rest-compat/build.gradle @@ -32,7 +32,7 @@ tasks.named("copyRestCompatTestTask").configure { task -> task.setXpackConfig(configurations.compatXpackTests); task.getIncludeXpack().set(List.of("license", "migration", "ml", "rollup", "sql", "ssl")); def fileOperations = task.getFileOperations() - task.getOutputResourceDir().set(project.getLayout().getBuildDirectory().dir("restResources/yamlTests/original")) + task.getOutputResourceDir().set(project.getLayout().getBuildDirectory().dir("restResources/compat/yamlTests/original")) task.setXpackConfigToFileTree( config -> fileOperations.fileTree( config.getSingleFile() From ec32cec1ff9461cc5769cb711a3d291cf031b988 Mon Sep 17 00:00:00 2001 From: Mark Vieira Date: Wed, 4 Sep 2024 11:38:26 -0700 Subject: [PATCH 04/34] Remove testing of 7.x here for now --- x-pack/qa/repository-old-versions/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x-pack/qa/repository-old-versions/build.gradle b/x-pack/qa/repository-old-versions/build.gradle index c5225927c48f0..1abf6662a1b8b 100644 --- a/x-pack/qa/repository-old-versions/build.gradle +++ b/x-pack/qa/repository-old-versions/build.gradle @@ -67,7 +67,7 @@ if (OS.current() == OS.WINDOWS) { int currentMajorVersion = org.elasticsearch.gradle.VersionProperties.elasticsearchVersion.major assert (currentMajorVersion - 2) == 7 : "add archive BWC tests for major version " + (currentMajorVersion - 2) - for (String versionString : ['5.0.0', '5.6.16', '6.0.0', '6.8.20', '7.17.23']) { + for (String versionString : ['5.0.0', '5.6.16', '6.0.0', '6.8.20']) { Version version = Version.fromString(versionString) String packageName = 'org.elasticsearch.distribution.zip' String artifact = "${packageName}:elasticsearch:${version}@zip" From d865159403900a976aff3e92532fb4c4ba159b32 Mon Sep 17 00:00:00 2001 From: Mark Vieira Date: Wed, 4 Sep 2024 11:43:09 -0700 Subject: [PATCH 05/34] Use minimum wire compatible version for CCS testing --- .../plugin/ml/qa/multi-cluster-tests-with-security/build.gradle | 2 +- .../transform/qa/multi-cluster-tests-with-security/build.gradle | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/x-pack/plugin/ml/qa/multi-cluster-tests-with-security/build.gradle b/x-pack/plugin/ml/qa/multi-cluster-tests-with-security/build.gradle index b19fa4ab5f185..bc22552d0d734 100644 --- a/x-pack/plugin/ml/qa/multi-cluster-tests-with-security/build.gradle +++ b/x-pack/plugin/ml/qa/multi-cluster-tests-with-security/build.gradle @@ -12,7 +12,7 @@ dependencies { testImplementation project(':x-pack:qa') } -Version ccsCompatVersion = new Version(VersionProperties.getElasticsearchVersion().getMajor(), VersionProperties.getElasticsearchVersion().getMinor() - 1, 0) +Version ccsCompatVersion = BuildParams.bwcVersions.minimumWireCompatibleVersion restResources { restApi { diff --git a/x-pack/plugin/transform/qa/multi-cluster-tests-with-security/build.gradle b/x-pack/plugin/transform/qa/multi-cluster-tests-with-security/build.gradle index 13470e3c2e4ec..b429e123bb631 100644 --- a/x-pack/plugin/transform/qa/multi-cluster-tests-with-security/build.gradle +++ b/x-pack/plugin/transform/qa/multi-cluster-tests-with-security/build.gradle @@ -12,7 +12,7 @@ dependencies { testImplementation project(':x-pack:qa') } -Version ccsCompatVersion = new Version(VersionProperties.getElasticsearchVersion().getMajor(), VersionProperties.getElasticsearchVersion().getMinor() - 1, 0) +Version ccsCompatVersion = BuildParams.bwcVersions.minimumWireCompatibleVersion restResources { restApi { From 23a67bcb93db8e6e85484cd6611330d3f998faba Mon Sep 17 00:00:00 2001 From: Mark Vieira Date: Wed, 4 Sep 2024 12:38:33 -0700 Subject: [PATCH 06/34] Remove overriden rest compatibility tests --- ...config_exclusions_with_node_name_part.json | 33 --- .../api/indices.put_template_with_param.json | 54 ----- .../10_basic_compat.yml | 18 -- .../10_basic_upgrade.yml | 42 ---- .../indices.put_template/10_basic_compat.yml | 66 ------ .../nodes.hot_threads/10_basic_compat.yml | 19 -- .../test/search.aggregation/10_moving_avg.yml | 28 --- .../search.sort/10_nested_path_filter.yml | 149 -------------- .../test/search/10_cutoff_frequency.yml | 103 ---------- .../test/search/10_geo_bounding_box.yml | 78 ------- .../test/search/10_type_query.yml | 52 ----- .../10_compat_geo_shape_with_types.yml | 68 ------- .../test/freeze.gone/10_basic_compat.yml | 38 ---- .../api/xpack-watcher.ack_watch.json | 55 ----- .../api/xpack-watcher.activate_watch.json | 34 ---- .../api/xpack-watcher.deactivate_watch.json | 34 ---- .../api/xpack-watcher.delete_watch.json | 33 --- .../api/xpack-watcher.execute_watch.json | 57 ------ .../api/xpack-watcher.get_watch.json | 34 ---- .../api/xpack-watcher.put_watch.json | 57 ------ .../api/xpack-watcher.start.json | 28 --- .../api/xpack-watcher.stats.json | 66 ------ .../rest-api-spec/api/xpack-watcher.stop.json | 28 --- .../qa/xpack-prefix-rest-compat/build.gradle | 192 ------------------ .../xpack/test/rest/XPackRestIT.java | 24 --- .../api/xpack-license.delete.json | 27 --- .../rest-api-spec/api/xpack-license.get.json | 38 ---- .../api/xpack-license.get_basic_status.json | 28 --- .../api/xpack-license.get_trial_status.json | 28 --- .../rest-api-spec/api/xpack-license.post.json | 46 ----- .../api/xpack-license.post_start_basic.json | 33 --- .../api/xpack-license.post_start_trial.json | 37 ---- .../api/xpack-migration.deprecations.json | 44 ---- .../rest-api-spec/api/xpack-ml.close_job.json | 60 ------ .../api/xpack-ml.delete_calendar.json | 33 --- .../api/xpack-ml.delete_calendar_event.json | 37 ---- .../api/xpack-ml.delete_calendar_job.json | 37 ---- .../api/xpack-ml.delete_datafeed.json | 40 ---- .../api/xpack-ml.delete_expired_data.json | 58 ------ .../api/xpack-ml.delete_filter.json | 33 --- .../api/xpack-ml.delete_forecast.json | 65 ------ .../api/xpack-ml.delete_job.json | 45 ---- .../api/xpack-ml.delete_model_snapshot.json | 37 ---- .../rest-api-spec/api/xpack-ml.flush_job.json | 59 ------ .../rest-api-spec/api/xpack-ml.forecast.json | 50 ----- .../api/xpack-ml.get_buckets.json | 97 --------- .../api/xpack-ml.get_calendar_events.json | 55 ----- .../api/xpack-ml.get_calendars.json | 55 ----- .../api/xpack-ml.get_categories.json | 73 ------- .../api/xpack-ml.get_datafeed_stats.json | 56 ----- .../api/xpack-ml.get_datafeeds.json | 62 ------ .../api/xpack-ml.get_filters.json | 49 ----- .../api/xpack-ml.get_influencers.json | 72 ------- .../api/xpack-ml.get_job_stats.json | 52 ----- .../rest-api-spec/api/xpack-ml.get_jobs.json | 62 ------ .../api/xpack-ml.get_model_snapshots.json | 85 -------- .../api/xpack-ml.get_overall_buckets.json | 73 ------- .../api/xpack-ml.get_records.json | 72 ------- .../rest-api-spec/api/xpack-ml.info.json | 27 --- .../rest-api-spec/api/xpack-ml.open_job.json | 33 --- .../api/xpack-ml.post_calendar_events.json | 38 ---- .../rest-api-spec/api/xpack-ml.post_data.json | 49 ----- .../api/xpack-ml.preview_datafeed.json | 49 ----- .../api/xpack-ml.put_calendar.json | 38 ---- .../api/xpack-ml.put_calendar_job.json | 37 ---- .../api/xpack-ml.put_datafeed.json | 63 ------ .../api/xpack-ml.put_filter.json | 38 ---- .../rest-api-spec/api/xpack-ml.put_job.json | 63 ------ .../api/xpack-ml.revert_model_snapshot.json | 47 ----- .../api/xpack-ml.set_upgrade_mode.json | 37 ---- .../api/xpack-ml.start_datafeed.json | 54 ----- .../api/xpack-ml.stop_datafeed.json | 60 ------ .../api/xpack-ml.update_datafeed.json | 63 ------ .../api/xpack-ml.update_filter.json | 38 ---- .../api/xpack-ml.update_job.json | 38 ---- .../api/xpack-ml.update_model_snapshot.json | 43 ---- .../rest-api-spec/api/xpack-ml.validate.json | 33 --- .../api/xpack-ml.validate_detector.json | 33 --- .../api/xpack-monitoring.bulk.json | 48 ----- .../api/xpack-rollup.delete_job.json | 33 --- .../api/xpack-rollup.get_jobs.json | 43 ---- .../api/xpack-rollup.get_rollup_caps.json | 43 ---- .../xpack-rollup.get_rollup_index_caps.json | 33 --- .../api/xpack-rollup.put_job.json | 38 ---- .../api/xpack-rollup.start_job.json | 33 --- .../api/xpack-rollup.stop_job.json | 45 ---- .../api/xpack-sql.clear_cursor.json | 28 --- .../rest-api-spec/api/xpack-sql.query.json | 35 ---- .../api/xpack-sql.translate.json | 30 --- .../api/xpack-ssl.certificates.json | 28 --- .../test/monitoring.bulk/10_basic_compat.yml | 31 --- 91 files changed, 4437 deletions(-) delete mode 100644 rest-api-spec/src/yamlRestTestV7Compat/resources/rest-api-spec/api/cluster.post_voting_config_exclusions_with_node_name_part.json delete mode 100644 rest-api-spec/src/yamlRestTestV7Compat/resources/rest-api-spec/api/indices.put_template_with_param.json delete mode 100644 rest-api-spec/src/yamlRestTestV7Compat/resources/rest-api-spec/test/cluster.voting_config_exclusions/10_basic_compat.yml delete mode 100644 rest-api-spec/src/yamlRestTestV7Compat/resources/rest-api-spec/test/indices.deprecated.upgrade/10_basic_upgrade.yml delete mode 100644 rest-api-spec/src/yamlRestTestV7Compat/resources/rest-api-spec/test/indices.put_template/10_basic_compat.yml delete mode 100644 rest-api-spec/src/yamlRestTestV7Compat/resources/rest-api-spec/test/nodes.hot_threads/10_basic_compat.yml delete mode 100644 rest-api-spec/src/yamlRestTestV7Compat/resources/rest-api-spec/test/search.aggregation/10_moving_avg.yml delete mode 100644 rest-api-spec/src/yamlRestTestV7Compat/resources/rest-api-spec/test/search.sort/10_nested_path_filter.yml delete mode 100644 rest-api-spec/src/yamlRestTestV7Compat/resources/rest-api-spec/test/search/10_cutoff_frequency.yml delete mode 100644 rest-api-spec/src/yamlRestTestV7Compat/resources/rest-api-spec/test/search/10_geo_bounding_box.yml delete mode 100644 rest-api-spec/src/yamlRestTestV7Compat/resources/rest-api-spec/test/search/10_type_query.yml delete mode 100644 x-pack/plugin/src/yamlRestTestV7Compat/resources/rest-api-spec.test.geo_shape/10_compat_geo_shape_with_types.yml delete mode 100644 x-pack/plugin/src/yamlRestTestV7Compat/resources/rest-api-spec/test/freeze.gone/10_basic_compat.yml delete mode 100644 x-pack/plugin/watcher/qa/rest/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-watcher.ack_watch.json delete mode 100644 x-pack/plugin/watcher/qa/rest/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-watcher.activate_watch.json delete mode 100644 x-pack/plugin/watcher/qa/rest/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-watcher.deactivate_watch.json delete mode 100644 x-pack/plugin/watcher/qa/rest/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-watcher.delete_watch.json delete mode 100644 x-pack/plugin/watcher/qa/rest/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-watcher.execute_watch.json delete mode 100644 x-pack/plugin/watcher/qa/rest/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-watcher.get_watch.json delete mode 100644 x-pack/plugin/watcher/qa/rest/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-watcher.put_watch.json delete mode 100644 x-pack/plugin/watcher/qa/rest/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-watcher.start.json delete mode 100644 x-pack/plugin/watcher/qa/rest/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-watcher.stats.json delete mode 100644 x-pack/plugin/watcher/qa/rest/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-watcher.stop.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/build.gradle delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/java/org/elasticsearch/xpack/test/rest/XPackRestIT.java delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-license.delete.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-license.get.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-license.get_basic_status.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-license.get_trial_status.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-license.post.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-license.post_start_basic.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-license.post_start_trial.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-migration.deprecations.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.close_job.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.delete_calendar.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.delete_calendar_event.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.delete_calendar_job.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.delete_datafeed.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.delete_expired_data.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.delete_filter.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.delete_forecast.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.delete_job.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.delete_model_snapshot.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.flush_job.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.forecast.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.get_buckets.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.get_calendar_events.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.get_calendars.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.get_categories.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.get_datafeed_stats.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.get_datafeeds.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.get_filters.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.get_influencers.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.get_job_stats.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.get_jobs.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.get_model_snapshots.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.get_overall_buckets.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.get_records.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.info.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.open_job.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.post_calendar_events.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.post_data.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.preview_datafeed.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.put_calendar.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.put_calendar_job.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.put_datafeed.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.put_filter.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.put_job.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.revert_model_snapshot.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.set_upgrade_mode.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.start_datafeed.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.stop_datafeed.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.update_datafeed.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.update_filter.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.update_job.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.update_model_snapshot.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.validate.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.validate_detector.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-monitoring.bulk.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-rollup.delete_job.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-rollup.get_jobs.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-rollup.get_rollup_caps.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-rollup.get_rollup_index_caps.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-rollup.put_job.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-rollup.start_job.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-rollup.stop_job.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-sql.clear_cursor.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-sql.query.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-sql.translate.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ssl.certificates.json delete mode 100644 x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/test/monitoring.bulk/10_basic_compat.yml diff --git a/rest-api-spec/src/yamlRestTestV7Compat/resources/rest-api-spec/api/cluster.post_voting_config_exclusions_with_node_name_part.json b/rest-api-spec/src/yamlRestTestV7Compat/resources/rest-api-spec/api/cluster.post_voting_config_exclusions_with_node_name_part.json deleted file mode 100644 index 2cdc2f3bc9aea..0000000000000 --- a/rest-api-spec/src/yamlRestTestV7Compat/resources/rest-api-spec/api/cluster.post_voting_config_exclusions_with_node_name_part.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "cluster.post_voting_config_exclusions_with_node_name_part":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/master/voting-config-exclusions.html", - "description":"Updates the cluster voting config exclusions by node_name (not node ids or node names)." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"] - }, - "url":{ - "paths":[ - { - "path":"/_cluster/voting_config_exclusions/{node_name}", - "methods":[ - "POST" - ], - "parts":{ - "node_name":{ - "type":"string", - "description":"A comma-separated list of node descriptors of the nodes to exclude from the voting configuration." - } - }, - "deprecated":{ - "version":"7.8.0", - "description":"node_name is deprecated, use node_names or node_ids instead" - } - } - ] - } - } -} diff --git a/rest-api-spec/src/yamlRestTestV7Compat/resources/rest-api-spec/api/indices.put_template_with_param.json b/rest-api-spec/src/yamlRestTestV7Compat/resources/rest-api-spec/api/indices.put_template_with_param.json deleted file mode 100644 index 7ee6cbd39ebf3..0000000000000 --- a/rest-api-spec/src/yamlRestTestV7Compat/resources/rest-api-spec/api/indices.put_template_with_param.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "indices.put_template_with_param":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-templates.html", - "description":"Creates or updates an index template." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"], - "content_type": ["application/vnd.elasticsearch+json;compatible-with=7"] - }, - "url":{ - "paths":[ - { - "path":"/_template/{name}", - "methods":[ - "PUT", - "POST" - ], - "parts":{ - "name":{ - "type":"string", - "description":"The name of the template" - } - } - } - ] - }, - "params":{ - "template":{ - "type":"string", - "description":"The indices that this template should apply to, replaced by index_patterns within the template definition." - }, - "order":{ - "type":"number", - "description":"The order for this template when merging multiple matching ones (higher numbers are merged later, overriding the lower numbers)" - }, - "create":{ - "type":"boolean", - "description":"Whether the index template should only be added if new or can also replace an existing one", - "default":false - }, - "master_timeout":{ - "type":"time", - "description":"Specify timeout for connection to master" - } - }, - "body":{ - "description":"The template definition", - "required":true - } - } -} diff --git a/rest-api-spec/src/yamlRestTestV7Compat/resources/rest-api-spec/test/cluster.voting_config_exclusions/10_basic_compat.yml b/rest-api-spec/src/yamlRestTestV7Compat/resources/rest-api-spec/test/cluster.voting_config_exclusions/10_basic_compat.yml deleted file mode 100644 index 8806918703abe..0000000000000 --- a/rest-api-spec/src/yamlRestTestV7Compat/resources/rest-api-spec/test/cluster.voting_config_exclusions/10_basic_compat.yml +++ /dev/null @@ -1,18 +0,0 @@ ---- -setup: - - requires: - test_runner_features: - - "headers" - - "warnings_regex" - ---- -"Throw exception when adding voting config exclusion by specifying a 'node_name'": - - do: - headers: - Content-Type: "application/vnd.elasticsearch+json;compatible-with=7" - Accept: "application/vnd.elasticsearch+json;compatible-with=7" - cluster.post_voting_config_exclusions_with_node_name_part: - node_name: someNodeName - warnings_regex: - - ".* /_cluster/voting_config_exclusions/\\{node_name\\} has been removed. .*" - catch: /\[node_name\] has been removed, you must set \[node_names\] or \[node_ids\]/ diff --git a/rest-api-spec/src/yamlRestTestV7Compat/resources/rest-api-spec/test/indices.deprecated.upgrade/10_basic_upgrade.yml b/rest-api-spec/src/yamlRestTestV7Compat/resources/rest-api-spec/test/indices.deprecated.upgrade/10_basic_upgrade.yml deleted file mode 100644 index b368975fa5e5b..0000000000000 --- a/rest-api-spec/src/yamlRestTestV7Compat/resources/rest-api-spec/test/indices.deprecated.upgrade/10_basic_upgrade.yml +++ /dev/null @@ -1,42 +0,0 @@ ---- -setup: - - requires: - test_runner_features: - - "headers" - - "allowed_warnings_regex" - ---- -Basic test for upgrade indices: - - requires: - cluster_features: ["gte_v7.11.0"] - reason: "_upgrade api is deprecated since 7.11.0" - test_runner_features: - - "warnings" - - do: - indices.create: - index: "test_index" - body: - settings: - index: - number_of_replicas: 0 - headers: - Content-Type: "application/vnd.elasticsearch+json;compatible-with=7" - Accept: "application/vnd.elasticsearch+json;compatible-with=7" - allowed_warnings_regex: - - "\\[types removal\\].*" - - do: - catch: "bad_request" - indices.upgrade: - index: "test_index" - warnings: - - "The _upgrade API is no longer useful and will be removed. Instead, see _reindex\ - \ API." - headers: - Content-Type: "application/vnd.elasticsearch+json;compatible-with=7" - Accept: "application/vnd.elasticsearch+json;compatible-with=7" - allowed_warnings_regex: - - "\\[types removal\\].*" - - match: - status: 400 - - match: - error.reason: "/Upgrade.action.(GET|POST).(_upgrade|/test_index/_upgrade).was.removed,.use._reindex.API.instead/" diff --git a/rest-api-spec/src/yamlRestTestV7Compat/resources/rest-api-spec/test/indices.put_template/10_basic_compat.yml b/rest-api-spec/src/yamlRestTestV7Compat/resources/rest-api-spec/test/indices.put_template/10_basic_compat.yml deleted file mode 100644 index 043e525a8e9b5..0000000000000 --- a/rest-api-spec/src/yamlRestTestV7Compat/resources/rest-api-spec/test/indices.put_template/10_basic_compat.yml +++ /dev/null @@ -1,66 +0,0 @@ ---- -setup: - - requires: - test_runner_features: - - "headers" - - "warnings" - ---- -"Put template": - - - do: - headers: - Content-Type: "application/vnd.elasticsearch+json;compatible-with=7" - Accept: "application/vnd.elasticsearch+json;compatible-with=7" - warnings: - - "Deprecated field [template] used, replaced by [index_patterns]" - indices.put_template: - name: test - body: - template: test-* - settings: - number_of_shards: 1 - number_of_replicas: 0 - mappings: - properties: - field: - type: keyword - - - do: - indices.get_template: - name: test - flat_settings: true - - - match: {test.index_patterns: ["test-*"]} - - match: {test.settings: {index.number_of_shards: '1', index.number_of_replicas: '0'}} - - match: {test.mappings: {properties: {field: {type: keyword}}}} - ---- -"Put template (with template parameter)": - - - do: - headers: - Content-Type: "application/vnd.elasticsearch+json;compatible-with=7" - Accept: "application/vnd.elasticsearch+json;compatible-with=7" - warnings: - - "Deprecated parameter [template] used, replaced by [index_patterns]" - indices.put_template_with_param: - name: test - template: "test-*" - body: - settings: - number_of_shards: 1 - number_of_replicas: 0 - mappings: - properties: - field: - type: keyword - - - do: - indices.get_template: - name: test - flat_settings: true - - - match: {test.index_patterns: ["test-*"]} - - match: {test.settings: {index.number_of_shards: '1', index.number_of_replicas: '0'}} - - match: {test.mappings: {properties: {field: {type: keyword}}}} diff --git a/rest-api-spec/src/yamlRestTestV7Compat/resources/rest-api-spec/test/nodes.hot_threads/10_basic_compat.yml b/rest-api-spec/src/yamlRestTestV7Compat/resources/rest-api-spec/test/nodes.hot_threads/10_basic_compat.yml deleted file mode 100644 index c64e80d0f6a03..0000000000000 --- a/rest-api-spec/src/yamlRestTestV7Compat/resources/rest-api-spec/test/nodes.hot_threads/10_basic_compat.yml +++ /dev/null @@ -1,19 +0,0 @@ ---- -setup: - - requires: - test_runner_features: - - "headers" - - "allowed_warnings_regex" - ---- -"Get hot threads": - - - do: - headers: - Content-Type: "application/vnd.elasticsearch+json;compatible-with=7" - Accept: "application/vnd.elasticsearch+json;compatible-with=7" - nodes.hot_threads: {} - allowed_warnings_regex: - - ".*hot_?threads.* is a deprecated endpoint.*" - - match: - $body: /:::/ diff --git a/rest-api-spec/src/yamlRestTestV7Compat/resources/rest-api-spec/test/search.aggregation/10_moving_avg.yml b/rest-api-spec/src/yamlRestTestV7Compat/resources/rest-api-spec/test/search.aggregation/10_moving_avg.yml deleted file mode 100644 index c3b3c4320be97..0000000000000 --- a/rest-api-spec/src/yamlRestTestV7Compat/resources/rest-api-spec/test/search.aggregation/10_moving_avg.yml +++ /dev/null @@ -1,28 +0,0 @@ ---- -setup: - - requires: - test_runner_features: - - "headers" - ---- -moving_avg agg throws exception: - - do: - catch: "/Moving Average aggregation usage is not supported. Use the \\[moving_fn\\] aggregation instead./" - search: - rest_total_hits_as_int: true - body: - aggs: - the_histo: - date_histogram: - field: "date" - calendar_interval: "1d" - aggs: - the_avg: - avg: - field: "value_field" - the_movavg: - moving_avg: - buckets_path: "the_avg" - headers: - Content-Type: "application/vnd.elasticsearch+json;compatible-with=7" - Accept: "application/vnd.elasticsearch+json;compatible-with=7" diff --git a/rest-api-spec/src/yamlRestTestV7Compat/resources/rest-api-spec/test/search.sort/10_nested_path_filter.yml b/rest-api-spec/src/yamlRestTestV7Compat/resources/rest-api-spec/test/search.sort/10_nested_path_filter.yml deleted file mode 100644 index 323a5b9abbf1e..0000000000000 --- a/rest-api-spec/src/yamlRestTestV7Compat/resources/rest-api-spec/test/search.sort/10_nested_path_filter.yml +++ /dev/null @@ -1,149 +0,0 @@ ---- -setup: -- skip: - features: - - "headers" - - "allowed_warnings_regex" -- do: - indices.create: - index: "my-index" - body: - settings: - number_of_shards: 1 - number_of_replicas: 0 - mappings: - properties: - offer: - type: "nested" -- do: - index: - index: "my-index" - id: "1" - refresh: true - body: - offer: - price: 10 - color: blue - - headers: - Content-Type: "application/vnd.elasticsearch+json;compatible-with=7" - Accept: "application/vnd.elasticsearch+json;compatible-with=7" - -- do: - indices.create: - index: "my-locations" - body: - settings: - number_of_shards: 1 - number_of_replicas: 0 - mappings: - properties: - pin: - properties: - location: - type: geo_point - offer: - type: "nested" - headers: - Content-Type: "application/vnd.elasticsearch+json;compatible-with=7" - Accept: "application/vnd.elasticsearch+json;compatible-with=7" - -- do: - index: - index: "my-locations" - id: "1" - refresh: true - body: - offer: - price: 10 - color: blue - pin: - location: - lat: 40.12 - lon: -71.34 - headers: - Content-Type: "application/vnd.elasticsearch+json;compatible-with=7" - Accept: "application/vnd.elasticsearch+json;compatible-with=7" - - - - - ---- -"Sort with nested_path throws exception": -- do: - catch: /\[nested_path\] has been removed in favour of the \[nested\] parameter/ - search: - rest_total_hits_as_int: true - index: "my-index" - body: - sort: - - offer.price: - mode: avg - order: asc - nested_path: offer - headers: - Content-Type: "application/vnd.elasticsearch+json;compatible-with=7" - Accept: "application/vnd.elasticsearch+json;compatible-with=7" - ---- -"Sort with nested_filter throws exception": - - do: - catch: /\[nested_filter\] has been removed in favour of the \[nested\] parameter/ - search: - rest_total_hits_as_int: true - index: "my-index" - body: - sort: - - offer.price: - mode: avg - order: asc - nested_filter: - term: - offer.color: blue - headers: - Content-Type: "application/vnd.elasticsearch+json;compatible-with=7" - Accept: "application/vnd.elasticsearch+json;compatible-with=7" - - ---- -"Geo search with nested_filter throws exception": - - do: - catch: /\[nested_filter\] has been removed in favour of the \[nested\] parameter/ - search: - rest_total_hits_as_int: true - index: "my-locations" - body: - query: - match_all: {} - sort: - _geo_distance: - pin.location: - - -70 - - 40 - nested_filter: - term: - offer.color: blue - headers: - Content-Type: "application/vnd.elasticsearch+json;compatible-with=7" - Accept: "application/vnd.elasticsearch+json;compatible-with=7" - ---- -"Geo search with nested_path throws exception": - - do: - catch: /\[nested_path\] has been removed in favour of the \[nested\] parameter/ - search: - rest_total_hits_as_int: true - index: "my-locations" - body: - query: - match_all: {} - sort: - _geo_distance: - pin.location: - - -70 - - 40 - nested_path: "offer" - headers: - Content-Type: "application/vnd.elasticsearch+json;compatible-with=7" - Accept: "application/vnd.elasticsearch+json;compatible-with=7" diff --git a/rest-api-spec/src/yamlRestTestV7Compat/resources/rest-api-spec/test/search/10_cutoff_frequency.yml b/rest-api-spec/src/yamlRestTestV7Compat/resources/rest-api-spec/test/search/10_cutoff_frequency.yml deleted file mode 100644 index b7df872ff0a86..0000000000000 --- a/rest-api-spec/src/yamlRestTestV7Compat/resources/rest-api-spec/test/search/10_cutoff_frequency.yml +++ /dev/null @@ -1,103 +0,0 @@ ---- -setup: - - requires: - test_runner_features: - - "headers" - - "allowed_warnings_regex" - - do: - indices.create: - index: "test" - body: - mappings: - properties: - my_field1: - type: "text" - my_field2: - type: "text" - headers: - Content-Type: "application/vnd.elasticsearch+json;compatible-with=7" - Accept: "application/vnd.elasticsearch+json;compatible-with=7" - allowed_warnings_regex: - - "\\[types removal\\].*" - - do: - index: - index: "test" - id: "1" - body: - my_field1: "brown fox jump" - my_field2: "xylophone" - headers: - Content-Type: "application/vnd.elasticsearch+json;compatible-with=7" - Accept: "application/vnd.elasticsearch+json;compatible-with=7" - allowed_warnings_regex: - - "\\[types removal\\].*" - - do: - indices.refresh: {} - headers: - Content-Type: "application/vnd.elasticsearch+json;compatible-with=7" - Accept: "application/vnd.elasticsearch+json;compatible-with=7" - allowed_warnings_regex: - - "\\[types removal\\].*" - ---- -multi_match multiple fields with cutoff_frequency throws exception: -- do: - catch: "/cutoff_freqency is not supported. The \\[multi_match\\] query can skip block of documents efficiently if the total number of hits is not tracked/" - search: - rest_total_hits_as_int: true - index: "test" - body: - query: - multi_match: - query: "brown" - type: "bool_prefix" - fields: - - "my_field1" - - "my_field2" - cutoff_frequency: 0.001 - headers: - Content-Type: "application/vnd.elasticsearch+json;compatible-with=7" - Accept: "application/vnd.elasticsearch+json;compatible-with=7" - allowed_warnings_regex: - - "\\[types removal\\].*" - ---- -match with cutoff_frequency throws exception: - - do: - catch: "/cutoff_freqency is not supported. The \\[match\\] query can skip block of documents efficiently if the total number of hits is not tracked/" - search: - rest_total_hits_as_int: true - index: "test" - body: - query: - match: - my_field1: - query: "brown" - type: "bool_prefix" - cutoff_frequency: 0.001 - headers: - Content-Type: "application/vnd.elasticsearch+json;compatible-with=7" - Accept: "application/vnd.elasticsearch+json;compatible-with=7" - allowed_warnings_regex: - - "\\[types removal\\].*" - ---- -common querythrows exception: - - do: - catch: "/Common Terms Query usage is not supported. Use \\[match\\] query which can efficiently skip blocks of documents if the total number of hits is not tracked./" - search: - rest_total_hits_as_int: true - index: "test" - body: - query: - common: - my_field1: - query: "brown" - type: "bool_prefix" - cutoff_frequency: 0.001 - low_freq_operator: or - headers: - Content-Type: "application/vnd.elasticsearch+json;compatible-with=7" - Accept: "application/vnd.elasticsearch+json;compatible-with=7" - allowed_warnings_regex: - - "\\[types removal\\].*" diff --git a/rest-api-spec/src/yamlRestTestV7Compat/resources/rest-api-spec/test/search/10_geo_bounding_box.yml b/rest-api-spec/src/yamlRestTestV7Compat/resources/rest-api-spec/test/search/10_geo_bounding_box.yml deleted file mode 100644 index 3f3eac1e59e1a..0000000000000 --- a/rest-api-spec/src/yamlRestTestV7Compat/resources/rest-api-spec/test/search/10_geo_bounding_box.yml +++ /dev/null @@ -1,78 +0,0 @@ ---- -setup: - - requires: - test_runner_features: - - "headers" - - "warnings" - - do: - indices.create: - index: locations - body: - settings: - number_of_shards: 1 - number_of_replicas: 0 - mappings: - - properties: - location: - type: geo_point - - do: - bulk: - index: locations - refresh: true - body: | - {"index":{}} - {"location" : {"lat": 13.5, "lon" : 34.89}} - {"index":{}} - {"location" : {"lat": -7.9, "lon" : 120.78}} - {"index":{}} - {"location" : {"lat": 45.78, "lon" : -173.45}} - {"index":{}} - {"location" : {"lat": 32.45, "lon" : 45.6}} - {"index":{}} - {"location" : {"lat": -63.24, "lon" : 31.0}} - {"index":{}} - {"location" : {"lat": 0.0, "lon" : 0.0}} - - ---- -"geo bounding box query not compatible": - - do: - catch: /failed to parse \[geo_bounding_box\] query. unexpected field \[type\]/ - search: - index: locations - body: - query: - geo_bounding_box: - type : indexed - location: - top_left: - lat: 10 - lon: -10 - bottom_right: - lat: -10 - lon: 10 - ---- -"geo bounding box query compatible": - - do: - headers: - Content-Type: "application/vnd.elasticsearch+json;compatible-with=7" - Accept: "application/vnd.elasticsearch+json;compatible-with=7" - warnings: - - "Deprecated parameter [type] used, it should no longer be specified." - search: - index: locations - body: - query: - geo_bounding_box: - type : indexed - location: - top_left: - lat: 10 - lon: -10 - bottom_right: - lat: -10 - lon: 10 - - match: {hits.total.value: 1} - diff --git a/rest-api-spec/src/yamlRestTestV7Compat/resources/rest-api-spec/test/search/10_type_query.yml b/rest-api-spec/src/yamlRestTestV7Compat/resources/rest-api-spec/test/search/10_type_query.yml deleted file mode 100644 index fdaebbb2b81e7..0000000000000 --- a/rest-api-spec/src/yamlRestTestV7Compat/resources/rest-api-spec/test/search/10_type_query.yml +++ /dev/null @@ -1,52 +0,0 @@ ---- -setup: - - skip: - features: - - "headers" - - "allowed_warnings_regex" ---- -type query throws exception when used: - - do: - index: - index: "test1" - id: "1" - type: "cat" - refresh: true - body: - foo: "bar" - headers: - Content-Type: "application/vnd.elasticsearch+json;compatible-with=7" - Accept: "application/vnd.elasticsearch+json;compatible-with=7" - allowed_warnings_regex: - - "\\[types removal\\].*" - - - do: - catch: /\[types removal\] Type queries are deprecated, prefer to filter on a field instead./ - search: - rest_total_hits_as_int: true - index: "test1" - body: - query: - type: - value: "cat" - headers: - Content-Type: "application/vnd.elasticsearch+json;compatible-with=7" - Accept: "application/vnd.elasticsearch+json;compatible-with=7" - allowed_warnings_regex: - - "\\[types removal\\].*" - - - do: - catch: /\[types removal\] Type queries are deprecated, prefer to filter on a field instead./ - search: - rest_total_hits_as_int: true - index: "test1" - body: - query: - type: - value: "_doc" - headers: - Content-Type: "application/vnd.elasticsearch+json;compatible-with=7" - Accept: "application/vnd.elasticsearch+json;compatible-with=7" - allowed_warnings_regex: - - "\\[types removal\\].*" - diff --git a/x-pack/plugin/src/yamlRestTestV7Compat/resources/rest-api-spec.test.geo_shape/10_compat_geo_shape_with_types.yml b/x-pack/plugin/src/yamlRestTestV7Compat/resources/rest-api-spec.test.geo_shape/10_compat_geo_shape_with_types.yml deleted file mode 100644 index 2cf26f336ba47..0000000000000 --- a/x-pack/plugin/src/yamlRestTestV7Compat/resources/rest-api-spec.test.geo_shape/10_compat_geo_shape_with_types.yml +++ /dev/null @@ -1,68 +0,0 @@ ---- -setup: - - requires: - test_runner_features: - - "headers" - - "warnings" - - "allowed_warnings_regex" - ---- -"Test geo_shape with type": - - do: - headers: - Content-Type: "application/vnd.elasticsearch+json;compatible-with=7" - Accept: "application/vnd.elasticsearch+json;compatible-with=7" - allowed_warnings_regex: - - "\\[types removal\\].*" - indices.create: - index: shapes - include_type_name: true - body: - mappings: - _doc: - properties: - location: - type: geo_shape - - - - do: - headers: - Content-Type: "application/vnd.elasticsearch+json;compatible-with=7" - Accept: "application/vnd.elasticsearch+json;compatible-with=7" - allowed_warnings_regex: - - "\\[types removal\\].*" - index: - index: shapes - type: _doc - id: deu - body: - location: - type : "envelope" - coordinates: [[13.0, 53.0], [14.0, 52.0]] - - - do: - indices.refresh: {} - - - do: - headers: - Content-Type: "application/vnd.elasticsearch+json;compatible-with=7" - Accept: "application/vnd.elasticsearch+json;compatible-with=7" - warnings: - - "[types removal] Types are deprecated in [geo_shape] queries. The type should no longer be specified in the [indexed_shape] section." - search: - rest_total_hits_as_int: true - index: shapes - size: 0 - body: - query: - bool: - filter: - geo_shape: - location: - indexed_shape: - index: "shapes" - type: "_doc" - id: "deu" - path: "location" - - - match: {hits.total: 1 } diff --git a/x-pack/plugin/src/yamlRestTestV7Compat/resources/rest-api-spec/test/freeze.gone/10_basic_compat.yml b/x-pack/plugin/src/yamlRestTestV7Compat/resources/rest-api-spec/test/freeze.gone/10_basic_compat.yml deleted file mode 100644 index a2d05446bbe1a..0000000000000 --- a/x-pack/plugin/src/yamlRestTestV7Compat/resources/rest-api-spec/test/freeze.gone/10_basic_compat.yml +++ /dev/null @@ -1,38 +0,0 @@ ---- -setup: - - requires: - test_runner_features: - - "headers" - - "warnings_regex" - - do: - index: - index: some-test-index-1 - id: "1" - body: { foo: bar } - ---- -"Freezing a non-existent index throws 404": - - do: - headers: - Content-Type: "application/vnd.elasticsearch+json;compatible-with=7" - Accept: "application/vnd.elasticsearch+json;compatible-with=7" - indices.freeze: - index: some-test-index-404 - catch: missing - ---- -"Freezing an index throws 410": - - do: - headers: - Content-Type: "application/vnd.elasticsearch+json;compatible-with=7" - Accept: "application/vnd.elasticsearch+json;compatible-with=7" - indices.freeze: - index: some-test-index-1 - catch: /It is no longer possible to freeze indices, but existing frozen indices can still be unfrozen/ - ---- -"Without compat headers throws 400": - - do: - indices.freeze: - index: some-test-index-1 - catch: /no handler found for uri/ diff --git a/x-pack/plugin/watcher/qa/rest/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-watcher.ack_watch.json b/x-pack/plugin/watcher/qa/rest/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-watcher.ack_watch.json deleted file mode 100644 index 66ee9a7d3b83f..0000000000000 --- a/x-pack/plugin/watcher/qa/rest/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-watcher.ack_watch.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "xpack-watcher.ack_watch":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/watcher-api-ack-watch.html", - "description":"Acknowledges a watch, manually throttling the execution of the watch's actions." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/watcher/watch/{watch_id}/_ack", - "methods":[ - "PUT", - "POST" - ], - "parts":{ - "watch_id":{ - "type":"string", - "description":"Watch ID" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - }, - { - "path":"/_xpack/watcher/watch/{watch_id}/_ack/{action_id}", - "methods":[ - "PUT", - "POST" - ], - "parts":{ - "watch_id":{ - "type":"string", - "description":"Watch ID" - }, - "action_id":{ - "type":"list", - "description":"A comma-separated list of the action ids to be acked" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - } - } -} diff --git a/x-pack/plugin/watcher/qa/rest/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-watcher.activate_watch.json b/x-pack/plugin/watcher/qa/rest/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-watcher.activate_watch.json deleted file mode 100644 index 2790b3ac69040..0000000000000 --- a/x-pack/plugin/watcher/qa/rest/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-watcher.activate_watch.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "xpack-watcher.activate_watch":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/watcher-api-activate-watch.html", - "description":"Activates a currently inactive watch." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/watcher/watch/{watch_id}/_activate", - "methods":[ - "PUT", - "POST" - ], - "parts":{ - "watch_id":{ - "type":"string", - "description":"Watch ID" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - } - } -} diff --git a/x-pack/plugin/watcher/qa/rest/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-watcher.deactivate_watch.json b/x-pack/plugin/watcher/qa/rest/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-watcher.deactivate_watch.json deleted file mode 100644 index 7633c5ab9ffcc..0000000000000 --- a/x-pack/plugin/watcher/qa/rest/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-watcher.deactivate_watch.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "xpack-watcher.deactivate_watch":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/watcher-api-deactivate-watch.html", - "description":"Deactivates a currently active watch." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/watcher/watch/{watch_id}/_deactivate", - "methods":[ - "PUT", - "POST" - ], - "parts":{ - "watch_id":{ - "type":"string", - "description":"Watch ID" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - } - } -} diff --git a/x-pack/plugin/watcher/qa/rest/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-watcher.delete_watch.json b/x-pack/plugin/watcher/qa/rest/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-watcher.delete_watch.json deleted file mode 100644 index b42003207eda4..0000000000000 --- a/x-pack/plugin/watcher/qa/rest/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-watcher.delete_watch.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "xpack-watcher.delete_watch":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/watcher-api-delete-watch.html", - "description":"Removes a watch from Watcher." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/watcher/watch/{id}", - "methods":[ - "DELETE" - ], - "parts":{ - "id":{ - "type":"string", - "description":"Watch ID" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - } - } -} diff --git a/x-pack/plugin/watcher/qa/rest/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-watcher.execute_watch.json b/x-pack/plugin/watcher/qa/rest/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-watcher.execute_watch.json deleted file mode 100644 index 4dba5bd1817a5..0000000000000 --- a/x-pack/plugin/watcher/qa/rest/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-watcher.execute_watch.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "xpack-watcher.execute_watch":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/watcher-api-execute-watch.html", - "description":"Forces the execution of a stored watch." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"], - "content_type": ["application/vnd.elasticsearch+json;compatible-with=7"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/watcher/watch/{id}/_execute", - "methods":[ - "PUT", - "POST" - ], - "parts":{ - "id":{ - "type":"string", - "description":"Watch ID" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - }, - { - "path":"/_xpack/watcher/watch/_execute", - "methods":[ - "PUT", - "POST" - ], - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - }, - "params":{ - "debug":{ - "type":"boolean", - "description":"indicates whether the watch should execute in debug mode", - "required":false - } - }, - "body":{ - "description":"Execution control", - "required":false - } - } -} diff --git a/x-pack/plugin/watcher/qa/rest/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-watcher.get_watch.json b/x-pack/plugin/watcher/qa/rest/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-watcher.get_watch.json deleted file mode 100644 index 0fa158751fba4..0000000000000 --- a/x-pack/plugin/watcher/qa/rest/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-watcher.get_watch.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "xpack-watcher.get_watch":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/watcher-api-get-watch.html", - "description":"Retrieves a watch by its ID." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/watcher/watch/{id}", - "methods":[ - "GET" - ], - "parts":{ - "id":{ - "type":"string", - "description":"Watch ID" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - }, - "params":{} - } -} diff --git a/x-pack/plugin/watcher/qa/rest/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-watcher.put_watch.json b/x-pack/plugin/watcher/qa/rest/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-watcher.put_watch.json deleted file mode 100644 index b6d17b0d92739..0000000000000 --- a/x-pack/plugin/watcher/qa/rest/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-watcher.put_watch.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "xpack-watcher.put_watch":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/watcher-api-put-watch.html", - "description":"Creates a new watch, or updates an existing one." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"], - "content_type": ["application/vnd.elasticsearch+json;compatible-with=7"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/watcher/watch/{id}", - "methods":[ - "PUT", - "POST" - ], - "parts":{ - "id":{ - "type":"string", - "description":"Watch ID" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - }, - "params":{ - "active":{ - "type":"boolean", - "description":"Specify whether the watch is in/active by default" - }, - "version":{ - "type":"number", - "description":"Explicit version number for concurrency control" - }, - "if_seq_no":{ - "type":"number", - "description":"only update the watch if the last operation that has changed the watch has the specified sequence number" - }, - "if_primary_term":{ - "type":"number", - "description":"only update the watch if the last operation that has changed the watch has the specified primary term" - } - }, - "body":{ - "description":"The watch", - "required":false - } - } -} diff --git a/x-pack/plugin/watcher/qa/rest/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-watcher.start.json b/x-pack/plugin/watcher/qa/rest/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-watcher.start.json deleted file mode 100644 index 051344d02e878..0000000000000 --- a/x-pack/plugin/watcher/qa/rest/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-watcher.start.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "xpack-watcher.start":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/watcher-api-start.html", - "description":"Starts Watcher if it is not already running." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/watcher/_start", - "methods":[ - "POST" - ], - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - }, - "params":{} - } -} diff --git a/x-pack/plugin/watcher/qa/rest/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-watcher.stats.json b/x-pack/plugin/watcher/qa/rest/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-watcher.stats.json deleted file mode 100644 index f9dfd25f1e972..0000000000000 --- a/x-pack/plugin/watcher/qa/rest/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-watcher.stats.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "xpack-watcher.stats":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/watcher-api-stats.html", - "description":"Retrieves the current Watcher metrics." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/watcher/stats", - "methods":[ - "GET" - ], - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - }, - { - "path":"/_xpack/watcher/stats/{metric}", - "methods":[ - "GET" - ], - "parts":{ - "metric":{ - "type":"list", - "options":[ - "_all", - "queued_watches", - "current_watches", - "pending_watches" - ], - "description":"Controls what additional stat metrics should be include in the response" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - }, - "params":{ - "metric":{ - "type":"list", - "options":[ - "_all", - "queued_watches", - "current_watches", - "pending_watches" - ], - "description":"Controls what additional stat metrics should be include in the response" - }, - "emit_stacktraces":{ - "type":"boolean", - "description":"Emits stack traces of currently running watches", - "required":false - } - } - } -} diff --git a/x-pack/plugin/watcher/qa/rest/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-watcher.stop.json b/x-pack/plugin/watcher/qa/rest/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-watcher.stop.json deleted file mode 100644 index c31bb162f6015..0000000000000 --- a/x-pack/plugin/watcher/qa/rest/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-watcher.stop.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "xpack-watcher.stop":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/watcher-api-stop.html", - "description":"Stops Watcher if it is running." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/watcher/_stop", - "methods":[ - "POST" - ], - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - }, - "params":{} - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/build.gradle b/x-pack/qa/xpack-prefix-rest-compat/build.gradle deleted file mode 100644 index 58030b05f0ffb..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/build.gradle +++ /dev/null @@ -1,192 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - - -import org.elasticsearch.gradle.Version - -apply plugin: 'elasticsearch.legacy-yaml-rest-compat-test' - -/** - * This project exists to test the _xpack prefix for REST compatibility. The _xpack prefix was removed from the specification, but still supported - * in 7x. This project re-introduces the _xpack prefix in the specification but only for compatibility testing purposes. - */ - -configurations { - compatXpackTests -} - -dependencies { - yamlRestCompatTestImplementation project(':test:framework') - yamlRestCompatTestImplementation testArtifact(project(':x-pack:plugin')) - compatXpackTests project(path: ':x-pack:plugin', configuration: 'restCompatTests') -} - -// copy the already transformed compatible rest tests from the x-pack compatible tests -tasks.named("copyRestCompatTestTask").configure { task -> - task.dependsOn(configurations.compatXpackTests); - task.setXpackConfig(configurations.compatXpackTests); - task.getIncludeXpack().set(List.of("license", "migration", "ml", "rollup", "sql", "ssl")); - def fileOperations = task.getFileOperations() - task.getOutputResourceDir().set(project.getLayout().getBuildDirectory().dir("restResources/compat/yamlTests/original")) - task.setXpackConfigToFileTree( - config -> fileOperations.fileTree( - config.getSingleFile() - ) - ) - } - -// location for keys and certificates -File extraResourceDir = file("$buildDir/extra_resource") -File nodeKey = file("$extraResourceDir/testnode.pem") -File nodeCert = file("$extraResourceDir/testnode.crt") -// location for service tokens -File serviceTokens = file("$extraResourceDir/service_tokens") - -// Add key and certs to test classpath: it expects them there -// User cert and key PEM files instead of a JKS Keystore for the cluster's trust material so that -// it can run in a FIPS 140 JVM -// TODO: Remove all existing uses of cross project file references when the new approach for referencing static files is available -// https://github.com/elastic/elasticsearch/pull/32201 -def copyExtraResources = tasks.register("copyExtraResources", Copy) { - from(project(':x-pack:plugin:core').file('src/test/resources/org/elasticsearch/xpack/security/transport/ssl/certs/simple/')) { - include 'testnode.crt', 'testnode.pem' - } - from(project(':x-pack:plugin:security:qa:service-account').file('src/javaRestTest/resources/')) { - include 'service_tokens' - } - into extraResourceDir -} -// Add keystores to test classpath: it expects it there -sourceSets.yamlRestCompatTest.resources.compiledBy(copyExtraResources, t -> { - def dirProp = project.objects.directoryProperty() - dirProp.set(t.destinationDir) - return dirProp; -}) - -tasks.named("processYamlRestCompatTestResources").configure { - dependsOn("copyExtraResources") -} - -testClusters.configureEach { - testDistribution = 'DEFAULT' // this is important since we use the reindex module in ML - setting 'xpack.ml.enabled', 'true' - setting 'xpack.security.enabled', 'true' - setting 'xpack.watcher.enabled', 'false' - setting 'xpack.security.authc.token.enabled', 'true' - setting 'xpack.security.authc.api_key.enabled', 'true' - setting 'xpack.security.transport.ssl.enabled', 'true' - setting 'xpack.security.transport.ssl.key', nodeKey.name - setting 'xpack.security.transport.ssl.certificate', nodeCert.name - setting 'xpack.security.transport.ssl.verification_mode', 'certificate' - setting 'xpack.security.audit.enabled', 'true' - setting 'xpack.license.self_generated.type', 'trial' - // disable ILM history, since it disturbs tests using _all - setting 'indices.lifecycle.history_index_enabled', 'false' - keystore 'bootstrap.password', 'x-pack-test-password' - keystore 'xpack.security.transport.ssl.secure_key_passphrase', 'testnode' - setting 'xpack.searchable.snapshot.shared_cache.size', '16MB' - setting 'xpack.searchable.snapshot.shared_cache.region_size', '256KB' - - user username: "x_pack_rest_user", password: "x-pack-test-password" - extraConfigFile nodeKey.name, nodeKey - extraConfigFile nodeCert.name, nodeCert - extraConfigFile serviceTokens.name, serviceTokens - - requiresFeature 'es.index_mode_feature_flag_registered', Version.fromString("8.0.0") -} - -// transform (again) the (already) transformed x-pack compatibility tests to test the xpack prefixes -tasks.named("yamlRestCompatTestTransform").configure{ task -> - - task.replaceKeyInDo("license.delete", "xpack-license.delete") - task.replaceKeyInDo("license.get", "xpack-license.get") - task.replaceKeyInDo("license.get_basic_status", "xpack-license.get_basic_status") - task.replaceKeyInDo("license.get_trial_status", "xpack-license.get_trial_status") - task.replaceKeyInDo("license.post", "xpack-license.post") - task.replaceKeyInDo("license.post_start_basic", "xpack-license.post_start_basic") - task.replaceKeyInDo("license.post_start_trial", "xpack-license.post_start_trial") - task.addAllowedWarningRegex(".*_xpack/license.* is deprecated.*") - - task.replaceKeyInDo("migration.deprecations", "xpack-migration.deprecations") - task.addAllowedWarningRegex(".*_xpack/migration.* is deprecated.*") - - task.replaceKeyInDo("ml.close_job", "xpack-ml.close_job") - task.replaceKeyInDo("ml.delete_calendar", "xpack-ml.delete_calendar") - task.replaceKeyInDo("ml.delete_calendar_event", "xpack-ml.delete_calendar_event") - task.replaceKeyInDo("ml.delete_calendar_job", "xpack-ml.delete_calendar_job") - task.replaceKeyInDo("ml.delete_datafeed", "xpack-ml.delete_datafeed") - task.replaceKeyInDo("ml.delete_expired_data", "xpack-ml.delete_expired_data") - task.replaceKeyInDo("ml.delete_filter", "xpack-ml.delete_filter") - task.replaceKeyInDo("ml.delete_forecast", "xpack-ml.delete_forecast") - task.replaceKeyInDo("ml.delete_job", "xpack-ml.delete_job") - task.replaceKeyInDo("ml.delete_model_snapshot", "xpack-ml.delete_model_snapshot") - task.replaceKeyInDo("ml.flush_job", "xpack-ml.flush_job") - task.replaceKeyInDo("ml.forecast", "xpack-ml.forecast") - task.replaceKeyInDo("ml.get_buckets", "xpack-ml.get_buckets") - task.replaceKeyInDo("ml.get_calendar_events", "xpack-ml.get_calendar_events") - task.replaceKeyInDo("ml.get_calendars", "xpack-ml.get_calendars") - task.replaceKeyInDo("ml.get_categories", "xpack-ml.get_categories") - task.replaceKeyInDo("ml.get_datafeed_stats", "xpack-ml.get_datafeed_stats") - task.replaceKeyInDo("ml.get_datafeeds", "xpack-ml.get_datafeeds") - task.replaceKeyInDo("ml.get_filters", "xpack-ml.get_filters") - task.replaceKeyInDo("ml.get_influencers", "xpack-ml.get_influencers") - task.replaceKeyInDo("ml.get_job_stats", "xpack-ml.get_job_stats") - task.replaceKeyInDo("ml.get_jobs", "xpack-ml.get_jobs") - task.replaceKeyInDo("ml.get_model_snapshots", "xpack-ml.get_model_snapshots") - task.replaceKeyInDo("ml.get_overall_buckets", "xpack-ml.get_overall_buckets") - task.replaceKeyInDo("ml.get_records", "xpack-ml.get_records") - task.replaceKeyInDo("ml.info", "xpack-ml.info") - task.replaceKeyInDo("ml.open_job", "xpack-ml.open_job") - task.replaceKeyInDo("ml.post_calendar_events", "xpack-ml.post_calendar_events") - task.replaceKeyInDo("ml.post_data", "xpack-ml.post_data") - task.replaceKeyInDo("ml.preview_datafeed", "xpack-ml.preview_datafeed") - task.replaceKeyInDo("ml.put_calendar", "xpack-ml.put_calendar") - task.replaceKeyInDo("ml.put_calendar_job", "xpack-ml.put_calendar_job") - task.replaceKeyInDo("ml.put_datafeed", "xpack-ml.put_datafeed") - task.replaceKeyInDo("ml.put_filter", "xpack-ml.put_filter") - task.replaceKeyInDo("ml.put_job", "xpack-ml.put_job") - task.replaceKeyInDo("ml.revert_model_snapshot", "xpack-ml.revert_model_snapshot") - task.replaceKeyInDo("ml.set_upgrade_mode", "xpack-ml.set_upgrade_mode") - task.replaceKeyInDo("ml.start_datafeed", "xpack-ml.start_datafeed") - task.replaceKeyInDo("ml.stop_datafeed", "xpack-ml.stop_datafeed") - task.replaceKeyInDo("ml.update_datafeed", "xpack-ml.update_datafeed") - task.replaceKeyInDo("ml.update_filter", "xpack-ml.update_filter") - task.replaceKeyInDo("ml.update_job", "xpack-ml.update_job") - task.replaceKeyInDo("ml.update_model_snapshot", "xpack-ml.update_model_snapshot") - task.replaceKeyInDo("ml.validate", "xpack-ml.validate") - task.replaceKeyInDo("ml.validate_detector", "xpack-ml.validate_detector") - task.addAllowedWarningRegex(".*_xpack/ml.* is deprecated.*") - task.addAllowedWarningRegex("bucket_span .* is not an integral .* of the number of sconds in 1d.* This is now deprecated.*") - - task.replaceKeyInDo("rollup.delete_job", "xpack-rollup.delete_job") - task.replaceKeyInDo("rollup.get_jobs", "xpack-rollup.get_jobs") - task.replaceKeyInDo("rollup.get_rollup_caps", "xpack-rollup.get_rollup_caps") - task.replaceKeyInDo("rollup.get_rollup_index_caps", "xpack-rollup.get_rollup_index_caps") - task.replaceKeyInDo("rollup.put_job", "xpack-rollup.put_job") - task.replaceKeyInDo("rollup.start_job", "xpack-rollup.start_job") - task.replaceKeyInDo("rollup.stop_job", "xpack-rollup.stop_job") - task.addAllowedWarningRegex(".*_xpack/rollup.* is deprecated.*") - - task.replaceKeyInDo("sql.clear_cursor", "xpack-sql.clear_cursor") - task.replaceKeyInDo("sql.query", "xpack-sql.query") - task.replaceKeyInDo("sql.translate", "xpack-sql.translate") - task.addAllowedWarningRegex(".*_xpack/sql.* is deprecated.*") - - task.replaceKeyInDo("ssl.certificates", "xpack-ssl.certificates", "Test get SSL certificates") - task.addAllowedWarningRegexForTest(".*_xpack/ssl.* is deprecated.*", "Test get SSL certificates") -} - -tasks.named("yamlRestCompatTest").configure { - systemProperty 'tests.rest.blacklist', [ - 'ml/evaluate_data_frame/Test classification auc_roc', - 'ml/evaluate_data_frame/Test classification auc_roc with default top_classes_field', - 'ml/evaluate_data_frame/Test outlier_detection auc_roc', - 'ml/evaluate_data_frame/Test outlier_detection auc_roc include curve', - 'ml/evaluate_data_frame/Test outlier_detection auc_roc given actual_field is int', - ].join(',') -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/java/org/elasticsearch/xpack/test/rest/XPackRestIT.java b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/java/org/elasticsearch/xpack/test/rest/XPackRestIT.java deleted file mode 100644 index 3e060d2875e8a..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/java/org/elasticsearch/xpack/test/rest/XPackRestIT.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -package org.elasticsearch.xpack.test.rest; - -import com.carrotsearch.randomizedtesting.annotations.ParametersFactory; - -import org.elasticsearch.test.rest.yaml.ClientYamlTestCandidate; - -public class XPackRestIT extends AbstractXPackRestTest { - - public XPackRestIT(ClientYamlTestCandidate testCandidate) { - super(testCandidate); - } - - @ParametersFactory - public static Iterable parameters() throws Exception { - return createParameters(); - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-license.delete.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-license.delete.json deleted file mode 100644 index 3a20798a81482..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-license.delete.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "xpack-license.delete":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/master/delete-license.html", - "description":"Deletes licensing information for the cluster" - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/license", - "methods":[ - "DELETE" - ], - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-license.get.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-license.get.json deleted file mode 100644 index e5c89084c3759..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-license.get.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "xpack-license.get":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/master/get-license.html", - "description":"Retrieves licensing information for the cluster" - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/license", - "methods":[ - "GET" - ], - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - }, - "params":{ - "local":{ - "type":"boolean", - "description":"Return local information, do not retrieve the state from master node (default: false)" - }, - "accept_enterprise":{ - "type":"boolean", - "description":"Supported for backwards compatibility with 7.x. If this param is used it must be set to true", - "deprecated":true - } - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-license.get_basic_status.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-license.get_basic_status.json deleted file mode 100644 index f0808e45d2da8..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-license.get_basic_status.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "xpack-license.get_basic_status":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/master/get-basic-status.html", - "description":"Retrieves information about the status of the basic license." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/license/basic_status", - "methods":[ - "GET" - ], - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - }, - "params":{} - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-license.get_trial_status.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-license.get_trial_status.json deleted file mode 100644 index 8ccde8365830f..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-license.get_trial_status.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "xpack-license.get_trial_status":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/master/get-trial-status.html", - "description":"Retrieves information about the status of the trial license." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/license/trial_status", - "methods":[ - "GET" - ], - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - }, - "params":{} - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-license.post.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-license.post.json deleted file mode 100644 index 8db5533bbad9e..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-license.post.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "xpack-license.post":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/master/update-license.html", - "description":"Updates the license for the cluster." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"], - "content_type": ["application/vnd.elasticsearch+json;compatible-with=7"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/license", - "methods":[ - "PUT", - "POST" - ], - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - }, - "params":{ - "acknowledge":{ - "type":"boolean", - "description":"whether the user has acknowledged acknowledge messages (default: false)" - }, - "master_timeout": { - "type": "time", - "description": "Timeout for processing on master node" - }, - "timeout": { - "type": "time", - "description": "Timeout for acknowledgement of update from all nodes in cluster" - } - }, - "body":{ - "description":"licenses to be installed" - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-license.post_start_basic.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-license.post_start_basic.json deleted file mode 100644 index 4589ed26386ce..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-license.post_start_basic.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "xpack-license.post_start_basic":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/master/start-basic.html", - "description":"Starts an indefinite basic license." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/license/start_basic", - "methods":[ - "POST" - ], - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - }, - "params":{ - "acknowledge":{ - "type":"boolean", - "description":"whether the user has acknowledged acknowledge messages (default: false)" - } - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-license.post_start_trial.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-license.post_start_trial.json deleted file mode 100644 index 225034d397ef7..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-license.post_start_trial.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "xpack-license.post_start_trial":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/master/start-trial.html", - "description":"starts a limited time trial license." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/license/start_trial", - "methods":[ - "POST" - ], - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - }, - "params":{ - "type":{ - "type":"string", - "description":"The type of trial license to generate (default: \"trial\")" - }, - "acknowledge":{ - "type":"boolean", - "description":"whether the user has acknowledged acknowledge messages (default: false)" - } - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-migration.deprecations.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-migration.deprecations.json deleted file mode 100644 index 05885f8458770..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-migration.deprecations.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "xpack-migration.deprecations":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/migration-api-deprecation.html", - "description":"Retrieves information about different cluster, node, and index level settings that use deprecated features that will be removed or changed in the next major version." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/json"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/migration/deprecations", - "methods":[ - "GET" - ], - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - }, - { - "path":"/{index}/_xpack/migration/deprecations", - "methods":[ - "GET" - ], - "parts":{ - "index":{ - "type":"string", - "description":"Index pattern" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - }, - "params":{} - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.close_job.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.close_job.json deleted file mode 100644 index afbf2591e10f9..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.close_job.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "xpack-ml.close_job":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-close-job.html", - "description":"Closes one or more anomaly detection jobs. A job can be opened and closed multiple times throughout its lifecycle." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"], - "content_type": ["application/json"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/ml/anomaly_detectors/{job_id}/_close", - "methods":[ - "POST" - ], - "parts":{ - "job_id":{ - "type":"string", - "description":"The name of the job to close" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - }, - "params":{ - "allow_no_match":{ - "type":"boolean", - "required":false, - "description":"Whether to ignore if a wildcard expression matches no jobs. (This includes `_all` string or when no jobs have been specified)" - }, - "allow_no_jobs":{ - "type":"boolean", - "required":false, - "description":"Whether to ignore if a wildcard expression matches no jobs. (This includes `_all` string or when no jobs have been specified)", - "deprecated":true - }, - "force":{ - "type":"boolean", - "required":false, - "description":"True if the job should be forcefully closed" - }, - "timeout":{ - "type":"time", - "description":"Controls the time to wait until a job has closed. Default to 30 minutes" - } - }, - "body":{ - "description":"The URL params optionally sent in the body", - "required":false - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.delete_calendar.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.delete_calendar.json deleted file mode 100644 index 7965921a5ea21..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.delete_calendar.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "xpack-ml.delete_calendar":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-delete-calendar.html", - "description":"Deletes a calendar." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/ml/calendars/{calendar_id}", - "methods":[ - "DELETE" - ], - "parts":{ - "calendar_id":{ - "type":"string", - "description":"The ID of the calendar to delete" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.delete_calendar_event.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.delete_calendar_event.json deleted file mode 100644 index 7584b2512a8b3..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.delete_calendar_event.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "xpack-ml.delete_calendar_event":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-delete-calendar-event.html", - "description":"Deletes scheduled events from a calendar." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/ml/calendars/{calendar_id}/events/{event_id}", - "methods":[ - "DELETE" - ], - "parts":{ - "calendar_id":{ - "type":"string", - "description":"The ID of the calendar to modify" - }, - "event_id":{ - "type":"string", - "description":"The ID of the event to remove from the calendar" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.delete_calendar_job.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.delete_calendar_job.json deleted file mode 100644 index bdada60699df0..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.delete_calendar_job.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "xpack-ml.delete_calendar_job":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-delete-calendar-job.html", - "description":"Deletes anomaly detection jobs from a calendar." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/ml/calendars/{calendar_id}/jobs/{job_id}", - "methods":[ - "DELETE" - ], - "parts":{ - "calendar_id":{ - "type":"string", - "description":"The ID of the calendar to modify" - }, - "job_id":{ - "type":"string", - "description":"The ID of the job to remove from the calendar" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.delete_datafeed.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.delete_datafeed.json deleted file mode 100644 index 6743b3eadff91..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.delete_datafeed.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "xpack-ml.delete_datafeed":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-delete-datafeed.html", - "description":"Deletes an existing datafeed." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/ml/datafeeds/{datafeed_id}", - "methods":[ - "DELETE" - ], - "parts":{ - "datafeed_id":{ - "type":"string", - "description":"The ID of the datafeed to delete" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - }, - "params":{ - "force":{ - "type":"boolean", - "required":false, - "description":"True if the datafeed should be forcefully deleted" - } - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.delete_expired_data.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.delete_expired_data.json deleted file mode 100644 index 0520055d968d1..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.delete_expired_data.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "xpack-ml.delete_expired_data":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-delete-expired-data.html", - "description":"Deletes expired and unused machine learning data." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/ml/_delete_expired_data/{job_id}", - "methods":[ - "DELETE" - ], - "parts":{ - "job_id":{ - "type":"string", - "description":"The ID of the job(s) to perform expired data hygiene for" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - }, - { - "path":"/_xpack/ml/_delete_expired_data", - "methods":[ - "DELETE" - ], - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - }, - "params":{ - "requests_per_second":{ - "type":"number", - "required":false, - "description":"The desired requests per second for the deletion processes." - }, - "timeout":{ - "type":"time", - "required":false, - "description":"How long can the underlying delete processes run until they are canceled" - } - }, - "body":{ - "description":"deleting expired data parameters" - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.delete_filter.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.delete_filter.json deleted file mode 100644 index c9c4f76e15f53..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.delete_filter.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "xpack-ml.delete_filter":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-delete-filter.html", - "description":"Deletes a filter." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/ml/filters/{filter_id}", - "methods":[ - "DELETE" - ], - "parts":{ - "filter_id":{ - "type":"string", - "description":"The ID of the filter to delete" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.delete_forecast.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.delete_forecast.json deleted file mode 100644 index 4c647046c3704..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.delete_forecast.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "xpack-ml.delete_forecast":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-delete-forecast.html", - "description":"Deletes forecasts from a machine learning job." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/ml/anomaly_detectors/{job_id}/_forecast", - "methods":[ - "DELETE" - ], - "parts":{ - "job_id":{ - "type":"string", - "description":"The ID of the job from which to delete forecasts" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - }, - { - "path":"/_xpack/ml/anomaly_detectors/{job_id}/_forecast/{forecast_id}", - "methods":[ - "DELETE" - ], - "parts":{ - "job_id":{ - "type":"string", - "description":"The ID of the job from which to delete forecasts" - }, - "forecast_id":{ - "type":"string", - "description":"The ID of the forecast to delete, can be comma delimited list. Leaving blank implies `_all`" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - }, - "params":{ - "allow_no_forecasts":{ - "type":"boolean", - "required":false, - "description":"Whether to ignore if `_all` matches no forecasts" - }, - "timeout":{ - "type":"time", - "required":false, - "description":"Controls the time to wait until the forecast(s) are deleted. Default to 30 seconds" - } - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.delete_job.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.delete_job.json deleted file mode 100644 index 9043baacb781e..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.delete_job.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "xpack-ml.delete_job":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-delete-job.html", - "description":"Deletes an existing anomaly detection job." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/ml/anomaly_detectors/{job_id}", - "methods":[ - "DELETE" - ], - "parts":{ - "job_id":{ - "type":"string", - "description":"The ID of the job to delete" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - }, - "params":{ - "force":{ - "type":"boolean", - "description":"True if the job should be forcefully deleted", - "default":false - }, - "wait_for_completion":{ - "type":"boolean", - "description":"Should this request wait until the operation has completed before returning", - "default":true - } - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.delete_model_snapshot.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.delete_model_snapshot.json deleted file mode 100644 index e3f1dd2036602..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.delete_model_snapshot.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "xpack-ml.delete_model_snapshot":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-delete-snapshot.html", - "description":"Deletes an existing model snapshot." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/ml/anomaly_detectors/{job_id}/model_snapshots/{snapshot_id}", - "methods":[ - "DELETE" - ], - "parts":{ - "job_id":{ - "type":"string", - "description":"The ID of the job to fetch" - }, - "snapshot_id":{ - "type":"string", - "description":"The ID of the snapshot to delete" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.flush_job.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.flush_job.json deleted file mode 100644 index 801258194d28b..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.flush_job.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "xpack-ml.flush_job":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-flush-job.html", - "description":"Forces any buffered data to be processed by the job." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"], - "content_type": ["application/json"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/ml/anomaly_detectors/{job_id}/_flush", - "methods":[ - "POST" - ], - "parts":{ - "job_id":{ - "type":"string", - "description":"The name of the job to flush" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - }, - "params":{ - "calc_interim":{ - "type":"boolean", - "description":"Calculates interim results for the most recent bucket or all buckets within the latency period" - }, - "start":{ - "type":"string", - "description":"When used in conjunction with calc_interim, specifies the range of buckets on which to calculate interim results" - }, - "end":{ - "type":"string", - "description":"When used in conjunction with calc_interim, specifies the range of buckets on which to calculate interim results" - }, - "advance_time":{ - "type":"string", - "description":"Advances time to the given value generating results and updating the model for the advanced interval" - }, - "skip_time":{ - "type":"string", - "description":"Skips time to the given value without generating results or updating the model for the skipped interval" - } - }, - "body":{ - "description":"Flush parameters" - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.forecast.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.forecast.json deleted file mode 100644 index f86d1d6f6d943..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.forecast.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "xpack-ml.forecast":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-forecast.html", - "description":"Predicts the future behavior of a time series by using its historical behavior." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/ml/anomaly_detectors/{job_id}/_forecast", - "methods":[ - "POST" - ], - "parts":{ - "job_id":{ - "type":"string", - "description":"The ID of the job to forecast for" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - }, - "params":{ - "duration":{ - "type":"time", - "required":false, - "description":"The duration of the forecast" - }, - "expires_in":{ - "type":"time", - "required":false, - "description":"The time interval after which the forecast expires. Expired forecasts will be deleted at the first opportunity." - }, - "max_model_memory":{ - "type":"string", - "required":false, - "description":"The max memory able to be used by the forecast. Default is 20mb." - } - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.get_buckets.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.get_buckets.json deleted file mode 100644 index 0ccc693b5b682..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.get_buckets.json +++ /dev/null @@ -1,97 +0,0 @@ -{ - "xpack-ml.get_buckets":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-bucket.html", - "description":"Retrieves anomaly detection job results for one or more buckets." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"], - "content_type": ["application/json"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/ml/anomaly_detectors/{job_id}/results/buckets/{timestamp}", - "methods":[ - "GET", - "POST" - ], - "parts":{ - "job_id":{ - "type":"string", - "description":"ID of the job to get bucket results from" - }, - "timestamp":{ - "type":"string", - "description":"The timestamp of the desired single bucket result" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - }, - { - "path":"/_xpack/ml/anomaly_detectors/{job_id}/results/buckets", - "methods":[ - "GET", - "POST" - ], - "parts":{ - "job_id":{ - "type":"string", - "description":"ID of the job to get bucket results from" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - }, - "params":{ - "expand":{ - "type":"boolean", - "description":"Include anomaly records" - }, - "exclude_interim":{ - "type":"boolean", - "description":"Exclude interim results" - }, - "from":{ - "type":"int", - "description":"skips a number of buckets" - }, - "size":{ - "type":"int", - "description":"specifies a max number of buckets to get" - }, - "start":{ - "type":"string", - "description":"Start time filter for buckets" - }, - "end":{ - "type":"string", - "description":"End time filter for buckets" - }, - "anomaly_score":{ - "type":"double", - "description":"Filter for the most anomalous buckets" - }, - "sort":{ - "type":"string", - "description":"Sort buckets by a particular field" - }, - "desc":{ - "type":"boolean", - "description":"Set the sort direction" - } - }, - "body":{ - "description":"Bucket selection details if not provided in URI" - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.get_calendar_events.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.get_calendar_events.json deleted file mode 100644 index 731c510767488..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.get_calendar_events.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "xpack-ml.get_calendar_events":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-calendar-event.html", - "description":"Retrieves information about the scheduled events in calendars." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/ml/calendars/{calendar_id}/events", - "methods":[ - "GET" - ], - "parts":{ - "calendar_id":{ - "type":"string", - "description":"The ID of the calendar containing the events" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - }, - "params":{ - "job_id":{ - "type":"string", - "description":"Get events for the job. When this option is used calendar_id must be '_all'" - }, - "start":{ - "type":"string", - "description":"Get events after this time" - }, - "end":{ - "type":"date", - "description":"Get events before this time" - }, - "from":{ - "type":"int", - "description":"Skips a number of events" - }, - "size":{ - "type":"int", - "description":"Specifies a max number of events to get" - } - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.get_calendars.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.get_calendars.json deleted file mode 100644 index c80005451ff0b..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.get_calendars.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "xpack-ml.get_calendars":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-calendar.html", - "description":"Retrieves configuration information for calendars." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"], - "content_type": ["application/json"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/ml/calendars", - "methods":[ - "GET", - "POST" - ] - }, - { - "path":"/_xpack/ml/calendars/{calendar_id}", - "methods":[ - "GET", - "POST" - ], - "parts":{ - "calendar_id":{ - "type":"string", - "description":"The ID of the calendar to fetch" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - }, - "params":{ - "from":{ - "type":"int", - "description":"skips a number of calendars" - }, - "size":{ - "type":"int", - "description":"specifies a max number of calendars to get" - } - }, - "body":{ - "description":"The from and size parameters optionally sent in the body" - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.get_categories.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.get_categories.json deleted file mode 100644 index 4fce55f682248..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.get_categories.json +++ /dev/null @@ -1,73 +0,0 @@ -{ - "xpack-ml.get_categories":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-category.html", - "description":"Retrieves anomaly detection job results for one or more categories." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"], - "content_type": ["application/json"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/ml/anomaly_detectors/{job_id}/results/categories/{category_id}", - "methods":[ - "GET", - "POST" - ], - "parts":{ - "job_id":{ - "type":"string", - "description":"The name of the job" - }, - "category_id":{ - "type":"long", - "description":"The identifier of the category definition of interest" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - }, - { - "path":"/_xpack/ml/anomaly_detectors/{job_id}/results/categories", - "methods":[ - "GET", - "POST" - ], - "parts":{ - "job_id":{ - "type":"string", - "description":"The name of the job" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - }, - "params":{ - "from":{ - "type":"int", - "description":"skips a number of categories" - }, - "size":{ - "type":"int", - "description":"specifies a max number of categories to get" - }, - "partition_field_value":{ - "type":"string", - "description":"Specifies the partition to retrieve categories for. This is optional, and should never be used for jobs where per-partition categorization is disabled." - } - }, - "body":{ - "description":"Category selection details if not provided in URI" - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.get_datafeed_stats.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.get_datafeed_stats.json deleted file mode 100644 index 1c63df2a33fef..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.get_datafeed_stats.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "xpack-ml.get_datafeed_stats":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-datafeed-stats.html", - "description":"Retrieves usage information for datafeeds." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/ml/datafeeds/{datafeed_id}/_stats", - "methods":[ - "GET" - ], - "parts":{ - "datafeed_id":{ - "type":"string", - "description":"The ID of the datafeeds stats to fetch" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - }, - { - "path":"/_xpack/ml/datafeeds/_stats", - "methods":[ - "GET" - ], - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - }, - "params":{ - "allow_no_match":{ - "type":"boolean", - "required":false, - "description":"Whether to ignore if a wildcard expression matches no datafeeds. (This includes `_all` string or when no datafeeds have been specified)" - }, - "allow_no_datafeeds":{ - "type":"boolean", - "required":false, - "description":"Whether to ignore if a wildcard expression matches no datafeeds. (This includes `_all` string or when no datafeeds have been specified)", - "deprecated":true - } - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.get_datafeeds.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.get_datafeeds.json deleted file mode 100644 index 14f8a3f65397d..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.get_datafeeds.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "xpack-ml.get_datafeeds":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-datafeed.html", - "description":"Retrieves configuration information for datafeeds." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/ml/datafeeds/{datafeed_id}", - "methods":[ - "GET" - ], - "parts":{ - "datafeed_id":{ - "type":"string", - "description":"The ID of the datafeeds to fetch" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - }, - { - "path":"/_xpack/ml/datafeeds", - "methods":[ - "GET" - ], - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - }, - "params":{ - "allow_no_match":{ - "type":"boolean", - "required":false, - "description":"Whether to ignore if a wildcard expression matches no datafeeds. (This includes `_all` string or when no datafeeds have been specified)" - }, - "allow_no_datafeeds":{ - "type":"boolean", - "required":false, - "description":"Whether to ignore if a wildcard expression matches no datafeeds. (This includes `_all` string or when no datafeeds have been specified)", - "deprecated":true - }, - "exclude_generated": { - "required": false, - "type": "boolean", - "default": false, - "description": "Omits fields that are illegal to set on datafeed PUT" - } - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.get_filters.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.get_filters.json deleted file mode 100644 index 886f289a75096..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.get_filters.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "xpack-ml.get_filters":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-filter.html", - "description":"Retrieves filters." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/ml/filters", - "methods":[ - "GET" - ] - }, - { - "path":"/_xpack/ml/filters/{filter_id}", - "methods":[ - "GET" - ], - "parts":{ - "filter_id":{ - "type":"string", - "description":"The ID of the filter to fetch" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - }, - "params":{ - "from":{ - "type":"int", - "description":"skips a number of filters" - }, - "size":{ - "type":"int", - "description":"specifies a max number of filters to get" - } - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.get_influencers.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.get_influencers.json deleted file mode 100644 index d039f14175f09..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.get_influencers.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "xpack-ml.get_influencers":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-influencer.html", - "description":"Retrieves anomaly detection job results for one or more influencers." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"], - "content_type": ["application/json"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/ml/anomaly_detectors/{job_id}/results/influencers", - "methods":[ - "GET", - "POST" - ], - "parts":{ - "job_id":{ - "type":"string", - "description":"Identifier for the anomaly detection job" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - }, - "params":{ - "exclude_interim":{ - "type":"boolean", - "description":"Exclude interim results" - }, - "from":{ - "type":"int", - "description":"skips a number of influencers" - }, - "size":{ - "type":"int", - "description":"specifies a max number of influencers to get" - }, - "start":{ - "type":"string", - "description":"start timestamp for the requested influencers" - }, - "end":{ - "type":"string", - "description":"end timestamp for the requested influencers" - }, - "influencer_score":{ - "type":"double", - "description":"influencer score threshold for the requested influencers" - }, - "sort":{ - "type":"string", - "description":"sort field for the requested influencers" - }, - "desc":{ - "type":"boolean", - "description":"whether the results should be sorted in decending order" - } - }, - "body":{ - "description":"Influencer selection criteria" - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.get_job_stats.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.get_job_stats.json deleted file mode 100644 index ea6154916c155..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.get_job_stats.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "xpack-ml.get_job_stats":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-job-stats.html", - "description":"Retrieves usage information for anomaly detection jobs." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/ml/anomaly_detectors/_stats", - "methods":[ - "GET" - ] - }, - { - "path":"/_xpack/ml/anomaly_detectors/{job_id}/_stats", - "methods":[ - "GET" - ], - "parts":{ - "job_id":{ - "type":"string", - "description":"The ID of the jobs stats to fetch" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - }, - "params":{ - "allow_no_match":{ - "type":"boolean", - "required":false, - "description":"Whether to ignore if a wildcard expression matches no jobs. (This includes `_all` string or when no jobs have been specified)" - }, - "allow_no_jobs":{ - "type":"boolean", - "required":false, - "description":"Whether to ignore if a wildcard expression matches no jobs. (This includes `_all` string or when no jobs have been specified)", - "deprecated":true - } - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.get_jobs.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.get_jobs.json deleted file mode 100644 index 70fb374b846fe..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.get_jobs.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "xpack-ml.get_jobs":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-job.html", - "description":"Retrieves configuration information for anomaly detection jobs." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/ml/anomaly_detectors/{job_id}", - "methods":[ - "GET" - ], - "parts":{ - "job_id":{ - "type":"string", - "description":"The ID of the jobs to fetch" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - }, - { - "path":"/_xpack/ml/anomaly_detectors", - "methods":[ - "GET" - ], - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - }, - "params":{ - "allow_no_match":{ - "type":"boolean", - "required":false, - "description":"Whether to ignore if a wildcard expression matches no jobs. (This includes `_all` string or when no jobs have been specified)" - }, - "allow_no_jobs":{ - "type":"boolean", - "required":false, - "description":"Whether to ignore if a wildcard expression matches no jobs. (This includes `_all` string or when no jobs have been specified)", - "deprecated":true - }, - "exclude_generated": { - "required": false, - "type": "boolean", - "default": false, - "description": "Omits fields that are illegal to set on job PUT" - } - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.get_model_snapshots.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.get_model_snapshots.json deleted file mode 100644 index 44120f655960e..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.get_model_snapshots.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "xpack-ml.get_model_snapshots":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-snapshot.html", - "description":"Retrieves information about model snapshots." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"], - "content_type": ["application/json"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/ml/anomaly_detectors/{job_id}/model_snapshots/{snapshot_id}", - "methods":[ - "GET", - "POST" - ], - "parts":{ - "job_id":{ - "type":"string", - "description":"The ID of the job to fetch" - }, - "snapshot_id":{ - "type":"string", - "description":"The ID of the snapshot to fetch" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - }, - { - "path":"/_xpack/ml/anomaly_detectors/{job_id}/model_snapshots", - "methods":[ - "GET", - "POST" - ], - "parts":{ - "job_id":{ - "type":"string", - "description":"The ID of the job to fetch" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - }, - "params":{ - "from":{ - "type":"int", - "description":"Skips a number of documents" - }, - "size":{ - "type":"int", - "description":"The default number of documents returned in queries as a string." - }, - "start":{ - "type":"date", - "description":"The filter 'start' query parameter" - }, - "end":{ - "type":"date", - "description":"The filter 'end' query parameter" - }, - "sort":{ - "type":"string", - "description":"Name of the field to sort on" - }, - "desc":{ - "type":"boolean", - "description":"True if the results should be sorted in descending order" - } - }, - "body":{ - "description":"Model snapshot selection criteria" - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.get_overall_buckets.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.get_overall_buckets.json deleted file mode 100644 index d18e0c1be3dfa..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.get_overall_buckets.json +++ /dev/null @@ -1,73 +0,0 @@ -{ - "xpack-ml.get_overall_buckets":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-overall-buckets.html", - "description":"Retrieves overall bucket results that summarize the bucket results of multiple anomaly detection jobs." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"], - "content_type": ["application/json"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/ml/anomaly_detectors/{job_id}/results/overall_buckets", - "methods":[ - "GET", - "POST" - ], - "parts":{ - "job_id":{ - "type":"string", - "description":"The job IDs for which to calculate overall bucket results" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - }, - "params":{ - "top_n":{ - "type":"int", - "description":"The number of top job bucket scores to be used in the overall_score calculation" - }, - "bucket_span":{ - "type":"string", - "description":"The span of the overall buckets. Defaults to the longest job bucket_span" - }, - "overall_score":{ - "type":"double", - "description":"Returns overall buckets with overall scores higher than this value" - }, - "exclude_interim":{ - "type":"boolean", - "description":"If true overall buckets that include interim buckets will be excluded" - }, - "start":{ - "type":"string", - "description":"Returns overall buckets with timestamps after this time" - }, - "end":{ - "type":"string", - "description":"Returns overall buckets with timestamps earlier than this time" - }, - "allow_no_match":{ - "type":"boolean", - "description":"Whether to ignore if a wildcard expression matches no jobs. (This includes `_all` string or when no jobs have been specified)" - }, - "allow_no_jobs":{ - "type":"boolean", - "description":"Whether to ignore if a wildcard expression matches no jobs. (This includes `_all` string or when no jobs have been specified)", - "deprecated":true - } - }, - "body":{ - "description":"Overall bucket selection details if not provided in URI" - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.get_records.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.get_records.json deleted file mode 100644 index a930001a0e319..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.get_records.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "xpack-ml.get_records":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-record.html", - "description":"Retrieves anomaly records for an anomaly detection job." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"], - "content_type": ["application/json"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/ml/anomaly_detectors/{job_id}/results/records", - "methods":[ - "GET", - "POST" - ], - "parts":{ - "job_id":{ - "type":"string", - "description":"The ID of the job" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - }, - "params":{ - "exclude_interim":{ - "type":"boolean", - "description":"Exclude interim results" - }, - "from":{ - "type":"int", - "description":"skips a number of records" - }, - "size":{ - "type":"int", - "description":"specifies a max number of records to get" - }, - "start":{ - "type":"string", - "description":"Start time filter for records" - }, - "end":{ - "type":"string", - "description":"End time filter for records" - }, - "record_score":{ - "type":"double", - "description":"Returns records with anomaly scores greater or equal than this value" - }, - "sort":{ - "type":"string", - "description":"Sort records by a particular field" - }, - "desc":{ - "type":"boolean", - "description":"Set the sort direction" - } - }, - "body":{ - "description":"Record selection criteria" - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.info.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.info.json deleted file mode 100644 index a21bf7986ac20..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.info.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "xpack-ml.info":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/get-ml-info.html", - "description":"Returns defaults and limits used by machine learning." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/ml/info", - "methods":[ - "GET" - ], - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.open_job.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.open_job.json deleted file mode 100644 index e464c3743695e..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.open_job.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "xpack-ml.open_job":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-open-job.html", - "description":"Opens one or more anomaly detection jobs." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/ml/anomaly_detectors/{job_id}/_open", - "methods":[ - "POST" - ], - "parts":{ - "job_id":{ - "type":"string", - "description":"The ID of the job to open" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.post_calendar_events.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.post_calendar_events.json deleted file mode 100644 index ca754b25a0d06..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.post_calendar_events.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "xpack-ml.post_calendar_events":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-post-calendar-event.html", - "description":"Posts scheduled events in a calendar." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"], - "content_type": ["application/json"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/ml/calendars/{calendar_id}/events", - "methods":[ - "POST" - ], - "parts":{ - "calendar_id":{ - "type":"string", - "description":"The ID of the calendar to modify" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - }, - "body":{ - "description":"A list of events", - "required":true - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.post_data.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.post_data.json deleted file mode 100644 index 21d4687e54119..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.post_data.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "xpack-ml.post_data":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-post-data.html", - "description":"Sends data to an anomaly detection job for analysis." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"], - "content_type": ["application/x-ndjson", "application/json"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/ml/anomaly_detectors/{job_id}/_data", - "methods":[ - "POST" - ], - "parts":{ - "job_id":{ - "type":"string", - "description":"The name of the job receiving the data" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - }, - "params":{ - "reset_start":{ - "type":"string", - "description":"Optional parameter to specify the start of the bucket resetting range" - }, - "reset_end":{ - "type":"string", - "description":"Optional parameter to specify the end of the bucket resetting range" - } - }, - "body":{ - "description":"The data to process", - "required":true, - "serialize":"bulk" - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.preview_datafeed.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.preview_datafeed.json deleted file mode 100644 index c14869ff12426..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.preview_datafeed.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "xpack-ml.preview_datafeed":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-preview-datafeed.html", - "description":"Previews a datafeed." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/ml/datafeeds/{datafeed_id}/_preview", - "methods":[ - "GET", - "POST" - ], - "parts":{ - "datafeed_id":{ - "type":"string", - "description":"The ID of the datafeed to preview" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - }, - { - "path":"/_xpack/ml/datafeeds/_preview", - "methods":[ - "GET", - "POST" - ], - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - }, - "body":{ - "description":"The datafeed config and job config with which to execute the preview", - "required":false - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.put_calendar.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.put_calendar.json deleted file mode 100644 index d44674646e71d..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.put_calendar.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "xpack-ml.put_calendar":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-put-calendar.html", - "description":"Instantiates a calendar." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"], - "content_type": ["application/json"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/ml/calendars/{calendar_id}", - "methods":[ - "PUT" - ], - "parts":{ - "calendar_id":{ - "type":"string", - "description":"The ID of the calendar to create" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - }, - "body":{ - "description":"The calendar details", - "required":false - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.put_calendar_job.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.put_calendar_job.json deleted file mode 100644 index 3351ba74cf961..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.put_calendar_job.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "xpack-ml.put_calendar_job":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-put-calendar-job.html", - "description":"Adds an anomaly detection job to a calendar." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/ml/calendars/{calendar_id}/jobs/{job_id}", - "methods":[ - "PUT" - ], - "parts":{ - "calendar_id":{ - "type":"string", - "description":"The ID of the calendar to modify" - }, - "job_id":{ - "type":"string", - "description":"The ID of the job to add to the calendar" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.put_datafeed.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.put_datafeed.json deleted file mode 100644 index 3e2700899214b..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.put_datafeed.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "xpack-ml.put_datafeed":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-put-datafeed.html", - "description":"Instantiates a datafeed." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"], - "content_type": ["application/json"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/ml/datafeeds/{datafeed_id}", - "methods":[ - "PUT" - ], - "parts":{ - "datafeed_id":{ - "type":"string", - "description":"The ID of the datafeed to create" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - }, - "body":{ - "description":"The datafeed config", - "required":true - }, - "params":{ - "ignore_unavailable":{ - "type":"boolean", - "description":"Ignore unavailable indexes (default: false)" - }, - "allow_no_indices":{ - "type":"boolean", - "description":"Ignore if the source indices expressions resolves to no concrete indices (default: true)" - }, - "ignore_throttled":{ - "type":"boolean", - "description":"Ignore indices that are marked as throttled (default: true)" - }, - "expand_wildcards":{ - "type":"enum", - "options":[ - "open", - "closed", - "hidden", - "none", - "all" - ], - "description":"Whether source index expressions should get expanded to open or closed indices (default: open)" - } - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.put_filter.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.put_filter.json deleted file mode 100644 index a36f748bb6bb5..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.put_filter.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "xpack-ml.put_filter":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-put-filter.html", - "description":"Instantiates a filter." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"], - "content_type": ["application/json"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/ml/filters/{filter_id}", - "methods":[ - "PUT" - ], - "parts":{ - "filter_id":{ - "type":"string", - "description":"The ID of the filter to create" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - }, - "body":{ - "description":"The filter details", - "required":true - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.put_job.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.put_job.json deleted file mode 100644 index 3c1798170969c..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.put_job.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "xpack-ml.put_job":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-put-job.html", - "description":"Instantiates an anomaly detection job." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"], - "content_type": ["application/json"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/ml/anomaly_detectors/{job_id}", - "methods":[ - "PUT" - ], - "parts":{ - "job_id":{ - "type":"string", - "description":"The ID of the job to create" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - }, - "params":{ - "ignore_unavailable":{ - "type":"boolean", - "description":"Ignore unavailable indexes (default: false). Only set if datafeed_config is provided." - }, - "allow_no_indices":{ - "type":"boolean", - "description":"Ignore if the source indices expressions resolves to no concrete indices (default: true). Only set if datafeed_config is provided." - }, - "ignore_throttled":{ - "type":"boolean", - "description":"Ignore indices that are marked as throttled (default: true). Only set if datafeed_config is provided." - }, - "expand_wildcards":{ - "type":"enum", - "options":[ - "open", - "closed", - "hidden", - "none", - "all" - ], - "description":"Whether source index expressions should get expanded to open or closed indices (default: open). Only set if datafeed_config is provided." - } - }, - "body":{ - "description":"The job", - "required":true - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.revert_model_snapshot.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.revert_model_snapshot.json deleted file mode 100644 index 803595f9ec0b2..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.revert_model_snapshot.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "xpack-ml.revert_model_snapshot":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-revert-snapshot.html", - "description":"Reverts to a specific snapshot." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"], - "content_type": ["application/json"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/ml/anomaly_detectors/{job_id}/model_snapshots/{snapshot_id}/_revert", - "methods":[ - "POST" - ], - "parts":{ - "job_id":{ - "type":"string", - "description":"The ID of the job to fetch" - }, - "snapshot_id":{ - "type":"string", - "description":"The ID of the snapshot to revert to" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - }, - "params":{ - "delete_intervening_results":{ - "type":"boolean", - "description":"Should we reset the results back to the time of the snapshot?" - } - }, - "body":{ - "description":"Reversion options" - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.set_upgrade_mode.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.set_upgrade_mode.json deleted file mode 100644 index 1967d8a6262fd..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.set_upgrade_mode.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "xpack-ml.set_upgrade_mode":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-set-upgrade-mode.html", - "description":"Sets a cluster wide upgrade_mode setting that prepares machine learning indices for an upgrade." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/ml/set_upgrade_mode", - "methods":[ - "POST" - ], - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - }, - "params":{ - "enabled":{ - "type":"boolean", - "description":"Whether to enable upgrade_mode ML setting or not. Defaults to false." - }, - "timeout":{ - "type":"time", - "description":"Controls the time to wait before action times out. Defaults to 30 seconds" - } - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.start_datafeed.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.start_datafeed.json deleted file mode 100644 index cef069eaa153d..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.start_datafeed.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "xpack-ml.start_datafeed":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-start-datafeed.html", - "description":"Starts one or more datafeeds." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"], - "content_type": ["application/json"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/ml/datafeeds/{datafeed_id}/_start", - "methods":[ - "POST" - ], - "parts":{ - "datafeed_id":{ - "type":"string", - "description":"The ID of the datafeed to start" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - }, - "params":{ - "start":{ - "type":"string", - "required":false, - "description":"The start time from where the datafeed should begin" - }, - "end":{ - "type":"string", - "required":false, - "description":"The end time when the datafeed should stop. When not set, the datafeed continues in real time" - }, - "timeout":{ - "type":"time", - "required":false, - "description":"Controls the time to wait until a datafeed has started. Default to 20 seconds" - } - }, - "body":{ - "description":"The start datafeed parameters" - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.stop_datafeed.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.stop_datafeed.json deleted file mode 100644 index b09d536f05b36..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.stop_datafeed.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "xpack-ml.stop_datafeed":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-stop-datafeed.html", - "description":"Stops one or more datafeeds." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/ml/datafeeds/{datafeed_id}/_stop", - "methods":[ - "POST" - ], - "parts":{ - "datafeed_id":{ - "type":"string", - "description":"The ID of the datafeed to stop" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - }, - "params":{ - "allow_no_match":{ - "type":"boolean", - "required":false, - "description":"Whether to ignore if a wildcard expression matches no datafeeds. (This includes `_all` string or when no datafeeds have been specified)" - }, - "allow_no_datafeeds":{ - "type":"boolean", - "required":false, - "description":"Whether to ignore if a wildcard expression matches no datafeeds. (This includes `_all` string or when no datafeeds have been specified)", - "deprecated":true - }, - "force":{ - "type":"boolean", - "required":false, - "description":"True if the datafeed should be forcefully stopped." - }, - "timeout":{ - "type":"time", - "required":false, - "description":"Controls the time to wait until a datafeed has stopped. Default to 20 seconds" - } - }, - "body":{ - "description":"The URL params optionally sent in the body", - "required":false - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.update_datafeed.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.update_datafeed.json deleted file mode 100644 index ccddff3dd011b..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.update_datafeed.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "xpack-ml.update_datafeed":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-update-datafeed.html", - "description":"Updates certain properties of a datafeed." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"], - "content_type": ["application/json"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/ml/datafeeds/{datafeed_id}/_update", - "methods":[ - "POST" - ], - "parts":{ - "datafeed_id":{ - "type":"string", - "description":"The ID of the datafeed to update" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - }, - "body":{ - "description":"The datafeed update settings", - "required":true - }, - "params":{ - "ignore_unavailable":{ - "type":"boolean", - "description":"Ignore unavailable indexes (default: false)" - }, - "allow_no_indices":{ - "type":"boolean", - "description":"Ignore if the source indices expressions resolves to no concrete indices (default: true)" - }, - "ignore_throttled":{ - "type":"boolean", - "description":"Ignore indices that are marked as throttled (default: true)" - }, - "expand_wildcards":{ - "type":"enum", - "options":[ - "open", - "closed", - "hidden", - "none", - "all" - ], - "description":"Whether source index expressions should get expanded to open or closed indices (default: open)" - } - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.update_filter.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.update_filter.json deleted file mode 100644 index 00e58675e0dbe..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.update_filter.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "xpack-ml.update_filter":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-update-filter.html", - "description":"Updates the description of a filter, adds items, or removes items." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"], - "content_type": ["application/json"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/ml/filters/{filter_id}/_update", - "methods":[ - "POST" - ], - "parts":{ - "filter_id":{ - "type":"string", - "description":"The ID of the filter to update" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - }, - "body":{ - "description":"The filter update", - "required":true - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.update_job.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.update_job.json deleted file mode 100644 index 62e79020ac764..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.update_job.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "xpack-ml.update_job":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-update-job.html", - "description":"Updates certain properties of an anomaly detection job." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"], - "content_type": ["application/json"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/ml/anomaly_detectors/{job_id}/_update", - "methods":[ - "POST" - ], - "parts":{ - "job_id":{ - "type":"string", - "description":"The ID of the job to create" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - }, - "body":{ - "description":"The job update settings", - "required":true - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.update_model_snapshot.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.update_model_snapshot.json deleted file mode 100644 index cd72375d6ae4a..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.update_model_snapshot.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "xpack-ml.update_model_snapshot":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-update-snapshot.html", - "description":"Updates certain properties of a snapshot." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"], - "content_type": ["application/json"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/ml/anomaly_detectors/{job_id}/model_snapshots/{snapshot_id}/_update", - "methods":[ - "POST" - ], - "parts":{ - "job_id":{ - "type":"string", - "description":"The ID of the job to fetch" - }, - "snapshot_id":{ - "type":"string", - "description":"The ID of the snapshot to update" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - }, - "params":{}, - "body":{ - "description":"The model snapshot properties to update", - "required":true - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.validate.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.validate.json deleted file mode 100644 index ad337c3c1ad82..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.validate.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "xpack-ml.validate":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/machine-learning/current/ml-jobs.html", - "description":"Validates an anomaly detection job." - }, - "stability":"stable", - "visibility":"private", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"], - "content_type": ["application/json"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/ml/anomaly_detectors/_validate", - "methods":[ - "POST" - ], - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - }, - "params":{}, - "body":{ - "description":"The job config", - "required":true - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.validate_detector.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.validate_detector.json deleted file mode 100644 index 5a06df8977dfc..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ml.validate_detector.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "xpack-ml.validate_detector":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/machine-learning/current/ml-jobs.html", - "description":"Validates an anomaly detection detector." - }, - "stability":"stable", - "visibility":"private", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"], - "content_type": ["application/json"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/ml/anomaly_detectors/_validate/detector", - "methods":[ - "POST" - ], - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - }, - "params":{}, - "body":{ - "description":"The detector", - "required":true - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-monitoring.bulk.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-monitoring.bulk.json deleted file mode 100644 index bf37993fb7862..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-monitoring.bulk.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "xpack-monitoring.bulk":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/master/monitor-elasticsearch-cluster.html", - "description":"Used by the monitoring features to send monitoring data." - }, - "stability":"experimental", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"], - "content_type": ["application/x-ndjson;compatible-with=7"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/monitoring/_bulk", - "methods":[ - "POST", - "PUT" - ], - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - }, - "params":{ - "system_id":{ - "type":"string", - "description":"Identifier of the monitored system" - }, - "system_api_version":{ - "type":"string", - "description":"API Version of the monitored system" - }, - "interval":{ - "type":"string", - "description":"Collection interval (e.g., '10s' or '10000ms') of the payload" - } - }, - "body":{ - "description":"The operation definition and data (action-data pairs), separated by newlines", - "required":true, - "serialize":"bulk" - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-rollup.delete_job.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-rollup.delete_job.json deleted file mode 100644 index 3c23fddd7e4fa..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-rollup.delete_job.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "xpack-rollup.delete_job":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-delete-job.html", - "description":"Deletes an existing rollup job." - }, - "stability":"experimental", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/rollup/job/{id}", - "methods":[ - "DELETE" - ], - "parts":{ - "id":{ - "type":"string", - "description":"The ID of the job to delete" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-rollup.get_jobs.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-rollup.get_jobs.json deleted file mode 100644 index 6b98664cf17ee..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-rollup.get_jobs.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "xpack-rollup.get_jobs":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-job.html", - "description":"Retrieves the configuration, stats, and status of rollup jobs." - }, - "stability":"experimental", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/rollup/job/{id}", - "methods":[ - "GET" - ], - "parts":{ - "id":{ - "type":"string", - "description":"The ID of the job(s) to fetch. Accepts glob patterns, or left blank for all jobs" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - }, - { - "path":"/_xpack/rollup/job/", - "methods":[ - "GET" - ], - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-rollup.get_rollup_caps.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-rollup.get_rollup_caps.json deleted file mode 100644 index a8b95d00b6c3b..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-rollup.get_rollup_caps.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "xpack-rollup.get_rollup_caps":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-rollup-caps.html", - "description":"Returns the capabilities of any rollup jobs that have been configured for a specific index or index pattern." - }, - "stability":"experimental", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/rollup/data/{id}", - "methods":[ - "GET" - ], - "parts":{ - "id":{ - "type":"string", - "description":"The ID of the index to check rollup capabilities on, or left blank for all jobs" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - }, - { - "path":"/_xpack/rollup/data/", - "methods":[ - "GET" - ], - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-rollup.get_rollup_index_caps.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-rollup.get_rollup_index_caps.json deleted file mode 100644 index 38c9af891addb..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-rollup.get_rollup_index_caps.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "xpack-rollup.get_rollup_index_caps":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-rollup-index-caps.html", - "description":"Returns the rollup capabilities of all jobs inside of a rollup index (e.g. the index where rollup data is stored)." - }, - "stability":"experimental", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"] - }, - "url":{ - "paths":[ - { - "path":"/{index}/_xpack/rollup/data", - "methods":[ - "GET" - ], - "parts":{ - "index":{ - "type":"string", - "description":"The rollup index or index pattern to obtain rollup capabilities from." - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-rollup.put_job.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-rollup.put_job.json deleted file mode 100644 index 865a6f448193f..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-rollup.put_job.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "xpack-rollup.put_job":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-put-job.html", - "description":"Creates a rollup job." - }, - "stability":"experimental", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"], - "content_type": ["application/vnd.elasticsearch+json;compatible-with=7"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/rollup/job/{id}", - "methods":[ - "PUT" - ], - "parts":{ - "id":{ - "type":"string", - "description":"The ID of the job to create" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - }, - "body":{ - "description":"The job configuration", - "required":true - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-rollup.start_job.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-rollup.start_job.json deleted file mode 100644 index aebaf859ce9e2..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-rollup.start_job.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "xpack-rollup.start_job":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-start-job.html", - "description":"Starts an existing, stopped rollup job." - }, - "stability":"experimental", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/rollup/job/{id}/_start", - "methods":[ - "POST" - ], - "parts":{ - "id":{ - "type":"string", - "description":"The ID of the job to start" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-rollup.stop_job.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-rollup.stop_job.json deleted file mode 100644 index 62eada2313f2a..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-rollup.stop_job.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "xpack-rollup.stop_job":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-stop-job.html", - "description":"Stops an existing, started rollup job." - }, - "stability":"experimental", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/rollup/job/{id}/_stop", - "methods":[ - "POST" - ], - "parts":{ - "id":{ - "type":"string", - "description":"The ID of the job to stop" - } - }, - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - }, - "params":{ - "wait_for_completion":{ - "type":"boolean", - "required":false, - "description":"True if the API should block until the job has fully stopped, false if should be executed async. Defaults to false." - }, - "timeout":{ - "type":"time", - "required":false, - "description":"Block for (at maximum) the specified duration while waiting for the job to stop. Defaults to 30s." - } - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-sql.clear_cursor.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-sql.clear_cursor.json deleted file mode 100644 index ee706fc0736cd..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-sql.clear_cursor.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "xpack-sql.clear_cursor":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/clear-sql-cursor-api.html", - "description":"Clears the SQL cursor" - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"], - "content_type": ["application/vnd.elasticsearch+json;compatible-with=7"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/sql/close", - "methods":[ - "POST" - ] - } - ] - }, - "body":{ - "description":"Specify the cursor value in the `cursor` element to clean the cursor.", - "required":true - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-sql.query.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-sql.query.json deleted file mode 100644 index d153e0f3484c3..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-sql.query.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "xpack-sql.query":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/sql-search-api.html", - "description":"Executes a SQL request" - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"], - "content_type": ["application/vnd.elasticsearch+json;compatible-with=7"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/sql", - "methods":[ - "POST", - "GET" - ] - } - ] - }, - "params":{ - "format":{ - "type":"string", - "description":"a short version of the Accept header, e.g. json, yaml" - } - }, - "body":{ - "description":"Use the `query` element to start a query. Use the `cursor` element to continue a query.", - "required":true - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-sql.translate.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-sql.translate.json deleted file mode 100644 index 1fad4a643dbb9..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-sql.translate.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "xpack-sql.translate":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/sql-translate-api.html", - "description":"Translates SQL into Elasticsearch queries" - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/vnd.elasticsearch+json;compatible-with=7"], - "content_type": ["application/vnd.elasticsearch+json;compatible-with=7"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/sql/translate", - "methods":[ - "POST", - "GET" - ] - } - ] - }, - "params":{}, - "body":{ - "description":"Specify the query in the `query` element.", - "required":true - } - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ssl.certificates.json b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ssl.certificates.json deleted file mode 100644 index 7d25b0bf8f4f3..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/api/xpack-ssl.certificates.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "xpack-ssl.certificates":{ - "documentation":{ - "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-ssl.html", - "description":"Retrieves information about the X.509 certificates used to encrypt communications in the cluster." - }, - "stability":"stable", - "visibility":"public", - "headers":{ - "accept": [ "application/json"] - }, - "url":{ - "paths":[ - { - "path":"/_xpack/ssl/certificates", - "methods":[ - "GET" - ], - "deprecated":{ - "version":"7.0.0", - "description":"all _xpack prefix have been deprecated" - } - } - ] - }, - "params":{} - } -} diff --git a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/test/monitoring.bulk/10_basic_compat.yml b/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/test/monitoring.bulk/10_basic_compat.yml deleted file mode 100644 index a88f67b394783..0000000000000 --- a/x-pack/qa/xpack-prefix-rest-compat/src/yamlRestTestV7Compat/resources/rest-api-spec/test/monitoring.bulk/10_basic_compat.yml +++ /dev/null @@ -1,31 +0,0 @@ ---- -setup: - - requires: - test_runner_features: - - "headers" - - "warnings_regex" - ---- -"Bulk indexing of monitoring data": - - - do: - headers: - Content-Type: "application/vnd.elasticsearch+json;compatible-with=7" - Accept: "application/vnd.elasticsearch+json;compatible-with=7" - xpack-monitoring.bulk: - system_id: "kibana" - system_api_version: "6" - interval: "10s" - body: - - index: - _type: test_type - - avg-cpu: - user: 13.26 - nice: 0.17 - system: 1.51 - iowait: 0.85 - idle: 84.20 - warnings_regex: - - "\\[.* /_xpack/monitoring/_bulk\\] is deprecated! Use \\[.* /_monitoring/bulk\\] instead." - - - is_false: errors From 934f805faf755473ac879e1af121646837cd42f6 Mon Sep 17 00:00:00 2001 From: Mark Vieira Date: Wed, 4 Sep 2024 12:38:41 -0700 Subject: [PATCH 07/34] Fix more build-tools tests --- ...lDistributionBwcSetupPluginFuncTest.groovy | 2 +- ...acyYamlRestCompatTestPluginFuncTest.groovy | 35 ++++++++++--------- 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/InternalDistributionBwcSetupPluginFuncTest.groovy b/build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/InternalDistributionBwcSetupPluginFuncTest.groovy index fc7ccd651d73b..371255ee61561 100644 --- a/build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/InternalDistributionBwcSetupPluginFuncTest.groovy +++ b/build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/InternalDistributionBwcSetupPluginFuncTest.groovy @@ -27,7 +27,7 @@ class InternalDistributionBwcSetupPluginFuncTest extends AbstractGitAwareGradleF buildFile << """ apply plugin: 'elasticsearch.internal-distribution-bwc-setup' """ - execute("git branch origin/8.0", file("cloned")) + execute("git branch origin/8.x", file("cloned")) execute("git branch origin/7.16", file("cloned")) execute("git branch origin/7.15", file("cloned")) } diff --git a/build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/test/rest/LegacyYamlRestCompatTestPluginFuncTest.groovy b/build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/test/rest/LegacyYamlRestCompatTestPluginFuncTest.groovy index 80255ff072850..bfcd97662f685 100644 --- a/build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/test/rest/LegacyYamlRestCompatTestPluginFuncTest.groovy +++ b/build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/test/rest/LegacyYamlRestCompatTestPluginFuncTest.groovy @@ -300,22 +300,22 @@ class LegacyYamlRestCompatTestPluginFuncTest extends AbstractRestResourcesFuncTe --- one: - do: - do_.some.key_that_was_replaced: - index: "test" - id: 1 - keyvalue : replacedkeyvalue do_.some.key_to_replace_in_two: no_change_here: "because it's not in test 'two'" warnings: - "warning1" - "warning2" headers: - Content-Type: "application/vnd.elasticsearch+json;compatible-with=7" - Accept: "application/vnd.elasticsearch+json;compatible-with=7" + Content-Type: "application/vnd.elasticsearch+json;compatible-with=8" + Accept: "application/vnd.elasticsearch+json;compatible-with=8" allowed_warnings: - "added allowed warning" allowed_warnings_regex: - "added allowed warning regex .* [0-9]" + do_.some.key_that_was_replaced: + index: "test" + id: 1 + keyvalue : "replacedkeyvalue" - match: _source.values: - "z" @@ -332,13 +332,14 @@ class LegacyYamlRestCompatTestPluginFuncTest extends AbstractRestResourcesFuncTe - is_false: "replaced_value" - is_true: "value_not_to_replace" - is_false: "value_not_to_replace" - - length: { key.in_length_that_was_replaced: 1 } - - length: { value_to_replace: 99 } + - length: + key.in_length_that_was_replaced: 1 + - length: + value_to_replace: 99 - match: _source.added: name: "jake" likes: "cheese" - --- two: - skip: @@ -347,17 +348,17 @@ class LegacyYamlRestCompatTestPluginFuncTest extends AbstractRestResourcesFuncTe get: index: "test2" id: 1 - do_.some.key_that_was_replaced_in_two: - changed_here: "because it is in test 'two'" headers: - Content-Type: "application/vnd.elasticsearch+json;compatible-with=7" - Accept: "application/vnd.elasticsearch+json;compatible-with=7" + Content-Type: "application/vnd.elasticsearch+json;compatible-with=8" + Accept: "application/vnd.elasticsearch+json;compatible-with=8" warnings_regex: - "regex warning here .* [a-z]" allowed_warnings: - "added allowed warning" allowed_warnings_regex: - "added allowed warning regex .* [0-9]" + do_.some.key_that_was_replaced_in_two: + changed_here: "because it is in test 'two'" - match: _source.values: - "foo" @@ -369,12 +370,12 @@ class LegacyYamlRestCompatTestPluginFuncTest extends AbstractRestResourcesFuncTe - is_false: "replaced_value" - is_true: "value_not_to_replace" - is_false: "value_not_to_replace" - - length: { value_not_to_replace: 1 } + - length: + value_not_to_replace: 1 --- "use cat with no header": - do: - cat.indices: - {} + cat.indices: {} allowed_warnings: - "added allowed warning" allowed_warnings_regex: @@ -382,7 +383,7 @@ class LegacyYamlRestCompatTestPluginFuncTest extends AbstractRestResourcesFuncTe - match: {} """.stripIndent()).readAll() - expectedAll.eachWithIndex{ ObjectNode expected, int i -> + expectedAll.eachWithIndex { ObjectNode expected, int i -> if(expected != actual.get(i)) { println("\nTransformed Test:") SequenceWriter sequenceWriter = WRITER.writeValues(System.out) From 849dbf65e594cec0ccdb4e7bed8240641ee3464d Mon Sep 17 00:00:00 2001 From: Mark Vieira Date: Wed, 4 Sep 2024 12:56:17 -0700 Subject: [PATCH 08/34] Skip the DRA step for now --- .buildkite/pipelines/intake.template.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.buildkite/pipelines/intake.template.yml b/.buildkite/pipelines/intake.template.yml index 1a513971b2c10..554a2d9175373 100644 --- a/.buildkite/pipelines/intake.template.yml +++ b/.buildkite/pipelines/intake.template.yml @@ -83,6 +83,7 @@ steps: - trigger: elasticsearch-dra-workflow label: Trigger DRA snapshot workflow async: true + skip: "don't try to publish for this test branch" build: branch: "$BUILDKITE_BRANCH" commit: "$BUILDKITE_COMMIT" From 7f4d253dac7aa706f42c2be58fde66d948407d45 Mon Sep 17 00:00:00 2001 From: Mark Vieira Date: Wed, 4 Sep 2024 13:07:10 -0700 Subject: [PATCH 09/34] Filter known index versions earlier than minimum compatible version --- .../src/main/java/org/elasticsearch/index/IndexVersions.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/server/src/main/java/org/elasticsearch/index/IndexVersions.java b/server/src/main/java/org/elasticsearch/index/IndexVersions.java index 2b49a43a9c458..a900270b2c443 100644 --- a/server/src/main/java/org/elasticsearch/index/IndexVersions.java +++ b/server/src/main/java/org/elasticsearch/index/IndexVersions.java @@ -218,7 +218,8 @@ static NavigableMap getAllVersionIds(Class cls) { } static Collection getAllVersions() { - return VERSION_IDS.values(); + // TODO: We can simplify this once we've removed all references to index versions earlier than MINIMUM_COMPATIBLE + return VERSION_IDS.values().stream().filter(v -> v.onOrAfter(MINIMUM_COMPATIBLE)).toList(); } static final IntFunction VERSION_LOOKUP = ReleaseVersions.generateVersionsLookup(IndexVersions.class, LATEST_DEFINED.id()); From 96f129fb01ee8a07ccfd9752abcc93984326cb72 Mon Sep 17 00:00:00 2001 From: Mark Vieira Date: Wed, 4 Sep 2024 14:22:09 -0700 Subject: [PATCH 10/34] Revert minimum index version for now, we can follow up --- .../src/main/java/org/elasticsearch/TransportVersions.java | 2 ++ .../main/java/org/elasticsearch/index/IndexVersions.java | 4 +++- .../elasticsearch/rest/RestCompatibleVersionHelper.java | 7 +++++-- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/server/src/main/java/org/elasticsearch/TransportVersions.java b/server/src/main/java/org/elasticsearch/TransportVersions.java index 5d1fb3a017f2f..05a39cd9b3478 100644 --- a/server/src/main/java/org/elasticsearch/TransportVersions.java +++ b/server/src/main/java/org/elasticsearch/TransportVersions.java @@ -263,6 +263,8 @@ static TransportVersion def(int id) { * Reference to the earliest compatible transport version to this version of the codebase. * This should be the transport version used by the highest minor version of the previous major. */ + @UpdateForV9 + // This needs to be bumped to the 8.last public static final TransportVersion MINIMUM_COMPATIBLE = V_7_17_0; /** diff --git a/server/src/main/java/org/elasticsearch/index/IndexVersions.java b/server/src/main/java/org/elasticsearch/index/IndexVersions.java index a900270b2c443..771b604bc2098 100644 --- a/server/src/main/java/org/elasticsearch/index/IndexVersions.java +++ b/server/src/main/java/org/elasticsearch/index/IndexVersions.java @@ -166,7 +166,9 @@ private static IndexVersion def(int id, Version luceneVersion) { * In branches 8.7-8.11 see server/src/main/java/org/elasticsearch/index/IndexVersion.java for the equivalent definitions. */ - public static final IndexVersion MINIMUM_COMPATIBLE = V_8_0_0; + @UpdateForV9 + // This needs to be bumped to V8_0_0 and all old references removed + public static final IndexVersion MINIMUM_COMPATIBLE = V_7_0_0; static final NavigableMap VERSION_IDS = getAllVersionIds(IndexVersions.class); static final IndexVersion LATEST_DEFINED; diff --git a/server/src/main/java/org/elasticsearch/rest/RestCompatibleVersionHelper.java b/server/src/main/java/org/elasticsearch/rest/RestCompatibleVersionHelper.java index ca574a5c7eba3..a71394aaaf39f 100644 --- a/server/src/main/java/org/elasticsearch/rest/RestCompatibleVersionHelper.java +++ b/server/src/main/java/org/elasticsearch/rest/RestCompatibleVersionHelper.java @@ -10,6 +10,7 @@ import org.elasticsearch.ElasticsearchStatusException; import org.elasticsearch.core.Nullable; import org.elasticsearch.core.RestApiVersion; +import org.elasticsearch.core.UpdateForV9; import org.elasticsearch.xcontent.MediaType; import org.elasticsearch.xcontent.ParsedMediaType; @@ -25,6 +26,7 @@ class RestCompatibleVersionHelper { /** * @return The requested API version, or {@link Optional#empty()} if there was no explicit version in the request. */ + @UpdateForV9 static Optional getCompatibleVersion( @Nullable ParsedMediaType acceptHeader, @Nullable ParsedMediaType contentTypeHeader, @@ -49,7 +51,8 @@ static Optional getCompatibleVersion( if (hasContent) { // content-type version must be current or prior - if (contentTypeVersion > RestApiVersion.current().major || contentTypeVersion < RestApiVersion.minimumSupported().major) { + // This can be uncommented once all references to RestApiVersion.V_7 are removed + /*if (contentTypeVersion > RestApiVersion.current().major || contentTypeVersion < RestApiVersion.minimumSupported().major) { throw new ElasticsearchStatusException( "Content-Type version must be either version {} or {}, but found {}. Content-Type={}", RestStatus.BAD_REQUEST, @@ -58,7 +61,7 @@ static Optional getCompatibleVersion( contentTypeVersion, contentTypeHeader ); - } + }*/ // if both accept and content-type are sent, the version must match if (contentTypeVersion != acceptVersion) { throw new ElasticsearchStatusException( From 42240772fc9b97c35e854b3de0083013fd0979fd Mon Sep 17 00:00:00 2001 From: Mark Vieira Date: Wed, 4 Sep 2024 14:37:31 -0700 Subject: [PATCH 11/34] Fix full cluster restart tests against older elasticsearch versions --- .../upgrades/ParameterizedFullClusterRestartTestCase.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/qa/full-cluster-restart/src/javaRestTest/java/org/elasticsearch/upgrades/ParameterizedFullClusterRestartTestCase.java b/qa/full-cluster-restart/src/javaRestTest/java/org/elasticsearch/upgrades/ParameterizedFullClusterRestartTestCase.java index c57112d0455c6..cef067c65223c 100644 --- a/qa/full-cluster-restart/src/javaRestTest/java/org/elasticsearch/upgrades/ParameterizedFullClusterRestartTestCase.java +++ b/qa/full-cluster-restart/src/javaRestTest/java/org/elasticsearch/upgrades/ParameterizedFullClusterRestartTestCase.java @@ -14,6 +14,7 @@ import org.elasticsearch.client.Request; import org.elasticsearch.client.Response; +import org.elasticsearch.core.UpdateForV9; import org.elasticsearch.features.NodeFeature; import org.elasticsearch.index.IndexVersion; import org.elasticsearch.index.IndexVersions; @@ -36,7 +37,10 @@ @TestCaseOrdering(FullClusterRestartTestOrdering.class) public abstract class ParameterizedFullClusterRestartTestCase extends ESRestTestCase { - private static final Version MINIMUM_WIRE_COMPATIBLE_VERSION = Version.fromString("7.17.0"); + @UpdateForV9 + // This needs to be bumped to 8.last at the time of 8.last-1 feature freeze + // Also need to bump BwcVersions.MINIMUM_WIRE_COMPATIBLE_VERSION at the same time + private static final Version MINIMUM_WIRE_COMPATIBLE_VERSION = Version.fromString("8.16.0"); private static final String OLD_CLUSTER_VERSION = System.getProperty("tests.old_cluster_version"); private static IndexVersion oldIndexVersion; private static boolean upgradeFailed = false; From 0c6f6a7b73f835a6c61ff4ce871a617bf5c2d089 Mon Sep 17 00:00:00 2001 From: Mark Vieira Date: Wed, 4 Sep 2024 14:42:05 -0700 Subject: [PATCH 12/34] Let's shake out all the tests --- .ci/scripts/run-gradle.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci/scripts/run-gradle.sh b/.ci/scripts/run-gradle.sh index af5db8a6b4063..3e14c1ec46be5 100755 --- a/.ci/scripts/run-gradle.sh +++ b/.ci/scripts/run-gradle.sh @@ -37,4 +37,4 @@ if [[ "$MAX_WORKERS" == "0" ]]; then fi set -e -$GRADLEW -S --max-workers=$MAX_WORKERS $@ +$GRADLEW -S --max-workers=$MAX_WORKERS --continue $@ From 4f97013d03f11147b5f02b33f44b6c08258631b5 Mon Sep 17 00:00:00 2001 From: Mark Vieira Date: Wed, 4 Sep 2024 15:26:27 -0700 Subject: [PATCH 13/34] Just use API version 8 for now --- .../java/org/elasticsearch/core/RestApiVersion.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/libs/core/src/main/java/org/elasticsearch/core/RestApiVersion.java b/libs/core/src/main/java/org/elasticsearch/core/RestApiVersion.java index 25dac468aeffe..e0c18f35f6cb0 100644 --- a/libs/core/src/main/java/org/elasticsearch/core/RestApiVersion.java +++ b/libs/core/src/main/java/org/elasticsearch/core/RestApiVersion.java @@ -21,13 +21,14 @@ public enum RestApiVersion { V_8(8), - @UpdateForV9 // v9 will not need to support the v7 REST API V_7(7); public final byte major; - private static final RestApiVersion CURRENT = V_9; - private static final RestApiVersion PREVIOUS = V_8; + @UpdateForV9 + // We need to bump current and previous to V_9 and V_8, respectively + private static final RestApiVersion CURRENT = V_8; + private static final RestApiVersion PREVIOUS = V_7; RestApiVersion(int major) { this.major = (byte) major; @@ -65,6 +66,8 @@ public static Predicate onOrAfter(RestApiVersion restApiVersion) }; } + @UpdateForV9 + // Right now we return api version 8 for major version 9 until we bump the api version above public static RestApiVersion forMajor(int major) { switch (major) { case 7 -> { @@ -74,7 +77,7 @@ public static RestApiVersion forMajor(int major) { return V_8; } case 9 -> { - return V_9; + return V_8; } default -> throw new IllegalArgumentException("Unknown REST API version " + major); } From 2902a7e39385d716954d69b586e1208e1d7db110 Mon Sep 17 00:00:00 2001 From: Mark Vieira Date: Wed, 4 Sep 2024 15:52:51 -0700 Subject: [PATCH 14/34] Disable rest api version assertion --- .../main/java/org/elasticsearch/Version.java | 24 ++++++++++++------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/server/src/main/java/org/elasticsearch/Version.java b/server/src/main/java/org/elasticsearch/Version.java index 13c4f637be972..936a0441ba031 100644 --- a/server/src/main/java/org/elasticsearch/Version.java +++ b/server/src/main/java/org/elasticsearch/Version.java @@ -13,8 +13,8 @@ import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; import org.elasticsearch.core.Assertions; -import org.elasticsearch.core.RestApiVersion; import org.elasticsearch.core.SuppressForbidden; +import org.elasticsearch.core.UpdateForV9; import org.elasticsearch.monitor.jvm.JvmInfo; import org.elasticsearch.xcontent.ToXContentFragment; import org.elasticsearch.xcontent.XContentBuilder; @@ -220,14 +220,7 @@ public class Version implements VersionId, ToXContentFragment { } } } - assert RestApiVersion.current().major == CURRENT.major && RestApiVersion.previous().major == CURRENT.major - 1 - : "RestApiVersion must be upgraded " - + "to reflect major from Version.CURRENT [" - + CURRENT.major - + "]" - + " but is still set to [" - + RestApiVersion.current().major - + "]"; + assertRestApiVersion(); builder.put(V_EMPTY_ID, V_EMPTY); builderByString.put(V_EMPTY.toString(), V_EMPTY); @@ -235,6 +228,19 @@ public class Version implements VersionId, ToXContentFragment { VERSION_STRINGS = Map.copyOf(builderByString); } + @UpdateForV9 + // Re-enable this assertion once the rest api version is bumped + private static void assertRestApiVersion() { + // assert RestApiVersion.current().major == CURRENT.major && RestApiVersion.previous().major == CURRENT.major - 1 + // : "RestApiVersion must be upgraded " + // + "to reflect major from Version.CURRENT [" + // + CURRENT.major + // + "]" + // + " but is still set to [" + // + RestApiVersion.current().major + // + "]"; + } + public static Version readVersion(StreamInput in) throws IOException { return fromId(in.readVInt()); } From df7a1a9412f25e77a90fc970511dcc5f186b7bb1 Mon Sep 17 00:00:00 2001 From: Mark Vieira Date: Wed, 4 Sep 2024 17:02:20 -0700 Subject: [PATCH 15/34] More test fixes --- ...lDistributionBwcSetupPluginFuncTest.groovy | 4 ++-- .../gradle/internal/BwcVersions.java | 4 ++-- .../ilm/SetSingleNodeAllocateStepTests.java | 19 +++---------------- .../bwc/codecs/OldCodecsAvailableTests.java | 3 +++ 4 files changed, 10 insertions(+), 20 deletions(-) diff --git a/build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/InternalDistributionBwcSetupPluginFuncTest.groovy b/build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/InternalDistributionBwcSetupPluginFuncTest.groovy index 371255ee61561..8c5c84a276719 100644 --- a/build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/InternalDistributionBwcSetupPluginFuncTest.groovy +++ b/build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/InternalDistributionBwcSetupPluginFuncTest.groovy @@ -113,9 +113,9 @@ class InternalDistributionBwcSetupPluginFuncTest extends AbstractGitAwareGradleF result.task(":distribution:bwc:minor:buildBwcDarwinTar").outcome == TaskOutcome.SUCCESS and: "assemble task triggered" result.output.contains("[8.0.0] > Task :distribution:archives:darwin-tar:extractedAssemble") - result.output.contains("expandedRootPath /distribution/bwc/minor/build/bwc/checkout-8.0/" + + result.output.contains("expandedRootPath /distribution/bwc/minor/build/bwc/checkout-8.x/" + "distribution/archives/darwin-tar/build/install") - result.output.contains("nested folder /distribution/bwc/minor/build/bwc/checkout-8.0/" + + result.output.contains("nested folder /distribution/bwc/minor/build/bwc/checkout-8.x/" + "distribution/archives/darwin-tar/build/install/elasticsearch-8.0.0-SNAPSHOT") } diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/BwcVersions.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/BwcVersions.java index 65349a4692b84..ba928aac16896 100644 --- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/BwcVersions.java +++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/BwcVersions.java @@ -93,7 +93,7 @@ public BwcVersions(Version currentVersionProperty, List allVersions, Ve assertCurrentVersionMatchesParsed(currentVersionProperty); this.unreleased = computeUnreleased(); - this.minimumWireCompatibleVersion = MINIMUM_WIRE_COMPATIBLE_VERSION; + this.minimumWireCompatibleVersion = minimumWireCompatibleVersion; } // Visible for testing @@ -261,7 +261,7 @@ public void withIndexCompatible(Predicate filter, BiConsumer getWireCompatible() { - return filterSupportedVersions(versions.stream().filter(v -> v.compareTo(MINIMUM_WIRE_COMPATIBLE_VERSION) >= 0).toList()); + return filterSupportedVersions(versions.stream().filter(v -> v.compareTo(minimumWireCompatibleVersion) >= 0).toList()); } public void withWireCompatible(BiConsumer versionAction) { diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ilm/SetSingleNodeAllocateStepTests.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ilm/SetSingleNodeAllocateStepTests.java index 1fb7b7c36827e..f988a6fd5769c 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ilm/SetSingleNodeAllocateStepTests.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ilm/SetSingleNodeAllocateStepTests.java @@ -6,7 +6,6 @@ */ package org.elasticsearch.xpack.core.ilm; -import org.elasticsearch.Version; import org.elasticsearch.action.ActionListener; import org.elasticsearch.action.admin.indices.settings.put.UpdateSettingsRequest; import org.elasticsearch.action.support.master.AcknowledgedResponse; @@ -388,11 +387,7 @@ public void testPerformActionAttrsNoShard() { public void testPerformActionSomeShardsOnlyOnNewNodes() throws Exception { VersionInformation oldVersion = new VersionInformation( - VersionUtils.randomVersionBetween( - random(), - Version.fromId(Version.CURRENT.major * 1_000_000 + 99), - VersionUtils.getPreviousVersion() - ), + VersionUtils.randomCompatibleVersion(random(), VersionUtils.getPreviousVersion()), IndexVersions.MINIMUM_COMPATIBLE, IndexVersionUtils.randomCompatibleVersion(random()) ); @@ -457,11 +452,7 @@ public void testPerformActionSomeShardsOnlyOnNewNodes() throws Exception { public void testPerformActionSomeShardsOnlyOnNewNodesButNewNodesInvalidAttrs() { VersionInformation oldVersion = new VersionInformation( - VersionUtils.randomVersionBetween( - random(), - Version.fromId(Version.CURRENT.major * 1_000_000 + 99), - VersionUtils.getPreviousVersion() - ), + VersionUtils.randomCompatibleVersion(random(), VersionUtils.getPreviousVersion()), IndexVersions.MINIMUM_COMPATIBLE, IndexVersionUtils.randomCompatibleVersion(random()) ); @@ -534,11 +525,7 @@ public void testPerformActionSomeShardsOnlyOnNewNodesButNewNodesInvalidAttrs() { public void testPerformActionNewShardsExistButWithInvalidAttributes() throws Exception { VersionInformation oldVersion = new VersionInformation( - VersionUtils.randomVersionBetween( - random(), - Version.fromId(Version.CURRENT.major * 1_000_000 + 99), - VersionUtils.getPreviousVersion() - ), + VersionUtils.randomCompatibleVersion(random(), VersionUtils.getPreviousVersion()), IndexVersions.MINIMUM_COMPATIBLE, IndexVersionUtils.randomCompatibleVersion(random()) ); diff --git a/x-pack/plugin/old-lucene-versions/src/test/java/org/elasticsearch/xpack/lucene/bwc/codecs/OldCodecsAvailableTests.java b/x-pack/plugin/old-lucene-versions/src/test/java/org/elasticsearch/xpack/lucene/bwc/codecs/OldCodecsAvailableTests.java index bf1538b4e5dd8..42b5ba83a0828 100644 --- a/x-pack/plugin/old-lucene-versions/src/test/java/org/elasticsearch/xpack/lucene/bwc/codecs/OldCodecsAvailableTests.java +++ b/x-pack/plugin/old-lucene-versions/src/test/java/org/elasticsearch/xpack/lucene/bwc/codecs/OldCodecsAvailableTests.java @@ -8,6 +8,7 @@ package org.elasticsearch.xpack.lucene.bwc.codecs; import org.elasticsearch.Version; +import org.elasticsearch.core.UpdateForV9; import org.elasticsearch.test.ESTestCase; public class OldCodecsAvailableTests extends ESTestCase { @@ -16,6 +17,8 @@ public class OldCodecsAvailableTests extends ESTestCase { * Reminder to add Lucene BWC codecs under {@link org.elasticsearch.xpack.lucene.bwc.codecs} whenever Elasticsearch is upgraded * to the next major Lucene version. */ + @UpdateForV9 + @AwaitsFix(bugUrl = "muted until we add bwc codecs as part of lucene 10 upgrade") public void testLuceneBWCCodecsAvailable() { assertEquals("Add Lucene BWC codecs for Elasticsearch version 7", 8, Version.CURRENT.major); } From 5cee3beec3425088ecbadce5d83fa92b3f0456f2 Mon Sep 17 00:00:00 2001 From: Mark Vieira Date: Thu, 5 Sep 2024 08:57:38 -0700 Subject: [PATCH 16/34] Remove rest compat testing overrides --- modules/aggregations/build.gradle | 24 --- modules/analysis-common/build.gradle | 7 - .../health-shards-availability/build.gradle | 4 - modules/ingest-attachment/build.gradle | 8 - modules/ingest-common/build.gradle | 4 - modules/ingest-geoip/build.gradle | 5 - modules/ingest-user-agent/build.gradle | 4 - modules/lang-mustache/build.gradle | 4 - modules/lang-painless/build.gradle | 42 ---- modules/parent-join/build.gradle | 4 - modules/percolator/build.gradle | 4 - modules/reindex/build.gradle | 27 --- modules/runtime-fields-common/build.gradle | 7 - plugins/analysis-icu/build.gradle | 4 - rest-api-spec/build.gradle | 188 ------------------ .../plugin/autoscaling/qa/rest/build.gradle | 6 - x-pack/plugin/build.gradle | 114 ----------- x-pack/plugin/downsample/qa/rest/build.gradle | 4 - .../plugin/mapper-unsigned-long/build.gradle | 9 - x-pack/plugin/watcher/qa/rest/build.gradle | 22 -- 20 files changed, 491 deletions(-) diff --git a/modules/aggregations/build.gradle b/modules/aggregations/build.gradle index 4a6c175e40b28..5e233f423aa14 100644 --- a/modules/aggregations/build.gradle +++ b/modules/aggregations/build.gradle @@ -36,30 +36,6 @@ if (BuildParams.isSnapshotBuild() == false) { } } -tasks.named("yamlRestCompatTestTransform").configure { task -> - task.skipTest("search.aggregation/20_terms/string profiler via global ordinals filters implementation", "The profiler results aren't backwards compatible.") - task.skipTest("search.aggregation/20_terms/string profiler via global ordinals native implementation", "The profiler results aren't backwards compatible.") - task.skipTest("search.aggregation/20_terms/string profiler via map", "The profiler results aren't backwards compatible.") - task.skipTest("search.aggregation/20_terms/numeric profiler", "The profiler results aren't backwards compatible.") - task.skipTest("search.aggregation/210_top_hits_nested_metric/top_hits aggregation with sequence numbers", "#42809 the use nested path and filter sort throws an exception") - task.skipTest("search.aggregation/370_doc_count_field/Test filters agg with doc_count", "Uses profiler for assertions which is not backwards compatible") - - // In 8.9.0, the default t-digest algorithm changed from AVL-tree-based to hybrid, combining a sorted array of samples with a merging - // implementation. This change leads to slight different percentile results, compared to previous versions. - task.skipTest("search.aggregation/180_percentiles_tdigest_metric/Basic test", "Hybrid t-digest produces different results.") - task.skipTest("search.aggregation/180_percentiles_tdigest_metric/Non-keyed test", "Hybrid t-digest produces different results.") - task.skipTest("search.aggregation/180_percentiles_tdigest_metric/Only aggs test", "Hybrid t-digest produces different results.") - task.skipTest("search.aggregation/180_percentiles_tdigest_metric/Explicit Percents test", "Hybrid t-digest produces different results.") - task.skipTest("search.aggregation/180_percentiles_tdigest_metric/Metadata test", "Hybrid t-digest produces different results.") - task.skipTest("search.aggregation/180_percentiles_tdigest_metric/Filtered test", "Hybrid t-digest produces different results.") - task.skipTest("search.aggregation/420_percentile_ranks_tdigest_metric/filtered", "Hybrid t-digest produces different results.") - - // Something has changed with response codes - task.skipTest("search.aggregation/20_terms/IP test", "Hybrid t-digest produces different results.") - - task.addAllowedWarningRegex("\\[types removal\\].*") -} - artifacts { restTests(new File(projectDir, "src/yamlRestTest/resources/rest-api-spec/test")) } diff --git a/modules/analysis-common/build.gradle b/modules/analysis-common/build.gradle index ffbdc1ba8124d..b43124f52552b 100644 --- a/modules/analysis-common/build.gradle +++ b/modules/analysis-common/build.gradle @@ -29,13 +29,6 @@ dependencies { clusterModules project(':modules:mapper-extras') } -tasks.named("yamlRestCompatTestTransform").configure { task -> - task.skipTest("indices.analyze/10_analyze/htmlStrip_deprecated", "Cleanup versioned deprecations in analysis #41560") - task.skipTest("analysis-common/40_token_filters/delimited_payload_filter_error", "Remove preconfigured delimited_payload_filter #43686") - task.skipTest("analysis-common/20_analyzers/standard_html_strip", "Cleanup versioned deprecations in analysis #41560") - task.skipTest("search.query/50_queries_with_synonyms/Test common terms query with stacked tokens", "#42654 - `common` query throws an exception") -} - artifacts { restTests(new File(projectDir, "src/yamlRestTest/resources/rest-api-spec/test")) } diff --git a/modules/health-shards-availability/build.gradle b/modules/health-shards-availability/build.gradle index 0107de8fe86ee..b98824d84af94 100644 --- a/modules/health-shards-availability/build.gradle +++ b/modules/health-shards-availability/build.gradle @@ -19,7 +19,3 @@ restResources { include '_common', 'indices', 'index', 'cluster', 'nodes', 'get', 'ingest' } } - -tasks.named("yamlRestCompatTestTransform").configure {task -> - task.addAllowedWarningRegex("setting \\[ecs\\] is deprecated as ECS format is the default and only option") -} diff --git a/modules/ingest-attachment/build.gradle b/modules/ingest-attachment/build.gradle index 5260ec9154744..f708448c10d7a 100644 --- a/modules/ingest-attachment/build.gradle +++ b/modules/ingest-attachment/build.gradle @@ -138,14 +138,6 @@ tasks.named("forbiddenPatterns").configure { exclude '**/text-cjk-*.txt' } -tasks.named("yamlRestCompatTestTransform").configure { task -> - // 2 new tika metadata fields are returned in v8 - task.replaceValueInLength("_source.attachment", 8, "Test ingest attachment processor with .doc file") - task.replaceValueInLength("_source.attachment", 8, "Test ingest attachment processor with .docx file") - // Tika 2.4.0 adds an extra newline for each embedded attachment, making the content_length larger - task.replaceValueInMatch("_source.attachment.content_length", 20, "Test ingest attachment processor with .docx file") -} - tasks.named("thirdPartyAudit").configure { ignoreMissingClasses() } diff --git a/modules/ingest-common/build.gradle b/modules/ingest-common/build.gradle index d2cf1518bf487..ee923132aa6a6 100644 --- a/modules/ingest-common/build.gradle +++ b/modules/ingest-common/build.gradle @@ -49,7 +49,3 @@ tasks.named("thirdPartyAudit").configure { 'org.apache.commons.logging.LogFactory', ) } - -tasks.named("yamlRestCompatTestTransform").configure { task -> - task.addAllowedWarningRegex("\\[types removal\\].*") -} diff --git a/modules/ingest-geoip/build.gradle b/modules/ingest-geoip/build.gradle index fa0338af761e9..64a679581f76d 100644 --- a/modules/ingest-geoip/build.gradle +++ b/modules/ingest-geoip/build.gradle @@ -84,11 +84,6 @@ tasks.named("dependencyLicenses").configure { ignoreFile 'elastic-geoip-database-service-agreement-LICENSE.txt' } -tasks.named("yamlRestCompatTestTransform").configure { task -> - task.skipTestsByFilePattern("**/ingest_geoip/20_geoip_processor.yml", "from 8.0 yaml rest tests use geoip test fixture and default geoip are no longer packaged. In 7.x yaml tests used default databases which makes tests results very different, so skipping these tests") - // task.skipTest("lang_mustache/50_multi_search_template/Multi-search template with errors", "xxx") -} - artifacts { restTests(new File(projectDir, "src/yamlRestTest/resources/rest-api-spec/test")) } diff --git a/modules/ingest-user-agent/build.gradle b/modules/ingest-user-agent/build.gradle index 50ce3104d9e3e..d124770e33cce 100644 --- a/modules/ingest-user-agent/build.gradle +++ b/modules/ingest-user-agent/build.gradle @@ -18,7 +18,3 @@ restResources { include '_common', 'indices', 'index', 'cluster', 'nodes', 'get', 'ingest' } } - -tasks.named("yamlRestCompatTestTransform").configure {task -> - task.addAllowedWarningRegex("setting \\[ecs\\] is deprecated as ECS format is the default and only option") -} diff --git a/modules/lang-mustache/build.gradle b/modules/lang-mustache/build.gradle index 4c6321deb419b..3cbcabed20a98 100644 --- a/modules/lang-mustache/build.gradle +++ b/modules/lang-mustache/build.gradle @@ -26,7 +26,3 @@ restResources { } } -tasks.named("yamlRestCompatTestTransform").configure {task -> - task.addAllowedWarningRegex("\\[types removal\\].*") - task.replaceValueInMatch("responses.1.error.root_cause.0.type", "x_content_e_o_f_exception", "Multi-search template with errors") -} diff --git a/modules/lang-painless/build.gradle b/modules/lang-painless/build.gradle index c03baaab84688..0b2882934a122 100644 --- a/modules/lang-painless/build.gradle +++ b/modules/lang-painless/build.gradle @@ -61,48 +61,6 @@ tasks.named("test").configure { jvmArgs '-XX:-OmitStackTraceInFastThrow', '-XX:-HeapDumpOnOutOfMemoryError' } -tasks.named("yamlRestCompatTest").configure { - systemProperty 'tests.rest.blacklist', [ - 'painless/20_scriptfield/Scripted Field Doing Compare (fields api)', - 'painless/70_execute_painless_scripts/Execute with double field context (single-value, fields api)', - 'painless/70_execute_painless_scripts/Execute with double field context (single-value, fields api)', - '70_execute_painless_scripts/Execute with geo point field context (multi-value, fields api)', - '70_execute_painless_scripts/Execute with ip field context (single-value, fields api)', - '70_execute_painless_scripts/Execute with boolean field context (single-value, fields api)', - 'painless/70_execute_painless_scripts/Execute with boolean field context (multi-value, fields api)', - 'painless/40_fields_api/date to long', - 'painless/130_metric_agg/Scripted Metric Agg Total (fields api)', - 'painless/70_execute_painless_scripts/Execute with keyword field context (multi-value, fields api)', - 'painless/100_terms_agg/Double Value Script with doc notation (fields api)', - 'painless/100_terms_agg/Long Value Script with doc notation (fields api)', - 'painless/20_scriptfield/Access a date (fields api)', - 'painless/70_execute_painless_scripts/Execute with date field context (multi-value, fields api)', - 'painless/70_execute_painless_scripts/Execute with keyword field context (single-value, fields api)', - 'painless/70_execute_painless_scripts/Execute with long field context (multi-value, fields api)', - 'painless/20_scriptfield/Scripted Field (fields api)', - 'painless/70_execute_painless_scripts/Execute with long field context (single-value, fields api)', - 'painless/70_execute_painless_scripts/Execute with geo point field context (single-value, fields api)', - 'painless/70_execute_painless_scripts/Execute with date field context (single-value, fields api)', - 'painless/40_fields_api/missing field', - 'painless/40_fields_api/sort script fields api', - 'painless/20_scriptfield/Access many dates (fields api)', - 'painless/70_execute_painless_scripts/Execute with long field context (single-value, fields api)', - 'painless/70_execute_painless_scripts/Execute with geo point field context (single-value, fields api)', - 'painless/70_execute_painless_scripts/Execute with date field context (single-value, fields api)', - 'painless/40_fields_api/missing field', - 'painless/40_fields_api/sort script fields api', - 'painless/20_scriptfield/Access many dates (fields api)', - 'painless/100_terms_agg/String Value Script with doc notation (fields api)', - 'painless/40_fields_api/string to long and bigint', - 'painless/40_fields_api/boolean to long and bigint', - 'painless/40_fields_api/script fields api for dates', - 'painless/70_execute_painless_scripts/Execute with double field context (multi-value, fields api)', - 'painless/40_fields_api/filter script fields api', - 'painless/40_fields_api/script score fields api', - 'painless/70_mov_fn_agg/*' // Agg moved to a module. - ].join(',') -} - esplugin.bundleSpec.into("spi") { from(configurations.spi) } diff --git a/modules/parent-join/build.gradle b/modules/parent-join/build.gradle index 913083cbdbc6f..3a1d8a396c4be 100644 --- a/modules/parent-join/build.gradle +++ b/modules/parent-join/build.gradle @@ -19,7 +19,3 @@ restResources { include '_common', 'bulk', 'cluster', 'get', 'nodes', 'indices', 'index', 'search' } } - -tasks.named("yamlRestCompatTestTransform").configure { task -> - task.skipTest("/30_inner_hits/profile fetch", "profile output has changed") -} diff --git a/modules/percolator/build.gradle b/modules/percolator/build.gradle index 96b7af9d8cd5d..041fbb8bce340 100644 --- a/modules/percolator/build.gradle +++ b/modules/percolator/build.gradle @@ -23,7 +23,3 @@ restResources { include '_common', 'get', 'indices', 'index', 'search', 'msearch' } } - -tasks.named("yamlRestCompatTestTransform").configure{ task -> - task.addAllowedWarningRegex("\\[types removal\\].*") -} diff --git a/modules/reindex/build.gradle b/modules/reindex/build.gradle index 2e151bd1b0777..9e1e1e842ba58 100644 --- a/modules/reindex/build.gradle +++ b/modules/reindex/build.gradle @@ -160,30 +160,3 @@ if (OS.current() == OS.WINDOWS) { } } } - -tasks.named("yamlRestCompatTestTransform").configure { task -> - task.skipTest("reindex/20_validation/reindex without source gives useful error message", "exception with a type. Not much benefit adding _doc there.") - task.skipTest("update_by_query/20_validation/update_by_query without source gives useful error message", "exception with a type. Not much benefit adding _doc there.") - - // these tests are all relying on a call to refresh all indices, when they could easily be changed - // in 7.x to call the specific index they want to refresh. - // See https://github.com/elastic/elasticsearch/issues/81188 - task.skipTest("delete_by_query/70_throttle/Rethrottle to -1 which turns off throttling", "test relies on system index being non-hidden") - task.skipTest("delete_by_query/80_slices/Multiple slices with rethrottle", "test relies on system index being non-hidden") - task.skipTest("delete_by_query/80_slices/Multiple slices with wait_for_completion=false", "test relies on system index being non-hidden") - task.skipTest("reindex/80_slices/Multiple slices with rethrottle", "test relies on system index being non-hidden") - task.skipTest("reindex/80_slices/Multiple slices with wait_for_completion=false", "test relies on system index being non-hidden") - task.skipTest("update_by_query/70_slices/Multiple slices with rethrottle", "test relies on system index being non-hidden") - task.skipTest("update_by_query/70_slices/Multiple slices with wait_for_completion=false", "test relies on system index being non-hidden") - - task.addAllowedWarningRegex("\\[types removal\\].*") -} - -tasks.named("yamlRestCompatTest").configure { - systemProperty 'tests.rest.blacklist', [ - 'update_by_query/80_scripting/Can\'t change _id', - 'update_by_query/80_scripting/Set unsupported operation type', - 'update_by_query/80_scripting/Setting bogus context is an error', - - ].join(',') -} diff --git a/modules/runtime-fields-common/build.gradle b/modules/runtime-fields-common/build.gradle index f51e90b4c01bf..f9485b6ed3027 100644 --- a/modules/runtime-fields-common/build.gradle +++ b/modules/runtime-fields-common/build.gradle @@ -21,10 +21,3 @@ dependencies { api project(':libs:elasticsearch-grok') api project(':libs:elasticsearch-dissect') } - -tasks.named("yamlRestCompatTestTransform").configure { task -> - task.skipTest("runtime_fields/100_geo_point/fetch fields from source", "Format changed. Old format was a bug.") - task.skipTest("runtime_fields/101_geo_point_from_source/fetch fields from source", "Format changed. Old format was a bug.") - task.skipTest("runtime_fields/102_geo_point_source_in_query/fetch fields from source", "Format changed. Old format was a bug.") - task.skipTest("runtime_fields/103_geo_point_calculated_at_index/fetch fields from source", "Format changed. Old format was a bug.") -} diff --git a/plugins/analysis-icu/build.gradle b/plugins/analysis-icu/build.gradle index 67b61e2f68ea8..eed88b3232a45 100644 --- a/plugins/analysis-icu/build.gradle +++ b/plugins/analysis-icu/build.gradle @@ -43,7 +43,3 @@ tasks.named("dependencyLicenses").configure { mapping from: /lucene-.*/, to: 'lucene' } -tasks.named("yamlRestCompatTestTransform").configure { task -> - task.skipTest("analysis_icu/10_basic/Normalization with deprecated unicodeSetFilter", "Cleanup versioned deprecations in analysis #41560") -} - diff --git a/rest-api-spec/build.gradle b/rest-api-spec/build.gradle index a0936c226c5db..015c9c4b812c6 100644 --- a/rest-api-spec/build.gradle +++ b/rest-api-spec/build.gradle @@ -41,194 +41,6 @@ dependencies { clusterModules project(':modules:data-streams') } -tasks.named("yamlRestCompatTestTransform").configure { task -> - - task.skipTestsByFilePattern("**/cat*/*.yml", "Cat API are meant to be consumed by humans, so will not be supported by Compatible REST API") - task.skipTestsByFilePattern("**/indices.upgrade/*.yml", "upgrade api will only get a dummy endpoint returning an exception suggesting to use _reindex") - task.skipTestsByFilePattern("**/indices.stats/60_field_usage/*/*.yml", "field usage results will be different between lucene versions") - task.skipTestsByFilePattern("**/search.aggregation/*.yml", "run by the aggregation module") - - task.skipTest("bulk/11_dynamic_templates/Dynamic templates", "Error message has changed") - task.skipTest("index/80_date_nanos/date_nanos requires dates after 1970 and before 2262", "Error message has changed") - task.skipTest("indices.create/20_mix_typeless_typeful/Implicitly create a typed index while there is a typeless template", "Type information about the type is removed and not passed down. The logic to check for this is also removed.") - task.skipTest("indices.create/20_mix_typeless_typeful/Implicitly create a typeless index while there is a typed template", "Type information about the type is removed and not passed down. The logic to check for this is also removed.") - task.skipTest("delete/70_mix_typeless_typeful/DELETE with typeless API on an index that has types", "Type information about the type is removed and not passed down. The logic to check for this is also removed."); - task.skipTest("get/100_mix_typeless_typeful/GET with typeless API on an index that has types", "Failing due to not recognising missing type (the type path param is ignored, will no be fixed"); - task.skipTest("indices.get_field_mapping/21_missing_field_with_types/Return empty object if field doesn't exist, but type and index do", "This test returns test_index.mappings:{} when {} was expected. difference between 20_missing_field and 21_missing_field_with_types?") - task.skipTest("indices.get_field_mapping/30_missing_type/Raise 404 when type doesn't exist", "The information about the type is not present in the index. hence it cannot know if the type exist or not.") - task.skipTest("indices.get_mapping/20_missing_type/Existent and non-existent type returns 404 and the existing type", " The information about the type is not present in the index. hence it cannot know if the type exist or not") - task.skipTest("indices.get_mapping/20_missing_type/Existent and non-existent types returns 404 and the existing type", "The information about the type is not present in the index. hence it cannot know if the type exist or not.") - task.skipTest("indices.get_mapping/20_missing_type/No type matching pattern returns 404", "The information about the type is not present in the index. hence it cannot know if the type exist or not.") - task.skipTest("indices.get_mapping/20_missing_type/Non-existent type returns 404", "The information about the type is not present in the index. hence it cannot know if the type exist or not.") - task.skipTest("indices.get_mapping/20_missing_type/Type missing when no types exist", "The information about the type is not present in the index. hence it cannot know if the type exist or not.") - task.skipTest("indices.put_mapping/20_mix_typeless_typeful/PUT mapping with _doc on an index that has types", "The information about the type is not present in the index. hence it cannot know if the type was already used or not") - task.skipTest("indices.put_mapping/20_mix_typeless_typeful/PUT mapping with typeless API on an index that has types", "The information about the type is not present in the index. hence it cannot know if the type was already used or not") - task.skipTest("search/160_exists_query/Test exists query on _type field", "There is a small distinction between empty mappings and no mappings at all. The code to implement this test was refactored #54003; field search on _type field- not implementing. The data for _type is considered incorrect in this search") - task.skipTest("termvectors/50_mix_typeless_typeful/Term vectors with typeless API on an index that has types", "type information is not stored, hence the the index will be found") - task.skipTest("mget/11_default_index_type/Default index/type", "mget - these use cases are no longer valid because we always default to _doc.; This mean test cases where there is assertion on not finding by type won't work") - task.skipTest("mget/16_basic_with_types/Basic multi-get", "mget - these use cases are no longer valid, because we always default to _doc.; This mean test cases where there is assertion on not finding by type won't work") - task.skipTest("explain/40_mix_typeless_typeful/Explain with typeless API on an index that has types", "asserting about type not found won't work as we ignore the type information") - task.skipTest("indices.stats/20_translog/Translog retention settings are deprecated", "translog settings removal is not supported under compatible api") - task.skipTest("indices.stats/20_translog/Translog retention without soft_deletes", "translog settings removal is not supported under compatible api") - task.skipTest("indices.stats/20_translog/Translog stats on closed indices without soft-deletes", "translog settings removal is not supported under compatible api") - task.skipTest("indices.create/10_basic/Create index without soft deletes", "Make soft-deletes mandatory in 8.0 #51122 - settings changes are note supported in Rest Api compatibility") - task.skipTest("field_caps/30_filter/Field caps with index filter", "behaviour change after #63692 4digits dates are parsed as epoch and in quotes as year") - task.skipTest("indices.forcemerge/10_basic/Check deprecation warning when incompatible only_expunge_deletes and max_num_segments values are both set", "#44761 bug fix") - task.skipTest("search/340_type_query/type query", "#47207 type query throws exception in compatible mode") - task.skipTest("search/310_match_bool_prefix/multi_match multiple fields with cutoff_frequency throws exception", "#42654 cutoff_frequency, common terms are not supported. Throwing an exception") - task.skipTest("search_shards/10_basic/Search shards aliases with and without filters", "Filter representation no longer outputs default boosts") - task.skipTest("migration/10_get_feature_upgrade_status/Get feature upgrade status", "Awaits backport") - task.skipTest("search/330_fetch_fields/Test disable source", "Error no longer thrown") - task.skipTest("search/370_profile/fetch fields", "profile output has changed") - task.skipTest("search/370_profile/fetch source", "profile output has changed") - task.skipTest("search/370_profile/fetch nested source", "profile output has changed") - task.skipTest("search/240_date_nanos/doc value fields are working as expected across date and date_nanos fields", "Fetching docvalues field multiple times is no longer allowed") - task.skipTest("search/110_field_collapsing/field collapsing and rescore", "#107779 Field collapsing is compatible with rescore in 8.15") - - task.replaceValueInMatch("_type", "_doc") - task.addAllowedWarningRegex("\\[types removal\\].*") - task.replaceValueInMatch("nodes.\$node_id.roles.8", "ml", "node_info role test") - task.replaceValueInMatch("nodes.\$node_id.roles.9", "remote_cluster_client", "node_info role test") - task.removeMatch("nodes.\$node_id.roles.10", "node_info role test") - task.replaceIsTrue("test_index.mappings.type_1", "test_index.mappings._doc") - //override for indices.get and indices.create - //task.replaceIsFalse("test_index.mappings.type_1", "test_index.mappings._doc") - //overrides for indices.create/20_mix_typeless_typeful - task.replaceIsFalse("test-1.mappings._doc","false", "Create a typed index while there is a typeless template") - task.replaceIsFalse("test-1.mappings._doc","false", "Create a typeless index while there is a typed template") - - task.replaceIsTrue("test-1.mappings.my_type", "test-1.mappings._doc") - task.replaceIsTrue("test-1.mappings.my_type.properties.foo", "test-1.mappings._doc.properties.foo") - task.replaceIsTrue("test-1.mappings.my_type.properties.bar", "test-1.mappings._doc.properties.bar") - - // overrides for indices.get_field_mapping - task.replaceKeyInLength("test_index.mappings.test_type.text.mapping.text.type", - "test_index.mappings._doc.text.mapping.text.type" - ) - task.replaceKeyInMatch("test_index.mappings.test_type.text.mapping.text.analyzer", - "test_index.mappings._doc.text.mapping.text.analyzer" - ) - task.replaceKeyInMatch("test_index.mappings.test_type.t1.full_name", - "test_index.mappings._doc.t1.full_name" - ) - task.replaceKeyInMatch("test_index.mappings.test_type.t2.full_name", - "test_index.mappings._doc.t2.full_name" - ) - task.replaceKeyInMatch("test_index.mappings.test_type.obj\\.t1.full_name", - "test_index.mappings._doc.obj\\.t1.full_name" - ) - task.replaceKeyInMatch("test_index.mappings.test_type.obj\\.i_t1.full_name", - "test_index.mappings._doc.obj\\.i_t1.full_name" - ) - task.replaceKeyInMatch("test_index.mappings.test_type.obj\\.i_t3.full_name", - "test_index.mappings._doc.obj\\.i_t3.full_name" - ) - task.replaceKeyInLength("test_index.mappings.test_type", - "test_index.mappings._doc" - ) - task.replaceKeyInMatch("test_index_2.mappings.test_type_2.t1.full_name", - "test_index.mappings._doc.t1.full_name" - ) - task.replaceKeyInMatch("test_index_2.mappings.test_type_2.t2.full_name", - "test_index.mappings._doc.t2.full_name" - ) - task.replaceKeyInLength("test_index_2.mappings.test_type_2", - "test_index.mappings._doc" - ) - task.replaceKeyInMatch("test_index.mappings.test_type.text.mapping.text.type", - "test_index.mappings._doc.text.mapping.text.type" - ) - // overrides for indices.put_mapping/11_basic_with_types - task.replaceKeyInMatch("test_index.mappings.test_type.properties.text1.type", - "test_index.mappings._doc.properties.text1.type" - ) - task.replaceKeyInMatch("test_index.mappings.test_type.properties.text1.analyzer", - "test_index.mappings._doc.properties.text1.analyzer" - ) - task.replaceKeyInMatch("test_index.mappings.test_type.properties.text2.type", - "test_index.mappings._doc.properties.text2.type" - ) - task.replaceKeyInMatch("test_index.mappings.test_type.properties.text2.analyzer", - "test_index.mappings._doc.properties.text2.analyzer" - ) - task.replaceKeyInMatch("test_index.mappings.test_type.properties.subfield.properties.text3.type", - "test_index.mappings._doc.properties.subfield.properties.text3.type" - ) - task.replaceKeyInMatch("test_index.mappings.test_type.properties.text1.fields.text_raw.type", - "test_index.mappings._doc.properties.text1.fields.text_raw.type" - ) - // overrides for indices.put_mapping/all_path_options_with_types - task.replaceKeyInMatch("test_index1.mappings.test_type.properties.text.type", - "test_index1.mappings._doc.properties.text.type" - ) - task.replaceKeyInMatch("test_index1.mappings.test_type.properties.text.analyzer", - "test_index1.mappings._doc.properties.text.analyzer" - ) - task.replaceKeyInMatch("test_index2.mappings.test_type.properties.text.type", - "test_index2.mappings._doc.properties.text.type" - ) - task.replaceKeyInMatch("test_index2.mappings.test_type.properties.text.analyzer", - "test_index2.mappings._doc.properties.text.analyzer" - ) - task.replaceKeyInMatch("foo.mappings.test_type.properties.text.type", - "foo.mappings._doc.properties.text.type" - ) - task.replaceKeyInMatch("foo.mappings.test_type.properties.text.analyzer", - "foo.mappings._doc.properties.text.analyzer" - ) - // overrides for indices.get_mapping - task.replaceIsTrue("test_1.mappings.doc", "test_1.mappings._doc") - task.replaceIsTrue("test_2.mappings.doc", "test_2.mappings._doc") - // overrides for mget - task.replaceValueInMatch("docs.0._type", "_doc" , "Basic multi-get") // index found, but no doc - task.replaceValueInMatch("docs.0._type", "_doc", "Default index/type") - task.replaceValueInMatch("docs.0._type", "_doc", "Non-existent index") - task.replaceValueInMatch("docs.0._type", "_doc", "Missing metadata") - task.replaceValueInMatch("docs.0._type", "_doc", "Multi Get with alias that resolves to multiple indices") - task.replaceValueInMatch("docs.1._type", "_doc", "Multi Get with alias that resolves to multiple indices") - task.replaceValueInMatch("docs.2._type", "_doc", "Multi Get with alias that resolves to multiple indices") - task.replaceValueInMatch("docs.0._type", "_doc", "IDs") - task.replaceValueInMatch("docs.1._type", "_doc", "IDs") - task.replaceValueInMatch("docs.2._type", "_doc", "Routing") - - //overrides for indices.stats - //TODO fix to remove the below match - task.replaceKeyInMatch("_all.primaries.indexing.types.baz.index_total", - "_all.primaries.indexing.types._doc.index_total" - ) - task.replaceKeyInMatch("_all.primaries.indexing.types.bar.index_total", - "_all.primaries.indexing.types._doc.index_total" - ) - task.replaceValueInMatch("_all.primaries.indexing.types._doc.index_total", 2) - // points get touched by sorting in ES 8 - task.replaceValueInMatch("testindex.shards.0.stats.fields.price.points", 1) - - //override for "indices.open/10_basic/?wait_for_active_shards default is deprecated" and "indices.open/10_basic/?wait_for_active_shards=index-setting" - task.addAllowedWarningRegexForTest("\\?wait_for_active_shards=index-setting is now the default behaviour.*", "?wait_for_active_shards=index-setting") - task.removeWarningForTest("the default value for the ?wait_for_active_shards parameter will change from '0' to 'index-setting' in version 8; " + - "specify '?wait_for_active_shards=index-setting' to adopt the future default behaviour, or '?wait_for_active_shards=0' to preserve today's behaviour" - , "?wait_for_active_shards default is deprecated") - - // override for exception message change in #55291 tests cluster.voting_config_exclusions/10_basic/ - // 'Throw exception when adding voting config exclusion and specifying both node_ids and node_names', - // 'Throw exception when adding voting config exclusion without specifying nodes', - task.replaceValueTextByKeyValue("catch", - '/Please set node identifiers correctly. One and only one of \\[node_name\\], \\[node_names\\] and \\[node_ids\\] has to be set/', - '/You must set \\[node_names\\] or \\[node_ids\\] but not both/') - - // sync_id is no longer available in SegmentInfos.userData // "indices.flush/10_basic/Index synced flush rest test" - task.replaceIsTrue("indices.testing.shards.0.0.commit.user_data.sync_id", "indices.testing.shards.0.0.commit.user_data") - - // we can now search using doc values only - task.replaceValueInMatch("fields.object\\.nested1.long.searchable", true) - - //client.type no longer exists #101214 - task.replaceKeyInMatch("nodes.\$node_id.settings.client.type", "nodes.\$node_id.settings.node.attr.testattr") - task.replaceValueInMatch("nodes.\$node_id.settings.node.attr.testattr", "test") - task.replaceKeyInMatch("nodes.\$node_id.settings.client\\.type", "nodes.\$node_id.settings.node\\.attr\\.testattr") - task.replaceValueInMatch("nodes.\$node_id.settings.node\\.attr\\.testattr", "test") -} - tasks.register('enforceYamlTestConvention').configure { def tree = fileTree('src/main/resources/rest-api-spec/test') doLast { diff --git a/x-pack/plugin/autoscaling/qa/rest/build.gradle b/x-pack/plugin/autoscaling/qa/rest/build.gradle index b43003322be70..c79644ee31225 100644 --- a/x-pack/plugin/autoscaling/qa/rest/build.gradle +++ b/x-pack/plugin/autoscaling/qa/rest/build.gradle @@ -13,12 +13,6 @@ restResources { } } -tasks.named("yamlRestCompatTest").configure { - systemProperty 'tests.rest.blacklist', [ - "autoscaling/get_autoscaling_capacity/Test get fixed autoscaling capacity", - ].join(',') -} - testClusters.configureEach { testDistribution = 'DEFAULT' setting 'xpack.security.enabled', 'true' diff --git a/x-pack/plugin/build.gradle b/x-pack/plugin/build.gradle index 970532020cc07..4fdc4c3af4190 100644 --- a/x-pack/plugin/build.gradle +++ b/x-pack/plugin/build.gradle @@ -58,120 +58,6 @@ tasks.named("yamlRestTest").configure { systemProperty 'tests.rest.blacklist', restTestBlacklist.join(',') } -tasks.named("yamlRestCompatTest").configure { - systemProperty 'tests.rest.blacklist', [ - 'unsigned_long/50_script_values/Scripted sort values', - 'unsigned_long/50_script_values/script_score query', - 'unsigned_long/50_script_values/Script query', - 'aggregate-metrics/90_tsdb_mappings/aggregate_double_metric with time series mappings', - 'aggregate-metrics/90_tsdb_mappings/aggregate_double_metric with wrong time series mappings', - 'analytics/histogram/histogram with wrong time series mappings', - 'analytics/histogram/histogram with time series mappings', - 'analytics/boxplot/Basic Search', - 'analytics/boxplot/Search With Runtime Field', - 'analytics/boxplot/Search With Missing', - 'analytics/moving_percentile/Basic Search TDigest', - 'ml/evaluate_data_frame/Test outlier_detection auc_roc', - 'ml/evaluate_data_frame/Test outlier_detection auc_roc given actual_field is int', - 'ml/evaluate_data_frame/Test outlier_detection auc_roc include curve', - 'ml/evaluate_data_frame/Test classification auc_roc', - 'ml/evaluate_data_frame/Test classification auc_roc with default top_classes_field', - ].join(',') -} - -tasks.named("yamlRestCompatTestTransform").configure { task -> - task.skipTest( - "vectors/10_dense_vector_basic/Deprecated function signature", - "to support it, it would require to almost revert back the #48725 and complicate the code" - ) - task.skipTest( - "vectors/20_dense_vector_special_cases/Indexing of Dense vectors should error when dims don't match defined in the mapping", - "Error message has changed" - ) - task.skipTest("vectors/30_sparse_vector_basic/Cosine Similarity", "not supported for compatibility") - task.skipTest("vectors/30_sparse_vector_basic/Deprecated function signature", "not supported for compatibility") - task.skipTest("vectors/30_sparse_vector_basic/Dot Product", "not supported for compatibility") - task.skipTest("vectors/35_sparse_vector_l1l2/L1 norm", "not supported for compatibility") - task.skipTest("vectors/35_sparse_vector_l1l2/L2 norm", "not supported for compatibility") - task.skipTest("vectors/40_sparse_vector_special_cases/Dimensions can be sorted differently", "not supported for compatibility") - task.skipTest("vectors/40_sparse_vector_special_cases/Documents missing a vector field", "not supported for compatibility") - task.skipTest( - "vectors/40_sparse_vector_special_cases/Query vector has different dimensions from documents' vectors", - "not supported for compatibility" - ) - task.skipTest("vectors/40_sparse_vector_special_cases/Sparse vectors should error with dense vector functions", "not supported for compatibility") - task.skipTest("vectors/40_sparse_vector_special_cases/Vectors of different dimensions and data types", "not supported for compatibility") - task.skipTest("vectors/50_vector_stats/Usage stats on vector fields", "not supported for compatibility") - task.skipTest( - "roles/30_prohibited_role_query/Test use prohibited query inside role query", - "put role request with a term lookup (deprecated) and type. Requires validation in REST layer" - ) - task.skipTest("ml/jobs_crud/Test update job", "Behaviour change #89824 - added limit filter to categorization analyzer") - task.skipTest("ml/jobs_crud/Test create job with delimited format", "removing undocumented functionality") - task.skipTest("ml/jobs_crud/Test cannot create job with model snapshot id set", "Exception type has changed.") - task.skipTest("ml/validate/Test job config is invalid because model snapshot id set", "Exception type has changed.") - task.skipTest("ml/datafeeds_crud/Test update datafeed to point to missing job", "behaviour change #44752 - not allowing to update datafeed job_id") - task.skipTest( - "ml/datafeeds_crud/Test update datafeed to point to different job", - "behaviour change #44752 - not allowing to update datafeed job_id" - ) - task.skipTest( - "ml/datafeeds_crud/Test update datafeed to point to job already attached to another datafeed", - "behaviour change #44752 - not allowing to update datafeed job_id" - ) - task.skipTest( - "ml/trained_model_cat_apis/Test cat trained models", - "A type field was added to cat.ml_trained_models #73660, this is a backwards compatible change. Still this is a cat api, and we don't support them with rest api compatibility. (the test would be very hard to transform too)" - ) - task.skipTest( - "ml/categorization_agg/Test categorization agg simple", - "categorize_text was changed in 8.3, but experimental prior to the change" - ) - task.skipTest( - "ml/categorization_agg/Test categorization aggregation against unsupported field", - "categorize_text was changed in 8.3, but experimental prior to the change" - ) - task.skipTest( - "ml/categorization_agg/Test categorization aggregation with poor settings", - "categorize_text was changed in 8.3, but experimental prior to the change" - ) - task.skipTest("indices.freeze/30_usage/Usage stats on frozen indices", "#70192 -- the freeze index API is removed from 8.0") - task.skipTest("indices.freeze/20_stats/Translog stats on frozen indices", "#70192 -- the freeze index API is removed from 8.0") - task.skipTest("indices.freeze/10_basic/Basic", "#70192 -- the freeze index API is removed from 8.0") - task.skipTest("indices.freeze/10_basic/Test index options", "#70192 -- the freeze index API is removed from 8.0") - task.skipTest("sql/sql/Paging through results", "scrolling through search hit queries no longer produces empty last page in 8.2") - task.skipTest("sql/translate/Translate SQL", "query folding changed in v 8.5, added track_total_hits: -1") - task.skipTest("service_accounts/10_basic/Test get service accounts", "new service accounts are added") - task.skipTest("spatial/70_script_doc_values/diagonal length", "precision changed in 8.4.0") - task.skipTest("spatial/70_script_doc_values/geoshape value", "error message changed in 8.9.0") - task.skipTest("security/authz/14_cat_indices/Test empty request while single authorized index", "not supported for compatibility") - task.skipTestsByFilePattern("**/rollup/**", "The rollup yaml tests in the 7.x branch don't know how to fake a cluster with rollup usage") - - task.replaceValueInMatch("_type", "_doc") - task.addAllowedWarningRegex("\\[types removal\\].*") - task.addAllowedWarningRegexForTest("Including \\[accept_enterprise\\] in get license.*", "Installing enterprise license") - task.addAllowedWarningRegex("bucket_span .* is not an integral .* of the number of seconds in 1d.* This is now deprecated.*") - - task.replaceValueTextByKeyValue( - "catch", - 'bad_request', - '/It is no longer possible to freeze indices, but existing frozen indices can still be unfrozen/', - "Cannot freeze write index for data stream" - ) - - task.replaceValueInMatch( - "error.reason", - "action [cluster:admin/xpack/security/api_key/invalidate] is unauthorized for user [api_key_user_1] with effective roles [user_role], this action is granted by the cluster privileges [manage_api_key,manage_security,all]", - "Test invalidate api key by realm name" - ) - - task.replaceValueInMatch( - "error.reason", - "action [cluster:admin/xpack/security/api_key/invalidate] is unauthorized for user [api_key_user_1] with effective roles [user_role], this action is granted by the cluster privileges [manage_api_key,manage_security,all]", - "Test invalidate api key by username" - ) -} - tasks.register('enforceApiSpecsConvention').configure { def mainApiSpecs = fileTree('src/test/resources/rest-api-spec/api') doLast { diff --git a/x-pack/plugin/downsample/qa/rest/build.gradle b/x-pack/plugin/downsample/qa/rest/build.gradle index cb7f90eaf1133..ba5ac7b0c7317 100644 --- a/x-pack/plugin/downsample/qa/rest/build.gradle +++ b/x-pack/plugin/downsample/qa/rest/build.gradle @@ -36,7 +36,3 @@ if (BuildParams.inFipsJvm){ // This test cluster is using a BASIC license and FIPS 140 mode is not supported in BASIC tasks.named("yamlRestTest").configure{enabled = false } } - -tasks.named("yamlRestCompatTestTransform").configure { task -> - task.skipTest("rollup/10_basic/Rollup index", "Downsample for TSDB changed the configuration") -} diff --git a/x-pack/plugin/mapper-unsigned-long/build.gradle b/x-pack/plugin/mapper-unsigned-long/build.gradle index 86695fa650acf..e011723da6230 100644 --- a/x-pack/plugin/mapper-unsigned-long/build.gradle +++ b/x-pack/plugin/mapper-unsigned-long/build.gradle @@ -37,15 +37,6 @@ restResources { } } -tasks.named("yamlRestCompatTest").configure { - systemProperty 'tests.rest.blacklist', [ - '50_script_values/Scripted fields values return Long', - '50_script_values/Scripted sort values', - '50_script_values/Script query', - '50_script_values/script_score query' - ].join(',') -} - if (BuildParams.isSnapshotBuild() == false) { tasks.named("test").configure { systemProperty 'es.index_mode_feature_flag_registered', 'true' diff --git a/x-pack/plugin/watcher/qa/rest/build.gradle b/x-pack/plugin/watcher/qa/rest/build.gradle index 15f5e52ee8ff7..a911c022212b2 100644 --- a/x-pack/plugin/watcher/qa/rest/build.gradle +++ b/x-pack/plugin/watcher/qa/rest/build.gradle @@ -35,25 +35,3 @@ if (BuildParams.inFipsJvm){ tasks.named("yamlRestTest").configure{enabled = false } } - -tasks.named("yamlRestCompatTestTransform").configure{ task -> - task.skipTest("mustache/30_search_input/Test search input mustache integration (using request body and rest_total_hits_as_int)", "remove JodaCompatibleDateTime -- ZonedDateTime doesn't output millis/nanos if they're 0 (#78417)") - task.skipTest("mustache/30_search_input/Test search input mustache integration (using request body)", "remove JodaCompatibleDateTime -- ZonedDateTime doesn't output millis/nanos if they're 0 (#78417)") - task.skipTest("mustache/40_search_transform/Test search transform mustache integration (using request body)", "remove JodaCompatibleDateTime -- ZonedDateTime doesn't output millis/nanos if they're 0 (#78417)") - task.skipTest("painless/40_exception/Test painless exceptions are returned when logging a broken response", "Exceptions are no longer thrown from Mustache, but from the transform action itself") - task.replaceKeyInDo("watcher.ack_watch", "xpack-watcher.ack_watch") - task.replaceKeyInDo("watcher.activate_watch", "xpack-watcher.activate_watch") - task.replaceKeyInDo("watcher.deactivate_watch", "xpack-watcher.deactivate_watch") - task.replaceKeyInDo("watcher.delete_watch", "xpack-watcher.delete_watch") - task.replaceKeyInDo("watcher.execute_watch", "xpack-watcher.execute_watch") - task.replaceKeyInDo("watcher.get_watch", "xpack-watcher.get_watch") - task.replaceKeyInDo("watcher.put_watch", "xpack-watcher.put_watch") - task.replaceKeyInDo("watcher.start", "xpack-watcher.start") - task.replaceKeyInDo("watcher.stats", "xpack-watcher.stats") - task.replaceKeyInDo("watcher.stop", "xpack-watcher.stop") - - task.addAllowedWarningRegex(".*_xpack/watcher/.* is deprecated.*") - task.addAllowedWarningRegex("\\[types removal\\].*") - task.replaceValueTextByKeyValue("path", "/my_index/my_type/{{ctx.watch_id}}", "/my_index/_doc/{{ctx.watch_id}}", - "Test webhook action with mustache integration") -} From abefa06158637d088335ab2612ebc541f6b4718b Mon Sep 17 00:00:00 2001 From: Mark Vieira Date: Thu, 5 Sep 2024 09:15:56 -0700 Subject: [PATCH 17/34] Remove compat test config --- modules/repository-url/build.gradle | 5 ----- 1 file changed, 5 deletions(-) diff --git a/modules/repository-url/build.gradle b/modules/repository-url/build.gradle index 3fe2f9d9bae42..3537d430e212b 100644 --- a/modules/repository-url/build.gradle +++ b/modules/repository-url/build.gradle @@ -33,11 +33,6 @@ dependencies { internalClusterTestImplementation project(':test:fixtures:url-fixture') } -tasks.named("yamlRestTestV7CompatTransform").configure { task -> - task.skipTest("repository_url/10_basic/Restore with repository-url using file://", "Error message has changed") - task.skipTest("repository_url/10_basic/Restore with repository-url using http://", "Error message has changed") -} - tasks.named("thirdPartyAudit").configure { ignoreMissingClasses( 'javax.servlet.ServletContextEvent', From bfcd0577f4aa46173b4e7b0a05db8edb71a36ad7 Mon Sep 17 00:00:00 2001 From: Mark Vieira Date: Thu, 5 Sep 2024 10:48:01 -0700 Subject: [PATCH 18/34] Mute some tests that need to be updated for 9.0 --- .../FieldCapabilitiesNodeResponseTests.java | 48 ---------- .../FieldCapabilitiesResponseTests.java | 47 ---------- .../CompatibleNamedXContentRegistryTests.java | 3 + .../env/NodeEnvironmentTests.java | 5 ++ .../elasticsearch/env/NodeMetadataTests.java | 3 + .../RestCompatibleVersionHelperTests.java | 3 + .../src/main/resources/enrich.csv-spec | 2 +- .../src/main/resources/stats.csv-spec | 2 +- ...tyImplicitBehaviorBootstrapCheckTests.java | 87 ++----------------- 9 files changed, 21 insertions(+), 179 deletions(-) diff --git a/server/src/test/java/org/elasticsearch/action/fieldcaps/FieldCapabilitiesNodeResponseTests.java b/server/src/test/java/org/elasticsearch/action/fieldcaps/FieldCapabilitiesNodeResponseTests.java index c39cc6ebfd665..4edc6ce589486 100644 --- a/server/src/test/java/org/elasticsearch/action/fieldcaps/FieldCapabilitiesNodeResponseTests.java +++ b/server/src/test/java/org/elasticsearch/action/fieldcaps/FieldCapabilitiesNodeResponseTests.java @@ -10,10 +10,8 @@ import org.elasticsearch.TransportVersion; import org.elasticsearch.TransportVersions; -import org.elasticsearch.Version; import org.elasticsearch.common.Randomness; import org.elasticsearch.common.UUIDs; -import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.Writeable; import org.elasticsearch.common.util.CollectionUtils; import org.elasticsearch.index.IndexMode; @@ -23,7 +21,6 @@ import java.io.IOException; import java.util.ArrayList; -import java.util.Base64; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; @@ -37,8 +34,6 @@ import static org.elasticsearch.action.fieldcaps.FieldCapabilitiesIndexResponseTests.randomIndexResponsesWithMappingHash; import static org.elasticsearch.action.fieldcaps.FieldCapabilitiesIndexResponseTests.randomIndexResponsesWithoutMappingHash; import static org.elasticsearch.action.fieldcaps.FieldCapabilitiesIndexResponseTests.randomMappingHashToIndices; -import static org.hamcrest.Matchers.anEmptyMap; -import static org.hamcrest.Matchers.contains; import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.hasSize; import static org.hamcrest.Matchers.nullValue; @@ -191,49 +186,6 @@ public void testSerializeNodeResponseBetweenOldNodes() throws IOException { } } - public void testReadNodeResponseFromPre82() throws Exception { - final Version minCompactVersion = Version.CURRENT.minimumCompatibilityVersion(); - assertTrue("Remove this test once minCompactVersion >= 8.2.0", minCompactVersion.before(Version.V_8_2_0)); - String base64 = "AwhpbmRleF8wMQIKYmx1ZV9maWVsZApibHVlX2ZpZWxkBGxvbmcAAQEAAAAJcmVkX2ZpZWxkCXJlZF9maWVsZAR0ZXh0AAEAAAAAAQhpbm" - + "RleF8wMgAACGluZGV4XzAzAgdfc2VxX25vB19zZXFfbm8EbG9uZwEBAQAAAAx5ZWxsb3dfZmllbGQMeWVsbG93X2ZpZWxkB2tleXdvcmQAAQEAAAABAAEI" - + "aW5kZXhfMTAGdXVpZF9hAQ=="; - StreamInput in = StreamInput.wrap(Base64.getDecoder().decode(base64)); - in.setTransportVersion(TransportVersions.V_8_1_0); - FieldCapabilitiesNodeResponse nodeResp = new FieldCapabilitiesNodeResponse(in); - assertThat(nodeResp.getUnmatchedShardIds(), equalTo(Set.of(new ShardId("index_10", "uuid_a", 1)))); - assertThat(nodeResp.getFailures(), anEmptyMap()); - assertThat( - nodeResp.getIndexResponses(), - contains( - new FieldCapabilitiesIndexResponse( - "index_01", - null, - Map.of( - "red_field", - new IndexFieldCapabilities("red_field", "text", false, true, false, false, null, Map.of()), - "blue_field", - new IndexFieldCapabilities("blue_field", "long", false, true, true, false, null, Map.of()) - ), - true, - IndexMode.STANDARD - ), - new FieldCapabilitiesIndexResponse("index_02", null, Map.of(), false, IndexMode.STANDARD), - new FieldCapabilitiesIndexResponse( - "index_03", - null, - Map.of( - "yellow_field", - new IndexFieldCapabilities("yellow_field", "keyword", false, true, true, false, null, Map.of()), - "_seq_no", - new IndexFieldCapabilities("_seq_no", "long", true, true, true, false, null, Map.of()) - ), - true, - IndexMode.STANDARD - ) - ) - ); - } - private static FieldCapabilitiesNodeResponse randomNodeResponse(List indexResponses) { int numUnmatched = randomIntBetween(0, 3); final Set unmatchedShardIds = new HashSet<>(); diff --git a/server/src/test/java/org/elasticsearch/action/fieldcaps/FieldCapabilitiesResponseTests.java b/server/src/test/java/org/elasticsearch/action/fieldcaps/FieldCapabilitiesResponseTests.java index cc4d4de1e0f39..bdeef56eca89b 100644 --- a/server/src/test/java/org/elasticsearch/action/fieldcaps/FieldCapabilitiesResponseTests.java +++ b/server/src/test/java/org/elasticsearch/action/fieldcaps/FieldCapabilitiesResponseTests.java @@ -11,10 +11,8 @@ import org.elasticsearch.ElasticsearchExceptionTests; import org.elasticsearch.TransportVersion; import org.elasticsearch.TransportVersions; -import org.elasticsearch.Version; import org.elasticsearch.common.Randomness; import org.elasticsearch.common.bytes.BytesReference; -import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.Writeable; import org.elasticsearch.common.util.CollectionUtils; import org.elasticsearch.common.xcontent.ChunkedToXContent; @@ -29,7 +27,6 @@ import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; -import java.util.Base64; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; @@ -40,8 +37,6 @@ import static org.elasticsearch.action.fieldcaps.FieldCapabilitiesIndexResponseTests.randomIndexResponsesWithMappingHash; import static org.elasticsearch.action.fieldcaps.FieldCapabilitiesIndexResponseTests.randomIndexResponsesWithoutMappingHash; import static org.elasticsearch.action.fieldcaps.FieldCapabilitiesIndexResponseTests.randomMappingHashToIndices; -import static org.hamcrest.Matchers.contains; -import static org.hamcrest.Matchers.empty; import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.hasSize; import static org.hamcrest.Matchers.nullValue; @@ -246,46 +241,4 @@ public void testSerializeCCSResponseBetweenOldClusters() throws IOException { } } } - - public void testReadCCSResponseFromPre82() throws Exception { - final Version minCompactVersion = Version.CURRENT.minimumCompatibilityVersion(); - assertTrue("Remove this test once minCompactVersion >= 8.2.0", minCompactVersion.before(Version.V_8_2_0)); - String base64 = "AAADCGluZGV4XzAxAgpibHVlX2ZpZWxkCmJsdWVfZmllbGQEbG9uZwABAQAAAAlyZWRfZmllbGQJcmVkX2ZpZWxkBHRleHQAAQAAAAABC" - + "GluZGV4XzAyAAAIaW5kZXhfMDMCDHllbGxvd19maWVsZAx5ZWxsb3dfZmllbGQHa2V5d29yZAABAQAAAAdfc2VxX25vB19zZXFfbm8EbG9uZwEBAQAAAA" - + "EAAAAAAAAAAAA="; - StreamInput in = StreamInput.wrap(Base64.getDecoder().decode(base64)); - in.setTransportVersion(TransportVersions.V_8_1_0); - FieldCapabilitiesResponse nodeResp = new FieldCapabilitiesResponse(in); - assertThat(nodeResp.getFailures(), empty()); - assertThat( - nodeResp.getIndexResponses(), - contains( - new FieldCapabilitiesIndexResponse( - "index_01", - null, - Map.of( - "red_field", - new IndexFieldCapabilities("red_field", "text", false, true, false, false, null, Map.of()), - "blue_field", - new IndexFieldCapabilities("blue_field", "long", false, true, true, false, null, Map.of()) - ), - true, - IndexMode.STANDARD - ), - new FieldCapabilitiesIndexResponse("index_02", null, Map.of(), false, IndexMode.STANDARD), - new FieldCapabilitiesIndexResponse( - "index_03", - null, - Map.of( - "yellow_field", - new IndexFieldCapabilities("yellow_field", "keyword", false, true, true, false, null, Map.of()), - "_seq_no", - new IndexFieldCapabilities("_seq_no", "long", true, true, true, false, null, Map.of()) - ), - true, - IndexMode.STANDARD - ) - ) - ); - } } diff --git a/server/src/test/java/org/elasticsearch/common/xcontent/CompatibleNamedXContentRegistryTests.java b/server/src/test/java/org/elasticsearch/common/xcontent/CompatibleNamedXContentRegistryTests.java index aa62553447db0..47da6f8cdc0f8 100644 --- a/server/src/test/java/org/elasticsearch/common/xcontent/CompatibleNamedXContentRegistryTests.java +++ b/server/src/test/java/org/elasticsearch/common/xcontent/CompatibleNamedXContentRegistryTests.java @@ -11,6 +11,7 @@ import org.elasticsearch.Version; import org.elasticsearch.common.bytes.BytesReference; import org.elasticsearch.core.RestApiVersion; +import org.elasticsearch.core.UpdateForV9; import org.elasticsearch.rest.RestRequest; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.rest.FakeRestRequest; @@ -114,6 +115,8 @@ public static NewSubObject parse(XContentParser parser) { } } + @UpdateForV9 + @AwaitsFix(bugUrl = "this can be re-enabled once our rest api version is bumped to V_9") public void testNotCompatibleRequest() throws IOException { NamedXContentRegistry registry = new NamedXContentRegistry( List.of( diff --git a/server/src/test/java/org/elasticsearch/env/NodeEnvironmentTests.java b/server/src/test/java/org/elasticsearch/env/NodeEnvironmentTests.java index adab51a37d2bf..b7dea50ee4386 100644 --- a/server/src/test/java/org/elasticsearch/env/NodeEnvironmentTests.java +++ b/server/src/test/java/org/elasticsearch/env/NodeEnvironmentTests.java @@ -29,6 +29,7 @@ import org.elasticsearch.core.IOUtils; import org.elasticsearch.core.PathUtils; import org.elasticsearch.core.SuppressForbidden; +import org.elasticsearch.core.UpdateForV9; import org.elasticsearch.gateway.MetadataStateFormat; import org.elasticsearch.gateway.PersistedClusterStateService; import org.elasticsearch.index.Index; @@ -537,6 +538,8 @@ public void testBlocksDowngradeToVersionWithMultipleNodesInDataPath() throws IOE } } + @UpdateForV9 + @AwaitsFix(bugUrl = "test won't work until we remove and bump minimum index versions") public void testIndexCompatibilityChecks() throws IOException { final Settings settings = buildEnvSettings(Settings.EMPTY); @@ -634,6 +637,8 @@ public void testSymlinkDataDirectory() throws Exception { env.close(); } + @UpdateForV9 + @AwaitsFix(bugUrl = "test won't work until we remove and bump minimum index versions") public void testGetBestDowngradeVersion() { assertThat(NodeEnvironment.getBestDowngradeVersion("7.17.0"), Matchers.equalTo("7.17.0")); assertThat(NodeEnvironment.getBestDowngradeVersion("7.17.5"), Matchers.equalTo("7.17.5")); diff --git a/server/src/test/java/org/elasticsearch/env/NodeMetadataTests.java b/server/src/test/java/org/elasticsearch/env/NodeMetadataTests.java index f60812977d578..9b946de5a4592 100644 --- a/server/src/test/java/org/elasticsearch/env/NodeMetadataTests.java +++ b/server/src/test/java/org/elasticsearch/env/NodeMetadataTests.java @@ -10,6 +10,7 @@ import org.elasticsearch.Build; import org.elasticsearch.Version; import org.elasticsearch.core.Tuple; +import org.elasticsearch.core.UpdateForV9; import org.elasticsearch.gateway.MetadataStateFormat; import org.elasticsearch.index.IndexVersion; import org.elasticsearch.index.IndexVersions; @@ -151,6 +152,8 @@ public void testDoesNotUpgradeAncientVersion() { ); } + @UpdateForV9 + @AwaitsFix(bugUrl = "Needs to be updated for 9.0 version bump") public void testUpgradeMarksPreviousVersion() { final String nodeId = randomAlphaOfLength(10); final Version version = VersionUtils.randomVersionBetween(random(), Version.CURRENT.minimumCompatibilityVersion(), Version.V_8_0_0); diff --git a/server/src/test/java/org/elasticsearch/rest/RestCompatibleVersionHelperTests.java b/server/src/test/java/org/elasticsearch/rest/RestCompatibleVersionHelperTests.java index acefa2958ea0a..796a16c00da58 100644 --- a/server/src/test/java/org/elasticsearch/rest/RestCompatibleVersionHelperTests.java +++ b/server/src/test/java/org/elasticsearch/rest/RestCompatibleVersionHelperTests.java @@ -9,6 +9,7 @@ import org.elasticsearch.ElasticsearchStatusException; import org.elasticsearch.core.RestApiVersion; +import org.elasticsearch.core.UpdateForV9; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.xcontent.ParsedMediaType; import org.hamcrest.CustomTypeSafeMatcher; @@ -163,6 +164,8 @@ public void testAcceptAndContentTypeCombinations() { assertThat(requestWith(acceptHeader(null), contentTypeHeader("application/json"), bodyPresent()), not(isCompatible())); } + @UpdateForV9 + @AwaitsFix(bugUrl = "this can be re-enabled once our rest api version is bumped to V_9") public void testObsoleteVersion() { ElasticsearchStatusException e = expectThrows( ElasticsearchStatusException.class, diff --git a/x-pack/plugin/esql/qa/testFixtures/src/main/resources/enrich.csv-spec b/x-pack/plugin/esql/qa/testFixtures/src/main/resources/enrich.csv-spec index 925c08f317125..fed60a35fa7e6 100644 --- a/x-pack/plugin/esql/qa/testFixtures/src/main/resources/enrich.csv-spec +++ b/x-pack/plugin/esql/qa/testFixtures/src/main/resources/enrich.csv-spec @@ -468,7 +468,7 @@ client_ip:ip | count_env:i | max_env:keyword ; -enrichCidr2#[skip:-8.99.99, reason:ip_range support not added yet] +enrichCidr2#[skip:-9.99.99, reason:ip_range support not added yet] required_capability: enrich_load FROM sample_data diff --git a/x-pack/plugin/esql/qa/testFixtures/src/main/resources/stats.csv-spec b/x-pack/plugin/esql/qa/testFixtures/src/main/resources/stats.csv-spec index 02a2cac0513c0..d59dda273ed6e 100644 --- a/x-pack/plugin/esql/qa/testFixtures/src/main/resources/stats.csv-spec +++ b/x-pack/plugin/esql/qa/testFixtures/src/main/resources/stats.csv-spec @@ -1314,7 +1314,7 @@ COUNT(c):long | a:integer 0 | 1 ; -countDistinctNull#[skip:-8.99.99,reason:not yet fixed] +countDistinctNull#[skip:-9.99.99,reason:not yet fixed] ROW a = 1, c = null | STATS COUNT_DISTINCT(c) BY a; diff --git a/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/SecurityImplicitBehaviorBootstrapCheckTests.java b/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/SecurityImplicitBehaviorBootstrapCheckTests.java index 6777c38b809e0..01715cde33cf0 100644 --- a/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/SecurityImplicitBehaviorBootstrapCheckTests.java +++ b/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/SecurityImplicitBehaviorBootstrapCheckTests.java @@ -10,9 +10,9 @@ import org.elasticsearch.Version; import org.elasticsearch.bootstrap.BootstrapCheck; import org.elasticsearch.cluster.metadata.Metadata; -import org.elasticsearch.common.ReferenceDocs; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.core.TimeValue; +import org.elasticsearch.core.UpdateForV9; import org.elasticsearch.env.BuildVersion; import org.elasticsearch.env.NodeMetadata; import org.elasticsearch.index.IndexVersion; @@ -25,92 +25,13 @@ import org.elasticsearch.test.VersionUtils; import org.elasticsearch.xpack.core.XPackSettings; -import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.is; import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; public class SecurityImplicitBehaviorBootstrapCheckTests extends AbstractBootstrapCheckTestCase { - public void testFailureUpgradeFrom7xWithImplicitSecuritySettings() throws Exception { - final BuildVersion previousVersion = toBuildVersion( - randomValueOtherThan( - Version.V_8_0_0, - () -> VersionUtils.randomVersionBetween(random(), Version.CURRENT.minimumCompatibilityVersion(), Version.V_8_0_0) - ) - ); - NodeMetadata nodeMetadata = new NodeMetadata(randomAlphaOfLength(10), previousVersion, IndexVersion.current()); - nodeMetadata = nodeMetadata.upgradeToCurrentVersion(); - ClusterStateLicenseService licenseService = mock(ClusterStateLicenseService.class); - Metadata metadata = createLicensesMetadata( - TrialLicenseVersion.fromXContent(previousVersion.toString()), - randomFrom("basic", "trial") - ); - License license = mock(License.class); - when(licenseService.getLicense(metadata)).thenReturn(license); - when(license.operationMode()).thenReturn(randomFrom(License.OperationMode.BASIC, License.OperationMode.TRIAL)); - BootstrapCheck.BootstrapCheckResult result = new SecurityImplicitBehaviorBootstrapCheck(nodeMetadata, licenseService).check( - createTestContext(Settings.EMPTY, metadata) - ); - assertThat(result.isFailure(), is(true)); - assertThat( - result.getMessage(), - equalTo( - "The default value for [" - + XPackSettings.SECURITY_ENABLED.getKey() - + "] has changed in the current version. " - + " Security features were implicitly disabled for this node but they would now be enabled, possibly" - + " preventing access to the node. " - + "See " - + ReferenceDocs.BOOTSTRAP_CHECK_SECURITY_MINIMAL_SETUP - + " to configure security, or explicitly disable security by " - + "setting [xpack.security.enabled] to \"false\" in elasticsearch.yml before restarting the node." - ) - ); - } - - public void testUpgradeFrom7xWithImplicitSecuritySettingsOnGoldPlus() throws Exception { - final BuildVersion previousVersion = toBuildVersion( - randomValueOtherThan( - Version.V_8_0_0, - () -> VersionUtils.randomVersionBetween(random(), Version.CURRENT.minimumCompatibilityVersion(), Version.V_8_0_0) - ) - ); - NodeMetadata nodeMetadata = new NodeMetadata(randomAlphaOfLength(10), previousVersion, IndexVersion.current()); - nodeMetadata = nodeMetadata.upgradeToCurrentVersion(); - ClusterStateLicenseService licenseService = mock(ClusterStateLicenseService.class); - Metadata metadata = createLicensesMetadata( - TrialLicenseVersion.fromXContent(previousVersion.toString()), - randomFrom("gold", "platinum") - ); - License license = mock(License.class); - when(licenseService.getLicense(metadata)).thenReturn(license); - when(license.operationMode()).thenReturn(randomFrom(License.OperationMode.GOLD, License.OperationMode.PLATINUM)); - BootstrapCheck.BootstrapCheckResult result = new SecurityImplicitBehaviorBootstrapCheck(nodeMetadata, licenseService).check( - createTestContext(Settings.EMPTY, metadata) - ); - assertThat(result.isSuccess(), is(true)); - } - - public void testUpgradeFrom7xWithExplicitSecuritySettings() throws Exception { - final BuildVersion previousVersion = toBuildVersion( - randomValueOtherThan( - Version.V_8_0_0, - () -> VersionUtils.randomVersionBetween(random(), Version.CURRENT.minimumCompatibilityVersion(), Version.V_8_0_0) - ) - ); - NodeMetadata nodeMetadata = new NodeMetadata(randomAlphaOfLength(10), previousVersion, IndexVersion.current()); - nodeMetadata = nodeMetadata.upgradeToCurrentVersion(); - ClusterStateLicenseService licenseService = mock(ClusterStateLicenseService.class); - BootstrapCheck.BootstrapCheckResult result = new SecurityImplicitBehaviorBootstrapCheck(nodeMetadata, licenseService).check( - createTestContext( - Settings.builder().put(XPackSettings.SECURITY_ENABLED.getKey(), true).build(), - createLicensesMetadata(TrialLicenseVersion.fromXContent(previousVersion.toString()), randomFrom("basic", "trial")) - ) - ); - assertThat(result.isSuccess(), is(true)); - } - + @UpdateForV9 + @AwaitsFix(bugUrl = "requires updates for version 9.0 bump") public void testUpgradeFrom8xWithImplicitSecuritySettings() throws Exception { final BuildVersion previousVersion = toBuildVersion(VersionUtils.randomVersionBetween(random(), Version.V_8_0_0, null)); NodeMetadata nodeMetadata = new NodeMetadata(randomAlphaOfLength(10), previousVersion, IndexVersion.current()); @@ -125,6 +46,8 @@ public void testUpgradeFrom8xWithImplicitSecuritySettings() throws Exception { assertThat(result.isSuccess(), is(true)); } + @UpdateForV9 + @AwaitsFix(bugUrl = "requires updates for version 9.0 bump") public void testUpgradeFrom8xWithExplicitSecuritySettings() throws Exception { final BuildVersion previousVersion = toBuildVersion(VersionUtils.randomVersionBetween(random(), Version.V_8_0_0, null)); NodeMetadata nodeMetadata = new NodeMetadata(randomAlphaOfLength(10), previousVersion, IndexVersion.current()); From 097e52fb275f35ea8d969ca81c814cc9d898b41f Mon Sep 17 00:00:00 2001 From: Mark Vieira Date: Thu, 5 Sep 2024 11:57:59 -0700 Subject: [PATCH 19/34] Bump minimum compatible index version --- server/src/main/java/org/elasticsearch/index/IndexVersions.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/src/main/java/org/elasticsearch/index/IndexVersions.java b/server/src/main/java/org/elasticsearch/index/IndexVersions.java index 771b604bc2098..572f0d8bc9b48 100644 --- a/server/src/main/java/org/elasticsearch/index/IndexVersions.java +++ b/server/src/main/java/org/elasticsearch/index/IndexVersions.java @@ -168,7 +168,7 @@ private static IndexVersion def(int id, Version luceneVersion) { @UpdateForV9 // This needs to be bumped to V8_0_0 and all old references removed - public static final IndexVersion MINIMUM_COMPATIBLE = V_7_0_0; + public static final IndexVersion MINIMUM_COMPATIBLE = V_8_0_0; static final NavigableMap VERSION_IDS = getAllVersionIds(IndexVersions.class); static final IndexVersion LATEST_DEFINED; From ee3d58b55993df02e106a5f32f2c2a33d1936da7 Mon Sep 17 00:00:00 2001 From: Mark Vieira Date: Thu, 5 Sep 2024 11:58:38 -0700 Subject: [PATCH 20/34] Update pipelines --- .buildkite/pipelines/intake.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.buildkite/pipelines/intake.yml b/.buildkite/pipelines/intake.yml index ab5e7084fcf3e..2e313de181bcb 100644 --- a/.buildkite/pipelines/intake.yml +++ b/.buildkite/pipelines/intake.yml @@ -84,6 +84,7 @@ steps: - trigger: elasticsearch-dra-workflow label: Trigger DRA snapshot workflow async: true + skip: "don't try to publish for this test branch" build: branch: "$BUILDKITE_BRANCH" commit: "$BUILDKITE_COMMIT" From c6fa8d35d1d995505d6321bdea2f28eb35c94800 Mon Sep 17 00:00:00 2001 From: Mark Vieira Date: Thu, 5 Sep 2024 12:25:51 -0700 Subject: [PATCH 21/34] Bump versions for 8.15.1 release --- .buildkite/pipelines/intake.yml | 2 +- .buildkite/pipelines/periodic.yml | 10 +++++----- .ci/snapshotBwcVersions | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.buildkite/pipelines/intake.yml b/.buildkite/pipelines/intake.yml index 2e313de181bcb..2435fffa8ee30 100644 --- a/.buildkite/pipelines/intake.yml +++ b/.buildkite/pipelines/intake.yml @@ -62,7 +62,7 @@ steps: timeout_in_minutes: 300 matrix: setup: - BWC_VERSION: ["8.15.1", "8.16.0", "9.0.0"] + BWC_VERSION: ["8.15.2", "8.16.0", "9.0.0"] agents: provider: gcp image: family/elasticsearch-ubuntu-2004 diff --git a/.buildkite/pipelines/periodic.yml b/.buildkite/pipelines/periodic.yml index 81378b920f3c2..5f75b7f1a2ef4 100644 --- a/.buildkite/pipelines/periodic.yml +++ b/.buildkite/pipelines/periodic.yml @@ -302,8 +302,8 @@ steps: - signal_reason: agent_stop limit: 3 - - label: 8.15.1 / bwc - command: .ci/scripts/run-gradle.sh -Dbwc.checkout.align=true v8.15.1#bwcTest + - label: 8.15.2 / bwc + command: .ci/scripts/run-gradle.sh -Dbwc.checkout.align=true v8.15.2#bwcTest timeout_in_minutes: 300 agents: provider: gcp @@ -313,7 +313,7 @@ steps: preemptible: true diskSizeGb: 250 env: - BWC_VERSION: 8.15.1 + BWC_VERSION: 8.15.2 retry: automatic: - exit_status: "-1" @@ -431,7 +431,7 @@ steps: setup: ES_RUNTIME_JAVA: - openjdk17 - BWC_VERSION: ["8.15.1", "8.16.0", "9.0.0"] + BWC_VERSION: ["8.15.2", "8.16.0", "9.0.0"] agents: provider: gcp image: family/elasticsearch-ubuntu-2004 @@ -481,7 +481,7 @@ steps: - openjdk21 - openjdk22 - openjdk23 - BWC_VERSION: ["8.15.1", "8.16.0", "9.0.0"] + BWC_VERSION: ["8.15.2", "8.16.0", "9.0.0"] agents: provider: gcp image: family/elasticsearch-ubuntu-2004 diff --git a/.ci/snapshotBwcVersions b/.ci/snapshotBwcVersions index 0dac06e1b63f6..a2f1e0c675ea5 100644 --- a/.ci/snapshotBwcVersions +++ b/.ci/snapshotBwcVersions @@ -1,4 +1,4 @@ BWC_VERSION: - - "8.15.1" + - "8.15.2" - "8.16.0" - "9.0.0" From aa40d4842222e100fa2b31219cd5e6d4314e2d6f Mon Sep 17 00:00:00 2001 From: Mark Vieira Date: Thu, 5 Sep 2024 15:05:08 -0700 Subject: [PATCH 22/34] Remove (or mute) all test references to pre 8.0 index versions --- .../common/CommonAnalysisPluginTests.java | 106 ------------------ .../common/EdgeNGramTokenizerTests.java | 61 +--------- .../common/SynonymsAnalysisTests.java | 6 +- ...DelimiterGraphTokenFilterFactoryTests.java | 71 +++--------- .../legacygeo/GeoJsonShapeParserTests.java | 3 + .../legacygeo/GeoWKTShapeParserTests.java | 7 ++ .../LegacyGeoShapeFieldMapperTests.java | 4 + .../mapper/LegacyGeoShapeFieldTypeTests.java | 4 + .../migration/MultiFeatureMigrationIT.java | 4 +- .../AnalysisPhoneticFactoryTests.java | 2 +- .../elasticsearch/upgrades/RecoveryIT.java | 8 +- .../mapping/MalformedDynamicTemplateIT.java | 3 + .../repositories/IndexSnapshotsServiceIT.java | 5 +- .../cluster/stats/VersionStatsTests.java | 16 ++- .../MetadataCreateIndexServiceTests.java | 3 + .../cluster/metadata/MetadataTests.java | 20 +++- .../elasticsearch/env/NodeMetadataTests.java | 2 + .../index/IndexSortSettingsTests.java | 14 --- .../index/IndexVersionTests.java | 47 ++++---- .../index/engine/InternalEngineTests.java | 11 +- .../index/mapper/DateFieldMapperTests.java | 54 --------- .../index/mapper/DynamicTemplatesTests.java | 95 +++------------- .../mapper/FieldNamesFieldMapperTests.java | 37 ------ .../index/mapper/IpFieldMapperTests.java | 7 -- .../index/mapper/TypeParsersTests.java | 29 ----- ...BinaryDenseVectorScriptDocValuesTests.java | 4 +- .../vectors/DenseVectorFieldMapperTests.java | 18 --- .../vectors/SparseVectorFieldMapperTests.java | 42 ------- .../vectors/VectorEncoderDecoderTests.java | 3 +- .../similarity/SimilarityServiceTests.java | 6 +- .../indices/IndicesModuleTests.java | 3 + .../indices/analysis/AnalysisModuleTests.java | 29 ----- .../script/VectorScoreScriptUtilsTests.java | 16 ++- .../field/vectors/DenseVectorTests.java | 2 +- .../index/mapper/MapperTestCase.java | 16 --- .../index/mapper/MetadataMapperTestCase.java | 6 +- .../AbstractSnapshotIntegTestCase.java | 5 +- .../action/AutoFollowCoordinatorTests.java | 3 + .../IndexDeprecationChecksTests.java | 2 +- ...bleSnapshotIndexMetadataUpgraderTests.java | 4 + .../SnapshotsRecoveryPlannerServiceTests.java | 5 + ...BoxQueryLegacyGeoShapeWithDocValuesIT.java | 4 + .../search/LegacyGeoShapeWithDocValuesIT.java | 4 + ...GeoShapeWithDocValuesFieldMapperTests.java | 13 +-- .../index/mapper/ShapeFieldMapperTests.java | 2 +- .../GeoShapeQueryBuilderGeoShapeTests.java | 24 +--- ...LegacyGeoShapeWithDocValuesQueryTests.java | 4 + .../ShapeQueryBuilderOverShapeTests.java | 15 +-- .../mapper/WildcardFieldMapperTests.java | 36 ------ 49 files changed, 205 insertions(+), 680 deletions(-) diff --git a/modules/analysis-common/src/test/java/org/elasticsearch/analysis/common/CommonAnalysisPluginTests.java b/modules/analysis-common/src/test/java/org/elasticsearch/analysis/common/CommonAnalysisPluginTests.java index c18cb3dddf0ae..4c8e88a0cedbf 100644 --- a/modules/analysis-common/src/test/java/org/elasticsearch/analysis/common/CommonAnalysisPluginTests.java +++ b/modules/analysis-common/src/test/java/org/elasticsearch/analysis/common/CommonAnalysisPluginTests.java @@ -52,25 +52,6 @@ public void testNGramFilterInCustomAnalyzerDeprecationError() throws IOException ex.getMessage() ); } - - final Settings settingsPre7 = Settings.builder() - .put(Environment.PATH_HOME_SETTING.getKey(), createTempDir()) - .put( - IndexMetadata.SETTING_VERSION_CREATED, - IndexVersionUtils.randomVersionBetween(random(), IndexVersions.V_7_0_0, IndexVersions.V_7_6_0) - ) - .put("index.analysis.analyzer.custom_analyzer.type", "custom") - .put("index.analysis.analyzer.custom_analyzer.tokenizer", "standard") - .putList("index.analysis.analyzer.custom_analyzer.filter", "my_ngram") - .put("index.analysis.filter.my_ngram.type", "nGram") - .build(); - try (CommonAnalysisPlugin commonAnalysisPlugin = new CommonAnalysisPlugin()) { - createTestAnalysis(IndexSettingsModule.newIndexSettings("index", settingsPre7), settingsPre7, commonAnalysisPlugin); - assertWarnings( - "The [nGram] token filter name is deprecated and will be removed in a future version. " - + "Please change the filter name to [ngram] instead." - ); - } } /** @@ -101,26 +82,6 @@ public void testEdgeNGramFilterInCustomAnalyzerDeprecationError() throws IOExcep ex.getMessage() ); } - - final Settings settingsPre7 = Settings.builder() - .put(Environment.PATH_HOME_SETTING.getKey(), createTempDir()) - .put( - IndexMetadata.SETTING_VERSION_CREATED, - IndexVersionUtils.randomVersionBetween(random(), IndexVersions.V_7_0_0, IndexVersions.V_7_6_0) - ) - .put("index.analysis.analyzer.custom_analyzer.type", "custom") - .put("index.analysis.analyzer.custom_analyzer.tokenizer", "standard") - .putList("index.analysis.analyzer.custom_analyzer.filter", "my_ngram") - .put("index.analysis.filter.my_ngram.type", "edgeNGram") - .build(); - - try (CommonAnalysisPlugin commonAnalysisPlugin = new CommonAnalysisPlugin()) { - createTestAnalysis(IndexSettingsModule.newIndexSettings("index", settingsPre7), settingsPre7, commonAnalysisPlugin); - assertWarnings( - "The [edgeNGram] token filter name is deprecated and will be removed in a future version. " - + "Please change the filter name to [edge_ngram] instead." - ); - } } /** @@ -128,39 +89,6 @@ public void testEdgeNGramFilterInCustomAnalyzerDeprecationError() throws IOExcep * disallow usages for indices created after 8.0 */ public void testNGramTokenizerDeprecation() throws IOException { - // tests for prebuilt tokenizer - doTestPrebuiltTokenizerDeprecation( - "nGram", - "ngram", - IndexVersionUtils.randomVersionBetween(random(), IndexVersions.V_7_0_0, IndexVersions.V_7_5_2), - false - ); - doTestPrebuiltTokenizerDeprecation( - "edgeNGram", - "edge_ngram", - IndexVersionUtils.randomVersionBetween(random(), IndexVersions.V_7_0_0, IndexVersions.V_7_5_2), - false - ); - doTestPrebuiltTokenizerDeprecation( - "nGram", - "ngram", - IndexVersionUtils.randomVersionBetween( - random(), - IndexVersions.V_7_6_0, - IndexVersion.max(IndexVersions.V_7_6_0, IndexVersionUtils.getPreviousVersion(IndexVersions.V_8_0_0)) - ), - true - ); - doTestPrebuiltTokenizerDeprecation( - "edgeNGram", - "edge_ngram", - IndexVersionUtils.randomVersionBetween( - random(), - IndexVersions.V_7_6_0, - IndexVersion.max(IndexVersions.V_7_6_0, IndexVersionUtils.getPreviousVersion(IndexVersions.V_8_0_0)) - ), - true - ); expectThrows( IllegalArgumentException.class, () -> doTestPrebuiltTokenizerDeprecation( @@ -179,40 +107,6 @@ public void testNGramTokenizerDeprecation() throws IOException { true ) ); - - // same batch of tests for custom tokenizer definition in the settings - doTestCustomTokenizerDeprecation( - "nGram", - "ngram", - IndexVersionUtils.randomVersionBetween(random(), IndexVersions.V_7_0_0, IndexVersions.V_7_5_2), - false - ); - doTestCustomTokenizerDeprecation( - "edgeNGram", - "edge_ngram", - IndexVersionUtils.randomVersionBetween(random(), IndexVersions.V_7_0_0, IndexVersions.V_7_5_2), - false - ); - doTestCustomTokenizerDeprecation( - "nGram", - "ngram", - IndexVersionUtils.randomVersionBetween( - random(), - IndexVersions.V_7_6_0, - IndexVersion.max(IndexVersions.V_7_6_0, IndexVersionUtils.getPreviousVersion(IndexVersions.V_8_0_0)) - ), - true - ); - doTestCustomTokenizerDeprecation( - "edgeNGram", - "edge_ngram", - IndexVersionUtils.randomVersionBetween( - random(), - IndexVersions.V_7_6_0, - IndexVersion.max(IndexVersions.V_7_6_0, IndexVersionUtils.getPreviousVersion(IndexVersions.V_8_0_0)) - ), - true - ); expectThrows( IllegalArgumentException.class, () -> doTestCustomTokenizerDeprecation( diff --git a/modules/analysis-common/src/test/java/org/elasticsearch/analysis/common/EdgeNGramTokenizerTests.java b/modules/analysis-common/src/test/java/org/elasticsearch/analysis/common/EdgeNGramTokenizerTests.java index 412e3ba3e380a..48bc60b5ad0b4 100644 --- a/modules/analysis-common/src/test/java/org/elasticsearch/analysis/common/EdgeNGramTokenizerTests.java +++ b/modules/analysis-common/src/test/java/org/elasticsearch/analysis/common/EdgeNGramTokenizerTests.java @@ -17,14 +17,12 @@ import org.elasticsearch.index.IndexService.IndexCreationContext; import org.elasticsearch.index.IndexSettings; import org.elasticsearch.index.IndexVersion; -import org.elasticsearch.index.IndexVersions; import org.elasticsearch.index.analysis.IndexAnalyzers; import org.elasticsearch.index.analysis.NamedAnalyzer; import org.elasticsearch.indices.analysis.AnalysisModule; import org.elasticsearch.plugins.scanners.StablePluginsRegistry; import org.elasticsearch.test.ESTokenStreamTestCase; import org.elasticsearch.test.IndexSettingsModule; -import org.elasticsearch.test.index.IndexVersionUtils; import java.io.IOException; import java.io.StringReader; @@ -47,61 +45,10 @@ private IndexAnalyzers buildAnalyzers(IndexVersion version, String tokenizer) th } public void testPreConfiguredTokenizer() throws IOException { - - // Before 7.3 we return ngrams of length 1 only - { - IndexVersion version = IndexVersionUtils.randomVersionBetween( - random(), - IndexVersions.V_7_0_0, - IndexVersionUtils.getPreviousVersion(IndexVersions.V_7_3_0) - ); - try (IndexAnalyzers indexAnalyzers = buildAnalyzers(version, "edge_ngram")) { - NamedAnalyzer analyzer = indexAnalyzers.get("my_analyzer"); - assertNotNull(analyzer); - assertAnalyzesTo(analyzer, "test", new String[] { "t" }); - } - } - - // Check deprecated name as well - { - IndexVersion version = IndexVersionUtils.randomVersionBetween( - random(), - IndexVersions.V_7_0_0, - IndexVersionUtils.getPreviousVersion(IndexVersions.V_7_3_0) - ); - try (IndexAnalyzers indexAnalyzers = buildAnalyzers(version, "edgeNGram")) { - NamedAnalyzer analyzer = indexAnalyzers.get("my_analyzer"); - assertNotNull(analyzer); - assertAnalyzesTo(analyzer, "test", new String[] { "t" }); - } - } - - // Afterwards, we return ngrams of length 1 and 2, to match the default factory settings - { - try (IndexAnalyzers indexAnalyzers = buildAnalyzers(IndexVersion.current(), "edge_ngram")) { - NamedAnalyzer analyzer = indexAnalyzers.get("my_analyzer"); - assertNotNull(analyzer); - assertAnalyzesTo(analyzer, "test", new String[] { "t", "te" }); - } - } - - // Check deprecated name as well, needs version before 8.0 because throws IAE after that - { - try ( - IndexAnalyzers indexAnalyzers = buildAnalyzers( - IndexVersionUtils.randomVersionBetween( - random(), - IndexVersions.V_7_3_0, - IndexVersionUtils.getPreviousVersion(IndexVersions.V_8_0_0) - ), - "edgeNGram" - ) - ) { - NamedAnalyzer analyzer = indexAnalyzers.get("my_analyzer"); - assertNotNull(analyzer); - assertAnalyzesTo(analyzer, "test", new String[] { "t", "te" }); - - } + try (IndexAnalyzers indexAnalyzers = buildAnalyzers(IndexVersion.current(), "edge_ngram")) { + NamedAnalyzer analyzer = indexAnalyzers.get("my_analyzer"); + assertNotNull(analyzer); + assertAnalyzesTo(analyzer, "test", new String[] { "t", "te" }); } } diff --git a/modules/analysis-common/src/test/java/org/elasticsearch/analysis/common/SynonymsAnalysisTests.java b/modules/analysis-common/src/test/java/org/elasticsearch/analysis/common/SynonymsAnalysisTests.java index 7a2bd2a822988..16288c754e922 100644 --- a/modules/analysis-common/src/test/java/org/elasticsearch/analysis/common/SynonymsAnalysisTests.java +++ b/modules/analysis-common/src/test/java/org/elasticsearch/analysis/common/SynonymsAnalysisTests.java @@ -337,7 +337,7 @@ public void testShingleFilters() { Settings settings = Settings.builder() .put( IndexMetadata.SETTING_VERSION_CREATED, - IndexVersionUtils.randomVersionBetween(random(), IndexVersions.V_7_0_0, IndexVersion.current()) + IndexVersionUtils.randomVersionBetween(random(), IndexVersions.MINIMUM_COMPATIBLE, IndexVersion.current()) ) .put("path.home", createTempDir().toString()) .put("index.analysis.filter.synonyms.type", "synonym") @@ -391,7 +391,7 @@ public void testPreconfiguredTokenFilters() throws IOException { Settings settings = Settings.builder() .put( IndexMetadata.SETTING_VERSION_CREATED, - IndexVersionUtils.randomVersionBetween(random(), IndexVersions.V_7_0_0, IndexVersion.current()) + IndexVersionUtils.randomVersionBetween(random(), IndexVersions.MINIMUM_COMPATIBLE, IndexVersion.current()) ) .put("path.home", createTempDir().toString()) .build(); @@ -423,7 +423,7 @@ public void testDisallowedTokenFilters() throws IOException { Settings settings = Settings.builder() .put( IndexMetadata.SETTING_VERSION_CREATED, - IndexVersionUtils.randomVersionBetween(random(), IndexVersions.V_7_0_0, IndexVersion.current()) + IndexVersionUtils.randomVersionBetween(random(), IndexVersions.MINIMUM_COMPATIBLE, IndexVersion.current()) ) .put("path.home", createTempDir().toString()) .putList("common_words", "a", "b") diff --git a/modules/analysis-common/src/test/java/org/elasticsearch/analysis/common/WordDelimiterGraphTokenFilterFactoryTests.java b/modules/analysis-common/src/test/java/org/elasticsearch/analysis/common/WordDelimiterGraphTokenFilterFactoryTests.java index 68e6d6661f944..39fda06363033 100644 --- a/modules/analysis-common/src/test/java/org/elasticsearch/analysis/common/WordDelimiterGraphTokenFilterFactoryTests.java +++ b/modules/analysis-common/src/test/java/org/elasticsearch/analysis/common/WordDelimiterGraphTokenFilterFactoryTests.java @@ -16,7 +16,6 @@ import org.elasticsearch.index.IndexService.IndexCreationContext; import org.elasticsearch.index.IndexSettings; import org.elasticsearch.index.IndexVersion; -import org.elasticsearch.index.IndexVersions; import org.elasticsearch.index.analysis.AnalysisTestsHelper; import org.elasticsearch.index.analysis.IndexAnalyzers; import org.elasticsearch.index.analysis.NamedAnalyzer; @@ -25,7 +24,6 @@ import org.elasticsearch.plugins.scanners.StablePluginsRegistry; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.IndexSettingsModule; -import org.elasticsearch.test.index.IndexVersionUtils; import java.io.IOException; import java.io.StringReader; @@ -180,61 +178,26 @@ public void testIgnoreKeywords() throws IOException { } public void testPreconfiguredFilter() throws IOException { - // Before 7.3 we don't adjust offsets - { - Settings settings = Settings.builder().put(Environment.PATH_HOME_SETTING.getKey(), createTempDir().toString()).build(); - Settings indexSettings = Settings.builder() - .put( - IndexMetadata.SETTING_VERSION_CREATED, - IndexVersionUtils.randomVersionBetween( - random(), - IndexVersions.V_7_0_0, - IndexVersionUtils.getPreviousVersion(IndexVersions.V_7_3_0) - ) - ) - .put("index.analysis.analyzer.my_analyzer.tokenizer", "standard") - .putList("index.analysis.analyzer.my_analyzer.filter", "word_delimiter_graph") - .build(); - IndexSettings idxSettings = IndexSettingsModule.newIndexSettings("index", indexSettings); - - try ( - IndexAnalyzers indexAnalyzers = new AnalysisModule( - TestEnvironment.newEnvironment(settings), - Collections.singletonList(new CommonAnalysisPlugin()), - new StablePluginsRegistry() - ).getAnalysisRegistry().build(IndexCreationContext.CREATE_INDEX, idxSettings) - ) { - - NamedAnalyzer analyzer = indexAnalyzers.get("my_analyzer"); - assertNotNull(analyzer); - assertAnalyzesTo(analyzer, "h100", new String[] { "h", "100" }, new int[] { 0, 0 }, new int[] { 4, 4 }); - - } - } - - // Afger 7.3 we do adjust offsets - { - Settings settings = Settings.builder().put(Environment.PATH_HOME_SETTING.getKey(), createTempDir().toString()).build(); - Settings indexSettings = Settings.builder() - .put(IndexMetadata.SETTING_VERSION_CREATED, IndexVersion.current()) - .put("index.analysis.analyzer.my_analyzer.tokenizer", "standard") - .putList("index.analysis.analyzer.my_analyzer.filter", "word_delimiter_graph") - .build(); - IndexSettings idxSettings = IndexSettingsModule.newIndexSettings("index", indexSettings); + Settings settings = Settings.builder().put(Environment.PATH_HOME_SETTING.getKey(), createTempDir().toString()).build(); + Settings indexSettings = Settings.builder() + .put(IndexMetadata.SETTING_VERSION_CREATED, IndexVersion.current()) + .put("index.analysis.analyzer.my_analyzer.tokenizer", "standard") + .putList("index.analysis.analyzer.my_analyzer.filter", "word_delimiter_graph") + .build(); + IndexSettings idxSettings = IndexSettingsModule.newIndexSettings("index", indexSettings); - try ( - IndexAnalyzers indexAnalyzers = new AnalysisModule( - TestEnvironment.newEnvironment(settings), - Collections.singletonList(new CommonAnalysisPlugin()), - new StablePluginsRegistry() - ).getAnalysisRegistry().build(IndexCreationContext.CREATE_INDEX, idxSettings) - ) { + try ( + IndexAnalyzers indexAnalyzers = new AnalysisModule( + TestEnvironment.newEnvironment(settings), + Collections.singletonList(new CommonAnalysisPlugin()), + new StablePluginsRegistry() + ).getAnalysisRegistry().build(IndexCreationContext.CREATE_INDEX, idxSettings) + ) { - NamedAnalyzer analyzer = indexAnalyzers.get("my_analyzer"); - assertNotNull(analyzer); - assertAnalyzesTo(analyzer, "h100", new String[] { "h", "100" }, new int[] { 0, 1 }, new int[] { 1, 4 }); + NamedAnalyzer analyzer = indexAnalyzers.get("my_analyzer"); + assertNotNull(analyzer); + assertAnalyzesTo(analyzer, "h100", new String[] { "h", "100" }, new int[] { 0, 1 }, new int[] { 1, 4 }); - } } } } diff --git a/modules/legacy-geo/src/test/java/org/elasticsearch/legacygeo/GeoJsonShapeParserTests.java b/modules/legacy-geo/src/test/java/org/elasticsearch/legacygeo/GeoJsonShapeParserTests.java index 4fa1d7b7a3108..0e9d7ca5f15c8 100644 --- a/modules/legacy-geo/src/test/java/org/elasticsearch/legacygeo/GeoJsonShapeParserTests.java +++ b/modules/legacy-geo/src/test/java/org/elasticsearch/legacygeo/GeoJsonShapeParserTests.java @@ -14,6 +14,7 @@ import org.elasticsearch.common.geo.GeometryNormalizer; import org.elasticsearch.common.geo.GeometryParser; import org.elasticsearch.common.geo.Orientation; +import org.elasticsearch.core.UpdateForV9; import org.elasticsearch.geometry.Geometry; import org.elasticsearch.geometry.GeometryCollection; import org.elasticsearch.geometry.Line; @@ -342,6 +343,8 @@ public void testParsePolygon() throws IOException, ParseException { assertGeometryEquals(p, polygonGeoJson, false); } + @UpdateForV9 + @AwaitsFix(bugUrl = "this test is using pre 8.0.0 index versions so needs to be removed or updated") public void testParse3DPolygon() throws IOException, ParseException { XContentBuilder polygonGeoJson = XContentFactory.jsonBuilder() .startObject() diff --git a/modules/legacy-geo/src/test/java/org/elasticsearch/legacygeo/GeoWKTShapeParserTests.java b/modules/legacy-geo/src/test/java/org/elasticsearch/legacygeo/GeoWKTShapeParserTests.java index 6e8a61277cccf..74340e705b578 100644 --- a/modules/legacy-geo/src/test/java/org/elasticsearch/legacygeo/GeoWKTShapeParserTests.java +++ b/modules/legacy-geo/src/test/java/org/elasticsearch/legacygeo/GeoWKTShapeParserTests.java @@ -13,6 +13,7 @@ import org.elasticsearch.common.geo.GeoPoint; import org.elasticsearch.common.geo.GeometryNormalizer; import org.elasticsearch.common.geo.Orientation; +import org.elasticsearch.core.UpdateForV9; import org.elasticsearch.geometry.Geometry; import org.elasticsearch.geometry.Line; import org.elasticsearch.geometry.MultiLine; @@ -301,6 +302,8 @@ public void testParseMixedDimensionPolyWithHole() throws IOException, ParseExcep assertThat(e, hasToString(containsString("coordinate dimensions do not match"))); } + @UpdateForV9 + @AwaitsFix(bugUrl = "this test is using pre 8.0.0 index versions so needs to be removed or updated") public void testParseMixedDimensionPolyWithHoleStoredZ() throws IOException { List shellCoordinates = new ArrayList<>(); shellCoordinates.add(new Coordinate(100, 0)); @@ -334,6 +337,8 @@ public void testParseMixedDimensionPolyWithHoleStoredZ() throws IOException { assertThat(e, hasToString(containsString("unable to add coordinate to CoordinateBuilder: coordinate dimensions do not match"))); } + @UpdateForV9 + @AwaitsFix(bugUrl = "this test is using pre 8.0.0 index versions so needs to be removed or updated") public void testParsePolyWithStoredZ() throws IOException { List shellCoordinates = new ArrayList<>(); shellCoordinates.add(new Coordinate(100, 0, 0)); @@ -357,6 +362,8 @@ public void testParsePolyWithStoredZ() throws IOException { assertEquals(shapeBuilder.numDimensions(), 3); } + @UpdateForV9 + @AwaitsFix(bugUrl = "this test is using pre 8.0.0 index versions so needs to be removed or updated") public void testParseOpenPolygon() throws IOException { String openPolygon = "POLYGON ((100 5, 100 10, 90 10, 90 5))"; diff --git a/modules/legacy-geo/src/test/java/org/elasticsearch/legacygeo/mapper/LegacyGeoShapeFieldMapperTests.java b/modules/legacy-geo/src/test/java/org/elasticsearch/legacygeo/mapper/LegacyGeoShapeFieldMapperTests.java index 0a0bb12bedbae..407f372bee26a 100644 --- a/modules/legacy-geo/src/test/java/org/elasticsearch/legacygeo/mapper/LegacyGeoShapeFieldMapperTests.java +++ b/modules/legacy-geo/src/test/java/org/elasticsearch/legacygeo/mapper/LegacyGeoShapeFieldMapperTests.java @@ -12,6 +12,7 @@ import org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy; import org.apache.lucene.spatial.prefix.tree.GeohashPrefixTree; import org.apache.lucene.spatial.prefix.tree.QuadPrefixTree; +import org.apache.lucene.tests.util.LuceneTestCase.AwaitsFix; import org.elasticsearch.ElasticsearchException; import org.elasticsearch.common.Strings; import org.elasticsearch.common.geo.GeoUtils; @@ -19,6 +20,7 @@ import org.elasticsearch.common.geo.ShapeRelation; import org.elasticsearch.common.geo.SpatialStrategy; import org.elasticsearch.core.CheckedConsumer; +import org.elasticsearch.core.UpdateForV9; import org.elasticsearch.geometry.Point; import org.elasticsearch.index.IndexVersion; import org.elasticsearch.index.IndexVersions; @@ -53,6 +55,8 @@ import static org.mockito.Mockito.when; @SuppressWarnings("deprecation") +@UpdateForV9 +@AwaitsFix(bugUrl = "this is testing legacy functionality so can likely be removed in 9.0") public class LegacyGeoShapeFieldMapperTests extends MapperTestCase { @Override diff --git a/modules/legacy-geo/src/test/java/org/elasticsearch/legacygeo/mapper/LegacyGeoShapeFieldTypeTests.java b/modules/legacy-geo/src/test/java/org/elasticsearch/legacygeo/mapper/LegacyGeoShapeFieldTypeTests.java index dc74b9cd295ce..a64352c5306e1 100644 --- a/modules/legacy-geo/src/test/java/org/elasticsearch/legacygeo/mapper/LegacyGeoShapeFieldTypeTests.java +++ b/modules/legacy-geo/src/test/java/org/elasticsearch/legacygeo/mapper/LegacyGeoShapeFieldTypeTests.java @@ -7,7 +7,9 @@ */ package org.elasticsearch.legacygeo.mapper; +import org.apache.lucene.tests.util.LuceneTestCase; import org.elasticsearch.common.geo.SpatialStrategy; +import org.elasticsearch.core.UpdateForV9; import org.elasticsearch.index.IndexVersion; import org.elasticsearch.index.IndexVersions; import org.elasticsearch.index.mapper.FieldTypeTestCase; @@ -20,6 +22,8 @@ import java.util.List; import java.util.Map; +@UpdateForV9 +@LuceneTestCase.AwaitsFix(bugUrl = "this is testing legacy functionality so can likely be removed in 9.0") public class LegacyGeoShapeFieldTypeTests extends FieldTypeTestCase { /** diff --git a/modules/reindex/src/internalClusterTest/java/org/elasticsearch/migration/MultiFeatureMigrationIT.java b/modules/reindex/src/internalClusterTest/java/org/elasticsearch/migration/MultiFeatureMigrationIT.java index 8f9c2b7f34105..75a2e0df71269 100644 --- a/modules/reindex/src/internalClusterTest/java/org/elasticsearch/migration/MultiFeatureMigrationIT.java +++ b/modules/reindex/src/internalClusterTest/java/org/elasticsearch/migration/MultiFeatureMigrationIT.java @@ -264,12 +264,12 @@ public void testMultipleFeatureMigration() throws Exception { .setAliasName(".second-internal-managed-alias") .setPrimaryIndex(".second-int-man-old") .setType(SystemIndexDescriptor.Type.INTERNAL_MANAGED) - .setSettings(createSettings(IndexVersions.V_7_0_0, 0)) + .setSettings(createSettings(IndexVersions.MINIMUM_COMPATIBLE, 0)) .setMappings(createMapping(true, true)) .setOrigin(ORIGIN) .setVersionMetaKey(VERSION_META_KEY) .setAllowedElasticProductOrigins(Collections.emptyList()) - .setMinimumNodeVersion(Version.V_7_0_0) + .setMinimumNodeVersion(Version.CURRENT.minimumCompatibilityVersion()) .setPriorSystemIndexDescriptors(Collections.emptyList()) .build(); diff --git a/plugins/analysis-phonetic/src/test/java/org/elasticsearch/plugin/analysis/phonetic/AnalysisPhoneticFactoryTests.java b/plugins/analysis-phonetic/src/test/java/org/elasticsearch/plugin/analysis/phonetic/AnalysisPhoneticFactoryTests.java index 348e9f5fae7c8..c83d8b789611f 100644 --- a/plugins/analysis-phonetic/src/test/java/org/elasticsearch/plugin/analysis/phonetic/AnalysisPhoneticFactoryTests.java +++ b/plugins/analysis-phonetic/src/test/java/org/elasticsearch/plugin/analysis/phonetic/AnalysisPhoneticFactoryTests.java @@ -43,7 +43,7 @@ public void testDisallowedWithSynonyms() throws IOException { Settings settings = Settings.builder() .put( IndexMetadata.SETTING_VERSION_CREATED, - IndexVersionUtils.randomVersionBetween(random(), IndexVersions.V_7_0_0, IndexVersion.current()) + IndexVersionUtils.randomVersionBetween(random(), IndexVersions.MINIMUM_COMPATIBLE, IndexVersion.current()) ) .put("path.home", createTempDir().toString()) .build(); diff --git a/qa/rolling-upgrade-legacy/src/test/java/org/elasticsearch/upgrades/RecoveryIT.java b/qa/rolling-upgrade-legacy/src/test/java/org/elasticsearch/upgrades/RecoveryIT.java index fe2236adc4904..b0025302701af 100644 --- a/qa/rolling-upgrade-legacy/src/test/java/org/elasticsearch/upgrades/RecoveryIT.java +++ b/qa/rolling-upgrade-legacy/src/test/java/org/elasticsearch/upgrades/RecoveryIT.java @@ -419,7 +419,7 @@ public void testRecoveryClosedIndex() throws Exception { } final IndexVersion indexVersionCreated = indexVersionCreated(indexName); - if (indexVersionCreated.onOrAfter(IndexVersions.V_7_2_0)) { + if (indexVersionCreated.onOrAfter(IndexVersions.V_8_0_0)) { // index was created on a version that supports the replication of closed indices, // so we expect the index to be closed and replicated ensureGreen(indexName); @@ -448,7 +448,7 @@ public void testCloseIndexDuringRollingUpgrade() throws Exception { closeIndex(indexName); } - if (minimumIndexVersion().onOrAfter(IndexVersions.V_7_2_0)) { + if (minimumIndexVersion().onOrAfter(IndexVersions.V_8_0_0)) { // index is created on a version that supports the replication of closed indices, // so we expect the index to be closed and replicated ensureGreen(indexName); @@ -483,9 +483,9 @@ public void testClosedIndexNoopRecovery() throws Exception { closeIndex(indexName); } - if (indexVersionCreated(indexName).onOrAfter(IndexVersions.V_7_2_0)) { + if (indexVersionCreated(indexName).onOrAfter(IndexVersions.V_8_0_0)) { // index was created on a version that supports the replication of closed indices, so we expect it to be closed and replicated - assertTrue(minimumIndexVersion().onOrAfter(IndexVersions.V_7_2_0)); + assertTrue(minimumIndexVersion().onOrAfter(IndexVersions.V_8_0_0)); ensureGreen(indexName); assertClosedIndex(indexName, true); if (CLUSTER_TYPE != ClusterType.OLD) { diff --git a/server/src/internalClusterTest/java/org/elasticsearch/indices/mapping/MalformedDynamicTemplateIT.java b/server/src/internalClusterTest/java/org/elasticsearch/indices/mapping/MalformedDynamicTemplateIT.java index 937addb473f8b..c80f13861e83f 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/indices/mapping/MalformedDynamicTemplateIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/indices/mapping/MalformedDynamicTemplateIT.java @@ -9,6 +9,7 @@ package org.elasticsearch.indices.mapping; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.core.UpdateForV9; import org.elasticsearch.index.IndexVersion; import org.elasticsearch.index.IndexVersions; import org.elasticsearch.index.mapper.MapperParsingException; @@ -33,6 +34,8 @@ protected boolean forbidPrivateIndexSettings() { * contains unknown parameters. We were able to create those templates in 7.x still, so we need * to be able to index new documents into them. Indexing should issue a deprecation warning though. */ + @UpdateForV9 + @AwaitsFix(bugUrl = "this is testing 7.x specific compatibility which may be n/a now after 9.0 bump") public void testBWCMalformedDynamicTemplate() { // this parameter is not supported by "keyword" field type String mapping = """ diff --git a/server/src/internalClusterTest/java/org/elasticsearch/repositories/IndexSnapshotsServiceIT.java b/server/src/internalClusterTest/java/org/elasticsearch/repositories/IndexSnapshotsServiceIT.java index 6c7bcd17af1f0..4dbba6f0ab1f9 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/repositories/IndexSnapshotsServiceIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/repositories/IndexSnapshotsServiceIT.java @@ -18,6 +18,7 @@ import org.elasticsearch.cluster.metadata.IndexMetadata; import org.elasticsearch.common.util.CollectionUtils; import org.elasticsearch.core.Strings; +import org.elasticsearch.core.UpdateForV9; import org.elasticsearch.index.Index; import org.elasticsearch.index.IndexVersion; import org.elasticsearch.index.IndexVersions; @@ -107,6 +108,8 @@ public void testGetShardSnapshotOnEmptyRepositoriesListThrowsAnError() { expectThrows(IllegalArgumentException.class, () -> getLatestSnapshotForShardFuture(Collections.emptyList(), "idx", 0, false)); } + @UpdateForV9 + // below we were selecting an index version between current and 7.5.0, this has been updated to 8.0.0 now but that might need to change public void testGetShardSnapshotReturnsTheLatestSuccessfulSnapshot() throws Exception { final String repoName = "repo-name"; final Path repoPath = randomRepoPath(); @@ -114,7 +117,7 @@ public void testGetShardSnapshotReturnsTheLatestSuccessfulSnapshot() throws Exce final boolean useBwCFormat = randomBoolean(); if (useBwCFormat) { - final IndexVersion version = randomVersionBetween(random(), IndexVersions.V_7_5_0, IndexVersion.current()); + final IndexVersion version = randomVersionBetween(random(), IndexVersions.MINIMUM_COMPATIBLE, IndexVersion.current()); initWithSnapshotVersion(repoName, repoPath, version); } diff --git a/server/src/test/java/org/elasticsearch/action/admin/cluster/stats/VersionStatsTests.java b/server/src/test/java/org/elasticsearch/action/admin/cluster/stats/VersionStatsTests.java index 20eae9833e4b0..77f9886e2739a 100644 --- a/server/src/test/java/org/elasticsearch/action/admin/cluster/stats/VersionStatsTests.java +++ b/server/src/test/java/org/elasticsearch/action/admin/cluster/stats/VersionStatsTests.java @@ -26,6 +26,7 @@ import org.elasticsearch.index.shard.ShardPath; import org.elasticsearch.index.store.StoreStats; import org.elasticsearch.test.AbstractWireSerializingTestCase; +import org.elasticsearch.test.index.IndexVersionUtils; import java.nio.file.Path; import java.util.ArrayList; @@ -54,7 +55,7 @@ protected VersionStats mutateInstance(VersionStats instance) { return new VersionStats(instance.versionStats().stream().map(svs -> { return switch (randomIntBetween(1, 4)) { case 1 -> new VersionStats.SingleVersionStats( - IndexVersions.V_7_3_0, + IndexVersionUtils.randomCompatibleVersion(random()), svs.indexCount, svs.primaryShardCount, svs.totalPrimaryByteCount @@ -89,12 +90,12 @@ public void testCreation() { metadata = new Metadata.Builder().put(indexMeta("foo", IndexVersion.current(), 4), true) .put(indexMeta("bar", IndexVersion.current(), 3), true) - .put(indexMeta("baz", IndexVersions.V_7_0_0, 2), true) + .put(indexMeta("baz", IndexVersions.MINIMUM_COMPATIBLE, 2), true) .build(); stats = VersionStats.of(metadata, Collections.emptyList()); assertThat(stats.versionStats().size(), equalTo(2)); VersionStats.SingleVersionStats s1 = new VersionStats.SingleVersionStats(IndexVersion.current(), 2, 7, 0); - VersionStats.SingleVersionStats s2 = new VersionStats.SingleVersionStats(IndexVersions.V_7_0_0, 1, 2, 0); + VersionStats.SingleVersionStats s2 = new VersionStats.SingleVersionStats(IndexVersions.MINIMUM_COMPATIBLE, 1, 2, 0); assertThat(stats.versionStats(), containsInAnyOrder(s1, s2)); ShardId shardId = new ShardId("bar", "uuid", 0); @@ -134,7 +135,7 @@ public void testCreation() { stats = VersionStats.of(metadata, Collections.singletonList(nodeResponse)); assertThat(stats.versionStats().size(), equalTo(2)); s1 = new VersionStats.SingleVersionStats(IndexVersion.current(), 2, 7, 100); - s2 = new VersionStats.SingleVersionStats(IndexVersions.V_7_0_0, 1, 2, 0); + s2 = new VersionStats.SingleVersionStats(IndexVersions.MINIMUM_COMPATIBLE, 1, 2, 0); assertThat(stats.versionStats(), containsInAnyOrder(s1, s2)); } @@ -143,7 +144,12 @@ private static IndexMetadata indexMeta(String name, IndexVersion version, int pr } public static VersionStats randomInstance() { - List versions = List.of(IndexVersion.current(), IndexVersions.V_7_0_0, IndexVersions.V_7_1_0, IndexVersions.V_7_2_0); + List versions = List.of( + IndexVersion.current(), + IndexVersionUtils.randomCompatibleVersion(random()), + IndexVersionUtils.randomCompatibleVersion(random()), + IndexVersionUtils.randomCompatibleVersion(random()) + ); List stats = new ArrayList<>(); for (IndexVersion v : versions) { VersionStats.SingleVersionStats s = new VersionStats.SingleVersionStats( diff --git a/server/src/test/java/org/elasticsearch/cluster/metadata/MetadataCreateIndexServiceTests.java b/server/src/test/java/org/elasticsearch/cluster/metadata/MetadataCreateIndexServiceTests.java index 01394a7abbcd5..2190f8f20e762 100644 --- a/server/src/test/java/org/elasticsearch/cluster/metadata/MetadataCreateIndexServiceTests.java +++ b/server/src/test/java/org/elasticsearch/cluster/metadata/MetadataCreateIndexServiceTests.java @@ -39,6 +39,7 @@ import org.elasticsearch.common.settings.Setting; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.core.TimeValue; +import org.elasticsearch.core.UpdateForV9; import org.elasticsearch.index.Index; import org.elasticsearch.index.IndexModule; import org.elasticsearch.index.IndexNotFoundException; @@ -1313,6 +1314,8 @@ public void testRejectTranslogRetentionSettings() { ); } + @UpdateForV9 + @AwaitsFix(bugUrl = "looks like a test that's not applicable to 9.0 after version bump") public void testDeprecateTranslogRetentionSettings() { request = new CreateIndexClusterStateUpdateRequest("create index", "test", "test"); final Settings.Builder settings = Settings.builder(); diff --git a/server/src/test/java/org/elasticsearch/cluster/metadata/MetadataTests.java b/server/src/test/java/org/elasticsearch/cluster/metadata/MetadataTests.java index 955d7d2de6882..0faff63a72682 100644 --- a/server/src/test/java/org/elasticsearch/cluster/metadata/MetadataTests.java +++ b/server/src/test/java/org/elasticsearch/cluster/metadata/MetadataTests.java @@ -33,6 +33,7 @@ import org.elasticsearch.core.Nullable; import org.elasticsearch.core.Predicates; import org.elasticsearch.core.SuppressForbidden; +import org.elasticsearch.core.UpdateForV9; import org.elasticsearch.index.Index; import org.elasticsearch.index.IndexNotFoundException; import org.elasticsearch.index.IndexSettings; @@ -866,20 +867,23 @@ public void testFindMappingsWithFilters() throws IOException { public void testOldestIndexComputation() { Metadata metadata = buildIndicesWithVersions( - IndexVersions.V_7_0_0, + IndexVersions.MINIMUM_COMPATIBLE, IndexVersion.current(), IndexVersion.fromId(IndexVersion.current().id() + 1) ).build(); - assertEquals(IndexVersions.V_7_0_0, metadata.oldestIndexVersion()); + assertEquals(IndexVersions.MINIMUM_COMPATIBLE, metadata.oldestIndexVersion()); Metadata.Builder b = Metadata.builder(); assertEquals(IndexVersion.current(), b.build().oldestIndexVersion()); Throwable ex = expectThrows( IllegalArgumentException.class, - () -> buildIndicesWithVersions(IndexVersions.V_7_0_0, IndexVersions.ZERO, IndexVersion.fromId(IndexVersion.current().id() + 1)) - .build() + () -> buildIndicesWithVersions( + IndexVersions.MINIMUM_COMPATIBLE, + IndexVersions.ZERO, + IndexVersion.fromId(IndexVersion.current().id() + 1) + ).build() ); assertEquals("[index.version.created] is not present in the index settings for index with UUID [null]", ex.getMessage()); @@ -1962,6 +1966,8 @@ public void testHiddenAliasValidation() { } } + @UpdateForV9 + @AwaitsFix(bugUrl = "this test needs to be updated or removed after the version 9.0 bump") public void testSystemAliasValidationMixedVersionSystemAndRegularFails() { final IndexVersion random7xVersion = IndexVersionUtils.randomVersionBetween( random(), @@ -2012,6 +2018,8 @@ public void testSystemAliasValidationNewSystemAndRegularFails() { ); } + @UpdateForV9 + @AwaitsFix(bugUrl = "this test needs to be updated or removed after the version 9.0 bump") public void testSystemAliasOldSystemAndNewRegular() { final IndexVersion random7xVersion = IndexVersionUtils.randomVersionBetween( random(), @@ -2025,6 +2033,8 @@ public void testSystemAliasOldSystemAndNewRegular() { metadataWithIndices(oldVersionSystem, regularIndex); } + @UpdateForV9 + @AwaitsFix(bugUrl = "this test needs to be updated or removed after the version 9.0 bump") public void testSystemIndexValidationAllRegular() { final IndexVersion random7xVersion = IndexVersionUtils.randomVersionBetween( random(), @@ -2039,6 +2049,8 @@ public void testSystemIndexValidationAllRegular() { metadataWithIndices(currentVersionSystem, currentVersionSystem2, oldVersionSystem); } + @UpdateForV9 + @AwaitsFix(bugUrl = "this test needs to be updated or removed after the version 9.0 bump") public void testSystemAliasValidationAllSystemSomeOld() { final IndexVersion random7xVersion = IndexVersionUtils.randomVersionBetween( random(), diff --git a/server/src/test/java/org/elasticsearch/env/NodeMetadataTests.java b/server/src/test/java/org/elasticsearch/env/NodeMetadataTests.java index 9b946de5a4592..499861ceb346d 100644 --- a/server/src/test/java/org/elasticsearch/env/NodeMetadataTests.java +++ b/server/src/test/java/org/elasticsearch/env/NodeMetadataTests.java @@ -79,6 +79,8 @@ public void testEqualsHashcodeSerialization() { ); } + @UpdateForV9 + @AwaitsFix(bugUrl = "as mentioned in the comment below, the behavior here is changing for 9.0 so this test needs updating") public void testReadsFormatWithoutVersion() throws IOException { // the behaviour tested here is only appropriate if the current version is compatible with versions 7 and earlier assertTrue(IndexVersions.MINIMUM_COMPATIBLE.onOrBefore(IndexVersions.V_7_0_0)); diff --git a/server/src/test/java/org/elasticsearch/index/IndexSortSettingsTests.java b/server/src/test/java/org/elasticsearch/index/IndexSortSettingsTests.java index 379adc9ce517a..b2db13c1481ec 100644 --- a/server/src/test/java/org/elasticsearch/index/IndexSortSettingsTests.java +++ b/server/src/test/java/org/elasticsearch/index/IndexSortSettingsTests.java @@ -159,20 +159,6 @@ public void testSortingAgainstAliases() { assertEquals("Cannot use alias [field] as an index sort field", e.getMessage()); } - public void testSortingAgainstAliasesPre713() { - IndexSettings indexSettings = indexSettings( - Settings.builder().put(IndexMetadata.SETTING_VERSION_CREATED, IndexVersions.V_7_12_0).put("index.sort.field", "field").build() - ); - MappedFieldType aliased = new KeywordFieldMapper.KeywordFieldType("aliased"); - Sort sort = buildIndexSort(indexSettings, Map.of("field", aliased)); - assertThat(sort.getSort(), arrayWithSize(1)); - assertThat(sort.getSort()[0].getField(), equalTo("aliased")); - assertWarnings( - "Index sort for index [test] defined on field [field] which resolves to field [aliased]. " - + "You will not be able to define an index sort over aliased fields in new indexes" - ); - } - public void testTimeSeriesMode() { IndexSettings indexSettings = indexSettings( Settings.builder() diff --git a/server/src/test/java/org/elasticsearch/index/IndexVersionTests.java b/server/src/test/java/org/elasticsearch/index/IndexVersionTests.java index dcf73ec617e60..d37d03407f691 100644 --- a/server/src/test/java/org/elasticsearch/index/IndexVersionTests.java +++ b/server/src/test/java/org/elasticsearch/index/IndexVersionTests.java @@ -10,6 +10,7 @@ import org.apache.lucene.util.Version; import org.elasticsearch.common.lucene.Lucene; +import org.elasticsearch.core.UpdateForV9; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.index.IndexVersionUtils; import org.hamcrest.Matchers; @@ -32,27 +33,27 @@ public class IndexVersionTests extends ESTestCase { public void testVersionComparison() { - IndexVersion V_7_2_0 = IndexVersions.V_7_2_0; - IndexVersion V_8_0_0 = IndexVersions.V_8_0_0; - assertThat(V_7_2_0.before(V_8_0_0), is(true)); - assertThat(V_7_2_0.before(V_7_2_0), is(false)); - assertThat(V_8_0_0.before(V_7_2_0), is(false)); - - assertThat(V_7_2_0.onOrBefore(V_8_0_0), is(true)); - assertThat(V_7_2_0.onOrBefore(V_7_2_0), is(true)); - assertThat(V_8_0_0.onOrBefore(V_7_2_0), is(false)); - - assertThat(V_7_2_0.after(V_8_0_0), is(false)); - assertThat(V_7_2_0.after(V_7_2_0), is(false)); - assertThat(V_8_0_0.after(V_7_2_0), is(true)); - - assertThat(V_7_2_0.onOrAfter(V_8_0_0), is(false)); - assertThat(V_7_2_0.onOrAfter(V_7_2_0), is(true)); - assertThat(V_8_0_0.onOrAfter(V_7_2_0), is(true)); - - assertThat(V_7_2_0, is(lessThan(V_8_0_0))); - assertThat(V_7_2_0.compareTo(V_7_2_0), is(0)); - assertThat(V_8_0_0, is(greaterThan(V_7_2_0))); + IndexVersion V_8_2_0 = IndexVersions.V_8_2_0; + IndexVersion current = IndexVersion.current(); + assertThat(V_8_2_0.before(current), is(true)); + assertThat(V_8_2_0.before(V_8_2_0), is(false)); + assertThat(current.before(V_8_2_0), is(false)); + + assertThat(V_8_2_0.onOrBefore(current), is(true)); + assertThat(V_8_2_0.onOrBefore(V_8_2_0), is(true)); + assertThat(current.onOrBefore(V_8_2_0), is(false)); + + assertThat(V_8_2_0.after(current), is(false)); + assertThat(V_8_2_0.after(V_8_2_0), is(false)); + assertThat(current.after(V_8_2_0), is(true)); + + assertThat(V_8_2_0.onOrAfter(current), is(false)); + assertThat(V_8_2_0.onOrAfter(V_8_2_0), is(true)); + assertThat(current.onOrAfter(V_8_2_0), is(true)); + + assertThat(V_8_2_0, is(lessThan(current))); + assertThat(V_8_2_0.compareTo(V_8_2_0), is(0)); + assertThat(current, is(greaterThan(V_8_2_0))); } public static class CorrectFakeVersion { @@ -149,6 +150,8 @@ public void testMax() { } } + @UpdateForV9 + @AwaitsFix(bugUrl = "believe this fails because index version has not yet been bumped to 9.0") public void testMinimumCompatibleVersion() { assertThat(IndexVersion.getMinimumCompatibleIndexVersion(7170099), equalTo(IndexVersion.fromId(6000099))); assertThat(IndexVersion.getMinimumCompatibleIndexVersion(8000099), equalTo(IndexVersion.fromId(7000099))); @@ -189,6 +192,8 @@ public void testParseLenient() { } } + @UpdateForV9 + @AwaitsFix(bugUrl = "can be unmuted once lucene is bumped to version 10") public void testLuceneVersionOnUnknownVersions() { // between two known versions, should use the lucene version of the previous version IndexVersion previousVersion = IndexVersionUtils.getPreviousVersion(); diff --git a/server/src/test/java/org/elasticsearch/index/engine/InternalEngineTests.java b/server/src/test/java/org/elasticsearch/index/engine/InternalEngineTests.java index 77f5fa301c78d..b7197c3db65cd 100644 --- a/server/src/test/java/org/elasticsearch/index/engine/InternalEngineTests.java +++ b/server/src/test/java/org/elasticsearch/index/engine/InternalEngineTests.java @@ -95,6 +95,7 @@ import org.elasticsearch.core.IOUtils; import org.elasticsearch.core.TimeValue; import org.elasticsearch.core.Tuple; +import org.elasticsearch.core.UpdateForV9; import org.elasticsearch.index.IndexModule; import org.elasticsearch.index.IndexSettings; import org.elasticsearch.index.IndexVersion; @@ -6615,6 +6616,9 @@ public void testRebuildLocalCheckpointTrackerAndVersionMap() throws Exception { } } + @UpdateForV9 + // below we were looking for an index version between minimum compatible and 8.0.0 and this has been updated but might need to be + // verified if that is the correct behavior public void testRecoverFromHardDeletesIndex() throws Exception { IndexWriterFactory hardDeletesWriter = (directory, iwc) -> new IndexWriter(directory, iwc) { boolean isTombstone(Iterable doc) { @@ -6665,7 +6669,8 @@ public long softUpdateDocuments(Term term, Iterable commitUserDataWithOlderVersion = new HashMap<>(committedSegmentsInfo.userData); - commitUserDataWithOlderVersion.put(ES_VERSION, IndexVersions.V_7_0_0.toString()); + commitUserDataWithOlderVersion.put(ES_VERSION, IndexVersions.MINIMUM_COMPATIBLE.toString()); indexWriter.setLiveCommitData(commitUserDataWithOlderVersion.entrySet()); indexWriter.commit(); } Map userDataBeforeTrimUnsafeCommits = store.readLastCommittedSegmentsInfo().getUserData(); assertThat(userDataBeforeTrimUnsafeCommits, hasKey(ES_VERSION)); - assertThat(userDataBeforeTrimUnsafeCommits.get(ES_VERSION), is(equalTo(IndexVersions.V_7_0_0.toString()))); + assertThat(userDataBeforeTrimUnsafeCommits.get(ES_VERSION), is(equalTo(IndexVersions.MINIMUM_COMPATIBLE.toString()))); store.trimUnsafeCommits(config.getTranslogConfig().getTranslogPath()); diff --git a/server/src/test/java/org/elasticsearch/index/mapper/DateFieldMapperTests.java b/server/src/test/java/org/elasticsearch/index/mapper/DateFieldMapperTests.java index 4efdd43b5cd71..0ce7d8484d333 100644 --- a/server/src/test/java/org/elasticsearch/index/mapper/DateFieldMapperTests.java +++ b/server/src/test/java/org/elasticsearch/index/mapper/DateFieldMapperTests.java @@ -19,9 +19,7 @@ import org.elasticsearch.index.IndexVersions; import org.elasticsearch.index.mapper.DateFieldMapper.DateFieldType; import org.elasticsearch.script.DateFieldScript; -import org.elasticsearch.script.ScriptService; import org.elasticsearch.search.DocValueFormat; -import org.elasticsearch.test.index.IndexVersionUtils; import org.elasticsearch.xcontent.XContentBuilder; import java.io.IOException; @@ -46,7 +44,6 @@ import static org.hamcrest.Matchers.lessThan; import static org.hamcrest.Matchers.lessThanOrEqualTo; import static org.hamcrest.Matchers.notNullValue; -import static org.mockito.Mockito.mock; public class DateFieldMapperTests extends MapperTestCase { @@ -248,10 +245,6 @@ public void testBadNullValue() throws IOException { + "failed to parse date field [foo] with format [strict_date_optional_time||epoch_millis]" ) ); - - createDocumentMapper(IndexVersions.V_7_9_0, fieldMapping(b -> b.field("type", "date").field("null_value", "foo"))); - - assertWarnings("Error parsing [foo] as date in [null_value] on field [field]); [null_value] will be ignored"); } public void testNullConfigValuesFail() { @@ -767,51 +760,4 @@ public void testLegacyField() throws Exception { assertNotEquals(DEFAULT_DATE_TIME_FORMATTER, ((DateFieldType) service.fieldType("mydate")).dateTimeFormatter); } - public void testLegacyDateFormatName() { - DateFieldMapper.Builder builder = new DateFieldMapper.Builder( - "format", - DateFieldMapper.Resolution.MILLISECONDS, - null, - mock(ScriptService.class), - true, - // BWC compatible index, e.g 7.x - IndexVersionUtils.randomVersionBetween( - random(), - IndexVersions.V_7_0_0, - IndexVersionUtils.getPreviousVersion(IndexVersions.V_8_0_0) - ) - ); - - // Check that we allow the use of camel case date formats on 7.x indices - @SuppressWarnings("unchecked") - FieldMapper.Parameter formatParam = (FieldMapper.Parameter) builder.getParameters()[3]; - formatParam.parse("date_time_format", mock(MappingParserContext.class), "strictDateOptionalTime"); - builder.buildFormatter(); // shouldn't throw exception - - formatParam.parse("date_time_format", mock(MappingParserContext.class), "strictDateOptionalTime||strictDateOptionalTimeNanos"); - builder.buildFormatter(); // shouldn't throw exception - - DateFieldMapper.Builder newFieldBuilder = new DateFieldMapper.Builder( - "format", - DateFieldMapper.Resolution.MILLISECONDS, - null, - mock(ScriptService.class), - true, - IndexVersion.current() - ); - - @SuppressWarnings("unchecked") - final FieldMapper.Parameter newFormatParam = (FieldMapper.Parameter) newFieldBuilder.getParameters()[3]; - - // Check that we don't allow the use of camel case date formats on 8.x indices - assertEquals( - "Error parsing [format] on field [format]: Invalid format: [strictDateOptionalTime]: Unknown pattern letter: t", - expectThrows(IllegalArgumentException.class, () -> { - newFormatParam.parse("date_time_format", mock(MappingParserContext.class), "strictDateOptionalTime"); - assertEquals("strictDateOptionalTime", newFormatParam.getValue()); - newFieldBuilder.buildFormatter(); - }).getMessage() - ); - - } } diff --git a/server/src/test/java/org/elasticsearch/index/mapper/DynamicTemplatesTests.java b/server/src/test/java/org/elasticsearch/index/mapper/DynamicTemplatesTests.java index a5a5d9726f233..4d6e730afded0 100644 --- a/server/src/test/java/org/elasticsearch/index/mapper/DynamicTemplatesTests.java +++ b/server/src/test/java/org/elasticsearch/index/mapper/DynamicTemplatesTests.java @@ -20,10 +20,8 @@ import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.xcontent.XContentHelper; import org.elasticsearch.index.IndexVersion; -import org.elasticsearch.index.IndexVersions; import org.elasticsearch.plugins.internal.XContentMeteringParserDecorator; import org.elasticsearch.test.XContentTestUtils; -import org.elasticsearch.test.index.IndexVersionUtils; import org.elasticsearch.xcontent.XContentBuilder; import org.elasticsearch.xcontent.XContentFactory; import org.elasticsearch.xcontent.XContentParser; @@ -221,61 +219,25 @@ public void testSimpleWithXContentTraverse() throws Exception { } public void testDynamicMapperWithBadMapping() throws IOException { - { - // in 7.x versions this will issue a deprecation warning - IndexVersion version = IndexVersionUtils.randomVersionBetween( - random(), - IndexVersions.V_7_0_0, - IndexVersionUtils.getPreviousVersion(IndexVersions.V_8_0_0) - ); - DocumentMapper mapper = createDocumentMapper(version, topMapping(b -> { - b.startArray("dynamic_templates"); - { - b.startObject(); - { - b.startObject("test"); - { - b.field("match_mapping_type", "string"); - b.startObject("mapping").field("badparam", false).endObject(); - } - b.endObject(); - } - b.endObject(); - } - b.endArray(); - })); - assertWarnings( - "Parameter [badparam] is used in a dynamic template mapping and has no effect on type [null]. " - + "Usage will result in an error in future major versions and should be removed." - ); - mapper.parse(source(b -> b.field("field", "foo"))); - assertWarnings( - "Parameter [badparam] is used in a dynamic template mapping and has no effect on type [null]. " - + "Usage will result in an error in future major versions and should be removed." - ); - } - - { - // in 8.x it will error out - Exception e = expectThrows(MapperParsingException.class, () -> createMapperService(topMapping(b -> { - b.startArray("dynamic_templates"); + // in 8.x it will error out + Exception e = expectThrows(MapperParsingException.class, () -> createMapperService(topMapping(b -> { + b.startArray("dynamic_templates"); + { + b.startObject(); { - b.startObject(); + b.startObject("test"); { - b.startObject("test"); - { - b.field("match_mapping_type", "string"); - b.startObject("mapping").field("badparam", false).endObject(); - } - b.endObject(); + b.field("match_mapping_type", "string"); + b.startObject("mapping").field("badparam", false).endObject(); } b.endObject(); } - b.endArray(); - }))); - assertThat(e.getMessage(), containsString("dynamic template [test] has invalid content")); - assertThat(e.getCause().getMessage(), containsString("badparam")); - } + b.endObject(); + } + b.endArray(); + }))); + assertThat(e.getMessage(), containsString("dynamic template [test] has invalid content")); + assertThat(e.getCause().getMessage(), containsString("badparam")); } public void testDynamicRuntimeWithBadMapping() { @@ -677,35 +639,6 @@ public void testIllegalDynamicTemplateNoMappingTypeRuntime() throws Exception { assertEquals("unknown parameter [foo] on runtime field [__dynamic__my_template] of type [date]", e.getRootCause().getMessage()); } - public void testIllegalDynamicTemplate7DotXIndex() throws Exception { - XContentBuilder mapping = XContentFactory.jsonBuilder(); - mapping.startObject(); - { - mapping.startObject(MapperService.SINGLE_MAPPING_NAME); - mapping.startArray("dynamic_templates"); - { - mapping.startObject(); - mapping.startObject("my_template"); - mapping.field("match_mapping_type", "string"); - mapping.startObject("mapping"); - mapping.field("type", "string"); - mapping.endObject(); - mapping.endObject(); - mapping.endObject(); - } - mapping.endArray(); - mapping.endObject(); - } - mapping.endObject(); - IndexVersion createdVersion = IndexVersionUtils.randomVersionBetween(random(), IndexVersions.V_7_0_0, IndexVersions.V_7_7_0); - MapperService mapperService = createMapperService(createdVersion, mapping); - assertThat(mapperService.documentMapper().mappingSource().toString(), containsString("\"type\":\"string\"")); - assertWarnings(""" - dynamic template [my_template] has invalid content \ - [{"match_mapping_type":"string","mapping":{"type":"string"}}], attempted to validate it \ - with the following match_mapping_type: [string], last error: [No mapper found for type [string]]"""); - } - public void testTemplateWithoutMatchPredicates() throws Exception { XContentBuilder mapping = XContentFactory.jsonBuilder(); mapping.startObject(); diff --git a/server/src/test/java/org/elasticsearch/index/mapper/FieldNamesFieldMapperTests.java b/server/src/test/java/org/elasticsearch/index/mapper/FieldNamesFieldMapperTests.java index 0b5fef2b5971c..11544d81a6914 100644 --- a/server/src/test/java/org/elasticsearch/index/mapper/FieldNamesFieldMapperTests.java +++ b/server/src/test/java/org/elasticsearch/index/mapper/FieldNamesFieldMapperTests.java @@ -9,9 +9,7 @@ package org.elasticsearch.index.mapper; import org.elasticsearch.common.bytes.BytesReference; -import org.elasticsearch.index.IndexVersions; import org.elasticsearch.index.termvectors.TermVectorsService; -import org.elasticsearch.test.index.IndexVersionUtils; import org.elasticsearch.xcontent.XContentFactory; import org.elasticsearch.xcontent.XContentType; @@ -80,39 +78,4 @@ public void testUsingEnabledSettingThrows() { ); } - /** - * disabling the _field_names should still work for indices before 8.0 - */ - public void testUsingEnabledBefore8() throws Exception { - - DocumentMapper docMapper = createDocumentMapper( - IndexVersionUtils.randomPreviousCompatibleVersion(random(), IndexVersions.V_8_0_0), - topMapping(b -> b.startObject("_field_names").field("enabled", false).endObject()) - ); - - assertWarnings(FieldNamesFieldMapper.ENABLED_DEPRECATION_MESSAGE); - FieldNamesFieldMapper fieldNamesMapper = docMapper.metadataMapper(FieldNamesFieldMapper.class); - assertFalse(fieldNamesMapper.fieldType().isEnabled()); - - ParsedDocument doc = docMapper.parse(source(b -> b.field("field", "value"))); - assertNull(doc.rootDoc().get("_field_names")); - } - - /** - * Merging the "_field_names" enabled setting is forbidden in 8.0, but we still want to tests the behavior on pre-8 indices - */ - public void testMergingMappingsBefore8() throws Exception { - MapperService mapperService = createMapperService( - IndexVersionUtils.randomPreviousCompatibleVersion(random(), IndexVersions.V_8_0_0), - mapping(b -> {}) - ); - - merge(mapperService, topMapping(b -> b.startObject("_field_names").field("enabled", false).endObject())); - assertFalse(mapperService.documentMapper().metadataMapper(FieldNamesFieldMapper.class).fieldType().isEnabled()); - assertWarnings(FieldNamesFieldMapper.ENABLED_DEPRECATION_MESSAGE); - - merge(mapperService, topMapping(b -> b.startObject("_field_names").field("enabled", true).endObject())); - assertTrue(mapperService.documentMapper().metadataMapper(FieldNamesFieldMapper.class).fieldType().isEnabled()); - assertWarnings(FieldNamesFieldMapper.ENABLED_DEPRECATION_MESSAGE); - } } diff --git a/server/src/test/java/org/elasticsearch/index/mapper/IpFieldMapperTests.java b/server/src/test/java/org/elasticsearch/index/mapper/IpFieldMapperTests.java index 296871e258cd7..47bb00d35c8dd 100644 --- a/server/src/test/java/org/elasticsearch/index/mapper/IpFieldMapperTests.java +++ b/server/src/test/java/org/elasticsearch/index/mapper/IpFieldMapperTests.java @@ -20,7 +20,6 @@ import org.elasticsearch.core.Tuple; import org.elasticsearch.index.IndexMode; import org.elasticsearch.index.IndexVersion; -import org.elasticsearch.index.IndexVersions; import org.elasticsearch.script.IpFieldScript; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.xcontent.XContentBuilder; @@ -208,12 +207,6 @@ public void testNullValue() throws IOException { e.getMessage(), "Failed to parse mapping: Error parsing [null_value] on field [field]: ':1' is not an IP string literal." ); - - createDocumentMapper(IndexVersions.V_7_9_0, fieldMapping(b -> { - b.field("type", "ip"); - b.field("null_value", ":1"); - })); - assertWarnings("Error parsing [:1] as IP in [null_value] on field [field]); [null_value] will be ignored"); } public void testDimension() throws IOException { diff --git a/server/src/test/java/org/elasticsearch/index/mapper/TypeParsersTests.java b/server/src/test/java/org/elasticsearch/index/mapper/TypeParsersTests.java index 035466d93ab06..8013a93581757 100644 --- a/server/src/test/java/org/elasticsearch/index/mapper/TypeParsersTests.java +++ b/server/src/test/java/org/elasticsearch/index/mapper/TypeParsersTests.java @@ -70,9 +70,6 @@ public void testMultiFieldWithinMultiField() throws IOException { Mapper.TypeParser typeParser = KeywordFieldMapper.PARSER; - // For indices created prior to 8.0, we should only emit a warning and not fail parsing. - Map fieldNode = XContentHelper.convertToMap(BytesReference.bytes(mapping), true, mapping.contentType()).v2(); - MapperService mapperService = mock(MapperService.class); IndexAnalyzers indexAnalyzers = IndexAnalyzers.of(defaultAnalyzers()); when(mapperService.getIndexAnalyzers()).thenReturn(indexAnalyzers); @@ -86,32 +83,6 @@ public void testMultiFieldWithinMultiField() throws IOException { IndexSettings indexSettings = new IndexSettings(metadata, Settings.EMPTY); when(mapperService.getIndexSettings()).thenReturn(indexSettings); - IndexVersion olderVersion = IndexVersionUtils.randomPreviousCompatibleVersion(random(), IndexVersions.V_8_0_0); - MappingParserContext olderContext = new MappingParserContext( - null, - type -> typeParser, - type -> null, - olderVersion, - () -> TransportVersions.MINIMUM_COMPATIBLE, - null, - ScriptCompiler.NONE, - mapperService.getIndexAnalyzers(), - mapperService.getIndexSettings(), - ProvidedIdFieldMapper.NO_FIELD_DATA, - query -> { - throw new UnsupportedOperationException(); - } - ); - - TextFieldMapper.PARSER.parse("some-field", fieldNode, olderContext); - assertWarnings( - "At least one multi-field, [sub-field], " - + "was encountered that itself contains a multi-field. Defining multi-fields within a multi-field is deprecated " - + "and is not supported for indices created in 8.0 and later. To migrate the mappings, all instances of [fields] " - + "that occur within a [fields] block should be removed from the mappings, either by flattening the chained " - + "[fields] blocks into a single level, or switching to [copy_to] if appropriate." - ); - // For indices created in 8.0 or later, we should throw an error. Map fieldNodeCopy = XContentHelper.convertToMap(BytesReference.bytes(mapping), true, mapping.contentType()).v2(); diff --git a/server/src/test/java/org/elasticsearch/index/mapper/vectors/BinaryDenseVectorScriptDocValuesTests.java b/server/src/test/java/org/elasticsearch/index/mapper/vectors/BinaryDenseVectorScriptDocValuesTests.java index 1df42368041ac..a3fd002e68a1c 100644 --- a/server/src/test/java/org/elasticsearch/index/mapper/vectors/BinaryDenseVectorScriptDocValuesTests.java +++ b/server/src/test/java/org/elasticsearch/index/mapper/vectors/BinaryDenseVectorScriptDocValuesTests.java @@ -11,13 +11,13 @@ import org.apache.lucene.index.BinaryDocValues; import org.apache.lucene.util.BytesRef; import org.elasticsearch.index.IndexVersion; -import org.elasticsearch.index.IndexVersions; import org.elasticsearch.index.mapper.vectors.DenseVectorFieldMapper.ElementType; import org.elasticsearch.script.field.vectors.BinaryDenseVectorDocValuesField; import org.elasticsearch.script.field.vectors.ByteBinaryDenseVectorDocValuesField; import org.elasticsearch.script.field.vectors.DenseVector; import org.elasticsearch.script.field.vectors.DenseVectorDocValuesField; import org.elasticsearch.test.ESTestCase; +import org.elasticsearch.test.index.IndexVersionUtils; import java.io.IOException; import java.nio.ByteBuffer; @@ -32,7 +32,7 @@ public void testFloatGetVectorValueAndGetMagnitude() throws IOException { float[][] vectors = { { 1, 1, 1 }, { 1, 1, 2 }, { 1, 1, 3 } }; float[] expectedMagnitudes = { 1.7320f, 2.4495f, 3.3166f }; - for (IndexVersion indexVersion : List.of(IndexVersions.V_7_4_0, IndexVersion.current())) { + for (IndexVersion indexVersion : List.of(IndexVersionUtils.randomCompatibleVersion(random()), IndexVersion.current())) { BinaryDocValues docValues = wrap(vectors, ElementType.FLOAT, indexVersion); DenseVectorDocValuesField field = new BinaryDenseVectorDocValuesField(docValues, "test", ElementType.FLOAT, dims, indexVersion); DenseVectorScriptDocValues scriptDocValues = field.toScriptDocValues(); diff --git a/server/src/test/java/org/elasticsearch/index/mapper/vectors/DenseVectorFieldMapperTests.java b/server/src/test/java/org/elasticsearch/index/mapper/vectors/DenseVectorFieldMapperTests.java index 83b8a8fa991c2..ad719e398ae37 100644 --- a/server/src/test/java/org/elasticsearch/index/mapper/vectors/DenseVectorFieldMapperTests.java +++ b/server/src/test/java/org/elasticsearch/index/mapper/vectors/DenseVectorFieldMapperTests.java @@ -1321,24 +1321,6 @@ public void testDefaultParamsIndexByDefault() throws Exception { assertEquals(VectorSimilarity.COSINE, denseVectorFieldType.getSimilarity()); } - public void testAddDocumentsToIndexBefore_V_7_5_0() throws Exception { - IndexVersion indexVersion = IndexVersions.V_7_4_0; - DocumentMapper mapper = createDocumentMapper( - indexVersion, - fieldMapping(b -> b.field("index", false).field("type", "dense_vector").field("dims", 3)) - ); - - float[] validVector = { -12.1f, 100.7f, -4 }; - ParsedDocument doc1 = mapper.parse(source(b -> b.array("field", validVector))); - List fields = doc1.rootDoc().getFields("field"); - assertEquals(1, fields.size()); - assertThat(fields.get(0), instanceOf(BinaryDocValuesField.class)); - // assert that after decoding the indexed value is equal to expected - BytesRef vectorBR = fields.get(0).binaryValue(); - float[] decodedValues = decodeDenseVector(indexVersion, vectorBR); - assertArrayEquals("Decoded dense vector values is not equal to the indexed one.", validVector, decodedValues, 0.001f); - } - public void testValidateOnBuild() { final MapperBuilderContext context = MapperBuilderContext.root(false, false); diff --git a/server/src/test/java/org/elasticsearch/index/mapper/vectors/SparseVectorFieldMapperTests.java b/server/src/test/java/org/elasticsearch/index/mapper/vectors/SparseVectorFieldMapperTests.java index 271f0c12be611..b697899168c3f 100644 --- a/server/src/test/java/org/elasticsearch/index/mapper/vectors/SparseVectorFieldMapperTests.java +++ b/server/src/test/java/org/elasticsearch/index/mapper/vectors/SparseVectorFieldMapperTests.java @@ -13,7 +13,6 @@ import org.apache.lucene.document.FeatureField; import org.apache.lucene.index.IndexableField; import org.elasticsearch.common.Strings; -import org.elasticsearch.common.bytes.BytesReference; import org.elasticsearch.index.IndexVersion; import org.elasticsearch.index.IndexVersions; import org.elasticsearch.index.mapper.DocumentMapper; @@ -22,11 +21,8 @@ import org.elasticsearch.index.mapper.MapperParsingException; import org.elasticsearch.index.mapper.MapperTestCase; import org.elasticsearch.index.mapper.ParsedDocument; -import org.elasticsearch.index.mapper.SourceToParse; import org.elasticsearch.test.index.IndexVersionUtils; import org.elasticsearch.xcontent.XContentBuilder; -import org.elasticsearch.xcontent.XContentFactory; -import org.elasticsearch.xcontent.XContentType; import org.hamcrest.Matchers; import org.junit.AssumptionViolatedException; @@ -212,44 +208,6 @@ protected IndexVersion boostNotAllowedIndexVersion() { return NEW_SPARSE_VECTOR_INDEX_VERSION; } - public void testSparseVectorWith7xIndex() throws Exception { - IndexVersion version = IndexVersionUtils.randomPreviousCompatibleVersion(random(), PREVIOUS_SPARSE_VECTOR_INDEX_VERSION); - - XContentBuilder builder = XContentFactory.jsonBuilder() - .startObject() - .startObject("_doc") - .startObject("properties") - .startObject("my-vector") - .field("type", "sparse_vector") - .endObject() - .endObject() - .endObject() - .endObject(); - - DocumentMapper mapper = createDocumentMapper(version, builder); - assertWarnings(SparseVectorFieldMapper.ERROR_MESSAGE_7X); - - // Check that new vectors cannot be indexed. - int[] indexedDims = { 65535, 50, 2 }; - float[] indexedValues = { 0.5f, 1800f, -34567.11f }; - BytesReference source = BytesReference.bytes( - XContentFactory.jsonBuilder() - .startObject() - .startObject("my-vector") - .field(Integer.toString(indexedDims[0]), indexedValues[0]) - .field(Integer.toString(indexedDims[1]), indexedValues[1]) - .field(Integer.toString(indexedDims[2]), indexedValues[2]) - .endObject() - .endObject() - ); - - DocumentParsingException indexException = expectThrows( - DocumentParsingException.class, - () -> mapper.parse(new SourceToParse("id", source, XContentType.JSON)) - ); - assertThat(indexException.getCause().getMessage(), containsString(SparseVectorFieldMapper.ERROR_MESSAGE_7X)); - } - public void testSparseVectorUnsupportedIndex() throws Exception { IndexVersion version = IndexVersionUtils.randomVersionBetween( random(), diff --git a/server/src/test/java/org/elasticsearch/index/mapper/vectors/VectorEncoderDecoderTests.java b/server/src/test/java/org/elasticsearch/index/mapper/vectors/VectorEncoderDecoderTests.java index 80b08f907be8d..9e581aa7711ef 100644 --- a/server/src/test/java/org/elasticsearch/index/mapper/vectors/VectorEncoderDecoderTests.java +++ b/server/src/test/java/org/elasticsearch/index/mapper/vectors/VectorEncoderDecoderTests.java @@ -10,6 +10,7 @@ import org.apache.lucene.util.BytesRef; import org.elasticsearch.index.IndexVersion; +import org.elasticsearch.index.IndexVersions; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.index.IndexVersionUtils; @@ -27,7 +28,7 @@ public void testVectorDecodingWithOffset() { for (IndexVersion version : List.of( IndexVersionUtils.randomVersionBetween( random(), - DenseVectorFieldMapper.MAGNITUDE_STORED_INDEX_VERSION, + IndexVersions.MINIMUM_COMPATIBLE, IndexVersionUtils.getPreviousVersion(DenseVectorFieldMapper.LITTLE_ENDIAN_FLOAT_STORED_INDEX_VERSION) ), DenseVectorFieldMapper.LITTLE_ENDIAN_FLOAT_STORED_INDEX_VERSION diff --git a/server/src/test/java/org/elasticsearch/index/similarity/SimilarityServiceTests.java b/server/src/test/java/org/elasticsearch/index/similarity/SimilarityServiceTests.java index a003436fc0523..f45b349d0770b 100644 --- a/server/src/test/java/org/elasticsearch/index/similarity/SimilarityServiceTests.java +++ b/server/src/test/java/org/elasticsearch/index/similarity/SimilarityServiceTests.java @@ -73,7 +73,7 @@ public float score(float freq, long norm) { }; IllegalArgumentException e = expectThrows( IllegalArgumentException.class, - () -> SimilarityService.validateSimilarity(IndexVersions.V_7_0_0, negativeScoresSim) + () -> SimilarityService.validateSimilarity(IndexVersions.MINIMUM_COMPATIBLE, negativeScoresSim) ); assertThat(e.getMessage(), Matchers.containsString("Similarities should not return negative scores")); @@ -98,7 +98,7 @@ public float score(float freq, long norm) { }; e = expectThrows( IllegalArgumentException.class, - () -> SimilarityService.validateSimilarity(IndexVersions.V_7_0_0, decreasingScoresWithFreqSim) + () -> SimilarityService.validateSimilarity(IndexVersions.MINIMUM_COMPATIBLE, decreasingScoresWithFreqSim) ); assertThat(e.getMessage(), Matchers.containsString("Similarity scores should not decrease when term frequency increases")); @@ -123,7 +123,7 @@ public float score(float freq, long norm) { }; e = expectThrows( IllegalArgumentException.class, - () -> SimilarityService.validateSimilarity(IndexVersions.V_7_0_0, increasingScoresWithNormSim) + () -> SimilarityService.validateSimilarity(IndexVersions.MINIMUM_COMPATIBLE, increasingScoresWithNormSim) ); assertThat(e.getMessage(), Matchers.containsString("Similarity scores should not increase when norm increases")); } diff --git a/server/src/test/java/org/elasticsearch/indices/IndicesModuleTests.java b/server/src/test/java/org/elasticsearch/indices/IndicesModuleTests.java index 628ff4b99b133..686acc367ade5 100644 --- a/server/src/test/java/org/elasticsearch/indices/IndicesModuleTests.java +++ b/server/src/test/java/org/elasticsearch/indices/IndicesModuleTests.java @@ -8,6 +8,7 @@ package org.elasticsearch.indices; +import org.elasticsearch.core.UpdateForV9; import org.elasticsearch.index.IndexVersion; import org.elasticsearch.index.IndexVersions; import org.elasticsearch.index.mapper.DataStreamTimestampFieldMapper; @@ -96,6 +97,8 @@ public Map getMetadataMappers() { DataStreamTimestampFieldMapper.NAME, FieldNamesFieldMapper.NAME }; + @UpdateForV9 + @AwaitsFix(bugUrl = "test is referencing 7.x index versions so needs to be updated for 9.0 bump") public void testBuiltinMappers() { IndicesModule module = new IndicesModule(Collections.emptyList()); { diff --git a/server/src/test/java/org/elasticsearch/indices/analysis/AnalysisModuleTests.java b/server/src/test/java/org/elasticsearch/indices/analysis/AnalysisModuleTests.java index c4d6cb6be502d..ff65464085c03 100644 --- a/server/src/test/java/org/elasticsearch/indices/analysis/AnalysisModuleTests.java +++ b/server/src/test/java/org/elasticsearch/indices/analysis/AnalysisModuleTests.java @@ -21,7 +21,6 @@ import org.elasticsearch.index.IndexService.IndexCreationContext; import org.elasticsearch.index.IndexSettings; import org.elasticsearch.index.IndexVersion; -import org.elasticsearch.index.IndexVersions; import org.elasticsearch.index.analysis.Analysis; import org.elasticsearch.index.analysis.AnalysisRegistry; import org.elasticsearch.index.analysis.CharFilterFactory; @@ -187,34 +186,6 @@ public void testUnderscoreInAnalyzerName() throws IOException { } } - public void testStandardFilterBWC() throws IOException { - // standard tokenfilter should have been removed entirely in the 7x line. However, a - // cacheing bug meant that it was still possible to create indexes using a standard - // filter until 7.6 - { - IndexVersion version = IndexVersionUtils.randomVersionBetween(random(), IndexVersions.V_7_6_0, IndexVersion.current()); - final Settings settings = Settings.builder() - .put("index.analysis.analyzer.my_standard.tokenizer", "standard") - .put("index.analysis.analyzer.my_standard.filter", "standard") - .put(Environment.PATH_HOME_SETTING.getKey(), createTempDir().toString()) - .put(IndexMetadata.SETTING_VERSION_CREATED, version) - .build(); - IllegalArgumentException exc = expectThrows(IllegalArgumentException.class, () -> getIndexAnalyzers(settings)); - assertThat(exc.getMessage(), equalTo("The [standard] token filter has been removed.")); - } - { - IndexVersion version = IndexVersionUtils.randomVersionBetween(random(), IndexVersions.V_7_0_0, IndexVersions.V_7_5_2); - final Settings settings = Settings.builder() - .put("index.analysis.analyzer.my_standard.tokenizer", "standard") - .put("index.analysis.analyzer.my_standard.filter", "standard") - .put(Environment.PATH_HOME_SETTING.getKey(), createTempDir().toString()) - .put(IndexMetadata.SETTING_VERSION_CREATED, version) - .build(); - getIndexAnalyzers(settings); - assertWarnings("The [standard] token filter is deprecated and will be removed in a future version."); - } - } - /** * Tests that plugins can register pre-configured char filters that vary in behavior based on Elasticsearch version, Lucene version, * and that do not vary based on version at all. diff --git a/server/src/test/java/org/elasticsearch/script/VectorScoreScriptUtilsTests.java b/server/src/test/java/org/elasticsearch/script/VectorScoreScriptUtilsTests.java index 8bd53047b2dc7..78e1d8f8440a9 100644 --- a/server/src/test/java/org/elasticsearch/script/VectorScoreScriptUtilsTests.java +++ b/server/src/test/java/org/elasticsearch/script/VectorScoreScriptUtilsTests.java @@ -45,11 +45,15 @@ public void testFloatVectorClassBindings() throws IOException { List fields = List.of( new BinaryDenseVectorDocValuesField( - BinaryDenseVectorScriptDocValuesTests.wrap(new float[][] { docVector }, ElementType.FLOAT, IndexVersions.V_7_4_0), + BinaryDenseVectorScriptDocValuesTests.wrap( + new float[][] { docVector }, + ElementType.FLOAT, + IndexVersions.MINIMUM_COMPATIBLE + ), "test", ElementType.FLOAT, dims, - IndexVersions.V_7_4_0 + IndexVersions.MINIMUM_COMPATIBLE ), new BinaryDenseVectorDocValuesField( BinaryDenseVectorScriptDocValuesTests.wrap(new float[][] { docVector }, ElementType.FLOAT, IndexVersion.current()), @@ -238,11 +242,15 @@ public void testByteVsFloatSimilarity() throws IOException { List fields = List.of( new BinaryDenseVectorDocValuesField( - BinaryDenseVectorScriptDocValuesTests.wrap(new float[][] { docVector }, ElementType.FLOAT, IndexVersions.V_7_4_0), + BinaryDenseVectorScriptDocValuesTests.wrap( + new float[][] { docVector }, + ElementType.FLOAT, + IndexVersions.MINIMUM_COMPATIBLE + ), "field0", ElementType.FLOAT, dims, - IndexVersions.V_7_4_0 + IndexVersions.MINIMUM_COMPATIBLE ), new BinaryDenseVectorDocValuesField( BinaryDenseVectorScriptDocValuesTests.wrap(new float[][] { docVector }, ElementType.FLOAT, IndexVersion.current()), diff --git a/server/src/test/java/org/elasticsearch/script/field/vectors/DenseVectorTests.java b/server/src/test/java/org/elasticsearch/script/field/vectors/DenseVectorTests.java index 2be338efd7174..d06593d0349ba 100644 --- a/server/src/test/java/org/elasticsearch/script/field/vectors/DenseVectorTests.java +++ b/server/src/test/java/org/elasticsearch/script/field/vectors/DenseVectorTests.java @@ -68,7 +68,7 @@ public void testFloatVsListQueryVector() { assertEquals(knn.cosineSimilarity(arrayQV), knn.cosineSimilarity(listQV), 0.001f); assertEquals(knn.cosineSimilarity((Object) listQV), knn.cosineSimilarity((Object) arrayQV), 0.001f); - for (IndexVersion indexVersion : List.of(IndexVersions.V_7_4_0, IndexVersion.current())) { + for (IndexVersion indexVersion : List.of(IndexVersions.MINIMUM_COMPATIBLE, IndexVersion.current())) { BytesRef value = BinaryDenseVectorScriptDocValuesTests.mockEncodeDenseVector(docVector, ElementType.FLOAT, indexVersion); BinaryDenseVector bdv = new BinaryDenseVector(docVector, value, dims, indexVersion); diff --git a/test/framework/src/main/java/org/elasticsearch/index/mapper/MapperTestCase.java b/test/framework/src/main/java/org/elasticsearch/index/mapper/MapperTestCase.java index 9eaace8f93e58..09b697470c7e2 100644 --- a/test/framework/src/main/java/org/elasticsearch/index/mapper/MapperTestCase.java +++ b/test/framework/src/main/java/org/elasticsearch/index/mapper/MapperTestCase.java @@ -508,22 +508,6 @@ public final void testMeta() throws IOException { ); } - public final void testDeprecatedBoostWarning() throws IOException { - try { - createMapperService(DEPRECATED_BOOST_INDEX_VERSION, fieldMapping(b -> { - minimalMapping(b, DEPRECATED_BOOST_INDEX_VERSION); - b.field("boost", 2.0); - })); - String[] warnings = Strings.concatStringArrays( - getParseMinimalWarnings(DEPRECATED_BOOST_INDEX_VERSION), - new String[] { "Parameter [boost] on field [field] is deprecated and has no effect" } - ); - assertWarnings(warnings); - } catch (MapperParsingException e) { - assertThat(e.getMessage(), anyOf(containsString("Unknown parameter [boost]"), containsString("[boost : 2.0]"))); - } - } - public void testBoostNotAllowed() throws IOException { MapperParsingException e = expectThrows( MapperParsingException.class, diff --git a/test/framework/src/main/java/org/elasticsearch/index/mapper/MetadataMapperTestCase.java b/test/framework/src/main/java/org/elasticsearch/index/mapper/MetadataMapperTestCase.java index 1b00ba3e9fd09..dd3c59e8fc365 100644 --- a/test/framework/src/main/java/org/elasticsearch/index/mapper/MetadataMapperTestCase.java +++ b/test/framework/src/main/java/org/elasticsearch/index/mapper/MetadataMapperTestCase.java @@ -10,6 +10,7 @@ import org.elasticsearch.common.compress.CompressedXContent; import org.elasticsearch.core.CheckedConsumer; +import org.elasticsearch.core.UpdateForV9; import org.elasticsearch.index.IndexVersion; import org.elasticsearch.index.IndexVersions; import org.elasticsearch.index.mapper.MapperService.MergeReason; @@ -142,10 +143,13 @@ public final void testFixedMetaFieldsAreNotConfigurable() throws IOException { assertEquals("Failed to parse mapping: " + fieldName() + " is not configurable", exception.getMessage()); } + @UpdateForV9 + // This was previously testing for index versions between 7.0.0 and 8.6.0 but has been bumped to 8.0.0 - 8.6.0 + // Verify this is the correct action. public void testTypeAndFriendsAreAcceptedBefore_8_6_0() throws IOException { assumeTrue("Metadata field " + fieldName() + " isn't configurable", isConfigurable()); IndexVersion previousVersion = IndexVersionUtils.getPreviousVersion(IndexVersions.V_8_6_0); - IndexVersion version = IndexVersionUtils.randomVersionBetween(random(), IndexVersions.V_7_0_0, previousVersion); + IndexVersion version = IndexVersionUtils.randomVersionBetween(random(), IndexVersions.MINIMUM_COMPATIBLE, previousVersion); assumeTrue("Metadata field " + fieldName() + " is not supported on version " + version, isSupportedOn(version)); MapperService mapperService = createMapperService(version, mapping(b -> {})); // these parameters were previously silently ignored, they will still be ignored in existing indices diff --git a/test/framework/src/main/java/org/elasticsearch/snapshots/AbstractSnapshotIntegTestCase.java b/test/framework/src/main/java/org/elasticsearch/snapshots/AbstractSnapshotIntegTestCase.java index 1656a09daa123..769dfa09eccf5 100644 --- a/test/framework/src/main/java/org/elasticsearch/snapshots/AbstractSnapshotIntegTestCase.java +++ b/test/framework/src/main/java/org/elasticsearch/snapshots/AbstractSnapshotIntegTestCase.java @@ -33,6 +33,7 @@ import org.elasticsearch.common.unit.ByteSizeUnit; import org.elasticsearch.common.util.concurrent.EsExecutors; import org.elasticsearch.core.Nullable; +import org.elasticsearch.core.UpdateForV9; import org.elasticsearch.index.IndexVersion; import org.elasticsearch.index.IndexVersions; import org.elasticsearch.plugins.Plugin; @@ -364,12 +365,14 @@ protected static Settings.Builder indexSettingsNoReplicas(int shards) { /** * Randomly write an empty snapshot of an older version to an empty repository to simulate an older repository metadata format. */ + @UpdateForV9 + // This used to pick an index version from 7.0.0 to 8.9.0. The minimum now is 8.0.0 but it's not clear what the upper range should be protected void maybeInitWithOldSnapshotVersion(String repoName, Path repoPath) throws Exception { if (randomBoolean() && randomBoolean()) { initWithSnapshotVersion( repoName, repoPath, - IndexVersionUtils.randomVersionBetween(random(), IndexVersions.V_7_0_0, IndexVersions.V_8_9_0) + IndexVersionUtils.randomVersionBetween(random(), IndexVersions.MINIMUM_COMPATIBLE, IndexVersions.V_8_9_0) ); } } diff --git a/x-pack/plugin/ccr/src/test/java/org/elasticsearch/xpack/ccr/action/AutoFollowCoordinatorTests.java b/x-pack/plugin/ccr/src/test/java/org/elasticsearch/xpack/ccr/action/AutoFollowCoordinatorTests.java index 467ef3c68f648..008792966a4b2 100644 --- a/x-pack/plugin/ccr/src/test/java/org/elasticsearch/xpack/ccr/action/AutoFollowCoordinatorTests.java +++ b/x-pack/plugin/ccr/src/test/java/org/elasticsearch/xpack/ccr/action/AutoFollowCoordinatorTests.java @@ -32,6 +32,7 @@ import org.elasticsearch.common.util.concurrent.EsRejectedExecutionException; import org.elasticsearch.core.TimeValue; import org.elasticsearch.core.Tuple; +import org.elasticsearch.core.UpdateForV9; import org.elasticsearch.index.Index; import org.elasticsearch.index.IndexMode; import org.elasticsearch.index.IndexSettings; @@ -1812,6 +1813,8 @@ void updateAutoFollowMetadata(Function updateFunctio assertThat(counter.get(), equalTo(states.length)); } + @UpdateForV9 + @AwaitsFix(bugUrl = "ability to disable soft deletes was removed in 8.0 indexes so we can probably remove this test") public void testAutoFollowerSoftDeletesDisabled() { Client client = mock(Client.class); when(client.getRemoteClusterClient(anyString(), any(), any())).thenReturn(new RedirectToLocalClusterRemoteClusterClient(client)); diff --git a/x-pack/plugin/deprecation/src/test/java/org/elasticsearch/xpack/deprecation/IndexDeprecationChecksTests.java b/x-pack/plugin/deprecation/src/test/java/org/elasticsearch/xpack/deprecation/IndexDeprecationChecksTests.java index 62f89f650dec2..18872d00d54a0 100644 --- a/x-pack/plugin/deprecation/src/test/java/org/elasticsearch/xpack/deprecation/IndexDeprecationChecksTests.java +++ b/x-pack/plugin/deprecation/src/test/java/org/elasticsearch/xpack/deprecation/IndexDeprecationChecksTests.java @@ -160,7 +160,7 @@ public void testCamelCaseDeprecation() throws IOException { + "} }"; IndexMetadata simpleIndex = IndexMetadata.builder(randomAlphaOfLengthBetween(5, 10)) - .settings(settings(IndexVersions.V_7_0_0)) + .settings(settings(IndexVersions.MINIMUM_COMPATIBLE)) .numberOfShards(1) .numberOfReplicas(1) .putMapping(simpleMapping) diff --git a/x-pack/plugin/searchable-snapshots/src/test/java/org/elasticsearch/xpack/searchablesnapshots/upgrade/SearchableSnapshotIndexMetadataUpgraderTests.java b/x-pack/plugin/searchable-snapshots/src/test/java/org/elasticsearch/xpack/searchablesnapshots/upgrade/SearchableSnapshotIndexMetadataUpgraderTests.java index 594d356becf87..bd090b528bb97 100644 --- a/x-pack/plugin/searchable-snapshots/src/test/java/org/elasticsearch/xpack/searchablesnapshots/upgrade/SearchableSnapshotIndexMetadataUpgraderTests.java +++ b/x-pack/plugin/searchable-snapshots/src/test/java/org/elasticsearch/xpack/searchablesnapshots/upgrade/SearchableSnapshotIndexMetadataUpgraderTests.java @@ -7,11 +7,13 @@ package org.elasticsearch.xpack.searchablesnapshots.upgrade; +import org.apache.lucene.tests.util.LuceneTestCase; import org.elasticsearch.cluster.ClusterName; import org.elasticsearch.cluster.ClusterState; import org.elasticsearch.cluster.metadata.IndexMetadata; import org.elasticsearch.cluster.metadata.Metadata; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.core.UpdateForV9; import org.elasticsearch.index.IndexModule; import org.elasticsearch.index.IndexVersion; import org.elasticsearch.index.IndexVersions; @@ -27,6 +29,8 @@ import static org.hamcrest.Matchers.notNullValue; import static org.hamcrest.Matchers.sameInstance; +@UpdateForV9 +@LuceneTestCase.AwaitsFix(bugUrl = "this testing a number of pre 8.0 upgrade scenarios so needs updating or removal for 9.0") public class SearchableSnapshotIndexMetadataUpgraderTests extends ESTestCase { public void testNoUpgradeNeeded() { diff --git a/x-pack/plugin/snapshot-based-recoveries/src/test/java/org/elasticsearch/xpack/snapshotbasedrecoveries/recovery/plan/SnapshotsRecoveryPlannerServiceTests.java b/x-pack/plugin/snapshot-based-recoveries/src/test/java/org/elasticsearch/xpack/snapshotbasedrecoveries/recovery/plan/SnapshotsRecoveryPlannerServiceTests.java index 851d5f8f02b2a..449edd8f40ee2 100644 --- a/x-pack/plugin/snapshot-based-recoveries/src/test/java/org/elasticsearch/xpack/snapshotbasedrecoveries/recovery/plan/SnapshotsRecoveryPlannerServiceTests.java +++ b/x-pack/plugin/snapshot-based-recoveries/src/test/java/org/elasticsearch/xpack/snapshotbasedrecoveries/recovery/plan/SnapshotsRecoveryPlannerServiceTests.java @@ -26,6 +26,7 @@ import org.elasticsearch.common.unit.ByteSizeValue; import org.elasticsearch.core.CheckedConsumer; import org.elasticsearch.core.IOUtils; +import org.elasticsearch.core.UpdateForV9; import org.elasticsearch.index.IndexSettings; import org.elasticsearch.index.IndexVersion; import org.elasticsearch.index.IndexVersions; @@ -202,6 +203,8 @@ public void fetchLatestSnapshotsForShard(ShardId shardId, ActionListener { boolean shareFilesWithSource = randomBoolean(); @@ -387,6 +390,8 @@ public void fetchLatestSnapshotsForShard(ShardId shardId, ActionListener { Store.MetadataSnapshot targetMetadataSnapshot = generateRandomTargetState(store); diff --git a/x-pack/plugin/spatial/src/internalClusterTest/java/org/elasticsearch/xpack/spatial/search/GeoBoundingBoxQueryLegacyGeoShapeWithDocValuesIT.java b/x-pack/plugin/spatial/src/internalClusterTest/java/org/elasticsearch/xpack/spatial/search/GeoBoundingBoxQueryLegacyGeoShapeWithDocValuesIT.java index 296af0c983279..2c92d5387d871 100644 --- a/x-pack/plugin/spatial/src/internalClusterTest/java/org/elasticsearch/xpack/spatial/search/GeoBoundingBoxQueryLegacyGeoShapeWithDocValuesIT.java +++ b/x-pack/plugin/spatial/src/internalClusterTest/java/org/elasticsearch/xpack/spatial/search/GeoBoundingBoxQueryLegacyGeoShapeWithDocValuesIT.java @@ -7,6 +7,8 @@ package org.elasticsearch.xpack.spatial.search; +import org.apache.lucene.tests.util.LuceneTestCase; +import org.elasticsearch.core.UpdateForV9; import org.elasticsearch.index.IndexVersion; import org.elasticsearch.index.IndexVersions; import org.elasticsearch.plugins.Plugin; @@ -20,6 +22,8 @@ import java.util.Collection; import java.util.Collections; +@UpdateForV9 +@LuceneTestCase.AwaitsFix(bugUrl = "this is testing legacy functionality so can likely be removed in 9.0") public class GeoBoundingBoxQueryLegacyGeoShapeWithDocValuesIT extends GeoBoundingBoxQueryIntegTestCase { @Override diff --git a/x-pack/plugin/spatial/src/internalClusterTest/java/org/elasticsearch/xpack/spatial/search/LegacyGeoShapeWithDocValuesIT.java b/x-pack/plugin/spatial/src/internalClusterTest/java/org/elasticsearch/xpack/spatial/search/LegacyGeoShapeWithDocValuesIT.java index 3cf70b1d477b6..b48f5a8c17e98 100644 --- a/x-pack/plugin/spatial/src/internalClusterTest/java/org/elasticsearch/xpack/spatial/search/LegacyGeoShapeWithDocValuesIT.java +++ b/x-pack/plugin/spatial/src/internalClusterTest/java/org/elasticsearch/xpack/spatial/search/LegacyGeoShapeWithDocValuesIT.java @@ -7,6 +7,8 @@ package org.elasticsearch.xpack.spatial.search; +import org.apache.lucene.tests.util.LuceneTestCase; +import org.elasticsearch.core.UpdateForV9; import org.elasticsearch.geometry.Circle; import org.elasticsearch.index.IndexVersion; import org.elasticsearch.index.IndexVersions; @@ -27,6 +29,8 @@ import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertHitCount; import static org.hamcrest.Matchers.containsString; +@UpdateForV9 +@LuceneTestCase.AwaitsFix(bugUrl = "this is testing legacy functionality so can likely be removed in 9.0") public class LegacyGeoShapeWithDocValuesIT extends GeoShapeIntegTestCase { @Override diff --git a/x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/index/mapper/GeoShapeWithDocValuesFieldMapperTests.java b/x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/index/mapper/GeoShapeWithDocValuesFieldMapperTests.java index 5999a3ff1e151..0e04cfe6757bf 100644 --- a/x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/index/mapper/GeoShapeWithDocValuesFieldMapperTests.java +++ b/x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/index/mapper/GeoShapeWithDocValuesFieldMapperTests.java @@ -10,6 +10,7 @@ import org.apache.lucene.util.BytesRef; import org.elasticsearch.common.Strings; import org.elasticsearch.common.geo.Orientation; +import org.elasticsearch.core.UpdateForV9; import org.elasticsearch.geometry.Geometry; import org.elasticsearch.geometry.utils.GeometryValidator; import org.elasticsearch.geometry.utils.WellKnownBinary; @@ -91,16 +92,6 @@ public void testDefaultConfiguration() throws IOException { assertTrue(fieldType.hasDocValues()); } - public void testDefaultDocValueConfigurationOnPre7_8() throws IOException { - IndexVersion oldVersion = IndexVersionUtils.randomVersionBetween(random(), IndexVersions.V_7_0_0, IndexVersions.V_7_7_0); - DocumentMapper defaultMapper = createDocumentMapper(oldVersion, fieldMapping(this::minimalMapping)); - Mapper fieldMapper = defaultMapper.mappers().getMapper(FIELD_NAME); - assertThat(fieldMapper, instanceOf(fieldMapperClass())); - - GeoShapeWithDocValuesFieldMapper geoShapeFieldMapper = (GeoShapeWithDocValuesFieldMapper) fieldMapper; - assertFalse(geoShapeFieldMapper.fieldType().hasDocValues()); - } - /** * Test that orientation parameter correctly parses */ @@ -289,6 +280,8 @@ public void testInvalidCurrentVersion() { ); } + @UpdateForV9 + @AwaitsFix(bugUrl = "this is testing legacy functionality so can likely be removed in 9.0") public void testGeoShapeLegacyMerge() throws Exception { IndexVersion version = IndexVersionUtils.randomPreviousCompatibleVersion(random(), IndexVersions.V_8_0_0); MapperService m = createMapperService(version, fieldMapping(b -> b.field("type", getFieldName()))); diff --git a/x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/index/mapper/ShapeFieldMapperTests.java b/x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/index/mapper/ShapeFieldMapperTests.java index 35ccfe8deb5fe..d030a2bbf81ad 100644 --- a/x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/index/mapper/ShapeFieldMapperTests.java +++ b/x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/index/mapper/ShapeFieldMapperTests.java @@ -114,7 +114,7 @@ public void testDefaultConfiguration() throws IOException { public void testDefaultDocValueConfigurationOnPre8_4() throws IOException { // TODO verify which version this test is actually valid for (when PR is actually merged) - IndexVersion oldVersion = IndexVersionUtils.randomVersionBetween(random(), IndexVersions.V_7_0_0, IndexVersions.V_8_3_0); + IndexVersion oldVersion = IndexVersionUtils.randomVersionBetween(random(), IndexVersions.MINIMUM_COMPATIBLE, IndexVersions.V_8_3_0); DocumentMapper defaultMapper = createDocumentMapper(oldVersion, fieldMapping(this::minimalMapping)); Mapper fieldMapper = defaultMapper.mappers().getMapper(FIELD_NAME); assertThat(fieldMapper, instanceOf(fieldMapperClass())); diff --git a/x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/index/query/GeoShapeQueryBuilderGeoShapeTests.java b/x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/index/query/GeoShapeQueryBuilderGeoShapeTests.java index 593656411eb41..405ef5c480687 100644 --- a/x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/index/query/GeoShapeQueryBuilderGeoShapeTests.java +++ b/x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/index/query/GeoShapeQueryBuilderGeoShapeTests.java @@ -13,7 +13,6 @@ import org.elasticsearch.geo.GeometryTestUtils; import org.elasticsearch.geometry.Geometry; import org.elasticsearch.geometry.ShapeType; -import org.elasticsearch.index.IndexVersions; import org.elasticsearch.index.mapper.MapperService; import org.elasticsearch.index.query.GeoShapeQueryBuilder; import org.elasticsearch.index.query.SearchExecutionContext; @@ -88,25 +87,12 @@ protected GeoShapeQueryBuilder doCreateTestQueryBuilder(boolean indexedShape) { } if (ESTestCase.randomBoolean()) { SearchExecutionContext context = AbstractBuilderTestCase.createSearchExecutionContext(); - if (context.indexVersionCreated().onOrAfter(IndexVersions.V_7_5_0)) { // CONTAINS is only supported from version 7.5 - if (shapeType == ShapeType.LINESTRING || shapeType == ShapeType.MULTILINESTRING) { - builder.relation(ESTestCase.randomFrom(ShapeRelation.DISJOINT, ShapeRelation.INTERSECTS, ShapeRelation.CONTAINS)); - } else { - builder.relation( - ESTestCase.randomFrom( - ShapeRelation.DISJOINT, - ShapeRelation.INTERSECTS, - ShapeRelation.WITHIN, - ShapeRelation.CONTAINS - ) - ); - } + if (shapeType == ShapeType.LINESTRING || shapeType == ShapeType.MULTILINESTRING) { + builder.relation(ESTestCase.randomFrom(ShapeRelation.DISJOINT, ShapeRelation.INTERSECTS, ShapeRelation.CONTAINS)); } else { - if (shapeType == ShapeType.LINESTRING || shapeType == ShapeType.MULTILINESTRING) { - builder.relation(ESTestCase.randomFrom(ShapeRelation.DISJOINT, ShapeRelation.INTERSECTS)); - } else { - builder.relation(ESTestCase.randomFrom(ShapeRelation.DISJOINT, ShapeRelation.INTERSECTS, ShapeRelation.WITHIN)); - } + builder.relation( + ESTestCase.randomFrom(ShapeRelation.DISJOINT, ShapeRelation.INTERSECTS, ShapeRelation.WITHIN, ShapeRelation.CONTAINS) + ); } } diff --git a/x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/index/query/LegacyGeoShapeWithDocValuesQueryTests.java b/x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/index/query/LegacyGeoShapeWithDocValuesQueryTests.java index 053931a882e4c..de66d0b822c94 100644 --- a/x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/index/query/LegacyGeoShapeWithDocValuesQueryTests.java +++ b/x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/index/query/LegacyGeoShapeWithDocValuesQueryTests.java @@ -7,9 +7,11 @@ package org.elasticsearch.xpack.spatial.index.query; +import org.apache.lucene.tests.util.LuceneTestCase; import org.elasticsearch.common.Strings; import org.elasticsearch.common.geo.GeoJson; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.core.UpdateForV9; import org.elasticsearch.geo.GeometryTestUtils; import org.elasticsearch.geometry.Geometry; import org.elasticsearch.geometry.MultiPoint; @@ -39,6 +41,8 @@ import static org.elasticsearch.xcontent.XContentFactory.jsonBuilder; import static org.hamcrest.Matchers.containsString; +@UpdateForV9 +@LuceneTestCase.AwaitsFix(bugUrl = "this is testing legacy functionality so can likely be removed in 9.0") public class LegacyGeoShapeWithDocValuesQueryTests extends GeoShapeQueryTestCase { @SuppressWarnings("deprecation") diff --git a/x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/index/query/ShapeQueryBuilderOverShapeTests.java b/x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/index/query/ShapeQueryBuilderOverShapeTests.java index aa5ae72df2b9e..72073a6eff550 100644 --- a/x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/index/query/ShapeQueryBuilderOverShapeTests.java +++ b/x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/index/query/ShapeQueryBuilderOverShapeTests.java @@ -13,7 +13,6 @@ import org.elasticsearch.geo.ShapeTestUtils; import org.elasticsearch.geometry.Geometry; import org.elasticsearch.geometry.ShapeType; -import org.elasticsearch.index.IndexVersions; import org.elasticsearch.index.mapper.MapperService; import org.elasticsearch.index.query.SearchExecutionContext; @@ -33,18 +32,10 @@ protected void initializeAdditionalMappings(MapperService mapperService) throws @Override protected ShapeRelation getShapeRelation(ShapeType type) { SearchExecutionContext context = createSearchExecutionContext(); - if (context.indexVersionCreated().onOrAfter(IndexVersions.V_7_5_0)) { // CONTAINS is only supported from version 7.5 - if (type == ShapeType.LINESTRING || type == ShapeType.MULTILINESTRING) { - return randomFrom(ShapeRelation.DISJOINT, ShapeRelation.INTERSECTS, ShapeRelation.CONTAINS); - } else { - return randomFrom(ShapeRelation.DISJOINT, ShapeRelation.INTERSECTS, ShapeRelation.WITHIN, ShapeRelation.CONTAINS); - } + if (type == ShapeType.LINESTRING || type == ShapeType.MULTILINESTRING) { + return randomFrom(ShapeRelation.DISJOINT, ShapeRelation.INTERSECTS, ShapeRelation.CONTAINS); } else { - if (type == ShapeType.LINESTRING || type == ShapeType.MULTILINESTRING) { - return randomFrom(ShapeRelation.DISJOINT, ShapeRelation.INTERSECTS); - } else { - return randomFrom(ShapeRelation.DISJOINT, ShapeRelation.INTERSECTS, ShapeRelation.WITHIN); - } + return randomFrom(ShapeRelation.DISJOINT, ShapeRelation.INTERSECTS, ShapeRelation.WITHIN, ShapeRelation.CONTAINS); } } diff --git a/x-pack/plugin/wildcard/src/test/java/org/elasticsearch/xpack/wildcard/mapper/WildcardFieldMapperTests.java b/x-pack/plugin/wildcard/src/test/java/org/elasticsearch/xpack/wildcard/mapper/WildcardFieldMapperTests.java index 578fc90bd3e5b..7abce10a82f3c 100644 --- a/x-pack/plugin/wildcard/src/test/java/org/elasticsearch/xpack/wildcard/mapper/WildcardFieldMapperTests.java +++ b/x-pack/plugin/wildcard/src/test/java/org/elasticsearch/xpack/wildcard/mapper/WildcardFieldMapperTests.java @@ -50,7 +50,6 @@ import org.elasticsearch.index.Index; import org.elasticsearch.index.IndexSettings; import org.elasticsearch.index.IndexVersion; -import org.elasticsearch.index.IndexVersions; import org.elasticsearch.index.cache.bitset.BitsetFilterCache; import org.elasticsearch.index.fielddata.FieldDataContext; import org.elasticsearch.index.fielddata.IndexFieldData; @@ -106,7 +105,6 @@ static SearchExecutionContext createMockSearchExecutionContext(boolean allowExpe static final int MAX_FIELD_LENGTH = 30; static WildcardFieldMapper wildcardFieldType; - static WildcardFieldMapper wildcardFieldType79; static KeywordFieldMapper keywordFieldType; private DirectoryReader rewriteReader; private BaseDirectoryWrapper rewriteDir; @@ -128,9 +126,6 @@ public void setUp() throws Exception { builder.ignoreAbove(MAX_FIELD_LENGTH); wildcardFieldType = builder.build(MapperBuilderContext.root(false, false)); - Builder builder79 = new WildcardFieldMapper.Builder(WILDCARD_FIELD_NAME, IndexVersions.V_7_9_0); - wildcardFieldType79 = builder79.build(MapperBuilderContext.root(false, false)); - org.elasticsearch.index.mapper.KeywordFieldMapper.Builder kwBuilder = new KeywordFieldMapper.Builder( KEYWORD_FIELD_NAME, IndexVersion.current() @@ -211,37 +206,6 @@ public void testIgnoreAbove() throws IOException { assertTrue(fields.stream().anyMatch(field -> "field".equals(field.stringValue()))); } - public void testBWCIndexVersion() throws IOException { - // Create old format index using wildcard ngram analyzer used in 7.9 launch - Directory dir = newDirectory(); - IndexWriterConfig iwc = newIndexWriterConfig(WildcardFieldMapper.WILDCARD_ANALYZER_7_9); - iwc.setMergePolicy(newTieredMergePolicy(random())); - RandomIndexWriter iw = new RandomIndexWriter(random(), dir, iwc); - - Document doc = new Document(); - LuceneDocument parseDoc = new LuceneDocument(); - addFields(parseDoc, doc, "a b"); - indexDoc(parseDoc, doc, iw); - - iw.forceMerge(1); - DirectoryReader reader = iw.getReader(); - IndexSearcher searcher = newSearcher(reader); - iw.close(); - - // Unnatural circumstance - testing we fail if we were to use the new analyzer on old index - Query oldWildcardFieldQuery = wildcardFieldType.fieldType().wildcardQuery("a b", null, null); - TopDocs oldWildcardFieldTopDocs = searcher.search(oldWildcardFieldQuery, 10, Sort.INDEXORDER); - assertThat(oldWildcardFieldTopDocs.totalHits.value, equalTo(0L)); - - // Natural circumstance test we revert to the old analyzer for old indices - Query wildcardFieldQuery = wildcardFieldType79.fieldType().wildcardQuery("a b", null, null); - TopDocs wildcardFieldTopDocs = searcher.search(wildcardFieldQuery, 10, Sort.INDEXORDER); - assertThat(wildcardFieldTopDocs.totalHits.value, equalTo(1L)); - - reader.close(); - dir.close(); - } - // Test long query strings don't cause exceptions public void testTooBigQueryField() throws IOException { Directory dir = newDirectory(); From c567e4dd20185ac2561fb27b851f2cfc957fca5e Mon Sep 17 00:00:00 2001 From: Mark Vieira Date: Thu, 5 Sep 2024 15:31:33 -0700 Subject: [PATCH 23/34] Cleanup --- .../src/main/java/org/elasticsearch/index/IndexVersions.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/server/src/main/java/org/elasticsearch/index/IndexVersions.java b/server/src/main/java/org/elasticsearch/index/IndexVersions.java index 572f0d8bc9b48..7bc8273eef525 100644 --- a/server/src/main/java/org/elasticsearch/index/IndexVersions.java +++ b/server/src/main/java/org/elasticsearch/index/IndexVersions.java @@ -166,8 +166,6 @@ private static IndexVersion def(int id, Version luceneVersion) { * In branches 8.7-8.11 see server/src/main/java/org/elasticsearch/index/IndexVersion.java for the equivalent definitions. */ - @UpdateForV9 - // This needs to be bumped to V8_0_0 and all old references removed public static final IndexVersion MINIMUM_COMPATIBLE = V_8_0_0; static final NavigableMap VERSION_IDS = getAllVersionIds(IndexVersions.class); @@ -219,8 +217,9 @@ static NavigableMap getAllVersionIds(Class cls) { return Collections.unmodifiableNavigableMap(builder); } + @UpdateForV9 + // We can simplify this once we've removed all references to index versions earlier than MINIMUM_COMPATIBLE static Collection getAllVersions() { - // TODO: We can simplify this once we've removed all references to index versions earlier than MINIMUM_COMPATIBLE return VERSION_IDS.values().stream().filter(v -> v.onOrAfter(MINIMUM_COMPATIBLE)).toList(); } From 960ce1c34d5b0a1a92c889245dc2a7460a447f4b Mon Sep 17 00:00:00 2001 From: Mark Vieira Date: Thu, 5 Sep 2024 16:14:47 -0700 Subject: [PATCH 24/34] More test fixes --- .../cluster/stats/VersionStatsTests.java | 16 +-- .../index/engine/InternalEngineTests.java | 117 ------------------ .../index/mapper/ParametrizedMapperTests.java | 36 +----- 3 files changed, 8 insertions(+), 161 deletions(-) diff --git a/server/src/test/java/org/elasticsearch/action/admin/cluster/stats/VersionStatsTests.java b/server/src/test/java/org/elasticsearch/action/admin/cluster/stats/VersionStatsTests.java index 77f9886e2739a..4bf5bfc269881 100644 --- a/server/src/test/java/org/elasticsearch/action/admin/cluster/stats/VersionStatsTests.java +++ b/server/src/test/java/org/elasticsearch/action/admin/cluster/stats/VersionStatsTests.java @@ -26,7 +26,6 @@ import org.elasticsearch.index.shard.ShardPath; import org.elasticsearch.index.store.StoreStats; import org.elasticsearch.test.AbstractWireSerializingTestCase; -import org.elasticsearch.test.index.IndexVersionUtils; import java.nio.file.Path; import java.util.ArrayList; @@ -55,7 +54,7 @@ protected VersionStats mutateInstance(VersionStats instance) { return new VersionStats(instance.versionStats().stream().map(svs -> { return switch (randomIntBetween(1, 4)) { case 1 -> new VersionStats.SingleVersionStats( - IndexVersionUtils.randomCompatibleVersion(random()), + IndexVersions.V_8_3_0, svs.indexCount, svs.primaryShardCount, svs.totalPrimaryByteCount @@ -90,12 +89,12 @@ public void testCreation() { metadata = new Metadata.Builder().put(indexMeta("foo", IndexVersion.current(), 4), true) .put(indexMeta("bar", IndexVersion.current(), 3), true) - .put(indexMeta("baz", IndexVersions.MINIMUM_COMPATIBLE, 2), true) + .put(indexMeta("baz", IndexVersions.V_8_0_0, 2), true) .build(); stats = VersionStats.of(metadata, Collections.emptyList()); assertThat(stats.versionStats().size(), equalTo(2)); VersionStats.SingleVersionStats s1 = new VersionStats.SingleVersionStats(IndexVersion.current(), 2, 7, 0); - VersionStats.SingleVersionStats s2 = new VersionStats.SingleVersionStats(IndexVersions.MINIMUM_COMPATIBLE, 1, 2, 0); + VersionStats.SingleVersionStats s2 = new VersionStats.SingleVersionStats(IndexVersions.V_8_0_0, 1, 2, 0); assertThat(stats.versionStats(), containsInAnyOrder(s1, s2)); ShardId shardId = new ShardId("bar", "uuid", 0); @@ -135,7 +134,7 @@ public void testCreation() { stats = VersionStats.of(metadata, Collections.singletonList(nodeResponse)); assertThat(stats.versionStats().size(), equalTo(2)); s1 = new VersionStats.SingleVersionStats(IndexVersion.current(), 2, 7, 100); - s2 = new VersionStats.SingleVersionStats(IndexVersions.MINIMUM_COMPATIBLE, 1, 2, 0); + s2 = new VersionStats.SingleVersionStats(IndexVersions.V_8_0_0, 1, 2, 0); assertThat(stats.versionStats(), containsInAnyOrder(s1, s2)); } @@ -144,12 +143,7 @@ private static IndexMetadata indexMeta(String name, IndexVersion version, int pr } public static VersionStats randomInstance() { - List versions = List.of( - IndexVersion.current(), - IndexVersionUtils.randomCompatibleVersion(random()), - IndexVersionUtils.randomCompatibleVersion(random()), - IndexVersionUtils.randomCompatibleVersion(random()) - ); + List versions = List.of(IndexVersion.current(), IndexVersions.V_8_0_0, IndexVersions.V_8_1_0, IndexVersions.V_8_2_0); List stats = new ArrayList<>(); for (IndexVersion v : versions) { VersionStats.SingleVersionStats s = new VersionStats.SingleVersionStats( diff --git a/server/src/test/java/org/elasticsearch/index/engine/InternalEngineTests.java b/server/src/test/java/org/elasticsearch/index/engine/InternalEngineTests.java index b7197c3db65cd..338928b59a162 100644 --- a/server/src/test/java/org/elasticsearch/index/engine/InternalEngineTests.java +++ b/server/src/test/java/org/elasticsearch/index/engine/InternalEngineTests.java @@ -95,7 +95,6 @@ import org.elasticsearch.core.IOUtils; import org.elasticsearch.core.TimeValue; import org.elasticsearch.core.Tuple; -import org.elasticsearch.core.UpdateForV9; import org.elasticsearch.index.IndexModule; import org.elasticsearch.index.IndexSettings; import org.elasticsearch.index.IndexVersion; @@ -175,7 +174,6 @@ import java.util.function.ToLongBiFunction; import java.util.stream.Collectors; import java.util.stream.LongStream; -import java.util.stream.StreamSupport; import static java.util.Collections.shuffle; import static org.elasticsearch.cluster.routing.TestShardRouting.shardRoutingBuilder; @@ -6616,121 +6614,6 @@ public void testRebuildLocalCheckpointTrackerAndVersionMap() throws Exception { } } - @UpdateForV9 - // below we were looking for an index version between minimum compatible and 8.0.0 and this has been updated but might need to be - // verified if that is the correct behavior - public void testRecoverFromHardDeletesIndex() throws Exception { - IndexWriterFactory hardDeletesWriter = (directory, iwc) -> new IndexWriter(directory, iwc) { - boolean isTombstone(Iterable doc) { - return StreamSupport.stream(doc.spliterator(), false).anyMatch(d -> d.name().equals(Lucene.SOFT_DELETES_FIELD)); - } - - @Override - public long addDocument(Iterable doc) throws IOException { - if (isTombstone(doc)) { - return 0; - } - return super.addDocument(doc); - } - - @Override - public long addDocuments(Iterable> docs) throws IOException { - if (StreamSupport.stream(docs.spliterator(), false).anyMatch(this::isTombstone)) { - return 0; - } - return super.addDocuments(docs); - } - - @Override - public long softUpdateDocument(Term term, Iterable doc, Field... softDeletes) throws IOException { - if (isTombstone(doc)) { - return super.deleteDocuments(term); - } else { - return super.updateDocument(term, doc); - } - } - - @Override - public long softUpdateDocuments(Term term, Iterable> docs, Field... softDeletes) - throws IOException { - if (StreamSupport.stream(docs.spliterator(), false).anyMatch(this::isTombstone)) { - return super.deleteDocuments(term); - } else { - return super.updateDocuments(term, docs); - } - } - }; - final AtomicLong globalCheckpoint = new AtomicLong(SequenceNumbers.NO_OPS_PERFORMED); - Path translogPath = createTempDir(); - List operations = generateHistoryOnReplica(between(1, 500), randomBoolean(), randomBoolean(), randomBoolean()); - final IndexMetadata indexMetadata = IndexMetadata.builder(defaultSettings.getIndexMetadata()) - .settings( - Settings.builder() - .put(defaultSettings.getSettings()) - .put( - IndexMetadata.SETTING_VERSION_CREATED, - // This might need to be updated for the version 9.0 bump - IndexVersionUtils.randomCompatibleVersion(random()) - ) - .put(IndexSettings.INDEX_SOFT_DELETES_SETTING.getKey(), false) - ) - .build(); - final IndexSettings indexSettings = IndexSettingsModule.newIndexSettings(indexMetadata); - try (Store store = createStore()) { - EngineConfig config = config(indexSettings, store, translogPath, NoMergePolicy.INSTANCE, null, null, globalCheckpoint::get); - final List docs; - try ( - InternalEngine hardDeletesEngine = createEngine( - indexSettings, - store, - translogPath, - newMergePolicy(), - hardDeletesWriter, - null, - globalCheckpoint::get - ) - ) { - for (Engine.Operation op : operations) { - applyOperation(hardDeletesEngine, op); - if (randomBoolean()) { - hardDeletesEngine.syncTranslog(); - globalCheckpoint.set(randomLongBetween(globalCheckpoint.get(), hardDeletesEngine.getPersistedLocalCheckpoint())); - } - if (randomInt(100) < 10) { - hardDeletesEngine.refresh("test"); - } - if (randomInt(100) < 5) { - hardDeletesEngine.flush(true, true); - } - } - docs = getDocIds(hardDeletesEngine, true); - } - // We need to remove min_retained_seq_no commit tag as the actual hard-deletes engine does not have it. - store.trimUnsafeCommits(translogPath); - Map userData = new HashMap<>(store.readLastCommittedSegmentsInfo().userData); - userData.remove(Engine.MIN_RETAINED_SEQNO); - IndexWriterConfig indexWriterConfig = new IndexWriterConfig(null).setOpenMode(IndexWriterConfig.OpenMode.APPEND) - .setIndexCreatedVersionMajor(IndexVersion.current().luceneVersion().major) - .setSoftDeletesField(Lucene.SOFT_DELETES_FIELD) - .setCommitOnClose(false) - .setMergePolicy(NoMergePolicy.INSTANCE); - try (IndexWriter writer = new IndexWriter(store.directory(), indexWriterConfig)) { - writer.setLiveCommitData(userData.entrySet()); - writer.commit(); - } - try (InternalEngine softDeletesEngine = new InternalEngine(config)) { // do not recover from translog - assertThat(softDeletesEngine.getLastCommittedSegmentInfos().userData, equalTo(userData)); - assertThat(softDeletesEngine.getVersionMap().keySet(), empty()); - recoverFromTranslog(softDeletesEngine, translogHandler, Long.MAX_VALUE); - if (randomBoolean()) { - engine.forceMerge(randomBoolean(), 1, false, UUIDs.randomBase64UUID()); - } - assertThat(getDocIds(softDeletesEngine, true), equalTo(docs)); - assertConsistentHistoryBetweenTranslogAndLuceneIndex(softDeletesEngine); - } - } - } - void assertLuceneOperations(InternalEngine engine, long expectedAppends, long expectedUpdates, long expectedDeletes) { String message = "Lucene operations mismatched;" + " appends [actual:" diff --git a/server/src/test/java/org/elasticsearch/index/mapper/ParametrizedMapperTests.java b/server/src/test/java/org/elasticsearch/index/mapper/ParametrizedMapperTests.java index 55761e5ec339d..f220aee93c9e6 100644 --- a/server/src/test/java/org/elasticsearch/index/mapper/ParametrizedMapperTests.java +++ b/server/src/test/java/org/elasticsearch/index/mapper/ParametrizedMapperTests.java @@ -16,6 +16,7 @@ import org.elasticsearch.common.lucene.Lucene; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.xcontent.XContentHelper; +import org.elasticsearch.core.UpdateForV9; import org.elasticsearch.index.IndexSettings; import org.elasticsearch.index.IndexVersion; import org.elasticsearch.index.IndexVersions; @@ -26,8 +27,6 @@ import org.elasticsearch.plugins.MapperPlugin; import org.elasticsearch.plugins.Plugin; import org.elasticsearch.script.ScriptCompiler; -import org.elasticsearch.test.TransportVersionUtils; -import org.elasticsearch.test.index.IndexVersionUtils; import org.elasticsearch.xcontent.ToXContent; import org.elasticsearch.xcontent.XContentBuilder; import org.elasticsearch.xcontent.json.JsonXContent; @@ -531,37 +530,6 @@ public void testDeprecatedParameterName() { {"field":{"type":"test_mapper","fixed2":true,"required":"value"}}""", Strings.toString(mapper)); } - /** - * test parsing mapping from dynamic templates, should ignore unknown parameters for bwc and log warning before 8.0.0 - */ - public void testBWCunknownParametersfromDynamicTemplates() { - String mapping = """ - {"type":"test_mapper","some_unknown_parameter":true,"required":"value"}"""; - TestMapper mapper = fromMapping( - mapping, - IndexVersionUtils.randomPreviousCompatibleVersion(random(), IndexVersions.V_8_0_0), - TransportVersionUtils.randomVersionBetween( - random(), - TransportVersions.V_7_0_0, - TransportVersionUtils.getPreviousVersion(TransportVersions.V_8_0_0) - ), - true - ); - assertNotNull(mapper); - assertWarnings( - "Parameter [some_unknown_parameter] is used in a dynamic template mapping and has no effect on type [test_mapper]. " - + "Usage will result in an error in future major versions and should be removed." - ); - assertEquals(""" - {"field":{"type":"test_mapper","required":"value"}}""", Strings.toString(mapper)); - - MapperParsingException ex = expectThrows( - MapperParsingException.class, - () -> fromMapping(mapping, IndexVersions.V_8_0_0, TransportVersions.V_8_0_0, true) - ); - assertEquals("unknown parameter [some_unknown_parameter] on mapper [field] of type [test_mapper]", ex.getMessage()); - } - public void testAnalyzers() { String mapping = """ {"type":"test_mapper","analyzer":"_standard","required":"value"}"""; @@ -593,6 +561,8 @@ public void testAnalyzers() { ); } + @UpdateForV9 + @AwaitsFix(bugUrl = "this is testing legacy functionality so can likely be removed in 9.0") public void testDeprecatedParameters() { // 'index' is declared explicitly, 'store' is not, but is one of the previously always-accepted params String mapping = """ From 05a5469449cf379da46094834b42cbd88ca9de17 Mon Sep 17 00:00:00 2001 From: Mark Vieira Date: Thu, 5 Sep 2024 16:24:03 -0700 Subject: [PATCH 25/34] Remove temporary skip --- .buildkite/pipelines/intake.template.yml | 1 - .buildkite/pipelines/intake.yml | 1 - 2 files changed, 2 deletions(-) diff --git a/.buildkite/pipelines/intake.template.yml b/.buildkite/pipelines/intake.template.yml index 554a2d9175373..1a513971b2c10 100644 --- a/.buildkite/pipelines/intake.template.yml +++ b/.buildkite/pipelines/intake.template.yml @@ -83,7 +83,6 @@ steps: - trigger: elasticsearch-dra-workflow label: Trigger DRA snapshot workflow async: true - skip: "don't try to publish for this test branch" build: branch: "$BUILDKITE_BRANCH" commit: "$BUILDKITE_COMMIT" diff --git a/.buildkite/pipelines/intake.yml b/.buildkite/pipelines/intake.yml index 2435fffa8ee30..e7ba4ba7610cd 100644 --- a/.buildkite/pipelines/intake.yml +++ b/.buildkite/pipelines/intake.yml @@ -84,7 +84,6 @@ steps: - trigger: elasticsearch-dra-workflow label: Trigger DRA snapshot workflow async: true - skip: "don't try to publish for this test branch" build: branch: "$BUILDKITE_BRANCH" commit: "$BUILDKITE_COMMIT" From 89ebde0a6229549a49d2a10d690773057d90169f Mon Sep 17 00:00:00 2001 From: Mark Vieira Date: Thu, 5 Sep 2024 17:02:55 -0700 Subject: [PATCH 26/34] AwaitsFix #112572 --- .../java/org/elasticsearch/xpack/eql/EsEQLCorrectnessIT.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/x-pack/plugin/eql/qa/correctness/src/javaRestTest/java/org/elasticsearch/xpack/eql/EsEQLCorrectnessIT.java b/x-pack/plugin/eql/qa/correctness/src/javaRestTest/java/org/elasticsearch/xpack/eql/EsEQLCorrectnessIT.java index 1d5ed1ffdcbab..478e2f93db25f 100644 --- a/x-pack/plugin/eql/qa/correctness/src/javaRestTest/java/org/elasticsearch/xpack/eql/EsEQLCorrectnessIT.java +++ b/x-pack/plugin/eql/qa/correctness/src/javaRestTest/java/org/elasticsearch/xpack/eql/EsEQLCorrectnessIT.java @@ -13,6 +13,7 @@ import org.apache.http.HttpHost; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import org.apache.lucene.tests.util.LuceneTestCase.AwaitsFix; import org.apache.lucene.tests.util.TimeUnits; import org.elasticsearch.client.HttpAsyncResponseConsumerFactory; import org.elasticsearch.client.Request; @@ -45,6 +46,7 @@ @TimeoutSuite(millis = 30 * TimeUnits.MINUTE) @TestLogging(value = "org.elasticsearch.xpack.eql.EsEQLCorrectnessIT:INFO", reason = "Log query execution time") +@AwaitsFix(bugUrl = "https://github.com/elastic/elasticsearch/issues/112572") public class EsEQLCorrectnessIT extends ESRestTestCase { private static final String PARAM_FORMATTING = "%1$s"; From 117bb71d5229ed3e01b5f30bb99b27f82e1341ac Mon Sep 17 00:00:00 2001 From: Mark Vieira Date: Fri, 6 Sep 2024 08:04:46 -0700 Subject: [PATCH 27/34] Update missing references to 8.x branch --- .backportrc.json | 7 ++++--- branches.json | 3 +++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.backportrc.json b/.backportrc.json index 77b06cd419275..d2e92817c026b 100644 --- a/.backportrc.json +++ b/.backportrc.json @@ -1,9 +1,10 @@ { "upstream" : "elastic/elasticsearch", - "targetBranchChoices" : [ "main", "8.15", "8.14", "8.13", "8.12", "8.11", "8.10", "8.9", "8.8", "8.7", "8.6", "8.5", "8.4", "8.3", "8.2", "8.1", "8.0", "7.17", "6.8" ], + "targetBranchChoices" : [ "main", "8.x", "8.15", "8.14", "8.13", "8.12", "8.11", "8.10", "8.9", "8.8", "8.7", "8.6", "8.5", "8.4", "8.3", "8.2", "8.1", "8.0", "7.17", "6.8" ], "targetPRLabels" : [ "backport" ], "branchLabelMapping" : { - "^v8.16.0$" : "main", + "^v9.0.0$" : "main", + "^v8.16.0$" : "8.x", "^v(\\d+).(\\d+).\\d+(?:-(?:alpha|beta|rc)\\d+)?$" : "$1.$2" } -} \ No newline at end of file +} diff --git a/branches.json b/branches.json index 1d860501cbc87..e464d6179f2ba 100644 --- a/branches.json +++ b/branches.json @@ -4,6 +4,9 @@ { "branch": "main" }, + { + "branch": "8.x" + }, { "branch": "8.15" }, From dd1f62359258a56100fe43e268a030bf976ba6a3 Mon Sep 17 00:00:00 2001 From: Mark Vieira Date: Fri, 6 Sep 2024 08:57:03 -0700 Subject: [PATCH 28/34] Remove hard-coded references to minimum wire compatible version --- .../gradle/internal/BwcVersions.java | 23 +++++++++---------- .../test/rest/RestTestBasePlugin.java | 4 ++++ .../gradle/internal/BwcVersionsSpec.groovy | 17 +++++++------- ...rameterizedFullClusterRestartTestCase.java | 7 ++---- 4 files changed, 26 insertions(+), 25 deletions(-) diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/BwcVersions.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/BwcVersions.java index ba928aac16896..1eb10bf2fbbc6 100644 --- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/BwcVersions.java +++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/BwcVersions.java @@ -67,23 +67,17 @@ public class BwcVersions { private static final Pattern LINE_PATTERN = Pattern.compile( "\\W+public static final Version V_(\\d+)_(\\d+)_(\\d+)(_alpha\\d+|_beta\\d+|_rc\\d+)?.*\\);" ); - private static final Version MINIMUM_WIRE_COMPATIBLE_VERSION = Version.fromString("8.16.0"); private static final String GLIBC_VERSION_ENV_VAR = "GLIBC_VERSION"; private final Version currentVersion; private final List versions; private final Map unreleased; - private final Version minimumWireCompatibleVersion; public BwcVersions(List versionLines) { - this(versionLines, Version.fromString(VersionProperties.getElasticsearch()), MINIMUM_WIRE_COMPATIBLE_VERSION); + this(versionLines, Version.fromString(VersionProperties.getElasticsearch())); } public BwcVersions(Version currentVersionProperty, List allVersions) { - this(currentVersionProperty, allVersions, MINIMUM_WIRE_COMPATIBLE_VERSION); - } - - public BwcVersions(Version currentVersionProperty, List allVersions, Version minimumWireCompatibleVersion) { if (allVersions.isEmpty()) { throw new IllegalArgumentException("Could not parse any versions"); } @@ -93,12 +87,11 @@ public BwcVersions(Version currentVersionProperty, List allVersions, Ve assertCurrentVersionMatchesParsed(currentVersionProperty); this.unreleased = computeUnreleased(); - this.minimumWireCompatibleVersion = minimumWireCompatibleVersion; } // Visible for testing - BwcVersions(List versionLines, Version currentVersionProperty, Version minimumWireCompatibleVersion) { - this(currentVersionProperty, parseVersionLines(versionLines), minimumWireCompatibleVersion); + BwcVersions(List versionLines, Version currentVersionProperty) { + this(currentVersionProperty, parseVersionLines(versionLines)); } private static List parseVersionLines(List versionLines) { @@ -261,7 +254,7 @@ public void withIndexCompatible(Predicate filter, BiConsumer getWireCompatible() { - return filterSupportedVersions(versions.stream().filter(v -> v.compareTo(minimumWireCompatibleVersion) >= 0).toList()); + return filterSupportedVersions(versions.stream().filter(v -> v.compareTo(getMinimumWireCompatibleVersion()) >= 0).toList()); } public void withWireCompatible(BiConsumer versionAction) { @@ -299,7 +292,13 @@ public List getUnreleasedWireCompatible() { } public Version getMinimumWireCompatibleVersion() { - return minimumWireCompatibleVersion; + // Determine minimum wire compatible version from list of known versions. + // Current BWC policy states the minimum wire compatible version is the last minor release or the previous major version. + return versions.stream() + .filter(v -> v.getRevision() == 0) + .filter(v -> v.getMajor() == currentVersion.getMajor() - 1) + .max(Comparator.naturalOrder()) + .orElseThrow(() -> new IllegalStateException("Unable to determine minimum wire compatible version.")); } public Version getCurrentVersion() { diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/test/rest/RestTestBasePlugin.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/test/rest/RestTestBasePlugin.java index 77af3445f530c..a170606800f39 100644 --- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/test/rest/RestTestBasePlugin.java +++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/test/rest/RestTestBasePlugin.java @@ -78,6 +78,7 @@ public class RestTestBasePlugin implements Plugin { private static final String FEATURES_METADATA_CONFIGURATION = "featuresMetadataDeps"; private static final String DEFAULT_DISTRO_FEATURES_METADATA_CONFIGURATION = "defaultDistrofeaturesMetadataDeps"; private static final String TESTS_FEATURES_METADATA_PATH = "tests.features.metadata.path"; + private static final String MINIMUM_WIRE_COMPATIBLE_VERSION_SYSPROP = "tests.minimum.wire.compatible"; private final ProviderFactory providerFactory; @@ -173,6 +174,9 @@ public void apply(Project project) { task.systemProperty("tests.security.manager", "false"); task.systemProperty("tests.system_call_filter", "false"); + // Pass minimum wire compatible version which is used by upgrade tests + task.systemProperty(MINIMUM_WIRE_COMPATIBLE_VERSION_SYSPROP, BuildParams.getBwcVersions().getMinimumWireCompatibleVersion()); + // Register plugins and modules as task inputs and pass paths as system properties to tests var modulePath = project.getObjects().fileCollection().from(modulesConfiguration); nonInputSystemProperties.systemProperty(TESTS_CLUSTER_MODULES_PATH_SYSPROP, modulePath::getAsPath); diff --git a/build-tools-internal/src/test/groovy/org/elasticsearch/gradle/internal/BwcVersionsSpec.groovy b/build-tools-internal/src/test/groovy/org/elasticsearch/gradle/internal/BwcVersionsSpec.groovy index 04b054d541037..fda49f989ea04 100644 --- a/build-tools-internal/src/test/groovy/org/elasticsearch/gradle/internal/BwcVersionsSpec.groovy +++ b/build-tools-internal/src/test/groovy/org/elasticsearch/gradle/internal/BwcVersionsSpec.groovy @@ -35,7 +35,7 @@ class BwcVersionsSpec extends Specification { addVersion('8.1.0', '9.0.0') when: - def bwc = new BwcVersions(versionLines, v('8.1.0'), v('7.17.0')) + def bwc = new BwcVersions(versionLines, v('8.1.0')) def unreleased = bwc.unreleased.collectEntries { [it, bwc.unreleasedInfo(it)] } then: @@ -47,6 +47,7 @@ class BwcVersionsSpec extends Specification { ] bwc.wireCompatible == [v('7.17.0'), v('8.0.0'), v('8.1.0')] bwc.indexCompatible == osFiltered([v('7.14.0'), v('7.14.1'), v('7.14.2'), v('7.15.0'), v('7.15.1'), v('7.15.2'), v('7.16.0'), v('7.16.1'), v('7.16.2'), v('7.17.0'), v('8.0.0'), v('8.1.0')]) + bwc.minimumWireCompatibleVersion == v('7.17.0') } def "current version is next minor with next major and last minor both staged"() { @@ -64,7 +65,7 @@ class BwcVersionsSpec extends Specification { addVersion('8.1.0', '9.1.0') when: - def bwc = new BwcVersions(versionLines, v('8.1.0'), v('7.17.0')) + def bwc = new BwcVersions(versionLines, v('8.1.0')) def unreleased = bwc.unreleased.collectEntries { [it, bwc.unreleasedInfo(it)] } then: @@ -94,7 +95,7 @@ class BwcVersionsSpec extends Specification { addVersion('8.1.0', '9.1.0') when: - def bwc = new BwcVersions(versionLines, v('8.1.0'), v('7.17.0')) + def bwc = new BwcVersions(versionLines, v('8.1.0')) def unreleased = bwc.unreleased.collectEntries { [it, bwc.unreleasedInfo(it)] } then: @@ -122,7 +123,7 @@ class BwcVersionsSpec extends Specification { addVersion('8.0.0', '9.0.0') when: - def bwc = new BwcVersions(versionLines, v('8.0.0'), v('7.17.0')) + def bwc = new BwcVersions(versionLines, v('8.0.0')) def unreleased = bwc.unreleased.collectEntries { [it, bwc.unreleasedInfo(it)] } then: @@ -148,7 +149,7 @@ class BwcVersionsSpec extends Specification { addVersion('8.0.0', '9.0.0') when: - def bwc = new BwcVersions(versionLines, v('8.0.0'), v('7.17.0')) + def bwc = new BwcVersions(versionLines, v('8.0.0')) def unreleased = bwc.unreleased.collectEntries { [it, bwc.unreleasedInfo(it)] } then: @@ -174,7 +175,7 @@ class BwcVersionsSpec extends Specification { addVersion('8.0.0', '9.0.0') when: - def bwc = new BwcVersions(versionLines, v('8.0.0'), v('7.17.0')) + def bwc = new BwcVersions(versionLines, v('8.0.0')) def unreleased = bwc.unreleased.collectEntries { [it, bwc.unreleasedInfo(it)] } then: @@ -204,7 +205,7 @@ class BwcVersionsSpec extends Specification { addVersion('8.0.1', '9.0.0') when: - def bwc = new BwcVersions(versionLines, v('8.0.1'), v('7.17.0')) + def bwc = new BwcVersions(versionLines, v('8.0.1')) def unreleased = bwc.unreleased.collectEntries { [it, bwc.unreleasedInfo(it)] } then: @@ -233,7 +234,7 @@ class BwcVersionsSpec extends Specification { addVersion('8.1.0', '9.1.0') when: - def bwc = new BwcVersions(versionLines, v('8.1.0'), v('7.17.0')) + def bwc = new BwcVersions(versionLines, v('8.1.0')) def unreleased = bwc.unreleased.collectEntries { [it, bwc.unreleasedInfo(it)] } then: diff --git a/qa/full-cluster-restart/src/javaRestTest/java/org/elasticsearch/upgrades/ParameterizedFullClusterRestartTestCase.java b/qa/full-cluster-restart/src/javaRestTest/java/org/elasticsearch/upgrades/ParameterizedFullClusterRestartTestCase.java index cef067c65223c..120b6bdf3288c 100644 --- a/qa/full-cluster-restart/src/javaRestTest/java/org/elasticsearch/upgrades/ParameterizedFullClusterRestartTestCase.java +++ b/qa/full-cluster-restart/src/javaRestTest/java/org/elasticsearch/upgrades/ParameterizedFullClusterRestartTestCase.java @@ -14,7 +14,6 @@ import org.elasticsearch.client.Request; import org.elasticsearch.client.Response; -import org.elasticsearch.core.UpdateForV9; import org.elasticsearch.features.NodeFeature; import org.elasticsearch.index.IndexVersion; import org.elasticsearch.index.IndexVersions; @@ -37,10 +36,8 @@ @TestCaseOrdering(FullClusterRestartTestOrdering.class) public abstract class ParameterizedFullClusterRestartTestCase extends ESRestTestCase { - @UpdateForV9 - // This needs to be bumped to 8.last at the time of 8.last-1 feature freeze - // Also need to bump BwcVersions.MINIMUM_WIRE_COMPATIBLE_VERSION at the same time - private static final Version MINIMUM_WIRE_COMPATIBLE_VERSION = Version.fromString("8.16.0"); + + private static final Version MINIMUM_WIRE_COMPATIBLE_VERSION = Version.fromString(System.getProperty("tests.minimum.wire.compatible")); private static final String OLD_CLUSTER_VERSION = System.getProperty("tests.old_cluster_version"); private static IndexVersion oldIndexVersion; private static boolean upgradeFailed = false; From 347d6e1b6e27f02fca5c015acc33df0646aac084 Mon Sep 17 00:00:00 2001 From: Mark Vieira Date: Fri, 6 Sep 2024 12:52:08 -0700 Subject: [PATCH 29/34] Remove gradle --continue flag from CI script --- .ci/scripts/run-gradle.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci/scripts/run-gradle.sh b/.ci/scripts/run-gradle.sh index 3e14c1ec46be5..af5db8a6b4063 100755 --- a/.ci/scripts/run-gradle.sh +++ b/.ci/scripts/run-gradle.sh @@ -37,4 +37,4 @@ if [[ "$MAX_WORKERS" == "0" ]]; then fi set -e -$GRADLEW -S --max-workers=$MAX_WORKERS --continue $@ +$GRADLEW -S --max-workers=$MAX_WORKERS $@ From d64a4870850e10db88060b9842b6f29fd9da5b3c Mon Sep 17 00:00:00 2001 From: Lefteris Katiforis Date: Fri, 6 Sep 2024 13:39:11 -0700 Subject: [PATCH 30/34] Mute geoip full cluster restart test --- modules/ingest-geoip/qa/full-cluster-restart/build.gradle | 2 +- .../org/elasticsearch/ingest/geoip/FullClusterRestartIT.java | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/modules/ingest-geoip/qa/full-cluster-restart/build.gradle b/modules/ingest-geoip/qa/full-cluster-restart/build.gradle index 306d425a4d923..e930b4ca38233 100644 --- a/modules/ingest-geoip/qa/full-cluster-restart/build.gradle +++ b/modules/ingest-geoip/qa/full-cluster-restart/build.gradle @@ -23,7 +23,7 @@ dependencies { // once we are ready to test migrations from 8.x to 9.x, we can set the compatible version to 8.0.0 // see https://github.com/elastic/elasticsearch/pull/93666 -BuildParams.bwcVersions.withWireCompatible(v -> v.before("7.0.0")) { bwcVersion, baseName -> +BuildParams.bwcVersions.withWireCompatible(v -> v.before("9.0.0")) { bwcVersion, baseName -> tasks.register(bwcTaskName(bwcVersion), StandaloneRestIntegTestTask) { usesBwcDistribution(bwcVersion) systemProperty("tests.old_cluster_version", bwcVersion) diff --git a/modules/ingest-geoip/qa/full-cluster-restart/src/javaRestTest/java/org/elasticsearch/ingest/geoip/FullClusterRestartIT.java b/modules/ingest-geoip/qa/full-cluster-restart/src/javaRestTest/java/org/elasticsearch/ingest/geoip/FullClusterRestartIT.java index 6774d02bb217c..b4d1788688119 100644 --- a/modules/ingest-geoip/qa/full-cluster-restart/src/javaRestTest/java/org/elasticsearch/ingest/geoip/FullClusterRestartIT.java +++ b/modules/ingest-geoip/qa/full-cluster-restart/src/javaRestTest/java/org/elasticsearch/ingest/geoip/FullClusterRestartIT.java @@ -12,6 +12,7 @@ import com.carrotsearch.randomizedtesting.annotations.Name; import org.apache.http.util.EntityUtils; +import org.apache.lucene.tests.util.LuceneTestCase; import org.elasticsearch.client.Request; import org.elasticsearch.core.UpdateForV9; import org.elasticsearch.test.cluster.ElasticsearchCluster; @@ -32,6 +33,8 @@ import static org.hamcrest.Matchers.contains; +@UpdateForV9 +@LuceneTestCase.AwaitsFix(bugUrl = "we need to figure out the index migrations here for 9.0") public class FullClusterRestartIT extends ParameterizedFullClusterRestartTestCase { private static final boolean useFixture = Boolean.getBoolean("geoip_use_service") == false; @@ -60,7 +63,6 @@ protected ElasticsearchCluster getUpgradeCluster() { return cluster; } - @UpdateForV9 public void testGeoIpSystemFeaturesMigration() throws Exception { if (isRunningAgainstOldCluster()) { Request enableDownloader = new Request("PUT", "/_cluster/settings"); From 500f49bd4e9c3256e2d8411b55ce14f7ad7a8e62 Mon Sep 17 00:00:00 2001 From: Mark Vieira Date: Fri, 6 Sep 2024 13:45:10 -0700 Subject: [PATCH 31/34] Simply BwcVersions to remove filtering of unavailable aarch64 versions --- .../gradle/internal/BwcVersions.java | 35 ++++--------------- .../gradle/internal/BwcVersionsSpec.groovy | 27 +++++--------- build.gradle | 8 ++--- x-pack/plugin/sql/qa/jdbc/build.gradle | 2 +- 4 files changed, 19 insertions(+), 53 deletions(-) diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/BwcVersions.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/BwcVersions.java index 1eb10bf2fbbc6..753d6c46fdf16 100644 --- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/BwcVersions.java +++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/BwcVersions.java @@ -7,8 +7,6 @@ */ package org.elasticsearch.gradle.internal; -import org.elasticsearch.gradle.Architecture; -import org.elasticsearch.gradle.ElasticsearchDistribution; import org.elasticsearch.gradle.Version; import org.elasticsearch.gradle.VersionProperties; @@ -27,7 +25,6 @@ import java.util.function.Predicate; import java.util.regex.Matcher; import java.util.regex.Pattern; -import java.util.stream.Collectors; import static java.util.Collections.unmodifiableList; @@ -123,9 +120,10 @@ public UnreleasedVersionInfo unreleasedInfo(Version version) { } public void forPreviousUnreleased(Consumer consumer) { - filterSupportedVersions( - getUnreleased().stream().filter(version -> version.equals(currentVersion) == false).collect(Collectors.toList()) - ).stream().map(unreleased::get).forEach(consumer); + getUnreleased().stream() + .filter(version -> version.equals(currentVersion) == false) + .map(unreleased::get) + .forEach(consumer); } private String getBranchFor(Version version) { @@ -232,16 +230,9 @@ private List getReleased() { } /** - * Return versions of Elasticsearch which are index compatible with the current version, and also work on the local machine. + * Return versions of Elasticsearch which are index compatible with the current version. */ public List getIndexCompatible() { - return filterSupportedVersions(getAllIndexCompatible()); - } - - /** - * Return all versions of Elasticsearch which are index compatible with the current version. - */ - public List getAllIndexCompatible() { return versions.stream().filter(v -> v.getMajor() >= (currentVersion.getMajor() - 1)).toList(); } @@ -254,7 +245,7 @@ public void withIndexCompatible(Predicate filter, BiConsumer getWireCompatible() { - return filterSupportedVersions(versions.stream().filter(v -> v.compareTo(getMinimumWireCompatibleVersion()) >= 0).toList()); + return versions.stream().filter(v -> v.compareTo(getMinimumWireCompatibleVersion()) >= 0).toList(); } public void withWireCompatible(BiConsumer versionAction) { @@ -265,20 +256,6 @@ public void withWireCompatible(Predicate filter, BiConsumer versionAction.accept(v, "v" + v.toString())); } - private List filterSupportedVersions(List wireCompat) { - Predicate supported = v -> true; - if (Architecture.current() == Architecture.AARCH64) { - final String version; - if (ElasticsearchDistribution.CURRENT_PLATFORM.equals(ElasticsearchDistribution.Platform.DARWIN)) { - version = "7.16.0"; - } else { - version = "7.12.0"; // linux shipped earlier for aarch64 - } - supported = v -> v.onOrAfter(version); - } - return wireCompat.stream().filter(supported).collect(Collectors.toList()); - } - public List getUnreleasedIndexCompatible() { List unreleasedIndexCompatible = new ArrayList<>(getIndexCompatible()); unreleasedIndexCompatible.retainAll(getUnreleased()); diff --git a/build-tools-internal/src/test/groovy/org/elasticsearch/gradle/internal/BwcVersionsSpec.groovy b/build-tools-internal/src/test/groovy/org/elasticsearch/gradle/internal/BwcVersionsSpec.groovy index fda49f989ea04..8fa1ac9ea2094 100644 --- a/build-tools-internal/src/test/groovy/org/elasticsearch/gradle/internal/BwcVersionsSpec.groovy +++ b/build-tools-internal/src/test/groovy/org/elasticsearch/gradle/internal/BwcVersionsSpec.groovy @@ -10,12 +10,9 @@ package org.elasticsearch.gradle.internal import spock.lang.Specification -import org.elasticsearch.gradle.Architecture -import org.elasticsearch.gradle.ElasticsearchDistribution import org.elasticsearch.gradle.Version import org.elasticsearch.gradle.internal.BwcVersions.UnreleasedVersionInfo - class BwcVersionsSpec extends Specification { List versionLines = [] @@ -46,7 +43,7 @@ class BwcVersionsSpec extends Specification { (v('8.1.0')): new UnreleasedVersionInfo(v('8.1.0'), 'main', ':distribution') ] bwc.wireCompatible == [v('7.17.0'), v('8.0.0'), v('8.1.0')] - bwc.indexCompatible == osFiltered([v('7.14.0'), v('7.14.1'), v('7.14.2'), v('7.15.0'), v('7.15.1'), v('7.15.2'), v('7.16.0'), v('7.16.1'), v('7.16.2'), v('7.17.0'), v('8.0.0'), v('8.1.0')]) + bwc.indexCompatible == [v('7.14.0'), v('7.14.1'), v('7.14.2'), v('7.15.0'), v('7.15.1'), v('7.15.2'), v('7.16.0'), v('7.16.1'), v('7.16.2'), v('7.17.0'), v('8.0.0'), v('8.1.0')] bwc.minimumWireCompatibleVersion == v('7.17.0') } @@ -76,7 +73,7 @@ class BwcVersionsSpec extends Specification { (v('8.1.0')): new UnreleasedVersionInfo(v('8.1.0'), 'main', ':distribution') ] bwc.wireCompatible == [v('7.17.0'), v('8.0.0'), v('8.1.0')] - bwc.indexCompatible == osFiltered([v('7.14.0'), v('7.14.1'), v('7.14.2'), v('7.15.0'), v('7.15.1'), v('7.15.2'), v('7.16.0'), v('7.16.1'), v('7.17.0'), v('8.0.0'), v('8.1.0')]) + bwc.indexCompatible == [v('7.14.0'), v('7.14.1'), v('7.14.2'), v('7.15.0'), v('7.15.1'), v('7.15.2'), v('7.16.0'), v('7.16.1'), v('7.17.0'), v('8.0.0'), v('8.1.0')] } def "current is next minor with upcoming minor staged"() { @@ -105,7 +102,7 @@ class BwcVersionsSpec extends Specification { (v('8.1.0')): new UnreleasedVersionInfo(v('8.1.0'), 'main', ':distribution') ] bwc.wireCompatible == [v('7.17.0'), v('7.17.1'), v('8.0.0'), v('8.1.0')] - bwc.indexCompatible == osFiltered([v('7.14.0'), v('7.14.1'), v('7.14.2'), v('7.15.0'), v('7.15.1'), v('7.15.2'), v('7.16.0'), v('7.16.1'), v('7.17.0'), v('7.17.1'), v('8.0.0'), v('8.1.0')]) + bwc.indexCompatible == [v('7.14.0'), v('7.14.1'), v('7.14.2'), v('7.15.0'), v('7.15.1'), v('7.15.2'), v('7.16.0'), v('7.16.1'), v('7.17.0'), v('7.17.1'), v('8.0.0'), v('8.1.0')] } def "current version is staged major"() { @@ -132,7 +129,7 @@ class BwcVersionsSpec extends Specification { (v('8.0.0')): new UnreleasedVersionInfo(v('8.0.0'), 'main', ':distribution'), ] bwc.wireCompatible == [v('7.17.0'), v('7.17.1'), v('8.0.0')] - bwc.indexCompatible == osFiltered([v('7.14.0'), v('7.14.1'), v('7.14.2'), v('7.15.0'), v('7.15.1'), v('7.15.2'), v('7.16.0'), v('7.16.1'), v('7.17.0'), v('7.17.1'), v('8.0.0')]) + bwc.indexCompatible == [v('7.14.0'), v('7.14.1'), v('7.14.2'), v('7.15.0'), v('7.15.1'), v('7.15.2'), v('7.16.0'), v('7.16.1'), v('7.17.0'), v('7.17.1'), v('8.0.0')] } def "current version is major with unreleased next minor"() { @@ -159,7 +156,7 @@ class BwcVersionsSpec extends Specification { (v('8.0.0')): new UnreleasedVersionInfo(v('8.0.0'), 'main', ':distribution'), ] bwc.wireCompatible == [v('7.17.0'), v('8.0.0')] - bwc.indexCompatible == osFiltered([v('7.14.0'), v('7.14.1'), v('7.14.2'), v('7.15.0'), v('7.15.1'), v('7.15.2'), v('7.16.0'), v('7.16.1'), v('7.17.0'), v('8.0.0')]) + bwc.indexCompatible == [v('7.14.0'), v('7.14.1'), v('7.14.2'), v('7.15.0'), v('7.15.1'), v('7.15.2'), v('7.16.0'), v('7.16.1'), v('7.17.0'), v('8.0.0')] } def "current version is major with staged next minor"() { @@ -186,7 +183,7 @@ class BwcVersionsSpec extends Specification { (v('8.0.0')): new UnreleasedVersionInfo(v('8.0.0'), 'main', ':distribution'), ] bwc.wireCompatible == [v('7.17.0'), v('8.0.0')] - bwc.indexCompatible == osFiltered([v('7.14.0'), v('7.14.1'), v('7.14.2'), v('7.15.0'), v('7.15.1'), v('7.15.2'), v('7.16.0'), v('7.17.0'), v('8.0.0')]) + bwc.indexCompatible == [v('7.14.0'), v('7.14.1'), v('7.14.2'), v('7.15.0'), v('7.15.1'), v('7.15.2'), v('7.16.0'), v('7.17.0'), v('8.0.0')] } def "current version is next bugfix"() { @@ -214,7 +211,7 @@ class BwcVersionsSpec extends Specification { (v('8.0.1')): new UnreleasedVersionInfo(v('8.0.1'), 'main', ':distribution'), ] bwc.wireCompatible == [v('7.17.0'), v('7.17.1'), v('8.0.0'), v('8.0.1')] - bwc.indexCompatible == osFiltered([v('7.14.0'), v('7.14.1'), v('7.14.2'), v('7.15.0'), v('7.15.1'), v('7.15.2'), v('7.16.0'), v('7.16.1'), v('7.17.0'), v('7.17.1'), v('8.0.0'), v('8.0.1')]) + bwc.indexCompatible == [v('7.14.0'), v('7.14.1'), v('7.14.2'), v('7.15.0'), v('7.15.1'), v('7.15.2'), v('7.16.0'), v('7.16.1'), v('7.17.0'), v('7.17.1'), v('8.0.0'), v('8.0.1')] } def "current version is next minor with no staged releases"() { @@ -244,7 +241,7 @@ class BwcVersionsSpec extends Specification { (v('8.1.0')): new UnreleasedVersionInfo(v('8.1.0'), 'main', ':distribution') ] bwc.wireCompatible == [v('7.17.0'), v('7.17.1'), v('8.0.0'), v('8.0.1'), v('8.1.0')] - bwc.indexCompatible == osFiltered([v('7.14.0'), v('7.14.1'), v('7.14.2'), v('7.15.0'), v('7.15.1'), v('7.15.2'), v('7.16.0'), v('7.16.1'), v('7.17.0'), v('7.17.1'), v('8.0.0'), v('8.0.1'), v('8.1.0')]) + bwc.indexCompatible == [v('7.14.0'), v('7.14.1'), v('7.14.2'), v('7.15.0'), v('7.15.1'), v('7.15.2'), v('7.16.0'), v('7.16.1'), v('7.17.0'), v('7.17.1'), v('8.0.0'), v('8.0.1'), v('8.1.0')] } private void addVersion(String elasticsearch, String lucene) { @@ -257,12 +254,4 @@ class BwcVersionsSpec extends Specification { return Version.fromString(version) } - private boolean osxAarch64() { - Architecture.current() == Architecture.AARCH64 && - ElasticsearchDistribution.CURRENT_PLATFORM.equals(ElasticsearchDistribution.Platform.DARWIN) - } - - private List osFiltered(ArrayList versions) { - return osxAarch64() ? versions.findAll {it.onOrAfter("7.16.0")} : versions - } } diff --git a/build.gradle b/build.gradle index 01fdace570ce0..8430ac335d447 100644 --- a/build.gradle +++ b/build.gradle @@ -135,7 +135,7 @@ tasks.register("updateCIBwcVersions") { } doLast { - writeVersions(file(".ci/bwcVersions"), filterIntermediatePatches(BuildParams.bwcVersions.allIndexCompatible)) + writeVersions(file(".ci/bwcVersions"), filterIntermediatePatches(BuildParams.bwcVersions.indexCompatible)) writeVersions(file(".ci/snapshotBwcVersions"), filterIntermediatePatches(BuildParams.bwcVersions.unreleasedIndexCompatible)) expandBwcList( ".buildkite/pipelines/intake.yml", @@ -149,7 +149,7 @@ tasks.register("updateCIBwcVersions") { new ListExpansion(versions: filterIntermediatePatches(BuildParams.bwcVersions.unreleasedIndexCompatible), variable: "BWC_LIST"), ], [ - new StepExpansion(templatePath: ".buildkite/pipelines/periodic.bwc.template.yml", versions: filterIntermediatePatches(BuildParams.bwcVersions.allIndexCompatible), variable: "BWC_STEPS"), + new StepExpansion(templatePath: ".buildkite/pipelines/periodic.bwc.template.yml", versions: filterIntermediatePatches(BuildParams.bwcVersions.indexCompatible), variable: "BWC_STEPS"), ] ) @@ -157,7 +157,7 @@ tasks.register("updateCIBwcVersions") { ".buildkite/pipelines/periodic-packaging.yml", ".buildkite/pipelines/periodic-packaging.template.yml", ".buildkite/pipelines/periodic-packaging.bwc.template.yml", - filterIntermediatePatches(BuildParams.bwcVersions.allIndexCompatible) + filterIntermediatePatches(BuildParams.bwcVersions.indexCompatible) ) } } @@ -186,7 +186,7 @@ tasks.register("verifyVersions") { .collect { Version.fromString(it) } ) } - verifyCiYaml(file(".ci/bwcVersions"), filterIntermediatePatches(BuildParams.bwcVersions.allIndexCompatible)) + verifyCiYaml(file(".ci/bwcVersions"), filterIntermediatePatches(BuildParams.bwcVersions.indexCompatible)) verifyCiYaml(file(".ci/snapshotBwcVersions"), BuildParams.bwcVersions.unreleasedIndexCompatible) // Make sure backport bot config file is up to date diff --git a/x-pack/plugin/sql/qa/jdbc/build.gradle b/x-pack/plugin/sql/qa/jdbc/build.gradle index 42bf524dac17e..022306fe9b306 100644 --- a/x-pack/plugin/sql/qa/jdbc/build.gradle +++ b/x-pack/plugin/sql/qa/jdbc/build.gradle @@ -72,7 +72,7 @@ subprojects { // Configure compatibility testing tasks // Compatibility testing for JDBC driver started with version 7.9.0 - BuildParams.bwcVersions.allIndexCompatible.findAll({ it.onOrAfter(Version.fromString("7.9.0")) && it != VersionProperties.elasticsearchVersion }).each { bwcVersion -> + BuildParams.bwcVersions.indexCompatible.findAll({ it.onOrAfter(Version.fromString("7.9.0")) && it != VersionProperties.elasticsearchVersion }).each { bwcVersion -> def baseName = "v${bwcVersion}" def cluster = testClusters.register(baseName) From 086713535164117c5ee373c3b87507129bb79ea0 Mon Sep 17 00:00:00 2001 From: Mark Vieira Date: Fri, 6 Sep 2024 15:33:11 -0700 Subject: [PATCH 32/34] Spotless --- .../java/org/elasticsearch/gradle/internal/BwcVersions.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/BwcVersions.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/BwcVersions.java index 753d6c46fdf16..720c159f75552 100644 --- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/BwcVersions.java +++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/BwcVersions.java @@ -120,10 +120,7 @@ public UnreleasedVersionInfo unreleasedInfo(Version version) { } public void forPreviousUnreleased(Consumer consumer) { - getUnreleased().stream() - .filter(version -> version.equals(currentVersion) == false) - .map(unreleased::get) - .forEach(consumer); + getUnreleased().stream().filter(version -> version.equals(currentVersion) == false).map(unreleased::get).forEach(consumer); } private String getBranchFor(Version version) { From 10ba96cf27b6261788782cac3c7f2edac6b644d3 Mon Sep 17 00:00:00 2001 From: Jake Landis Date: Tue, 10 Sep 2024 14:30:21 -0500 Subject: [PATCH 33/34] remove reference to yamlRestTestV7CompatTransform brought in by last sync with main --- x-pack/plugin/eql/qa/rest/build.gradle | 8 -------- 1 file changed, 8 deletions(-) diff --git a/x-pack/plugin/eql/qa/rest/build.gradle b/x-pack/plugin/eql/qa/rest/build.gradle index 72f2a735eeb0a..d5b0cc42091f3 100644 --- a/x-pack/plugin/eql/qa/rest/build.gradle +++ b/x-pack/plugin/eql/qa/rest/build.gradle @@ -30,14 +30,6 @@ tasks.named('yamlRestCompatTest') { usesDefaultDistribution() } -tasks.named("yamlRestTestV7CompatTransform").configure {task -> - task.skipTest("eql/10_basic/Execute EQL events query with wildcard (*) fields filtering.", "Change of locale with Java 23 makes these tests non deterministic") - task.skipTest("eql/10_basic/Execute EQL sequence with fields filtering.", "Change of locale with Java 23 makes these tests non deterministic") - task.skipTest("eql/10_basic/Execute EQL sequence with custom format for timestamp field.", "Change of locale with Java 23 makes these tests non deterministic") - task.skipTest("eql/10_basic/Execute EQL events query with fields filtering", "Change of locale with Java 23 makes these tests non deterministic") - task.skipTest("eql/10_basic/Execute EQL sequence with wildcard (*) fields filtering.", "Change of locale with Java 23 makes these tests non deterministic") -} - if (BuildParams.inFipsJvm){ // This test cluster is using a BASIC license and FIPS 140 mode is not supported in BASIC tasks.named("javaRestTest").configure{enabled = false } From 9ea48ec79e9ab067e4bd17de67364393c3940389 Mon Sep 17 00:00:00 2001 From: Jake Landis Date: Tue, 10 Sep 2024 15:50:06 -0500 Subject: [PATCH 34/34] bump the ML version --- x-pack/plugin/ml/build.gradle | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/x-pack/plugin/ml/build.gradle b/x-pack/plugin/ml/build.gradle index e0cd1b45f63ad..706d7ea73aea9 100644 --- a/x-pack/plugin/ml/build.gradle +++ b/x-pack/plugin/ml/build.gradle @@ -93,11 +93,9 @@ dependencies { testImplementation "com.google.jimfs:jimfs:${versions.jimfs}" } -def mlCppVersion() { - def mlVersion = "8.16.0" // Just use the latest 8.x builds until we have 9.0 snapshots +def mlCppVersion(){ return (project.gradle.parent != null && BuildParams.isSnapshotBuild() == false) ? - // (project.version + "-SNAPSHOT") : project.version; - (mlVersion + "-SNAPSHOT") : mlVersion; + (project.version + "-SNAPSHOT") : project.version; } artifacts {