diff --git a/api.go b/api.go index d602715c9..f7587fc83 100644 --- a/api.go +++ b/api.go @@ -957,61 +957,6 @@ func writeCorsHeaders(w http.ResponseWriter, r *http.Request) { w.Header().Add("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT, OPTIONS") } -func getLinksJSON(srv *Server, version float64, w http.ResponseWriter, r *http.Request, vars map[string]string) error { - out := []APILink{} - name := r.FormValue("name") - rawRm := r.FormValue("rm") - rawAll := r.FormValue("all") - - rm, err := getBoolParam(rawRm) - if err != nil { - return err - } - all, err := getBoolParam(rawAll) - if err != nil { - return err - } - - if rm { - link := srv.runtime.links.GetById(name) - if link != nil { - if err := srv.runtime.links.removeLink(link); err != nil { - return err - } - w.WriteHeader(http.StatusOK) - return nil - } - w.WriteHeader(http.StatusNotFound) - return nil - } - var links []*Link - if all { - links = srv.runtime.links.GetAll() - } else { - if name == "" { - return fmt.Errorf("Name cannot be empty for link") - } - container := srv.runtime.Get(name) - if container == nil { - return fmt.Errorf("Container not found %s", name) - } - links = srv.runtime.links.Get(container) - } - - for _, l := range links { - out = append(out, APILink{ - ID: l.ID(), - To: l.ToID, - From: l.FromID, - Alias: l.Alias, - }) - } - - w.Header().Add("Content-Type", "application/json") - writeJSON(w, http.StatusOK, out) - return nil -} - func makeHttpHandler(srv *Server, logging bool, localMethod string, localRoute string, handlerFunc HttpApiFunc) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { // log the request @@ -1067,7 +1012,6 @@ func createRouter(srv *Server, logging bool) (*mux.Router, error) { "/containers/{name:.*}/json": getContainersByName, "/containers/{name:.*}/top": getContainersTop, "/containers/{name:.*}/attach/ws": wsContainersAttach, - "/links/json": getLinksJSON, }, "POST": { "/auth": postAuth, diff --git a/api_params.go b/api_params.go index e036f34cc..cfa339b76 100644 --- a/api_params.go +++ b/api_params.go @@ -121,10 +121,3 @@ type APICopy struct { Resource string HostPath string } - -type APILink struct { - ID string - To string - From string - Alias string -} diff --git a/commands.go b/commands.go index fe18257ba..7b5eb1055 100644 --- a/commands.go +++ b/commands.go @@ -96,7 +96,6 @@ func (cli *DockerCli) CmdHelp(args ...string) error { {"insert", "Insert a file in an image"}, {"inspect", "Return low-level information on a container"}, {"kill", "Kill a running container"}, - {"links", "View and modify links to running containers"}, {"login", "Register or Login to the docker registry server"}, {"logs", "Fetch the logs of a container"}, {"port", "Lookup the public-facing port which is NAT-ed to PRIVATE_PORT"}, @@ -1113,57 +1112,6 @@ func (cli *DockerCli) CmdPs(args ...string) error { return nil } -func (cli *DockerCli) CmdLinks(args ...string) error { - cmd := Subcmd("links", "[OPTIONS] CONTAINER", "Get the links for a container") - flRm := cmd.Bool("rm", false, "Remove an existing link by the link ID") - flAll := cmd.Bool("a", false, "Display all registered and active links") - - if err := cmd.Parse(args); err != nil { - return err - } - - if cmd.NArg() < 1 && !*flAll { - cmd.Usage() - return nil - } - - v := url.Values{} - v.Set("name", cmd.Arg(0)) - - if *flRm { - v.Set("rm", "1") - } - - if *flAll { - v.Set("all", "1") - } - - body, statusCode, err := cli.call("GET", "/links/json?"+v.Encode(), nil) - if err != nil { - return err - } - - if *flRm && statusCode == 200 { - fmt.Printf("Link successfully removed: %s\n", cmd.Arg(0)) - return nil - } - - var links []APILink - if err := json.Unmarshal(body, &links); err != nil { - return err - } - w := tabwriter.NewWriter(cli.out, 20, 1, 3, ' ', 0) - - fmt.Fprintf(w, "ID\tFROM\tTO\tALIAS") - fmt.Fprintf(w, "\n") - for _, l := range links { - fmt.Fprintf(w, "%s\t%s\t%s\t%s", l.ID, l.From, l.To, l.Alias) - fmt.Fprintf(w, "\n") - } - w.Flush() - return nil -} - func (cli *DockerCli) CmdCommit(args ...string) error { cmd := Subcmd("commit", "[OPTIONS] CONTAINER [REPOSITORY [TAG]]", "Create a new image from a container's changes") flComment := cmd.String("m", "", "Commit message") diff --git a/links_test.go b/links_test.go index f7d0c7a16..fd9873948 100644 --- a/links_test.go +++ b/links_test.go @@ -49,10 +49,10 @@ func TestLinkNew(t *testing.T) { if link == nil { t.FailNow() } - if link.ID() != fmt.Sprintf("%s:%s", utils.TruncateID(to.ID), "DOCKER") { + if link.ID() != fmt.Sprintf("%s:%s", utils.TruncateID(to.ID), "docker") { t.Fail() } - if link.Alias != "DOCKER" { + if link.Alias != "docker" { t.Fail() } if link.FromID != utils.TruncateID(from.ID) { @@ -107,16 +107,16 @@ func TestLinkEnv(t *testing.T) { } env[parts[0]] = parts[1] } - if env["DOCKER_PORT"] != "tcp://172.0.17.2:6379" { - t.Fail() + if env["docker_PORT"] != "tcp://172.0.17.2:6379" { + t.Fatalf("Expected tcp://172.0.17.2:6379, got %s", env["docker_PORT"]) } - if env["DOCKER_PORT_6379_TCP"] != "tcp://172.0.17.2:6379" { - t.Fail() + if env["docker_PORT_6379_tcp"] != "tcp://172.0.17.2:6379" { + t.Fatalf("Expected tcp://172.0.17.2:6379, got %s", env["docker_PORT_6379_tcp"]) } - if env["DOCKER_ID"] != utils.TruncateID(from.ID) { - t.Fail() + if env["docker_ID"] != utils.TruncateID(from.ID) { + t.Fatalf("Expected %s, got %s", utils.TruncateID(from.ID), env["docker_ID"]) } - if env["DOCKER_ENV_PASSWORD"] != "gordon" { - t.Fail() + if env["docker_ENV_PASSWORD"] != "gordon" { + t.Fatalf("Expected gordon, got %s", env["docker_ENV_PASSWORD"]) } }