mirror of https://github.com/hashicorp/consul
37 lines
609 B
Go
37 lines
609 B
Go
package porter
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
"io/ioutil"
|
|
"net/http"
|
|
"os"
|
|
)
|
|
|
|
var DefaultAddr = "127.0.0.1:7965"
|
|
|
|
func RandomPorts(n int) ([]int, error) {
|
|
addr := os.Getenv("PORTER_ADDR")
|
|
if addr == "" {
|
|
b, err := ioutil.ReadFile("/tmp/porter.addr")
|
|
if err == nil {
|
|
addr = string(b)
|
|
}
|
|
}
|
|
if addr == "" {
|
|
addr = DefaultAddr
|
|
}
|
|
resp, err := http.Get(fmt.Sprintf("http://%s/%d", addr, n))
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer resp.Body.Close()
|
|
data, err := ioutil.ReadAll(resp.Body)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
var p []int
|
|
err = json.Unmarshal(data, &p)
|
|
return p, err
|
|
}
|