diff --git a/.changelog/23404.txt b/.changelog/23404.txt new file mode 100644 index 00000000000..38a15c77521 --- /dev/null +++ b/.changelog/23404.txt @@ -0,0 +1,3 @@ +```release-note:improvement +ui: added a Pack badge to the jobs index page for jobs run via Nomad Pack +``` diff --git a/nomad/job_endpoint_statuses.go b/nomad/job_endpoint_statuses.go index d55ae7c366b..c02768fe15b 100644 --- a/nomad/job_endpoint_statuses.go +++ b/nomad/job_endpoint_statuses.go @@ -221,6 +221,8 @@ func jobStatusesJobFromJob(ws memdb.WatchSet, store *state.StateStore, job *stru Status: job.Status, } + _, jsj.IsPack = job.Meta["pack.name"] + // the GroupCountSum will map to how many allocations we expect to run // (for service jobs) for _, tg := range job.TaskGroups { diff --git a/nomad/structs/job.go b/nomad/structs/job.go index 93ca19a9f75..7b8ea4b8f03 100644 --- a/nomad/structs/job.go +++ b/nomad/structs/job.go @@ -98,6 +98,7 @@ type JobStatusesJob struct { ParentID string LatestDeployment *JobStatusesLatestDeployment Stop bool // has the job been manually stopped? + IsPack bool // is pack metadata present? Status string } diff --git a/ui/app/components/child-job-row.hbs b/ui/app/components/child-job-row.hbs index 08883a55d62..b97f4eae584 100644 --- a/ui/app/components/child-job-row.hbs +++ b/ui/app/components/child-job-row.hbs @@ -17,7 +17,7 @@ > {{@job.name}} - {{#if @job.meta.structured.pack}} + {{#if @job.isPack}} {{x-icon "box" class= "test"}} Pack diff --git a/ui/app/models/job.js b/ui/app/models/job.js index 94ff651d286..7d06a0f081d 100644 --- a/ui/app/models/job.js +++ b/ui/app/models/job.js @@ -302,9 +302,7 @@ export default class Job extends Model { } @fragment('structured-attributes') meta; - get isPack() { - return !!this.meta?.structured?.pack; - } + @attr('boolean') isPack; /** * A task with a schedule block can have execution paused at specific cron-based times. diff --git a/ui/app/routes/jobs/job.js b/ui/app/routes/jobs/job.js index 59656ef3a9d..deb5949d934 100644 --- a/ui/app/routes/jobs/job.js +++ b/ui/app/routes/jobs/job.js @@ -44,7 +44,6 @@ export default class JobRoute extends Route.extend(WithWatchers) { const relatedModelsQueries = [ job.get('allocations'), job.get('evaluations'), - // this.store.query('job', { namespace, meta: true }), // TODO: I think I am probably nuking the ability to get meta:pack info here. See https://github.com/hashicorp/nomad/pull/14833 this.store.findAll('namespace'), ]; diff --git a/ui/app/templates/jobs/index.hbs b/ui/app/templates/jobs/index.hbs index e593ee0a2c3..21a6db3e43d 100644 --- a/ui/app/templates/jobs/index.hbs +++ b/ui/app/templates/jobs/index.hbs @@ -157,8 +157,7 @@ class="is-primary" > {{B.data.name}} - {{!-- TODO: going to lose .meta with statuses endpoint! --}} - {{#if B.data.meta.structured.pack}} + {{#if B.data.isPack}} {{x-icon "box" class= "test"}} Pack