in main.go [299:325]
func getEsVersion(host, user, pass string) (*semver.Version, error) {
req, err := http.NewRequest("GET", host, nil)
if err != nil {
return nil, err
}
if user != "" || pass != "" {
req.SetBasicAuth(user, pass)
}
resp, err := http.DefaultClient.Do(req)
if err != nil {
return nil, err
}
var esVersion struct {
Version struct {
Number string
} `json:"version"`
}
defer resp.Body.Close()
if resp.StatusCode != 200 {
return nil, fmt.Errorf("received unexpected %d status code", resp.StatusCode)
}
if err := json.NewDecoder(resp.Body).Decode(&esVersion); err != nil {
return nil, err
}
return semver.New(esVersion.Version.Number)
}