Skip to content

Commit

Permalink
Merge pull request #243 from Kitware/fix-runtime-var-names
Browse files Browse the repository at this point in the history
fix(SchedulerConfig): Fix key used in configs as well as default hand…
  • Loading branch information
jourdain committed Mar 16, 2016
2 parents a920d39 + 19c6c89 commit d84c65e
Show file tree
Hide file tree
Showing 6 changed files with 63 additions and 39 deletions.
2 changes: 0 additions & 2 deletions src/pages/Preferences/Cluster/ClusterForm.js
Original file line number Diff line number Diff line change
Expand Up @@ -80,8 +80,6 @@ export default React.createClass({
this.state.data.config,
{ scheduler: Object.assign({}, this.state.data.config.scheduler, scheduler) });

console.log(scheduler, '=>', config);

this.mergeData({ config });
},

Expand Down
8 changes: 4 additions & 4 deletions src/panels/SchedulerConfig/PBS.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,8 @@ export default React.createClass({
className={style.input}
type="number"
min="1"
value={this.props.config.pbs.numberOfCores}
data-key="pbs.numberOfCores"
value={this.props.config.pbs.numberOfCoresPerNode}
data-key="pbs.numberOfCoresPerNode"
onChange={this.updateConfig}
/>
</section>
Expand All @@ -48,8 +48,8 @@ export default React.createClass({
className={style.input}
type="number"
min="0"
value={this.props.config.pbs.numberOfGpus}
data-key="pbs.numberOfGpus"
value={this.props.config.pbs.numberOfGpusPerNode}
data-key="pbs.numberOfGpusPerNode"
onChange={this.updateConfig}
/>
</section>
Expand Down
4 changes: 2 additions & 2 deletions src/panels/SchedulerConfig/SGE.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,8 @@ export default React.createClass({
className={style.input}
type="number"
min="0"
value={this.props.config.sge.numberOfGpus}
data-key="sge.numberOfGpus"
value={this.props.config.sge.numberOfGpusPerNode}
data-key="sge.numberOfGpusPerNode"
onChange={this.updateConfig}
/>
</section>
Expand Down
8 changes: 4 additions & 4 deletions src/panels/SchedulerConfig/SLURM.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,8 @@ export default React.createClass({
className={style.input}
type="number"
min="1"
value={this.props.config.slurm.numberOfCores}
data-key="slurm.numberOfCores"
value={this.props.config.slurm.numberOfCoresPerNode}
data-key="slurm.numberOfCoresPerNode"
onChange={this.updateConfig}
/>
</section>
Expand All @@ -48,8 +48,8 @@ export default React.createClass({
className={style.input}
type="number"
min="0"
value={this.props.config.slurm.numberOfGpus}
data-key="slurm.numberOfGpus"
value={this.props.config.slurm.numberOfGpusPerNode}
data-key="slurm.numberOfGpusPerNode"
onChange={this.updateConfig}
/>
</section>
Expand Down
77 changes: 51 additions & 26 deletions src/panels/SchedulerConfig/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,29 @@ const typeMapping = {
pbs: PBS,
};

function addDefaults(config) {
return Object.assign(
{
type: 'sge',
maxWallTime: { hours: 0, minutes: 30, seconds: 0 },
defaultQueue: 'default',
sge: {
numberOfGpusPerNode: 0,
numberOfSlots: 1,
},
slurm: {
numberOfGpusPerNode: 0,
numberOfCoresPerNode: 1,
numberOfCores: 1,
},
pbs: {
numberOfGpusPerNode: 0,
numberOfCoresPerNode: 1,
numberOfCores: 1,
},
}, config);
}

export default React.createClass({

displayName: 'SchedulerConfig',
Expand All @@ -30,26 +53,7 @@ export default React.createClass({

getInitialState() {
return {
config: Object.assign(
{
type: 'sge',
maxRuntime: 30,
defaultQueue: 'default',
sge: {
numberOfGpus: 0,
numberOfSlots: 1,
},
slurm: {
numberOfGpus: 0,
numberOfNodes: 1,
numberOfCores: 1,
},
pbs: {
numberOfGpus: 0,
numberOfNodes: 1,
numberOfCores: 1,
},
}, this.props.config),
config: addDefaults(this.props.config),
};
},

Expand All @@ -58,8 +62,8 @@ export default React.createClass({
oldConfig = this.props.config;

if (!deepEquals(config, oldConfig)) {
this.setState({ config });
this.props.onChange(config);
this.setState({ config: addDefaults(config) });
this.props.onChange(addDefaults(config));
}
},

Expand Down Expand Up @@ -111,14 +115,35 @@ export default React.createClass({
<input
className={style.input}
type="number"
min="1"
value={this.state.config.maxRuntime}
data-key="maxRuntime"
min="0"
value={this.state.config.maxWallTime.hours}
title="Number of hours"
data-key="maxWallTime.hours"
onChange={this.updateConfig}
/>
<input
className={style.input}
type="number"
min="0"
max="59"
value={this.state.config.maxWallTime.minutes}
title="Number of minutes"
data-key="maxWallTime.minutes"
onChange={this.updateConfig}
/>
<input
className={style.input}
type="number"
min="0"
max="59"
value={this.state.config.maxWallTime.seconds}
title="Number of seconds"
data-key="maxWallTime.seconds"
onChange={this.updateConfig}
/>
</section>
<section className={style.group}>
<label className={style.label}>Default queue</label>
<label className={style.label}>{ this.props.runtime ? 'Queue' : 'Default queue' }</label>
<input
className={style.input}
type="text"
Expand Down
3 changes: 2 additions & 1 deletion src/panels/run/RunCluster.js
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,9 @@ export default React.createClass({
updateRuntimeConfig(config) {
const runtime = Object.assign({}, config);
Object.assign(runtime, runtime[runtime.type]);
runtime.queue = runtime.defaultQueue;

['sge', 'slurm', 'pbs', 'type'].forEach(keyToDelete => {
['sge', 'slurm', 'pbs', 'type', 'defaultQueue'].forEach(keyToDelete => {
delete runtime[keyToDelete];
});

Expand Down

0 comments on commit d84c65e

Please sign in to comment.