From 766c267dd88435ac2ff3998c83967d8265b16c69 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 | 6 +++++- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/test/kotlin/org/opensearch/replication/ReplicationHelpers.kt b/src/test/kotlin/org/opensearch/replication/ReplicationHelpers.kt index 892470f5..f0fe55e2 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 6782e56c..044ee246 100644 --- a/src/test/kotlin/org/opensearch/replication/integ/rest/UpdateAutoFollowPatternIT.kt +++ b/src/test/kotlin/org/opensearch/replication/integ/rest/UpdateAutoFollowPatternIT.kt @@ -523,7 +523,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 16b3b0d3f6dc54713bda81e0c524cdb3d14ccd5b 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 ++-- 3 files changed, 4 insertions(+), 4 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 59e082c7..ed91c259 100644 --- a/.github/workflows/bwc.yml +++ b/.github/workflows/bwc.yml @@ -28,7 +28,7 @@ jobs: ./gradlew --refresh-dependencies clean release -Dbuild.snapshot=true -x test -x IntegTest ./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 a6b3fd9d..1807081e 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 From 86e15859bef1ce06e424ea3195395cf4d98c7616 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 +++--- 5 files changed, 7 insertions(+), 7 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 ed91c259..4cce518e 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 1807081e..1cc955cb 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`