open-nomad/nomad/regions_endpoint.go

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

35 lines
962 B
Go
Raw Normal View History

// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0
2015-11-24 05:47:11 +00:00
package nomad
2018-09-15 23:23:13 +00:00
import (
"github.com/hashicorp/go-hclog"
2018-09-15 23:23:13 +00:00
"github.com/hashicorp/nomad/nomad/structs"
)
2015-11-24 05:47:11 +00:00
// Region is used to query and list the known regions
type Region struct {
2018-09-15 23:23:13 +00:00
srv *Server
ctx *RPCContext
logger hclog.Logger
}
func NewRegionEndpoint(srv *Server, ctx *RPCContext) *Region {
return &Region{srv: srv, ctx: ctx, logger: srv.logger.Named("region")}
2015-11-24 05:47:11 +00:00
}
// List is used to list all of the known regions. No leader forwarding is
// required for this endpoint because memberlist is used to populate the
// peers list we read from.
2015-11-24 05:47:11 +00:00
func (r *Region) List(args *structs.GenericRequest, reply *[]string) error {
// note: we're intentionally throwing away any auth error here and only
// authenticate so that we can measure rate metrics
r.srv.Authenticate(r.ctx, args)
r.srv.MeasureRPCRate("region", structs.RateMetricList, args)
2015-11-24 05:47:11 +00:00
*reply = r.srv.Regions()
return nil
}