github.com/docker/compose-on-kubernetes@v0.5.0/internal/registry/owner.go (about) 1 package registry 2 3 import ( 4 "context" 5 6 "github.com/docker/compose-on-kubernetes/api/compose/latest" 7 "github.com/docker/compose-on-kubernetes/api/compose/v1beta1" 8 log "github.com/sirupsen/logrus" 9 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" 10 "k8s.io/apimachinery/pkg/runtime" 11 "k8s.io/apiserver/pkg/registry/rest" 12 ) 13 14 type stackOwnerRest struct { 15 store stackRESTGet 16 version APIVersion 17 } 18 19 var _ rest.Storage = &stackOwnerRest{} 20 var _ rest.Getter = &stackOwnerRest{} 21 22 // NewStackOwnerRest returns a rest storage 23 func NewStackOwnerRest(store stackRESTGet, version APIVersion) rest.Storage { 24 return &stackOwnerRest{store: store, version: version} 25 } 26 27 func (r *stackOwnerRest) New() runtime.Object { 28 if r.version == "v1beta1" { 29 return &v1beta1.Owner{} 30 } 31 return &latest.Owner{} 32 } 33 34 func (r *stackOwnerRest) Get(ctx context.Context, name string, options *metav1.GetOptions) (runtime.Object, error) { 35 stack, err := r.store.GetStack(ctx, name, options) 36 if err != nil { 37 return nil, err 38 } 39 var res latest.Owner 40 res.Owner = stack.Spec.Owner 41 log.Debugf("Answering owner request on %s: %s", name, res.Owner.UserName) 42 return &res, nil 43 }