mirror of
https://github.com/containers/podman.git
synced 2025-06-23 10:38:20 +08:00
Merge pull request #8767 from baude/bindings3pods
podman v3 pod bindings
This commit is contained in:
@ -2,10 +2,8 @@ package pods
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"errors"
|
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/url"
|
"net/url"
|
||||||
"strconv"
|
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/containers/podman/v2/pkg/api/handlers"
|
"github.com/containers/podman/v2/pkg/api/handlers"
|
||||||
@ -15,10 +13,14 @@ import (
|
|||||||
jsoniter "github.com/json-iterator/go"
|
jsoniter "github.com/json-iterator/go"
|
||||||
)
|
)
|
||||||
|
|
||||||
func CreatePodFromSpec(ctx context.Context, s *specgen.PodSpecGenerator) (*entities.PodCreateReport, error) {
|
func CreatePodFromSpec(ctx context.Context, s *specgen.PodSpecGenerator, options *CreateOptions) (*entities.PodCreateReport, error) {
|
||||||
var (
|
var (
|
||||||
pcr entities.PodCreateReport
|
pcr entities.PodCreateReport
|
||||||
)
|
)
|
||||||
|
if options == nil {
|
||||||
|
options = new(CreateOptions)
|
||||||
|
}
|
||||||
|
_ = options
|
||||||
conn, err := bindings.GetClient(ctx)
|
conn, err := bindings.GetClient(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -49,10 +51,14 @@ func Exists(ctx context.Context, nameOrID string) (bool, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns low-level information about the given pod.
|
// Inspect returns low-level information about the given pod.
|
||||||
func Inspect(ctx context.Context, nameOrID string) (*entities.PodInspectReport, error) {
|
func Inspect(ctx context.Context, nameOrID string, options *InspectOptions) (*entities.PodInspectReport, error) {
|
||||||
var (
|
var (
|
||||||
report entities.PodInspectReport
|
report entities.PodInspectReport
|
||||||
)
|
)
|
||||||
|
if options == nil {
|
||||||
|
options = new(InspectOptions)
|
||||||
|
}
|
||||||
|
_ = options
|
||||||
conn, err := bindings.GetClient(ctx)
|
conn, err := bindings.GetClient(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -66,17 +72,20 @@ func Inspect(ctx context.Context, nameOrID string) (*entities.PodInspectReport,
|
|||||||
|
|
||||||
// Kill sends a SIGTERM to all the containers in a pod. The optional signal parameter
|
// Kill sends a SIGTERM to all the containers in a pod. The optional signal parameter
|
||||||
// can be used to override SIGTERM.
|
// can be used to override SIGTERM.
|
||||||
func Kill(ctx context.Context, nameOrID string, signal *string) (*entities.PodKillReport, error) {
|
func Kill(ctx context.Context, nameOrID string, options *KillOptions) (*entities.PodKillReport, error) {
|
||||||
var (
|
var (
|
||||||
report entities.PodKillReport
|
report entities.PodKillReport
|
||||||
)
|
)
|
||||||
|
if options == nil {
|
||||||
|
options = new(KillOptions)
|
||||||
|
}
|
||||||
conn, err := bindings.GetClient(ctx)
|
conn, err := bindings.GetClient(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
params := url.Values{}
|
params, err := options.ToParams()
|
||||||
if signal != nil {
|
if err != nil {
|
||||||
params.Set("signal", *signal)
|
return nil, err
|
||||||
}
|
}
|
||||||
response, err := conn.DoRequest(nil, http.MethodPost, "/pods/%s/kill", params, nil, nameOrID)
|
response, err := conn.DoRequest(nil, http.MethodPost, "/pods/%s/kill", params, nil, nameOrID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -86,8 +95,12 @@ func Kill(ctx context.Context, nameOrID string, signal *string) (*entities.PodKi
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Pause pauses all running containers in a given pod.
|
// Pause pauses all running containers in a given pod.
|
||||||
func Pause(ctx context.Context, nameOrID string) (*entities.PodPauseReport, error) {
|
func Pause(ctx context.Context, nameOrID string, options *PauseOptions) (*entities.PodPauseReport, error) {
|
||||||
var report entities.PodPauseReport
|
var report entities.PodPauseReport
|
||||||
|
if options == nil {
|
||||||
|
options = new(PauseOptions)
|
||||||
|
}
|
||||||
|
_ = options
|
||||||
conn, err := bindings.GetClient(ctx)
|
conn, err := bindings.GetClient(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -101,8 +114,12 @@ func Pause(ctx context.Context, nameOrID string) (*entities.PodPauseReport, erro
|
|||||||
|
|
||||||
// Prune by default removes all non-running pods in local storage.
|
// Prune by default removes all non-running pods in local storage.
|
||||||
// And with force set true removes all pods.
|
// And with force set true removes all pods.
|
||||||
func Prune(ctx context.Context) ([]*entities.PodPruneReport, error) {
|
func Prune(ctx context.Context, options *PruneOptions) ([]*entities.PodPruneReport, error) {
|
||||||
var reports []*entities.PodPruneReport
|
var reports []*entities.PodPruneReport
|
||||||
|
if options == nil {
|
||||||
|
options = new(PruneOptions)
|
||||||
|
}
|
||||||
|
_ = options
|
||||||
conn, err := bindings.GetClient(ctx)
|
conn, err := bindings.GetClient(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -116,21 +133,20 @@ func Prune(ctx context.Context) ([]*entities.PodPruneReport, error) {
|
|||||||
|
|
||||||
// List returns all pods in local storage. The optional filters parameter can
|
// List returns all pods in local storage. The optional filters parameter can
|
||||||
// be used to refine which pods should be listed.
|
// be used to refine which pods should be listed.
|
||||||
func List(ctx context.Context, filters map[string][]string) ([]*entities.ListPodsReport, error) {
|
func List(ctx context.Context, options *ListOptions) ([]*entities.ListPodsReport, error) {
|
||||||
var (
|
var (
|
||||||
podsReports []*entities.ListPodsReport
|
podsReports []*entities.ListPodsReport
|
||||||
)
|
)
|
||||||
|
if options == nil {
|
||||||
|
options = new(ListOptions)
|
||||||
|
}
|
||||||
conn, err := bindings.GetClient(ctx)
|
conn, err := bindings.GetClient(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
params := url.Values{}
|
params, err := options.ToParams()
|
||||||
if filters != nil {
|
if err != nil {
|
||||||
stringFilter, err := bindings.FiltersToString(filters)
|
return nil, err
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
params.Set("filters", stringFilter)
|
|
||||||
}
|
}
|
||||||
response, err := conn.DoRequest(nil, http.MethodGet, "/pods/json", params, nil)
|
response, err := conn.DoRequest(nil, http.MethodGet, "/pods/json", params, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -140,8 +156,12 @@ func List(ctx context.Context, filters map[string][]string) ([]*entities.ListPod
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Restart restarts all containers in a pod.
|
// Restart restarts all containers in a pod.
|
||||||
func Restart(ctx context.Context, nameOrID string) (*entities.PodRestartReport, error) {
|
func Restart(ctx context.Context, nameOrID string, options *RestartOptions) (*entities.PodRestartReport, error) {
|
||||||
var report entities.PodRestartReport
|
var report entities.PodRestartReport
|
||||||
|
if options == nil {
|
||||||
|
options = new(RestartOptions)
|
||||||
|
}
|
||||||
|
_ = options
|
||||||
conn, err := bindings.GetClient(ctx)
|
conn, err := bindings.GetClient(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -155,15 +175,18 @@ func Restart(ctx context.Context, nameOrID string) (*entities.PodRestartReport,
|
|||||||
|
|
||||||
// Remove deletes a Pod from from local storage. The optional force parameter denotes
|
// Remove deletes a Pod from from local storage. The optional force parameter denotes
|
||||||
// that the Pod can be removed even if in a running state.
|
// that the Pod can be removed even if in a running state.
|
||||||
func Remove(ctx context.Context, nameOrID string, force *bool) (*entities.PodRmReport, error) {
|
func Remove(ctx context.Context, nameOrID string, options *RemoveOptions) (*entities.PodRmReport, error) {
|
||||||
var report entities.PodRmReport
|
var report entities.PodRmReport
|
||||||
|
if options == nil {
|
||||||
|
options = new(RemoveOptions)
|
||||||
|
}
|
||||||
conn, err := bindings.GetClient(ctx)
|
conn, err := bindings.GetClient(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
params := url.Values{}
|
params, err := options.ToParams()
|
||||||
if force != nil {
|
if err != nil {
|
||||||
params.Set("force", strconv.FormatBool(*force))
|
return nil, err
|
||||||
}
|
}
|
||||||
response, err := conn.DoRequest(nil, http.MethodDelete, "/pods/%s", params, nil, nameOrID)
|
response, err := conn.DoRequest(nil, http.MethodDelete, "/pods/%s", params, nil, nameOrID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -173,8 +196,12 @@ func Remove(ctx context.Context, nameOrID string, force *bool) (*entities.PodRmR
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Start starts all containers in a pod.
|
// Start starts all containers in a pod.
|
||||||
func Start(ctx context.Context, nameOrID string) (*entities.PodStartReport, error) {
|
func Start(ctx context.Context, nameOrID string, options *StartOptions) (*entities.PodStartReport, error) {
|
||||||
var report entities.PodStartReport
|
var report entities.PodStartReport
|
||||||
|
if options == nil {
|
||||||
|
options = new(StartOptions)
|
||||||
|
}
|
||||||
|
_ = options
|
||||||
conn, err := bindings.GetClient(ctx)
|
conn, err := bindings.GetClient(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -192,15 +219,18 @@ func Start(ctx context.Context, nameOrID string) (*entities.PodStartReport, erro
|
|||||||
|
|
||||||
// Stop stops all containers in a Pod. The optional timeout parameter can be
|
// Stop stops all containers in a Pod. The optional timeout parameter can be
|
||||||
// used to override the timeout before the container is killed.
|
// used to override the timeout before the container is killed.
|
||||||
func Stop(ctx context.Context, nameOrID string, timeout *int) (*entities.PodStopReport, error) {
|
func Stop(ctx context.Context, nameOrID string, options *StopOptions) (*entities.PodStopReport, error) {
|
||||||
var report entities.PodStopReport
|
var report entities.PodStopReport
|
||||||
|
if options == nil {
|
||||||
|
options = new(StopOptions)
|
||||||
|
}
|
||||||
conn, err := bindings.GetClient(ctx)
|
conn, err := bindings.GetClient(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
params := url.Values{}
|
params, err := options.ToParams()
|
||||||
if timeout != nil {
|
if err != nil {
|
||||||
params.Set("t", strconv.Itoa(*timeout))
|
return nil, err
|
||||||
}
|
}
|
||||||
response, err := conn.DoRequest(nil, http.MethodPost, "/pods/%s/stop", params, nil, nameOrID)
|
response, err := conn.DoRequest(nil, http.MethodPost, "/pods/%s/stop", params, nil, nameOrID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -215,15 +245,16 @@ func Stop(ctx context.Context, nameOrID string, timeout *int) (*entities.PodStop
|
|||||||
|
|
||||||
// Top gathers statistics about the running processes in a pod. The nameOrID can be a pod name
|
// Top gathers statistics about the running processes in a pod. The nameOrID can be a pod name
|
||||||
// or a partial/full ID. The descriptors allow for specifying which data to collect from each process.
|
// or a partial/full ID. The descriptors allow for specifying which data to collect from each process.
|
||||||
func Top(ctx context.Context, nameOrID string, descriptors []string) ([]string, error) {
|
func Top(ctx context.Context, nameOrID string, options *TopOptions) ([]string, error) {
|
||||||
|
if options == nil {
|
||||||
|
options = new(TopOptions)
|
||||||
|
}
|
||||||
conn, err := bindings.GetClient(ctx)
|
conn, err := bindings.GetClient(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
params := url.Values{}
|
params := url.Values{}
|
||||||
|
if descriptors := options.GetDescriptors(); len(descriptors) > 0 {
|
||||||
if len(descriptors) > 0 {
|
|
||||||
// flatten the slice into one string
|
|
||||||
params.Set("ps_args", strings.Join(descriptors, ","))
|
params.Set("ps_args", strings.Join(descriptors, ","))
|
||||||
}
|
}
|
||||||
response, err := conn.DoRequest(nil, http.MethodGet, "/pods/%s/top", params, nil, nameOrID)
|
response, err := conn.DoRequest(nil, http.MethodGet, "/pods/%s/top", params, nil, nameOrID)
|
||||||
@ -248,7 +279,11 @@ func Top(ctx context.Context, nameOrID string, descriptors []string) ([]string,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Unpause unpauses all paused containers in a Pod.
|
// Unpause unpauses all paused containers in a Pod.
|
||||||
func Unpause(ctx context.Context, nameOrID string) (*entities.PodUnpauseReport, error) {
|
func Unpause(ctx context.Context, nameOrID string, options *UnpauseOptions) (*entities.PodUnpauseReport, error) {
|
||||||
|
if options == nil {
|
||||||
|
options = new(UnpauseOptions)
|
||||||
|
}
|
||||||
|
_ = options
|
||||||
var report entities.PodUnpauseReport
|
var report entities.PodUnpauseReport
|
||||||
conn, err := bindings.GetClient(ctx)
|
conn, err := bindings.GetClient(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -262,19 +297,21 @@ func Unpause(ctx context.Context, nameOrID string) (*entities.PodUnpauseReport,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Stats display resource-usage statistics of one or more pods.
|
// Stats display resource-usage statistics of one or more pods.
|
||||||
func Stats(ctx context.Context, namesOrIDs []string, options entities.PodStatsOptions) ([]*entities.PodStatsReport, error) {
|
func Stats(ctx context.Context, namesOrIDs []string, options *StatsOptions) ([]*entities.PodStatsReport, error) {
|
||||||
if options.Latest {
|
if options == nil {
|
||||||
return nil, errors.New("latest is not supported")
|
options = new(StatsOptions)
|
||||||
}
|
}
|
||||||
conn, err := bindings.GetClient(ctx)
|
conn, err := bindings.GetClient(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
params := url.Values{}
|
params, err := options.ToParams()
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
for _, i := range namesOrIDs {
|
for _, i := range namesOrIDs {
|
||||||
params.Add("namesOrIDs", i)
|
params.Add("namesOrIDs", i)
|
||||||
}
|
}
|
||||||
params.Set("all", strconv.FormatBool(options.All))
|
|
||||||
|
|
||||||
var reports []*entities.PodStatsReport
|
var reports []*entities.PodStatsReport
|
||||||
response, err := conn.DoRequest(nil, http.MethodGet, "/pods/stats", params, nil)
|
response, err := conn.DoRequest(nil, http.MethodGet, "/pods/stats", params, nil)
|
||||||
|
72
pkg/bindings/pods/types.go
Normal file
72
pkg/bindings/pods/types.go
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
package pods
|
||||||
|
|
||||||
|
//go:generate go run ../generator/generator.go CreateOptions
|
||||||
|
// CreateOptions are optional options for creating pods
|
||||||
|
type CreateOptions struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
//go:generate go run ../generator/generator.go InspectOptions
|
||||||
|
// InspectOptions are optional options for inspecting pods
|
||||||
|
type InspectOptions struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
//go:generate go run ../generator/generator.go KillOptions
|
||||||
|
// KillOptions are optional options for killing pods
|
||||||
|
type KillOptions struct {
|
||||||
|
Signal *string
|
||||||
|
}
|
||||||
|
|
||||||
|
//go:generate go run ../generator/generator.go PauseOptions
|
||||||
|
// PauseOptions are optional options for pausing pods
|
||||||
|
type PauseOptions struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
//go:generate go run ../generator/generator.go PruneOptions
|
||||||
|
// PruneOptions are optional options for pruning pods
|
||||||
|
type PruneOptions struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
//go:generate go run ../generator/generator.go ListOptions
|
||||||
|
// ListOptions are optional options for listing pods
|
||||||
|
type ListOptions struct {
|
||||||
|
Filters map[string][]string
|
||||||
|
}
|
||||||
|
|
||||||
|
//go:generate go run ../generator/generator.go RestartOptions
|
||||||
|
// RestartOptions are optional options for restarting pods
|
||||||
|
type RestartOptions struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
//go:generate go run ../generator/generator.go StartOptions
|
||||||
|
// StartOptions are optional options for starting pods
|
||||||
|
type StartOptions struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
//go:generate go run ../generator/generator.go StopOptions
|
||||||
|
// StopOptions are optional options for stopping pods
|
||||||
|
type StopOptions struct {
|
||||||
|
Timeout *int
|
||||||
|
}
|
||||||
|
|
||||||
|
//go:generate go run ../generator/generator.go TopOptions
|
||||||
|
// TopOptions are optional options for getting top on pods
|
||||||
|
type TopOptions struct {
|
||||||
|
Descriptors []string
|
||||||
|
}
|
||||||
|
|
||||||
|
//go:generate go run ../generator/generator.go UnpauseOptions
|
||||||
|
// UnpauseOptions are optional options for unpausinging pods
|
||||||
|
type UnpauseOptions struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
//go:generate go run ../generator/generator.go StatsOptions
|
||||||
|
// StatsOptions are optional options for getting stats of pods
|
||||||
|
type StatsOptions struct {
|
||||||
|
All *bool
|
||||||
|
}
|
||||||
|
|
||||||
|
//go:generate go run ../generator/generator.go RemoveOptions
|
||||||
|
// RemoveOptions are optional options for removing pods
|
||||||
|
type RemoveOptions struct {
|
||||||
|
Force *bool
|
||||||
|
}
|
88
pkg/bindings/pods/types_create_options.go
Normal file
88
pkg/bindings/pods/types_create_options.go
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
package pods
|
||||||
|
|
||||||
|
import (
|
||||||
|
"net/url"
|
||||||
|
"reflect"
|
||||||
|
"strconv"
|
||||||
|
|
||||||
|
jsoniter "github.com/json-iterator/go"
|
||||||
|
"github.com/pkg/errors"
|
||||||
|
)
|
||||||
|
|
||||||
|
/*
|
||||||
|
This file is generated automatically by go generate. Do not edit.
|
||||||
|
|
||||||
|
Created 2020-12-17 07:45:32.352415253 -0600 CST m=+0.000183834
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Changed
|
||||||
|
func (o *CreateOptions) Changed(fieldName string) bool {
|
||||||
|
r := reflect.ValueOf(o)
|
||||||
|
value := reflect.Indirect(r).FieldByName(fieldName)
|
||||||
|
return !value.IsNil()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ToParams
|
||||||
|
func (o *CreateOptions) ToParams() (url.Values, error) {
|
||||||
|
params := url.Values{}
|
||||||
|
if o == nil {
|
||||||
|
return params, nil
|
||||||
|
}
|
||||||
|
json := jsoniter.ConfigCompatibleWithStandardLibrary
|
||||||
|
s := reflect.ValueOf(o)
|
||||||
|
if reflect.Ptr == s.Kind() {
|
||||||
|
s = s.Elem()
|
||||||
|
}
|
||||||
|
sType := s.Type()
|
||||||
|
for i := 0; i < s.NumField(); i++ {
|
||||||
|
fieldName := sType.Field(i).Name
|
||||||
|
if !o.Changed(fieldName) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
f := s.Field(i)
|
||||||
|
if reflect.Ptr == f.Kind() {
|
||||||
|
f = f.Elem()
|
||||||
|
}
|
||||||
|
switch f.Kind() {
|
||||||
|
case reflect.Bool:
|
||||||
|
params.Set(fieldName, strconv.FormatBool(f.Bool()))
|
||||||
|
case reflect.String:
|
||||||
|
params.Set(fieldName, f.String())
|
||||||
|
case reflect.Int, reflect.Int64:
|
||||||
|
// f.Int() is always an int64
|
||||||
|
params.Set(fieldName, strconv.FormatInt(f.Int(), 10))
|
||||||
|
case reflect.Uint, reflect.Uint64:
|
||||||
|
// f.Uint() is always an uint64
|
||||||
|
params.Set(fieldName, strconv.FormatUint(f.Uint(), 10))
|
||||||
|
case reflect.Slice:
|
||||||
|
typ := reflect.TypeOf(f.Interface()).Elem()
|
||||||
|
slice := reflect.MakeSlice(reflect.SliceOf(typ), f.Len(), f.Cap())
|
||||||
|
switch typ.Kind() {
|
||||||
|
case reflect.String:
|
||||||
|
s, ok := slice.Interface().([]string)
|
||||||
|
if !ok {
|
||||||
|
return nil, errors.New("failed to convert to string slice")
|
||||||
|
}
|
||||||
|
for _, val := range s {
|
||||||
|
params.Add(fieldName, val)
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
return nil, errors.Errorf("unknown slice type %s", f.Kind().String())
|
||||||
|
}
|
||||||
|
case reflect.Map:
|
||||||
|
lowerCaseKeys := make(map[string][]string)
|
||||||
|
iter := f.MapRange()
|
||||||
|
for iter.Next() {
|
||||||
|
lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
|
||||||
|
|
||||||
|
}
|
||||||
|
s, err := json.MarshalToString(lowerCaseKeys)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
params.Set(fieldName, s)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return params, nil
|
||||||
|
}
|
88
pkg/bindings/pods/types_inspect_options.go
Normal file
88
pkg/bindings/pods/types_inspect_options.go
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
package pods
|
||||||
|
|
||||||
|
import (
|
||||||
|
"net/url"
|
||||||
|
"reflect"
|
||||||
|
"strconv"
|
||||||
|
|
||||||
|
jsoniter "github.com/json-iterator/go"
|
||||||
|
"github.com/pkg/errors"
|
||||||
|
)
|
||||||
|
|
||||||
|
/*
|
||||||
|
This file is generated automatically by go generate. Do not edit.
|
||||||
|
|
||||||
|
Created 2020-12-17 07:45:32.765915823 -0600 CST m=+0.000180826
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Changed
|
||||||
|
func (o *InspectOptions) Changed(fieldName string) bool {
|
||||||
|
r := reflect.ValueOf(o)
|
||||||
|
value := reflect.Indirect(r).FieldByName(fieldName)
|
||||||
|
return !value.IsNil()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ToParams
|
||||||
|
func (o *InspectOptions) ToParams() (url.Values, error) {
|
||||||
|
params := url.Values{}
|
||||||
|
if o == nil {
|
||||||
|
return params, nil
|
||||||
|
}
|
||||||
|
json := jsoniter.ConfigCompatibleWithStandardLibrary
|
||||||
|
s := reflect.ValueOf(o)
|
||||||
|
if reflect.Ptr == s.Kind() {
|
||||||
|
s = s.Elem()
|
||||||
|
}
|
||||||
|
sType := s.Type()
|
||||||
|
for i := 0; i < s.NumField(); i++ {
|
||||||
|
fieldName := sType.Field(i).Name
|
||||||
|
if !o.Changed(fieldName) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
f := s.Field(i)
|
||||||
|
if reflect.Ptr == f.Kind() {
|
||||||
|
f = f.Elem()
|
||||||
|
}
|
||||||
|
switch f.Kind() {
|
||||||
|
case reflect.Bool:
|
||||||
|
params.Set(fieldName, strconv.FormatBool(f.Bool()))
|
||||||
|
case reflect.String:
|
||||||
|
params.Set(fieldName, f.String())
|
||||||
|
case reflect.Int, reflect.Int64:
|
||||||
|
// f.Int() is always an int64
|
||||||
|
params.Set(fieldName, strconv.FormatInt(f.Int(), 10))
|
||||||
|
case reflect.Uint, reflect.Uint64:
|
||||||
|
// f.Uint() is always an uint64
|
||||||
|
params.Set(fieldName, strconv.FormatUint(f.Uint(), 10))
|
||||||
|
case reflect.Slice:
|
||||||
|
typ := reflect.TypeOf(f.Interface()).Elem()
|
||||||
|
slice := reflect.MakeSlice(reflect.SliceOf(typ), f.Len(), f.Cap())
|
||||||
|
switch typ.Kind() {
|
||||||
|
case reflect.String:
|
||||||
|
s, ok := slice.Interface().([]string)
|
||||||
|
if !ok {
|
||||||
|
return nil, errors.New("failed to convert to string slice")
|
||||||
|
}
|
||||||
|
for _, val := range s {
|
||||||
|
params.Add(fieldName, val)
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
return nil, errors.Errorf("unknown slice type %s", f.Kind().String())
|
||||||
|
}
|
||||||
|
case reflect.Map:
|
||||||
|
lowerCaseKeys := make(map[string][]string)
|
||||||
|
iter := f.MapRange()
|
||||||
|
for iter.Next() {
|
||||||
|
lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
|
||||||
|
|
||||||
|
}
|
||||||
|
s, err := json.MarshalToString(lowerCaseKeys)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
params.Set(fieldName, s)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return params, nil
|
||||||
|
}
|
104
pkg/bindings/pods/types_kill_options.go
Normal file
104
pkg/bindings/pods/types_kill_options.go
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
package pods
|
||||||
|
|
||||||
|
import (
|
||||||
|
"net/url"
|
||||||
|
"reflect"
|
||||||
|
"strconv"
|
||||||
|
|
||||||
|
jsoniter "github.com/json-iterator/go"
|
||||||
|
"github.com/pkg/errors"
|
||||||
|
)
|
||||||
|
|
||||||
|
/*
|
||||||
|
This file is generated automatically by go generate. Do not edit.
|
||||||
|
|
||||||
|
Created 2020-12-17 07:45:32.905440724 -0600 CST m=+0.000171399
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Changed
|
||||||
|
func (o *KillOptions) Changed(fieldName string) bool {
|
||||||
|
r := reflect.ValueOf(o)
|
||||||
|
value := reflect.Indirect(r).FieldByName(fieldName)
|
||||||
|
return !value.IsNil()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ToParams
|
||||||
|
func (o *KillOptions) ToParams() (url.Values, error) {
|
||||||
|
params := url.Values{}
|
||||||
|
if o == nil {
|
||||||
|
return params, nil
|
||||||
|
}
|
||||||
|
json := jsoniter.ConfigCompatibleWithStandardLibrary
|
||||||
|
s := reflect.ValueOf(o)
|
||||||
|
if reflect.Ptr == s.Kind() {
|
||||||
|
s = s.Elem()
|
||||||
|
}
|
||||||
|
sType := s.Type()
|
||||||
|
for i := 0; i < s.NumField(); i++ {
|
||||||
|
fieldName := sType.Field(i).Name
|
||||||
|
if !o.Changed(fieldName) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
f := s.Field(i)
|
||||||
|
if reflect.Ptr == f.Kind() {
|
||||||
|
f = f.Elem()
|
||||||
|
}
|
||||||
|
switch f.Kind() {
|
||||||
|
case reflect.Bool:
|
||||||
|
params.Set(fieldName, strconv.FormatBool(f.Bool()))
|
||||||
|
case reflect.String:
|
||||||
|
params.Set(fieldName, f.String())
|
||||||
|
case reflect.Int, reflect.Int64:
|
||||||
|
// f.Int() is always an int64
|
||||||
|
params.Set(fieldName, strconv.FormatInt(f.Int(), 10))
|
||||||
|
case reflect.Uint, reflect.Uint64:
|
||||||
|
// f.Uint() is always an uint64
|
||||||
|
params.Set(fieldName, strconv.FormatUint(f.Uint(), 10))
|
||||||
|
case reflect.Slice:
|
||||||
|
typ := reflect.TypeOf(f.Interface()).Elem()
|
||||||
|
slice := reflect.MakeSlice(reflect.SliceOf(typ), f.Len(), f.Cap())
|
||||||
|
switch typ.Kind() {
|
||||||
|
case reflect.String:
|
||||||
|
s, ok := slice.Interface().([]string)
|
||||||
|
if !ok {
|
||||||
|
return nil, errors.New("failed to convert to string slice")
|
||||||
|
}
|
||||||
|
for _, val := range s {
|
||||||
|
params.Add(fieldName, val)
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
return nil, errors.Errorf("unknown slice type %s", f.Kind().String())
|
||||||
|
}
|
||||||
|
case reflect.Map:
|
||||||
|
lowerCaseKeys := make(map[string][]string)
|
||||||
|
iter := f.MapRange()
|
||||||
|
for iter.Next() {
|
||||||
|
lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
|
||||||
|
|
||||||
|
}
|
||||||
|
s, err := json.MarshalToString(lowerCaseKeys)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
params.Set(fieldName, s)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return params, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// WithSignal
|
||||||
|
func (o *KillOptions) WithSignal(value string) *KillOptions {
|
||||||
|
v := &value
|
||||||
|
o.Signal = v
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetSignal
|
||||||
|
func (o *KillOptions) GetSignal() string {
|
||||||
|
var signal string
|
||||||
|
if o.Signal == nil {
|
||||||
|
return signal
|
||||||
|
}
|
||||||
|
return *o.Signal
|
||||||
|
}
|
104
pkg/bindings/pods/types_list_options.go
Normal file
104
pkg/bindings/pods/types_list_options.go
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
package pods
|
||||||
|
|
||||||
|
import (
|
||||||
|
"net/url"
|
||||||
|
"reflect"
|
||||||
|
"strconv"
|
||||||
|
|
||||||
|
jsoniter "github.com/json-iterator/go"
|
||||||
|
"github.com/pkg/errors"
|
||||||
|
)
|
||||||
|
|
||||||
|
/*
|
||||||
|
This file is generated automatically by go generate. Do not edit.
|
||||||
|
|
||||||
|
Created 2020-12-17 07:45:33.326756506 -0600 CST m=+0.000223292
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Changed
|
||||||
|
func (o *ListOptions) Changed(fieldName string) bool {
|
||||||
|
r := reflect.ValueOf(o)
|
||||||
|
value := reflect.Indirect(r).FieldByName(fieldName)
|
||||||
|
return !value.IsNil()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ToParams
|
||||||
|
func (o *ListOptions) ToParams() (url.Values, error) {
|
||||||
|
params := url.Values{}
|
||||||
|
if o == nil {
|
||||||
|
return params, nil
|
||||||
|
}
|
||||||
|
json := jsoniter.ConfigCompatibleWithStandardLibrary
|
||||||
|
s := reflect.ValueOf(o)
|
||||||
|
if reflect.Ptr == s.Kind() {
|
||||||
|
s = s.Elem()
|
||||||
|
}
|
||||||
|
sType := s.Type()
|
||||||
|
for i := 0; i < s.NumField(); i++ {
|
||||||
|
fieldName := sType.Field(i).Name
|
||||||
|
if !o.Changed(fieldName) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
f := s.Field(i)
|
||||||
|
if reflect.Ptr == f.Kind() {
|
||||||
|
f = f.Elem()
|
||||||
|
}
|
||||||
|
switch f.Kind() {
|
||||||
|
case reflect.Bool:
|
||||||
|
params.Set(fieldName, strconv.FormatBool(f.Bool()))
|
||||||
|
case reflect.String:
|
||||||
|
params.Set(fieldName, f.String())
|
||||||
|
case reflect.Int, reflect.Int64:
|
||||||
|
// f.Int() is always an int64
|
||||||
|
params.Set(fieldName, strconv.FormatInt(f.Int(), 10))
|
||||||
|
case reflect.Uint, reflect.Uint64:
|
||||||
|
// f.Uint() is always an uint64
|
||||||
|
params.Set(fieldName, strconv.FormatUint(f.Uint(), 10))
|
||||||
|
case reflect.Slice:
|
||||||
|
typ := reflect.TypeOf(f.Interface()).Elem()
|
||||||
|
slice := reflect.MakeSlice(reflect.SliceOf(typ), f.Len(), f.Cap())
|
||||||
|
switch typ.Kind() {
|
||||||
|
case reflect.String:
|
||||||
|
s, ok := slice.Interface().([]string)
|
||||||
|
if !ok {
|
||||||
|
return nil, errors.New("failed to convert to string slice")
|
||||||
|
}
|
||||||
|
for _, val := range s {
|
||||||
|
params.Add(fieldName, val)
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
return nil, errors.Errorf("unknown slice type %s", f.Kind().String())
|
||||||
|
}
|
||||||
|
case reflect.Map:
|
||||||
|
lowerCaseKeys := make(map[string][]string)
|
||||||
|
iter := f.MapRange()
|
||||||
|
for iter.Next() {
|
||||||
|
lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
|
||||||
|
|
||||||
|
}
|
||||||
|
s, err := json.MarshalToString(lowerCaseKeys)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
params.Set(fieldName, s)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return params, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// WithFilters
|
||||||
|
func (o *ListOptions) WithFilters(value map[string][]string) *ListOptions {
|
||||||
|
v := value
|
||||||
|
o.Filters = v
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetFilters
|
||||||
|
func (o *ListOptions) GetFilters() map[string][]string {
|
||||||
|
var filters map[string][]string
|
||||||
|
if o.Filters == nil {
|
||||||
|
return filters
|
||||||
|
}
|
||||||
|
return o.Filters
|
||||||
|
}
|
88
pkg/bindings/pods/types_pause_options.go
Normal file
88
pkg/bindings/pods/types_pause_options.go
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
package pods
|
||||||
|
|
||||||
|
import (
|
||||||
|
"net/url"
|
||||||
|
"reflect"
|
||||||
|
"strconv"
|
||||||
|
|
||||||
|
jsoniter "github.com/json-iterator/go"
|
||||||
|
"github.com/pkg/errors"
|
||||||
|
)
|
||||||
|
|
||||||
|
/*
|
||||||
|
This file is generated automatically by go generate. Do not edit.
|
||||||
|
|
||||||
|
Created 2020-12-17 07:45:33.042658764 -0600 CST m=+0.000177336
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Changed
|
||||||
|
func (o *PauseOptions) Changed(fieldName string) bool {
|
||||||
|
r := reflect.ValueOf(o)
|
||||||
|
value := reflect.Indirect(r).FieldByName(fieldName)
|
||||||
|
return !value.IsNil()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ToParams
|
||||||
|
func (o *PauseOptions) ToParams() (url.Values, error) {
|
||||||
|
params := url.Values{}
|
||||||
|
if o == nil {
|
||||||
|
return params, nil
|
||||||
|
}
|
||||||
|
json := jsoniter.ConfigCompatibleWithStandardLibrary
|
||||||
|
s := reflect.ValueOf(o)
|
||||||
|
if reflect.Ptr == s.Kind() {
|
||||||
|
s = s.Elem()
|
||||||
|
}
|
||||||
|
sType := s.Type()
|
||||||
|
for i := 0; i < s.NumField(); i++ {
|
||||||
|
fieldName := sType.Field(i).Name
|
||||||
|
if !o.Changed(fieldName) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
f := s.Field(i)
|
||||||
|
if reflect.Ptr == f.Kind() {
|
||||||
|
f = f.Elem()
|
||||||
|
}
|
||||||
|
switch f.Kind() {
|
||||||
|
case reflect.Bool:
|
||||||
|
params.Set(fieldName, strconv.FormatBool(f.Bool()))
|
||||||
|
case reflect.String:
|
||||||
|
params.Set(fieldName, f.String())
|
||||||
|
case reflect.Int, reflect.Int64:
|
||||||
|
// f.Int() is always an int64
|
||||||
|
params.Set(fieldName, strconv.FormatInt(f.Int(), 10))
|
||||||
|
case reflect.Uint, reflect.Uint64:
|
||||||
|
// f.Uint() is always an uint64
|
||||||
|
params.Set(fieldName, strconv.FormatUint(f.Uint(), 10))
|
||||||
|
case reflect.Slice:
|
||||||
|
typ := reflect.TypeOf(f.Interface()).Elem()
|
||||||
|
slice := reflect.MakeSlice(reflect.SliceOf(typ), f.Len(), f.Cap())
|
||||||
|
switch typ.Kind() {
|
||||||
|
case reflect.String:
|
||||||
|
s, ok := slice.Interface().([]string)
|
||||||
|
if !ok {
|
||||||
|
return nil, errors.New("failed to convert to string slice")
|
||||||
|
}
|
||||||
|
for _, val := range s {
|
||||||
|
params.Add(fieldName, val)
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
return nil, errors.Errorf("unknown slice type %s", f.Kind().String())
|
||||||
|
}
|
||||||
|
case reflect.Map:
|
||||||
|
lowerCaseKeys := make(map[string][]string)
|
||||||
|
iter := f.MapRange()
|
||||||
|
for iter.Next() {
|
||||||
|
lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
|
||||||
|
|
||||||
|
}
|
||||||
|
s, err := json.MarshalToString(lowerCaseKeys)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
params.Set(fieldName, s)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return params, nil
|
||||||
|
}
|
88
pkg/bindings/pods/types_prune_options.go
Normal file
88
pkg/bindings/pods/types_prune_options.go
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
package pods
|
||||||
|
|
||||||
|
import (
|
||||||
|
"net/url"
|
||||||
|
"reflect"
|
||||||
|
"strconv"
|
||||||
|
|
||||||
|
jsoniter "github.com/json-iterator/go"
|
||||||
|
"github.com/pkg/errors"
|
||||||
|
)
|
||||||
|
|
||||||
|
/*
|
||||||
|
This file is generated automatically by go generate. Do not edit.
|
||||||
|
|
||||||
|
Created 2020-12-17 07:45:33.183777637 -0600 CST m=+0.000163998
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Changed
|
||||||
|
func (o *PruneOptions) Changed(fieldName string) bool {
|
||||||
|
r := reflect.ValueOf(o)
|
||||||
|
value := reflect.Indirect(r).FieldByName(fieldName)
|
||||||
|
return !value.IsNil()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ToParams
|
||||||
|
func (o *PruneOptions) ToParams() (url.Values, error) {
|
||||||
|
params := url.Values{}
|
||||||
|
if o == nil {
|
||||||
|
return params, nil
|
||||||
|
}
|
||||||
|
json := jsoniter.ConfigCompatibleWithStandardLibrary
|
||||||
|
s := reflect.ValueOf(o)
|
||||||
|
if reflect.Ptr == s.Kind() {
|
||||||
|
s = s.Elem()
|
||||||
|
}
|
||||||
|
sType := s.Type()
|
||||||
|
for i := 0; i < s.NumField(); i++ {
|
||||||
|
fieldName := sType.Field(i).Name
|
||||||
|
if !o.Changed(fieldName) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
f := s.Field(i)
|
||||||
|
if reflect.Ptr == f.Kind() {
|
||||||
|
f = f.Elem()
|
||||||
|
}
|
||||||
|
switch f.Kind() {
|
||||||
|
case reflect.Bool:
|
||||||
|
params.Set(fieldName, strconv.FormatBool(f.Bool()))
|
||||||
|
case reflect.String:
|
||||||
|
params.Set(fieldName, f.String())
|
||||||
|
case reflect.Int, reflect.Int64:
|
||||||
|
// f.Int() is always an int64
|
||||||
|
params.Set(fieldName, strconv.FormatInt(f.Int(), 10))
|
||||||
|
case reflect.Uint, reflect.Uint64:
|
||||||
|
// f.Uint() is always an uint64
|
||||||
|
params.Set(fieldName, strconv.FormatUint(f.Uint(), 10))
|
||||||
|
case reflect.Slice:
|
||||||
|
typ := reflect.TypeOf(f.Interface()).Elem()
|
||||||
|
slice := reflect.MakeSlice(reflect.SliceOf(typ), f.Len(), f.Cap())
|
||||||
|
switch typ.Kind() {
|
||||||
|
case reflect.String:
|
||||||
|
s, ok := slice.Interface().([]string)
|
||||||
|
if !ok {
|
||||||
|
return nil, errors.New("failed to convert to string slice")
|
||||||
|
}
|
||||||
|
for _, val := range s {
|
||||||
|
params.Add(fieldName, val)
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
return nil, errors.Errorf("unknown slice type %s", f.Kind().String())
|
||||||
|
}
|
||||||
|
case reflect.Map:
|
||||||
|
lowerCaseKeys := make(map[string][]string)
|
||||||
|
iter := f.MapRange()
|
||||||
|
for iter.Next() {
|
||||||
|
lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
|
||||||
|
|
||||||
|
}
|
||||||
|
s, err := json.MarshalToString(lowerCaseKeys)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
params.Set(fieldName, s)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return params, nil
|
||||||
|
}
|
104
pkg/bindings/pods/types_remove_options.go
Normal file
104
pkg/bindings/pods/types_remove_options.go
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
package pods
|
||||||
|
|
||||||
|
import (
|
||||||
|
"net/url"
|
||||||
|
"reflect"
|
||||||
|
"strconv"
|
||||||
|
|
||||||
|
jsoniter "github.com/json-iterator/go"
|
||||||
|
"github.com/pkg/errors"
|
||||||
|
)
|
||||||
|
|
||||||
|
/*
|
||||||
|
This file is generated automatically by go generate. Do not edit.
|
||||||
|
|
||||||
|
Created 2020-12-17 07:45:34.321961766 -0600 CST m=+0.000169681
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Changed
|
||||||
|
func (o *RemoveOptions) Changed(fieldName string) bool {
|
||||||
|
r := reflect.ValueOf(o)
|
||||||
|
value := reflect.Indirect(r).FieldByName(fieldName)
|
||||||
|
return !value.IsNil()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ToParams
|
||||||
|
func (o *RemoveOptions) ToParams() (url.Values, error) {
|
||||||
|
params := url.Values{}
|
||||||
|
if o == nil {
|
||||||
|
return params, nil
|
||||||
|
}
|
||||||
|
json := jsoniter.ConfigCompatibleWithStandardLibrary
|
||||||
|
s := reflect.ValueOf(o)
|
||||||
|
if reflect.Ptr == s.Kind() {
|
||||||
|
s = s.Elem()
|
||||||
|
}
|
||||||
|
sType := s.Type()
|
||||||
|
for i := 0; i < s.NumField(); i++ {
|
||||||
|
fieldName := sType.Field(i).Name
|
||||||
|
if !o.Changed(fieldName) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
f := s.Field(i)
|
||||||
|
if reflect.Ptr == f.Kind() {
|
||||||
|
f = f.Elem()
|
||||||
|
}
|
||||||
|
switch f.Kind() {
|
||||||
|
case reflect.Bool:
|
||||||
|
params.Set(fieldName, strconv.FormatBool(f.Bool()))
|
||||||
|
case reflect.String:
|
||||||
|
params.Set(fieldName, f.String())
|
||||||
|
case reflect.Int, reflect.Int64:
|
||||||
|
// f.Int() is always an int64
|
||||||
|
params.Set(fieldName, strconv.FormatInt(f.Int(), 10))
|
||||||
|
case reflect.Uint, reflect.Uint64:
|
||||||
|
// f.Uint() is always an uint64
|
||||||
|
params.Set(fieldName, strconv.FormatUint(f.Uint(), 10))
|
||||||
|
case reflect.Slice:
|
||||||
|
typ := reflect.TypeOf(f.Interface()).Elem()
|
||||||
|
slice := reflect.MakeSlice(reflect.SliceOf(typ), f.Len(), f.Cap())
|
||||||
|
switch typ.Kind() {
|
||||||
|
case reflect.String:
|
||||||
|
s, ok := slice.Interface().([]string)
|
||||||
|
if !ok {
|
||||||
|
return nil, errors.New("failed to convert to string slice")
|
||||||
|
}
|
||||||
|
for _, val := range s {
|
||||||
|
params.Add(fieldName, val)
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
return nil, errors.Errorf("unknown slice type %s", f.Kind().String())
|
||||||
|
}
|
||||||
|
case reflect.Map:
|
||||||
|
lowerCaseKeys := make(map[string][]string)
|
||||||
|
iter := f.MapRange()
|
||||||
|
for iter.Next() {
|
||||||
|
lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
|
||||||
|
|
||||||
|
}
|
||||||
|
s, err := json.MarshalToString(lowerCaseKeys)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
params.Set(fieldName, s)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return params, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// WithForce
|
||||||
|
func (o *RemoveOptions) WithForce(value bool) *RemoveOptions {
|
||||||
|
v := &value
|
||||||
|
o.Force = v
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetForce
|
||||||
|
func (o *RemoveOptions) GetForce() bool {
|
||||||
|
var force bool
|
||||||
|
if o.Force == nil {
|
||||||
|
return force
|
||||||
|
}
|
||||||
|
return *o.Force
|
||||||
|
}
|
88
pkg/bindings/pods/types_restart_options.go
Normal file
88
pkg/bindings/pods/types_restart_options.go
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
package pods
|
||||||
|
|
||||||
|
import (
|
||||||
|
"net/url"
|
||||||
|
"reflect"
|
||||||
|
"strconv"
|
||||||
|
|
||||||
|
jsoniter "github.com/json-iterator/go"
|
||||||
|
"github.com/pkg/errors"
|
||||||
|
)
|
||||||
|
|
||||||
|
/*
|
||||||
|
This file is generated automatically by go generate. Do not edit.
|
||||||
|
|
||||||
|
Created 2020-12-17 07:45:33.468350594 -0600 CST m=+0.000198305
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Changed
|
||||||
|
func (o *RestartOptions) Changed(fieldName string) bool {
|
||||||
|
r := reflect.ValueOf(o)
|
||||||
|
value := reflect.Indirect(r).FieldByName(fieldName)
|
||||||
|
return !value.IsNil()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ToParams
|
||||||
|
func (o *RestartOptions) ToParams() (url.Values, error) {
|
||||||
|
params := url.Values{}
|
||||||
|
if o == nil {
|
||||||
|
return params, nil
|
||||||
|
}
|
||||||
|
json := jsoniter.ConfigCompatibleWithStandardLibrary
|
||||||
|
s := reflect.ValueOf(o)
|
||||||
|
if reflect.Ptr == s.Kind() {
|
||||||
|
s = s.Elem()
|
||||||
|
}
|
||||||
|
sType := s.Type()
|
||||||
|
for i := 0; i < s.NumField(); i++ {
|
||||||
|
fieldName := sType.Field(i).Name
|
||||||
|
if !o.Changed(fieldName) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
f := s.Field(i)
|
||||||
|
if reflect.Ptr == f.Kind() {
|
||||||
|
f = f.Elem()
|
||||||
|
}
|
||||||
|
switch f.Kind() {
|
||||||
|
case reflect.Bool:
|
||||||
|
params.Set(fieldName, strconv.FormatBool(f.Bool()))
|
||||||
|
case reflect.String:
|
||||||
|
params.Set(fieldName, f.String())
|
||||||
|
case reflect.Int, reflect.Int64:
|
||||||
|
// f.Int() is always an int64
|
||||||
|
params.Set(fieldName, strconv.FormatInt(f.Int(), 10))
|
||||||
|
case reflect.Uint, reflect.Uint64:
|
||||||
|
// f.Uint() is always an uint64
|
||||||
|
params.Set(fieldName, strconv.FormatUint(f.Uint(), 10))
|
||||||
|
case reflect.Slice:
|
||||||
|
typ := reflect.TypeOf(f.Interface()).Elem()
|
||||||
|
slice := reflect.MakeSlice(reflect.SliceOf(typ), f.Len(), f.Cap())
|
||||||
|
switch typ.Kind() {
|
||||||
|
case reflect.String:
|
||||||
|
s, ok := slice.Interface().([]string)
|
||||||
|
if !ok {
|
||||||
|
return nil, errors.New("failed to convert to string slice")
|
||||||
|
}
|
||||||
|
for _, val := range s {
|
||||||
|
params.Add(fieldName, val)
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
return nil, errors.Errorf("unknown slice type %s", f.Kind().String())
|
||||||
|
}
|
||||||
|
case reflect.Map:
|
||||||
|
lowerCaseKeys := make(map[string][]string)
|
||||||
|
iter := f.MapRange()
|
||||||
|
for iter.Next() {
|
||||||
|
lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
|
||||||
|
|
||||||
|
}
|
||||||
|
s, err := json.MarshalToString(lowerCaseKeys)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
params.Set(fieldName, s)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return params, nil
|
||||||
|
}
|
88
pkg/bindings/pods/types_start_options.go
Normal file
88
pkg/bindings/pods/types_start_options.go
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
package pods
|
||||||
|
|
||||||
|
import (
|
||||||
|
"net/url"
|
||||||
|
"reflect"
|
||||||
|
"strconv"
|
||||||
|
|
||||||
|
jsoniter "github.com/json-iterator/go"
|
||||||
|
"github.com/pkg/errors"
|
||||||
|
)
|
||||||
|
|
||||||
|
/*
|
||||||
|
This file is generated automatically by go generate. Do not edit.
|
||||||
|
|
||||||
|
Created 2020-12-17 07:45:33.610327478 -0600 CST m=+0.000190011
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Changed
|
||||||
|
func (o *StartOptions) Changed(fieldName string) bool {
|
||||||
|
r := reflect.ValueOf(o)
|
||||||
|
value := reflect.Indirect(r).FieldByName(fieldName)
|
||||||
|
return !value.IsNil()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ToParams
|
||||||
|
func (o *StartOptions) ToParams() (url.Values, error) {
|
||||||
|
params := url.Values{}
|
||||||
|
if o == nil {
|
||||||
|
return params, nil
|
||||||
|
}
|
||||||
|
json := jsoniter.ConfigCompatibleWithStandardLibrary
|
||||||
|
s := reflect.ValueOf(o)
|
||||||
|
if reflect.Ptr == s.Kind() {
|
||||||
|
s = s.Elem()
|
||||||
|
}
|
||||||
|
sType := s.Type()
|
||||||
|
for i := 0; i < s.NumField(); i++ {
|
||||||
|
fieldName := sType.Field(i).Name
|
||||||
|
if !o.Changed(fieldName) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
f := s.Field(i)
|
||||||
|
if reflect.Ptr == f.Kind() {
|
||||||
|
f = f.Elem()
|
||||||
|
}
|
||||||
|
switch f.Kind() {
|
||||||
|
case reflect.Bool:
|
||||||
|
params.Set(fieldName, strconv.FormatBool(f.Bool()))
|
||||||
|
case reflect.String:
|
||||||
|
params.Set(fieldName, f.String())
|
||||||
|
case reflect.Int, reflect.Int64:
|
||||||
|
// f.Int() is always an int64
|
||||||
|
params.Set(fieldName, strconv.FormatInt(f.Int(), 10))
|
||||||
|
case reflect.Uint, reflect.Uint64:
|
||||||
|
// f.Uint() is always an uint64
|
||||||
|
params.Set(fieldName, strconv.FormatUint(f.Uint(), 10))
|
||||||
|
case reflect.Slice:
|
||||||
|
typ := reflect.TypeOf(f.Interface()).Elem()
|
||||||
|
slice := reflect.MakeSlice(reflect.SliceOf(typ), f.Len(), f.Cap())
|
||||||
|
switch typ.Kind() {
|
||||||
|
case reflect.String:
|
||||||
|
s, ok := slice.Interface().([]string)
|
||||||
|
if !ok {
|
||||||
|
return nil, errors.New("failed to convert to string slice")
|
||||||
|
}
|
||||||
|
for _, val := range s {
|
||||||
|
params.Add(fieldName, val)
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
return nil, errors.Errorf("unknown slice type %s", f.Kind().String())
|
||||||
|
}
|
||||||
|
case reflect.Map:
|
||||||
|
lowerCaseKeys := make(map[string][]string)
|
||||||
|
iter := f.MapRange()
|
||||||
|
for iter.Next() {
|
||||||
|
lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
|
||||||
|
|
||||||
|
}
|
||||||
|
s, err := json.MarshalToString(lowerCaseKeys)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
params.Set(fieldName, s)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return params, nil
|
||||||
|
}
|
104
pkg/bindings/pods/types_stats_options.go
Normal file
104
pkg/bindings/pods/types_stats_options.go
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
package pods
|
||||||
|
|
||||||
|
import (
|
||||||
|
"net/url"
|
||||||
|
"reflect"
|
||||||
|
"strconv"
|
||||||
|
|
||||||
|
jsoniter "github.com/json-iterator/go"
|
||||||
|
"github.com/pkg/errors"
|
||||||
|
)
|
||||||
|
|
||||||
|
/*
|
||||||
|
This file is generated automatically by go generate. Do not edit.
|
||||||
|
|
||||||
|
Created 2020-12-17 07:45:34.181335419 -0600 CST m=+0.000176684
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Changed
|
||||||
|
func (o *StatsOptions) Changed(fieldName string) bool {
|
||||||
|
r := reflect.ValueOf(o)
|
||||||
|
value := reflect.Indirect(r).FieldByName(fieldName)
|
||||||
|
return !value.IsNil()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ToParams
|
||||||
|
func (o *StatsOptions) ToParams() (url.Values, error) {
|
||||||
|
params := url.Values{}
|
||||||
|
if o == nil {
|
||||||
|
return params, nil
|
||||||
|
}
|
||||||
|
json := jsoniter.ConfigCompatibleWithStandardLibrary
|
||||||
|
s := reflect.ValueOf(o)
|
||||||
|
if reflect.Ptr == s.Kind() {
|
||||||
|
s = s.Elem()
|
||||||
|
}
|
||||||
|
sType := s.Type()
|
||||||
|
for i := 0; i < s.NumField(); i++ {
|
||||||
|
fieldName := sType.Field(i).Name
|
||||||
|
if !o.Changed(fieldName) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
f := s.Field(i)
|
||||||
|
if reflect.Ptr == f.Kind() {
|
||||||
|
f = f.Elem()
|
||||||
|
}
|
||||||
|
switch f.Kind() {
|
||||||
|
case reflect.Bool:
|
||||||
|
params.Set(fieldName, strconv.FormatBool(f.Bool()))
|
||||||
|
case reflect.String:
|
||||||
|
params.Set(fieldName, f.String())
|
||||||
|
case reflect.Int, reflect.Int64:
|
||||||
|
// f.Int() is always an int64
|
||||||
|
params.Set(fieldName, strconv.FormatInt(f.Int(), 10))
|
||||||
|
case reflect.Uint, reflect.Uint64:
|
||||||
|
// f.Uint() is always an uint64
|
||||||
|
params.Set(fieldName, strconv.FormatUint(f.Uint(), 10))
|
||||||
|
case reflect.Slice:
|
||||||
|
typ := reflect.TypeOf(f.Interface()).Elem()
|
||||||
|
slice := reflect.MakeSlice(reflect.SliceOf(typ), f.Len(), f.Cap())
|
||||||
|
switch typ.Kind() {
|
||||||
|
case reflect.String:
|
||||||
|
s, ok := slice.Interface().([]string)
|
||||||
|
if !ok {
|
||||||
|
return nil, errors.New("failed to convert to string slice")
|
||||||
|
}
|
||||||
|
for _, val := range s {
|
||||||
|
params.Add(fieldName, val)
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
return nil, errors.Errorf("unknown slice type %s", f.Kind().String())
|
||||||
|
}
|
||||||
|
case reflect.Map:
|
||||||
|
lowerCaseKeys := make(map[string][]string)
|
||||||
|
iter := f.MapRange()
|
||||||
|
for iter.Next() {
|
||||||
|
lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
|
||||||
|
|
||||||
|
}
|
||||||
|
s, err := json.MarshalToString(lowerCaseKeys)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
params.Set(fieldName, s)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return params, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// WithAll
|
||||||
|
func (o *StatsOptions) WithAll(value bool) *StatsOptions {
|
||||||
|
v := &value
|
||||||
|
o.All = v
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetAll
|
||||||
|
func (o *StatsOptions) GetAll() bool {
|
||||||
|
var all bool
|
||||||
|
if o.All == nil {
|
||||||
|
return all
|
||||||
|
}
|
||||||
|
return *o.All
|
||||||
|
}
|
104
pkg/bindings/pods/types_stop_options.go
Normal file
104
pkg/bindings/pods/types_stop_options.go
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
package pods
|
||||||
|
|
||||||
|
import (
|
||||||
|
"net/url"
|
||||||
|
"reflect"
|
||||||
|
"strconv"
|
||||||
|
|
||||||
|
jsoniter "github.com/json-iterator/go"
|
||||||
|
"github.com/pkg/errors"
|
||||||
|
)
|
||||||
|
|
||||||
|
/*
|
||||||
|
This file is generated automatically by go generate. Do not edit.
|
||||||
|
|
||||||
|
Created 2020-12-17 07:45:33.753353816 -0600 CST m=+0.000168107
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Changed
|
||||||
|
func (o *StopOptions) Changed(fieldName string) bool {
|
||||||
|
r := reflect.ValueOf(o)
|
||||||
|
value := reflect.Indirect(r).FieldByName(fieldName)
|
||||||
|
return !value.IsNil()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ToParams
|
||||||
|
func (o *StopOptions) ToParams() (url.Values, error) {
|
||||||
|
params := url.Values{}
|
||||||
|
if o == nil {
|
||||||
|
return params, nil
|
||||||
|
}
|
||||||
|
json := jsoniter.ConfigCompatibleWithStandardLibrary
|
||||||
|
s := reflect.ValueOf(o)
|
||||||
|
if reflect.Ptr == s.Kind() {
|
||||||
|
s = s.Elem()
|
||||||
|
}
|
||||||
|
sType := s.Type()
|
||||||
|
for i := 0; i < s.NumField(); i++ {
|
||||||
|
fieldName := sType.Field(i).Name
|
||||||
|
if !o.Changed(fieldName) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
f := s.Field(i)
|
||||||
|
if reflect.Ptr == f.Kind() {
|
||||||
|
f = f.Elem()
|
||||||
|
}
|
||||||
|
switch f.Kind() {
|
||||||
|
case reflect.Bool:
|
||||||
|
params.Set(fieldName, strconv.FormatBool(f.Bool()))
|
||||||
|
case reflect.String:
|
||||||
|
params.Set(fieldName, f.String())
|
||||||
|
case reflect.Int, reflect.Int64:
|
||||||
|
// f.Int() is always an int64
|
||||||
|
params.Set(fieldName, strconv.FormatInt(f.Int(), 10))
|
||||||
|
case reflect.Uint, reflect.Uint64:
|
||||||
|
// f.Uint() is always an uint64
|
||||||
|
params.Set(fieldName, strconv.FormatUint(f.Uint(), 10))
|
||||||
|
case reflect.Slice:
|
||||||
|
typ := reflect.TypeOf(f.Interface()).Elem()
|
||||||
|
slice := reflect.MakeSlice(reflect.SliceOf(typ), f.Len(), f.Cap())
|
||||||
|
switch typ.Kind() {
|
||||||
|
case reflect.String:
|
||||||
|
s, ok := slice.Interface().([]string)
|
||||||
|
if !ok {
|
||||||
|
return nil, errors.New("failed to convert to string slice")
|
||||||
|
}
|
||||||
|
for _, val := range s {
|
||||||
|
params.Add(fieldName, val)
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
return nil, errors.Errorf("unknown slice type %s", f.Kind().String())
|
||||||
|
}
|
||||||
|
case reflect.Map:
|
||||||
|
lowerCaseKeys := make(map[string][]string)
|
||||||
|
iter := f.MapRange()
|
||||||
|
for iter.Next() {
|
||||||
|
lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
|
||||||
|
|
||||||
|
}
|
||||||
|
s, err := json.MarshalToString(lowerCaseKeys)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
params.Set(fieldName, s)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return params, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// WithTimeout
|
||||||
|
func (o *StopOptions) WithTimeout(value int) *StopOptions {
|
||||||
|
v := &value
|
||||||
|
o.Timeout = v
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetTimeout
|
||||||
|
func (o *StopOptions) GetTimeout() int {
|
||||||
|
var timeout int
|
||||||
|
if o.Timeout == nil {
|
||||||
|
return timeout
|
||||||
|
}
|
||||||
|
return *o.Timeout
|
||||||
|
}
|
104
pkg/bindings/pods/types_top_options.go
Normal file
104
pkg/bindings/pods/types_top_options.go
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
package pods
|
||||||
|
|
||||||
|
import (
|
||||||
|
"net/url"
|
||||||
|
"reflect"
|
||||||
|
"strconv"
|
||||||
|
|
||||||
|
jsoniter "github.com/json-iterator/go"
|
||||||
|
"github.com/pkg/errors"
|
||||||
|
)
|
||||||
|
|
||||||
|
/*
|
||||||
|
This file is generated automatically by go generate. Do not edit.
|
||||||
|
|
||||||
|
Created 2020-12-17 07:45:33.897063 -0600 CST m=+0.000164071
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Changed
|
||||||
|
func (o *TopOptions) Changed(fieldName string) bool {
|
||||||
|
r := reflect.ValueOf(o)
|
||||||
|
value := reflect.Indirect(r).FieldByName(fieldName)
|
||||||
|
return !value.IsNil()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ToParams
|
||||||
|
func (o *TopOptions) ToParams() (url.Values, error) {
|
||||||
|
params := url.Values{}
|
||||||
|
if o == nil {
|
||||||
|
return params, nil
|
||||||
|
}
|
||||||
|
json := jsoniter.ConfigCompatibleWithStandardLibrary
|
||||||
|
s := reflect.ValueOf(o)
|
||||||
|
if reflect.Ptr == s.Kind() {
|
||||||
|
s = s.Elem()
|
||||||
|
}
|
||||||
|
sType := s.Type()
|
||||||
|
for i := 0; i < s.NumField(); i++ {
|
||||||
|
fieldName := sType.Field(i).Name
|
||||||
|
if !o.Changed(fieldName) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
f := s.Field(i)
|
||||||
|
if reflect.Ptr == f.Kind() {
|
||||||
|
f = f.Elem()
|
||||||
|
}
|
||||||
|
switch f.Kind() {
|
||||||
|
case reflect.Bool:
|
||||||
|
params.Set(fieldName, strconv.FormatBool(f.Bool()))
|
||||||
|
case reflect.String:
|
||||||
|
params.Set(fieldName, f.String())
|
||||||
|
case reflect.Int, reflect.Int64:
|
||||||
|
// f.Int() is always an int64
|
||||||
|
params.Set(fieldName, strconv.FormatInt(f.Int(), 10))
|
||||||
|
case reflect.Uint, reflect.Uint64:
|
||||||
|
// f.Uint() is always an uint64
|
||||||
|
params.Set(fieldName, strconv.FormatUint(f.Uint(), 10))
|
||||||
|
case reflect.Slice:
|
||||||
|
typ := reflect.TypeOf(f.Interface()).Elem()
|
||||||
|
slice := reflect.MakeSlice(reflect.SliceOf(typ), f.Len(), f.Cap())
|
||||||
|
switch typ.Kind() {
|
||||||
|
case reflect.String:
|
||||||
|
s, ok := slice.Interface().([]string)
|
||||||
|
if !ok {
|
||||||
|
return nil, errors.New("failed to convert to string slice")
|
||||||
|
}
|
||||||
|
for _, val := range s {
|
||||||
|
params.Add(fieldName, val)
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
return nil, errors.Errorf("unknown slice type %s", f.Kind().String())
|
||||||
|
}
|
||||||
|
case reflect.Map:
|
||||||
|
lowerCaseKeys := make(map[string][]string)
|
||||||
|
iter := f.MapRange()
|
||||||
|
for iter.Next() {
|
||||||
|
lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
|
||||||
|
|
||||||
|
}
|
||||||
|
s, err := json.MarshalToString(lowerCaseKeys)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
params.Set(fieldName, s)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return params, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// WithDescriptors
|
||||||
|
func (o *TopOptions) WithDescriptors(value []string) *TopOptions {
|
||||||
|
v := value
|
||||||
|
o.Descriptors = v
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetDescriptors
|
||||||
|
func (o *TopOptions) GetDescriptors() []string {
|
||||||
|
var descriptors []string
|
||||||
|
if o.Descriptors == nil {
|
||||||
|
return descriptors
|
||||||
|
}
|
||||||
|
return o.Descriptors
|
||||||
|
}
|
88
pkg/bindings/pods/types_unpause_options.go
Normal file
88
pkg/bindings/pods/types_unpause_options.go
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
package pods
|
||||||
|
|
||||||
|
import (
|
||||||
|
"net/url"
|
||||||
|
"reflect"
|
||||||
|
"strconv"
|
||||||
|
|
||||||
|
jsoniter "github.com/json-iterator/go"
|
||||||
|
"github.com/pkg/errors"
|
||||||
|
)
|
||||||
|
|
||||||
|
/*
|
||||||
|
This file is generated automatically by go generate. Do not edit.
|
||||||
|
|
||||||
|
Created 2020-12-17 07:45:34.038858053 -0600 CST m=+0.000173181
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Changed
|
||||||
|
func (o *UnpauseOptions) Changed(fieldName string) bool {
|
||||||
|
r := reflect.ValueOf(o)
|
||||||
|
value := reflect.Indirect(r).FieldByName(fieldName)
|
||||||
|
return !value.IsNil()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ToParams
|
||||||
|
func (o *UnpauseOptions) ToParams() (url.Values, error) {
|
||||||
|
params := url.Values{}
|
||||||
|
if o == nil {
|
||||||
|
return params, nil
|
||||||
|
}
|
||||||
|
json := jsoniter.ConfigCompatibleWithStandardLibrary
|
||||||
|
s := reflect.ValueOf(o)
|
||||||
|
if reflect.Ptr == s.Kind() {
|
||||||
|
s = s.Elem()
|
||||||
|
}
|
||||||
|
sType := s.Type()
|
||||||
|
for i := 0; i < s.NumField(); i++ {
|
||||||
|
fieldName := sType.Field(i).Name
|
||||||
|
if !o.Changed(fieldName) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
f := s.Field(i)
|
||||||
|
if reflect.Ptr == f.Kind() {
|
||||||
|
f = f.Elem()
|
||||||
|
}
|
||||||
|
switch f.Kind() {
|
||||||
|
case reflect.Bool:
|
||||||
|
params.Set(fieldName, strconv.FormatBool(f.Bool()))
|
||||||
|
case reflect.String:
|
||||||
|
params.Set(fieldName, f.String())
|
||||||
|
case reflect.Int, reflect.Int64:
|
||||||
|
// f.Int() is always an int64
|
||||||
|
params.Set(fieldName, strconv.FormatInt(f.Int(), 10))
|
||||||
|
case reflect.Uint, reflect.Uint64:
|
||||||
|
// f.Uint() is always an uint64
|
||||||
|
params.Set(fieldName, strconv.FormatUint(f.Uint(), 10))
|
||||||
|
case reflect.Slice:
|
||||||
|
typ := reflect.TypeOf(f.Interface()).Elem()
|
||||||
|
slice := reflect.MakeSlice(reflect.SliceOf(typ), f.Len(), f.Cap())
|
||||||
|
switch typ.Kind() {
|
||||||
|
case reflect.String:
|
||||||
|
s, ok := slice.Interface().([]string)
|
||||||
|
if !ok {
|
||||||
|
return nil, errors.New("failed to convert to string slice")
|
||||||
|
}
|
||||||
|
for _, val := range s {
|
||||||
|
params.Add(fieldName, val)
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
return nil, errors.Errorf("unknown slice type %s", f.Kind().String())
|
||||||
|
}
|
||||||
|
case reflect.Map:
|
||||||
|
lowerCaseKeys := make(map[string][]string)
|
||||||
|
iter := f.MapRange()
|
||||||
|
for iter.Next() {
|
||||||
|
lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
|
||||||
|
|
||||||
|
}
|
||||||
|
s, err := json.MarshalToString(lowerCaseKeys)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
params.Set(fieldName, s)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return params, nil
|
||||||
|
}
|
@ -40,13 +40,13 @@ var _ = Describe("Podman pods", func() {
|
|||||||
|
|
||||||
It("inspect pod", func() {
|
It("inspect pod", func() {
|
||||||
//Inspect an invalid pod name
|
//Inspect an invalid pod name
|
||||||
_, err := pods.Inspect(bt.conn, "dummyname")
|
_, err := pods.Inspect(bt.conn, "dummyname", nil)
|
||||||
Expect(err).ToNot(BeNil())
|
Expect(err).ToNot(BeNil())
|
||||||
code, _ := bindings.CheckResponseCode(err)
|
code, _ := bindings.CheckResponseCode(err)
|
||||||
Expect(code).To(BeNumerically("==", http.StatusNotFound))
|
Expect(code).To(BeNumerically("==", http.StatusNotFound))
|
||||||
|
|
||||||
//Inspect an valid pod name
|
//Inspect an valid pod name
|
||||||
response, err := pods.Inspect(bt.conn, newpod)
|
response, err := pods.Inspect(bt.conn, newpod, nil)
|
||||||
Expect(err).To(BeNil())
|
Expect(err).To(BeNil())
|
||||||
Expect(response.Name).To(Equal(newpod))
|
Expect(response.Name).To(Equal(newpod))
|
||||||
})
|
})
|
||||||
@ -59,7 +59,7 @@ var _ = Describe("Podman pods", func() {
|
|||||||
Expect(len(podSummary)).To(Equal(1))
|
Expect(len(podSummary)).To(Equal(1))
|
||||||
|
|
||||||
// Start the pod
|
// Start the pod
|
||||||
_, err = pods.Start(bt.conn, newpod)
|
_, err = pods.Start(bt.conn, newpod, nil)
|
||||||
Expect(err).To(BeNil())
|
Expect(err).To(BeNil())
|
||||||
|
|
||||||
// Adding an alpine container to the existing pod
|
// Adding an alpine container to the existing pod
|
||||||
@ -90,7 +90,7 @@ var _ = Describe("Podman pods", func() {
|
|||||||
bt.Podcreate(&newpod2)
|
bt.Podcreate(&newpod2)
|
||||||
|
|
||||||
// Start the pod
|
// Start the pod
|
||||||
_, err = pods.Start(bt.conn, newpod)
|
_, err = pods.Start(bt.conn, newpod, nil)
|
||||||
Expect(err).To(BeNil())
|
Expect(err).To(BeNil())
|
||||||
|
|
||||||
_, err = bt.RunTopContainer(nil, bindings.PTrue, &newpod)
|
_, err = bt.RunTopContainer(nil, bindings.PTrue, &newpod)
|
||||||
@ -99,7 +99,8 @@ var _ = Describe("Podman pods", func() {
|
|||||||
// Expected err with invalid filter params
|
// Expected err with invalid filter params
|
||||||
filters := make(map[string][]string)
|
filters := make(map[string][]string)
|
||||||
filters["dummy"] = []string{"dummy"}
|
filters["dummy"] = []string{"dummy"}
|
||||||
filteredPods, err := pods.List(bt.conn, filters)
|
options := new(pods.ListOptions).WithFilters(filters)
|
||||||
|
filteredPods, err := pods.List(bt.conn, options)
|
||||||
Expect(err).ToNot(BeNil())
|
Expect(err).ToNot(BeNil())
|
||||||
code, _ := bindings.CheckResponseCode(err)
|
code, _ := bindings.CheckResponseCode(err)
|
||||||
Expect(code).To(BeNumerically("==", http.StatusInternalServerError))
|
Expect(code).To(BeNumerically("==", http.StatusInternalServerError))
|
||||||
@ -107,14 +108,16 @@ var _ = Describe("Podman pods", func() {
|
|||||||
// Expected empty response with invalid filters
|
// Expected empty response with invalid filters
|
||||||
filters = make(map[string][]string)
|
filters = make(map[string][]string)
|
||||||
filters["name"] = []string{"dummy"}
|
filters["name"] = []string{"dummy"}
|
||||||
filteredPods, err = pods.List(bt.conn, filters)
|
options = new(pods.ListOptions).WithFilters(filters)
|
||||||
|
filteredPods, err = pods.List(bt.conn, options)
|
||||||
Expect(err).To(BeNil())
|
Expect(err).To(BeNil())
|
||||||
Expect(len(filteredPods)).To(BeNumerically("==", 0))
|
Expect(len(filteredPods)).To(BeNumerically("==", 0))
|
||||||
|
|
||||||
// Validate list pod with name filter
|
// Validate list pod with name filter
|
||||||
filters = make(map[string][]string)
|
filters = make(map[string][]string)
|
||||||
filters["name"] = []string{newpod2}
|
filters["name"] = []string{newpod2}
|
||||||
filteredPods, err = pods.List(bt.conn, filters)
|
options = new(pods.ListOptions).WithFilters(filters)
|
||||||
|
filteredPods, err = pods.List(bt.conn, options)
|
||||||
Expect(err).To(BeNil())
|
Expect(err).To(BeNil())
|
||||||
Expect(len(filteredPods)).To(BeNumerically("==", 1))
|
Expect(len(filteredPods)).To(BeNumerically("==", 1))
|
||||||
var names []string
|
var names []string
|
||||||
@ -125,11 +128,12 @@ var _ = Describe("Podman pods", func() {
|
|||||||
|
|
||||||
// Validate list pod with id filter
|
// Validate list pod with id filter
|
||||||
filters = make(map[string][]string)
|
filters = make(map[string][]string)
|
||||||
response, err := pods.Inspect(bt.conn, newpod)
|
response, err := pods.Inspect(bt.conn, newpod, nil)
|
||||||
Expect(err).To(BeNil())
|
Expect(err).To(BeNil())
|
||||||
id := response.ID
|
id := response.ID
|
||||||
filters["id"] = []string{id}
|
filters["id"] = []string{id}
|
||||||
filteredPods, err = pods.List(bt.conn, filters)
|
options = new(pods.ListOptions).WithFilters(filters)
|
||||||
|
filteredPods, err = pods.List(bt.conn, options)
|
||||||
Expect(err).To(BeNil())
|
Expect(err).To(BeNil())
|
||||||
Expect(len(filteredPods)).To(BeNumerically("==", 1))
|
Expect(len(filteredPods)).To(BeNumerically("==", 1))
|
||||||
names = names[:0]
|
names = names[:0]
|
||||||
@ -140,7 +144,8 @@ var _ = Describe("Podman pods", func() {
|
|||||||
|
|
||||||
// Using multiple filters
|
// Using multiple filters
|
||||||
filters["name"] = []string{newpod}
|
filters["name"] = []string{newpod}
|
||||||
filteredPods, err = pods.List(bt.conn, filters)
|
options = new(pods.ListOptions).WithFilters(filters)
|
||||||
|
filteredPods, err = pods.List(bt.conn, options)
|
||||||
Expect(err).To(BeNil())
|
Expect(err).To(BeNil())
|
||||||
Expect(len(filteredPods)).To(BeNumerically("==", 1))
|
Expect(len(filteredPods)).To(BeNumerically("==", 1))
|
||||||
names = names[:0]
|
names = names[:0]
|
||||||
@ -168,7 +173,7 @@ var _ = Describe("Podman pods", func() {
|
|||||||
// TODO fix this
|
// TODO fix this
|
||||||
Skip("Pod behavior is jacked right now.")
|
Skip("Pod behavior is jacked right now.")
|
||||||
// Pause invalid container
|
// Pause invalid container
|
||||||
_, err := pods.Pause(bt.conn, "dummyName")
|
_, err := pods.Pause(bt.conn, "dummyName", nil)
|
||||||
Expect(err).ToNot(BeNil())
|
Expect(err).ToNot(BeNil())
|
||||||
code, _ := bindings.CheckResponseCode(err)
|
code, _ := bindings.CheckResponseCode(err)
|
||||||
Expect(code).To(BeNumerically("==", http.StatusNotFound))
|
Expect(code).To(BeNumerically("==", http.StatusNotFound))
|
||||||
@ -180,9 +185,9 @@ var _ = Describe("Podman pods", func() {
|
|||||||
// Binding needs to be modified to inspect the pod state.
|
// Binding needs to be modified to inspect the pod state.
|
||||||
// Since we don't have a pod state we inspect the states of the containers within the pod.
|
// Since we don't have a pod state we inspect the states of the containers within the pod.
|
||||||
// Pause a valid container
|
// Pause a valid container
|
||||||
_, err = pods.Pause(bt.conn, newpod)
|
_, err = pods.Pause(bt.conn, newpod, nil)
|
||||||
Expect(err).To(BeNil())
|
Expect(err).To(BeNil())
|
||||||
response, err := pods.Inspect(bt.conn, newpod)
|
response, err := pods.Inspect(bt.conn, newpod, nil)
|
||||||
Expect(err).To(BeNil())
|
Expect(err).To(BeNil())
|
||||||
Expect(response.State).To(Equal(define.PodStatePaused))
|
Expect(response.State).To(Equal(define.PodStatePaused))
|
||||||
for _, i := range response.Containers {
|
for _, i := range response.Containers {
|
||||||
@ -191,9 +196,9 @@ var _ = Describe("Podman pods", func() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Unpause a valid container
|
// Unpause a valid container
|
||||||
_, err = pods.Unpause(bt.conn, newpod)
|
_, err = pods.Unpause(bt.conn, newpod, nil)
|
||||||
Expect(err).To(BeNil())
|
Expect(err).To(BeNil())
|
||||||
response, err = pods.Inspect(bt.conn, newpod)
|
response, err = pods.Inspect(bt.conn, newpod, nil)
|
||||||
Expect(err).To(BeNil())
|
Expect(err).To(BeNil())
|
||||||
Expect(response.State).To(Equal(define.PodStateRunning))
|
Expect(response.State).To(Equal(define.PodStateRunning))
|
||||||
for _, i := range response.Containers {
|
for _, i := range response.Containers {
|
||||||
@ -204,7 +209,7 @@ var _ = Describe("Podman pods", func() {
|
|||||||
|
|
||||||
It("start stop restart pod", func() {
|
It("start stop restart pod", func() {
|
||||||
// Start an invalid pod
|
// Start an invalid pod
|
||||||
_, err = pods.Start(bt.conn, "dummyName")
|
_, err = pods.Start(bt.conn, "dummyName", nil)
|
||||||
Expect(err).ToNot(BeNil())
|
Expect(err).ToNot(BeNil())
|
||||||
code, _ := bindings.CheckResponseCode(err)
|
code, _ := bindings.CheckResponseCode(err)
|
||||||
Expect(code).To(BeNumerically("==", http.StatusNotFound))
|
Expect(code).To(BeNumerically("==", http.StatusNotFound))
|
||||||
@ -216,16 +221,16 @@ var _ = Describe("Podman pods", func() {
|
|||||||
Expect(code).To(BeNumerically("==", http.StatusNotFound))
|
Expect(code).To(BeNumerically("==", http.StatusNotFound))
|
||||||
|
|
||||||
// Restart an invalid pod
|
// Restart an invalid pod
|
||||||
_, err = pods.Restart(bt.conn, "dummyName")
|
_, err = pods.Restart(bt.conn, "dummyName", nil)
|
||||||
Expect(err).ToNot(BeNil())
|
Expect(err).ToNot(BeNil())
|
||||||
code, _ = bindings.CheckResponseCode(err)
|
code, _ = bindings.CheckResponseCode(err)
|
||||||
Expect(code).To(BeNumerically("==", http.StatusNotFound))
|
Expect(code).To(BeNumerically("==", http.StatusNotFound))
|
||||||
|
|
||||||
// Start a valid pod and inspect status of each container
|
// Start a valid pod and inspect status of each container
|
||||||
_, err = pods.Start(bt.conn, newpod)
|
_, err = pods.Start(bt.conn, newpod, nil)
|
||||||
Expect(err).To(BeNil())
|
Expect(err).To(BeNil())
|
||||||
|
|
||||||
response, err := pods.Inspect(bt.conn, newpod)
|
response, err := pods.Inspect(bt.conn, newpod, nil)
|
||||||
Expect(err).To(BeNil())
|
Expect(err).To(BeNil())
|
||||||
Expect(response.State).To(Equal(define.PodStateRunning))
|
Expect(response.State).To(Equal(define.PodStateRunning))
|
||||||
for _, i := range response.Containers {
|
for _, i := range response.Containers {
|
||||||
@ -234,13 +239,13 @@ var _ = Describe("Podman pods", func() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Start an already running pod
|
// Start an already running pod
|
||||||
_, err = pods.Start(bt.conn, newpod)
|
_, err = pods.Start(bt.conn, newpod, nil)
|
||||||
Expect(err).To(BeNil())
|
Expect(err).To(BeNil())
|
||||||
|
|
||||||
// Stop the running pods
|
// Stop the running pods
|
||||||
_, err = pods.Stop(bt.conn, newpod, nil)
|
_, err = pods.Stop(bt.conn, newpod, nil)
|
||||||
Expect(err).To(BeNil())
|
Expect(err).To(BeNil())
|
||||||
response, _ = pods.Inspect(bt.conn, newpod)
|
response, _ = pods.Inspect(bt.conn, newpod, nil)
|
||||||
Expect(response.State).To(Equal(define.PodStateExited))
|
Expect(response.State).To(Equal(define.PodStateExited))
|
||||||
for _, i := range response.Containers {
|
for _, i := range response.Containers {
|
||||||
Expect(define.StringToContainerStatus(i.State)).
|
Expect(define.StringToContainerStatus(i.State)).
|
||||||
@ -251,9 +256,9 @@ var _ = Describe("Podman pods", func() {
|
|||||||
_, err = pods.Stop(bt.conn, newpod, nil)
|
_, err = pods.Stop(bt.conn, newpod, nil)
|
||||||
Expect(err).To(BeNil())
|
Expect(err).To(BeNil())
|
||||||
|
|
||||||
_, err = pods.Restart(bt.conn, newpod)
|
_, err = pods.Restart(bt.conn, newpod, nil)
|
||||||
Expect(err).To(BeNil())
|
Expect(err).To(BeNil())
|
||||||
response, _ = pods.Inspect(bt.conn, newpod)
|
response, _ = pods.Inspect(bt.conn, newpod, nil)
|
||||||
Expect(response.State).To(Equal(define.PodStateRunning))
|
Expect(response.State).To(Equal(define.PodStateRunning))
|
||||||
for _, i := range response.Containers {
|
for _, i := range response.Containers {
|
||||||
Expect(define.StringToContainerStatus(i.State)).
|
Expect(define.StringToContainerStatus(i.State)).
|
||||||
@ -267,7 +272,7 @@ var _ = Describe("Podman pods", func() {
|
|||||||
var newpod2 string = "newpod2"
|
var newpod2 string = "newpod2"
|
||||||
bt.Podcreate(&newpod2)
|
bt.Podcreate(&newpod2)
|
||||||
// No pods pruned since no pod in exited state
|
// No pods pruned since no pod in exited state
|
||||||
pruneResponse, err := pods.Prune(bt.conn)
|
pruneResponse, err := pods.Prune(bt.conn, nil)
|
||||||
Expect(err).To(BeNil())
|
Expect(err).To(BeNil())
|
||||||
podSummary, err := pods.List(bt.conn, nil)
|
podSummary, err := pods.List(bt.conn, nil)
|
||||||
Expect(err).To(BeNil())
|
Expect(err).To(BeNil())
|
||||||
@ -276,14 +281,14 @@ var _ = Describe("Podman pods", func() {
|
|||||||
// Prune only one pod which is in exited state.
|
// Prune only one pod which is in exited state.
|
||||||
// Start then stop a pod.
|
// Start then stop a pod.
|
||||||
// pod moves to exited state one pod should be pruned now.
|
// pod moves to exited state one pod should be pruned now.
|
||||||
_, err = pods.Start(bt.conn, newpod)
|
_, err = pods.Start(bt.conn, newpod, nil)
|
||||||
Expect(err).To(BeNil())
|
Expect(err).To(BeNil())
|
||||||
_, err = pods.Stop(bt.conn, newpod, nil)
|
_, err = pods.Stop(bt.conn, newpod, nil)
|
||||||
Expect(err).To(BeNil())
|
Expect(err).To(BeNil())
|
||||||
response, err := pods.Inspect(bt.conn, newpod)
|
response, err := pods.Inspect(bt.conn, newpod, nil)
|
||||||
Expect(err).To(BeNil())
|
Expect(err).To(BeNil())
|
||||||
Expect(response.State).To(Equal(define.PodStateExited))
|
Expect(response.State).To(Equal(define.PodStateExited))
|
||||||
pruneResponse, err = pods.Prune(bt.conn)
|
pruneResponse, err = pods.Prune(bt.conn, nil)
|
||||||
Expect(err).To(BeNil())
|
Expect(err).To(BeNil())
|
||||||
// Validate status and record pod id of pod to be pruned
|
// Validate status and record pod id of pod to be pruned
|
||||||
Expect(response.State).To(Equal(define.PodStateExited))
|
Expect(response.State).To(Equal(define.PodStateExited))
|
||||||
@ -298,13 +303,13 @@ var _ = Describe("Podman pods", func() {
|
|||||||
|
|
||||||
// Test prune multiple pods.
|
// Test prune multiple pods.
|
||||||
bt.Podcreate(&newpod)
|
bt.Podcreate(&newpod)
|
||||||
_, err = pods.Start(bt.conn, newpod)
|
_, err = pods.Start(bt.conn, newpod, nil)
|
||||||
Expect(err).To(BeNil())
|
Expect(err).To(BeNil())
|
||||||
_, err = pods.Start(bt.conn, newpod2)
|
_, err = pods.Start(bt.conn, newpod2, nil)
|
||||||
Expect(err).To(BeNil())
|
Expect(err).To(BeNil())
|
||||||
_, err = pods.Stop(bt.conn, newpod, nil)
|
_, err = pods.Stop(bt.conn, newpod, nil)
|
||||||
Expect(err).To(BeNil())
|
Expect(err).To(BeNil())
|
||||||
response, err = pods.Inspect(bt.conn, newpod)
|
response, err = pods.Inspect(bt.conn, newpod, nil)
|
||||||
Expect(err).To(BeNil())
|
Expect(err).To(BeNil())
|
||||||
Expect(response.State).To(Equal(define.PodStateExited))
|
Expect(response.State).To(Equal(define.PodStateExited))
|
||||||
for _, i := range response.Containers {
|
for _, i := range response.Containers {
|
||||||
@ -313,14 +318,14 @@ var _ = Describe("Podman pods", func() {
|
|||||||
}
|
}
|
||||||
_, err = pods.Stop(bt.conn, newpod2, nil)
|
_, err = pods.Stop(bt.conn, newpod2, nil)
|
||||||
Expect(err).To(BeNil())
|
Expect(err).To(BeNil())
|
||||||
response, err = pods.Inspect(bt.conn, newpod2)
|
response, err = pods.Inspect(bt.conn, newpod2, nil)
|
||||||
Expect(err).To(BeNil())
|
Expect(err).To(BeNil())
|
||||||
Expect(response.State).To(Equal(define.PodStateExited))
|
Expect(response.State).To(Equal(define.PodStateExited))
|
||||||
for _, i := range response.Containers {
|
for _, i := range response.Containers {
|
||||||
Expect(define.StringToContainerStatus(i.State)).
|
Expect(define.StringToContainerStatus(i.State)).
|
||||||
To(Equal(define.ContainerStateExited))
|
To(Equal(define.ContainerStateExited))
|
||||||
}
|
}
|
||||||
_, err = pods.Prune(bt.conn)
|
_, err = pods.Prune(bt.conn, nil)
|
||||||
Expect(err).To(BeNil())
|
Expect(err).To(BeNil())
|
||||||
podSummary, err = pods.List(bt.conn, nil)
|
podSummary, err = pods.List(bt.conn, nil)
|
||||||
Expect(err).To(BeNil())
|
Expect(err).To(BeNil())
|
||||||
@ -330,7 +335,7 @@ var _ = Describe("Podman pods", func() {
|
|||||||
It("simple create pod", func() {
|
It("simple create pod", func() {
|
||||||
ps := specgen.PodSpecGenerator{}
|
ps := specgen.PodSpecGenerator{}
|
||||||
ps.Name = "foobar"
|
ps.Name = "foobar"
|
||||||
_, err := pods.CreatePodFromSpec(bt.conn, &ps)
|
_, err := pods.CreatePodFromSpec(bt.conn, &ps, nil)
|
||||||
Expect(err).To(BeNil())
|
Expect(err).To(BeNil())
|
||||||
|
|
||||||
exists, err := pods.Exists(bt.conn, "foobar")
|
exists, err := pods.Exists(bt.conn, "foobar")
|
||||||
@ -343,7 +348,7 @@ var _ = Describe("Podman pods", func() {
|
|||||||
var name string = "podA"
|
var name string = "podA"
|
||||||
|
|
||||||
bt.Podcreate(&name)
|
bt.Podcreate(&name)
|
||||||
_, err := pods.Start(bt.conn, name)
|
_, err := pods.Start(bt.conn, name, nil)
|
||||||
Expect(err).To(BeNil())
|
Expect(err).To(BeNil())
|
||||||
|
|
||||||
// By name
|
// By name
|
||||||
@ -351,7 +356,8 @@ var _ = Describe("Podman pods", func() {
|
|||||||
Expect(err).To(BeNil())
|
Expect(err).To(BeNil())
|
||||||
|
|
||||||
// With descriptors
|
// With descriptors
|
||||||
output, err := pods.Top(bt.conn, name, []string{"user,pid,hpid"})
|
options := new(pods.TopOptions).WithDescriptors([]string{"user,pid,hpid"})
|
||||||
|
output, err := pods.Top(bt.conn, name, options)
|
||||||
Expect(err).To(BeNil())
|
Expect(err).To(BeNil())
|
||||||
header := strings.Split(output[0], "\t")
|
header := strings.Split(output[0], "\t")
|
||||||
for _, d := range []string{"USER", "PID", "HPID"} {
|
for _, d := range []string{"USER", "PID", "HPID"} {
|
||||||
@ -363,7 +369,8 @@ var _ = Describe("Podman pods", func() {
|
|||||||
Expect(err).ToNot(BeNil())
|
Expect(err).ToNot(BeNil())
|
||||||
|
|
||||||
// With bogus descriptors
|
// With bogus descriptors
|
||||||
_, err = pods.Top(bt.conn, name, []string{"Me,Neither"})
|
options = new(pods.TopOptions).WithDescriptors([]string{"Me,Neither"})
|
||||||
|
_, err = pods.Top(bt.conn, name, options)
|
||||||
Expect(err).ToNot(BeNil())
|
Expect(err).ToNot(BeNil())
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
@ -65,7 +65,7 @@ var _ = Describe("Podman system", func() {
|
|||||||
|
|
||||||
It("podman system prune - pod,container stopped", func() {
|
It("podman system prune - pod,container stopped", func() {
|
||||||
// Start and stop a pod to enter in exited state.
|
// Start and stop a pod to enter in exited state.
|
||||||
_, err := pods.Start(bt.conn, newpod)
|
_, err := pods.Start(bt.conn, newpod, nil)
|
||||||
Expect(err).To(BeNil())
|
Expect(err).To(BeNil())
|
||||||
_, err = pods.Stop(bt.conn, newpod, nil)
|
_, err = pods.Stop(bt.conn, newpod, nil)
|
||||||
Expect(err).To(BeNil())
|
Expect(err).To(BeNil())
|
||||||
@ -90,7 +90,7 @@ var _ = Describe("Podman system", func() {
|
|||||||
|
|
||||||
It("podman system prune running alpine container", func() {
|
It("podman system prune running alpine container", func() {
|
||||||
// Start and stop a pod to enter in exited state.
|
// Start and stop a pod to enter in exited state.
|
||||||
_, err := pods.Start(bt.conn, newpod)
|
_, err := pods.Start(bt.conn, newpod, nil)
|
||||||
Expect(err).To(BeNil())
|
Expect(err).To(BeNil())
|
||||||
_, err = pods.Stop(bt.conn, newpod, nil)
|
_, err = pods.Stop(bt.conn, newpod, nil)
|
||||||
Expect(err).To(BeNil())
|
Expect(err).To(BeNil())
|
||||||
@ -126,7 +126,7 @@ var _ = Describe("Podman system", func() {
|
|||||||
|
|
||||||
It("podman system prune running alpine container volume prune", func() {
|
It("podman system prune running alpine container volume prune", func() {
|
||||||
// Start a pod and leave it running
|
// Start a pod and leave it running
|
||||||
_, err := pods.Start(bt.conn, newpod)
|
_, err := pods.Start(bt.conn, newpod, nil)
|
||||||
Expect(err).To(BeNil())
|
Expect(err).To(BeNil())
|
||||||
|
|
||||||
// Start and stop a container to enter in exited state.
|
// Start and stop a container to enter in exited state.
|
||||||
|
@ -90,7 +90,7 @@ func getPodsByContext(contextWithConnection context.Context, all bool, namesOrID
|
|||||||
// First determine if the pod exists by doing an inspect.
|
// First determine if the pod exists by doing an inspect.
|
||||||
// Inspect takes supports names and IDs and let's us determine
|
// Inspect takes supports names and IDs and let's us determine
|
||||||
// a containers full ID.
|
// a containers full ID.
|
||||||
inspectData, err := pods.Inspect(contextWithConnection, nameOrID)
|
inspectData, err := pods.Inspect(contextWithConnection, nameOrID, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if errorhandling.Contains(err, define.ErrNoSuchPod) {
|
if errorhandling.Contains(err, define.ErrNoSuchPod) {
|
||||||
return nil, errors.Wrapf(define.ErrNoSuchPod, "unable to find pod %q", nameOrID)
|
return nil, errors.Wrapf(define.ErrNoSuchPod, "unable to find pod %q", nameOrID)
|
||||||
|
@ -16,19 +16,20 @@ func (ic *ContainerEngine) PodExists(ctx context.Context, nameOrID string) (*ent
|
|||||||
return &entities.BoolReport{Value: exists}, err
|
return &entities.BoolReport{Value: exists}, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (ic *ContainerEngine) PodKill(ctx context.Context, namesOrIds []string, options entities.PodKillOptions) ([]*entities.PodKillReport, error) {
|
func (ic *ContainerEngine) PodKill(ctx context.Context, namesOrIds []string, opts entities.PodKillOptions) ([]*entities.PodKillReport, error) {
|
||||||
_, err := util.ParseSignal(options.Signal)
|
_, err := util.ParseSignal(opts.Signal)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
foundPods, err := getPodsByContext(ic.ClientCxt, options.All, namesOrIds)
|
foundPods, err := getPodsByContext(ic.ClientCxt, opts.All, namesOrIds)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
reports := make([]*entities.PodKillReport, 0, len(foundPods))
|
reports := make([]*entities.PodKillReport, 0, len(foundPods))
|
||||||
|
options := new(pods.KillOptions).WithSignal(opts.Signal)
|
||||||
for _, p := range foundPods {
|
for _, p := range foundPods {
|
||||||
response, err := pods.Kill(ic.ClientCxt, p.Id, &options.Signal)
|
response, err := pods.Kill(ic.ClientCxt, p.Id, options)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
report := entities.PodKillReport{
|
report := entities.PodKillReport{
|
||||||
Errs: []error{err},
|
Errs: []error{err},
|
||||||
@ -49,7 +50,7 @@ func (ic *ContainerEngine) PodPause(ctx context.Context, namesOrIds []string, op
|
|||||||
}
|
}
|
||||||
reports := make([]*entities.PodPauseReport, 0, len(foundPods))
|
reports := make([]*entities.PodPauseReport, 0, len(foundPods))
|
||||||
for _, p := range foundPods {
|
for _, p := range foundPods {
|
||||||
response, err := pods.Pause(ic.ClientCxt, p.Id)
|
response, err := pods.Pause(ic.ClientCxt, p.Id, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
report := entities.PodPauseReport{
|
report := entities.PodPauseReport{
|
||||||
Errs: []error{err},
|
Errs: []error{err},
|
||||||
@ -70,7 +71,7 @@ func (ic *ContainerEngine) PodUnpause(ctx context.Context, namesOrIds []string,
|
|||||||
}
|
}
|
||||||
reports := make([]*entities.PodUnpauseReport, 0, len(foundPods))
|
reports := make([]*entities.PodUnpauseReport, 0, len(foundPods))
|
||||||
for _, p := range foundPods {
|
for _, p := range foundPods {
|
||||||
response, err := pods.Unpause(ic.ClientCxt, p.Id)
|
response, err := pods.Unpause(ic.ClientCxt, p.Id, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
report := entities.PodUnpauseReport{
|
report := entities.PodUnpauseReport{
|
||||||
Errs: []error{err},
|
Errs: []error{err},
|
||||||
@ -84,18 +85,19 @@ func (ic *ContainerEngine) PodUnpause(ctx context.Context, namesOrIds []string,
|
|||||||
return reports, nil
|
return reports, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (ic *ContainerEngine) PodStop(ctx context.Context, namesOrIds []string, options entities.PodStopOptions) ([]*entities.PodStopReport, error) {
|
func (ic *ContainerEngine) PodStop(ctx context.Context, namesOrIds []string, opts entities.PodStopOptions) ([]*entities.PodStopReport, error) {
|
||||||
timeout := -1
|
timeout := -1
|
||||||
foundPods, err := getPodsByContext(ic.ClientCxt, options.All, namesOrIds)
|
foundPods, err := getPodsByContext(ic.ClientCxt, opts.All, namesOrIds)
|
||||||
if err != nil && !(options.Ignore && errors.Cause(err) == define.ErrNoSuchPod) {
|
if err != nil && !(opts.Ignore && errors.Cause(err) == define.ErrNoSuchPod) {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if options.Timeout != -1 {
|
if opts.Timeout != -1 {
|
||||||
timeout = options.Timeout
|
timeout = opts.Timeout
|
||||||
}
|
}
|
||||||
reports := make([]*entities.PodStopReport, 0, len(foundPods))
|
reports := make([]*entities.PodStopReport, 0, len(foundPods))
|
||||||
|
options := new(pods.StopOptions).WithTimeout(timeout)
|
||||||
for _, p := range foundPods {
|
for _, p := range foundPods {
|
||||||
response, err := pods.Stop(ic.ClientCxt, p.Id, &timeout)
|
response, err := pods.Stop(ic.ClientCxt, p.Id, options)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
report := entities.PodStopReport{
|
report := entities.PodStopReport{
|
||||||
Errs: []error{err},
|
Errs: []error{err},
|
||||||
@ -116,7 +118,7 @@ func (ic *ContainerEngine) PodRestart(ctx context.Context, namesOrIds []string,
|
|||||||
}
|
}
|
||||||
reports := make([]*entities.PodRestartReport, 0, len(foundPods))
|
reports := make([]*entities.PodRestartReport, 0, len(foundPods))
|
||||||
for _, p := range foundPods {
|
for _, p := range foundPods {
|
||||||
response, err := pods.Restart(ic.ClientCxt, p.Id)
|
response, err := pods.Restart(ic.ClientCxt, p.Id, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
report := entities.PodRestartReport{
|
report := entities.PodRestartReport{
|
||||||
Errs: []error{err},
|
Errs: []error{err},
|
||||||
@ -137,7 +139,7 @@ func (ic *ContainerEngine) PodStart(ctx context.Context, namesOrIds []string, op
|
|||||||
}
|
}
|
||||||
reports := make([]*entities.PodStartReport, 0, len(foundPods))
|
reports := make([]*entities.PodStartReport, 0, len(foundPods))
|
||||||
for _, p := range foundPods {
|
for _, p := range foundPods {
|
||||||
response, err := pods.Start(ic.ClientCxt, p.Id)
|
response, err := pods.Start(ic.ClientCxt, p.Id, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
report := entities.PodStartReport{
|
report := entities.PodStartReport{
|
||||||
Errs: []error{err},
|
Errs: []error{err},
|
||||||
@ -151,14 +153,15 @@ func (ic *ContainerEngine) PodStart(ctx context.Context, namesOrIds []string, op
|
|||||||
return reports, nil
|
return reports, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (ic *ContainerEngine) PodRm(ctx context.Context, namesOrIds []string, options entities.PodRmOptions) ([]*entities.PodRmReport, error) {
|
func (ic *ContainerEngine) PodRm(ctx context.Context, namesOrIds []string, opts entities.PodRmOptions) ([]*entities.PodRmReport, error) {
|
||||||
foundPods, err := getPodsByContext(ic.ClientCxt, options.All, namesOrIds)
|
foundPods, err := getPodsByContext(ic.ClientCxt, opts.All, namesOrIds)
|
||||||
if err != nil && !(options.Ignore && errors.Cause(err) == define.ErrNoSuchPod) {
|
if err != nil && !(opts.Ignore && errors.Cause(err) == define.ErrNoSuchPod) {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
reports := make([]*entities.PodRmReport, 0, len(foundPods))
|
reports := make([]*entities.PodRmReport, 0, len(foundPods))
|
||||||
|
options := new(pods.RemoveOptions).WithForce(opts.Force)
|
||||||
for _, p := range foundPods {
|
for _, p := range foundPods {
|
||||||
response, err := pods.Remove(ic.ClientCxt, p.Id, &options.Force)
|
response, err := pods.Remove(ic.ClientCxt, p.Id, options)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
report := entities.PodRmReport{
|
report := entities.PodRmReport{
|
||||||
Err: err,
|
Err: err,
|
||||||
@ -173,32 +176,33 @@ func (ic *ContainerEngine) PodRm(ctx context.Context, namesOrIds []string, optio
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (ic *ContainerEngine) PodPrune(ctx context.Context, opts entities.PodPruneOptions) ([]*entities.PodPruneReport, error) {
|
func (ic *ContainerEngine) PodPrune(ctx context.Context, opts entities.PodPruneOptions) ([]*entities.PodPruneReport, error) {
|
||||||
return pods.Prune(ic.ClientCxt)
|
return pods.Prune(ic.ClientCxt, nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (ic *ContainerEngine) PodCreate(ctx context.Context, opts entities.PodCreateOptions) (*entities.PodCreateReport, error) {
|
func (ic *ContainerEngine) PodCreate(ctx context.Context, opts entities.PodCreateOptions) (*entities.PodCreateReport, error) {
|
||||||
podSpec := specgen.NewPodSpecGenerator()
|
podSpec := specgen.NewPodSpecGenerator()
|
||||||
opts.ToPodSpecGen(podSpec)
|
opts.ToPodSpecGen(podSpec)
|
||||||
return pods.CreatePodFromSpec(ic.ClientCxt, podSpec)
|
return pods.CreatePodFromSpec(ic.ClientCxt, podSpec, nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (ic *ContainerEngine) PodTop(ctx context.Context, options entities.PodTopOptions) (*entities.StringSliceReport, error) {
|
func (ic *ContainerEngine) PodTop(ctx context.Context, opts entities.PodTopOptions) (*entities.StringSliceReport, error) {
|
||||||
switch {
|
switch {
|
||||||
case options.Latest:
|
case opts.Latest:
|
||||||
return nil, errors.New("latest is not supported")
|
return nil, errors.New("latest is not supported")
|
||||||
case options.NameOrID == "":
|
case opts.NameOrID == "":
|
||||||
return nil, errors.New("NameOrID must be specified")
|
return nil, errors.New("NameOrID must be specified")
|
||||||
}
|
}
|
||||||
|
options := new(pods.TopOptions).WithDescriptors(opts.Descriptors)
|
||||||
topOutput, err := pods.Top(ic.ClientCxt, options.NameOrID, options.Descriptors)
|
topOutput, err := pods.Top(ic.ClientCxt, opts.NameOrID, options)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
return &entities.StringSliceReport{Value: topOutput}, nil
|
return &entities.StringSliceReport{Value: topOutput}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (ic *ContainerEngine) PodPs(ctx context.Context, options entities.PodPSOptions) ([]*entities.ListPodsReport, error) {
|
func (ic *ContainerEngine) PodPs(ctx context.Context, opts entities.PodPSOptions) ([]*entities.ListPodsReport, error) {
|
||||||
return pods.List(ic.ClientCxt, options.Filters)
|
options := new(pods.ListOptions).WithFilters(opts.Filters)
|
||||||
|
return pods.List(ic.ClientCxt, options)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (ic *ContainerEngine) PodInspect(ctx context.Context, options entities.PodInspectOptions) (*entities.PodInspectReport, error) {
|
func (ic *ContainerEngine) PodInspect(ctx context.Context, options entities.PodInspectOptions) (*entities.PodInspectReport, error) {
|
||||||
@ -208,9 +212,10 @@ func (ic *ContainerEngine) PodInspect(ctx context.Context, options entities.PodI
|
|||||||
case options.NameOrID == "":
|
case options.NameOrID == "":
|
||||||
return nil, errors.New("NameOrID must be specified")
|
return nil, errors.New("NameOrID must be specified")
|
||||||
}
|
}
|
||||||
return pods.Inspect(ic.ClientCxt, options.NameOrID)
|
return pods.Inspect(ic.ClientCxt, options.NameOrID, nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (ic *ContainerEngine) PodStats(ctx context.Context, namesOrIds []string, options entities.PodStatsOptions) ([]*entities.PodStatsReport, error) {
|
func (ic *ContainerEngine) PodStats(ctx context.Context, namesOrIds []string, opts entities.PodStatsOptions) ([]*entities.PodStatsReport, error) {
|
||||||
|
options := new(pods.StatsOptions).WithAll(opts.All)
|
||||||
return pods.Stats(ic.ClientCxt, namesOrIds, options)
|
return pods.Stats(ic.ClientCxt, namesOrIds, options)
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user