Skip to content

Commit 86c7787

Browse files
authored
Remove deprecated multi-project methods in Enterprise GeoIP downloader (#130062)
1 parent 4806156 commit 86c7787

File tree

3 files changed

+23
-7
lines changed

3 files changed

+23
-7
lines changed

modules/ingest-geoip/src/internalClusterTest/java/org/elasticsearch/ingest/geoip/EnterpriseGeoIpDownloaderIT.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import org.elasticsearch.action.search.SearchResponse;
2626
import org.elasticsearch.action.support.SubscribableListener;
2727
import org.elasticsearch.action.support.master.AcknowledgedResponse;
28+
import org.elasticsearch.cluster.metadata.ProjectId;
2829
import org.elasticsearch.common.Strings;
2930
import org.elasticsearch.common.settings.MockSecureSettings;
3031
import org.elasticsearch.common.settings.Settings;
@@ -116,7 +117,7 @@ public void testEnterpriseDownloaderTask() throws Exception {
116117
final String sourceField = "ip";
117118
final String targetField = "ip-result";
118119

119-
startEnterpriseGeoIpDownloaderTask();
120+
startEnterpriseGeoIpDownloaderTask(ProjectId.DEFAULT);
120121
configureMaxmindDatabase(MAXMIND_DATABASE_TYPE);
121122
configureIpinfoDatabase(IPINFO_DATABASE_TYPE);
122123
waitAround();
@@ -171,9 +172,10 @@ private void deleteDatabaseConfiguration(String configurationName, ActionListene
171172
);
172173
}
173174

174-
private void startEnterpriseGeoIpDownloaderTask() {
175+
private void startEnterpriseGeoIpDownloaderTask(ProjectId projectId) {
175176
PersistentTasksService persistentTasksService = internalCluster().getInstance(PersistentTasksService.class);
176-
persistentTasksService.sendStartRequest(
177+
persistentTasksService.sendProjectStartRequest(
178+
projectId,
177179
ENTERPRISE_GEOIP_DOWNLOADER,
178180
ENTERPRISE_GEOIP_DOWNLOADER,
179181
new EnterpriseGeoIpTask.EnterpriseGeoIpTaskParams(),

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

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,12 @@
1919
import org.elasticsearch.action.support.PlainActionFuture;
2020
import org.elasticsearch.client.internal.Client;
2121
import org.elasticsearch.cluster.block.ClusterBlockLevel;
22+
import org.elasticsearch.cluster.metadata.ProjectId;
2223
import org.elasticsearch.cluster.service.ClusterService;
2324
import org.elasticsearch.common.CheckedSupplier;
2425
import org.elasticsearch.common.Strings;
2526
import org.elasticsearch.common.hash.MessageDigests;
27+
import org.elasticsearch.core.NotMultiProjectCapable;
2628
import org.elasticsearch.core.TimeValue;
2729
import org.elasticsearch.core.Tuple;
2830
import org.elasticsearch.index.query.BoolQueryBuilder;
@@ -67,6 +69,9 @@
6769
* Downloads are verified against MD5 checksum provided by the server
6870
* Current state of all stored databases is stored in cluster state in persistent task state
6971
*/
72+
@NotMultiProjectCapable(
73+
description = "Enterprise GeoIP not available in serverless, we should review this class for MP again after serverless is enabled"
74+
)
7075
public class EnterpriseGeoIpDownloader extends AllocatedPersistentTask {
7176

7277
private static final Logger logger = LogManager.getLogger(EnterpriseGeoIpDownloader.class);
@@ -142,22 +147,27 @@ void setState(EnterpriseGeoIpTaskState state) {
142147

143148
// visible for testing
144149
void updateDatabases() throws IOException {
150+
@NotMultiProjectCapable(description = "Enterprise GeoIP not available in serverless")
151+
ProjectId projectId = ProjectId.DEFAULT;
145152
var clusterState = clusterService.state();
146-
var geoipIndex = clusterState.getMetadata().getProject().getIndicesLookup().get(EnterpriseGeoIpDownloader.DATABASES_INDEX);
153+
var geoipIndex = clusterState.getMetadata().getProject(projectId).getIndicesLookup().get(EnterpriseGeoIpDownloader.DATABASES_INDEX);
147154
if (geoipIndex != null) {
148155
logger.trace("the geoip index [{}] exists", EnterpriseGeoIpDownloader.DATABASES_INDEX);
149-
if (clusterState.getRoutingTable().index(geoipIndex.getWriteIndex()).allPrimaryShardsActive() == false) {
156+
if (clusterState.routingTable(projectId).index(geoipIndex.getWriteIndex()).allPrimaryShardsActive() == false) {
150157
logger.debug("not updating databases because not all primary shards of [{}] index are active yet", DATABASES_INDEX);
151158
return;
152159
}
153-
var blockException = clusterState.blocks().indexBlockedException(ClusterBlockLevel.WRITE, geoipIndex.getWriteIndex().getName());
160+
var blockException = clusterState.blocks()
161+
.indexBlockedException(projectId, ClusterBlockLevel.WRITE, geoipIndex.getWriteIndex().getName());
154162
if (blockException != null) {
155163
throw blockException;
156164
}
157165
}
158166

159167
logger.trace("Updating databases");
160-
IngestGeoIpMetadata geoIpMeta = clusterState.metadata().getProject().custom(IngestGeoIpMetadata.TYPE, IngestGeoIpMetadata.EMPTY);
168+
IngestGeoIpMetadata geoIpMeta = clusterState.metadata()
169+
.getProject(projectId)
170+
.custom(IngestGeoIpMetadata.TYPE, IngestGeoIpMetadata.EMPTY);
161171

162172
// if there are entries in the cs that aren't in the persistent task state,
163173
// then download those (only)

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import org.elasticsearch.common.settings.SecureString;
2424
import org.elasticsearch.common.settings.Setting;
2525
import org.elasticsearch.common.settings.Settings;
26+
import org.elasticsearch.core.NotMultiProjectCapable;
2627
import org.elasticsearch.core.TimeValue;
2728
import org.elasticsearch.ingest.EnterpriseGeoIpTask.EnterpriseGeoIpTaskParams;
2829
import org.elasticsearch.ingest.IngestService;
@@ -47,6 +48,9 @@
4748
import static org.elasticsearch.ingest.geoip.GeoIpDownloaderTaskExecutor.ENABLED_SETTING;
4849
import static org.elasticsearch.ingest.geoip.GeoIpDownloaderTaskExecutor.POLL_INTERVAL_SETTING;
4950

51+
@NotMultiProjectCapable(
52+
description = "Enterprise GeoIP not available in serverless, we should review this class for MP again after serverless is enabled"
53+
)
5054
public class EnterpriseGeoIpDownloaderTaskExecutor extends PersistentTasksExecutor<EnterpriseGeoIpTaskParams>
5155
implements
5256
ClusterStateListener {

0 commit comments

Comments
 (0)