Skip to content

Commit 4ed662e

Browse files
committed
Use ProjectState
1 parent e3a9314 commit 4ed662e

File tree

1 file changed

+11
-8
lines changed

1 file changed

+11
-8
lines changed

modules/ingest-geoip/src/main/java/org/elasticsearch/ingest/geoip/DatabaseNodeService.java

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import org.elasticsearch.client.internal.Client;
1717
import org.elasticsearch.client.internal.OriginSettingClient;
1818
import org.elasticsearch.cluster.ClusterState;
19+
import org.elasticsearch.cluster.ProjectState;
1920
import org.elasticsearch.cluster.metadata.IndexAbstraction;
2021
import org.elasticsearch.cluster.metadata.ProjectId;
2122
import org.elasticsearch.cluster.metadata.ProjectMetadata;
@@ -288,13 +289,15 @@ void checkDatabases(ClusterState state) {
288289
}
289290

290291
// Optimization: only load the .geoip_databases for projects that are allocated to this node
291-
for (ProjectMetadata projectMetadata : state.metadata().projects().values()) {
292-
checkDatabases(state, projectMetadata);
292+
for (ProjectId projectId : state.metadata().projects().keySet()) {
293+
checkDatabases(state.projectState(projectId));
293294
}
294295
}
295296

296-
void checkDatabases(ClusterState state, ProjectMetadata projectMetadata) {
297-
ProjectId projectId = projectMetadata.id();
297+
void checkDatabases(ProjectState projectState) {
298+
ProjectId projectId = projectState.projectId();
299+
ProjectMetadata projectMetadata = projectState.metadata();
300+
ClusterState clusterState = clusterService.state();
298301
PersistentTasksCustomMetadata persistentTasks = projectMetadata.custom(PersistentTasksCustomMetadata.TYPE);
299302
if (persistentTasks == null) {
300303
logger.trace("Not checking databases for project [{}] because persistent tasks are null", projectId);
@@ -308,7 +311,7 @@ void checkDatabases(ClusterState state, ProjectMetadata projectMetadata) {
308311
} else {
309312
// regardless of whether DATABASES_INDEX is an alias, resolve it to a concrete index
310313
Index databasesIndex = databasesAbstraction.getWriteIndex();
311-
IndexRoutingTable databasesIndexRT = state.routingTable(projectId).index(databasesIndex);
314+
IndexRoutingTable databasesIndexRT = clusterState.routingTable(projectId).index(databasesIndex);
312315
if (databasesIndexRT == null || databasesIndexRT.allPrimaryShardsActive() == false) {
313316
logger.trace(
314317
"Not checking databases because geoip databases index does not have all active primary shards for" + " project [{}]",
@@ -332,15 +335,15 @@ void checkDatabases(ClusterState state, ProjectMetadata projectMetadata) {
332335
taskState.getDatabases()
333336
.entrySet()
334337
.stream()
335-
.filter(e -> e.getValue().isNewEnough(state.getMetadata().settings()))
338+
.filter(e -> e.getValue().isNewEnough(clusterState.getMetadata().settings()))
336339
.map(entry -> Tuple.tuple(entry.getKey(), entry.getValue()))
337340
.toList()
338341
);
339342
}
340343

341344
// process the geoip task state for the enterprise geoip downloader
342345
{
343-
EnterpriseGeoIpTaskState taskState = getEnterpriseGeoIpTaskState(state);
346+
EnterpriseGeoIpTaskState taskState = getEnterpriseGeoIpTaskState(clusterState);
344347
if (taskState == null) {
345348
// Note: an empty state will purge stale entries in databases map
346349
taskState = EnterpriseGeoIpTaskState.EMPTY;
@@ -349,7 +352,7 @@ void checkDatabases(ClusterState state, ProjectMetadata projectMetadata) {
349352
taskState.getDatabases()
350353
.entrySet()
351354
.stream()
352-
.filter(e -> e.getValue().isNewEnough(state.getMetadata().settings()))
355+
.filter(e -> e.getValue().isNewEnough(clusterState.getMetadata().settings()))
353356
.map(entry -> Tuple.tuple(entry.getKey(), entry.getValue()))
354357
.toList()
355358
);

0 commit comments

Comments
 (0)