diff options
author | Paul Holzinger <pholzing@redhat.com> | 2022-03-11 15:02:04 +0100 |
---|---|---|
committer | Paul Holzinger <pholzing@redhat.com> | 2022-03-15 14:46:29 +0100 |
commit | 918fc88a983ea1c1ee7e0abb0fc1dce3c0a35be3 (patch) | |
tree | c967a39935b452f4cc61f425188bdbf42111c10a /vendor/k8s.io/apimachinery/pkg/conversion | |
parent | 68ce83fe919f2d37762b8b746a73495f45e550f3 (diff) | |
download | podman-918fc88a983ea1c1ee7e0abb0fc1dce3c0a35be3.tar.gz podman-918fc88a983ea1c1ee7e0abb0fc1dce3c0a35be3.tar.bz2 podman-918fc88a983ea1c1ee7e0abb0fc1dce3c0a35be3.zip |
move k8s deps into podman
We only need a small part of the k8s dependencies but they are the
biggest dependencies in podman by far. Moving them into podman allows us
to remove the unnecessary parts.
Signed-off-by: Paul Holzinger <pholzing@redhat.com>
Diffstat (limited to 'vendor/k8s.io/apimachinery/pkg/conversion')
6 files changed, 0 insertions, 545 deletions
diff --git a/vendor/k8s.io/apimachinery/pkg/conversion/converter.go b/vendor/k8s.io/apimachinery/pkg/conversion/converter.go deleted file mode 100644 index 791348476..000000000 --- a/vendor/k8s.io/apimachinery/pkg/conversion/converter.go +++ /dev/null @@ -1,233 +0,0 @@ -/* -Copyright 2014 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package conversion - -import ( - "fmt" - "reflect" -) - -type typePair struct { - source reflect.Type - dest reflect.Type -} - -type NameFunc func(t reflect.Type) string - -var DefaultNameFunc = func(t reflect.Type) string { return t.Name() } - -// ConversionFunc converts the object a into the object b, reusing arrays or objects -// or pointers if necessary. It should return an error if the object cannot be converted -// or if some data is invalid. If you do not wish a and b to share fields or nested -// objects, you must copy a before calling this function. -type ConversionFunc func(a, b interface{}, scope Scope) error - -// Converter knows how to convert one type to another. -type Converter struct { - // Map from the conversion pair to a function which can - // do the conversion. - conversionFuncs ConversionFuncs - generatedConversionFuncs ConversionFuncs - - // Set of conversions that should be treated as a no-op - ignoredConversions map[typePair]struct{} - ignoredUntypedConversions map[typePair]struct{} - - // nameFunc is called to retrieve the name of a type; this name is used for the - // purpose of deciding whether two types match or not (i.e., will we attempt to - // do a conversion). The default returns the go type name. - nameFunc func(t reflect.Type) string -} - -// NewConverter creates a new Converter object. -func NewConverter(nameFn NameFunc) *Converter { - c := &Converter{ - conversionFuncs: NewConversionFuncs(), - generatedConversionFuncs: NewConversionFuncs(), - ignoredConversions: make(map[typePair]struct{}), - ignoredUntypedConversions: make(map[typePair]struct{}), - nameFunc: nameFn, - } - c.RegisterUntypedConversionFunc( - (*[]byte)(nil), (*[]byte)(nil), - func(a, b interface{}, s Scope) error { - return Convert_Slice_byte_To_Slice_byte(a.(*[]byte), b.(*[]byte), s) - }, - ) - return c -} - -// WithConversions returns a Converter that is a copy of c but with the additional -// fns merged on top. -func (c *Converter) WithConversions(fns ConversionFuncs) *Converter { - copied := *c - copied.conversionFuncs = c.conversionFuncs.Merge(fns) - return &copied -} - -// DefaultMeta returns meta for a given type. -func (c *Converter) DefaultMeta(t reflect.Type) *Meta { - return &Meta{} -} - -// Convert_Slice_byte_To_Slice_byte prevents recursing into every byte -func Convert_Slice_byte_To_Slice_byte(in *[]byte, out *[]byte, s Scope) error { - if *in == nil { - *out = nil - return nil - } - *out = make([]byte, len(*in)) - copy(*out, *in) - return nil -} - -// Scope is passed to conversion funcs to allow them to continue an ongoing conversion. -// If multiple converters exist in the system, Scope will allow you to use the correct one -// from a conversion function--that is, the one your conversion function was called by. -type Scope interface { - // Call Convert to convert sub-objects. Note that if you call it with your own exact - // parameters, you'll run out of stack space before anything useful happens. - Convert(src, dest interface{}) error - - // Meta returns any information originally passed to Convert. - Meta() *Meta -} - -func NewConversionFuncs() ConversionFuncs { - return ConversionFuncs{ - untyped: make(map[typePair]ConversionFunc), - } -} - -type ConversionFuncs struct { - untyped map[typePair]ConversionFunc -} - -// AddUntyped adds the provided conversion function to the lookup table for the types that are -// supplied as a and b. a and b must be pointers or an error is returned. This method overwrites -// previously defined functions. -func (c ConversionFuncs) AddUntyped(a, b interface{}, fn ConversionFunc) error { - tA, tB := reflect.TypeOf(a), reflect.TypeOf(b) - if tA.Kind() != reflect.Ptr { - return fmt.Errorf("the type %T must be a pointer to register as an untyped conversion", a) - } - if tB.Kind() != reflect.Ptr { - return fmt.Errorf("the type %T must be a pointer to register as an untyped conversion", b) - } - c.untyped[typePair{tA, tB}] = fn - return nil -} - -// Merge returns a new ConversionFuncs that contains all conversions from -// both other and c, with other conversions taking precedence. -func (c ConversionFuncs) Merge(other ConversionFuncs) ConversionFuncs { - merged := NewConversionFuncs() - for k, v := range c.untyped { - merged.untyped[k] = v - } - for k, v := range other.untyped { - merged.untyped[k] = v - } - return merged -} - -// Meta is supplied by Scheme, when it calls Convert. -type Meta struct { - // Context is an optional field that callers may use to pass info to conversion functions. - Context interface{} -} - -// scope contains information about an ongoing conversion. -type scope struct { - converter *Converter - meta *Meta -} - -// Convert continues a conversion. -func (s *scope) Convert(src, dest interface{}) error { - return s.converter.Convert(src, dest, s.meta) -} - -// Meta returns the meta object that was originally passed to Convert. -func (s *scope) Meta() *Meta { - return s.meta -} - -// RegisterUntypedConversionFunc registers a function that converts between a and b by passing objects of those -// types to the provided function. The function *must* accept objects of a and b - this machinery will not enforce -// any other guarantee. -func (c *Converter) RegisterUntypedConversionFunc(a, b interface{}, fn ConversionFunc) error { - return c.conversionFuncs.AddUntyped(a, b, fn) -} - -// RegisterGeneratedUntypedConversionFunc registers a function that converts between a and b by passing objects of those -// types to the provided function. The function *must* accept objects of a and b - this machinery will not enforce -// any other guarantee. -func (c *Converter) RegisterGeneratedUntypedConversionFunc(a, b interface{}, fn ConversionFunc) error { - return c.generatedConversionFuncs.AddUntyped(a, b, fn) -} - -// RegisterIgnoredConversion registers a "no-op" for conversion, where any requested -// conversion between from and to is ignored. -func (c *Converter) RegisterIgnoredConversion(from, to interface{}) error { - typeFrom := reflect.TypeOf(from) - typeTo := reflect.TypeOf(to) - if reflect.TypeOf(from).Kind() != reflect.Ptr { - return fmt.Errorf("expected pointer arg for 'from' param 0, got: %v", typeFrom) - } - if typeTo.Kind() != reflect.Ptr { - return fmt.Errorf("expected pointer arg for 'to' param 1, got: %v", typeTo) - } - c.ignoredConversions[typePair{typeFrom.Elem(), typeTo.Elem()}] = struct{}{} - c.ignoredUntypedConversions[typePair{typeFrom, typeTo}] = struct{}{} - return nil -} - -// Convert will translate src to dest if it knows how. Both must be pointers. -// If no conversion func is registered and the default copying mechanism -// doesn't work on this type pair, an error will be returned. -// 'meta' is given to allow you to pass information to conversion functions, -// it is not used by Convert() other than storing it in the scope. -// Not safe for objects with cyclic references! -func (c *Converter) Convert(src, dest interface{}, meta *Meta) error { - pair := typePair{reflect.TypeOf(src), reflect.TypeOf(dest)} - scope := &scope{ - converter: c, - meta: meta, - } - - // ignore conversions of this type - if _, ok := c.ignoredUntypedConversions[pair]; ok { - return nil - } - if fn, ok := c.conversionFuncs.untyped[pair]; ok { - return fn(src, dest, scope) - } - if fn, ok := c.generatedConversionFuncs.untyped[pair]; ok { - return fn(src, dest, scope) - } - - dv, err := EnforcePtr(dest) - if err != nil { - return err - } - sv, err := EnforcePtr(src) - if err != nil { - return err - } - return fmt.Errorf("converting (%s) to (%s): unknown conversion", sv.Type(), dv.Type()) -} diff --git a/vendor/k8s.io/apimachinery/pkg/conversion/deep_equal.go b/vendor/k8s.io/apimachinery/pkg/conversion/deep_equal.go deleted file mode 100644 index f21abe1e5..000000000 --- a/vendor/k8s.io/apimachinery/pkg/conversion/deep_equal.go +++ /dev/null @@ -1,36 +0,0 @@ -/* -Copyright 2015 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package conversion - -import ( - "k8s.io/apimachinery/third_party/forked/golang/reflect" -) - -// The code for this type must be located in third_party, since it forks from -// go std lib. But for convenience, we expose the type here, too. -type Equalities struct { - reflect.Equalities -} - -// For convenience, panics on errors -func EqualitiesOrDie(funcs ...interface{}) Equalities { - e := Equalities{reflect.Equalities{}} - if err := e.AddFuncs(funcs...); err != nil { - panic(err) - } - return e -} diff --git a/vendor/k8s.io/apimachinery/pkg/conversion/doc.go b/vendor/k8s.io/apimachinery/pkg/conversion/doc.go deleted file mode 100644 index 7415d8164..000000000 --- a/vendor/k8s.io/apimachinery/pkg/conversion/doc.go +++ /dev/null @@ -1,24 +0,0 @@ -/* -Copyright 2014 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Package conversion provides go object versioning. -// -// Specifically, conversion provides a way for you to define multiple versions -// of the same object. You may write functions which implement conversion logic, -// but for the fields which did not change, copying is automated. This makes it -// easy to modify the structures you use in memory without affecting the format -// you store on disk or respond to in your external API calls. -package conversion // import "k8s.io/apimachinery/pkg/conversion" diff --git a/vendor/k8s.io/apimachinery/pkg/conversion/helper.go b/vendor/k8s.io/apimachinery/pkg/conversion/helper.go deleted file mode 100644 index 4ebc1ebc5..000000000 --- a/vendor/k8s.io/apimachinery/pkg/conversion/helper.go +++ /dev/null @@ -1,39 +0,0 @@ -/* -Copyright 2014 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package conversion - -import ( - "fmt" - "reflect" -) - -// EnforcePtr ensures that obj is a pointer of some sort. Returns a reflect.Value -// of the dereferenced pointer, ensuring that it is settable/addressable. -// Returns an error if this is not possible. -func EnforcePtr(obj interface{}) (reflect.Value, error) { - v := reflect.ValueOf(obj) - if v.Kind() != reflect.Ptr { - if v.Kind() == reflect.Invalid { - return reflect.Value{}, fmt.Errorf("expected pointer, but got invalid kind") - } - return reflect.Value{}, fmt.Errorf("expected pointer, but got %v type", v.Type()) - } - if v.IsNil() { - return reflect.Value{}, fmt.Errorf("expected pointer, but got nil") - } - return v.Elem(), nil -} diff --git a/vendor/k8s.io/apimachinery/pkg/conversion/queryparams/convert.go b/vendor/k8s.io/apimachinery/pkg/conversion/queryparams/convert.go deleted file mode 100644 index 2f0dd0074..000000000 --- a/vendor/k8s.io/apimachinery/pkg/conversion/queryparams/convert.go +++ /dev/null @@ -1,194 +0,0 @@ -/* -Copyright 2014 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package queryparams - -import ( - "fmt" - "net/url" - "reflect" - "strings" -) - -// Marshaler converts an object to a query parameter string representation -type Marshaler interface { - MarshalQueryParameter() (string, error) -} - -// Unmarshaler converts a string representation to an object -type Unmarshaler interface { - UnmarshalQueryParameter(string) error -} - -func jsonTag(field reflect.StructField) (string, bool) { - structTag := field.Tag.Get("json") - if len(structTag) == 0 { - return "", false - } - parts := strings.Split(structTag, ",") - tag := parts[0] - if tag == "-" { - tag = "" - } - omitempty := false - parts = parts[1:] - for _, part := range parts { - if part == "omitempty" { - omitempty = true - break - } - } - return tag, omitempty -} - -func isPointerKind(kind reflect.Kind) bool { - return kind == reflect.Ptr -} - -func isStructKind(kind reflect.Kind) bool { - return kind == reflect.Struct -} - -func isValueKind(kind reflect.Kind) bool { - switch kind { - case reflect.String, reflect.Bool, reflect.Int, reflect.Int8, reflect.Int16, - reflect.Int32, reflect.Int64, reflect.Uint, reflect.Uint8, - reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Float32, - reflect.Float64, reflect.Complex64, reflect.Complex128: - return true - default: - return false - } -} - -func zeroValue(value reflect.Value) bool { - return reflect.DeepEqual(reflect.Zero(value.Type()).Interface(), value.Interface()) -} - -func customMarshalValue(value reflect.Value) (reflect.Value, bool) { - // Return unless we implement a custom query marshaler - if !value.CanInterface() { - return reflect.Value{}, false - } - - marshaler, ok := value.Interface().(Marshaler) - if !ok { - if !isPointerKind(value.Kind()) && value.CanAddr() { - marshaler, ok = value.Addr().Interface().(Marshaler) - if !ok { - return reflect.Value{}, false - } - } else { - return reflect.Value{}, false - } - } - - // Don't invoke functions on nil pointers - // If the type implements MarshalQueryParameter, AND the tag is not omitempty, AND the value is a nil pointer, "" seems like a reasonable response - if isPointerKind(value.Kind()) && zeroValue(value) { - return reflect.ValueOf(""), true - } - - // Get the custom marshalled value - v, err := marshaler.MarshalQueryParameter() - if err != nil { - return reflect.Value{}, false - } - return reflect.ValueOf(v), true -} - -func addParam(values url.Values, tag string, omitempty bool, value reflect.Value) { - if omitempty && zeroValue(value) { - return - } - val := "" - iValue := fmt.Sprintf("%v", value.Interface()) - - if iValue != "<nil>" { - val = iValue - } - values.Add(tag, val) -} - -func addListOfParams(values url.Values, tag string, omitempty bool, list reflect.Value) { - for i := 0; i < list.Len(); i++ { - addParam(values, tag, omitempty, list.Index(i)) - } -} - -// Convert takes an object and converts it to a url.Values object using JSON tags as -// parameter names. Only top-level simple values, arrays, and slices are serialized. -// Embedded structs, maps, etc. will not be serialized. -func Convert(obj interface{}) (url.Values, error) { - result := url.Values{} - if obj == nil { - return result, nil - } - var sv reflect.Value - switch reflect.TypeOf(obj).Kind() { - case reflect.Ptr, reflect.Interface: - sv = reflect.ValueOf(obj).Elem() - default: - return nil, fmt.Errorf("expecting a pointer or interface") - } - st := sv.Type() - if !isStructKind(st.Kind()) { - return nil, fmt.Errorf("expecting a pointer to a struct") - } - - // Check all object fields - convertStruct(result, st, sv) - - return result, nil -} - -func convertStruct(result url.Values, st reflect.Type, sv reflect.Value) { - for i := 0; i < st.NumField(); i++ { - field := sv.Field(i) - tag, omitempty := jsonTag(st.Field(i)) - if len(tag) == 0 { - continue - } - ft := field.Type() - - kind := ft.Kind() - if isPointerKind(kind) { - ft = ft.Elem() - kind = ft.Kind() - if !field.IsNil() { - field = reflect.Indirect(field) - // If the field is non-nil, it should be added to params - // and the omitempty should be overwite to false - omitempty = false - } - } - - switch { - case isValueKind(kind): - addParam(result, tag, omitempty, field) - case kind == reflect.Array || kind == reflect.Slice: - if isValueKind(ft.Elem().Kind()) { - addListOfParams(result, tag, omitempty, field) - } - case isStructKind(kind) && !(zeroValue(field) && omitempty): - if marshalValue, ok := customMarshalValue(field); ok { - addParam(result, tag, omitempty, marshalValue) - } else { - convertStruct(result, ft, field) - } - } - } -} diff --git a/vendor/k8s.io/apimachinery/pkg/conversion/queryparams/doc.go b/vendor/k8s.io/apimachinery/pkg/conversion/queryparams/doc.go deleted file mode 100644 index 7b763de6f..000000000 --- a/vendor/k8s.io/apimachinery/pkg/conversion/queryparams/doc.go +++ /dev/null @@ -1,19 +0,0 @@ -/* -Copyright 2014 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Package queryparams provides conversion from versioned -// runtime objects to URL query values -package queryparams // import "k8s.io/apimachinery/pkg/conversion/queryparams" |