Merge pull request #16011 from vrothberg/lint

bump golangci-lint to v1.49.0
This commit is contained in:
OpenShift Merge Robot
2022-10-17 06:17:34 -04:00
committed by GitHub
49 changed files with 397 additions and 259 deletions

View File

@ -14,6 +14,7 @@ linters:
disable:
# All these break for one reason or another
- tagliatelle # too many JSON keys cannot be changed due to compat
- nosnakecase # too many false positives due to the `unix` package
- gocognit
- testpackage
- goerr113

View File

@ -866,7 +866,7 @@ install.tools: .install.ginkgo .install.golangci-lint .install.swagger ## Instal
.PHONY: .install.golangci-lint
.install.golangci-lint:
VERSION=1.46.2 ./hack/install_golangci.sh
VERSION=1.49.0 ./hack/install_golangci.sh
.PHONY: .install.swagger
.install.swagger:

View File

@ -50,6 +50,7 @@ func (c *Car) Color() string {
}
// This is for reflect testing required.
//
//nolint:unused
func (c Car) internal() int {
return 0

View File

@ -25,7 +25,9 @@ func (o OutputErrors) PrintErrors() (lastError error) {
return
}
/* For remote client, server does not returns error with exit code
/*
For remote client, server does not returns error with exit code
instead returns a message and we cast it to a new error.
Following function performs parsing on build error and returns

View File

@ -14,6 +14,7 @@ type ChoiceValue struct {
// Value may be used in cobra FlagSet methods Var/VarP/VarPF() to select from a set of values
//
// Example:
//
// created := validate.ChoiceValue(&opts.Sort, "command", "created", "id", "image", "names", "runningfor", "size", "status")
// flags.Var(created, "sort", "Sort output by: "+created.Choices())
func Value(p *string, choices ...string) *ChoiceValue {

View File

@ -265,6 +265,7 @@ type HealthCheckLog struct {
// as possible from the spec and container config.
// Some things cannot be inferred. These will be populated by spec annotations
// (if available).
//
//nolint:revive,stylecheck // Field names are fixed for compatibility and cannot be changed.
type InspectContainerHostConfig struct {
// Binds contains an array of user-added mounts.

View File

@ -29,7 +29,7 @@ var (
// SHMLocks is a struct enabling POSIX semaphore locking in a shared memory
// segment.
type SHMLocks struct {
type SHMLocks struct { //nolint:revive // linter complains about stutter
lockStruct *C.shm_struct_t
maxLocks uint32
valid bool

View File

@ -16,7 +16,7 @@ import (
// The code calling the OCIRuntime will manage this.
// TODO: May want to move the conmon cleanup code here - it depends on
// Conmon being in use.
type OCIRuntime interface {
type OCIRuntime interface { //nolint:interfacebloat
// Name returns the name of the runtime.
Name() string
// Path returns the path to the runtime executable.

View File

@ -103,17 +103,28 @@ func (r *ConmonOCIRuntime) Attach(c *Container, params *AttachOptions) error {
return readStdio(conn, params.Streams, receiveStdoutError, stdinDone)
}
// Attach to the given container's exec session
// attachFd and startFd must be open file descriptors
// attachFd must be the output side of the fd. attachFd is used for two things:
// conmon will first send a nonce value across the pipe indicating it has set up its side of the console socket
// this ensures attachToExec gets all of the output of the called process
// conmon will then send the exit code of the exec process, or an error in the exec session
// Attach to the given container's exec session.
//
// attachFd and startFd must be open file descriptors. attachFd must be the
// output side of the fd and is used for two things:
//
// 1. conmon will first send a nonce value across the pipe indicating it has
// set up its side of the console socket this ensures attachToExec gets all of
// the output of the called process.
//
// 2. conmon will then send the exit code of the exec process, or an error in the exec session.
//
// startFd must be the input side of the fd.
// newSize resizes the tty to this size before the process is started, must be nil if the exec session has no tty
//
// newSize resizes the tty to this size before the process is started, must be
// nil if the exec session has no tty
//
// conmon will wait to start the exec session until the parent process has set up the console socket.
// Once attachToExec successfully attaches to the console socket, the child conmon process responsible for calling runtime exec
// will read from the output side of start fd, thus learning to start the child process.
//
// Once attachToExec successfully attaches to the console socket, the child
// conmon process responsible for calling runtime exec will read from the
// output side of start fd, thus learning to start the child process.
//
// Thus, the order goes as follow:
// 1. conmon parent process sets up its console socket. sends on attachFd
// 2. attachToExec attaches to the console socket after reading on attachFd and resizes the tty

View File

@ -1317,7 +1317,7 @@ func (r *ConmonOCIRuntime) sharedConmonArgs(ctr *Container, cuuid, bundlePath, p
case define.PassthroughLogging:
logDriverArg = define.PassthroughLogging
//lint:ignore ST1015 the default case has to be here
default: //nolint:stylecheck,gocritic
default: //nolint:gocritic
// No case here should happen except JSONLogging, but keep this here in case the options are extended
logrus.Errorf("%s logging specified but not supported. Choosing k8s-file logging instead", ctr.LogDriver())
fallthrough

View File

@ -74,7 +74,7 @@ type activateResponse struct {
func validatePlugin(newPlugin *VolumePlugin) error {
// It's a socket. Is it a plugin?
// Hit the Activate endpoint to find out if it is, and if so what kind
req, err := http.NewRequest("POST", "http://plugin"+activatePath, nil)
req, err := http.NewRequest(http.MethodPost, "http://plugin"+activatePath, nil)
if err != nil {
return fmt.Errorf("making request to volume plugin %s activation endpoint: %w", newPlugin.Name, err)
}
@ -90,7 +90,7 @@ func validatePlugin(newPlugin *VolumePlugin) error {
// Response code MUST be 200. Anything else, we have to assume it's not
// a valid plugin.
if resp.StatusCode != 200 {
if resp.StatusCode != http.StatusOK {
return fmt.Errorf("got status code %d from activation endpoint for plugin %s: %w", resp.StatusCode, newPlugin.Name, ErrNotPlugin)
}
@ -216,7 +216,7 @@ func (p *VolumePlugin) sendRequest(toJSON interface{}, endpoint string) (*http.R
}
}
req, err := http.NewRequest("POST", "http://plugin"+endpoint, bytes.NewReader(reqJSON))
req, err := http.NewRequest(http.MethodPost, "http://plugin"+endpoint, bytes.NewReader(reqJSON))
if err != nil {
return nil, fmt.Errorf("making request to volume plugin %s endpoint %s: %w", p.Name, endpoint, err)
}
@ -251,7 +251,7 @@ func (p *VolumePlugin) handleErrorResponse(resp *http.Response, endpoint, volNam
// errors, but I don't think we can guarantee all plugins do that.
// Let's interpret anything other than 200 as an error.
// If there isn't an error, don't even bother decoding the response.
if resp.StatusCode != 200 {
if resp.StatusCode != http.StatusOK {
errResp, err := io.ReadAll(resp.Body)
if err != nil {
return fmt.Errorf("reading response body from volume plugin %s: %w", p.Name, err)

View File

@ -15,7 +15,7 @@ import "github.com/containers/common/libnetwork/types"
// retrieved after they are pulled from the database.
// Generally speaking, the syncContainer() call should be run at the beginning
// of all API operations, which will silently handle this.
type State interface {
type State interface { //nolint:interfacebloat
// Close performs any pre-exit cleanup (e.g. closing database
// connections) that may be required
Close() error

View File

@ -29,6 +29,7 @@ func NewAPIDecoder() *schema.Decoder {
}
// On client:
//
// v := map[string][]string{
// "dangling": {"true"},
// }

View File

@ -5,7 +5,6 @@
// - models.go: declares the models used in API requests.
// - responses.go: declares the responses used in the API responses.
//
//
// Notes:
// 1. As a developer of the Podman API, you are responsible for maintaining the associations between
// these models and responses, and the handler code.
@ -13,5 +12,4 @@
// Most are because embedded structs have been discovered but not used in the API declarations.
// 3. Response and model references that are exported (start with upper-case letter) imply that they
// exist outside this package and should be found in the entities package.
//
package swagger

View File

@ -69,7 +69,7 @@ func WaitContainerDocker(w http.ResponseWriter, r *http.Request) {
// In docker compatibility mode we have to send headers in advance,
// otherwise docker client would freeze.
w.Header().Set("Content-Type", "application/json")
w.WriteHeader(200)
w.WriteHeader(http.StatusOK)
if flusher, ok := w.(http.Flusher); ok {
flusher.Flush()
}

View File

@ -12,7 +12,7 @@ import (
)
func TestSupportedVersion(t *testing.T) {
req, err := http.NewRequest("GET",
req, err := http.NewRequest(http.MethodGet,
fmt.Sprintf("/v%s/libpod/testing/versions", version.APIVersion[version.Libpod][version.CurrentAPI]),
nil)
if err != nil {
@ -55,7 +55,7 @@ func TestSupportedVersion(t *testing.T) {
func TestUnsupportedVersion(t *testing.T) {
version := "999.999.999"
req, err := http.NewRequest("GET",
req, err := http.NewRequest(http.MethodGet,
fmt.Sprintf("/v%s/libpod/testing/versions", version),
nil)
if err != nil {
@ -98,7 +98,7 @@ func TestUnsupportedVersion(t *testing.T) {
func TestEqualVersion(t *testing.T) {
version := "1.30.0"
req, err := http.NewRequest("GET",
req, err := http.NewRequest(http.MethodGet,
fmt.Sprintf("/v%s/libpod/testing/versions", version),
nil)
if err != nil {

View File

@ -8,6 +8,7 @@ import (
)
// ListenUnix follows stdlib net.Listen() API, providing a unix listener for given path
//
// ListenUnix will delete and create files/directories as needed
func ListenUnix(network string, path string) (net.Listener, error) {
// set up custom listener for API server

View File

@ -7,9 +7,10 @@ import (
"github.com/containers/podman/v4/libpod/define"
)
//go:generate go run ../generator/generator.go LogOptions
// LogOptions describe finer control of log content or
// how the content is formatted.
//
//go:generate go run ../generator/generator.go LogOptions
type LogOptions struct {
Follow *bool
Since *string
@ -20,10 +21,11 @@ type LogOptions struct {
Until *string
}
//go:generate go run ../generator/generator.go CommitOptions
// CommitOptions describe details about the resulting committed
// image as defined by repo and tag. None of these options
// are required.
//
//go:generate go run ../generator/generator.go CommitOptions
type CommitOptions struct {
Author *string
Changes []string
@ -35,16 +37,18 @@ type CommitOptions struct {
Tag *string
}
//go:generate go run ../generator/generator.go AttachOptions
// AttachOptions are optional options for attaching to containers
//
//go:generate go run ../generator/generator.go AttachOptions
type AttachOptions struct {
DetachKeys *string // Keys to detach from running container
Logs *bool // Flag to return all logs from container when true
Stream *bool // Flag only return container logs when false and Logs is true
}
//go:generate go run ../generator/generator.go CheckpointOptions
// CheckpointOptions are optional options for checkpointing containers
//
//go:generate go run ../generator/generator.go CheckpointOptions
type CheckpointOptions struct {
Export *string
CreateImage *string
@ -58,8 +62,9 @@ type CheckpointOptions struct {
FileLocks *bool
}
//go:generate go run ../generator/generator.go RestoreOptions
// RestoreOptions are optional options for restoring containers
//
//go:generate go run ../generator/generator.go RestoreOptions
type RestoreOptions struct {
IgnoreRootfs *bool
IgnoreVolumes *bool
@ -82,12 +87,14 @@ type RestoreOptions struct {
FileLocks *bool
}
//go:generate go run ../generator/generator.go CreateOptions
// CreateOptions are optional options for creating containers
//
//go:generate go run ../generator/generator.go CreateOptions
type CreateOptions struct{}
//go:generate go run ../generator/generator.go DiffOptions
// DiffOptions are optional options for creating containers
//
//go:generate go run ../generator/generator.go DiffOptions
type DiffOptions struct {
// By the default diff will compare against the parent layer. Change the Parent if you want to compare against something else.
Parent *string
@ -95,39 +102,46 @@ type DiffOptions struct {
DiffType *string
}
//go:generate go run ../generator/generator.go ExecInspectOptions
// ExecInspectOptions are optional options for inspecting
// exec sessions
//
//go:generate go run ../generator/generator.go ExecInspectOptions
type ExecInspectOptions struct{}
//go:generate go run ../generator/generator.go ExecStartOptions
// ExecStartOptions are optional options for starting
// exec sessions
//
//go:generate go run ../generator/generator.go ExecStartOptions
type ExecStartOptions struct {
}
//go:generate go run ../generator/generator.go HealthCheckOptions
// HealthCheckOptions are optional options for checking
// the health of a container
//
//go:generate go run ../generator/generator.go HealthCheckOptions
type HealthCheckOptions struct{}
//go:generate go run ../generator/generator.go MountOptions
// MountOptions are optional options for mounting
// containers
//
//go:generate go run ../generator/generator.go MountOptions
type MountOptions struct{}
//go:generate go run ../generator/generator.go UnmountOptions
// UnmountOptions are optional options for unmounting
// containers
//
//go:generate go run ../generator/generator.go UnmountOptions
type UnmountOptions struct{}
//go:generate go run ../generator/generator.go MountedContainerPathsOptions
// MountedContainerPathsOptions are optional options for getting
// container mount paths
//
//go:generate go run ../generator/generator.go MountedContainerPathsOptions
type MountedContainerPathsOptions struct{}
//go:generate go run ../generator/generator.go ListOptions
// ListOptions are optional options for listing containers
//
//go:generate go run ../generator/generator.go ListOptions
type ListOptions struct {
All *bool
External *bool
@ -138,14 +152,16 @@ type ListOptions struct {
Sync *bool
}
//go:generate go run ../generator/generator.go PruneOptions
// PruneOptions are optional options for pruning containers
//
//go:generate go run ../generator/generator.go PruneOptions
type PruneOptions struct {
Filters map[string][]string
}
//go:generate go run ../generator/generator.go RemoveOptions
// RemoveOptions are optional options for removing containers
//
//go:generate go run ../generator/generator.go RemoveOptions
type RemoveOptions struct {
Depend *bool
Ignore *bool
@ -154,106 +170,123 @@ type RemoveOptions struct {
Timeout *uint
}
//go:generate go run ../generator/generator.go InspectOptions
// InspectOptions are optional options for inspecting containers
//
//go:generate go run ../generator/generator.go InspectOptions
type InspectOptions struct {
Size *bool
}
//go:generate go run ../generator/generator.go KillOptions
// KillOptions are optional options for killing containers
//
//go:generate go run ../generator/generator.go KillOptions
type KillOptions struct {
Signal *string
}
//go:generate go run ../generator/generator.go PauseOptions
// PauseOptions are optional options for pausing containers
//
//go:generate go run ../generator/generator.go PauseOptions
type PauseOptions struct{}
//go:generate go run ../generator/generator.go RestartOptions
// RestartOptions are optional options for restarting containers
//
//go:generate go run ../generator/generator.go RestartOptions
type RestartOptions struct {
Timeout *int
}
//go:generate go run ../generator/generator.go StartOptions
// StartOptions are optional options for starting containers
//
//go:generate go run ../generator/generator.go StartOptions
type StartOptions struct {
DetachKeys *string
Recursive *bool
}
//go:generate go run ../generator/generator.go StatsOptions
// StatsOptions are optional options for getting stats on containers
//
//go:generate go run ../generator/generator.go StatsOptions
type StatsOptions struct {
Stream *bool
Interval *int
}
//go:generate go run ../generator/generator.go TopOptions
// TopOptions are optional options for getting running
// processes in containers
//
//go:generate go run ../generator/generator.go TopOptions
type TopOptions struct {
Descriptors *[]string
}
//go:generate go run ../generator/generator.go UnpauseOptions
// UnpauseOptions are optional options for unpausing containers
//
//go:generate go run ../generator/generator.go UnpauseOptions
type UnpauseOptions struct{}
//go:generate go run ../generator/generator.go WaitOptions
// WaitOptions are optional options for waiting on containers
//
//go:generate go run ../generator/generator.go WaitOptions
type WaitOptions struct {
Condition []define.ContainerStatus
Interval *string
}
//go:generate go run ../generator/generator.go StopOptions
// StopOptions are optional options for stopping containers
//
//go:generate go run ../generator/generator.go StopOptions
type StopOptions struct {
Ignore *bool
Timeout *uint
}
//go:generate go run ../generator/generator.go ExportOptions
// ExportOptions are optional options for exporting containers
//
//go:generate go run ../generator/generator.go ExportOptions
type ExportOptions struct{}
//go:generate go run ../generator/generator.go InitOptions
// InitOptions are optional options for initing containers
//
//go:generate go run ../generator/generator.go InitOptions
type InitOptions struct{}
//go:generate go run ../generator/generator.go ShouldRestartOptions
// ShouldRestartOptions
//
//go:generate go run ../generator/generator.go ShouldRestartOptions
type ShouldRestartOptions struct{}
//go:generate go run ../generator/generator.go RenameOptions
// RenameOptions are options for renaming containers.
// The Name field is required.
//
//go:generate go run ../generator/generator.go RenameOptions
type RenameOptions struct {
Name *string
}
//go:generate go run ../generator/generator.go ResizeTTYOptions
// ResizeTTYOptions are optional options for resizing
// container TTYs
//
//go:generate go run ../generator/generator.go ResizeTTYOptions
type ResizeTTYOptions struct {
Height *int
Width *int
Running *bool
}
//go:generate go run ../generator/generator.go ResizeExecTTYOptions
// ResizeExecTTYOptions are optional options for resizing
// container ExecTTYs
//
//go:generate go run ../generator/generator.go ResizeExecTTYOptions
type ResizeExecTTYOptions struct {
Height *int
Width *int
}
//go:generate go run ../generator/generator.go ExecStartAndAttachOptions
// ExecStartAndAttachOptions are optional options for resizing
// container ExecTTYs
//
//go:generate go run ../generator/generator.go ExecStartAndAttachOptions
type ExecStartAndAttachOptions struct {
// OutputStream will be attached to container's STDOUT
OutputStream *io.WriteCloser
@ -272,15 +305,17 @@ type ExecStartAndAttachOptions struct {
AttachInput *bool
}
//go:generate go run ../generator/generator.go ExistsOptions
// ExistsOptions are optional options for checking if a container exists
//
//go:generate go run ../generator/generator.go ExistsOptions
type ExistsOptions struct {
// External checks for containers created outside of Podman
External *bool
}
//go:generate go run ../generator/generator.go CopyOptions
// CopyOptions are options for copying to containers.
//
//go:generate go run ../generator/generator.go CopyOptions
type CopyOptions struct {
// If used with CopyFromArchive and set to true it will change ownership of files from the source tar archive
// to the primary uid/gid of the target container.

View File

@ -1,14 +1,16 @@
package generate
//go:generate go run ../generator/generator.go KubeOptions
// KubeOptions are optional options for generating kube YAML files
//
//go:generate go run ../generator/generator.go KubeOptions
type KubeOptions struct {
// Service - generate YAML for a Kubernetes _service_ object.
Service *bool
}
//go:generate go run ../generator/generator.go SystemdOptions
// SystemdOptions are optional options for generating systemd files
//
//go:generate go run ../generator/generator.go SystemdOptions
type SystemdOptions struct {
// Name - use container/pod name instead of its ID.
UseName *bool

View File

@ -6,8 +6,9 @@ import (
buildahDefine "github.com/containers/buildah/define"
)
//go:generate go run ../generator/generator.go RemoveOptions
// RemoveOptions are optional options for image removal
//
//go:generate go run ../generator/generator.go RemoveOptions
type RemoveOptions struct {
// All removes all images
All *bool
@ -21,8 +22,9 @@ type RemoveOptions struct {
NoPrune *bool
}
//go:generate go run ../generator/generator.go DiffOptions
// DiffOptions are optional options image diffs
//
//go:generate go run ../generator/generator.go DiffOptions
type DiffOptions struct {
// By the default diff will compare against the parent layer. Change the Parent if you want to compare against something else.
Parent *string
@ -30,8 +32,9 @@ type DiffOptions struct {
DiffType *string
}
//go:generate go run ../generator/generator.go ListOptions
// ListOptions are optional options for listing images
//
//go:generate go run ../generator/generator.go ListOptions
type ListOptions struct {
// All lists all image in the image store including dangling images
All *bool
@ -39,35 +42,40 @@ type ListOptions struct {
Filters map[string][]string
}
//go:generate go run ../generator/generator.go GetOptions
// GetOptions are optional options for inspecting an image
//
//go:generate go run ../generator/generator.go GetOptions
type GetOptions struct {
// Size computes the amount of storage the image consumes
Size *bool
}
//go:generate go run ../generator/generator.go TreeOptions
// TreeOptions are optional options for a tree-based representation
// of the image
//
//go:generate go run ../generator/generator.go TreeOptions
type TreeOptions struct {
// WhatRequires ...
WhatRequires *bool
}
//go:generate go run ../generator/generator.go HistoryOptions
// HistoryOptions are optional options image history
//
//go:generate go run ../generator/generator.go HistoryOptions
type HistoryOptions struct {
}
//go:generate go run ../generator/generator.go LoadOptions
// LoadOptions are optional options for loading an image
//
//go:generate go run ../generator/generator.go LoadOptions
type LoadOptions struct {
// Reference is the name of the loaded image
Reference *string
}
//go:generate go run ../generator/generator.go ExportOptions
// ExportOptions are optional options for exporting images
//
//go:generate go run ../generator/generator.go ExportOptions
type ExportOptions struct {
// Compress the image
Compress *bool
@ -77,8 +85,9 @@ type ExportOptions struct {
OciAcceptUncompressedLayers *bool
}
//go:generate go run ../generator/generator.go PruneOptions
// PruneOptions are optional options for pruning images
//
//go:generate go run ../generator/generator.go PruneOptions
type PruneOptions struct {
// Prune all images
All *bool
@ -88,18 +97,21 @@ type PruneOptions struct {
Filters map[string][]string
}
//go:generate go run ../generator/generator.go TagOptions
// TagOptions are optional options for tagging images
//
//go:generate go run ../generator/generator.go TagOptions
type TagOptions struct {
}
//go:generate go run ../generator/generator.go UntagOptions
// UntagOptions are optional options for untagging images
//
//go:generate go run ../generator/generator.go UntagOptions
type UntagOptions struct {
}
//go:generate go run ../generator/generator.go ImportOptions
// ImportOptions are optional options for importing images
//
//go:generate go run ../generator/generator.go ImportOptions
type ImportOptions struct {
// Changes to be applied to the image
Changes *[]string
@ -117,8 +129,9 @@ type ImportOptions struct {
Variant *string
}
//go:generate go run ../generator/generator.go PushOptions
// PushOptions are optional options for importing images
//
//go:generate go run ../generator/generator.go PushOptions
type PushOptions struct {
// All indicates whether to push all images related to the image list
All *bool
@ -147,8 +160,9 @@ type PushOptions struct {
Quiet *bool
}
//go:generate go run ../generator/generator.go SearchOptions
// SearchOptions are optional options for searching images on registries
//
//go:generate go run ../generator/generator.go SearchOptions
type SearchOptions struct {
// Authfile is the path to the authentication file. Ignored for remote
// calls.
@ -163,8 +177,9 @@ type SearchOptions struct {
ListTags *bool
}
//go:generate go run ../generator/generator.go PullOptions
// PullOptions are optional options for pulling images
//
//go:generate go run ../generator/generator.go PullOptions
type PullOptions struct {
// AllTags can be specified to pull all tags of an image. Note
// that this only works if the image does not include a tag.
@ -200,8 +215,9 @@ type BuildOptions struct {
buildahDefine.BuildOptions
}
//go:generate go run ../generator/generator.go ExistsOptions
// ExistsOptions are optional options for checking if an image exists
//
//go:generate go run ../generator/generator.go ExistsOptions
type ExistsOptions struct {
}

View File

@ -4,8 +4,9 @@ import (
"net"
)
//go:generate go run ../generator/generator.go PlayOptions
// PlayOptions are optional options for replaying kube YAML files
//
//go:generate go run ../generator/generator.go PlayOptions
type PlayOptions struct {
// Annotations - Annotations to add to Pods
Annotations map[string]string

View File

@ -1,25 +1,29 @@
package manifests
//go:generate go run ../generator/generator.go InspectOptions
// InspectOptions are optional options for inspecting manifests
//
//go:generate go run ../generator/generator.go InspectOptions
type InspectOptions struct {
}
//go:generate go run ../generator/generator.go CreateOptions
// CreateOptions are optional options for creating manifests
//
//go:generate go run ../generator/generator.go CreateOptions
type CreateOptions struct {
All *bool
Amend *bool
}
//go:generate go run ../generator/generator.go ExistsOptions
// ExistsOptions are optional options for checking
// if a manifest list exists
//
//go:generate go run ../generator/generator.go ExistsOptions
type ExistsOptions struct {
}
//go:generate go run ../generator/generator.go AddOptions
// AddOptions are optional options for adding manifest lists
//
//go:generate go run ../generator/generator.go AddOptions
type AddOptions struct {
All *bool
Annotation map[string]string
@ -35,13 +39,15 @@ type AddOptions struct {
SkipTLSVerify *bool `schema:"-"`
}
//go:generate go run ../generator/generator.go RemoveOptions
// RemoveOptions are optional options for removing manifest lists
//
//go:generate go run ../generator/generator.go RemoveOptions
type RemoveOptions struct {
}
//go:generate go run ../generator/generator.go ModifyOptions
// ModifyOptions are optional options for modifying manifest lists
//
//go:generate go run ../generator/generator.go ModifyOptions
type ModifyOptions struct {
// Operation values are "update", "remove" and "annotate". This allows the service to
// efficiently perform each update on a manifest list.

View File

@ -4,8 +4,9 @@ import (
"net"
)
//go:generate go run ../generator/generator.go CreateOptions
// CreateOptions are optional options for creating networks
//
//go:generate go run ../generator/generator.go CreateOptions
type CreateOptions struct {
// DisableDNS turns off use of DNSMasq for name resolution
// on the network
@ -33,45 +34,51 @@ type CreateOptions struct {
Name *string
}
//go:generate go run ../generator/generator.go InspectOptions
// InspectOptions are optional options for inspecting networks
//
//go:generate go run ../generator/generator.go InspectOptions
type InspectOptions struct {
}
//go:generate go run ../generator/generator.go RemoveOptions
// RemoveOptions are optional options for inspecting networks
//
//go:generate go run ../generator/generator.go RemoveOptions
type RemoveOptions struct {
// Force removes the network even if it is being used
Force *bool
Timeout *uint
}
//go:generate go run ../generator/generator.go ListOptions
// ListOptions are optional options for listing networks
//
//go:generate go run ../generator/generator.go ListOptions
type ListOptions struct {
// Filters are applied to the list of networks to be more
// specific on the output
Filters map[string][]string
}
//go:generate go run ../generator/generator.go DisconnectOptions
// DisconnectOptions are optional options for disconnecting
// containers from a network
//
//go:generate go run ../generator/generator.go DisconnectOptions
type DisconnectOptions struct {
// Force indicates to remove the container from
// the network forcibly
Force *bool
}
//go:generate go run ../generator/generator.go ExistsOptions
// ExistsOptions are optional options for checking
// if a network exists
//
//go:generate go run ../generator/generator.go ExistsOptions
type ExistsOptions struct {
}
//go:generate go run ../generator/generator.go PruneOptions
// PruneOptions are optional options for removing unused
// CNI networks
//
//go:generate go run ../generator/generator.go PruneOptions
type PruneOptions struct {
// Filters are applied to the prune of networks to be more
// specific on choosing

View File

@ -1,78 +1,92 @@
package pods
//go:generate go run ../generator/generator.go CreateOptions
// CreateOptions are optional options for creating pods
//
//go:generate go run ../generator/generator.go CreateOptions
type CreateOptions struct {
}
//go:generate go run ../generator/generator.go InspectOptions
// InspectOptions are optional options for inspecting pods
//
//go:generate go run ../generator/generator.go InspectOptions
type InspectOptions struct {
}
//go:generate go run ../generator/generator.go KillOptions
// KillOptions are optional options for killing pods
//
//go:generate go run ../generator/generator.go KillOptions
type KillOptions struct {
Signal *string
}
//go:generate go run ../generator/generator.go PauseOptions
// PauseOptions are optional options for pausing pods
//
//go:generate go run ../generator/generator.go PauseOptions
type PauseOptions struct {
}
//go:generate go run ../generator/generator.go PruneOptions
// PruneOptions are optional options for pruning pods
//
//go:generate go run ../generator/generator.go PruneOptions
type PruneOptions struct {
}
//go:generate go run ../generator/generator.go ListOptions
// ListOptions are optional options for listing pods
//
//go:generate go run ../generator/generator.go ListOptions
type ListOptions struct {
Filters map[string][]string
}
//go:generate go run ../generator/generator.go RestartOptions
// RestartOptions are optional options for restarting pods
//
//go:generate go run ../generator/generator.go RestartOptions
type RestartOptions struct {
}
//go:generate go run ../generator/generator.go StartOptions
// StartOptions are optional options for starting pods
//
//go:generate go run ../generator/generator.go StartOptions
type StartOptions struct {
}
//go:generate go run ../generator/generator.go StopOptions
// StopOptions are optional options for stopping pods
//
//go:generate go run ../generator/generator.go StopOptions
type StopOptions struct {
Timeout *int
}
//go:generate go run ../generator/generator.go TopOptions
// TopOptions are optional options for getting top on pods
//
//go:generate go run ../generator/generator.go TopOptions
type TopOptions struct {
Descriptors []string
}
//go:generate go run ../generator/generator.go UnpauseOptions
// UnpauseOptions are optional options for unpausinging pods
//
//go:generate go run ../generator/generator.go UnpauseOptions
type UnpauseOptions struct {
}
//go:generate go run ../generator/generator.go StatsOptions
// StatsOptions are optional options for getting stats of pods
//
//go:generate go run ../generator/generator.go StatsOptions
type StatsOptions struct {
All *bool
}
//go:generate go run ../generator/generator.go RemoveOptions
// RemoveOptions are optional options for removing pods
//
//go:generate go run ../generator/generator.go RemoveOptions
type RemoveOptions struct {
Force *bool
Timeout *uint
}
//go:generate go run ../generator/generator.go ExistsOptions
// ExistsOptions are optional options for checking if a pod exists
//
//go:generate go run ../generator/generator.go ExistsOptions
type ExistsOptions struct {
}

View File

@ -1,23 +1,27 @@
package secrets
//go:generate go run ../generator/generator.go ListOptions
// ListOptions are optional options for inspecting secrets
//
//go:generate go run ../generator/generator.go ListOptions
type ListOptions struct {
Filters map[string][]string
}
//go:generate go run ../generator/generator.go InspectOptions
// InspectOptions are optional options for inspecting secrets
//
//go:generate go run ../generator/generator.go InspectOptions
type InspectOptions struct {
}
//go:generate go run ../generator/generator.go RemoveOptions
// RemoveOptions are optional options for removing secrets
//
//go:generate go run ../generator/generator.go RemoveOptions
type RemoveOptions struct {
}
//go:generate go run ../generator/generator.go CreateOptions
// CreateOptions are optional options for Creating secrets
//
//go:generate go run ../generator/generator.go CreateOptions
type CreateOptions struct {
Name *string
Driver *string

View File

@ -1,7 +1,8 @@
package system
//go:generate go run ../generator/generator.go EventsOptions
// EventsOptions are optional options for monitoring events
//
//go:generate go run ../generator/generator.go EventsOptions
type EventsOptions struct {
Filters map[string][]string
Since *string
@ -9,26 +10,30 @@ type EventsOptions struct {
Until *string
}
//go:generate go run ../generator/generator.go PruneOptions
// PruneOptions are optional options for pruning
//
//go:generate go run ../generator/generator.go PruneOptions
type PruneOptions struct {
All *bool
Filters map[string][]string
Volumes *bool
}
//go:generate go run ../generator/generator.go VersionOptions
// VersionOptions are optional options for getting version info
//
//go:generate go run ../generator/generator.go VersionOptions
type VersionOptions struct {
}
//go:generate go run ../generator/generator.go DiskOptions
// DiskOptions are optional options for getting storage consumption
//
//go:generate go run ../generator/generator.go DiskOptions
type DiskOptions struct {
}
//go:generate go run ../generator/generator.go InfoOptions
// InfoOptions are optional options for getting info
// about libpod
//
//go:generate go run ../generator/generator.go InfoOptions
type InfoOptions struct {
}

View File

@ -1,39 +1,45 @@
package volumes
//go:generate go run ../generator/generator.go CreateOptions
// CreateOptions are optional options for creating volumes
//
//go:generate go run ../generator/generator.go CreateOptions
type CreateOptions struct {
}
//go:generate go run ../generator/generator.go InspectOptions
// InspectOptions are optional options for inspecting volumes
//
//go:generate go run ../generator/generator.go InspectOptions
type InspectOptions struct {
}
//go:generate go run ../generator/generator.go ListOptions
// ListOptions are optional options for listing volumes
//
//go:generate go run ../generator/generator.go ListOptions
type ListOptions struct {
// Filters applied to the listing of volumes
Filters map[string][]string
}
//go:generate go run ../generator/generator.go PruneOptions
// PruneOptions are optional options for pruning volumes
//
//go:generate go run ../generator/generator.go PruneOptions
type PruneOptions struct {
// Filters applied to the pruning of volumes
Filters map[string][]string
}
//go:generate go run ../generator/generator.go RemoveOptions
// RemoveOptions are optional options for removing volumes
//
//go:generate go run ../generator/generator.go RemoveOptions
type RemoveOptions struct {
// Force removes the volume even if it is being used
Force *bool
Timeout *uint
}
//go:generate go run ../generator/generator.go ExistsOptions
// ExistsOptions are optional options for checking
// if a volume exists
//
//go:generate go run ../generator/generator.go ExistsOptions
type ExistsOptions struct {
}

View File

@ -13,7 +13,7 @@ import (
type ContainerCopyFunc func() error
type ContainerEngine interface {
type ContainerEngine interface { //nolint:interfacebloat
AutoUpdate(ctx context.Context, options AutoUpdateOptions) ([]*AutoUpdateReport, []error)
Config(ctx context.Context) (*config.Config, error)
ContainerAttach(ctx context.Context, nameOrID string, options AttachOptions) error

View File

@ -8,7 +8,7 @@ import (
"github.com/containers/podman/v4/pkg/domain/entities/reports"
)
type ImageEngine interface {
type ImageEngine interface { //nolint:interfacebloat
Build(ctx context.Context, containerFiles []string, opts BuildOptions) (*BuildReport, error)
Config(ctx context.Context) (*config.Config, error)
Exists(ctx context.Context, nameOrID string) (*BoolReport, error)

View File

@ -13,6 +13,7 @@ import (
)
// FIXME: the `ignore` parameter is very likely wrong here as it should rather
//
// be used on *errors* from operations such as remove.
func getContainersByContext(contextWithConnection context.Context, all, ignore bool, namesOrIDs []string) ([]entities.ListContainer, error) { //nolint:unparam
ctrs, _, err := getContainersAndInputByContext(contextWithConnection, all, ignore, namesOrIDs, nil)

View File

@ -40,6 +40,7 @@ const (
// Identities are defined as:
// - Network: A single stable DNS and hostname.
// - Storage: As many VolumeClaims as requested.
//
// The StatefulSet guarantees that a given network identity will always
// map to the same storage identity.
type StatefulSet struct {

View File

@ -26,6 +26,7 @@ func (rn ResourceName) String() string {
}
// Cpu returns the Cpu limit if specified.
//
//nolint:revive,stylecheck
func (rl *ResourceList) Cpu() *resource.Quantity {
return rl.Name(ResourceCPU, resource.DecimalSI)

View File

@ -2237,6 +2237,7 @@ type PodDNSConfigOption struct {
// IP address information for entries in the (plural) PodIPs field.
// Each entry includes:
//
// IP: An IP address allocated to the pod. Routable at least within the cluster.
type PodIP struct {
// ip is an IP address (IPv4 or IPv6) assigned to the pod
@ -3286,6 +3287,7 @@ type ServiceAccountList struct {
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// Endpoints is a collection of endpoints that implement the actual service. Example:
//
// Name: "mysvc",
// Subsets: [
// {
@ -3318,11 +3320,14 @@ type Endpoints struct {
// EndpointSubset is a group of addresses with a common set of ports. The
// expanded set of endpoints is the Cartesian product of Addresses x Ports.
// For example, given:
//
// {
// Addresses: [{"ip": "10.10.1.1"}, {"ip": "10.10.2.2"}],
// Ports: [{"name": "a", "port": 8675}, {"name": "b", "port": 309}]
// }
//
// The resulting set of endpoints can be viewed as:
//
// a: [ 10.10.1.1:8675, 10.10.2.2:8675 ],
// b: [ 10.10.1.1:309, 10.10.2.2:309 ]
type EndpointSubset struct {
@ -3656,6 +3661,7 @@ type ServiceProxyOptions struct {
// and the version of the actual struct is irrelevant.
// 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type
// will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control.
//
// Instead of using this type, create a locally provided and used type that is well-focused on your reference.
// For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 .
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

View File

@ -35,7 +35,9 @@ import (
// The serialization format is:
//
// <quantity> ::= <signedNumber><suffix>
//
// (Note that <suffix> may be empty, from the "" case in <decimalSI>.)
//
// <digit> ::= 0 | 1 | ... | 9
// <digits> ::= <digit> | <digit><digits>
// <number> ::= <digits> | <digits>.<digits> | <digits>. | .<digits>
@ -43,9 +45,13 @@ import (
// <signedNumber> ::= <number> | <sign><number>
// <suffix> ::= <binarySI> | <decimalExponent> | <decimalSI>
// <binarySI> ::= Ki | Mi | Gi | Ti | Pi | Ei
//
// (International System of units; See: http://physics.nist.gov/cuu/Units/binary.html)
//
// <decimalSI> ::= m | "" | k | M | G | T | P | E
//
// (Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.)
//
// <decimalExponent> ::= "e" <signedNumber> | "E" <signedNumber>
//
// No matter which of the three exponent forms is used, no quantity may represent
@ -60,12 +66,15 @@ import (
// Before serializing, Quantity will be put in "canonical form".
// This means that Exponent/suffix will be adjusted up or down (with a
// corresponding increase or decrease in Mantissa) such that:
//
// a. No precision is lost
// b. No fractional digits will be emitted
// c. The exponent (or suffix) is as large as possible.
//
// The sign will be omitted unless the number is negative.
//
// Examples:
//
// 1.5 will be serialized as "1500m"
// 1.5Gi will be serialized as "1536Mi"
//
@ -391,9 +400,9 @@ func (q Quantity) DeepCopy() Quantity {
// CanonicalizeBytes returns the canonical form of q and its suffix (see comment on Quantity).
//
// Note about BinarySI:
// * If q.Format is set to BinarySI and q.Amount represents a non-zero value between
// - If q.Format is set to BinarySI and q.Amount represents a non-zero value between
// -1 and +1, it will be emitted as if q.Format were DecimalSI.
// * Otherwise, if q.Format is set to BinarySI, fractional parts of q.Amount will be
// - Otherwise, if q.Format is set to BinarySI, fractional parts of q.Amount will be
// rounded up. (1.1i becomes 2i.)
func (q *Quantity) CanonicalizeBytes(out []byte) (result, suffix []byte) {
if q.IsZero() {

View File

@ -21,6 +21,7 @@ limitations under the License.
// - internal (never-serialized) types that are needed by several different
// api groups, and so live here, to avoid duplication and/or import loops
// (e.g. LabelSelector).
//
// In the future, we will probably move these categories of objects into
// separate packages.
package v1
@ -1272,6 +1273,7 @@ type PartialObjectMetadataList struct {
// Condition contains details for one aspect of the current state of this API Resource.
// ---
// This struct is intended for direct use as an array at the field path .status.conditions. For example,
//
// type FooStatus struct{
// // Represents the observations of a foo's current state.
// // Known .status.conditions.type are: "Available", "Progressing", and "Degraded"

View File

@ -1,5 +1,5 @@
//go:build arm64 && !windows && !linux
// +build darwin
// +build arm64,!windows,!linux
package applehv

View File

@ -1,4 +1,4 @@
//go:build (!amd64 && !arm64)
//go:build !amd64 && !arm64
// +build !amd64,!arm64
package qemu

View File

@ -11,6 +11,7 @@ import (
// KubeSeccompPaths holds information about a pod YAML's seccomp configuration
// it holds both container and pod seccomp paths
//
//nolint:revive
type KubeSeccompPaths struct {
containerPaths map[string]string

View File

@ -55,6 +55,7 @@ func joinTwoPortsToRangePortIfPossible(ports *[]types.PortMapping, allHostPorts,
}
// joinTwoContainerPortsToRangePortIfPossible will expect two ports with both no host port set,
//
// the previous port one must have a lower or equal containerPort than the current port.
func joinTwoContainerPortsToRangePortIfPossible(ports *[]types.PortMapping, allHostPorts, allContainerPorts, currentHostPorts *[65536]bool,
previousPort *types.PortMapping, port types.PortMapping) (*types.PortMapping, error) {

View File

@ -103,8 +103,10 @@ func GetTimestamp(value string, reference time.Time) (string, error) {
// if the incoming nanosecond portion is longer or shorter than 9 digits it is
// converted to nanoseconds. The expectation is that the seconds and
// seconds will be used to create a time variable. For example:
//
// seconds, nanoseconds, err := ParseTimestamp("1136073600.000000001",0)
// if err == nil since := time.Unix(seconds, nanoseconds)
//
// returns seconds as def(aultSeconds) if value == ""
func ParseTimestamps(value string, def int64) (int64, int64, error) {
if value == "" {

View File

@ -33,13 +33,13 @@ import (
//
// Splitting rules
//
// 1) If string is not valid UTF-8, return it without splitting as
// 1. If string is not valid UTF-8, return it without splitting as
// single item array.
// 2) Assign all unicode characters into one of 4 sets: lower case
// 2. Assign all unicode characters into one of 4 sets: lower case
// letters, upper case letters, numbers, and all other characters.
// 3) Iterate through characters of string, introducing splits
// 3. Iterate through characters of string, introducing splits
// between adjacent characters that belong to different sets.
// 4) Iterate through array of split strings, and if a given string
// 4. Iterate through array of split strings, and if a given string
// is upper case:
// if subsequent string is lower case:
// move last character of upper case string to beginning of

View File

@ -34,6 +34,7 @@ var Version = semver.MustParse("4.3.0-dev")
// APIVersion provides the current and minimal API versions for compat and libpod endpoint trees
// Note: GET|HEAD /_ping is never versioned and provides the API-Version and Libpod-API-Version headers to allow
//
// clients to shop for the Version they wish to support
var APIVersion = map[Tree]map[Level]semver.Version{
Libpod: {