[change] control, openapi: Handle upstreams test with JSON
This commit is contained in:
parent
d9d641941c
commit
e973c4b174
|
@ -361,12 +361,12 @@ func checkBootstrapDNS(host string) error {
|
|||
|
||||
func handleTestUpstreamDNS(w http.ResponseWriter, r *http.Request) {
|
||||
log.Tracef("%s %v", r.Method, r.URL)
|
||||
body, err := ioutil.ReadAll(r.Body)
|
||||
hosts := []string{}
|
||||
err := json.NewDecoder(r.Body).Decode(&hosts)
|
||||
if err != nil {
|
||||
httpError(w, http.StatusBadRequest, "Failed to read request body: %s", err)
|
||||
return
|
||||
}
|
||||
hosts := strings.Fields(string(body))
|
||||
|
||||
if len(hosts) == 0 {
|
||||
httpError(w, http.StatusBadRequest, "No servers specified")
|
||||
|
|
|
@ -111,21 +111,15 @@ paths:
|
|||
tags:
|
||||
- global
|
||||
operationId: testUpstreamDNS
|
||||
summary: 'Test upstream DNS'
|
||||
summary: "Test upstream DNS"
|
||||
consumes:
|
||||
- text/plain
|
||||
- application/json
|
||||
parameters:
|
||||
- in: body
|
||||
name: upstream
|
||||
description: 'Upstream servers, separated by newline or space, port is optional after colon'
|
||||
- in: "body"
|
||||
name: "body"
|
||||
description: "Upstream servers to be tested"
|
||||
schema:
|
||||
# TODO: use JSON
|
||||
type: string
|
||||
example: |
|
||||
1.1.1.1
|
||||
1.0.0.1
|
||||
8.8.8.8 8.8.4.4
|
||||
192.168.1.104:53535
|
||||
$ref: "#/definitions/TestUpstreams"
|
||||
responses:
|
||||
200:
|
||||
description: 'Status of testing each requested server, with "OK" meaning that server works, any other text means an error.'
|
||||
|
@ -820,6 +814,20 @@ definitions:
|
|||
all_servers:
|
||||
type: "boolean"
|
||||
description: "If true, parallel queries to all configured upstream servers are enabled"
|
||||
TestUpstreams:
|
||||
type: "object"
|
||||
description: "Upstream servers to be tested"
|
||||
required:
|
||||
- "upstream_dns"
|
||||
properties:
|
||||
upstream_dns:
|
||||
type: "array"
|
||||
description: 'Upstream servers, port is optional after colon'
|
||||
items:
|
||||
type: "string"
|
||||
example:
|
||||
- "tls://1.1.1.1"
|
||||
- "tls://1.0.0.1"
|
||||
Filter:
|
||||
type: "object"
|
||||
description: "Filter subscription info"
|
||||
|
|
Loading…
Reference in New Issue