376 lines
13 KiB
Go
376 lines
13 KiB
Go
package dto
|
|
|
|
import (
|
|
"time"
|
|
|
|
"browser.local/platform/domain"
|
|
)
|
|
|
|
type RunJobAssignmentResponse struct {
|
|
JobID string `json:"jobId"`
|
|
ServerInstanceID string `json:"serverInstanceId,omitempty"`
|
|
RunEndpointID string `json:"runEndpointId"`
|
|
Capability string `json:"capability"`
|
|
TargetKey string `json:"targetKey,omitempty"`
|
|
InputRef string `json:"inputRef,omitempty"`
|
|
IdempotencyKey string `json:"idempotencyKey"`
|
|
State domain.JobState `json:"state"`
|
|
Progress JobProgressBody `json:"progress"`
|
|
ResultRef string `json:"resultRef,omitempty"`
|
|
LeaseToken string `json:"leaseToken"`
|
|
Attempt int `json:"attempt"`
|
|
CreatedAt time.Time `json:"createdAt"`
|
|
UpdatedAt time.Time `json:"updatedAt"`
|
|
}
|
|
|
|
type RunJobClaimRequest struct {
|
|
RunEndpointID string `json:"runEndpointId"`
|
|
SessionToken string `json:"sessionToken"`
|
|
Capabilities []string `json:"capabilities"`
|
|
Capacity RunCapacityResponse `json:"capacity"`
|
|
}
|
|
|
|
type RunJobClaimResponse struct {
|
|
Accepted bool `json:"accepted"`
|
|
RunEndpointID string `json:"runEndpointId"`
|
|
HasJob bool `json:"hasJob"`
|
|
Job *RunJobAssignmentResponse `json:"job,omitempty"`
|
|
NextPollSeconds int `json:"nextPollSeconds"`
|
|
ServerTime time.Time `json:"serverTime"`
|
|
}
|
|
|
|
type RunJobAckRequest struct {
|
|
RunEndpointID string `json:"runEndpointId"`
|
|
SessionToken string `json:"sessionToken"`
|
|
JobID string `json:"jobId"`
|
|
LeaseToken string `json:"leaseToken"`
|
|
Attempt int `json:"attempt"`
|
|
Message string `json:"message,omitempty"`
|
|
}
|
|
|
|
type RunJobAckResponse struct {
|
|
Accepted bool `json:"accepted"`
|
|
Job RunJobAssignmentResponse `json:"job"`
|
|
ServerTime time.Time `json:"serverTime"`
|
|
}
|
|
|
|
type RunJobProgressRequest struct {
|
|
RunEndpointID string `json:"runEndpointId"`
|
|
SessionToken string `json:"sessionToken"`
|
|
JobID string `json:"jobId"`
|
|
LeaseToken string `json:"leaseToken"`
|
|
Attempt int `json:"attempt"`
|
|
Progress JobProgressBody `json:"progress"`
|
|
Sequence uint64 `json:"sequence,omitempty"`
|
|
}
|
|
|
|
type RunJobProgressResponse struct {
|
|
Accepted bool `json:"accepted"`
|
|
Job RunJobAssignmentResponse `json:"job"`
|
|
ServerTime time.Time `json:"serverTime"`
|
|
}
|
|
|
|
type RunJobResultRequest struct {
|
|
RunEndpointID string `json:"runEndpointId"`
|
|
SessionToken string `json:"sessionToken"`
|
|
JobID string `json:"jobId"`
|
|
LeaseToken string `json:"leaseToken"`
|
|
Attempt int `json:"attempt"`
|
|
State domain.JobState `json:"state"`
|
|
Progress JobProgressBody `json:"progress"`
|
|
ResultRef string `json:"resultRef,omitempty"`
|
|
Message string `json:"message,omitempty"`
|
|
ErrorCode string `json:"errorCode,omitempty"`
|
|
}
|
|
|
|
type RunJobResultResponse struct {
|
|
Accepted bool `json:"accepted"`
|
|
Job RunJobAssignmentResponse `json:"job"`
|
|
ServerTime time.Time `json:"serverTime"`
|
|
}
|
|
|
|
type DistributionBuildInputRequest struct {
|
|
RunEndpointID string `json:"runEndpointId"`
|
|
SessionToken string `json:"sessionToken"`
|
|
JobID string `json:"jobId"`
|
|
LeaseToken string `json:"leaseToken"`
|
|
Attempt int `json:"attempt"`
|
|
}
|
|
|
|
type DistributionBuildInputResponse struct {
|
|
JobID string `json:"jobId"`
|
|
ComponentKind string `json:"componentKind"`
|
|
ServerInstanceID string `json:"serverInstanceId"`
|
|
PluginID string `json:"pluginId"`
|
|
RunEndpointID string `json:"runEndpointId"`
|
|
ProfileKey string `json:"profileKey,omitempty"`
|
|
TargetOS string `json:"targetOs"`
|
|
TargetArch string `json:"targetArch"`
|
|
PackageFormat string `json:"packageFormat"`
|
|
RepositoryURL string `json:"repositoryUrl,omitempty"`
|
|
SourceRevision string `json:"sourceRevision,omitempty"`
|
|
ArtifactID string `json:"artifactId"`
|
|
OutputFilename string `json:"outputFilename"`
|
|
SecretRef string `json:"secretRef"`
|
|
KeyGeneration int `json:"keyGeneration"`
|
|
AuthKey string `json:"authKey"`
|
|
}
|
|
|
|
type RunJobCancelRequestBody struct {
|
|
JobID string `json:"jobId"`
|
|
Reason string `json:"reason"`
|
|
}
|
|
|
|
type RunJobCancelRequestResponse struct {
|
|
Accepted bool `json:"accepted"`
|
|
JobID string `json:"jobId"`
|
|
Reason string `json:"reason"`
|
|
RequestedAt time.Time `json:"requestedAt"`
|
|
}
|
|
|
|
type RunJobCancelPollRequest struct {
|
|
RunEndpointID string `json:"runEndpointId"`
|
|
SessionToken string `json:"sessionToken"`
|
|
JobID string `json:"jobId,omitempty"`
|
|
LeaseToken string `json:"leaseToken,omitempty"`
|
|
}
|
|
|
|
type RunJobCancelPollResponse struct {
|
|
Accepted bool `json:"accepted"`
|
|
RunEndpointID string `json:"runEndpointId"`
|
|
HasCancel bool `json:"hasCancel"`
|
|
JobID string `json:"jobId,omitempty"`
|
|
Reason string `json:"reason,omitempty"`
|
|
RequestedAt time.Time `json:"requestedAt,omitempty"`
|
|
ServerTime time.Time `json:"serverTime"`
|
|
}
|
|
|
|
type RunJobReconcileRequest struct {
|
|
RunEndpointID string `json:"runEndpointId"`
|
|
SessionToken string `json:"sessionToken"`
|
|
ActiveJobIDs []string `json:"activeJobIds"`
|
|
}
|
|
|
|
type RunJobReconcileResponse struct {
|
|
Accepted bool `json:"accepted"`
|
|
RunEndpointID string `json:"runEndpointId"`
|
|
ActiveJobs []RunJobAssignmentResponse `json:"activeJobs"`
|
|
UnknownJobIDs []string `json:"unknownJobIds"`
|
|
ServerTime time.Time `json:"serverTime"`
|
|
}
|
|
|
|
func (request RunJobClaimRequest) ToDomain() domain.RunJobClaim {
|
|
return domain.RunJobClaim{
|
|
RunEndpointID: request.RunEndpointID,
|
|
SessionToken: request.SessionToken,
|
|
Capabilities: domain.CopyStringSlice(request.Capabilities),
|
|
Capacity: capacityToDomain(request.Capacity),
|
|
}
|
|
}
|
|
|
|
func (request RunJobAckRequest) ToDomain() domain.RunJobAck {
|
|
return domain.RunJobAck{
|
|
RunEndpointID: request.RunEndpointID,
|
|
SessionToken: request.SessionToken,
|
|
JobID: request.JobID,
|
|
LeaseToken: request.LeaseToken,
|
|
Attempt: request.Attempt,
|
|
Message: request.Message,
|
|
}
|
|
}
|
|
|
|
func (request RunJobProgressRequest) ToDomain() domain.RunJobProgress {
|
|
return domain.RunJobProgress{
|
|
RunEndpointID: request.RunEndpointID,
|
|
SessionToken: request.SessionToken,
|
|
JobID: request.JobID,
|
|
LeaseToken: request.LeaseToken,
|
|
Attempt: request.Attempt,
|
|
Progress: progressReportToDomain(request.Progress),
|
|
Sequence: request.Sequence,
|
|
}
|
|
}
|
|
|
|
func (request RunJobResultRequest) ToDomain() domain.RunJobResult {
|
|
return domain.RunJobResult{
|
|
RunEndpointID: request.RunEndpointID,
|
|
SessionToken: request.SessionToken,
|
|
JobID: request.JobID,
|
|
LeaseToken: request.LeaseToken,
|
|
Attempt: request.Attempt,
|
|
State: request.State,
|
|
Progress: progressReportToDomain(request.Progress),
|
|
ResultRef: request.ResultRef,
|
|
Message: request.Message,
|
|
ErrorCode: request.ErrorCode,
|
|
}
|
|
}
|
|
|
|
func (request DistributionBuildInputRequest) ToDomain() domain.DistributionBuildInputRequest {
|
|
return domain.DistributionBuildInputRequest{
|
|
RunEndpointID: request.RunEndpointID,
|
|
SessionToken: request.SessionToken,
|
|
JobID: request.JobID,
|
|
LeaseToken: request.LeaseToken,
|
|
Attempt: request.Attempt,
|
|
}
|
|
}
|
|
|
|
func (request RunJobCancelRequestBody) ToDomain() domain.RunJobCancelRequest {
|
|
return domain.RunJobCancelRequest{
|
|
JobID: request.JobID,
|
|
Reason: request.Reason,
|
|
}
|
|
}
|
|
|
|
func (request RunJobCancelPollRequest) ToDomain() domain.RunJobCancelPoll {
|
|
return domain.RunJobCancelPoll{
|
|
RunEndpointID: request.RunEndpointID,
|
|
SessionToken: request.SessionToken,
|
|
JobID: request.JobID,
|
|
LeaseToken: request.LeaseToken,
|
|
}
|
|
}
|
|
|
|
func (request RunJobReconcileRequest) ToDomain() domain.RunJobReconcile {
|
|
return domain.RunJobReconcile{
|
|
RunEndpointID: request.RunEndpointID,
|
|
SessionToken: request.SessionToken,
|
|
ActiveJobIDs: domain.CopyStringSlice(request.ActiveJobIDs),
|
|
}
|
|
}
|
|
|
|
func RunJobClaimFromDomain(result domain.RunJobClaimResult) RunJobClaimResponse {
|
|
result = domain.CopyRunJobClaimResult(result)
|
|
return RunJobClaimResponse{
|
|
Accepted: result.Accepted,
|
|
RunEndpointID: result.RunEndpointID,
|
|
HasJob: result.HasJob,
|
|
Job: RunJobAssignmentPtrFromDomain(result.Job),
|
|
NextPollSeconds: result.NextPollSeconds,
|
|
ServerTime: result.ServerTime,
|
|
}
|
|
}
|
|
|
|
func RunJobAckFromDomain(result domain.RunJobAckResult) RunJobAckResponse {
|
|
return RunJobAckResponse{
|
|
Accepted: result.Accepted,
|
|
Job: RunJobAssignmentFromDomain(result.Job),
|
|
ServerTime: result.ServerTime,
|
|
}
|
|
}
|
|
|
|
func RunJobProgressFromDomain(result domain.RunJobProgressResult) RunJobProgressResponse {
|
|
return RunJobProgressResponse{
|
|
Accepted: result.Accepted,
|
|
Job: RunJobAssignmentFromDomain(result.Job),
|
|
ServerTime: result.ServerTime,
|
|
}
|
|
}
|
|
|
|
func RunJobResultFromDomain(result domain.RunJobResultResult) RunJobResultResponse {
|
|
return RunJobResultResponse{
|
|
Accepted: result.Accepted,
|
|
Job: RunJobAssignmentFromDomain(result.Job),
|
|
ServerTime: result.ServerTime,
|
|
}
|
|
}
|
|
|
|
func DistributionBuildInputFromDomain(input domain.DistributionBuildInput) DistributionBuildInputResponse {
|
|
return DistributionBuildInputResponse{
|
|
JobID: input.JobID,
|
|
ComponentKind: string(input.ComponentKind),
|
|
ServerInstanceID: input.ServerInstanceID,
|
|
PluginID: input.PluginID,
|
|
RunEndpointID: input.RunEndpointID,
|
|
ProfileKey: input.ProfileKey,
|
|
TargetOS: input.TargetOS,
|
|
TargetArch: input.TargetArch,
|
|
PackageFormat: input.PackageFormat,
|
|
RepositoryURL: input.RepositoryURL,
|
|
SourceRevision: input.SourceRevision,
|
|
ArtifactID: input.ArtifactID,
|
|
OutputFilename: input.OutputFilename,
|
|
SecretRef: input.SecretRef,
|
|
KeyGeneration: input.KeyGeneration,
|
|
AuthKey: input.AuthKey,
|
|
}
|
|
}
|
|
|
|
func RunJobCancelRequestFromDomain(result domain.RunJobCancelRequestResult) RunJobCancelRequestResponse {
|
|
return RunJobCancelRequestResponse{
|
|
Accepted: result.Accepted,
|
|
JobID: result.JobID,
|
|
Reason: result.Reason,
|
|
RequestedAt: result.RequestedAt,
|
|
}
|
|
}
|
|
|
|
func RunJobCancelPollFromDomain(result domain.RunJobCancelPollResult) RunJobCancelPollResponse {
|
|
return RunJobCancelPollResponse{
|
|
Accepted: result.Accepted,
|
|
RunEndpointID: result.RunEndpointID,
|
|
HasCancel: result.HasCancel,
|
|
JobID: result.JobID,
|
|
Reason: result.Reason,
|
|
RequestedAt: result.RequestedAt,
|
|
ServerTime: result.ServerTime,
|
|
}
|
|
}
|
|
|
|
func RunJobReconcileFromDomain(result domain.RunJobReconcileResult) RunJobReconcileResponse {
|
|
result = domain.CopyRunJobReconcileResult(result)
|
|
items := make([]RunJobAssignmentResponse, len(result.ActiveJobs))
|
|
for i, assignment := range result.ActiveJobs {
|
|
items[i] = RunJobAssignmentFromDomain(assignment)
|
|
}
|
|
return RunJobReconcileResponse{
|
|
Accepted: result.Accepted,
|
|
RunEndpointID: result.RunEndpointID,
|
|
ActiveJobs: items,
|
|
UnknownJobIDs: result.UnknownJobIDs,
|
|
ServerTime: result.ServerTime,
|
|
}
|
|
}
|
|
|
|
func RunJobAssignmentPtrFromDomain(assignment *domain.RunJobAssignment) *RunJobAssignmentResponse {
|
|
if assignment == nil {
|
|
return nil
|
|
}
|
|
response := RunJobAssignmentFromDomain(*assignment)
|
|
return &response
|
|
}
|
|
|
|
func RunJobAssignmentFromDomain(assignment domain.RunJobAssignment) RunJobAssignmentResponse {
|
|
return RunJobAssignmentResponse{
|
|
JobID: assignment.JobID,
|
|
ServerInstanceID: assignment.ServerInstanceID,
|
|
RunEndpointID: assignment.RunEndpointID,
|
|
Capability: assignment.Capability,
|
|
TargetKey: assignment.TargetKey,
|
|
InputRef: assignment.InputRef,
|
|
IdempotencyKey: assignment.IdempotencyKey,
|
|
State: assignment.State,
|
|
Progress: progressReportFromDomain(assignment.Progress),
|
|
ResultRef: assignment.ResultRef,
|
|
LeaseToken: assignment.LeaseToken,
|
|
Attempt: assignment.Attempt,
|
|
CreatedAt: assignment.CreatedAt,
|
|
UpdatedAt: assignment.UpdatedAt,
|
|
}
|
|
}
|
|
|
|
func progressReportToDomain(progress JobProgressBody) domain.RunJobProgressReport {
|
|
return domain.RunJobProgressReport{
|
|
Percent: progress.Percent,
|
|
Message: progress.Message,
|
|
}
|
|
}
|
|
|
|
func progressReportFromDomain(progress domain.RunJobProgressReport) JobProgressBody {
|
|
return JobProgressBody{
|
|
Percent: progress.Percent,
|
|
Message: progress.Message,
|
|
}
|
|
}
|