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 }