|
@@ -58,32 +58,34 @@ func (daemon *Daemon) setupLinkedContainers(container *container.Container) ([]s
|
|
|
|
|
|
func (daemon *Daemon) getIpcContainer(container *container.Container) (*container.Container, error) {
|
|
|
containerID := container.HostConfig.IpcMode.Container()
|
|
|
- c, err := daemon.GetContainer(containerID)
|
|
|
+ container, err := daemon.GetContainer(containerID)
|
|
|
if err != nil {
|
|
|
- return nil, err
|
|
|
+ return nil, errors.Wrapf(err, "cannot join IPC of a non running container: %s", container.ID)
|
|
|
}
|
|
|
- if !c.IsRunning() {
|
|
|
- return nil, fmt.Errorf("cannot join IPC of a non running container: %s", containerID)
|
|
|
- }
|
|
|
- if c.IsRestarting() {
|
|
|
- return nil, errContainerIsRestarting(container.ID)
|
|
|
- }
|
|
|
- return c, nil
|
|
|
+ return container, daemon.checkContainer(container, containerIsRunning, containerIsNotRestarting)
|
|
|
}
|
|
|
|
|
|
func (daemon *Daemon) getPidContainer(container *container.Container) (*container.Container, error) {
|
|
|
containerID := container.HostConfig.PidMode.Container()
|
|
|
- c, err := daemon.GetContainer(containerID)
|
|
|
+ container, err := daemon.GetContainer(containerID)
|
|
|
if err != nil {
|
|
|
- return nil, err
|
|
|
+ return nil, errors.Wrapf(err, "cannot join PID of a non running container: %s", container.ID)
|
|
|
}
|
|
|
+ return container, daemon.checkContainer(container, containerIsRunning, containerIsNotRestarting)
|
|
|
+}
|
|
|
+
|
|
|
+func containerIsRunning(c *container.Container) error {
|
|
|
if !c.IsRunning() {
|
|
|
- return nil, fmt.Errorf("cannot join PID of a non running container: %s", containerID)
|
|
|
+ return errors.Errorf("container %s is not running", c.ID)
|
|
|
}
|
|
|
+ return nil
|
|
|
+}
|
|
|
+
|
|
|
+func containerIsNotRestarting(c *container.Container) error {
|
|
|
if c.IsRestarting() {
|
|
|
- return nil, errContainerIsRestarting(container.ID)
|
|
|
+ return errContainerIsRestarting(c.ID)
|
|
|
}
|
|
|
- return c, nil
|
|
|
+ return nil
|
|
|
}
|
|
|
|
|
|
func (daemon *Daemon) setupIpcDirs(c *container.Container) error {
|