diff options
author | Srini Brahmaroutu <sbrahma@us.ibm.com> | 2014-10-05 02:47:54 +0000 |
---|---|---|
committer | Srini Brahmaroutu <srbrahma@us.ibm.com> | 2015-01-13 03:27:17 +0000 |
commit | 21a809d9ae0ef8392f37c9262dca93ff31966e22 (patch) | |
tree | 57d1729d15fd880a529df6ff1ca0e9fff99f98be /daemon/rename.go | |
parent | 9b0072a7e63f560614fb9ba1b454b444cf4fe13e (diff) | |
download | docker-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.go | 30 |
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 +} |