[proxy] query weavedns for domain

This commit is contained in:
Paul Bellamy committed 2015-06-11 10:27:34 +01:00
1 parent b9850ac200
commit 99d9ad7042
1 file changed
+26 -2
+26 -2
View File
@@ -3,6 +3,7 @@ package proxy
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
"strings"
@@ -93,13 +94,36 @@ func (i *createContainerInterceptor) setWeaveDNS(container *createContainerReque
name := r.URL.Query().Get("name")
if container.Hostname == "" && name != "" {
container.Hostname = name
// TODO: Get weaveDNS domain
container.Domainname = nameserver.DefaultLocalDomain
container.Domainname = i.getDNSDomain()
}
return nil
}
func (i *createContainerInterceptor) getDNSDomain() (domain string) {
domain = nameserver.DefaultLocalDomain
dnsContainer, err := i.proxy.client.InspectContainer("weavedns")
if err != nil ||
dnsContainer.NetworkSettings == nil ||
dnsContainer.NetworkSettings.IPAddress == "" {
return
}
url := fmt.Sprintf("http://%s:6785/domain", dnsContainer.NetworkSettings.IPAddress)
resp, err := http.Get(url)
if err != nil || resp.StatusCode != http.StatusOK {
return
}
defer resp.Body.Close()
b, err := ioutil.ReadAll(resp.Body)
if err != nil {
return
}
return string(b)
}
func (i *createContainerInterceptor) InterceptResponse(r *http.Response) error {
return nil
}