spiegel_podman/pkg/domain/entities/containers.go
Daniel J Walsh fea78d5530
This PR allows users to remove external containers directly
Currenly if a user specifies the name or ID of an external storage
container, we report an error to them.

buildah from scratch
working-container-2
podman rm working-container-2
Error: no container with name or ID working-container-2 found: no such container

Since the user specified the correct name and the container is in storage we
force them to specify --storage to remove it. This is a bad experience for the
user.

This change will just remove the container from storage.  If the container
is known by libpod, it will remove the container from libpod as well.

The podman rm --storage option has been deprecated, and removed from docs.

Also cleaned documented options that are not available to podman-remote.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-10-09 06:06:08 -04:00

426 lines
8.7 KiB
Go

package entities
import (
"io"
"net/url"
"os"
"time"
"github.com/containers/image/v5/types"
"github.com/containers/podman/v2/libpod/define"
"github.com/containers/podman/v2/pkg/specgen"
"github.com/cri-o/ocicni/pkg/ocicni"
)
// ContainerRunlabelOptions are the options to execute container-runlabel.
type ContainerRunlabelOptions struct {
// Authfile - path to an authentication file.
Authfile string
// CertDir - path to a directory containing TLS certifications and
// keys.
CertDir string
// Credentials - `user:password` to use when pulling an image.
Credentials string
// Display - do not execute but print the command.
Display bool
// Replace - replace an existing container with a new one from the
// image.
Replace bool
// Name - use this name when executing the runlabel container.
Name string
// Optional1 - fist optional parameter for install.
Optional1 string
// Optional2 - second optional parameter for install.
Optional2 string
// Optional3 - third optional parameter for install.
Optional3 string
// Pull - pull the specified image if it's not in the local storage.
Pull bool
// Quiet - suppress output when pulling images.
Quiet bool
// SignaturePolicy - path to a signature-policy file.
SignaturePolicy string
// SkipTLSVerify - skip HTTPS and certificate verifications when
// contacting registries.
SkipTLSVerify types.OptionalBool
}
// ContainerRunlabelReport contains the results from executing container-runlabel.
type ContainerRunlabelReport struct {
}
type WaitOptions struct {
Condition define.ContainerStatus
Interval time.Duration
Latest bool
}
type WaitReport struct {
Id string //nolint
Error error
ExitCode int32
}
type BoolReport struct {
Value bool
}
// StringSliceReport wraps a string slice.
type StringSliceReport struct {
Value []string
}
type PauseUnPauseOptions struct {
All bool
}
type PauseUnpauseReport struct {
Err error
Id string //nolint
}
type StopOptions struct {
All bool
CIDFiles []string
Ignore bool
Latest bool
Timeout *uint
}
type StopReport struct {
Err error
Id string //nolint
}
type TopOptions struct {
// CLI flags.
ListDescriptors bool
Latest bool
// Options for the API.
Descriptors []string
NameOrID string
}
type KillOptions struct {
All bool
Latest bool
Signal string
}
type KillReport struct {
Err error
Id string //nolint
}
type RestartOptions struct {
All bool
Latest bool
Running bool
Timeout *uint
}
type RestartReport struct {
Err error
Id string //nolint
}
type RmOptions struct {
All bool
CIDFiles []string
Force bool
Ignore bool
Latest bool
Volumes bool
}
type RmReport struct {
Err error
Id string //nolint
}
type ContainerInspectReport struct {
*define.InspectContainerData
}
type CommitOptions struct {
Author string
Changes []string
Format string
ImageName string
IncludeVolumes bool
Message string
Pause bool
Quiet bool
Writer io.Writer
}
type CommitReport struct {
Id string //nolint
}
type ContainerExportOptions struct {
Output string
}
type CheckpointOptions struct {
All bool
Export string
IgnoreRootFS bool
Keep bool
Latest bool
LeaveRunning bool
TCPEstablished bool
}
type CheckpointReport struct {
Err error
Id string //nolint
}
type RestoreOptions struct {
All bool
IgnoreRootFS bool
IgnoreStaticIP bool
IgnoreStaticMAC bool
Import string
Keep bool
Latest bool
Name string
TCPEstablished bool
}
type RestoreReport struct {
Err error
Id string //nolint
}
type ContainerCreateReport struct {
Id string //nolint
}
// AttachOptions describes the cli and other values
// needed to perform an attach
type AttachOptions struct {
DetachKeys string
Latest bool
NoStdin bool
SigProxy bool
Stdin *os.File
Stdout *os.File
Stderr *os.File
}
// ContainerLogsOptions describes the options to extract container logs.
type ContainerLogsOptions struct {
// Show extra details provided to the logs.
Details bool
// Follow the log output.
Follow bool
// Display logs for the latest container only. Ignored on the remote client.
Latest bool
// Show container names in the output.
Names bool
// Show logs since this timestamp.
Since time.Time
// Number of lines to display at the end of the output.
Tail int64
// Show timestamps in the logs.
Timestamps bool
// Write the logs to Writer.
Writer io.Writer
}
// ExecOptions describes the cli values to exec into
// a container
type ExecOptions struct {
Cmd []string
DetachKeys string
Envs map[string]string
Interactive bool
Latest bool
PreserveFDs uint
Privileged bool
Tty bool
User string
WorkDir string
}
// ContainerStartOptions describes the val from the
// CLI needed to start a container
type ContainerStartOptions struct {
Attach bool
DetachKeys string
Interactive bool
Latest bool
SigProxy bool
Stdout *os.File
Stderr *os.File
Stdin *os.File
}
// ContainerStartReport describes the response from starting
// containers from the cli
type ContainerStartReport struct {
Id string //nolint
RawInput string
Err error
ExitCode int
}
// ContainerListOptions describes the CLI options
// for listing containers
type ContainerListOptions struct {
All bool
Filters map[string][]string
Format string
Last int
Latest bool
Namespace bool
Pod bool
Quiet bool
Size bool
Sort string
Storage bool
Sync bool
Watch uint
}
// ContainerRunOptions describes the options needed
// to run a container from the CLI
type ContainerRunOptions struct {
Detach bool
DetachKeys string
ErrorStream *os.File
InputStream *os.File
OutputStream *os.File
PreserveFDs uint
Rm bool
SigProxy bool
Spec *specgen.SpecGenerator
}
// ContainerRunReport describes the results of running
// a container
type ContainerRunReport struct {
ExitCode int
Id string //nolint
}
// ContainerCleanupOptions are the CLI values for the
// cleanup command
type ContainerCleanupOptions struct {
All bool
Exec string
Latest bool
Remove bool
RemoveImage bool
}
// ContainerCleanupReport describes the response from a
// container cleanup
type ContainerCleanupReport struct {
CleanErr error
Id string //nolint
RmErr error
RmiErr error
}
// ContainerInitOptions describes input options
// for the container init cli
type ContainerInitOptions struct {
All bool
Latest bool
}
// ContainerInitReport describes the results of a
// container init
type ContainerInitReport struct {
Err error
Id string //nolint
}
//ContainerMountOptions describes the input values for mounting containers
// in the CLI
type ContainerMountOptions struct {
All bool
Format string
Latest bool
NoTruncate bool
}
// ContainerUnmountOptions are the options from the cli for unmounting
type ContainerUnmountOptions struct {
All bool
Force bool
Latest bool
}
// ContainerMountReport describes the response from container mount
type ContainerMountReport struct {
Err error
Id string //nolint
Name string
Path string
}
// ContainerUnmountReport describes the response from umounting a container
type ContainerUnmountReport struct {
Err error
Id string //nolint
}
// ContainerPruneOptions describes the options needed
// to prune a container from the CLI
type ContainerPruneOptions struct {
Filters url.Values `json:"filters" schema:"filters"`
}
// ContainerPruneReport describes the results after pruning the
// stopped containers.
type ContainerPruneReport struct {
ID map[string]int64
Err map[string]error
}
// ContainerPortOptions describes the options to obtain
// port information on containers
type ContainerPortOptions struct {
All bool
Latest bool
}
// ContainerPortReport describes the output needed for
// the CLI to output ports
type ContainerPortReport struct {
Id string //nolint
Ports []ocicni.PortMapping
}
// ContainerCpOptions describes input options for cp
type ContainerCpOptions struct {
Pause bool
Extract bool
}
// ContainerCpReport describes the output from a cp operation
type ContainerCpReport struct {
}
// ContainerStatsOptions describes input options for getting
// stats on containers
type ContainerStatsOptions struct {
// Operate on the latest known container. Only supported for local
// clients.
Latest bool
// Stream stats.
Stream bool
}
// ContainerStatsReport is used for streaming container stats.
type ContainerStatsReport struct {
// Error from reading stats.
Error error
// Results, set when there is no error.
Stats []define.ContainerStats
}