Merge branch '12125-workbench-project-trash' refs #12125
[arvados.git] / sdk / go / health / aggregator.go
index 334584b6225f98c59bbaa8912550c9566739b109..297a8617084b3247c7b15c18a8ae9c2176224518 100644 (file)
@@ -3,6 +3,7 @@ package health
 import (
        "context"
        "encoding/json"
+       "errors"
        "fmt"
        "net"
        "net/http"
@@ -199,10 +200,14 @@ func (agg *Aggregator) ping(url string, cluster *arvados.Cluster) (result CheckR
        err = json.NewDecoder(resp.Body).Decode(&result.Response)
        if err != nil {
                err = fmt.Errorf("cannot decode response: %s", err)
-               return
        } else if resp.StatusCode != http.StatusOK {
                err = fmt.Errorf("HTTP %d %s", resp.StatusCode, resp.Status)
-               return
+       } else if h, _ := result.Response["health"].(string); h != "OK" {
+               if e, ok := result.Response["error"].(string); ok && e != "" {
+                       err = errors.New(e)
+               } else {
+                       err = fmt.Errorf("health=%q in ping response", h)
+               }
        }
        return
 }