2022-04-25 12:23:57 -05:00

45 lines
878 B
Go

package client
import (
"context"
"github.com/hashicorp/go-hclog"
"github.com/hashicorp/vagrant-plugin-sdk/terminal"
"github.com/hashicorp/vagrant/internal/server/proto/vagrant_server"
)
type Machine struct {
ui terminal.UI
project *Project
machine *vagrant_server.Machine
logger hclog.Logger
}
func (m *Machine) UI() terminal.UI {
return m.ui
}
func (m *Machine) Ref() *vagrant_server.Ref_Machine {
return &vagrant_server.Ref_Machine{
ResourceId: m.machine.ResourceId,
Name: m.machine.Name,
Project: m.project.Ref(),
}
}
func (m *Machine) job() *vagrant_server.Job {
job := m.project.job()
job.Machine = m.Ref()
return job
}
func (m *Machine) Close() error {
return m.project.Close()
}
func (m *Machine) doJob(ctx context.Context, job *vagrant_server.Job) (*vagrant_server.Job_Result, error) {
return m.project.doJob(ctx, job, m.ui)
}