From e3dcc00ba3d1aad385566cd6a0e8fbe95d9414fe Mon Sep 17 00:00:00 2001 From: Ankit Kala Date: Tue, 10 Sep 2024 20:42:26 +0530 Subject: [PATCH 1/3] Add support to ignore updates on autofollow pattern Signed-off-by: Ankit Kala --- .../opensearch/replication/ReplicationHelpers.kt | 15 +++++++++++---- .../integ/rest/UpdateAutoFollowPatternIT.kt | 8 ++++++-- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/test/kotlin/org/opensearch/replication/ReplicationHelpers.kt b/src/test/kotlin/org/opensearch/replication/ReplicationHelpers.kt index 6640f911..935ad218 100644 --- a/src/test/kotlin/org/opensearch/replication/ReplicationHelpers.kt +++ b/src/test/kotlin/org/opensearch/replication/ReplicationHelpers.kt @@ -20,6 +20,7 @@ import org.opensearch.action.support.master.AcknowledgedResponse import org.opensearch.client.Request import org.opensearch.client.RequestOptions import org.opensearch.client.Response +import org.opensearch.client.ResponseException import org.opensearch.client.RestHighLevelClient import org.opensearch.common.settings.Settings import org.opensearch.common.unit.TimeValue @@ -325,7 +326,8 @@ fun RestHighLevelClient.waitForReplicationStop(index: String, waitFor : TimeValu fun RestHighLevelClient.updateAutoFollowPattern(connection: String, patternName: String, pattern: String, settings: Settings = Settings.EMPTY, useRoles: UseRoles = UseRoles(), - requestOptions: RequestOptions = RequestOptions.DEFAULT) { + requestOptions: RequestOptions = RequestOptions.DEFAULT, + ignoreIfExists: Boolean = false) { val lowLevelRequest = Request("POST", REST_AUTO_FOLLOW_PATTERN) if (settings == Settings.EMPTY) { lowLevelRequest.setJsonEntity("""{ @@ -350,9 +352,14 @@ fun RestHighLevelClient.updateAutoFollowPattern(connection: String, patternName: }""") } lowLevelRequest.setOptions(requestOptions) - val lowLevelResponse = lowLevelClient.performRequest(lowLevelRequest) - val response = getAckResponse(lowLevelResponse) - assertThat(response.isAcknowledged).isTrue() + try { + val lowLevelResponse = lowLevelClient.performRequest(lowLevelRequest) + val response = getAckResponse(lowLevelResponse) + assertThat(response.isAcknowledged).isTrue() + } catch (e: ResponseException) { + // Skip if ignoreIfExists is true and exception contains resource_already_exists_exception + if ((ignoreIfExists == true && e.message?.contains("resource_already_exists_exception")!!) == false) throw e + } } fun RestHighLevelClient.AutoFollowStats() : Map { diff --git a/src/test/kotlin/org/opensearch/replication/integ/rest/UpdateAutoFollowPatternIT.kt b/src/test/kotlin/org/opensearch/replication/integ/rest/UpdateAutoFollowPatternIT.kt index d1f884fe..943ee93f 100644 --- a/src/test/kotlin/org/opensearch/replication/integ/rest/UpdateAutoFollowPatternIT.kt +++ b/src/test/kotlin/org/opensearch/replication/integ/rest/UpdateAutoFollowPatternIT.kt @@ -376,7 +376,7 @@ class UpdateAutoFollowPatternIT: MultiClusterRestTestCase() { // Add replication start block followerClient.updateReplicationStartBlockSetting(true) createRandomIndex(leaderClient) - followerClient.updateAutoFollowPattern(connectionAlias, indexPatternName, indexPattern) + followerClient.updateAutoFollowPattern(connectionAlias, indexPatternName, indexPattern, ignoreIfExists=true) sleep(95000) // wait for auto follow trigger in the worst case // verify both index replication tasks and autofollow tasks // Replication shouldn't have been started - (repeat-1) tasks as for current loop index shouldn't be @@ -525,7 +525,11 @@ class UpdateAutoFollowPatternIT: MultiClusterRestTestCase() { private fun assertValidPatternValidation(followerClient: RestHighLevelClient, pattern: String) { Assertions.assertThatCode { - followerClient.updateAutoFollowPattern(connectionAlias, indexPatternName, pattern) + try { + followerClient.updateAutoFollowPattern(connectionAlias, indexPatternName, pattern) + } finally { + followerClient.deleteAutoFollowPattern(connectionAlias, indexPatternName) + } }.doesNotThrowAnyException() } From 25148a8acba38b0d0d78e8f49fe9810321da061b Mon Sep 17 00:00:00 2001 From: Ankit Kala Date: Tue, 10 Sep 2024 21:16:59 +0530 Subject: [PATCH 2/3] Update Github action to use upload-artifact@v4 action Signed-off-by: Ankit Kala --- .github/workflows/build-and-test.yml | 2 +- .github/workflows/bwc.yml | 2 +- .github/workflows/security-knn-tests.yml | 4 ++-- .github/workflows/security-tests.yml | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 125d13db..2e9be6fa 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -44,7 +44,7 @@ jobs: chown -R 1000:1000 `pwd` su `id -un 1000` -c 'whoami && java -version && ./gradlew --refresh-dependencies clean release -D"build.snapshot=true"' - name: Upload failed logs - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 if: failure() with: name: logs diff --git a/.github/workflows/bwc.yml b/.github/workflows/bwc.yml index 547edea0..764c11df 100644 --- a/.github/workflows/bwc.yml +++ b/.github/workflows/bwc.yml @@ -29,7 +29,7 @@ jobs: ./gradlew mixedClusterTask --stacktrace ./gradlew fullRestartClusterTask --stacktrace - name: Upload failed logs - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 if: failure() with: name: logs diff --git a/.github/workflows/security-knn-tests.yml b/.github/workflows/security-knn-tests.yml index c3259a50..7bc1c91e 100644 --- a/.github/workflows/security-knn-tests.yml +++ b/.github/workflows/security-knn-tests.yml @@ -78,7 +78,7 @@ jobs: ls -al src/test/resources/security/plugin su `id -un 1000` -c "whoami && java -version && ./gradlew --refresh-dependencies clean release -Dbuild.snapshot=true -Psecurity=true" - name: Upload failed logs - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 if: failure() with: name: logs @@ -122,7 +122,7 @@ jobs: chown -R 1000:1000 `pwd` su `id -un 1000` -c 'whoami && java -version && ./gradlew --refresh-dependencies clean release -Dbuild.snapshot=true -PnumNodes=1 -Dtests.class=org.opensearch.replication.BasicReplicationIT -Dtests.method="test knn index replication" -Pknn=true' - name: Upload failed logs - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 if: failure() with: name: logs diff --git a/.github/workflows/security-tests.yml b/.github/workflows/security-tests.yml index a1415749..6f92d761 100644 --- a/.github/workflows/security-tests.yml +++ b/.github/workflows/security-tests.yml @@ -27,7 +27,7 @@ jobs: ls -al src/test/resources/security/plugin ./gradlew clean release -Dbuild.snapshot=true -PnumNodes=1 -Psecurity=true - name: Upload failed logs - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 if: failure() with: name: logs From 7369e00b2f898d33fa687cce4295104d381cb808 Mon Sep 17 00:00:00 2001 From: Ankit Kala Date: Tue, 10 Sep 2024 21:34:09 +0530 Subject: [PATCH 3/3] use v4 checkout action Signed-off-by: Ankit Kala --- .github/workflows/auto-release.yml | 2 +- .github/workflows/build-and-test.yml | 2 +- .github/workflows/build.yml | 2 +- .github/workflows/bwc.yml | 2 +- .github/workflows/security-knn-tests.yml | 6 +++--- .github/workflows/security-tests.yml | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/auto-release.yml b/.github/workflows/auto-release.yml index 5e6ac8c3..ab00c65d 100644 --- a/.github/workflows/auto-release.yml +++ b/.github/workflows/auto-release.yml @@ -22,7 +22,7 @@ jobs: - name: Get tag id: tag uses: dawidd6/action-get-tag@v1 - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - uses: ncipollo/release-action@v1 with: github_token: ${{ steps.github_app_token.outputs.token }} diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 2e9be6fa..f429d0c1 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -32,7 +32,7 @@ jobs: steps: - name: Checkout CCR - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Setup Java ${{ matrix.java }} uses: actions/setup-java@v1 with: diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ca44eebf..95e0b220 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -31,7 +31,7 @@ jobs: java-version: ${{ matrix.java }} # This step uses the checkout Github action: https://github.com/actions/checkout - name: Checkout Branch - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Build and run Replication tests run: | ./gradlew --refresh-dependencies clean release -D"build.snapshot=true" -x test -x IntegTest diff --git a/.github/workflows/bwc.yml b/.github/workflows/bwc.yml index 764c11df..3224957e 100644 --- a/.github/workflows/bwc.yml +++ b/.github/workflows/bwc.yml @@ -21,7 +21,7 @@ jobs: java-version: 11 # This step uses the checkout Github action: https://github.com/actions/checkout - name: Checkout Branch - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Build and run Replication tests run: | echo "Running backwards compatibility tests ..." diff --git a/.github/workflows/security-knn-tests.yml b/.github/workflows/security-knn-tests.yml index 7bc1c91e..bd3e23a7 100644 --- a/.github/workflows/security-knn-tests.yml +++ b/.github/workflows/security-knn-tests.yml @@ -24,7 +24,7 @@ jobs: steps: # This step uses the checkout Github action: https://github.com/actions/checkout - name: Checkout Branch - uses: actions/checkout@v2 + uses: actions/checkout@v4 - id: plugin-availability-check name: "plugin check" run: | @@ -71,7 +71,7 @@ jobs: java-version: 17 # This step uses the checkout Github action: https://github.com/actions/checkout - name: Checkout Branch - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Build and run Replication tests run: | chown -R 1000:1000 `pwd` @@ -116,7 +116,7 @@ jobs: java-version: 17 # This step uses the checkout Github action: https://github.com/actions/checkout - name: Checkout Branch - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Build and run Replication tests run: | chown -R 1000:1000 `pwd` diff --git a/.github/workflows/security-tests.yml b/.github/workflows/security-tests.yml index 6f92d761..dfeb5875 100644 --- a/.github/workflows/security-tests.yml +++ b/.github/workflows/security-tests.yml @@ -21,7 +21,7 @@ jobs: java-version: 17 # This step uses the checkout Github action: https://github.com/actions/checkout - name: Checkout Branch - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Build and run Replication tests run: | ls -al src/test/resources/security/plugin