Created interfaces package to break tight coupling: 1. internal/worker/interfaces/executor.go (30 lines) - JobExecutor interface for job execution - ExecutionEnv struct for execution context - ExecutionResult struct for results 2. internal/worker/interfaces/tracker.go (20 lines) - ProgressTracker interface for execution stages - StageStart, StageComplete, StageFailed methods - JobComplete for final status 3. internal/worker/interfaces/manifest.go (18 lines) - ManifestWriter interface for manifest operations - Upsert method for update/create - BuildInitial method for creating new manifests These interfaces will enable: - Dependency injection in future phases - Mocking for unit tests - Clean separation between orchestration and execution Build status: Compiles successfully
21 lines
634 B
Go
21 lines
634 B
Go
// Package interfaces defines the contracts for worker components
|
|
package interfaces
|
|
|
|
import (
|
|
"time"
|
|
)
|
|
|
|
// ProgressTracker defines the contract for tracking job execution progress
|
|
type ProgressTracker interface {
|
|
// StageStart marks the beginning of an execution stage
|
|
StageStart(taskID, stage string)
|
|
|
|
// StageComplete marks successful completion of a stage
|
|
StageComplete(taskID, stage string, duration time.Duration)
|
|
|
|
// StageFailed marks a stage failure
|
|
StageFailed(taskID, stage string, err error)
|
|
|
|
// JobComplete marks job completion with final status
|
|
JobComplete(taskID string, success bool, duration time.Duration)
|
|
}
|