orchard/internal/worker/runtime/synthetic.go

52 lines
1.2 KiB
Go

package runtime
import (
"context"
"runtime"
"github.com/cirruslabs/orchard/internal/dialer"
"github.com/cirruslabs/orchard/internal/worker/vmmanager"
syntheticpkg "github.com/cirruslabs/orchard/internal/worker/vmmanager/synthetic"
"github.com/cirruslabs/orchard/pkg/client"
v1 "github.com/cirruslabs/orchard/pkg/resource/v1"
"go.opentelemetry.io/otel/metric"
"go.uber.org/zap"
)
type Synthetic struct{}
func NewSynthetic() *Synthetic {
return &Synthetic{}
}
func (synthetic *Synthetic) ID() v1.Runtime {
// Fake runtime depending on the OS
if runtime.GOOS == "linux" {
return v1.RuntimeVetu
} else {
return v1.RuntimeTart
}
}
func (synthetic *Synthetic) Synthetic() bool {
return true
}
func (synthetic *Synthetic) NewVM(
vmResource v1.VM,
eventStreamer *client.EventStreamer,
vmPullTimeHistogram metric.Float64Histogram,
_ dialer.Dialer,
logger *zap.SugaredLogger,
) vmmanager.VM {
return syntheticpkg.NewVM(vmResource, eventStreamer, vmPullTimeHistogram, logger)
}
func (synthetic *Synthetic) ListVMs(ctx context.Context, logger *zap.SugaredLogger) ([]vmmanager.VMInfo, error) {
return nil, nil
}
func (synthetic *Synthetic) Cmd(_ context.Context, _ *zap.SugaredLogger, _ ...string) (string, string, error) {
return "", "", nil
}