Skip to content

Commit

Permalink
Enable windows platform for integration tests cases (opensearch-proje…
Browse files Browse the repository at this point in the history
…ct#3706)

Signed-off-by: Maciej Mierzwa <dev.maciej.mierzwa@gmail.com>
  • Loading branch information
MaciejMierzwa authored Dec 8, 2023
1 parent 0783329 commit 93cf507
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 53 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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());
Expand All @@ -293,15 +294,15 @@ 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());
assertThat(searchResponse, numberOfTotalHitsIsEqualTo(4));
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());
Expand All @@ -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());
Expand All @@ -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());
Expand All @@ -349,15 +350,15 @@ 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());
assertThat(searchResponse, numberOfTotalHitsIsEqualTo(2));
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());
Expand All @@ -373,15 +374,15 @@ 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());
assertThat(searchResponse, numberOfTotalHitsIsEqualTo(2));
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());
Expand All @@ -394,15 +395,15 @@ 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());
assertThat(searchResponse, numberOfTotalHitsIsEqualTo(2));
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());
Expand All @@ -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());
Expand All @@ -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());
Expand All @@ -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());
Expand All @@ -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));
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down
36 changes: 0 additions & 36 deletions src/test/java/org/opensearch/security/SlowIntegrationTests.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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 {
Expand Down Expand Up @@ -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());
}

}

0 comments on commit 93cf507

Please sign in to comment.