github.com/spotmaxtech/k8s-apimachinery-v0260@v0.0.1/pkg/apis/meta/v1/conversion.go (about)

     1  /*
     2  Copyright 2014 The Kubernetes Authors.
     3  
     4  Licensed under the Apache License, Version 2.0 (the "License");
     5  you may not use this file except in compliance with the License.
     6  You may obtain a copy of the License at
     7  
     8      http://www.apache.org/licenses/LICENSE-2.0
     9  
    10  Unless required by applicable law or agreed to in writing, software
    11  distributed under the License is distributed on an "AS IS" BASIS,
    12  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13  See the License for the specific language governing permissions and
    14  limitations under the License.
    15  */
    16  
    17  package v1
    18  
    19  import (
    20  	"fmt"
    21  	"net/url"
    22  	"strconv"
    23  	"strings"
    24  
    25  	"github.com/spotmaxtech/k8s-apimachinery-v0260/pkg/api/resource"
    26  	"github.com/spotmaxtech/k8s-apimachinery-v0260/pkg/conversion"
    27  	"github.com/spotmaxtech/k8s-apimachinery-v0260/pkg/fields"
    28  	"github.com/spotmaxtech/k8s-apimachinery-v0260/pkg/labels"
    29  	"github.com/spotmaxtech/k8s-apimachinery-v0260/pkg/types"
    30  	"github.com/spotmaxtech/k8s-apimachinery-v0260/pkg/util/intstr"
    31  )
    32  
    33  func Convert_Pointer_float64_To_float64(in **float64, out *float64, s conversion.Scope) error {
    34  	if *in == nil {
    35  		*out = 0
    36  		return nil
    37  	}
    38  	*out = float64(**in)
    39  	return nil
    40  }
    41  
    42  func Convert_float64_To_Pointer_float64(in *float64, out **float64, s conversion.Scope) error {
    43  	temp := float64(*in)
    44  	*out = &temp
    45  	return nil
    46  }
    47  
    48  func Convert_Pointer_int32_To_int32(in **int32, out *int32, s conversion.Scope) error {
    49  	if *in == nil {
    50  		*out = 0
    51  		return nil
    52  	}
    53  	*out = int32(**in)
    54  	return nil
    55  }
    56  
    57  func Convert_int32_To_Pointer_int32(in *int32, out **int32, s conversion.Scope) error {
    58  	temp := int32(*in)
    59  	*out = &temp
    60  	return nil
    61  }
    62  
    63  func Convert_Pointer_int64_To_int64(in **int64, out *int64, s conversion.Scope) error {
    64  	if *in == nil {
    65  		*out = 0
    66  		return nil
    67  	}
    68  	*out = int64(**in)
    69  	return nil
    70  }
    71  
    72  func Convert_int64_To_Pointer_int64(in *int64, out **int64, s conversion.Scope) error {
    73  	temp := int64(*in)
    74  	*out = &temp
    75  	return nil
    76  }
    77  
    78  func Convert_Pointer_int64_To_int(in **int64, out *int, s conversion.Scope) error {
    79  	if *in == nil {
    80  		*out = 0
    81  		return nil
    82  	}
    83  	*out = int(**in)
    84  	return nil
    85  }
    86  
    87  func Convert_int_To_Pointer_int64(in *int, out **int64, s conversion.Scope) error {
    88  	temp := int64(*in)
    89  	*out = &temp
    90  	return nil
    91  }
    92  
    93  func Convert_Pointer_string_To_string(in **string, out *string, s conversion.Scope) error {
    94  	if *in == nil {
    95  		*out = ""
    96  		return nil
    97  	}
    98  	*out = **in
    99  	return nil
   100  }
   101  
   102  func Convert_string_To_Pointer_string(in *string, out **string, s conversion.Scope) error {
   103  	if in == nil {
   104  		stringVar := ""
   105  		*out = &stringVar
   106  		return nil
   107  	}
   108  	*out = in
   109  	return nil
   110  }
   111  
   112  func Convert_Pointer_bool_To_bool(in **bool, out *bool, s conversion.Scope) error {
   113  	if *in == nil {
   114  		*out = false
   115  		return nil
   116  	}
   117  	*out = **in
   118  	return nil
   119  }
   120  
   121  func Convert_bool_To_Pointer_bool(in *bool, out **bool, s conversion.Scope) error {
   122  	if in == nil {
   123  		boolVar := false
   124  		*out = &boolVar
   125  		return nil
   126  	}
   127  	*out = in
   128  	return nil
   129  }
   130  
   131  // +k8s:conversion-fn=drop
   132  func Convert_v1_TypeMeta_To_v1_TypeMeta(in, out *TypeMeta, s conversion.Scope) error {
   133  	// These values are explicitly not copied
   134  	//out.APIVersion = in.APIVersion
   135  	//out.Kind = in.Kind
   136  	return nil
   137  }
   138  
   139  // +k8s:conversion-fn=copy-only
   140  func Convert_v1_ListMeta_To_v1_ListMeta(in, out *ListMeta, s conversion.Scope) error {
   141  	*out = *in
   142  	return nil
   143  }
   144  
   145  // +k8s:conversion-fn=copy-only
   146  func Convert_v1_DeleteOptions_To_v1_DeleteOptions(in, out *DeleteOptions, s conversion.Scope) error {
   147  	*out = *in
   148  	return nil
   149  }
   150  
   151  // +k8s:conversion-fn=copy-only
   152  func Convert_intstr_IntOrString_To_intstr_IntOrString(in, out *intstr.IntOrString, s conversion.Scope) error {
   153  	*out = *in
   154  	return nil
   155  }
   156  
   157  func Convert_Pointer_intstr_IntOrString_To_intstr_IntOrString(in **intstr.IntOrString, out *intstr.IntOrString, s conversion.Scope) error {
   158  	if *in == nil {
   159  		*out = intstr.IntOrString{} // zero value
   160  		return nil
   161  	}
   162  	*out = **in // copy
   163  	return nil
   164  }
   165  
   166  func Convert_intstr_IntOrString_To_Pointer_intstr_IntOrString(in *intstr.IntOrString, out **intstr.IntOrString, s conversion.Scope) error {
   167  	temp := *in // copy
   168  	*out = &temp
   169  	return nil
   170  }
   171  
   172  // +k8s:conversion-fn=copy-only
   173  func Convert_v1_Time_To_v1_Time(in *Time, out *Time, s conversion.Scope) error {
   174  	// Cannot deep copy these, because time.Time has unexported fields.
   175  	*out = *in
   176  	return nil
   177  }
   178  
   179  // +k8s:conversion-fn=copy-only
   180  func Convert_v1_MicroTime_To_v1_MicroTime(in *MicroTime, out *MicroTime, s conversion.Scope) error {
   181  	// Cannot deep copy these, because time.Time has unexported fields.
   182  	*out = *in
   183  	return nil
   184  }
   185  
   186  func Convert_Pointer_v1_Duration_To_v1_Duration(in **Duration, out *Duration, s conversion.Scope) error {
   187  	if *in == nil {
   188  		*out = Duration{} // zero duration
   189  		return nil
   190  	}
   191  	*out = **in // copy
   192  	return nil
   193  }
   194  
   195  func Convert_v1_Duration_To_Pointer_v1_Duration(in *Duration, out **Duration, s conversion.Scope) error {
   196  	temp := *in //copy
   197  	*out = &temp
   198  	return nil
   199  }
   200  
   201  // Convert_Slice_string_To_v1_Time allows converting a URL query parameter value
   202  func Convert_Slice_string_To_v1_Time(in *[]string, out *Time, s conversion.Scope) error {
   203  	str := ""
   204  	if len(*in) > 0 {
   205  		str = (*in)[0]
   206  	}
   207  	return out.UnmarshalQueryParameter(str)
   208  }
   209  
   210  func Convert_Slice_string_To_Pointer_v1_Time(in *[]string, out **Time, s conversion.Scope) error {
   211  	if in == nil {
   212  		return nil
   213  	}
   214  	str := ""
   215  	if len(*in) > 0 {
   216  		str = (*in)[0]
   217  	}
   218  	temp := Time{}
   219  	if err := temp.UnmarshalQueryParameter(str); err != nil {
   220  		return err
   221  	}
   222  	*out = &temp
   223  	return nil
   224  }
   225  
   226  func Convert_string_To_labels_Selector(in *string, out *labels.Selector, s conversion.Scope) error {
   227  	selector, err := labels.Parse(*in)
   228  	if err != nil {
   229  		return err
   230  	}
   231  	*out = selector
   232  	return nil
   233  }
   234  
   235  func Convert_string_To_fields_Selector(in *string, out *fields.Selector, s conversion.Scope) error {
   236  	selector, err := fields.ParseSelector(*in)
   237  	if err != nil {
   238  		return err
   239  	}
   240  	*out = selector
   241  	return nil
   242  }
   243  
   244  func Convert_labels_Selector_To_string(in *labels.Selector, out *string, s conversion.Scope) error {
   245  	if *in == nil {
   246  		return nil
   247  	}
   248  	*out = (*in).String()
   249  	return nil
   250  }
   251  
   252  func Convert_fields_Selector_To_string(in *fields.Selector, out *string, s conversion.Scope) error {
   253  	if *in == nil {
   254  		return nil
   255  	}
   256  	*out = (*in).String()
   257  	return nil
   258  }
   259  
   260  // +k8s:conversion-fn=copy-only
   261  func Convert_resource_Quantity_To_resource_Quantity(in *resource.Quantity, out *resource.Quantity, s conversion.Scope) error {
   262  	*out = *in
   263  	return nil
   264  }
   265  
   266  func Convert_Map_string_To_string_To_v1_LabelSelector(in *map[string]string, out *LabelSelector, s conversion.Scope) error {
   267  	if in == nil {
   268  		return nil
   269  	}
   270  	for labelKey, labelValue := range *in {
   271  		AddLabelToSelector(out, labelKey, labelValue)
   272  	}
   273  	return nil
   274  }
   275  
   276  func Convert_v1_LabelSelector_To_Map_string_To_string(in *LabelSelector, out *map[string]string, s conversion.Scope) error {
   277  	var err error
   278  	*out, err = LabelSelectorAsMap(in)
   279  	return err
   280  }
   281  
   282  // Convert_Slice_string_To_Slice_int32 converts multiple query parameters or
   283  // a single query parameter with a comma delimited value to multiple int32.
   284  // This is used for port forwarding which needs the ports as int32.
   285  func Convert_Slice_string_To_Slice_int32(in *[]string, out *[]int32, s conversion.Scope) error {
   286  	for _, s := range *in {
   287  		for _, v := range strings.Split(s, ",") {
   288  			x, err := strconv.ParseUint(v, 10, 16)
   289  			if err != nil {
   290  				return fmt.Errorf("cannot convert to []int32: %v", err)
   291  			}
   292  			*out = append(*out, int32(x))
   293  		}
   294  	}
   295  	return nil
   296  }
   297  
   298  // Convert_Slice_string_To_Pointer_v1_DeletionPropagation allows converting a URL query parameter propagationPolicy
   299  func Convert_Slice_string_To_Pointer_v1_DeletionPropagation(in *[]string, out **DeletionPropagation, s conversion.Scope) error {
   300  	var str string
   301  	if len(*in) > 0 {
   302  		str = (*in)[0]
   303  	} else {
   304  		str = ""
   305  	}
   306  	temp := DeletionPropagation(str)
   307  	*out = &temp
   308  	return nil
   309  }
   310  
   311  // Convert_Slice_string_To_v1_IncludeObjectPolicy allows converting a URL query parameter value
   312  func Convert_Slice_string_To_v1_IncludeObjectPolicy(in *[]string, out *IncludeObjectPolicy, s conversion.Scope) error {
   313  	if len(*in) > 0 {
   314  		*out = IncludeObjectPolicy((*in)[0])
   315  	}
   316  	return nil
   317  }
   318  
   319  // Convert_url_Values_To_v1_DeleteOptions allows converting a URL to DeleteOptions.
   320  func Convert_url_Values_To_v1_DeleteOptions(in *url.Values, out *DeleteOptions, s conversion.Scope) error {
   321  	if err := autoConvert_url_Values_To_v1_DeleteOptions(in, out, s); err != nil {
   322  		return err
   323  	}
   324  
   325  	uid := types.UID("")
   326  	if values, ok := (*in)["uid"]; ok && len(values) > 0 {
   327  		uid = types.UID(values[0])
   328  	}
   329  
   330  	resourceVersion := ""
   331  	if values, ok := (*in)["resourceVersion"]; ok && len(values) > 0 {
   332  		resourceVersion = values[0]
   333  	}
   334  
   335  	if len(uid) > 0 || len(resourceVersion) > 0 {
   336  		if out.Preconditions == nil {
   337  			out.Preconditions = &Preconditions{}
   338  		}
   339  		if len(uid) > 0 {
   340  			out.Preconditions.UID = &uid
   341  		}
   342  		if len(resourceVersion) > 0 {
   343  			out.Preconditions.ResourceVersion = &resourceVersion
   344  		}
   345  	}
   346  	return nil
   347  }
   348  
   349  // Convert_Slice_string_To_v1_ResourceVersionMatch allows converting a URL query parameter to ResourceVersionMatch
   350  func Convert_Slice_string_To_v1_ResourceVersionMatch(in *[]string, out *ResourceVersionMatch, s conversion.Scope) error {
   351  	if len(*in) > 0 {
   352  		*out = ResourceVersionMatch((*in)[0])
   353  	}
   354  	return nil
   355  }