Skip to content

Commit 5cb0dbc

Browse files
authored
[Backport 2.17] Update CI check for integ-test-with-security to run all integ tests with security (#1248)
1 parent 56ea466 commit 5cb0dbc

17 files changed

+99
-62
lines changed

.github/workflows/security-test-workflow.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ jobs:
4040
- name: Run integration tests
4141
run: |
4242
chown -R 1000:1000 `pwd`
43-
su `id -un 1000` -c "./gradlew integTest -Dsecurity=true -Dhttps=true --tests '*SecurityBehaviorIT'"
43+
su `id -un 1000` -c "./gradlew integTest -Dsecurity=true -Dhttps=true --tests '*IT'"
4444
- name: Upload failed logs
4545
uses: actions/upload-artifact@v2
4646
if: failure()

src/test/kotlin/org/opensearch/indexmanagement/indexstatemanagement/IndexStateManagementRestTestCase.kt

+13-11
Original file line numberDiff line numberDiff line change
@@ -339,10 +339,11 @@ abstract class IndexStateManagementRestTestCase : IndexManagementRestTestCase()
339339
"$key" : "$value"
340340
}
341341
""".trimIndent()
342-
val res = client().makeRequest(
343-
"PUT", "$index/_settings", emptyMap(),
344-
StringEntity(body, APPLICATION_JSON),
345-
)
342+
val res =
343+
adminClient().makeRequest(
344+
"PUT", "$index/_settings", emptyMap(),
345+
StringEntity(body, APPLICATION_JSON),
346+
)
346347
assertEquals("Update index setting failed", RestStatus.OK, res.restStatus())
347348
}
348349

@@ -465,13 +466,14 @@ abstract class IndexStateManagementRestTestCase : IndexManagementRestTestCase()
465466
}
466467

467468
protected fun updateManagedIndexConfigPolicySeqNo(update: ManagedIndexConfig) {
468-
val response = client().makeRequest(
469-
"POST", "$INDEX_MANAGEMENT_INDEX/_update/${update.id}",
470-
StringEntity(
471-
"{\"doc\":{\"managed_index\":{\"policy_seq_no\":\"${update.policySeqNo}\"}}}",
472-
APPLICATION_JSON,
473-
),
474-
)
469+
val response =
470+
adminClient().makeRequest(
471+
"POST", "$INDEX_MANAGEMENT_INDEX/_update/${update.id}",
472+
StringEntity(
473+
"{\"doc\":{\"managed_index\":{\"policy_seq_no\":\"${update.policySeqNo}\"}}}",
474+
APPLICATION_JSON,
475+
),
476+
)
475477
assertEquals("Request failed", RestStatus.OK, response.restStatus())
476478
}
477479

src/test/kotlin/org/opensearch/indexmanagement/indexstatemanagement/action/RolloverActionIT.kt

+16-15
Original file line numberDiff line numberDiff line change
@@ -770,21 +770,22 @@ class RolloverActionIT : IndexStateManagementRestTestCase() {
770770
assertEquals("Index did not rollover.", AttemptRolloverStep.getSuccessMessage(firstIndex), info["message"])
771771
}
772772
// Manually produce transaction failure
773-
val response = client().makeRequest(
774-
"POST", "$INDEX_MANAGEMENT_INDEX/_update/${managedIndexConfig.id}%23metadata",
775-
StringEntity(
776-
"{\n" +
777-
" \"script\": {\n" +
778-
" \"source\": \"ctx._source.managed_index_metadata.step.step_status = params.step_status\",\n" +
779-
" \"lang\": \"painless\",\n" +
780-
" \"params\": {\n" +
781-
" \"step_status\": \"starting\"\n" +
782-
" }\n" +
783-
" }\n" +
784-
"}",
785-
ContentType.APPLICATION_JSON,
786-
),
787-
)
773+
val response =
774+
adminClient().makeRequest(
775+
"POST", "$INDEX_MANAGEMENT_INDEX/_update/${managedIndexConfig.id}%23metadata",
776+
StringEntity(
777+
"{\n" +
778+
" \"script\": {\n" +
779+
" \"source\": \"ctx._source.managed_index_metadata.step.step_status = params.step_status\",\n" +
780+
" \"lang\": \"painless\",\n" +
781+
" \"params\": {\n" +
782+
" \"step_status\": \"starting\"\n" +
783+
" }\n" +
784+
" }\n" +
785+
"}",
786+
ContentType.APPLICATION_JSON,
787+
),
788+
)
788789
assertEquals("Request failed", RestStatus.OK, response.restStatus())
789790

790791
// Execute again to see the transaction failure

src/test/kotlin/org/opensearch/indexmanagement/indexstatemanagement/resthandler/RestChangePolicyActionIT.kt

+6-2
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
package org.opensearch.indexmanagement.indexstatemanagement.resthandler
77

88
import org.junit.Before
9+
import org.opensearch.client.Request
910
import org.opensearch.client.ResponseException
1011
import org.opensearch.common.settings.Settings
1112
import org.opensearch.core.rest.RestStatus
@@ -35,7 +36,7 @@ import org.opensearch.indexmanagement.spi.indexstatemanagement.model.StateMetaDa
3536
import org.opensearch.indexmanagement.waitFor
3637
import org.opensearch.rest.RestRequest
3738
import java.time.Instant
38-
import java.util.Locale
39+
import java.util.*
3940

4041
class RestChangePolicyActionIT : IndexStateManagementRestTestCase() {
4142

@@ -87,7 +88,10 @@ class RestChangePolicyActionIT : IndexStateManagementRestTestCase() {
8788
}
8889

8990
fun `test nonexistent ism config index`() {
90-
if (indexExists(INDEX_MANAGEMENT_INDEX)) deleteIndex(INDEX_MANAGEMENT_INDEX)
91+
if (indexExists(INDEX_MANAGEMENT_INDEX)) {
92+
val deleteISMIndexRequest = Request("DELETE", "/$INDEX_MANAGEMENT_INDEX")
93+
adminClient().performRequest(deleteISMIndexRequest)
94+
}
9195
try {
9296
val changePolicy = ChangePolicy("some_id", null, emptyList(), false)
9397
client().makeRequest(

src/test/kotlin/org/opensearch/indexmanagement/rollup/resthandler/RestStartRollupActionIT.kt

+6-3
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,13 @@
55

66
package org.opensearch.indexmanagement.rollup.resthandler
77

8+
import org.opensearch.client.Request
89
import org.opensearch.client.ResponseException
910
import org.opensearch.common.settings.Settings
1011
import org.opensearch.core.rest.RestStatus
1112
import org.opensearch.indexmanagement.IndexManagementIndices
1213
import org.opensearch.indexmanagement.IndexManagementPlugin
14+
import org.opensearch.indexmanagement.IndexManagementPlugin.Companion.INDEX_MANAGEMENT_INDEX
1315
import org.opensearch.indexmanagement.IndexManagementPlugin.Companion.ROLLUP_JOBS_BASE_URI
1416
import org.opensearch.indexmanagement.common.model.dimension.DateHistogram
1517
import org.opensearch.indexmanagement.indexstatemanagement.util.INDEX_HIDDEN
@@ -22,7 +24,7 @@ import org.opensearch.indexmanagement.waitFor
2224
import org.opensearch.jobscheduler.spi.schedule.IntervalSchedule
2325
import java.time.Instant
2426
import java.time.temporal.ChronoUnit
25-
import java.util.Locale
27+
import java.util.*
2628

2729
class RestStartRollupActionIT : RollupRestAPITestCase() {
2830

@@ -199,7 +201,8 @@ class RestStartRollupActionIT : RollupRestAPITestCase() {
199201

200202
fun `test start rollup when multiple shards configured for IM config index`() {
201203
// setup ism-config index with multiple primary shards
202-
deleteIndex(IndexManagementPlugin.INDEX_MANAGEMENT_INDEX)
204+
val deleteISMIndexRequest = Request("DELETE", "/$INDEX_MANAGEMENT_INDEX")
205+
adminClient().performRequest(deleteISMIndexRequest)
203206
val mapping = IndexManagementIndices.indexManagementMappings.trim().trimStart('{').trimEnd('}')
204207
val settings = Settings.builder()
205208
.put(INDEX_HIDDEN, true)
@@ -250,7 +253,7 @@ class RestStartRollupActionIT : RollupRestAPITestCase() {
250253

251254
// clearing the config index to prevent other tests using this multi shard index
252255
Thread.sleep(2000L)
253-
deleteIndex(IndexManagementPlugin.INDEX_MANAGEMENT_INDEX)
256+
adminClient().performRequest(deleteISMIndexRequest)
254257
Thread.sleep(2000L)
255258
}
256259
}

src/test/kotlin/org/opensearch/indexmanagement/rollup/resthandler/RestStopRollupActionIT.kt

+5-2
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,13 @@
55

66
package org.opensearch.indexmanagement.rollup.resthandler
77

8+
import org.opensearch.client.Request
89
import org.opensearch.client.ResponseException
910
import org.opensearch.common.settings.Settings
1011
import org.opensearch.core.rest.RestStatus
1112
import org.opensearch.indexmanagement.IndexManagementIndices
1213
import org.opensearch.indexmanagement.IndexManagementPlugin
14+
import org.opensearch.indexmanagement.IndexManagementPlugin.Companion.INDEX_MANAGEMENT_INDEX
1315
import org.opensearch.indexmanagement.IndexManagementPlugin.Companion.ROLLUP_JOBS_BASE_URI
1416
import org.opensearch.indexmanagement.common.model.dimension.DateHistogram
1517
import org.opensearch.indexmanagement.common.model.dimension.Terms
@@ -252,7 +254,8 @@ class RestStopRollupActionIT : RollupRestAPITestCase() {
252254

253255
fun `test stop rollup when multiple shards configured for IM config index`() {
254256
// setup ism-config index with multiple primary shards
255-
deleteIndex(IndexManagementPlugin.INDEX_MANAGEMENT_INDEX)
257+
val deleteISMIndexRequest = Request("DELETE", "/$INDEX_MANAGEMENT_INDEX")
258+
adminClient().performRequest(deleteISMIndexRequest)
256259
val mapping = IndexManagementIndices.indexManagementMappings.trim().trimStart('{').trimEnd('}')
257260
val settings = Settings.builder()
258261
.put(INDEX_HIDDEN, true)
@@ -306,7 +309,7 @@ class RestStopRollupActionIT : RollupRestAPITestCase() {
306309

307310
// clearing the config index to prevent other tests using this multi shard index
308311
Thread.sleep(2000L)
309-
deleteIndex(IndexManagementPlugin.INDEX_MANAGEMENT_INDEX)
312+
adminClient().performRequest(deleteISMIndexRequest)
310313
Thread.sleep(2000L)
311314
}
312315
}

src/test/kotlin/org/opensearch/indexmanagement/rollup/runner/RollupRunnerIT.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1394,7 +1394,7 @@ class RollupRunnerIT : RollupRestTestCase() {
13941394
// - Source index with pattern mapping to some closed indices
13951395

13961396
private fun deleteRollupMetadata(metadataId: String) {
1397-
val response = client().makeRequest("DELETE", "${IndexManagementPlugin.INDEX_MANAGEMENT_INDEX}/_doc/$metadataId")
1397+
val response = adminClient().makeRequest("DELETE", "${IndexManagementPlugin.INDEX_MANAGEMENT_INDEX}/_doc/$metadataId")
13981398
assertEquals("Unable to delete rollup metadata $metadataId", RestStatus.OK, response.restStatus())
13991399
}
14001400
}

src/test/kotlin/org/opensearch/indexmanagement/snapshotmanagement/SnapshotManagementRestTestCase.kt

+17-15
Original file line numberDiff line numberDiff line change
@@ -138,13 +138,14 @@ abstract class SnapshotManagementRestTestCase : IndexManagementRestTestCase() {
138138
val millis = Duration.of(intervalSchedule.interval.toLong(), intervalSchedule.unit).minusSeconds(2).toMillis()
139139
val startTimeMillis = desiredStartTimeMillis ?: (now().toEpochMilli() - millis)
140140
val waitForActiveShards = if (isMultiNode) "all" else "1"
141-
val response = client().makeRequest(
142-
"POST", "$INDEX_MANAGEMENT_INDEX/_update/${update.id}?wait_for_active_shards=$waitForActiveShards",
143-
StringEntity(
144-
"{\"doc\":{\"sm_policy\":{\"schedule\":{\"interval\":{\"start_time\":\"$startTimeMillis\"}}}}}",
145-
APPLICATION_JSON,
146-
),
147-
)
141+
val response =
142+
adminClient().makeRequest(
143+
"POST", "$INDEX_MANAGEMENT_INDEX/_update/${update.id}?wait_for_active_shards=$waitForActiveShards",
144+
StringEntity(
145+
"{\"doc\":{\"sm_policy\":{\"schedule\":{\"interval\":{\"start_time\":\"$startTimeMillis\"}}}}}",
146+
APPLICATION_JSON,
147+
),
148+
)
148149

149150
assertEquals("Request failed", RestStatus.OK, response.restStatus())
150151
}
@@ -169,10 +170,11 @@ abstract class SnapshotManagementRestTestCase : IndexManagementRestTestCase() {
169170
val millis = Duration.of(intervalSchedule.interval.toLong(), intervalSchedule.unit).minusSeconds(2).toMillis()
170171
val startTimeMillis = desiredStartTimeMillis ?: (now().toEpochMilli() - millis)
171172
val waitForActiveShards = if (isMultiNode) "all" else "1"
172-
val response = client().makeRequest(
173-
"POST", "$INDEX_MANAGEMENT_INDEX/_update/${update.metadataID}?wait_for_active_shards=$waitForActiveShards",
174-
StringEntity(
175-
"""
173+
val response =
174+
adminClient().makeRequest(
175+
"POST", "$INDEX_MANAGEMENT_INDEX/_update/${update.metadataID}?wait_for_active_shards=$waitForActiveShards",
176+
StringEntity(
177+
"""
176178
{
177179
"doc": {
178180
"sm_metadata": {
@@ -186,10 +188,10 @@ abstract class SnapshotManagementRestTestCase : IndexManagementRestTestCase() {
186188
}
187189
}
188190
}
189-
""".trimIndent(),
190-
APPLICATION_JSON,
191-
),
192-
)
191+
""".trimIndent(),
192+
APPLICATION_JSON,
193+
),
194+
)
193195

194196
assertEquals("Request failed", RestStatus.OK, response.restStatus())
195197
}

src/test/kotlin/org/opensearch/indexmanagement/snapshotmanagement/resthandler/RestDeleteSnapshotManagementIT.kt

+3-1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
package org.opensearch.indexmanagement.snapshotmanagement.resthandler
77

8+
import org.opensearch.client.Request
89
import org.opensearch.client.ResponseException
910
import org.opensearch.core.rest.RestStatus
1011
import org.opensearch.indexmanagement.IndexManagementPlugin
@@ -39,7 +40,8 @@ class RestDeleteSnapshotManagementIT : SnapshotManagementRestTestCase() {
3940

4041
fun `test deleting a snapshot management policy that doesn't exist and config index doesnt exist`() {
4142
try {
42-
deleteIndex(INDEX_MANAGEMENT_INDEX)
43+
val deleteISMIndexRequest = Request("DELETE", "/$INDEX_MANAGEMENT_INDEX")
44+
adminClient().performRequest(deleteISMIndexRequest)
4345
client().makeRequest("DELETE", "${IndexManagementPlugin.SM_POLICIES_URI}/nonexistent_policy")
4446
fail("expected 404 ResponseException")
4547
} catch (e: ResponseException) {

src/test/kotlin/org/opensearch/indexmanagement/snapshotmanagement/resthandler/RestExplainSnapshotManagementIT.kt

+3-1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
package org.opensearch.indexmanagement.snapshotmanagement.resthandler
77

8+
import org.opensearch.client.Request
89
import org.opensearch.client.ResponseException
910
import org.opensearch.common.xcontent.XContentType
1011
import org.opensearch.core.rest.RestStatus
@@ -139,7 +140,8 @@ class RestExplainSnapshotManagementIT : SnapshotManagementRestTestCase() {
139140

140141
fun `test explain sm policy when config index doesn't exist`() {
141142
try {
142-
deleteIndex(INDEX_MANAGEMENT_INDEX)
143+
val deleteISMIndexRequest = Request("DELETE", "/$INDEX_MANAGEMENT_INDEX")
144+
adminClient().performRequest(deleteISMIndexRequest)
143145
explainSMPolicy(randomAlphaOfLength(10))
144146
fail("expected response exception")
145147
} catch (e: ResponseException) {

src/test/kotlin/org/opensearch/indexmanagement/snapshotmanagement/resthandler/RestGetSnapshotManagementIT.kt

+4-1
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,11 @@ package org.opensearch.indexmanagement.snapshotmanagement.resthandler
77

88
import org.apache.http.HttpHeaders
99
import org.apache.http.message.BasicHeader
10+
import org.opensearch.client.Request
1011
import org.opensearch.client.ResponseException
1112
import org.opensearch.core.rest.RestStatus
1213
import org.opensearch.indexmanagement.IndexManagementPlugin
14+
import org.opensearch.indexmanagement.IndexManagementPlugin.Companion.INDEX_MANAGEMENT_INDEX
1315
import org.opensearch.indexmanagement.makeRequest
1416
import org.opensearch.indexmanagement.opensearchapi.convertToMap
1517
import org.opensearch.indexmanagement.snapshotmanagement.SnapshotManagementRestTestCase
@@ -48,7 +50,8 @@ class RestGetSnapshotManagementIT : SnapshotManagementRestTestCase() {
4850
@Throws(Exception::class)
4951
fun `test getting a snapshot management policy that doesn't exist and config index doesnt exist`() {
5052
try {
51-
deleteIndex(IndexManagementPlugin.INDEX_MANAGEMENT_INDEX)
53+
val deleteISMIndexRequest = Request("DELETE", "/$INDEX_MANAGEMENT_INDEX")
54+
adminClient().performRequest(deleteISMIndexRequest)
5255
getSMPolicy(randomAlphaOfLength(20))
5356
fail("expected response exception")
5457
} catch (e: ResponseException) {

src/test/kotlin/org/opensearch/indexmanagement/snapshotmanagement/resthandler/RestIndexSnapshotManagementIT.kt

+3-1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
package org.opensearch.indexmanagement.snapshotmanagement.resthandler
77

8+
import org.opensearch.client.Request
89
import org.opensearch.client.ResponseException
910
import org.opensearch.common.xcontent.XContentType
1011
import org.opensearch.core.rest.RestStatus
@@ -129,7 +130,8 @@ class RestIndexSnapshotManagementIT : SnapshotManagementRestTestCase() {
129130
@Throws(Exception::class)
130131
@Suppress("UNCHECKED_CAST")
131132
fun `test mappings after sm policy creation`() {
132-
deleteIndex(INDEX_MANAGEMENT_INDEX)
133+
val deleteISMIndexRequest = Request("DELETE", "/$INDEX_MANAGEMENT_INDEX")
134+
adminClient().performRequest(deleteISMIndexRequest)
133135
createSMPolicy(randomSMPolicy())
134136

135137
val response = client().makeRequest("GET", "/$INDEX_MANAGEMENT_INDEX/_mapping")

src/test/kotlin/org/opensearch/indexmanagement/snapshotmanagement/resthandler/RestStartSnapshotManagementIT.kt

+4-1
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,11 @@
55

66
package org.opensearch.indexmanagement.snapshotmanagement.resthandler
77

8+
import org.opensearch.client.Request
89
import org.opensearch.client.ResponseException
910
import org.opensearch.core.rest.RestStatus
1011
import org.opensearch.indexmanagement.IndexManagementPlugin
12+
import org.opensearch.indexmanagement.IndexManagementPlugin.Companion.INDEX_MANAGEMENT_INDEX
1113
import org.opensearch.indexmanagement.makeRequest
1214
import org.opensearch.indexmanagement.snapshotmanagement.SnapshotManagementRestTestCase
1315
import org.opensearch.indexmanagement.snapshotmanagement.randomSMPolicy
@@ -60,7 +62,8 @@ class RestStartSnapshotManagementIT : SnapshotManagementRestTestCase() {
6062

6163
fun `test starting a snapshot management policy with no config index fails`() {
6264
try {
63-
deleteIndex(IndexManagementPlugin.INDEX_MANAGEMENT_INDEX)
65+
val request = Request("DELETE", "/$INDEX_MANAGEMENT_INDEX")
66+
adminClient().performRequest(request)
6467
client().makeRequest("POST", "${IndexManagementPlugin.SM_POLICIES_URI}/nonexistent_foo/_start")
6568
fail("expected response exception")
6669
} catch (e: ResponseException) {

src/test/kotlin/org/opensearch/indexmanagement/snapshotmanagement/resthandler/RestStopSnapshotManagementIT.kt

+4-1
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,11 @@
55

66
package org.opensearch.indexmanagement.snapshotmanagement.resthandler
77

8+
import org.opensearch.client.Request
89
import org.opensearch.client.ResponseException
910
import org.opensearch.core.rest.RestStatus
1011
import org.opensearch.indexmanagement.IndexManagementPlugin
12+
import org.opensearch.indexmanagement.IndexManagementPlugin.Companion.INDEX_MANAGEMENT_INDEX
1113
import org.opensearch.indexmanagement.makeRequest
1214
import org.opensearch.indexmanagement.snapshotmanagement.SnapshotManagementRestTestCase
1315
import org.opensearch.indexmanagement.snapshotmanagement.randomSMPolicy
@@ -60,7 +62,8 @@ class RestStopSnapshotManagementIT : SnapshotManagementRestTestCase() {
6062

6163
fun `test stopping a snapshot management policy with no config index fails`() {
6264
try {
63-
deleteIndex(IndexManagementPlugin.INDEX_MANAGEMENT_INDEX)
65+
val deleteISMIndexRequest = Request("DELETE", "/$INDEX_MANAGEMENT_INDEX")
66+
adminClient().performRequest(deleteISMIndexRequest)
6467
client().makeRequest("POST", "${IndexManagementPlugin.SM_POLICIES_URI}/nonexistent_foo/_stop")
6568
fail("expected response exception")
6669
} catch (e: ResponseException) {

src/test/kotlin/org/opensearch/indexmanagement/transform/TransformRestTestCase.kt

+4-3
Original file line numberDiff line numberDiff line change
@@ -116,9 +116,10 @@ abstract class TransformRestTestCase : IndexManagementRestTestCase() {
116116
}
117117

118118
protected fun getTransformMetadata(metadataId: String): TransformMetadata {
119-
val response = client().makeRequest(
120-
"GET", "$INDEX_MANAGEMENT_INDEX/_doc/$metadataId", null, BasicHeader(HttpHeaders.CONTENT_TYPE, "application/json"),
121-
)
119+
val response =
120+
adminClient().makeRequest(
121+
"GET", "$INDEX_MANAGEMENT_INDEX/_doc/$metadataId", null, BasicHeader(HttpHeaders.CONTENT_TYPE, "application/json"),
122+
)
122123
assertEquals("Unable to get transform metadata $metadataId", RestStatus.OK, response.restStatus())
123124

124125
val parser = createParser(XContentType.JSON.xContent(), response.entity.content)

0 commit comments

Comments
 (0)