From 93cf507cceca6989444c6b9a047538aa42fb5bf3 Mon Sep 17 00:00:00 2001 From: MaciejMierzwa Date: Fri, 8 Dec 2023 23:12:13 +0100 Subject: [PATCH] Enable windows platform for integration tests cases (#3706) Signed-off-by: Maciej Mierzwa --- .github/workflows/ci.yml | 2 +- .../security/DlsIntegrationTests.java | 36 ++++++++++--------- .../cluster/SearchRequestFactory.java | 8 +++++ .../security/SlowIntegrationTests.java | 36 ------------------- 4 files changed, 29 insertions(+), 53 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 64b8787937..fc5e322a6d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -111,7 +111,7 @@ jobs: fail-fast: false matrix: jdk: [11, 17, 21] - platform: [ubuntu-latest] # Removed windows https://github.com/opensearch-project/security/issues/3423 + platform: [ubuntu-latest, windows-latest] runs-on: ${{ matrix.platform }} steps: diff --git a/src/integrationTest/java/org/opensearch/security/DlsIntegrationTests.java b/src/integrationTest/java/org/opensearch/security/DlsIntegrationTests.java index d1957e50a6..aa7202cddf 100644 --- a/src/integrationTest/java/org/opensearch/security/DlsIntegrationTests.java +++ b/src/integrationTest/java/org/opensearch/security/DlsIntegrationTests.java @@ -52,6 +52,7 @@ import static org.opensearch.test.framework.TestSecurityConfig.AuthcDomain.AUTHC_HTTPBASIC_INTERNAL; import static org.opensearch.test.framework.TestSecurityConfig.Role.ALL_ACCESS; import static org.opensearch.test.framework.cluster.SearchRequestFactory.averageAggregationRequest; +import static org.opensearch.test.framework.cluster.SearchRequestFactory.searchRequestWithSort; import static org.opensearch.test.framework.matcher.SearchResponseMatchers.containAggregationWithNameAndType; import static org.opensearch.test.framework.matcher.SearchResponseMatchers.isSuccessfulSearchResponse; import static org.opensearch.test.framework.matcher.SearchResponseMatchers.numberOfTotalHitsIsEqualTo; @@ -281,7 +282,7 @@ public static void createTestData() { public void testShouldSearchAll() throws IOException { try (RestHighLevelClient restHighLevelClient = cluster.getRestHighLevelClient(READ_ALL_USER)) { - SearchRequest searchRequest = new SearchRequest(FIRST_INDEX_NAME); + SearchRequest searchRequest = searchRequestWithSort(FIRST_INDEX_NAME); SearchResponse searchResponse = restHighLevelClient.search(searchRequest, DEFAULT); assertThat(searchResponse, isSuccessfulSearchResponse()); @@ -293,7 +294,7 @@ public void testShouldSearchAll() throws IOException { assertThat(searchResponse, searchHitContainsFieldWithValue(4, FIELD_ARTIST, ARTIST_YES)); assertThat(searchResponse, searchHitContainsFieldWithValue(5, FIELD_ARTIST, ARTIST_UNKNOWN)); - searchRequest = new SearchRequest(SECOND_INDEX_NAME); + searchRequest = searchRequestWithSort(SECOND_INDEX_NAME); searchResponse = restHighLevelClient.search(searchRequest, DEFAULT); assertThat(searchResponse, isSuccessfulSearchResponse()); @@ -301,7 +302,7 @@ public void testShouldSearchAll() throws IOException { assertThat(searchResponse, searchHitContainsFieldWithValue(0, FIELD_ARTIST, ARTIST_NO)); } try (RestHighLevelClient restHighLevelClient = cluster.getRestHighLevelClient(READ_FIRST_AND_SECOND_USER)) { - SearchRequest searchRequest = new SearchRequest(FIRST_INDEX_NAME); + SearchRequest searchRequest = searchRequestWithSort(FIRST_INDEX_NAME); SearchResponse searchResponse = restHighLevelClient.search(searchRequest, DEFAULT); assertThat(searchResponse, isSuccessfulSearchResponse()); @@ -313,7 +314,7 @@ public void testShouldSearchAll() throws IOException { assertThat(searchResponse, searchHitContainsFieldWithValue(4, FIELD_ARTIST, ARTIST_YES)); assertThat(searchResponse, searchHitContainsFieldWithValue(5, FIELD_ARTIST, ARTIST_UNKNOWN)); - searchRequest = new SearchRequest(SECOND_INDEX_NAME); + searchRequest = searchRequestWithSort(SECOND_INDEX_NAME); searchResponse = restHighLevelClient.search(searchRequest, DEFAULT); assertThat(searchResponse, isSuccessfulSearchResponse()); @@ -326,14 +327,14 @@ public void testShouldSearchAll() throws IOException { public void testShouldSearchI1_S2I2_S3() throws IOException { try (RestHighLevelClient restHighLevelClient = cluster.getRestHighLevelClient(READ_WHERE_FIELD_ARTIST_MATCHES_ARTIST_STRING)) { - SearchRequest searchRequest = new SearchRequest(FIRST_INDEX_NAME); + SearchRequest searchRequest = searchRequestWithSort(FIRST_INDEX_NAME); SearchResponse searchResponse = restHighLevelClient.search(searchRequest, DEFAULT); assertThat(searchResponse, isSuccessfulSearchResponse()); assertThat(searchResponse, numberOfTotalHitsIsEqualTo(1)); assertThat(searchResponse, searchHitContainsFieldWithValue(0, FIELD_ARTIST, ARTIST_STRING)); - searchRequest = new SearchRequest(SECOND_INDEX_NAME); + searchRequest = searchRequestWithSort(SECOND_INDEX_NAME); searchResponse = restHighLevelClient.search(searchRequest, DEFAULT); assertThat(searchResponse, isSuccessfulSearchResponse()); @@ -349,7 +350,7 @@ public void testShouldSearchI1_S3I1_S6I2_S2() throws IOException { READ_WHERE_FIELD_ARTIST_MATCHES_ARTIST_TWINS_OR_FIELD_STARS_GREATER_THAN_FIVE ) ) { - SearchRequest searchRequest = new SearchRequest(FIRST_INDEX_NAME); + SearchRequest searchRequest = searchRequestWithSort(FIRST_INDEX_NAME); SearchResponse searchResponse = restHighLevelClient.search(searchRequest, DEFAULT); assertThat(searchResponse, isSuccessfulSearchResponse()); @@ -357,7 +358,7 @@ public void testShouldSearchI1_S3I1_S6I2_S2() throws IOException { assertThat(searchResponse, searchHitContainsFieldWithValue(0, FIELD_ARTIST, ARTIST_TWINS)); assertThat(searchResponse, searchHitContainsFieldWithValue(1, FIELD_ARTIST, ARTIST_UNKNOWN)); - searchRequest = new SearchRequest(SECOND_INDEX_NAME); + searchRequest = searchRequestWithSort(SECOND_INDEX_NAME); searchResponse = restHighLevelClient.search(searchRequest, DEFAULT); assertThat(searchResponse, isSuccessfulSearchResponse()); @@ -373,7 +374,7 @@ public void testShouldSearchI1_S1I1_S3I2_S2I2_S4() throws IOException { READ_WHERE_FIELD_ARTIST_MATCHES_ARTIST_TWINS_OR_MATCHES_ARTIST_FIRST ) ) { - SearchRequest searchRequest = new SearchRequest(FIRST_INDEX_NAME); + SearchRequest searchRequest = searchRequestWithSort(FIRST_INDEX_NAME); SearchResponse searchResponse = restHighLevelClient.search(searchRequest, DEFAULT); assertThat(searchResponse, isSuccessfulSearchResponse()); @@ -381,7 +382,7 @@ public void testShouldSearchI1_S1I1_S3I2_S2I2_S4() throws IOException { assertThat(searchResponse, searchHitContainsFieldWithValue(0, FIELD_ARTIST, ARTIST_TWINS)); assertThat(searchResponse, searchHitContainsFieldWithValue(1, FIELD_ARTIST, ARTIST_FIRST)); - searchRequest = new SearchRequest(SECOND_INDEX_NAME); + searchRequest = searchRequestWithSort(SECOND_INDEX_NAME); searchResponse = restHighLevelClient.search(searchRequest, DEFAULT); assertThat(searchResponse, isSuccessfulSearchResponse()); @@ -394,7 +395,7 @@ public void testShouldSearchI1_S1I1_S3I2_S2I2_S4() throws IOException { public void testShouldSearchStarsLessThanThree() throws IOException { try (RestHighLevelClient restHighLevelClient = cluster.getRestHighLevelClient(READ_WHERE_STARS_LESS_THAN_THREE)) { - SearchRequest searchRequest = new SearchRequest(FIRST_INDEX_NAME); + SearchRequest searchRequest = searchRequestWithSort(FIRST_INDEX_NAME); SearchResponse searchResponse = restHighLevelClient.search(searchRequest, DEFAULT); assertThat(searchResponse, isSuccessfulSearchResponse()); @@ -402,7 +403,7 @@ public void testShouldSearchStarsLessThanThree() throws IOException { assertThat(searchResponse, searchHitContainsFieldWithValue(0, FIELD_ARTIST, ARTIST_FIRST)); assertThat(searchResponse, searchHitContainsFieldWithValue(1, FIELD_ARTIST, ARTIST_STRING)); - searchRequest = new SearchRequest(SECOND_INDEX_NAME); + searchRequest = searchRequestWithSort(SECOND_INDEX_NAME); searchResponse = restHighLevelClient.search(searchRequest, DEFAULT); assertThat(searchResponse, isSuccessfulSearchResponse()); @@ -417,7 +418,7 @@ public void testSearchForAllDocumentsWithIndexPattern() throws IOException { // DLS try (RestHighLevelClient restHighLevelClient = cluster.getRestHighLevelClient(READ_ALL_USER)) { - SearchRequest searchRequest = new SearchRequest("*".concat(FIRST_INDEX_NAME)); + SearchRequest searchRequest = searchRequestWithSort("*".concat(FIRST_INDEX_NAME)); SearchResponse searchResponse = restHighLevelClient.search(searchRequest, DEFAULT); assertThat(searchResponse, isSuccessfulSearchResponse()); @@ -429,7 +430,7 @@ public void testSearchForAllDocumentsWithIndexPattern() throws IOException { assertThat(searchResponse, searchHitContainsFieldWithValue(4, FIELD_ARTIST, ARTIST_YES)); assertThat(searchResponse, searchHitContainsFieldWithValue(5, FIELD_ARTIST, ARTIST_UNKNOWN)); - searchRequest = new SearchRequest("*".concat(SECOND_INDEX_NAME)); + searchRequest = searchRequestWithSort("*".concat(SECOND_INDEX_NAME)); searchResponse = restHighLevelClient.search(searchRequest, DEFAULT); assertThat(searchResponse, isSuccessfulSearchResponse()); @@ -442,7 +443,7 @@ public void testSearchForAllDocumentsWithIndexPattern() throws IOException { public void testSearchForAllDocumentsWithAlias() throws IOException { try (RestHighLevelClient restHighLevelClient = cluster.getRestHighLevelClient(READ_ALL_USER)) { - SearchRequest searchRequest = new SearchRequest(FIRST_INDEX_ALIAS); + SearchRequest searchRequest = searchRequestWithSort(FIRST_INDEX_ALIAS); SearchResponse searchResponse = restHighLevelClient.search(searchRequest, DEFAULT); assertThat(searchResponse, isSuccessfulSearchResponse()); @@ -454,12 +455,15 @@ public void testSearchForAllDocumentsWithAlias() throws IOException { assertThat(searchResponse, searchHitContainsFieldWithValue(4, FIELD_ARTIST, ARTIST_YES)); assertThat(searchResponse, searchHitContainsFieldWithValue(5, FIELD_ARTIST, ARTIST_UNKNOWN)); - searchRequest = new SearchRequest("*".concat(SECOND_INDEX_NAME)); + searchRequest = searchRequestWithSort("*".concat(SECOND_INDEX_NAME)); searchResponse = restHighLevelClient.search(searchRequest, DEFAULT); assertThat(searchResponse, isSuccessfulSearchResponse()); assertThat(searchResponse, numberOfTotalHitsIsEqualTo(4)); assertThat(searchResponse, searchHitContainsFieldWithValue(0, FIELD_ARTIST, ARTIST_NO)); + assertThat(searchResponse, searchHitContainsFieldWithValue(1, FIELD_ARTIST, ARTIST_TWINS)); + assertThat(searchResponse, searchHitContainsFieldWithValue(2, FIELD_ARTIST, ARTIST_STRING)); + assertThat(searchResponse, searchHitContainsFieldWithValue(3, FIELD_ARTIST, ARTIST_FIRST)); } } diff --git a/src/integrationTest/java/org/opensearch/test/framework/cluster/SearchRequestFactory.java b/src/integrationTest/java/org/opensearch/test/framework/cluster/SearchRequestFactory.java index b40aa9cfcb..cfd0e09088 100644 --- a/src/integrationTest/java/org/opensearch/test/framework/cluster/SearchRequestFactory.java +++ b/src/integrationTest/java/org/opensearch/test/framework/cluster/SearchRequestFactory.java @@ -70,6 +70,14 @@ public static SearchRequest searchRequestWithScroll(String indexName, int pageSi return searchRequest; } + public static SearchRequest searchRequestWithSort(String indexName) { + SearchRequest searchRequest = new SearchRequest(indexName); + SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); + searchSourceBuilder.sort(new FieldSortBuilder("_id").order(SortOrder.ASC)); + searchRequest.source(searchSourceBuilder); + return searchRequest; + } + public static SearchRequest searchAll(String... indexNames) { SearchRequest searchRequest = new SearchRequest(indexNames); SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); diff --git a/src/test/java/org/opensearch/security/SlowIntegrationTests.java b/src/test/java/org/opensearch/security/SlowIntegrationTests.java index 76a162ab9f..0c264ad440 100644 --- a/src/test/java/org/opensearch/security/SlowIntegrationTests.java +++ b/src/test/java/org/opensearch/security/SlowIntegrationTests.java @@ -26,19 +26,14 @@ package org.opensearch.security; -import java.io.IOException; - import com.google.common.collect.Lists; -import org.apache.http.HttpStatus; import org.junit.Assert; import org.junit.Test; import org.opensearch.action.admin.cluster.health.ClusterHealthRequest; import org.opensearch.action.admin.cluster.node.info.NodesInfoRequest; -import org.opensearch.action.admin.cluster.settings.ClusterUpdateSettingsRequest; import org.opensearch.cluster.health.ClusterHealthStatus; import org.opensearch.common.settings.Settings; -import org.opensearch.common.unit.TimeValue; import org.opensearch.node.Node; import org.opensearch.node.PluginAwareNode; import org.opensearch.security.ssl.util.SSLConfigConstants; @@ -47,7 +42,6 @@ import org.opensearch.security.test.SingleClusterTest; import org.opensearch.security.test.helper.cluster.ClusterConfiguration; import org.opensearch.security.test.helper.file.FileHelper; -import org.opensearch.security.test.helper.rest.RestHelper; import org.opensearch.transport.Netty4ModulePlugin; public class SlowIntegrationTests extends SingleClusterTest { @@ -216,34 +210,4 @@ public void testNodeClientDisallowedWithNonServerCertificate2() throws Exception Assert.fail(e.toString()); } } - - @Test - public void testDelayInSecurityIndexInitialization() throws Exception { - final Settings settings = Settings.builder() - .put(ConfigConstants.SECURITY_ALLOW_DEFAULT_INIT_SECURITYINDEX, true) - .put("cluster.routing.allocation.exclude._ip", "127.0.0.1") - .build(); - try { - setup(Settings.EMPTY, null, settings, false); - Assert.fail("Expected IOException here due to red cluster state"); - } catch (IOException e) { - // Index request has a default timeout of 1 minute, adding buffer between nodes initialization and cluster health check - Thread.sleep(1000 * 80); - // Ideally, we would want to remove this cluster setting, but default settings cannot be removed. So overriding with a reserved - // IP address - clusterHelper.nodeClient() - .admin() - .cluster() - .updateSettings( - new ClusterUpdateSettingsRequest().transientSettings( - Settings.builder().put("cluster.routing.allocation.exclude._ip", "192.0.2.0").build() - ) - ); - this.clusterInfo = clusterHelper.waitForCluster(ClusterHealthStatus.GREEN, TimeValue.timeValueSeconds(10), 3); - } - RestHelper rh = nonSslRestHelper(); - Thread.sleep(10000); - Assert.assertEquals(HttpStatus.SC_OK, rh.executeGetRequest("", encodeBasicHeader("admin", "admin")).getStatusCode()); - } - }