Don't query for node-status if the node is down and handle the errors

This commit is contained in:
Alex Dadgar
2016-10-20 18:05:58 -07:00
parent 0e296f4811
commit 72ce7e7d41
2 changed files with 26 additions and 11 deletions

View File

@@ -8,6 +8,12 @@ import (
"github.com/hashicorp/go-cleanhttp"
)
var (
// NodeDownErr marks an operational as not able to complete since the node
// is down.
NodeDownErr = fmt.Errorf("node down")
)
// Allocations is used to query the alloc-related endpoints.
type Allocations struct {
client *Client
@@ -48,6 +54,9 @@ func (a *Allocations) Stats(alloc *Allocation, q *QueryOptions) (*AllocResourceU
if err != nil {
return nil, err
}
if node.Status == "down" {
return nil, NodeDownErr
}
if node.HTTPAddr == "" {
return nil, fmt.Errorf("http addr of the node where alloc %q is running is not advertised", alloc.ID)
}