mirror of https://github.com/docker/docs.git
update samalba/dockerclient
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
This commit is contained in:
parent
82fc920e90
commit
4265d07669
|
@ -111,7 +111,7 @@
|
|||
},
|
||||
{
|
||||
"ImportPath": "github.com/samalba/dockerclient",
|
||||
"Rev": "217f8249a9553b88a6f90ffb6de2d4faae3e0de2"
|
||||
"Rev": "eb5d78d2c1654188c1ce6c57d2ab5e5d87f5c1a4"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/samuel/go-zookeeper/zk",
|
||||
|
|
|
@ -30,7 +30,6 @@ type DockerClient struct {
|
|||
URL *url.URL
|
||||
HTTPClient *http.Client
|
||||
TLSConfig *tls.Config
|
||||
monitorEvents int32
|
||||
monitorStats int32
|
||||
eventStopChan chan (struct{})
|
||||
}
|
||||
|
@ -62,7 +61,7 @@ func NewDockerClientTimeout(daemonUrl string, tlsConfig *tls.Config, timeout tim
|
|||
}
|
||||
}
|
||||
httpClient := newHTTPClient(u, tlsConfig, timeout)
|
||||
return &DockerClient{u, httpClient, tlsConfig, 0, 0, nil}, nil
|
||||
return &DockerClient{u, httpClient, tlsConfig, 0, nil}, nil
|
||||
}
|
||||
|
||||
func (client *DockerClient) doRequest(method string, path string, body []byte, headers map[string]string) ([]byte, error) {
|
||||
|
@ -364,13 +363,13 @@ func (client *DockerClient) MonitorEvents(options *MonitorEventsOptions, stopCha
|
|||
func (client *DockerClient) StartMonitorEvents(cb Callback, ec chan error, args ...interface{}) {
|
||||
client.eventStopChan = make(chan struct{})
|
||||
|
||||
eventErrChan, err := client.MonitorEvents(nil, client.eventStopChan)
|
||||
if err != nil {
|
||||
ec <- err
|
||||
return
|
||||
}
|
||||
|
||||
go func() {
|
||||
eventErrChan, err := client.MonitorEvents(nil, client.eventStopChan)
|
||||
if err != nil {
|
||||
ec <- err
|
||||
return
|
||||
}
|
||||
|
||||
for e := range eventErrChan {
|
||||
if e.Error != nil {
|
||||
ec <- err
|
||||
|
@ -381,26 +380,6 @@ func (client *DockerClient) StartMonitorEvents(cb Callback, ec chan error, args
|
|||
}()
|
||||
}
|
||||
|
||||
func (client *DockerClient) getEvents(cb Callback, ec chan error, args ...interface{}) {
|
||||
uri := fmt.Sprintf("%s/%s/events", client.URL.String(), APIVersion)
|
||||
resp, err := client.HTTPClient.Get(uri)
|
||||
if err != nil {
|
||||
ec <- err
|
||||
return
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
|
||||
dec := json.NewDecoder(resp.Body)
|
||||
for atomic.LoadInt32(&client.monitorEvents) > 0 {
|
||||
var event *Event
|
||||
if err := dec.Decode(&event); err != nil {
|
||||
ec <- err
|
||||
return
|
||||
}
|
||||
cb(event, ec, args...)
|
||||
}
|
||||
}
|
||||
|
||||
func (client *DockerClient) StopAllMonitorEvents() {
|
||||
client.eventStopChan <- struct{}{}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue