mirror of
https://github.com/elastic/elasticsearch.git
synced 2025-04-24 15:17:30 -04:00
* Implement GET API for System Feature Upgrades (#78642) * Implement and test get feature upgrade status API * Add integration test for feature upgrade endpoint * Use constant enum for statuses * Add unit tests for transport class methods * Fix bwc tests for 7.x
This commit is contained in:
parent
3b45d0ab53
commit
1b5827da3e
9 changed files with 500 additions and 64 deletions
|
@ -9,6 +9,7 @@
|
|||
package org.elasticsearch.client;
|
||||
|
||||
import org.elasticsearch.jdk.JavaVersion;
|
||||
import org.elasticsearch.Version;
|
||||
import org.elasticsearch.client.migration.DeprecationInfoRequest;
|
||||
import org.elasticsearch.client.migration.DeprecationInfoResponse;
|
||||
import org.elasticsearch.client.migration.GetFeatureUpgradeStatusRequest;
|
||||
|
@ -20,11 +21,14 @@ import org.elasticsearch.common.settings.Settings;
|
|||
import java.io.IOException;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static org.hamcrest.Matchers.anEmptyMap;
|
||||
import static org.hamcrest.Matchers.empty;
|
||||
import static org.hamcrest.Matchers.equalTo;
|
||||
import static org.hamcrest.Matchers.greaterThanOrEqualTo;
|
||||
import static org.hamcrest.Matchers.is;
|
||||
import static org.hamcrest.Matchers.nullValue;
|
||||
|
||||
public class MigrationIT extends ESRestHighLevelClientTestCase {
|
||||
|
@ -51,19 +55,24 @@ public class MigrationIT extends ESRestHighLevelClientTestCase {
|
|||
public void testGetFeatureUpgradeStatus() throws IOException {
|
||||
GetFeatureUpgradeStatusRequest request = new GetFeatureUpgradeStatusRequest();
|
||||
GetFeatureUpgradeStatusResponse response = highLevelClient().migration().getFeatureUpgradeStatus(request, RequestOptions.DEFAULT);
|
||||
assertThat(response.getUpgradeStatus(), equalTo("UPGRADE_NEEDED"));
|
||||
assertThat(response.getFeatureUpgradeStatuses().size(), equalTo(1));
|
||||
GetFeatureUpgradeStatusResponse.FeatureUpgradeStatus status = response.getFeatureUpgradeStatuses().get(0);
|
||||
assertThat(status.getUpgradeStatus(), equalTo("UPGRADE_NEEDED"));
|
||||
assertThat(status.getMinimumIndexVersion(), equalTo("7.1.1"));
|
||||
assertThat(status.getFeatureName(), equalTo("security"));
|
||||
assertThat(status.getIndexVersions().size(), equalTo(1));
|
||||
assertThat(response.getUpgradeStatus(), equalTo("NO_UPGRADE_NEEDED"));
|
||||
assertThat(response.getFeatureUpgradeStatuses().size(), greaterThanOrEqualTo(1));
|
||||
Optional<GetFeatureUpgradeStatusResponse.FeatureUpgradeStatus> optionalTasksStatus = response.getFeatureUpgradeStatuses().stream()
|
||||
.filter(status -> "tasks".equals(status.getFeatureName()))
|
||||
.findFirst();
|
||||
|
||||
assertThat(optionalTasksStatus.isPresent(), is(true));
|
||||
|
||||
GetFeatureUpgradeStatusResponse.FeatureUpgradeStatus tasksStatus = optionalTasksStatus.get();
|
||||
|
||||
assertThat(tasksStatus.getUpgradeStatus(), equalTo("NO_UPGRADE_NEEDED"));
|
||||
assertThat(tasksStatus.getMinimumIndexVersion(), equalTo(Version.CURRENT.toString()));
|
||||
assertThat(tasksStatus.getFeatureName(), equalTo("tasks"));
|
||||
}
|
||||
|
||||
public void testPostFeatureUpgradeStatus() throws IOException {
|
||||
PostFeatureUpgradeRequest request = new PostFeatureUpgradeRequest();
|
||||
PostFeatureUpgradeResponse response = highLevelClient().migration().postFeatureUpgrade(request, RequestOptions.DEFAULT);
|
||||
// a test like this cannot test actual deprecations
|
||||
assertThat(response.isAccepted(), equalTo(true));
|
||||
assertThat(response.getFeatures().size(), equalTo(1));
|
||||
PostFeatureUpgradeResponse.Feature feature = response.getFeatures().get(0);
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
|
||||
package org.elasticsearch.client.migration;
|
||||
|
||||
import org.elasticsearch.Version;
|
||||
import org.elasticsearch.client.AbstractResponseTestCase;
|
||||
import org.elasticsearch.common.xcontent.XContentParser;
|
||||
import org.elasticsearch.common.xcontent.XContentType;
|
||||
|
@ -37,14 +38,14 @@ public class GetFeatureUpgradeStatusResponseTests extends AbstractResponseTestCa
|
|||
randomList(5,
|
||||
() -> new org.elasticsearch.action.admin.cluster.migration.GetFeatureUpgradeStatusResponse.FeatureUpgradeStatus(
|
||||
randomAlphaOfLengthBetween(3, 20),
|
||||
randomAlphaOfLengthBetween(5, 9),
|
||||
randomAlphaOfLengthBetween(4, 16),
|
||||
randomFrom(Version.CURRENT, Version.CURRENT.minimumCompatibilityVersion()),
|
||||
randomFrom(org.elasticsearch.action.admin.cluster.migration.GetFeatureUpgradeStatusResponse.UpgradeStatus.values()),
|
||||
randomList(4,
|
||||
() -> new org.elasticsearch.action.admin.cluster.migration.GetFeatureUpgradeStatusResponse.IndexVersion(
|
||||
randomAlphaOfLengthBetween(3, 20),
|
||||
randomAlphaOfLengthBetween(5, 9)))
|
||||
randomFrom(Version.CURRENT, Version.CURRENT.minimumCompatibilityVersion())))
|
||||
)),
|
||||
randomAlphaOfLength(5)
|
||||
randomFrom(org.elasticsearch.action.admin.cluster.migration.GetFeatureUpgradeStatusResponse.UpgradeStatus.values())
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -58,7 +59,7 @@ public class GetFeatureUpgradeStatusResponseTests extends AbstractResponseTestCa
|
|||
org.elasticsearch.action.admin.cluster.migration.GetFeatureUpgradeStatusResponse serverTestInstance,
|
||||
GetFeatureUpgradeStatusResponse clientInstance) {
|
||||
|
||||
assertThat(clientInstance.getUpgradeStatus(), equalTo(serverTestInstance.getUpgradeStatus()));
|
||||
assertThat(clientInstance.getUpgradeStatus(), equalTo(serverTestInstance.getUpgradeStatus().toString()));
|
||||
|
||||
assertNotNull(serverTestInstance.getFeatureUpgradeStatuses());
|
||||
assertNotNull(clientInstance.getFeatureUpgradeStatuses());
|
||||
|
@ -71,8 +72,8 @@ public class GetFeatureUpgradeStatusResponseTests extends AbstractResponseTestCa
|
|||
GetFeatureUpgradeStatusResponse.FeatureUpgradeStatus clientStatus = clientInstance.getFeatureUpgradeStatuses().get(i);
|
||||
|
||||
assertThat(clientStatus.getFeatureName(), equalTo(serverTestStatus.getFeatureName()));
|
||||
assertThat(clientStatus.getMinimumIndexVersion(), equalTo(serverTestStatus.getMinimumIndexVersion()));
|
||||
assertThat(clientStatus.getUpgradeStatus(), equalTo(serverTestStatus.getUpgradeStatus()));
|
||||
assertThat(clientStatus.getMinimumIndexVersion(), equalTo(serverTestStatus.getMinimumIndexVersion().toString()));
|
||||
assertThat(clientStatus.getUpgradeStatus(), equalTo(serverTestStatus.getUpgradeStatus().toString()));
|
||||
|
||||
assertThat(clientStatus.getIndexVersions(), hasSize(serverTestStatus.getIndexVersions().size()));
|
||||
|
||||
|
@ -82,7 +83,7 @@ public class GetFeatureUpgradeStatusResponseTests extends AbstractResponseTestCa
|
|||
GetFeatureUpgradeStatusResponse.IndexVersion clientIndexVersion = clientStatus.getIndexVersions().get(j);
|
||||
|
||||
assertThat(clientIndexVersion.getIndexName(), equalTo(serverIndexVersion.getIndexName()));
|
||||
assertThat(clientIndexVersion.getVersion(), equalTo(serverIndexVersion.getVersion()));
|
||||
assertThat(clientIndexVersion.getVersion(), equalTo(serverIndexVersion.getVersion().toString()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue