github.com/docker/compose-on-kubernetes@v0.5.0/internal/conversions/v1beta1.go (about)

     1  package conversions
     2  
     3  import (
     4  	"github.com/docker/compose-on-kubernetes/api/compose/v1beta1"
     5  	"github.com/docker/compose-on-kubernetes/internal/internalversion"
     6  	"k8s.io/apimachinery/pkg/conversion"
     7  	"k8s.io/apimachinery/pkg/runtime"
     8  )
     9  
    10  // RegisterV1beta1Conversions adds conversion functions to the given scheme.
    11  // Public to allow building arbitrary schemes.
    12  func RegisterV1beta1Conversions(scheme *runtime.Scheme) error {
    13  
    14  	return scheme.AddConversionFuncs(
    15  		ownerToInternalV1beta1,
    16  		ownerFromInternalV1beta1,
    17  		stackToInternalV1beta1,
    18  		stackFromInternalV1beta1,
    19  		stackListToInternalV1beta1,
    20  		stackListFromInternalV1beta1,
    21  	)
    22  }
    23  
    24  func ownerToInternalV1beta1(in *v1beta1.Owner, out *internalversion.Owner, _ conversion.Scope) error {
    25  	out.ObjectMeta = in.ObjectMeta
    26  	out.Owner = in.Owner
    27  	return nil
    28  }
    29  
    30  func ownerFromInternalV1beta1(in *internalversion.Owner, out *v1beta1.Owner, _ conversion.Scope) error {
    31  	out.ObjectMeta = in.ObjectMeta
    32  	out.Owner = in.Owner
    33  	return nil
    34  }
    35  
    36  func stackToInternalV1beta1(in *v1beta1.Stack, out *internalversion.Stack, _ conversion.Scope) error {
    37  	out.ObjectMeta = in.ObjectMeta
    38  	out.Spec.ComposeFile = in.Spec.ComposeFile
    39  	out.Status = &internalversion.StackStatus{
    40  		Message: in.Status.Message,
    41  		Phase:   internalversion.StackPhase(in.Status.Phase),
    42  	}
    43  	return nil
    44  }
    45  
    46  func stackFromInternalV1beta1(in *internalversion.Stack, out *v1beta1.Stack, _ conversion.Scope) error {
    47  	out.ObjectMeta = in.ObjectMeta
    48  	out.Spec.ComposeFile = in.Spec.ComposeFile
    49  	if in.Status != nil {
    50  		out.Status.Message = in.Status.Message
    51  		out.Status.Phase = v1beta1.StackPhase(in.Status.Phase)
    52  	}
    53  	return nil
    54  }
    55  
    56  func stackListToInternalV1beta1(in *v1beta1.StackList, out *internalversion.StackList, s conversion.Scope) error {
    57  	out.ListMeta = in.ListMeta
    58  	if in.Items != nil {
    59  		inSlice, outSlice := &in.Items, &out.Items
    60  		*outSlice = make([]internalversion.Stack, len(*inSlice))
    61  		for i := range *inSlice {
    62  			if err := stackToInternalV1beta1(&(*inSlice)[i], &(*outSlice)[i], s); err != nil {
    63  				return err
    64  			}
    65  		}
    66  	} else {
    67  		out.Items = nil
    68  	}
    69  	return nil
    70  }
    71  
    72  func stackListFromInternalV1beta1(in *internalversion.StackList, out *v1beta1.StackList, s conversion.Scope) error {
    73  	out.ListMeta = in.ListMeta
    74  	if in.Items != nil {
    75  		inSlice, outSlice := &in.Items, &out.Items
    76  		*outSlice = make([]v1beta1.Stack, len(*inSlice))
    77  		for i := range *inSlice {
    78  			if err := stackFromInternalV1beta1(&(*inSlice)[i], &(*outSlice)[i], s); err != nil {
    79  				return err
    80  			}
    81  		}
    82  	} else {
    83  		out.Items = make([]v1beta1.Stack, 0)
    84  	}
    85  	return nil
    86  }