diff --git a/internal/cli/base.go b/internal/cli/base.go index ec32e7c13..aeba6f3df 100644 --- a/internal/cli/base.go +++ b/internal/cli/base.go @@ -265,6 +265,10 @@ warning set the environment variable 'VAGRANT_SUPPRESS_GO_EXPERIMENTAL_WARNING'. return nil, err } + log.Warn("created basis client", + "basis", bc.basis, + ) + // A project is optional (though generally needed) and there are // two possibilites for how we load the project. if bc.flagProject != "" { @@ -378,8 +382,7 @@ func (c *baseCommand) Init(opts ...Option) (err error) { type Tasker interface { UI() terminal.UI - Task(context.Context, *vagrant_server.Job_RunOp, client.JobModifier) (*vagrant_server.Job_RunResult, error) - //CreateTask() *vagrant_server.Task + Command(context.Context, *vagrant_server.Job_CommandOp, client.JobModifier) (*vagrant_server.Job_CommandResult, error) } // Do calls the callback based on the loaded scope. This automatically handles any @@ -402,14 +405,23 @@ func (c *baseCommand) Do(ctx context.Context, f func(context.Context, *client.Cl func (c *baseCommand) Modifier() client.JobModifier { return func(j *vagrant_server.Job) { - if c.basis != nil { - j.Basis = c.basis.Ref() + if c.target != nil { + j.Scope = &vagrant_server.Job_Target{ + Target: c.target.Ref(), + } + return } if c.project != nil { - j.Project = c.project.Ref() + j.Scope = &vagrant_server.Job_Project{ + Project: c.project.Ref(), + } + return } - if c.target != nil { - j.Target = c.target.Ref() + if c.basis != nil { + j.Scope = &vagrant_server.Job_Basis{ + Basis: c.basis.Ref(), + } + return } } } diff --git a/internal/cli/dynamic.go b/internal/cli/dynamic.go index 679c74246..630dc67e9 100644 --- a/internal/cli/dynamic.go +++ b/internal/cli/dynamic.go @@ -33,9 +33,9 @@ func (c *DynamicCommand) Run(args []string) int { return 1 } - var r *vagrant_server.Job_RunResult + var r *vagrant_server.Job_CommandResult err := c.Do(c.Ctx, func(ctx context.Context, cl *client.Client, modifier client.JobModifier) (err error) { - taskArgs := &vagrant_plugin_sdk.Command_Arguments{ + cmdArgs := &vagrant_plugin_sdk.Command_Arguments{ Args: c.args, Flags: []*vagrant_plugin_sdk.Command_Arguments_Flag{}, } @@ -53,47 +53,25 @@ func (c *DynamicCommand) Run(args []string) int { String_: v.(string), } } - taskArgs.Flags = append(taskArgs.Flags, cmdFlag) + cmdArgs.Flags = append(cmdArgs.Flags, cmdFlag) } c.Log.Debug("collected argument flags", - "flags", taskArgs.Flags, + "flags", cmdArgs.Flags, "args", args, "remaining", c.args, ) - t := &vagrant_server.Task{ - Task: c.name, + cOp := &vagrant_server.Job_CommandOp{ + Command: c.name, Component: &vagrant_server.Component{ Type: vagrant_server.Component_COMMAND, Name: c.name, }, - CliArgs: taskArgs, - CommandName: c.name, + CliArgs: cmdArgs, } - if c.basis != nil { - t.Scope = &vagrant_server.Task_Basis{ - Basis: c.basis.Ref(), - } - } - - if c.project != nil { - t.Scope = &vagrant_server.Task_Project{ - Project: c.project.Ref(), - } - } - - if c.target != nil { - t.Scope = &vagrant_server.Task_Target{ - Target: c.target.Ref(), - } - } - - r, err = cl.Task(ctx, - &vagrant_server.Job_RunOp{Task: t}, - modifier, - ) + r, err = cl.Command(ctx, cOp, modifier) // If nothing failed but we didn't get a Result back, something may // have gone wrong on the far side so we need to interpret the error.