blob: 13e98e9d6e76fe16d88d0c8359e6936d6161d30f [file] [log] [blame]
import moment from 'moment';
import React from 'react';
import { isNully } from '../utils/Common';
export default function UpdateSettings({ update }) {
const settings = update.update.instructions.settings;
return (<div>
<table className='update-settings'>
<tbody>
<UpdateStrategy strategy={settings.updateStrategy} />
<tr>
<td>Max Failures Per Instance</td>
<td>{settings.maxPerInstanceFailures}</td>
</tr>
<tr>
<td>Max Failed Instances</td>
<td>{settings.maxFailedInstances}</td>
</tr>
<tr>
<td>Minimum Waiting Time in Running</td>
<td>{moment.duration(settings.minWaitInInstanceRunningMs).humanize()}</td>
</tr>
<tr>
<td>Rollback On Failure?</td>
<td>{settings.rollbackOnFailure ? 'yes' : 'no'}</td>
</tr>
<tr>
<td>SLA-Aware?</td>
<td>{settings.slaAware ? 'yes' : 'no'}</td>
</tr>
</tbody>
</table>
</div>);
}
// ESLint doesn't like React's new adjacent elements, so we need to disable it here
/* eslint-disable */
function UpdateStrategy({ strategy }) {
if (isNully(strategy)) {
return null;
}
if (!isNully(strategy.queueStrategy)) {
return [<tr>
<td>Strategy</td>
<td>Queue</td>
</tr>,
<tr>
<td>Max Parallel Updates</td>
<td>{ strategy.queueStrategy.groupSize }</td>
</tr>];
} else if (!isNully(strategy.batchStrategy)) {
return [<tr>
<td>Strategy</td>
<td>Batch</td>
</tr>,
<tr>
<td>Batch Size</td>
<td>{ strategy.batchStrategy.groupSize }</td>
</tr>];
} else if (!isNully(strategy.varBatchStrategy)) {
return [<tr>
<td>Strategy</td>
<td>Variable Batch</td>
</tr>,
<tr>
<td>Batch Sizes</td>
<td>{ strategy.varBatchStrategy.groupSizes.toString() }</td>
</tr>];
}
return null;
}
/* eslint-enable */