Don't use generic ACL error messages
When the error is actually a 403, an ACL error is appropriate, but when it isn't, fallback on what the API returns.
This commit is contained in:
parent
320a63dc68
commit
52a7a48177
|
@ -1,6 +1,5 @@
|
|||
import Component from '@ember/component';
|
||||
import { task } from 'ember-concurrency';
|
||||
import { ForbiddenError } from '@ember-data/adapter/error';
|
||||
import messageFromAdapterError from 'nomad-ui/utils/message-from-adapter-error';
|
||||
import { tagName } from '@ember-decorators/component';
|
||||
import classic from 'ember-classic-decorator';
|
||||
|
@ -18,15 +17,9 @@ export default class LatestDeployment extends Component {
|
|||
try {
|
||||
yield this.get('job.latestDeployment.content').promote();
|
||||
} catch (err) {
|
||||
let message = messageFromAdapterError(err);
|
||||
|
||||
if (err instanceof ForbiddenError) {
|
||||
message = 'Your ACL token does not grant permission to promote deployments.';
|
||||
}
|
||||
|
||||
this.handleError({
|
||||
title: 'Could Not Promote Deployment',
|
||||
description: message,
|
||||
description: messageFromAdapterError(err, 'promote deployments'),
|
||||
});
|
||||
}
|
||||
})
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
import Component from '@ember/component';
|
||||
import { task } from 'ember-concurrency';
|
||||
import { ForbiddenError } from '@ember-data/adapter/error';
|
||||
import messageFromAdapterError from 'nomad-ui/utils/message-from-adapter-error';
|
||||
import { tagName } from '@ember-decorators/component';
|
||||
import classic from 'ember-classic-decorator';
|
||||
|
@ -22,7 +21,7 @@ export default class Title extends Component {
|
|||
} catch (err) {
|
||||
this.handleError({
|
||||
title: 'Could Not Stop Job',
|
||||
description: 'Your ACL token does not grant permission to stop jobs.',
|
||||
description: messageFromAdapterError(err, 'stop jobs'),
|
||||
});
|
||||
}
|
||||
})
|
||||
|
@ -41,15 +40,9 @@ export default class Title extends Component {
|
|||
// Eagerly update the job status to avoid flickering
|
||||
job.set('status', 'running');
|
||||
} catch (err) {
|
||||
let message = messageFromAdapterError(err);
|
||||
|
||||
if (err instanceof ForbiddenError) {
|
||||
message = 'Your ACL token does not grant permission to stop jobs.';
|
||||
}
|
||||
|
||||
this.handleError({
|
||||
title: 'Could Not Start Job',
|
||||
description: message,
|
||||
description: messageFromAdapterError(err, 'start jobs'),
|
||||
});
|
||||
}
|
||||
})
|
||||
|
|
|
@ -2,6 +2,7 @@ import AbstractJobPage from './abstract';
|
|||
import { inject as service } from '@ember/service';
|
||||
import { action } from '@ember/object';
|
||||
import classic from 'ember-classic-decorator';
|
||||
import messageForError from 'nomad-ui/utils/message-from-adapter-error';
|
||||
|
||||
@classic
|
||||
export default class Periodic extends AbstractJobPage {
|
||||
|
@ -11,10 +12,10 @@ export default class Periodic extends AbstractJobPage {
|
|||
|
||||
@action
|
||||
forceLaunch() {
|
||||
this.job.forcePeriodic().catch(() => {
|
||||
this.job.forcePeriodic().catch(err => {
|
||||
this.set('errorMessage', {
|
||||
title: 'Could Not Force Launch',
|
||||
description: 'Your ACL token does not grant permission to submit jobs.',
|
||||
description: messageForError(err, 'submit jobs'),
|
||||
});
|
||||
});
|
||||
}
|
||||
|
|
|
@ -9,6 +9,7 @@ import { task } from 'ember-concurrency';
|
|||
import Sortable from 'nomad-ui/mixins/sortable';
|
||||
import { lazyClick } from 'nomad-ui/helpers/lazy-click';
|
||||
import { watchRecord } from 'nomad-ui/utils/properties/watch';
|
||||
import messageForError from 'nomad-ui/utils/message-from-adapter-error';
|
||||
import classic from 'ember-classic-decorator';
|
||||
|
||||
@classic
|
||||
|
@ -73,7 +74,7 @@ export default class IndexController extends Controller.extend(Sortable) {
|
|||
} catch (err) {
|
||||
this.set('error', {
|
||||
title: 'Could Not Stop Allocation',
|
||||
description: 'Your ACL token does not grant allocation lifecycle permissions.',
|
||||
description: messageForError(err, 'manage allocation lifecycle'),
|
||||
});
|
||||
}
|
||||
})
|
||||
|
@ -85,7 +86,7 @@ export default class IndexController extends Controller.extend(Sortable) {
|
|||
} catch (err) {
|
||||
this.set('error', {
|
||||
title: 'Could Not Restart Allocation',
|
||||
description: 'Your ACL token does not grant allocation lifecycle permissions.',
|
||||
description: messageForError(err, 'manage allocation lifecycle'),
|
||||
});
|
||||
}
|
||||
})
|
||||
|
|
|
@ -2,6 +2,7 @@ import Controller from '@ember/controller';
|
|||
import { computed as overridable } from 'ember-overridable-computed';
|
||||
import { task } from 'ember-concurrency';
|
||||
import classic from 'ember-classic-decorator';
|
||||
import messageForError from 'nomad-ui/utils/message-from-adapter-error';
|
||||
|
||||
@classic
|
||||
export default class IndexController extends Controller {
|
||||
|
@ -21,7 +22,7 @@ export default class IndexController extends Controller {
|
|||
} catch (err) {
|
||||
this.set('error', {
|
||||
title: 'Could Not Restart Task',
|
||||
description: 'Your ACL token does not grant allocation lifecycle permissions.',
|
||||
description: messageForError(err, 'manage allocation lifecycle'),
|
||||
});
|
||||
}
|
||||
})
|
||||
|
|
Loading…
Reference in New Issue