orchard/internal/worker/runtime/tart.go

46 lines
1.1 KiB
Go

package runtime
import (
"context"
"github.com/cirruslabs/orchard/internal/dialer"
"github.com/cirruslabs/orchard/internal/worker/vmmanager"
tartpkg "github.com/cirruslabs/orchard/internal/worker/vmmanager/tart"
"github.com/cirruslabs/orchard/pkg/client"
v1 "github.com/cirruslabs/orchard/pkg/resource/v1"
"go.opentelemetry.io/otel/metric"
"go.uber.org/zap"
)
type Tart struct{}
func NewTart() *Tart {
return &Tart{}
}
func (tart *Tart) ID() v1.Runtime {
return v1.RuntimeTart
}
func (tart *Tart) Synthetic() bool {
return false
}
func (tart *Tart) NewVM(
vmResource v1.VM,
eventStreamer *client.EventStreamer,
vmPullTimeHistogram metric.Float64Histogram,
dialer dialer.Dialer,
logger *zap.SugaredLogger,
) vmmanager.VM {
return tartpkg.NewVM(vmResource, eventStreamer, vmPullTimeHistogram, dialer, logger)
}
func (tart *Tart) ListVMs(ctx context.Context, logger *zap.SugaredLogger) ([]vmmanager.VMInfo, error) {
return tartpkg.List(ctx, logger)
}
func (tart *Tart) Cmd(ctx context.Context, logger *zap.SugaredLogger, args ...string) (string, string, error) {
return tartpkg.Tart(ctx, logger, args...)
}