Skip to content
This repository has been archived by the owner on Sep 5, 2024. It is now read-only.

Commit

Permalink
Constrain the max per host to be strictly <= the max per provider on …
Browse files Browse the repository at this point in the history
…change
  • Loading branch information
mturley authored and mzazrivec committed Mar 11, 2019
1 parent 3e7c7f3 commit bc150e0
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ import { Form, Button, Icon, OverlayTrigger, Popover, Spinner } from 'patternfly
import NumberInput from '../../../common/forms/NumberInput';
import TextInputWithCheckbox from '../../../common/forms/TextInputWithCheckbox';

const FORM_NAME = 'settings';

export class GeneralSettings extends React.Component {
componentDidMount() {
const { fetchServersAction, fetchServersUrl, fetchSettingsAction, fetchSettingsUrl } = this.props;
Expand All @@ -17,6 +19,20 @@ export class GeneralSettings extends React.Component {
patchSettingsAction(servers, settingsForm.values);
};

enforceConstraintsOnChange = (event, newValue, prevValue, fieldChanging) => {
const {
settingsForm: {
values: { max_concurrent_tasks_per_host, max_concurrent_tasks_per_ems }
},
formChangeAction
} = this.props;
if (fieldChanging === 'max_concurrent_tasks_per_host' && newValue > max_concurrent_tasks_per_ems) {
formChangeAction(FORM_NAME, 'max_concurrent_tasks_per_ems', newValue);
} else if (fieldChanging === 'max_concurrent_tasks_per_ems' && newValue < max_concurrent_tasks_per_host) {
formChangeAction(FORM_NAME, 'max_concurrent_tasks_per_host', newValue);
}
};

render() {
const { isFetchingServers, isFetchingSettings, isSavingSettings, savedSettings, settingsForm } = this.props;

Expand Down Expand Up @@ -71,6 +87,7 @@ export class GeneralSettings extends React.Component {
component={NumberInput}
normalize={NumberInput.normalizeStringToInt}
min={1}
onChange={this.enforceConstraintsOnChange}
/>
</div>
</Form.FormGroup>
Expand All @@ -85,10 +102,11 @@ export class GeneralSettings extends React.Component {
component={NumberInput}
normalize={NumberInput.normalizeStringToInt}
min={1}
onChange={this.enforceConstraintsOnChange}
/>
</div>
</Form.FormGroup>
{/* FIXME: uncomment once backend is ready
{/* FIXME: uncomment once backend is ready
<Form.FormGroup />
<div>
<h3>{__('Resource Utilization Limits for Migrations')}</h3>
Expand Down Expand Up @@ -141,7 +159,8 @@ GeneralSettings.propTypes = {
savedSettings: PropTypes.object,
settingsForm: PropTypes.object,
fetchServersUrl: PropTypes.string,
fetchSettingsUrl: PropTypes.string
fetchSettingsUrl: PropTypes.string,
formChangeAction: PropTypes.func
};

GeneralSettings.defaultProps = {
Expand All @@ -150,5 +169,5 @@ GeneralSettings.defaultProps = {
};

export default reduxForm({
form: 'settings'
form: FORM_NAME
})(GeneralSettings);
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { connect } from 'react-redux';
import { change } from 'redux-form';
import GeneralSettings from './GeneralSettings';

import * as SettingsActions from '../../SettingsActions';
import * as RouterActions from '../../../../../../redux/actions/routerActions';
import { fetchServersAction, fetchSettingsAction, patchSettingsAction } from '../../SettingsActions';

const mapStateToProps = ({ settings, form }, ownProps) => ({
...settings,
Expand All @@ -17,6 +17,6 @@ const mergeProps = (stateProps, dispatchProps, ownProps) => Object.assign(stateP

export default connect(
mapStateToProps,
Object.assign(SettingsActions, RouterActions),
{ fetchServersAction, fetchSettingsAction, patchSettingsAction, formChangeAction: change },
mergeProps
)(GeneralSettings);

0 comments on commit bc150e0

Please sign in to comment.