summaryrefslogtreecommitdiff
path: root/daemon/rename.go
diff options
context:
space:
mode:
authorSrini Brahmaroutu <sbrahma@us.ibm.com>2014-10-05 02:47:54 +0000
committerSrini Brahmaroutu <srbrahma@us.ibm.com>2015-01-13 03:27:17 +0000
commit21a809d9ae0ef8392f37c9262dca93ff31966e22 (patch)
tree57d1729d15fd880a529df6ff1ca0e9fff99f98be /daemon/rename.go
parent9b0072a7e63f560614fb9ba1b454b444cf4fe13e (diff)
downloaddocker-21a809d9ae0ef8392f37c9262dca93ff31966e22.tar.gz
rename a existing container
Closes #3036 Signed-off-by: Srini Brahmaroutu <srbrahma@us.ibm.com>
Diffstat (limited to 'daemon/rename.go')
-rw-r--r--daemon/rename.go30
1 files changed, 30 insertions, 0 deletions
diff --git a/daemon/rename.go b/daemon/rename.go
new file mode 100644
index 0000000000..9b030aad0e
--- /dev/null
+++ b/daemon/rename.go
@@ -0,0 +1,30 @@
+package daemon
+
+import (
+ "github.com/docker/docker/engine"
+)
+
+func (daemon *Daemon) ContainerRename(job *engine.Job) engine.Status {
+ if len(job.Args) != 2 {
+ return job.Errorf("usage: %s OLD_NAME NEW_NAME", job.Name)
+ }
+ old_name := job.Args[0]
+ new_name := job.Args[1]
+
+ container := daemon.Get(old_name)
+ if container == nil {
+ return job.Errorf("No such container: %s", old_name)
+ }
+
+ container.Lock()
+ defer container.Unlock()
+ if err := daemon.containerGraph.Delete(container.Name); err != nil {
+ return job.Errorf("Failed to delete container %q: %v", old_name, err)
+ }
+ if _, err := daemon.reserveName(container.ID, new_name); err != nil {
+ return job.Errorf("Error when allocating new name: %s", err)
+ }
+ container.Name = new_name
+
+ return engine.StatusOK
+}