From a726a3d79c5bdda13fee2285222360a45e996272 Mon Sep 17 00:00:00 2001
From: Boaz Shuster <boaz.shuster.github@gmail.com>
Date: Thu, 21 Jan 2021 18:02:20 +0200
Subject: Add --all to podman start

Signed-off-by: Boaz Shuster <boaz.shuster.github@gmail.com>
Co-authored-by: Ed Santiago <santiago@redhat.com>
---
 pkg/domain/entities/containers.go     | 1 +
 pkg/domain/infra/abi/containers.go    | 7 +++++--
 pkg/domain/infra/tunnel/containers.go | 8 ++++++--
 3 files changed, 12 insertions(+), 4 deletions(-)

(limited to 'pkg')

diff --git a/pkg/domain/entities/containers.go b/pkg/domain/entities/containers.go
index 7d074f89d..4707ced85 100644
--- a/pkg/domain/entities/containers.go
+++ b/pkg/domain/entities/containers.go
@@ -265,6 +265,7 @@ type ContainerExistsOptions struct {
 // ContainerStartOptions describes the val from the
 // CLI needed to start a container
 type ContainerStartOptions struct {
+	All         bool
 	Attach      bool
 	DetachKeys  string
 	Interactive bool
diff --git a/pkg/domain/infra/abi/containers.go b/pkg/domain/infra/abi/containers.go
index 6f8845f10..82f2a2424 100644
--- a/pkg/domain/infra/abi/containers.go
+++ b/pkg/domain/infra/abi/containers.go
@@ -693,14 +693,17 @@ func (ic *ContainerEngine) ContainerExecDetached(ctx context.Context, nameOrID s
 func (ic *ContainerEngine) ContainerStart(ctx context.Context, namesOrIds []string, options entities.ContainerStartOptions) ([]*entities.ContainerStartReport, error) {
 	reports := []*entities.ContainerStartReport{}
 	var exitCode = define.ExecErrorCodeGeneric
-	ctrs, rawInputs, err := getContainersAndInputByContext(false, options.Latest, namesOrIds, ic.Libpod)
+	ctrs, rawInputs, err := getContainersAndInputByContext(options.All, options.Latest, namesOrIds, ic.Libpod)
 	if err != nil {
 		return nil, err
 	}
 	// There can only be one container if attach was used
 	for i := range ctrs {
 		ctr := ctrs[i]
-		rawInput := rawInputs[i]
+		rawInput := ctr.ID()
+		if !options.All {
+			rawInput = rawInputs[i]
+		}
 		ctrState, err := ctr.State()
 		if err != nil {
 			return nil, err
diff --git a/pkg/domain/infra/tunnel/containers.go b/pkg/domain/infra/tunnel/containers.go
index 4545d266b..de7f6f1d4 100644
--- a/pkg/domain/infra/tunnel/containers.go
+++ b/pkg/domain/infra/tunnel/containers.go
@@ -506,7 +506,7 @@ func startAndAttach(ic *ContainerEngine, name string, detachKeys *string, input,
 func (ic *ContainerEngine) ContainerStart(ctx context.Context, namesOrIds []string, options entities.ContainerStartOptions) ([]*entities.ContainerStartReport, error) {
 	reports := []*entities.ContainerStartReport{}
 	var exitCode = define.ExecErrorCodeGeneric
-	ctrs, err := getContainersByContext(ic.ClientCtx, false, false, namesOrIds)
+	ctrs, err := getContainersByContext(ic.ClientCtx, options.All, false, namesOrIds)
 	if err != nil {
 		return nil, err
 	}
@@ -514,9 +514,13 @@ func (ic *ContainerEngine) ContainerStart(ctx context.Context, namesOrIds []stri
 	// There can only be one container if attach was used
 	for i, ctr := range ctrs {
 		name := ctr.ID
+		rawInput := ctr.ID
+		if !options.All {
+			rawInput = namesOrIds[i]
+		}
 		report := entities.ContainerStartReport{
 			Id:       name,
-			RawInput: namesOrIds[i],
+			RawInput: rawInput,
 			ExitCode: exitCode,
 		}
 		ctrRunning := ctr.State == define.ContainerStateRunning.String()
-- 
cgit v1.2.3-54-g00ecf