docker_cli_rename_test.go 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. package main
  2. import (
  3. "strings"
  4. "github.com/docker/docker/pkg/stringid"
  5. "github.com/go-check/check"
  6. )
  7. func (s *DockerSuite) TestRenameStoppedContainer(c *check.C) {
  8. out, _ := dockerCmd(c, "run", "--name", "first_name", "-d", "busybox", "sh")
  9. cleanedContainerID := strings.TrimSpace(out)
  10. dockerCmd(c, "wait", cleanedContainerID)
  11. name, err := inspectField(cleanedContainerID, "Name")
  12. newName := "new_name" + stringid.GenerateRandomID()
  13. dockerCmd(c, "rename", "first_name", newName)
  14. name, err = inspectField(cleanedContainerID, "Name")
  15. if err != nil {
  16. c.Fatal(err)
  17. }
  18. if name != "/"+newName {
  19. c.Fatal("Failed to rename container ", name)
  20. }
  21. }
  22. func (s *DockerSuite) TestRenameRunningContainer(c *check.C) {
  23. out, _ := dockerCmd(c, "run", "--name", "first_name", "-d", "busybox", "sh")
  24. newName := "new_name" + stringid.GenerateRandomID()
  25. cleanedContainerID := strings.TrimSpace(out)
  26. dockerCmd(c, "rename", "first_name", newName)
  27. name, err := inspectField(cleanedContainerID, "Name")
  28. if err != nil {
  29. c.Fatal(err)
  30. }
  31. if name != "/"+newName {
  32. c.Fatal("Failed to rename container ")
  33. }
  34. }
  35. func (s *DockerSuite) TestRenameCheckNames(c *check.C) {
  36. dockerCmd(c, "run", "--name", "first_name", "-d", "busybox", "sh")
  37. newName := "new_name" + stringid.GenerateRandomID()
  38. dockerCmd(c, "rename", "first_name", newName)
  39. name, err := inspectField(newName, "Name")
  40. if err != nil {
  41. c.Fatal(err)
  42. }
  43. if name != "/"+newName {
  44. c.Fatal("Failed to rename container ")
  45. }
  46. name, err = inspectField("first_name", "Name")
  47. if err == nil && !strings.Contains(err.Error(), "No such image or container: first_name") {
  48. c.Fatal(err)
  49. }
  50. }
  51. func (s *DockerSuite) TestRenameInvalidName(c *check.C) {
  52. dockerCmd(c, "run", "--name", "myname", "-d", "busybox", "top")
  53. if out, _, err := dockerCmdWithError(c, "rename", "myname", "new:invalid"); err == nil || !strings.Contains(out, "Invalid container name") {
  54. c.Fatalf("Renaming container to invalid name should have failed: %s\n%v", out, err)
  55. }
  56. if out, _, err := dockerCmdWithError(c, "ps", "-a"); err != nil || !strings.Contains(out, "myname") {
  57. c.Fatalf("Output of docker ps should have included 'myname': %s\n%v", out, err)
  58. }
  59. }