ac78c23021
Fixes: #4222 # Data Filtering This PR will implement filtering for the following endpoints: ## Supported HTTP Endpoints - `/agent/checks` - `/agent/services` - `/catalog/nodes` - `/catalog/service/:service` - `/catalog/connect/:service` - `/catalog/node/:node` - `/health/node/:node` - `/health/checks/:service` - `/health/service/:service` - `/health/connect/:service` - `/health/state/:state` - `/internal/ui/nodes` - `/internal/ui/services` More can be added going forward and any endpoint which is used to list some data is a good candidate. ## Usage When using the HTTP API a `filter` query parameter can be used to pass a filter expression to Consul. Filter Expressions take the general form of: ``` <selector> == <value> <selector> != <value> <value> in <selector> <value> not in <selector> <selector> contains <value> <selector> not contains <value> <selector> is empty <selector> is not empty not <other expression> <expression 1> and <expression 2> <expression 1> or <expression 2> ``` Normal boolean logic and precedence is supported. All of the actual filtering and evaluation logic is coming from the [go-bexpr](https://github.com/hashicorp/go-bexpr) library ## Other changes Adding the `Internal.ServiceDump` RPC endpoint. This will allow the UI to filter services better.
33 lines
623 B
YAML
33 lines
623 B
YAML
default:
|
|
deps: [test]
|
|
|
|
dl-deps:
|
|
desc: Downloads cli dependencies
|
|
cmds:
|
|
- go get -u github.com/golang/lint/golint
|
|
- go get -u github.com/golang/dep/cmd/dep
|
|
|
|
update-deps:
|
|
desc: Updates dependencies
|
|
cmds:
|
|
- dep ensure
|
|
- dep ensure -update
|
|
|
|
lint:
|
|
desc: Runs golint
|
|
cmds:
|
|
- go fmt $(go list ./... | grep -v /vendor/)
|
|
- go vet $(go list ./... | grep -v /vendor/)
|
|
- golint $(ls *.go | grep -v "doc.go")
|
|
silent: true
|
|
|
|
test:
|
|
desc: Runs go tests
|
|
cmds:
|
|
- go test -race .
|
|
|
|
test-coverage:
|
|
desc: Runs go tests and calucates test coverage
|
|
cmds:
|
|
- go test -coverprofile=c.out .
|