Add support for names with start command

This commit is contained in:
Michael Crosby
2013-10-01 00:22:09 -07:00
parent 2bae258bff
commit 018d3178e3
3 changed files with 15 additions and 3 deletions
+6
View File
@@ -15,6 +15,7 @@ import (
"mime"
"net"
"net/http"
"net/url"
"os"
"os/exec"
"regexp"
@@ -622,7 +623,12 @@ func postContainersStart(srv *Server, version float64, w http.ResponseWriter, r
if vars == nil {
return fmt.Errorf("Missing parameter")
}
var err error
name := vars["name"]
name, err = url.QueryUnescape(name)
if err != nil {
return err
}
if err := srv.ContainerStart(name, hostConfig); err != nil {
return err
}
+1
View File
@@ -558,6 +558,7 @@ func (cli *DockerCli) CmdStart(args ...string) error {
var encounteredError error
for _, name := range args {
name = strings.Replace(name, "/", "%252F", -1)
_, _, err := cli.call("POST", "/containers/"+name+"/start", nil)
if err != nil {
fmt.Fprintf(cli.err, "%s\n", err)
+8 -3
View File
@@ -67,10 +67,15 @@ func (runtime *Runtime) getContainerElement(id string) *list.Element {
// Get looks for a container by the specified ID or name, and returns it.
// If the container is not found, or if an error occurs, nil is returned.
func (runtime *Runtime) Get(name string) *Container {
if c, _ := runtime.GetByName(name); c != nil {
return c
}
id, err := runtime.idIndex.Get(name)
if err != nil {
return nil
}
e := runtime.getContainerElement(id)
if e == nil {
return nil
@@ -472,11 +477,11 @@ func (runtime *Runtime) GetByName(name string) (*Container, error) {
if entity == nil {
return nil, fmt.Errorf("Could not find entity for %s", name)
}
container := runtime.Get(entity.ID())
if container == nil {
e := runtime.getContainerElement(entity.ID())
if e == nil {
return nil, fmt.Errorf("Could not find container for entity id %s", entity.ID())
}
return container, nil
return e.Value.(*Container), nil
}
func (runtime *Runtime) Children(name string) (map[string]*Container, error) {