mirror of
https://github.com/docker/compose.git
synced 2026-05-13 13:58:02 +00:00
refactor(compose): collapse resolveSharedNamespaces repeated blocks
Assisted-By: docker-agent Signed-off-by: Nicolas De loof <nicolas.deloof@gmail.com>
This commit is contained in:
parent
96cb057d04
commit
98163f5616
1 changed files with 13 additions and 23 deletions
|
|
@ -303,34 +303,24 @@ func (c *convergence) resolveVolumeFrom(service *types.ServiceConfig) error {
|
|||
}
|
||||
|
||||
func (c *convergence) resolveSharedNamespaces(service *types.ServiceConfig) error {
|
||||
str := service.NetworkMode
|
||||
if name := getDependentServiceFromMode(str); name != "" {
|
||||
dependencies := c.getObservedState(name)
|
||||
if len(dependencies) == 0 {
|
||||
return fmt.Errorf("cannot share network namespace with service %s: container missing", name)
|
||||
resolve := func(field *string, noun string) error {
|
||||
if name := getDependentServiceFromMode(*field); name != "" {
|
||||
dependencies := c.getObservedState(name)
|
||||
if len(dependencies) == 0 {
|
||||
return fmt.Errorf("cannot share %s namespace with service %s: container missing", noun, name)
|
||||
}
|
||||
*field = types.ContainerPrefix + dependencies.sorted()[0].ID
|
||||
}
|
||||
service.NetworkMode = types.ContainerPrefix + dependencies.sorted()[0].ID
|
||||
return nil
|
||||
}
|
||||
|
||||
str = service.Ipc
|
||||
if name := getDependentServiceFromMode(str); name != "" {
|
||||
dependencies := c.getObservedState(name)
|
||||
if len(dependencies) == 0 {
|
||||
return fmt.Errorf("cannot share IPC namespace with service %s: container missing", name)
|
||||
}
|
||||
service.Ipc = types.ContainerPrefix + dependencies.sorted()[0].ID
|
||||
if err := resolve(&service.NetworkMode, "network"); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
str = service.Pid
|
||||
if name := getDependentServiceFromMode(str); name != "" {
|
||||
dependencies := c.getObservedState(name)
|
||||
if len(dependencies) == 0 {
|
||||
return fmt.Errorf("cannot share PID namespace with service %s: container missing", name)
|
||||
}
|
||||
service.Pid = types.ContainerPrefix + dependencies.sorted()[0].ID
|
||||
if err := resolve(&service.Ipc, "IPC"); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
return resolve(&service.Pid, "PID")
|
||||
}
|
||||
|
||||
func (c *convergence) mustRecreate(expected types.ServiceConfig, actual container.Summary, policy string) (bool, error) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue