Skip to content

Commit

Permalink
[8.2] Reroute after migrating to data tiers routing (#86574) (#86676)
Browse files Browse the repository at this point in the history
* Reroute after migrating to data tiers routing (#86574)

* Adjust logging level

* Spotless
  • Loading branch information
andreidan committed May 11, 2022
1 parent 1f66677 commit cff44b2
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 3 deletions.
6 changes: 6 additions & 0 deletions docs/changelog/86574.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
pr: 86574
summary: Reroute after migrating to data tiers routing
area: ILM+SLM
type: bug
issues:
- 86572
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,9 @@ public void testMigrateToDataTiersAction() throws Exception {
Response migrateDeploymentResponse = client().performRequest(migrateRequest);
assertOK(migrateDeploymentResponse);

// the index was assigned after the migration
ensureGreen("indexwithdatawarmrouting");

Map<String, Object> migrateResponseAsMap = responseAsMap(migrateDeploymentResponse);
assertThat(
(List<String>) migrateResponseAsMap.get(MigrateToDataTiersResponse.MIGRATED_ILM_POLICIES.getPreferredName()),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@

package org.elasticsearch.xpack.ilm.action;

import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.apache.lucene.util.SetOnce;
import org.elasticsearch.action.ActionListener;
import org.elasticsearch.action.support.ActionFilters;
Expand All @@ -15,8 +18,10 @@
import org.elasticsearch.cluster.ClusterState;
import org.elasticsearch.cluster.ClusterStateTaskExecutor;
import org.elasticsearch.cluster.ClusterStateUpdateTask;
import org.elasticsearch.cluster.NotMasterException;
import org.elasticsearch.cluster.block.ClusterBlockException;
import org.elasticsearch.cluster.block.ClusterBlockLevel;
import org.elasticsearch.cluster.coordination.FailedToCommitClusterStateException;
import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
import org.elasticsearch.cluster.service.ClusterService;
import org.elasticsearch.common.Priority;
Expand All @@ -31,7 +36,6 @@
import org.elasticsearch.xpack.cluster.action.MigrateToDataTiersAction;
import org.elasticsearch.xpack.cluster.action.MigrateToDataTiersRequest;
import org.elasticsearch.xpack.cluster.action.MigrateToDataTiersResponse;
import org.elasticsearch.xpack.cluster.metadata.MetadataMigrateToDataTiersRoutingService;
import org.elasticsearch.xpack.cluster.metadata.MetadataMigrateToDataTiersRoutingService.MigratedEntities;
import org.elasticsearch.xpack.core.ilm.IndexLifecycleMetadata;

Expand All @@ -40,6 +44,8 @@

public class TransportMigrateToDataTiersAction extends TransportMasterNodeAction<MigrateToDataTiersRequest, MigrateToDataTiersResponse> {

private static final Logger logger = LogManager.getLogger(TransportMigrateToDataTiersAction.class);

private final NamedXContentRegistry xContentRegistry;
private final Client client;
private final XPackLicenseState licenseState;
Expand Down Expand Up @@ -88,7 +94,6 @@ protected void masterOperation(
licenseState,
request.isDryRun()
).v2();
MetadataMigrateToDataTiersRoutingService.MigratedTemplates migratedTemplates = entities.migratedTemplates;
listener.onResponse(
new MigrateToDataTiersResponse(
entities.removedIndexTemplateName,
Expand Down Expand Up @@ -138,7 +143,20 @@ public void onFailure(Exception e) {

@Override
public void clusterStateProcessed(ClusterState oldState, ClusterState newState) {
super.clusterStateProcessed(oldState, newState);
clusterService.getRerouteService()
.reroute("cluster migrated to data tiers routing", Priority.NORMAL, new ActionListener<ClusterState>() {
@Override
public void onResponse(ClusterState clusterState) {}

@Override
public void onFailure(Exception e) {
Level logLevel = Level.WARN;
if (e instanceof NotMasterException || e instanceof FailedToCommitClusterStateException) {
logLevel = Level.DEBUG;
}
logger.log(logLevel, "unsuccessful reroute after migration to data tiers routing", e);
}
});
MigratedEntities entities = migratedEntities.get();
listener.onResponse(
new MigrateToDataTiersResponse(
Expand Down

0 comments on commit cff44b2

Please sign in to comment.