From 088464f88cdd387e699a4a573699b81566142791 Mon Sep 17 00:00:00 2001 From: rawdaGastan Date: Wed, 6 Nov 2024 13:45:22 +0200 Subject: [PATCH] fallback to zos3 nodes when no zos4 nodes found --- provider/scheduler.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/provider/scheduler.go b/provider/scheduler.go index ad4f7ca..d5b6d03 100644 --- a/provider/scheduler.go +++ b/provider/scheduler.go @@ -2,9 +2,12 @@ package provider import ( "context" + "errors" + "slices" "github.com/pulumi/pulumi-go-provider/infer" "github.com/threefoldtech/tfgrid-sdk-go/grid-client/deployer" + "github.com/threefoldtech/tfgrid-sdk-go/grid-client/zos" ) // Scheduler controlling struct @@ -63,6 +66,11 @@ func (*Scheduler) Create( nodeFilter, ssds, hdds := parseSchedulerInput(input) nodes, err := deployer.FilterNodes(ctx, config.TFPluginClient, nodeFilter, hdds, ssds, nil) + if errors.Is(err, deployer.ErrNoNodesMatchesResources) && slices.Contains(nodeFilter.Features, zos.NetworkLightType) { + nodeFilter.Features = []string{zos.NetworkType, zos.ZMachineType} + nodes, err = deployer.FilterNodes(ctx, config.TFPluginClient, nodeFilter, hdds, ssds, nil) + } + if err != nil { return id, state, err }