github.com/crossplane/upjet@v1.3.0/pkg/pipeline/templates/conversion_spoke.go.tmpl (about)

     1  {{ .Header }}
     2  
     3  {{ .GenStatement }}
     4  
     5  package {{ .APIVersion }}
     6  
     7  import (
     8  	ujconversion "github.com/crossplane/upjet/pkg/controller/conversion"
     9  	"github.com/crossplane/upjet/pkg/resource"
    10  	"github.com/pkg/errors"
    11  	"sigs.k8s.io/controller-runtime/pkg/conversion"
    12  )
    13  
    14  {{ range .Resources }}
    15  	// ConvertTo converts this {{ .CRD.Kind }} to the hub type.
    16  	func (tr *{{ .CRD.Kind }}) ConvertTo(dstRaw conversion.Hub) error {
    17  		if err := ujconversion.RoundTrip(dstRaw.(resource.Terraformed), tr); err != nil {
    18  			return errors.Wrapf(err, "cannot convert from the spoke version %q to the hub version %q", tr.GetObjectKind().GroupVersionKind().Version, dstRaw.GetObjectKind().GroupVersionKind().Version)
    19  		}
    20  		return nil
    21  	}
    22  
    23  	// ConvertFrom converts from the hub type to the {{ .CRD.Kind }} type.
    24  	func (tr *{{ .CRD.Kind }}) ConvertFrom(srcRaw conversion.Hub) error {
    25  		if err := ujconversion.RoundTrip(tr, srcRaw.(resource.Terraformed)); err != nil {
    26  			return errors.Wrapf(err, "cannot convert from the hub version %q to the spoke version %q", srcRaw.GetObjectKind().GroupVersionKind().Version, tr.GetObjectKind().GroupVersionKind().Version)
    27  		}
    28  		return nil
    29  	}
    30  {{ end }}