From 337000a1729469ebefc2c3b1efe69e515f53fb33 Mon Sep 17 00:00:00 2001 From: James Gowdy Date: Mon, 23 Mar 2020 16:40:56 +0000 Subject: [PATCH 1/2] [ML] Disabling datafeed editing when job is running (#60751) * [ML] Disabling datafeed editing when job is running * changing variable Co-authored-by: Elastic Machine --- .../edit_job_flyout/edit_job_flyout.js | 7 ++++ .../edit_job_flyout/tabs/datafeed.js | 32 +++++++++++++++++-- .../edit_job_flyout/tabs/job_details.js | 11 +++++++ 3 files changed, 48 insertions(+), 2 deletions(-) diff --git a/x-pack/legacy/plugins/ml/public/application/jobs/jobs_list/components/edit_job_flyout/edit_job_flyout.js b/x-pack/legacy/plugins/ml/public/application/jobs/jobs_list/components/edit_job_flyout/edit_job_flyout.js index 3e100ed8637ad..b1e4c5fc40998 100644 --- a/x-pack/legacy/plugins/ml/public/application/jobs/jobs_list/components/edit_job_flyout/edit_job_flyout.js +++ b/x-pack/legacy/plugins/ml/public/application/jobs/jobs_list/components/edit_job_flyout/edit_job_flyout.js @@ -29,6 +29,7 @@ import { validateModelMemoryLimit, validateGroupNames, isValidCustomUrls } from import { mlMessageBarService } from '../../../../components/messagebar'; import { toastNotifications } from 'ui/notify'; import { FormattedMessage, injectI18n } from '@kbn/i18n/react'; +import { DATAFEED_STATE } from '../../../../../../common/constants/states'; class EditJobFlyoutUI extends Component { _initialJobFormState = null; @@ -39,6 +40,7 @@ class EditJobFlyoutUI extends Component { this.state = { job: {}, hasDatafeed: false, + datafeedRunning: false, isFlyoutVisible: false, isConfirmationModalVisible: false, jobDescription: '', @@ -155,10 +157,12 @@ class EditJobFlyoutUI extends Component { extractJob(job, hasDatafeed) { this.extractInitialJobFormState(job, hasDatafeed); + const datafeedRunning = hasDatafeed && job.datafeed_config.state !== DATAFEED_STATE.STOPPED; this.setState({ job, hasDatafeed, + datafeedRunning, jobModelMemoryLimitValidationError: '', jobGroupsValidationError: '', ...cloneDeep(this._initialJobFormState), @@ -284,6 +288,7 @@ class EditJobFlyoutUI extends Component { jobModelMemoryLimitValidationError, isValidJobDetails, isValidJobCustomUrls, + datafeedRunning, } = this.state; const { intl } = this.props; @@ -297,6 +302,7 @@ class EditJobFlyoutUI extends Component { }), content: ( ), }, diff --git a/x-pack/legacy/plugins/ml/public/application/jobs/jobs_list/components/edit_job_flyout/tabs/datafeed.js b/x-pack/legacy/plugins/ml/public/application/jobs/jobs_list/components/edit_job_flyout/tabs/datafeed.js index 16fb8be448ffb..4f302b40b9dcd 100644 --- a/x-pack/legacy/plugins/ml/public/application/jobs/jobs_list/components/edit_job_flyout/tabs/datafeed.js +++ b/x-pack/legacy/plugins/ml/public/application/jobs/jobs_list/components/edit_job_flyout/tabs/datafeed.js @@ -7,7 +7,14 @@ import PropTypes from 'prop-types'; import React, { Component } from 'react'; -import { EuiFieldText, EuiForm, EuiFormRow, EuiSpacer, EuiFieldNumber } from '@elastic/eui'; +import { + EuiFieldText, + EuiForm, + EuiFormRow, + EuiSpacer, + EuiFieldNumber, + EuiCallOut, +} from '@elastic/eui'; import { calculateDatafeedFrequencyDefaultSeconds } from '../../../../../../../common/util/job_utils'; import { getNewJobDefaults } from '../../../../../services/ml_server_info'; @@ -72,9 +79,21 @@ export class Datafeed extends Component { render() { const { query, queryDelay, frequency, scrollSize, defaults } = this.state; + const { datafeedRunning } = this.props; return ( + {datafeedRunning && ( + <> + + + + + + )} - + @@ -135,6 +162,7 @@ export class Datafeed extends Component { } } Datafeed.propTypes = { + datafeedRunning: PropTypes.bool.isRequired, datafeedQuery: PropTypes.string.isRequired, datafeedQueryDelay: PropTypes.string.isRequired, datafeedFrequency: PropTypes.string.isRequired, diff --git a/x-pack/legacy/plugins/ml/public/application/jobs/jobs_list/components/edit_job_flyout/tabs/job_details.js b/x-pack/legacy/plugins/ml/public/application/jobs/jobs_list/components/edit_job_flyout/tabs/job_details.js index ab2658c0dc124..45b552cd311d5 100644 --- a/x-pack/legacy/plugins/ml/public/application/jobs/jobs_list/components/edit_job_flyout/tabs/job_details.js +++ b/x-pack/legacy/plugins/ml/public/application/jobs/jobs_list/components/edit_job_flyout/tabs/job_details.js @@ -104,6 +104,7 @@ class JobDetailsUI extends Component { mmlValidationError, groupsValidationError, } = this.state; + const { datafeedRunning } = this.props; return ( @@ -115,6 +116,14 @@ class JobDetailsUI extends Component { defaultMessage="Job description" /> } + helpText={ + datafeedRunning ? ( + + ) : null + } > @@ -157,6 +166,7 @@ class JobDetailsUI extends Component { onChange={this.onMmlChange} isInvalid={mmlValidationError !== ''} error={mmlValidationError} + disabled={datafeedRunning} /> @@ -165,6 +175,7 @@ class JobDetailsUI extends Component { } } JobDetailsUI.propTypes = { + datafeedRunning: PropTypes.bool.isRequired, jobDescription: PropTypes.string.isRequired, jobGroups: PropTypes.array.isRequired, jobModelMemoryLimit: PropTypes.string.isRequired, From 365bec6a0c56d78138a9543444d7631cfe8afc33 Mon Sep 17 00:00:00 2001 From: James Gowdy Date: Mon, 23 Mar 2020 17:00:02 +0000 Subject: [PATCH 2/2] moving help text --- .../edit_job_flyout/tabs/job_details.js | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/x-pack/legacy/plugins/ml/public/application/jobs/jobs_list/components/edit_job_flyout/tabs/job_details.js b/x-pack/legacy/plugins/ml/public/application/jobs/jobs_list/components/edit_job_flyout/tabs/job_details.js index 45b552cd311d5..c42fbd7f24784 100644 --- a/x-pack/legacy/plugins/ml/public/application/jobs/jobs_list/components/edit_job_flyout/tabs/job_details.js +++ b/x-pack/legacy/plugins/ml/public/application/jobs/jobs_list/components/edit_job_flyout/tabs/job_details.js @@ -116,14 +116,6 @@ class JobDetailsUI extends Component { defaultMessage="Job description" /> } - helpText={ - datafeedRunning ? ( - - ) : null - } > @@ -158,6 +150,14 @@ class JobDetailsUI extends Component { defaultMessage="Model memory limit" /> } + helpText={ + datafeedRunning ? ( + + ) : null + } isInvalid={mmlValidationError !== ''} error={mmlValidationError} >