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
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
log.Warn("created basis client",
|
||||||
|
"basis", bc.basis,
|
||||||
|
)
|
||||||
|
|
||||||
// A project is optional (though generally needed) and there are
|
// A project is optional (though generally needed) and there are
|
||||||
// two possibilites for how we load the project.
|
// two possibilites for how we load the project.
|
||||||
if bc.flagProject != "" {
|
if bc.flagProject != "" {
|
||||||
@ -378,8 +382,7 @@ func (c *baseCommand) Init(opts ...Option) (err error) {
|
|||||||
|
|
||||||
type Tasker interface {
|
type Tasker interface {
|
||||||
UI() terminal.UI
|
UI() terminal.UI
|
||||||
Task(context.Context, *vagrant_server.Job_RunOp, client.JobModifier) (*vagrant_server.Job_RunResult, error)
|
Command(context.Context, *vagrant_server.Job_CommandOp, client.JobModifier) (*vagrant_server.Job_CommandResult, error)
|
||||||
//CreateTask() *vagrant_server.Task
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Do calls the callback based on the loaded scope. This automatically handles any
|
// 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 {
|
func (c *baseCommand) Modifier() client.JobModifier {
|
||||||
return func(j *vagrant_server.Job) {
|
return func(j *vagrant_server.Job) {
|
||||||
if c.basis != nil {
|
if c.target != nil {
|
||||||
j.Basis = c.basis.Ref()
|
j.Scope = &vagrant_server.Job_Target{
|
||||||
|
Target: c.target.Ref(),
|
||||||
|
}
|
||||||
|
return
|
||||||
}
|
}
|
||||||
if c.project != nil {
|
if c.project != nil {
|
||||||
j.Project = c.project.Ref()
|
j.Scope = &vagrant_server.Job_Project{
|
||||||
|
Project: c.project.Ref(),
|
||||||
|
}
|
||||||
|
return
|
||||||
}
|
}
|
||||||
if c.target != nil {
|
if c.basis != nil {
|
||||||
j.Target = c.target.Ref()
|
j.Scope = &vagrant_server.Job_Basis{
|
||||||
|
Basis: c.basis.Ref(),
|
||||||
|
}
|
||||||
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -33,9 +33,9 @@ func (c *DynamicCommand) Run(args []string) int {
|
|||||||
return 1
|
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) {
|
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,
|
Args: c.args,
|
||||||
Flags: []*vagrant_plugin_sdk.Command_Arguments_Flag{},
|
Flags: []*vagrant_plugin_sdk.Command_Arguments_Flag{},
|
||||||
}
|
}
|
||||||
@ -53,47 +53,25 @@ func (c *DynamicCommand) Run(args []string) int {
|
|||||||
String_: v.(string),
|
String_: v.(string),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
taskArgs.Flags = append(taskArgs.Flags, cmdFlag)
|
cmdArgs.Flags = append(cmdArgs.Flags, cmdFlag)
|
||||||
}
|
}
|
||||||
|
|
||||||
c.Log.Debug("collected argument flags",
|
c.Log.Debug("collected argument flags",
|
||||||
"flags", taskArgs.Flags,
|
"flags", cmdArgs.Flags,
|
||||||
"args", args,
|
"args", args,
|
||||||
"remaining", c.args,
|
"remaining", c.args,
|
||||||
)
|
)
|
||||||
|
|
||||||
t := &vagrant_server.Task{
|
cOp := &vagrant_server.Job_CommandOp{
|
||||||
Task: c.name,
|
Command: c.name,
|
||||||
Component: &vagrant_server.Component{
|
Component: &vagrant_server.Component{
|
||||||
Type: vagrant_server.Component_COMMAND,
|
Type: vagrant_server.Component_COMMAND,
|
||||||
Name: c.name,
|
Name: c.name,
|
||||||
},
|
},
|
||||||
CliArgs: taskArgs,
|
CliArgs: cmdArgs,
|
||||||
CommandName: c.name,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if c.basis != nil {
|
r, err = cl.Command(ctx, cOp, modifier)
|
||||||
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,
|
|
||||||
)
|
|
||||||
|
|
||||||
// If nothing failed but we didn't get a Result back, something may
|
// 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.
|
// have gone wrong on the far side so we need to interpret the error.
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user