Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 2 additions & 4 deletions cmd/podman/libpodruntime/runtime.go
Original file line number Diff line number Diff line change
Expand Up @@ -78,8 +78,6 @@ func getRuntime(ctx context.Context, c *cliconfig.PodmanCommand, renumber bool,
options = append(options, libpod.WithRenumber())
}

options = append(options, libpod.WithContext(ctx))

// Only set this if the user changes storage config on the command line
if storageSet {
options = append(options, libpod.WithStorageConfig(storageOpts))
Expand Down Expand Up @@ -146,7 +144,7 @@ func getRuntime(ctx context.Context, c *cliconfig.PodmanCommand, renumber bool,
options = append(options, libpod.WithDefaultInfraCommand(infraCommand))
}
if c.Flags().Changed("config") {
return libpod.NewRuntimeFromConfig(c.GlobalFlags.Config, options...)
return libpod.NewRuntimeFromConfig(ctx, c.GlobalFlags.Config, options...)
}
return libpod.NewRuntime(options...)
return libpod.NewRuntime(ctx, options...)
}
21 changes: 3 additions & 18 deletions libpod/options.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package libpod

import (
"context"
"net"
"os"
"path/filepath"
Expand Down Expand Up @@ -437,10 +436,9 @@ func WithRenumber() RuntimeOption {
}
}

// WithMigrate instructs libpod to perform a lock migrateing while
// initializing. This will handle migrations from early versions of libpod with
// file locks to newer versions with SHM locking, as well as changes in the
// number of configured locks.
// WithMigrate instructs libpod to migrate container configurations to account
// for changes between Libpod versions. All running containers will be stopped
// during a migration, then restarted after the migration is complete.
func WithMigrate() RuntimeOption {
return func(rt *Runtime) error {
if rt.valid {
Expand All @@ -467,19 +465,6 @@ func WithShmDir(dir string) CtrCreateOption {
}
}

// WithContext sets the context to use.
func WithContext(ctx context.Context) RuntimeOption {
return func(rt *Runtime) error {
if rt.valid {
return ErrRuntimeFinalized
}

rt.ctx = ctx

return nil
}
}

// WithSystemd turns on systemd mode in the container
func WithSystemd() CtrCreateOption {
return func(ctr *Container) error {
Expand Down
18 changes: 8 additions & 10 deletions libpod/runtime.go
Original file line number Diff line number Diff line change
Expand Up @@ -112,8 +112,6 @@ type Runtime struct {

// mechanism to read and write even logs
eventer events.Eventer

ctx context.Context
}

// OCIRuntimePath contains information about an OCI runtime.
Expand Down Expand Up @@ -353,23 +351,23 @@ func SetXdgRuntimeDir(val string) error {

// NewRuntime creates a new container runtime
// Options can be passed to override the default configuration for the runtime
func NewRuntime(options ...RuntimeOption) (runtime *Runtime, err error) {
return newRuntimeFromConfig("", options...)
func NewRuntime(ctx context.Context, options ...RuntimeOption) (runtime *Runtime, err error) {
return newRuntimeFromConfig(ctx, "", options...)
}

// NewRuntimeFromConfig creates a new container runtime using the given
// configuration file for its default configuration. Passed RuntimeOption
// functions can be used to mutate this configuration further.
// An error will be returned if the configuration file at the given path does
// not exist or cannot be loaded
func NewRuntimeFromConfig(userConfigPath string, options ...RuntimeOption) (runtime *Runtime, err error) {
func NewRuntimeFromConfig(ctx context.Context, userConfigPath string, options ...RuntimeOption) (runtime *Runtime, err error) {
if userConfigPath == "" {
return nil, errors.New("invalid configuration file specified")
}
return newRuntimeFromConfig(userConfigPath, options...)
return newRuntimeFromConfig(ctx, userConfigPath, options...)
}

func newRuntimeFromConfig(userConfigPath string, options ...RuntimeOption) (runtime *Runtime, err error) {
func newRuntimeFromConfig(ctx context.Context, userConfigPath string, options ...RuntimeOption) (runtime *Runtime, err error) {
runtime = new(Runtime)
runtime.config = new(RuntimeConfig)
runtime.configuredFrom = new(runtimeConfiguredFrom)
Expand Down Expand Up @@ -563,15 +561,15 @@ func newRuntimeFromConfig(userConfigPath string, options ...RuntimeOption) (runt
}
}
}
if err := makeRuntime(runtime); err != nil {
if err := makeRuntime(ctx, runtime); err != nil {
return nil, err
}
return runtime, nil
}

// Make a new runtime based on the given configuration
// Sets up containers/storage, state store, OCI runtime
func makeRuntime(runtime *Runtime) (err error) {
func makeRuntime(ctx context.Context, runtime *Runtime) (err error) {
// Backward compatibility for `runtime_path`
if runtime.config.RuntimePath != nil {
// Don't print twice in rootless mode.
Expand Down Expand Up @@ -980,7 +978,7 @@ func makeRuntime(runtime *Runtime) (err error) {
os.Exit(ret)
}
}
if err := runtime.migrate(); err != nil {
if err := runtime.migrate(ctx); err != nil {
return err
}
}
Expand Down
5 changes: 3 additions & 2 deletions libpod/runtime_migrate.go
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
package libpod

import (
"context"
"path/filepath"

"github.com/pkg/errors"
"github.com/sirupsen/logrus"
)

func (r *Runtime) migrate() error {
func (r *Runtime) migrate(ctx context.Context) error {
runningContainers, err := r.GetRunningContainers()
if err != nil {
return err
Expand Down Expand Up @@ -38,7 +39,7 @@ func (r *Runtime) migrate() error {
}

for _, ctr := range runningContainers {
if err := ctr.Start(r.ctx, true); err != nil {
if err := ctr.Start(ctx, true); err != nil {
logrus.Errorf("error restarting container %s", ctr.ID())
}
}
Expand Down