mirror of
https://github.com/containers/podman.git
synced 2025-10-15 02:06:42 +08:00
Add structure for new exec session tracking to DB
As part of the rework of exec sessions, we need to address them independently of containers. In the new API, we need to be able to fetch them by their ID, regardless of what container they are associated with. Unfortunately, our existing exec sessions are tied to individual containers; there's no way to tell what container a session belongs to and retrieve it without getting every exec session for every container. This adds a pointer to the container an exec session is associated with to the database. The sessions themselves are still stored in the container. Exec-related APIs have been restructured to work with the new database representation. The originally monolithic API has been split into a number of smaller calls to allow more fine-grained control of lifecycle. Support for legacy exec sessions has been retained, but in a deprecated fashion; we should remove this in a few releases. Signed-off-by: Matthew Heon <matthew.heon@pm.me>
This commit is contained in:
@ -20,6 +20,10 @@ var (
|
||||
// ErrNoSuchVolume indicates the requested volume does not exist
|
||||
ErrNoSuchVolume = errors.New("no such volume")
|
||||
|
||||
// ErrNoSuchExecSession indicates that the requested exec session does
|
||||
// not exist.
|
||||
ErrNoSuchExecSession = errors.New("no such exec session")
|
||||
|
||||
// ErrCtrExists indicates a container with the same name or ID already
|
||||
// exists
|
||||
ErrCtrExists = errors.New("container already exists")
|
||||
@ -29,10 +33,16 @@ var (
|
||||
ErrImageExists = errors.New("image already exists")
|
||||
// ErrVolumeExists indicates a volume with the same name already exists
|
||||
ErrVolumeExists = errors.New("volume already exists")
|
||||
// ErrExecSessionExists indicates an exec session with the same ID
|
||||
// already exists.
|
||||
ErrExecSessionExists = errors.New("exec session already exists")
|
||||
|
||||
// ErrCtrStateInvalid indicates a container is in an improper state for
|
||||
// the requested operation
|
||||
ErrCtrStateInvalid = errors.New("container state improper")
|
||||
// ErrExecSessionStateInvalid indicates that an exec session is in an
|
||||
// improper state for the requested operation
|
||||
ErrExecSessionStateInvalid = errors.New("exec session state improper")
|
||||
// ErrVolumeBeingUsed indicates that a volume is being used by at least one container
|
||||
ErrVolumeBeingUsed = errors.New("volume is being used")
|
||||
|
||||
@ -90,6 +100,9 @@ var (
|
||||
// ErrVolumeRemoved indicates that the volume has already been removed and
|
||||
// no further operations can be performed on it
|
||||
ErrVolumeRemoved = errors.New("volume has already been removed")
|
||||
// ErrExecSessionRemoved indicates that the exec session has already
|
||||
// been removed and no further operations can be performed on it.
|
||||
ErrExecSessionRemoved = errors.New("exec session has already been removed")
|
||||
|
||||
// ErrDBClosed indicates that the connection to the state database has
|
||||
// already been closed
|
||||
|
Reference in New Issue
Block a user