Skip to content

Commit 03975a3

Browse files
authored
Make TransportDeleteDatabaseConfigurationAction project aware (#131300)
1 parent bfab88c commit 03975a3

File tree

1 file changed

+13
-5
lines changed

1 file changed

+13
-5
lines changed

modules/ingest-geoip/src/main/java/org/elasticsearch/ingest/geoip/direct/TransportDeleteDatabaseConfigurationAction.java

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,9 @@
2121
import org.elasticsearch.cluster.SimpleBatchedExecutor;
2222
import org.elasticsearch.cluster.block.ClusterBlockException;
2323
import org.elasticsearch.cluster.block.ClusterBlockLevel;
24+
import org.elasticsearch.cluster.metadata.ProjectId;
2425
import org.elasticsearch.cluster.metadata.ProjectMetadata;
26+
import org.elasticsearch.cluster.project.ProjectResolver;
2527
import org.elasticsearch.cluster.service.ClusterService;
2628
import org.elasticsearch.cluster.service.MasterServiceTaskQueue;
2729
import org.elasticsearch.common.Priority;
@@ -56,13 +58,15 @@ public void taskSucceeded(DeleteDatabaseConfigurationTask task, Void unused) {
5658
};
5759

5860
private final MasterServiceTaskQueue<DeleteDatabaseConfigurationTask> deleteDatabaseConfigurationTaskQueue;
61+
private final ProjectResolver projectResolver;
5962

6063
@Inject
6164
public TransportDeleteDatabaseConfigurationAction(
6265
TransportService transportService,
6366
ClusterService clusterService,
6467
ThreadPool threadPool,
65-
ActionFilters actionFilters
68+
ActionFilters actionFilters,
69+
ProjectResolver projectResolver
6670
) {
6771
super(
6872
DeleteDatabaseConfigurationAction.NAME,
@@ -79,31 +83,35 @@ public TransportDeleteDatabaseConfigurationAction(
7983
Priority.NORMAL,
8084
DELETE_TASK_EXECUTOR
8185
);
86+
this.projectResolver = projectResolver;
8287
}
8388

8489
@Override
8590
protected void masterOperation(Task task, Request request, ClusterState state, ActionListener<AcknowledgedResponse> listener)
8691
throws Exception {
8792
final String id = request.getDatabaseId();
88-
final IngestGeoIpMetadata geoIpMeta = state.metadata().getProject().custom(IngestGeoIpMetadata.TYPE, IngestGeoIpMetadata.EMPTY);
93+
final ProjectId projectId = projectResolver.getProjectId();
94+
final IngestGeoIpMetadata geoIpMeta = state.metadata()
95+
.getProject(projectId)
96+
.custom(IngestGeoIpMetadata.TYPE, IngestGeoIpMetadata.EMPTY);
8997
if (geoIpMeta.getDatabases().containsKey(id) == false) {
9098
throw new ResourceNotFoundException("Database configuration not found: {}", id);
9199
} else if (geoIpMeta.getDatabases().get(id).database().isReadOnly()) {
92100
throw new IllegalArgumentException("Database " + id + " is read only");
93101
}
94102
deleteDatabaseConfigurationTaskQueue.submitTask(
95103
Strings.format("delete-geoip-database-configuration-[%s]", id),
96-
new DeleteDatabaseConfigurationTask(listener, id),
104+
new DeleteDatabaseConfigurationTask(projectId, listener, id),
97105
null
98106
);
99107
}
100108

101-
private record DeleteDatabaseConfigurationTask(ActionListener<AcknowledgedResponse> listener, String databaseId)
109+
private record DeleteDatabaseConfigurationTask(ProjectId projectId, ActionListener<AcknowledgedResponse> listener, String databaseId)
102110
implements
103111
ClusterStateTaskListener {
104112

105113
ClusterState execute(ClusterState currentState) throws Exception {
106-
final var project = currentState.metadata().getProject();
114+
final var project = currentState.metadata().getProject(projectId);
107115
final IngestGeoIpMetadata geoIpMeta = project.custom(IngestGeoIpMetadata.TYPE, IngestGeoIpMetadata.EMPTY);
108116

109117
logger.debug("deleting database configuration [{}]", databaseId);

0 commit comments

Comments
 (0)