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  }