fix: allow retry after definitive publish failures
Frontend CI / Frontend (push) Successful in 3m18s
Backend CI / Backend (push) Successful in 16m16s
Desktop Client Build / Publish Client Artifacts to NAS (push) Successful in 26s
Desktop Client Build / Resolve Build Metadata (push) Successful in 26s
Desktop Client Build / Build Desktop Client (push) Successful in 25m45s
Frontend CI / Frontend (push) Successful in 3m18s
Backend CI / Backend (push) Successful in 16m16s
Desktop Client Build / Publish Client Artifacts to NAS (push) Successful in 26s
Desktop Client Build / Resolve Build Metadata (push) Successful in 26s
Desktop Client Build / Build Desktop Client (push) Successful in 25m45s
This commit is contained in:
@@ -95,6 +95,7 @@ type DesktopTaskView struct {
|
||||
DedupKey *string `json:"dedup_key"`
|
||||
ActiveAttemptID *string `json:"active_attempt_id"`
|
||||
LeaseExpiresAt *time.Time `json:"lease_expires_at"`
|
||||
PublishSubmitStartedAt *time.Time `json:"publish_submit_started_at,omitempty"`
|
||||
Attempts int `json:"attempts"`
|
||||
Result json.RawMessage `json:"result"`
|
||||
Error json.RawMessage `json:"error"`
|
||||
@@ -1563,6 +1564,7 @@ func buildListPublishTasksByStatusesQuery(
|
||||
t.error,
|
||||
t.created_at,
|
||||
t.updated_at,
|
||||
t.publish_submit_started_at,
|
||||
j.status,
|
||||
j.compliance_blocked_record_id,
|
||||
j.compliance_blocked_at,
|
||||
@@ -1638,28 +1640,29 @@ func scanDesktopTaskRows(rows pgx.Rows) ([]DesktopTaskView, error) {
|
||||
items := make([]DesktopTaskView, 0)
|
||||
for rows.Next() {
|
||||
var (
|
||||
desktopID uuid.UUID
|
||||
jobID uuid.UUID
|
||||
tenantID int64
|
||||
workspaceID int64
|
||||
targetAccountID uuid.UUID
|
||||
targetClientID uuid.UUID
|
||||
platform string
|
||||
kind string
|
||||
payload []byte
|
||||
status string
|
||||
dedupKey pgtype.Text
|
||||
activeAttemptID pgtype.UUID
|
||||
leaseExpiresAt pgtype.Timestamptz
|
||||
attempts int32
|
||||
resultJSON []byte
|
||||
errorJSON []byte
|
||||
createdAt time.Time
|
||||
updatedAt time.Time
|
||||
jobStatus string
|
||||
blockedRecordID pgtype.Int8
|
||||
blockedAt pgtype.Timestamptz
|
||||
blockedReason pgtype.Text
|
||||
desktopID uuid.UUID
|
||||
jobID uuid.UUID
|
||||
tenantID int64
|
||||
workspaceID int64
|
||||
targetAccountID uuid.UUID
|
||||
targetClientID uuid.UUID
|
||||
platform string
|
||||
kind string
|
||||
payload []byte
|
||||
status string
|
||||
dedupKey pgtype.Text
|
||||
activeAttemptID pgtype.UUID
|
||||
leaseExpiresAt pgtype.Timestamptz
|
||||
attempts int32
|
||||
resultJSON []byte
|
||||
errorJSON []byte
|
||||
createdAt time.Time
|
||||
updatedAt time.Time
|
||||
publishSubmitStartedAt pgtype.Timestamptz
|
||||
jobStatus string
|
||||
blockedRecordID pgtype.Int8
|
||||
blockedAt pgtype.Timestamptz
|
||||
blockedReason pgtype.Text
|
||||
)
|
||||
if err := rows.Scan(
|
||||
&desktopID,
|
||||
@@ -1680,6 +1683,7 @@ func scanDesktopTaskRows(rows pgx.Rows) ([]DesktopTaskView, error) {
|
||||
&errorJSON,
|
||||
&createdAt,
|
||||
&updatedAt,
|
||||
&publishSubmitStartedAt,
|
||||
&jobStatus,
|
||||
&blockedRecordID,
|
||||
&blockedAt,
|
||||
@@ -1708,6 +1712,11 @@ func scanDesktopTaskRows(rows pgx.Rows) ([]DesktopTaskView, error) {
|
||||
value := leaseExpiresAt.Time
|
||||
leaseExpiresAtValue = &value
|
||||
}
|
||||
var publishSubmitStartedAtValue *time.Time
|
||||
if publishSubmitStartedAt.Valid {
|
||||
value := publishSubmitStartedAt.Time
|
||||
publishSubmitStartedAtValue = &value
|
||||
}
|
||||
|
||||
publishJobStatusText := strings.TrimSpace(jobStatus)
|
||||
var publishJobStatus *string
|
||||
@@ -1751,6 +1760,7 @@ func scanDesktopTaskRows(rows pgx.Rows) ([]DesktopTaskView, error) {
|
||||
DedupKey: dedupKeyText,
|
||||
ActiveAttemptID: activeAttemptIDText,
|
||||
LeaseExpiresAt: leaseExpiresAtValue,
|
||||
PublishSubmitStartedAt: publishSubmitStartedAtValue,
|
||||
Attempts: int(attempts),
|
||||
Result: json.RawMessage(resultJSON),
|
||||
Error: json.RawMessage(errorJSON),
|
||||
@@ -1833,24 +1843,25 @@ func buildDesktopTaskView(task *repository.DesktopTask) DesktopTaskView {
|
||||
}
|
||||
|
||||
return DesktopTaskView{
|
||||
ID: task.DesktopID.String(),
|
||||
JobID: task.JobID.String(),
|
||||
TenantID: task.TenantID,
|
||||
WorkspaceID: task.WorkspaceID,
|
||||
TargetAccountID: task.TargetAccountID.String(),
|
||||
TargetClientID: task.TargetClientID.String(),
|
||||
Platform: task.Platform,
|
||||
Kind: task.Kind,
|
||||
Payload: json.RawMessage(task.Payload),
|
||||
Status: normalizeDesktopTaskViewStatus(task.Kind, task.Status),
|
||||
DedupKey: task.DedupKey,
|
||||
ActiveAttemptID: activeAttemptID,
|
||||
LeaseExpiresAt: task.LeaseExpiresAt,
|
||||
Attempts: task.Attempts,
|
||||
Result: json.RawMessage(task.Result),
|
||||
Error: json.RawMessage(task.Error),
|
||||
CreatedAt: task.CreatedAt,
|
||||
UpdatedAt: task.UpdatedAt,
|
||||
ID: task.DesktopID.String(),
|
||||
JobID: task.JobID.String(),
|
||||
TenantID: task.TenantID,
|
||||
WorkspaceID: task.WorkspaceID,
|
||||
TargetAccountID: task.TargetAccountID.String(),
|
||||
TargetClientID: task.TargetClientID.String(),
|
||||
Platform: task.Platform,
|
||||
Kind: task.Kind,
|
||||
Payload: json.RawMessage(task.Payload),
|
||||
Status: normalizeDesktopTaskViewStatus(task.Kind, task.Status),
|
||||
DedupKey: task.DedupKey,
|
||||
ActiveAttemptID: activeAttemptID,
|
||||
LeaseExpiresAt: task.LeaseExpiresAt,
|
||||
PublishSubmitStartedAt: task.PublishSubmitStartedAt,
|
||||
Attempts: task.Attempts,
|
||||
Result: json.RawMessage(task.Result),
|
||||
Error: json.RawMessage(task.Error),
|
||||
CreatedAt: task.CreatedAt,
|
||||
UpdatedAt: task.UpdatedAt,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1899,8 +1910,10 @@ func normalizeDesktopTaskCompletionStatusForKind(kind string, status string) str
|
||||
|
||||
func normalizeDesktopTaskViewStatus(kind string, status string) string {
|
||||
switch strings.TrimSpace(kind) {
|
||||
case "monitor", "publish":
|
||||
case "monitor":
|
||||
return normalizeDesktopTaskTerminalStatus(status)
|
||||
case "publish":
|
||||
return strings.TrimSpace(status)
|
||||
default:
|
||||
return strings.TrimSpace(status)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user