github.com/cloudfoundry-attic/ltc@v0.0.0-20151123212628-098adc7919fc/droplet_runner/proxyconf_reader.go (about) 1 package droplet_runner 2 3 import ( 4 "encoding/json" 5 "errors" 6 "io/ioutil" 7 "net/http" 8 ) 9 10 type HTTPProxyConfReader struct { 11 URL string 12 } 13 14 func (p *HTTPProxyConfReader) ProxyConf() (ProxyConf, error) { 15 resp, err := http.Get(p.URL) 16 if err != nil { 17 return ProxyConf{}, err 18 } 19 defer resp.Body.Close() 20 21 if resp.StatusCode == 404 { 22 return ProxyConf{}, nil 23 } 24 25 if resp.StatusCode != 200 { 26 return ProxyConf{}, errors.New(resp.Status) 27 } 28 29 body, err := ioutil.ReadAll(resp.Body) 30 if err != nil { 31 return ProxyConf{}, err 32 } 33 34 proxyConf := ProxyConf{} 35 if err := json.Unmarshal(body, &proxyConf); err != nil { 36 return ProxyConf{}, err 37 } 38 39 return proxyConf, nil 40 }