Files
browser/platform/domain/job_channel.go
T
2026-07-15 19:43:06 +08:00

221 lines
4.5 KiB
Go

package domain
import "time"
type RunJobProgressReport struct {
Percent int
Message string
}
type RunJobAssignment struct {
JobID string
ServerInstanceID string
RunEndpointID string
Capability string
TargetKey string
InputRef string
IdempotencyKey string
State JobState
Progress RunJobProgressReport
ResultRef string
LeaseToken string
Attempt int
CreatedAt time.Time
UpdatedAt time.Time
}
type RunJobClaim struct {
RunEndpointID string
SessionToken string
Capabilities []string
Capacity RunCapacity
}
type RunJobClaimResult struct {
Accepted bool
RunEndpointID string
HasJob bool
Job *RunJobAssignment
NextPollSeconds int
ServerTime time.Time
}
type RunJobAck struct {
RunEndpointID string
SessionToken string
JobID string
LeaseToken string
Attempt int
Message string
}
type RunJobAckResult struct {
Accepted bool
Job RunJobAssignment
ServerTime time.Time
}
type RunJobProgress struct {
RunEndpointID string
SessionToken string
JobID string
LeaseToken string
Attempt int
Progress RunJobProgressReport
Sequence uint64
}
type RunJobProgressResult struct {
Accepted bool
Job RunJobAssignment
ServerTime time.Time
}
type RunJobResult struct {
RunEndpointID string
SessionToken string
JobID string
LeaseToken string
Attempt int
State JobState
Progress RunJobProgressReport
ResultRef string
Message string
ErrorCode string
}
type RunJobResultResult struct {
Accepted bool
Job RunJobAssignment
ServerTime time.Time
}
type DistributionBuildInputRequest struct {
RunEndpointID string
SessionToken string
JobID string
LeaseToken string
Attempt int
}
type DistributionBuildInput struct {
JobID string
ComponentKind DistributionComponentKind
ServerInstanceID string
PluginID string
RunEndpointID string
ProfileKey string
TargetOS string
TargetArch string
PackageFormat string
RepositoryURL string
SourceRevision string
ArtifactID string
OutputFilename string
SecretRef string
KeyGeneration int
AuthKey string
}
type RunJobCancelRequest struct {
JobID string
Reason string
}
type RunJobCancelRequestResult struct {
Accepted bool
JobID string
Reason string
RequestedAt time.Time
}
type RunJobCancelPoll struct {
RunEndpointID string
SessionToken string
JobID string
LeaseToken string
}
type RunJobCancelPollResult struct {
Accepted bool
RunEndpointID string
HasCancel bool
JobID string
Reason string
RequestedAt time.Time
ServerTime time.Time
}
type RunJobReconcile struct {
RunEndpointID string
SessionToken string
ActiveJobIDs []string
}
type RunJobReconcileResult struct {
Accepted bool
RunEndpointID string
ActiveJobs []RunJobAssignment
UnknownJobIDs []string
ServerTime time.Time
}
type RunJobLease struct {
JobID string
RunEndpointID string
SessionToken string
LeaseToken string
Attempt int
CancelReason string
CancelRequestedAt time.Time
TerminalFingerprint string
CreatedAt time.Time
UpdatedAt time.Time
}
func CopyRunJobAssignment(assignment RunJobAssignment) RunJobAssignment {
return assignment
}
func CopyRunJobAssignmentPtr(assignment *RunJobAssignment) *RunJobAssignment {
if assignment == nil {
return nil
}
copy := CopyRunJobAssignment(*assignment)
return &copy
}
func CopyRunJobClaim(claim RunJobClaim) RunJobClaim {
claim.Capabilities = CopyStringSlice(claim.Capabilities)
return claim
}
func CopyRunJobClaimResult(result RunJobClaimResult) RunJobClaimResult {
result.Job = CopyRunJobAssignmentPtr(result.Job)
return result
}
func CopyRunJobReconcile(reconcile RunJobReconcile) RunJobReconcile {
reconcile.ActiveJobIDs = CopyStringSlice(reconcile.ActiveJobIDs)
return reconcile
}
func CopyRunJobReconcileResult(result RunJobReconcileResult) RunJobReconcileResult {
result.ActiveJobs = CopyRunJobAssignments(result.ActiveJobs)
result.UnknownJobIDs = CopyStringSlice(result.UnknownJobIDs)
return result
}
func CopyRunJobAssignments(assignments []RunJobAssignment) []RunJobAssignment {
if assignments == nil {
return nil
}
out := make([]RunJobAssignment, len(assignments))
copy(out, assignments)
return out
}
func CopyRunJobLease(lease RunJobLease) RunJobLease {
return lease
}