Skip to content

Commit

Permalink
api: target servers for allocation requests (hashicorp#8897)
Browse files Browse the repository at this point in the history
Allocation requests should target servers, which then can forward the
request to the appropriate clients.

Contacting clients directly is fragile and prune to failures: e.g.
clients maybe firewalled and not accessible from the API client, or have
some internal certificates not trusted by the API client.

FWIW, in contexts where we anticipate lots of traffic (e.g. logs, or
exec), the api package attempts contacting the client directly but then
fallsback to using the server. This approach seems excessive in these
simple GET/PUT requests.

Fixes hashicorp#8894
  • Loading branch information
Mahmood Ali authored and fredrikhgrelland committed Sep 28, 2020
1 parent 522edf5 commit 44ecc11
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 24 deletions.
14 changes: 2 additions & 12 deletions api/allocations.go
Original file line number Diff line number Diff line change
Expand Up @@ -286,13 +286,8 @@ func (a *Allocations) Stats(alloc *Allocation, q *QueryOptions) (*AllocResourceU
}

func (a *Allocations) GC(alloc *Allocation, q *QueryOptions) error {
nodeClient, err := a.client.GetNodeClient(alloc.NodeID, q)
if err != nil {
return err
}

var resp struct{}
_, err = nodeClient.query("/v1/client/allocation/"+alloc.ID+"/gc", &resp, nil)
_, err := a.client.query("/v1/client/allocation/"+alloc.ID+"/gc", &resp, nil)
return err
}

Expand Down Expand Up @@ -321,18 +316,13 @@ type AllocStopResponse struct {
}

func (a *Allocations) Signal(alloc *Allocation, q *QueryOptions, task, signal string) error {
nodeClient, err := a.client.GetNodeClient(alloc.NodeID, q)
if err != nil {
return err
}

req := AllocSignalRequest{
Signal: signal,
Task: task,
}

var resp GenericResponse
_, err = nodeClient.putQuery("/v1/client/allocation/"+alloc.ID+"/signal", &req, &resp, q)
_, err := a.client.putQuery("/v1/client/allocation/"+alloc.ID+"/signal", &req, &resp, q)
return err
}

Expand Down
14 changes: 2 additions & 12 deletions vendor/github.com/hashicorp/nomad/api/allocations.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 44ecc11

Please sign in to comment.