Skip to content

Commit

Permalink
[ML] Fix synching jobs from other spaces (#86086)
Browse files Browse the repository at this point in the history
* [ML] Fix synching jobs from other spaces

* updating text in delete modal

* updating translations

Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
  • Loading branch information
jgowdyelastic and kibanamachine committed Dec 17, 2020
1 parent c6c0015 commit ff67823
Show file tree
Hide file tree
Showing 6 changed files with 38 additions and 175 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ import {
EuiButtonEmpty,
EuiButton,
EuiLoadingSpinner,
EuiText,
} from '@elastic/eui';

import { deleteJobs } from '../utils';
Expand Down Expand Up @@ -103,7 +104,7 @@ export const DeleteJobModal: FC<Props> = ({ setShowFunction, unsetShowFunction,
</div>
</div>
) : (
<>
<EuiText>
<FormattedMessage
id="xpack.ml.jobsList.deleteJobModal.deleteMultipleJobsDescription"
defaultMessage="Deleting {jobsCount, plural, one {a job} other {multiple jobs}} can be time consuming.
Expand All @@ -113,7 +114,7 @@ export const DeleteJobModal: FC<Props> = ({ setShowFunction, unsetShowFunction,
jobsCount: jobIds.length,
}}
/>
</>
</EuiText>
)}
</p>
</EuiModalBody>
Expand Down

This file was deleted.

23 changes: 23 additions & 0 deletions x-pack/plugins/ml/server/saved_objects/service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,19 @@ export function jobSavedObjectServiceFactory(
await savedObjectsClient.delete(ML_SAVED_OBJECT_TYPE, job.id, { force: true });
}

async function _forceDeleteJob(jobType: JobType, jobId: string, namespace: string) {
const id = savedObjectId({
job_id: jobId,
datafeed_id: null,
type: jobType,
});

await internalSavedObjectsClient.delete(ML_SAVED_OBJECT_TYPE, id, {
namespace,
force: true,
});
}

async function createAnomalyDetectionJob(jobId: string, datafeedId?: string) {
await _createJob('anomaly-detector', jobId, datafeedId);
}
Expand All @@ -122,6 +135,10 @@ export function jobSavedObjectServiceFactory(
await _deleteJob('anomaly-detector', jobId);
}

async function forceDeleteAnomalyDetectionJob(jobId: string, namespace: string) {
await _forceDeleteJob('anomaly-detector', jobId, namespace);
}

async function createDataFrameAnalyticsJob(jobId: string) {
await _createJob('data-frame-analytics', jobId);
}
Expand All @@ -130,6 +147,10 @@ export function jobSavedObjectServiceFactory(
await _deleteJob('data-frame-analytics', jobId);
}

async function forceDeleteDataFrameAnalyticsJob(jobId: string, namespace: string) {
await _forceDeleteJob('data-frame-analytics', jobId, namespace);
}

async function bulkCreateJobs(jobs: Array<{ job: JobObject; namespaces: string[] }>) {
return await _bulkCreateJobs(jobs);
}
Expand Down Expand Up @@ -325,7 +346,9 @@ export function jobSavedObjectServiceFactory(
createAnomalyDetectionJob,
createDataFrameAnalyticsJob,
deleteAnomalyDetectionJob,
forceDeleteAnomalyDetectionJob,
deleteDataFrameAnalyticsJob,
forceDeleteDataFrameAnalyticsJob,
addDatafeed,
deleteDatafeed,
filterJobsForSpace,
Expand Down
16 changes: 12 additions & 4 deletions x-pack/plugins/ml/server/saved_objects/sync.ts
Original file line number Diff line number Diff line change
Expand Up @@ -94,10 +94,14 @@ export function syncSavedObjectsFactory(
results.savedObjectsDeleted[job.jobId] = { success: true };
} else {
// Delete AD saved objects for jobs which no longer exist
const jobId = job.jobId;
const { jobId, namespaces } = job;
tasks.push(async () => {
try {
await jobSavedObjectService.deleteAnomalyDetectionJob(jobId);
if (namespaces !== undefined && namespaces.length) {
await jobSavedObjectService.forceDeleteAnomalyDetectionJob(jobId, namespaces[0]);
} else {
await jobSavedObjectService.deleteAnomalyDetectionJob(jobId);
}
results.savedObjectsDeleted[job.jobId] = { success: true };
} catch (error) {
results.savedObjectsDeleted[job.jobId] = {
Expand All @@ -115,10 +119,14 @@ export function syncSavedObjectsFactory(
results.savedObjectsDeleted[job.jobId] = { success: true };
} else {
// Delete DFA saved objects for jobs which no longer exist
const jobId = job.jobId;
const { jobId, namespaces } = job;
tasks.push(async () => {
try {
await jobSavedObjectService.deleteDataFrameAnalyticsJob(jobId);
if (namespaces !== undefined && namespaces.length) {
await jobSavedObjectService.forceDeleteDataFrameAnalyticsJob(jobId, namespaces[0]);
} else {
await jobSavedObjectService.deleteDataFrameAnalyticsJob(jobId);
}
results.savedObjectsDeleted[job.jobId] = { success: true };
} catch (error) {
results.savedObjectsDeleted[job.jobId] = {
Expand Down
1 change: 0 additions & 1 deletion x-pack/plugins/translations/translations/ja-JP.json
Original file line number Diff line number Diff line change
Expand Up @@ -12509,7 +12509,6 @@
"xpack.ml.jobsList.deletedActionStatusText": "削除されました",
"xpack.ml.jobsList.deleteJobErrorMessage": "ジョブの削除に失敗しました",
"xpack.ml.jobsList.deleteJobModal.cancelButtonLabel": "キャンセル",
"xpack.ml.jobsList.deleteJobModal.closeButtonLabel": "閉じる",
"xpack.ml.jobsList.deleteJobModal.deleteButtonLabel": "削除",
"xpack.ml.jobsList.deleteJobModal.deleteJobsTitle": "{jobsCount, plural, one {{jobId}} other {# 件のジョブ}}を削除しますか?",
"xpack.ml.jobsList.deleteJobModal.deleteMultipleJobsDescription": "{jobsCount, plural, one {ジョブ} other {複数ジョブ}}の削除には時間がかかる場合があります。{jobsCount, plural, one {} other {}}バックグラウンドで削除され、ジョブリストからすぐに消えない場合があります。",
Expand Down
1 change: 0 additions & 1 deletion x-pack/plugins/translations/translations/zh-CN.json
Original file line number Diff line number Diff line change
Expand Up @@ -12523,7 +12523,6 @@
"xpack.ml.jobsList.deletedActionStatusText": "已删除",
"xpack.ml.jobsList.deleteJobErrorMessage": "作业无法删除",
"xpack.ml.jobsList.deleteJobModal.cancelButtonLabel": "取消",
"xpack.ml.jobsList.deleteJobModal.closeButtonLabel": "关闭",
"xpack.ml.jobsList.deleteJobModal.deleteButtonLabel": "删除",
"xpack.ml.jobsList.deleteJobModal.deleteJobsTitle": "删除 {jobsCount, plural, one {{jobId}} other {# 个作业}}?",
"xpack.ml.jobsList.deleteJobModal.deleteMultipleJobsDescription": "删除{jobsCount, plural, one {一个作业} other {多个作业}}可能很费时。将在后台删除{jobsCount, plural, one {该作业} other {这些作业}},但删除的作业可能不会从作业列表中立即消失。",
Expand Down

0 comments on commit ff67823

Please sign in to comment.