Use Command operation in place of Task
This commit is contained in:
parent
12042fd849
commit
2375cbe8a2
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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.
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user