Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ML] DeleteExpiredDataAction should use client with origin #30646

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.threadpool.ThreadPool;
import org.elasticsearch.transport.TransportService;
import org.elasticsearch.xpack.core.ClientHelper;
import org.elasticsearch.xpack.core.ml.action.DeleteExpiredDataAction;
import org.elasticsearch.xpack.ml.MachineLearning;
import org.elasticsearch.xpack.ml.job.retention.ExpiredForecastsRemover;
Expand All @@ -40,7 +41,7 @@ public TransportDeleteExpiredDataAction(Settings settings, ThreadPool threadPool
Client client, ClusterService clusterService) {
super(settings, DeleteExpiredDataAction.NAME, threadPool, transportService, actionFilters, indexNameExpressionResolver,
DeleteExpiredDataAction.Request::new);
this.client = client;
this.client = ClientHelper.clientWithOrigin(client, ClientHelper.ML_ORIGIN);
this.clusterService = clusterService;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,10 @@
* Removes up to {@link #MAX_FORECASTS} forecasts (stats + forecasts docs) that have expired.
* A forecast is deleted if its expiration timestamp is earlier
* than the start of the current day (local time-zone).
*
* This is expected to be used by actions requiring admin rights. Thus,
* it is also expected that the provided client will be a client with the
* ML origin so that permissions to manage ML indices are met.
*/
public class ExpiredForecastsRemover implements MlDataRemover {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,10 @@
* of their respective job with the exception of the currently used snapshot.
* A snapshot is deleted if its timestamp is earlier than the start of the
* current day (local time-zone) minus the retention period.
*
* This is expected to be used by actions requiring admin rights. Thus,
* it is also expected that the provided client will be a client with the
* ML origin so that permissions to manage ML indices are met.
*/
public class ExpiredModelSnapshotsRemover extends AbstractExpiredJobDataRemover {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,14 +33,15 @@
import java.time.format.DateTimeFormatter;
import java.util.Objects;

import static org.elasticsearch.xpack.core.ClientHelper.ML_ORIGIN;
import static org.elasticsearch.xpack.core.ClientHelper.executeAsyncWithOrigin;

/**
* Removes all results that have expired the configured retention time
* of their respective job. A result is deleted if its timestamp is earlier
* than the start of the current day (local time-zone) minus the retention
* period.
*
* This is expected to be used by actions requiring admin rights. Thus,
* it is also expected that the provided client will be a client with the
* ML origin so that permissions to manage ML indices are met.
*/
public class ExpiredResultsRemover extends AbstractExpiredJobDataRemover {

Expand All @@ -65,7 +66,7 @@ protected void removeDataBefore(Job job, long cutoffEpochMs, ActionListener<Bool
LOGGER.debug("Removing results of job [{}] that have a timestamp before [{}]", job.getId(), cutoffEpochMs);
DeleteByQueryRequest request = createDBQRequest(job, cutoffEpochMs);

executeAsyncWithOrigin(client, ML_ORIGIN, DeleteByQueryAction.INSTANCE, request, new ActionListener<BulkByScrollResponse>() {
client.execute(DeleteByQueryAction.INSTANCE, request, new ActionListener<BulkByScrollResponse>() {
@Override
public void onResponse(BulkByScrollResponse bulkByScrollResponse) {
try {
Expand Down