mirror of
https://github.com/containers/podman.git
synced 2026-03-13 08:01:19 +08:00
Merge pull request #8828 from boaz0/closes_8779
Add --all to podman start
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
@@ -598,9 +602,9 @@ func (ic *ContainerEngine) ContainerStart(ctx context.Context, namesOrIds []stri
|
||||
reports = append(reports, &report)
|
||||
continue
|
||||
}
|
||||
report.ExitCode = 0
|
||||
reports = append(reports, &report)
|
||||
}
|
||||
report.ExitCode = 0
|
||||
reports = append(reports, &report)
|
||||
}
|
||||
return reports, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user