cloud/shepherd/equinix/cli: Rename servers before deletion

This avoids collisions when redeploying servers

Change-Id: I94c8c5e0b1b601ee6513f7baddb251053ce9430b
Reviewed-on: https://review.monogon.dev/c/monogon/+/1864
Tested-by: Jenkins CI
Reviewed-by: Leopold Schabel <leo@monogon.tech>
diff --git a/cloud/shepherd/equinix/cli/cmd_delete.go b/cloud/shepherd/equinix/cli/cmd_delete.go
index e3c51a5..07b4dc7 100644
--- a/cloud/shepherd/equinix/cli/cmd_delete.go
+++ b/cloud/shepherd/equinix/cli/cmd_delete.go
@@ -4,6 +4,7 @@
 	"context"
 	"time"
 
+	"github.com/packethost/packngo"
 	"github.com/spf13/cobra"
 	"k8s.io/klog/v2"
 
@@ -42,6 +43,15 @@
 	time.Sleep(5 * time.Second)
 
 	for _, d := range devices {
+		h := "deleted-" + d.Hostname
+		_, err := api.UpdateDevice(ctx, d.ID, &packngo.DeviceUpdateRequest{
+			Hostname: &h,
+		})
+		if err != nil {
+			klog.Infof("failed updating device %s (%s): %v", d.ID, d.Hostname, err)
+			continue
+		}
+
 		klog.Infof("deleting %s (%s)...", d.ID, d.Hostname)
 		if err := api.DeleteDevice(ctx, d.ID); err != nil {
 			klog.Infof("failed deleting device %s (%s): %v", d.ID, d.Hostname, err)