Remove top level link command and endpoint

This commit is contained in:
Michael Crosby
2013-10-02 12:38:41 -07:00
parent a5dbb9a900
commit a32741b1c2
4 changed files with 10 additions and 125 deletions
-56
View File
@@ -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,
-7
View File
@@ -121,10 +121,3 @@ type APICopy struct {
Resource string
HostPath string
}
type APILink struct {
ID string
To string
From string
Alias string
}
-52
View File
@@ -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")
+10 -10
View File
@@ -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"])
}
}