cloud/shepherd: skip machines in failed state
Currently we are not ignoring machines that are in failed state, which
brings the provider to a stop as soon as a provision request fails. We
should ignore such machines.
Change-Id: I7be64c710cc15428f4d8d4e75b6df1e816d453f8
Reviewed-on: https://review.monogon.dev/c/monogon/+/2417
Reviewed-by: Serge Bazanski <serge@monogon.tech>
Tested-by: Jenkins CI
diff --git a/cloud/shepherd/provider/equinix/provider.go b/cloud/shepherd/provider/equinix/provider.go
index edc8f3f..7d3c0d2 100644
--- a/cloud/shepherd/provider/equinix/provider.go
+++ b/cloud/shepherd/provider/equinix/provider.go
@@ -127,6 +127,10 @@
packngo.HardwareReservation
}
+func (e reservation) Failed() bool {
+ return false
+}
+
func (e reservation) ID() shepherd.ProviderID {
return shepherd.InvalidProviderID
}
@@ -143,6 +147,10 @@
packngo.Device
}
+func (e *machine) Failed() bool {
+ return e.Device.State == "failed"
+}
+
func (e *machine) ID() shepherd.ProviderID {
return shepherd.ProviderID(e.Device.ID)
}