chore: return template data for provisioner daemons (#16514)

Return template data in provisioner jobs to be displayed in the
provisioners page.
This commit is contained in:
Bruno Quaresma
2025-02-11 14:22:34 -03:00
committed by GitHub
parent 35901028d2
commit e85da8b02b
15 changed files with 199 additions and 89 deletions

View File

@ -5755,7 +5755,10 @@ SELECT
current_job.id AS current_job_id,
current_job.job_status AS current_job_status,
previous_job.id AS previous_job_id,
previous_job.job_status AS previous_job_status
previous_job.job_status AS previous_job_status,
COALESCE(tmpl.name, ''::text) AS current_job_template_name,
COALESCE(tmpl.display_name, ''::text) AS current_job_template_display_name,
COALESCE(tmpl.icon, ''::text) AS current_job_template_icon
FROM
provisioner_daemons pd
JOIN
@ -5780,6 +5783,10 @@ LEFT JOIN
LIMIT 1
)
)
LEFT JOIN
template_versions version ON version.id = (current_job.input->>'template_version_id')::uuid
LEFT JOIN
templates tmpl ON tmpl.id = version.template_id
WHERE
pd.organization_id = $2::uuid
AND (COALESCE(array_length($3::uuid[], 1), 0) = 0 OR pd.id = ANY($3::uuid[]))
@ -5796,13 +5803,16 @@ type GetProvisionerDaemonsWithStatusByOrganizationParams struct {
}
type GetProvisionerDaemonsWithStatusByOrganizationRow struct {
ProvisionerDaemon ProvisionerDaemon `db:"provisioner_daemon" json:"provisioner_daemon"`
Status ProvisionerDaemonStatus `db:"status" json:"status"`
KeyName string `db:"key_name" json:"key_name"`
CurrentJobID uuid.NullUUID `db:"current_job_id" json:"current_job_id"`
CurrentJobStatus NullProvisionerJobStatus `db:"current_job_status" json:"current_job_status"`
PreviousJobID uuid.NullUUID `db:"previous_job_id" json:"previous_job_id"`
PreviousJobStatus NullProvisionerJobStatus `db:"previous_job_status" json:"previous_job_status"`
ProvisionerDaemon ProvisionerDaemon `db:"provisioner_daemon" json:"provisioner_daemon"`
Status ProvisionerDaemonStatus `db:"status" json:"status"`
KeyName string `db:"key_name" json:"key_name"`
CurrentJobID uuid.NullUUID `db:"current_job_id" json:"current_job_id"`
CurrentJobStatus NullProvisionerJobStatus `db:"current_job_status" json:"current_job_status"`
PreviousJobID uuid.NullUUID `db:"previous_job_id" json:"previous_job_id"`
PreviousJobStatus NullProvisionerJobStatus `db:"previous_job_status" json:"previous_job_status"`
CurrentJobTemplateName string `db:"current_job_template_name" json:"current_job_template_name"`
CurrentJobTemplateDisplayName string `db:"current_job_template_display_name" json:"current_job_template_display_name"`
CurrentJobTemplateIcon string `db:"current_job_template_icon" json:"current_job_template_icon"`
}
func (q *sqlQuerier) GetProvisionerDaemonsWithStatusByOrganization(ctx context.Context, arg GetProvisionerDaemonsWithStatusByOrganizationParams) ([]GetProvisionerDaemonsWithStatusByOrganizationRow, error) {
@ -5837,6 +5847,9 @@ func (q *sqlQuerier) GetProvisionerDaemonsWithStatusByOrganization(ctx context.C
&i.CurrentJobStatus,
&i.PreviousJobID,
&i.PreviousJobStatus,
&i.CurrentJobTemplateName,
&i.CurrentJobTemplateDisplayName,
&i.CurrentJobTemplateIcon,
); err != nil {
return nil, err
}