m/c/metroctl: fix crash deleting node without status

If status for a node is not present, which might happen for multiple
reasons, metroctl node delete crashes trying to dereference a nil status
value. Fix this by not printing status info if it's not available.

Fixes: https://github.com/monogon-dev/monogon/issues/341
Change-Id: I204cd9a70c2b44238da0356ee2629325aa713bea
Reviewed-on: https://review.monogon.dev/c/monogon/+/3333
Tested-by: Jenkins CI
Reviewed-by: Tim Windelschmidt <tim@monogon.tech>
diff --git a/metropolis/cli/metroctl/cmd_node.go b/metropolis/cli/metroctl/cmd_node.go
index 6273710..4b3a546 100644
--- a/metropolis/cli/metroctl/cmd_node.go
+++ b/metropolis/cli/metroctl/cmd_node.go
@@ -260,7 +260,11 @@
 		}
 
 		n := nodes[0]
-		log.Printf("deleting node: %s (%s)", n.Id, n.Status.ExternalAddress)
+		if n.Status != nil && n.Status.ExternalAddress != "" {
+			log.Printf("deleting node: %s (%s)", n.Id, n.Status.ExternalAddress)
+		} else {
+			log.Printf("deleting node: %s", n.Id)
+		}
 
 		req := &apb.DeleteNodeRequest{
 			Node: &apb.DeleteNodeRequest_Id{