Carry dependencies through operator commands

This commit is contained in:
2026-09-05 18:00:50 +00:00
parent dd905c4daa
commit f51b9bb046
17 changed files with 182 additions and 172 deletions

View File

@@ -16,6 +16,10 @@ import (
// LocksList lists independent publish locks.
func LocksList(ctx context.Context, args []string, out io.Writer) error {
return locksListWithDependencies(ctx, args, out, commandDependencies{})
}
func locksListWithDependencies(ctx context.Context, args []string, out io.Writer, deps commandDependencies) error {
fs := flag.NewFlagSet("locks", flag.ContinueOnError)
fs.SetOutput(io.Discard)
var flags commonConfigFlags
@@ -26,7 +30,7 @@ func LocksList(ctx context.Context, args []string, out io.Writer) error {
if strings.TrimSpace(flags.sessionID) == "" {
return fmt.Errorf("locks: session_id is required")
}
cfg, store, sessionPrefix, cleanup, err := loadLockCommandContext(ctx, flags)
cfg, store, sessionPrefix, cleanup, err := loadLockCommandContextWithDependencies(ctx, flags, deps)
if err != nil {
return fmt.Errorf("locks: %w", err)
}
@@ -41,6 +45,10 @@ func LocksList(ctx context.Context, args []string, out io.Writer) error {
// LocksAdd adds or updates one remote lock.
func LocksAdd(ctx context.Context, args []string, out io.Writer) error {
return locksAddWithDependencies(ctx, args, out, commandDependencies{})
}
func locksAddWithDependencies(ctx context.Context, args []string, out io.Writer, deps commandDependencies) error {
fs := flag.NewFlagSet("locks add", flag.ContinueOnError)
fs.SetOutput(io.Discard)
var flags commonConfigFlags
@@ -56,7 +64,7 @@ func LocksAdd(ctx context.Context, args []string, out io.Writer) error {
if strings.TrimSpace(flags.sessionID) == "" {
return fmt.Errorf("locks add: session_id is required")
}
_, store, sessionPrefix, cleanup, err := loadLockCommandContext(ctx, flags)
_, store, sessionPrefix, cleanup, err := loadLockCommandContextWithDependencies(ctx, flags, deps)
if err != nil {
return fmt.Errorf("locks add: %w", err)
}
@@ -86,6 +94,10 @@ func LocksAdd(ctx context.Context, args []string, out io.Writer) error {
// LocksRemove removes one remote lock.
func LocksRemove(ctx context.Context, args []string, out io.Writer) error {
return locksRemoveWithDependencies(ctx, args, out, commandDependencies{})
}
func locksRemoveWithDependencies(ctx context.Context, args []string, out io.Writer, deps commandDependencies) error {
fs := flag.NewFlagSet("locks remove", flag.ContinueOnError)
fs.SetOutput(io.Discard)
var flags commonConfigFlags
@@ -97,7 +109,7 @@ func LocksRemove(ctx context.Context, args []string, out io.Writer) error {
if strings.TrimSpace(flags.sessionID) == "" {
return fmt.Errorf("locks remove: session_id is required")
}
_, store, sessionPrefix, cleanup, err := loadLockCommandContext(ctx, flags)
_, store, sessionPrefix, cleanup, err := loadLockCommandContextWithDependencies(ctx, flags, deps)
if err != nil {
return fmt.Errorf("locks remove: %w", err)
}
@@ -118,7 +130,12 @@ func LocksRemove(ctx context.Context, args []string, out io.Writer) error {
}
func loadLockCommandContext(ctx context.Context, flags commonConfigFlags) (*config.Config, storage.ObjectStore, string, func(), error) {
loaded, err := loadCommandConfig(ctx, flags.pipelinePath, flags.campaignPath, flags.campaignFilePath, flags.sessionPath, flags.sessionOptions())
return loadLockCommandContextWithDependencies(ctx, flags, commandDependencies{})
}
func loadLockCommandContextWithDependencies(ctx context.Context, flags commonConfigFlags, deps commandDependencies) (*config.Config, storage.ObjectStore, string, func(), error) {
deps = normalizeCommandDependencies(deps)
loaded, err := loadCommandConfigWithDependencies(ctx, flags.pipelinePath, flags.campaignPath, flags.campaignFilePath, flags.sessionPath, flags.sessionOptions(), deps)
if err != nil {
return nil, nil, "", nil, err
}
@@ -132,7 +149,7 @@ func loadLockCommandContext(ctx context.Context, flags commonConfigFlags) (*conf
if err := config.Validate(cfg); err != nil {
return nil, nil, "", nil, err
}
store, err := newCommandObjectStore(ctx, cfg, nil)
store, err := newCommandObjectStoreWithDependencies(ctx, cfg, nil, deps)
if err != nil {
return nil, nil, "", nil, err
}