浏览代码

fix cyclomatic complexity of composeService.waitDependencies function

Signed-off-by: Guillaume Lours <[email protected]>
Guillaume Lours 3 年之前
父节点
当前提交
64a9e4bf01
共有 1 个文件被更改,包括 16 次插入7 次删除
  1. 16 7
      pkg/compose/convergence.go

+ 16 - 7
pkg/compose/convergence.go

@@ -276,14 +276,9 @@ func (s *composeService) waitDependencies(ctx context.Context, project *types.Pr
 	eg, _ := errgroup.WithContext(ctx)
 	w := progress.ContextWriter(ctx)
 	for dep, config := range dependencies {
-		if config.Condition == types.ServiceConditionStarted {
-			// already managed by InDependencyOrder
-			continue
-		}
-		if service, err := project.GetService(dep); err != nil {
+		if shouldWait, err := shouldWaitForDependency(dep, config, project); err != nil {
 			return err
-		} else if service.Scale == 0 {
-			// don't wait for the dependency which configured to have 0 containers running
+		} else if !shouldWait {
 			continue
 		}
 
@@ -340,6 +335,20 @@ func (s *composeService) waitDependencies(ctx context.Context, project *types.Pr
 	return eg.Wait()
 }
 
+func shouldWaitForDependency(serviceName string, dependencyConfig types.ServiceDependency, project *types.Project) (bool, error) {
+	if dependencyConfig.Condition == types.ServiceConditionStarted {
+		// already managed by InDependencyOrder
+		return false, nil
+	}
+	if service, err := project.GetService(serviceName); err != nil {
+		return false, err
+	} else if service.Scale == 0 {
+		// don't wait for the dependency which configured to have 0 containers running
+		return false, nil
+	}
+	return true, nil
+}
+
 func nextContainerNumber(containers []moby.Container) (int, error) {
 	max := 0
 	for _, c := range containers {