sigs.k8s.io/cluster-api-provider-aws@v1.5.5/api/v1alpha4/awsmachine_conversion.go (about)

     1  /*
     2  Copyright 2021 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 v1alpha4
    18  
    19  import (
    20  	apiconversion "k8s.io/apimachinery/pkg/conversion"
    21  	"sigs.k8s.io/cluster-api-provider-aws/api/v1beta1"
    22  	infrav1 "sigs.k8s.io/cluster-api-provider-aws/api/v1beta1"
    23  	utilconversion "sigs.k8s.io/cluster-api/util/conversion"
    24  	"sigs.k8s.io/controller-runtime/pkg/conversion"
    25  )
    26  
    27  // ConvertTo converts the v1alpha4 AWSMachine receiver to a v1beta1 AWSMachine.
    28  func (src *AWSMachine) ConvertTo(dstRaw conversion.Hub) error {
    29  	dst := dstRaw.(*infrav1.AWSMachine)
    30  	if err := Convert_v1alpha4_AWSMachine_To_v1beta1_AWSMachine(src, dst, nil); err != nil {
    31  		return err
    32  	}
    33  
    34  	// Manually restore data.
    35  	restored := &v1beta1.AWSMachine{}
    36  	if ok, err := utilconversion.UnmarshalData(src, restored); err != nil || !ok {
    37  		return err
    38  	}
    39  
    40  	dst.Spec.Ignition = restored.Spec.Ignition
    41  
    42  	return nil
    43  }
    44  
    45  // ConvertFrom converts the v1beta1 AWSMachine to a v1alpha4 AWSMachine.
    46  func (dst *AWSMachine) ConvertFrom(srcRaw conversion.Hub) error {
    47  	src := srcRaw.(*infrav1.AWSMachine)
    48  
    49  	if err := Convert_v1beta1_AWSMachine_To_v1alpha4_AWSMachine(src, dst, nil); err != nil {
    50  		return err
    51  	}
    52  
    53  	// Preserve Hub data on down-conversion except for metadata.
    54  	return utilconversion.MarshalData(src, dst)
    55  }
    56  
    57  // ConvertTo converts the v1alpha4 AWSMachineList receiver to a v1beta1 AWSMachineList.
    58  func (src *AWSMachineList) ConvertTo(dstRaw conversion.Hub) error {
    59  	dst := dstRaw.(*infrav1.AWSMachineList)
    60  	return Convert_v1alpha4_AWSMachineList_To_v1beta1_AWSMachineList(src, dst, nil)
    61  }
    62  
    63  // ConvertFrom converts the v1beta1 AWSMachineList to a v1alpha4 AWSMachineList.
    64  func (dst *AWSMachineList) ConvertFrom(srcRaw conversion.Hub) error {
    65  	src := srcRaw.(*infrav1.AWSMachineList)
    66  
    67  	return Convert_v1beta1_AWSMachineList_To_v1alpha4_AWSMachineList(src, dst, nil)
    68  }
    69  
    70  // ConvertTo converts the v1alpha3 AWSCluster receiver to a v1beta1 AWSCluster.
    71  func (r *AWSMachineTemplate) ConvertTo(dstRaw conversion.Hub) error {
    72  	dst := dstRaw.(*infrav1.AWSMachineTemplate)
    73  
    74  	if err := Convert_v1alpha4_AWSMachineTemplate_To_v1beta1_AWSMachineTemplate(r, dst, nil); err != nil {
    75  		return err
    76  	}
    77  
    78  	// Manually restore data.
    79  	restored := &infrav1.AWSMachineTemplate{}
    80  	if ok, err := utilconversion.UnmarshalData(r, restored); err != nil || !ok {
    81  		return err
    82  	}
    83  
    84  	dst.Spec.Template.ObjectMeta = restored.Spec.Template.ObjectMeta
    85  	dst.Spec.Template.Spec.Ignition = restored.Spec.Template.Spec.Ignition
    86  
    87  	return nil
    88  }
    89  
    90  // ConvertFrom converts the v1beta1 AWSCluster receiver to a v1alpha3 AWSCluster.
    91  func (r *AWSMachineTemplate) ConvertFrom(srcRaw conversion.Hub) error {
    92  	src := srcRaw.(*infrav1.AWSMachineTemplate)
    93  
    94  	if err := Convert_v1beta1_AWSMachineTemplate_To_v1alpha4_AWSMachineTemplate(src, r, nil); err != nil {
    95  		return err
    96  	}
    97  
    98  	// Preserve Hub data on down-conversion.
    99  	if err := utilconversion.MarshalData(src, r); err != nil {
   100  		return err
   101  	}
   102  
   103  	return nil
   104  }
   105  
   106  // ConvertTo converts the v1alpha4 AWSMachineTemplateList receiver to a v1beta1 AWSMachineTemplateList.
   107  func (src *AWSMachineTemplateList) ConvertTo(dstRaw conversion.Hub) error {
   108  	dst := dstRaw.(*infrav1.AWSMachineTemplateList)
   109  	return Convert_v1alpha4_AWSMachineTemplateList_To_v1beta1_AWSMachineTemplateList(src, dst, nil)
   110  }
   111  
   112  // ConvertFrom converts the v1beta1 AWSMachineTemplateList to a v1alpha4 AWSMachineTemplateList.
   113  func (dst *AWSMachineTemplateList) ConvertFrom(srcRaw conversion.Hub) error {
   114  	src := srcRaw.(*infrav1.AWSMachineTemplateList)
   115  
   116  	return Convert_v1beta1_AWSMachineTemplateList_To_v1alpha4_AWSMachineTemplateList(src, dst, nil)
   117  }
   118  
   119  func Convert_v1beta1_AWSMachineTemplateResource_To_v1alpha4_AWSMachineTemplateResource(in *infrav1.AWSMachineTemplateResource, out *AWSMachineTemplateResource, s apiconversion.Scope) error {
   120  	return autoConvert_v1beta1_AWSMachineTemplateResource_To_v1alpha4_AWSMachineTemplateResource(in, out, s)
   121  }
   122  
   123  func Convert_v1beta1_AWSMachineSpec_To_v1alpha4_AWSMachineSpec(in *v1beta1.AWSMachineSpec, out *AWSMachineSpec, s apiconversion.Scope) error {
   124  	return autoConvert_v1beta1_AWSMachineSpec_To_v1alpha4_AWSMachineSpec(in, out, s)
   125  }