mirror of
https://github.com/containers/podman.git
synced 2025-09-09 21:52:21 +08:00
Restart all containers with restart-policy=always on boot
* Add podman-restart systemd unit file and add it to podman RPM package * Fix podman start to filter all containers + unit test Signed-off-by: Boaz Shuster <boaz.shuster.github@gmail.com>
This commit is contained in:
@ -696,7 +696,9 @@ func (ic *ContainerEngine) ContainerStart(ctx context.Context, namesOrIds []stri
|
||||
reports := []*entities.ContainerStartReport{}
|
||||
var exitCode = define.ExecErrorCodeGeneric
|
||||
containersNamesOrIds := namesOrIds
|
||||
all := options.All
|
||||
if len(options.Filters) > 0 {
|
||||
all = false
|
||||
filterFuncs := make([]libpod.ContainerFilter, 0, len(options.Filters))
|
||||
if len(options.Filters) > 0 {
|
||||
for k, v := range options.Filters {
|
||||
@ -713,6 +715,10 @@ func (ic *ContainerEngine) ContainerStart(ctx context.Context, namesOrIds []stri
|
||||
}
|
||||
containersNamesOrIds = []string{}
|
||||
for _, candidate := range candidates {
|
||||
if options.All {
|
||||
containersNamesOrIds = append(containersNamesOrIds, candidate.ID())
|
||||
continue
|
||||
}
|
||||
for _, nameOrID := range namesOrIds {
|
||||
if nameOrID == candidate.ID() || nameOrID == candidate.Name() {
|
||||
containersNamesOrIds = append(containersNamesOrIds, nameOrID)
|
||||
@ -720,8 +726,7 @@ func (ic *ContainerEngine) ContainerStart(ctx context.Context, namesOrIds []stri
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ctrs, rawInputs, err := getContainersAndInputByContext(options.All, options.Latest, containersNamesOrIds, ic.Libpod)
|
||||
ctrs, rawInputs, err := getContainersAndInputByContext(all, options.Latest, containersNamesOrIds, ic.Libpod)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
@ -508,7 +508,9 @@ func (ic *ContainerEngine) ContainerStart(ctx context.Context, namesOrIds []stri
|
||||
reports := []*entities.ContainerStartReport{}
|
||||
var exitCode = define.ExecErrorCodeGeneric
|
||||
containersNamesOrIds := namesOrIds
|
||||
all := options.All
|
||||
if len(options.Filters) > 0 {
|
||||
all = false
|
||||
containersNamesOrIds = []string{}
|
||||
opts := new(containers.ListOptions).WithFilters(options.Filters).WithAll(true)
|
||||
candidates, listErr := containers.List(ic.ClientCtx, opts)
|
||||
@ -516,6 +518,10 @@ func (ic *ContainerEngine) ContainerStart(ctx context.Context, namesOrIds []stri
|
||||
return nil, listErr
|
||||
}
|
||||
for _, candidate := range candidates {
|
||||
if options.All {
|
||||
containersNamesOrIds = append(containersNamesOrIds, candidate.ID)
|
||||
continue
|
||||
}
|
||||
for _, nameOrID := range namesOrIds {
|
||||
if nameOrID == candidate.ID {
|
||||
containersNamesOrIds = append(containersNamesOrIds, nameOrID)
|
||||
@ -530,7 +536,7 @@ func (ic *ContainerEngine) ContainerStart(ctx context.Context, namesOrIds []stri
|
||||
}
|
||||
}
|
||||
}
|
||||
ctrs, err := getContainersByContext(ic.ClientCtx, options.All, false, containersNamesOrIds)
|
||||
ctrs, err := getContainersByContext(ic.ClientCtx, all, false, containersNamesOrIds)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
Reference in New Issue
Block a user