metropolis/cli/metroctl: refactor to use RunE instead of log.Fatal
Change-Id: Id5ca65980816e1715a8f08afcdf712292117012a
Reviewed-on: https://review.monogon.dev/c/monogon/+/3441
Reviewed-by: Lorenz Brun <lorenz@monogon.tech>
Tested-by: Jenkins CI
diff --git a/metropolis/cli/metroctl/cmd_node_metrics.go b/metropolis/cli/metroctl/cmd_node_metrics.go
index 0842c24..1572147 100644
--- a/metropolis/cli/metroctl/cmd_node_metrics.go
+++ b/metropolis/cli/metroctl/cmd_node_metrics.go
@@ -45,7 +45,10 @@
// First connect to the main management service and figure out the node's IP
// address.
- cc := dialAuthenticated(ctx)
+ cc, err := dialAuthenticated(ctx)
+ if err != nil {
+ return fmt.Errorf("while dialing node: %w", err)
+ }
mgmt := api.NewManagementClient(cc)
nodes, err := core.GetNodes(ctx, mgmt, fmt.Sprintf("node.id == %q", args[0]))
if err != nil {
@@ -63,8 +66,12 @@
return fmt.Errorf("node has no external address")
}
+ transport, err := newAuthenticatedNodeHTTPTransport(ctx, n.Id)
+ if err != nil {
+ return err
+ }
client := http.Client{
- Transport: newAuthenticatedNodeHTTPTransport(ctx, n.Id),
+ Transport: transport,
}
res, err := client.Get(fmt.Sprintf("https://%s/metrics/%s", net.JoinHostPort(n.Status.ExternalAddress, common.MetricsPort.PortString()), args[1]))
if err != nil {