mirror of https://github.com/docker/docs.git
Implement OnGet
Signed-off-by: Aanand Prasad <aanand.prasad@gmail.com>
This commit is contained in:
parent
c1a78b28ec
commit
8e530ead6e
|
@ -134,7 +134,7 @@ func (b *dockerClientBackend) newContainer(id string) beam.Sender {
|
||||||
instance.OnVerb(beam.Attach, beam.Handler(c.attach))
|
instance.OnVerb(beam.Attach, beam.Handler(c.attach))
|
||||||
instance.OnStart(c.start)
|
instance.OnStart(c.start)
|
||||||
instance.OnStop(c.stop)
|
instance.OnStop(c.stop)
|
||||||
instance.OnVerb(beam.Get, beam.Handler(c.get))
|
instance.OnGet(c.get)
|
||||||
return instance
|
return instance
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -191,23 +191,20 @@ func (c *container) stop() error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *container) get(ctx *beam.Message) error {
|
func (c *container) get() (string, error) {
|
||||||
path := fmt.Sprintf("/containers/%s/json", c.id)
|
path := fmt.Sprintf("/containers/%s/json", c.id)
|
||||||
resp, err := c.backend.client.call("GET", path, "")
|
resp, err := c.backend.client.call("GET", path, "")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return "", err
|
||||||
}
|
}
|
||||||
respBody, err := ioutil.ReadAll(resp.Body)
|
respBody, err := ioutil.ReadAll(resp.Body)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return "", err
|
||||||
}
|
}
|
||||||
if resp.StatusCode != 200 {
|
if resp.StatusCode != 200 {
|
||||||
return fmt.Errorf("%s", respBody)
|
return "", fmt.Errorf("%s", respBody)
|
||||||
}
|
}
|
||||||
if _, err := ctx.Ret.Send(&beam.Message{Verb: beam.Set, Args: []string{string(respBody)}}); err != nil {
|
return string(respBody), nil
|
||||||
return err
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type client struct {
|
type client struct {
|
||||||
|
|
|
@ -49,6 +49,17 @@ func (s *Server) OnSpawn(h func(cmd ...string) (Sender, error)) *Server {
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *Server) OnGet(h func() (string, error)) *Server {
|
||||||
|
return s.OnVerb(Get, Handler(func(msg *Message) error {
|
||||||
|
content, err := h()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
_, err = msg.Ret.Send(&Message{Verb: Set, Args: []string{content}})
|
||||||
|
return err
|
||||||
|
}))
|
||||||
|
}
|
||||||
|
|
||||||
func (s *Server) OnStart(h func() error) *Server {
|
func (s *Server) OnStart(h func() error) *Server {
|
||||||
return s.OnVerb(Start, Handler(func(msg *Message) error {
|
return s.OnVerb(Start, Handler(func(msg *Message) error {
|
||||||
if err := h(); err != nil {
|
if err := h(); err != nil {
|
||||||
|
|
Loading…
Reference in New Issue