[ui] Fix a bug where redirects after planning/editing a job didn't include namespace (#13588)

* Job editing and planning handles namespace as part of ID instead of queryParam

* Changelog added

* Tests updated to reflect new namespace redirects
This commit is contained in:
Phil Renaud 2022-07-05 15:58:56 -04:00 committed by GitHub
parent 037bbe957f
commit 84a59ff059
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 15 additions and 11 deletions

3
.changelog/13588.txt Normal file
View File

@ -0,0 +1,3 @@
```release-note:bug
ui: Fixed an issue where editing or running a job with a namespace via the UI would throw a 404 on redirect.
```

View File

@ -2,6 +2,7 @@ import Controller from '@ember/controller';
import WithNamespaceResetting from 'nomad-ui/mixins/with-namespace-resetting';
import { alias } from '@ember/object/computed';
import classic from 'ember-classic-decorator';
import { inject as service } from '@ember/service';
@classic
export default class DefinitionController extends Controller.extend(
@ -9,6 +10,7 @@ export default class DefinitionController extends Controller.extend(
) {
@alias('model.job') job;
@alias('model.definition') definition;
@service router;
isEditing = false;
@ -21,9 +23,7 @@ export default class DefinitionController extends Controller.extend(
this.set('isEditing', false);
}
onSubmit(id, jobNamespace) {
this.transitionToRoute('jobs.job', id, {
queryParams: { jobNamespace },
});
onSubmit() {
this.router.transitionTo('jobs.job', this.job.idWithNamespace);
}
}

View File

@ -1,9 +1,9 @@
import Controller from '@ember/controller';
import { inject as service } from '@ember/service';
export default class RunController extends Controller {
@service router;
onSubmit(id, namespace) {
this.transitionToRoute('jobs.job', id, {
queryParams: { namespace },
});
this.router.transitionTo('jobs.job', `${id}@${namespace || 'default'}`);
}
}

View File

@ -95,7 +95,7 @@ module('Acceptance | job definition', function (hooks) {
await Definition.editor.run();
assert.equal(
currentURL(),
`/jobs/${job.id}`,
`/jobs/${job.id}@default`,
'Now on the job overview page'
);
});

View File

@ -9,6 +9,7 @@ import JobRun from 'nomad-ui/tests/pages/jobs/run';
const newJobName = 'new-job';
const newJobTaskGroupName = 'redis';
const newJobNamespace = 'default';
let managementToken, clientToken;
@ -18,7 +19,7 @@ const jsonJob = (overrides) => {
{},
{
Name: newJobName,
Namespace: 'default',
Namespace: newJobNamespace,
Datacenters: ['dc1'],
Priority: 50,
TaskGroups: [
@ -79,7 +80,7 @@ module('Acceptance | job run', function (hooks) {
await JobRun.editor.run();
assert.equal(
currentURL(),
`/jobs/${newJobName}`,
`/jobs/${newJobName}@${newJobNamespace}`,
`Redirected to the job overview page for ${newJobName}`
);
});
@ -97,7 +98,7 @@ module('Acceptance | job run', function (hooks) {
await JobRun.editor.run();
assert.equal(
currentURL(),
`/jobs/${newJobName}?namespace=${newNamespace}`,
`/jobs/${newJobName}@${newNamespace}`,
`Redirected to the job overview page for ${newJobName} and switched the namespace to ${newNamespace}`
);
});