From 252667398e2cebf52281b691157f701fe9dbea12 Mon Sep 17 00:00:00 2001 From: Asim Aslam Date: Mon, 25 Nov 2019 16:31:14 +0000 Subject: [PATCH] Update the runtime for k8s name formatting and move Get to Read endpoint (#978) * Update the runtime for k8s name formatting and move Get to Read endpoint * strip regex validation --- go.sum | 3 + runtime/default.go | 6 +- runtime/kubernetes/client/kubernetes.go | 33 +-- .../kubernetes/client/{utils.go => util.go} | 15 + .../client/{utils_test.go => util_test.go} | 25 +- runtime/kubernetes/kubernetes.go | 65 +++-- runtime/kubernetes/service.go | 27 +- runtime/options.go | 10 +- runtime/proto/runtime.micro.go | 108 -------- runtime/proto/runtime.pb.go | 257 ------------------ runtime/proto/runtime.proto | 31 --- runtime/runtime.go | 4 +- runtime/service/handler/handler.go | 12 +- runtime/service/proto/runtime.pb.go | 221 +++++++-------- .../{runtime.micro.go => runtime.pb.micro.go} | 18 +- runtime/service/proto/runtime.proto | 10 +- runtime/service/service.go | 12 +- 17 files changed, 268 insertions(+), 589 deletions(-) rename runtime/kubernetes/client/{utils.go => util.go} (89%) rename runtime/kubernetes/client/{utils_test.go => util_test.go} (50%) delete mode 100644 runtime/proto/runtime.micro.go delete mode 100644 runtime/proto/runtime.pb.go delete mode 100644 runtime/proto/runtime.proto rename runtime/service/proto/{runtime.micro.go => runtime.pb.micro.go} (87%) diff --git a/go.sum b/go.sum index 1be95770..113e6bd2 100644 --- a/go.sum +++ b/go.sum @@ -84,6 +84,7 @@ github.com/cpu/goacmedns v0.0.1/go.mod h1:sesf/pNnCYwUevQEQfEwY0Y3DydlQWSGZbaMEl github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/decker502/dnspod-go v0.2.0/go.mod h1:qsurYu1FgxcDwfSwXJdLt4kRsBLZeosEb9uq4Sy+08g= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= @@ -321,6 +322,7 @@ github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs= @@ -364,6 +366,7 @@ github.com/stretchr/objx v0.2.0 h1:Hbg2NidpLE8veEBkEZTL3CvlkUIVzuU9jDplZO54c48= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/syndtr/gocapability v0.0.0-20170704070218-db04d3cc01c8/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= github.com/technoweenie/multipartstreamer v1.0.1 h1:XRztA5MXiR1TIRHxH2uNxXxaIkKQDeX7m2XsSOlQEnM= diff --git a/runtime/default.go b/runtime/default.go index 18d8d7a9..c9c198e1 100644 --- a/runtime/default.go +++ b/runtime/default.go @@ -176,9 +176,9 @@ func (r *runtime) Create(s *Service, opts ...CreateOption) error { return nil } -// Get returns all instances of requested service +// Read returns all instances of requested service // If no service name is provided we return all the track services. -func (r *runtime) Get(name string, opts ...GetOption) ([]*Service, error) { +func (r *runtime) Read(name string, opts ...ReadOption) ([]*Service, error) { r.Lock() defer r.Unlock() @@ -186,7 +186,7 @@ func (r *runtime) Get(name string, opts ...GetOption) ([]*Service, error) { return nil, errors.New("missing service name") } - gopts := GetOptions{} + gopts := ReadOptions{} for _, o := range opts { o(&gopts) } diff --git a/runtime/kubernetes/client/kubernetes.go b/runtime/kubernetes/client/kubernetes.go index 0de53b59..e75862f8 100644 --- a/runtime/kubernetes/client/kubernetes.go +++ b/runtime/kubernetes/client/kubernetes.go @@ -2,7 +2,6 @@ package client import ( - "regexp" "strconv" "strings" "time" @@ -18,8 +17,6 @@ const ( var ( // DefaultImage is default micro image DefaultImage = "micro/go-micro" - // ServiceRegexp is used to validate service name - ServiceRegexp = regexp.MustCompile("^" + dns1123LabelFmt + "$") ) // Kubernetes client @@ -36,9 +33,9 @@ type Kubernetes interface { List(*Resource) error } -// DefaultService returns default micro kubernetes service definition -func DefaultService(name, version string) *Service { - log.Debugf("kubernetes default service: name: %s, version: %s", name, version) +// NewService returns default micro kubernetes service definition +func NewService(name, version string) *Service { + log.Tracef("kubernetes default service: name: %s, version: %s", name, version) Labels := map[string]string{ "name": name, @@ -73,9 +70,9 @@ func DefaultService(name, version string) *Service { } } -// DefaultService returns default micro kubernetes deployment definition -func DefaultDeployment(name, version, source string) *Deployment { - log.Debugf("kubernetes default deployment: name: %s, version: %s, source: %s", name, version, source) +// NewService returns default micro kubernetes deployment definition +func NewDeployment(name, version string) *Deployment { + log.Tracef("kubernetes default deployment: name: %s, version: %s", name, version) Labels := map[string]string{ "name": name, @@ -90,15 +87,11 @@ func DefaultDeployment(name, version, source string) *Deployment { } Metadata := &Metadata{ - Name: depName, - Namespace: "default", - Version: version, - Labels: Labels, - Annotations: map[string]string{ - "source": source, - "owner": "micro", - "group": "micro", - }, + Name: depName, + Namespace: "default", + Version: version, + Labels: Labels, + Annotations: map[string]string{}, } // TODO: we need to figure out this version stuff @@ -108,7 +101,7 @@ func DefaultDeployment(name, version, source string) *Deployment { buildUnixTimeUTC := time.Unix(buildTime, 0) Metadata.Annotations["build"] = buildUnixTimeUTC.Format(time.RFC3339) } else { - log.Debugf("could not parse build: %v", err) + log.Tracef("could not parse build: %v", err) } // enable go modules by default @@ -129,7 +122,7 @@ func DefaultDeployment(name, version, source string) *Deployment { Name: name, Image: DefaultImage, Env: []EnvVar{env}, - Command: []string{"go", "run", source}, + Command: []string{"go", "run", "main.go"}, Ports: []ContainerPort{{ Name: name + "-port", ContainerPort: 8080, diff --git a/runtime/kubernetes/client/utils.go b/runtime/kubernetes/client/util.go similarity index 89% rename from runtime/kubernetes/client/utils.go rename to runtime/kubernetes/client/util.go index 6174c522..83e17b11 100644 --- a/runtime/kubernetes/client/utils.go +++ b/runtime/kubernetes/client/util.go @@ -7,6 +7,7 @@ import ( "fmt" "io" "io/ioutil" + "strings" "text/template" ) @@ -85,3 +86,17 @@ func CertsFromPEM(pemCerts []byte) ([]*x509.Certificate, error) { } return certs, nil } + +// Format is used to format a string value into a k8s valid name +func Format(v string) string { + // to lower case + v = strings.ToLower(v) + // dots to dashes + v = strings.ReplaceAll(v, ".", "-") + // limit to 253 chars + if len(v) > 253 { + v = v[:253] + } + // return new name + return v +} diff --git a/runtime/kubernetes/client/utils_test.go b/runtime/kubernetes/client/util_test.go similarity index 50% rename from runtime/kubernetes/client/utils_test.go rename to runtime/kubernetes/client/util_test.go index a364debc..39fb3e0c 100644 --- a/runtime/kubernetes/client/utils_test.go +++ b/runtime/kubernetes/client/util_test.go @@ -8,19 +8,38 @@ import ( func TestTemplates(t *testing.T) { name := "foo" version := "123" - source := "github.com/foo/bar" // Render default service - s := DefaultService(name, version) + s := NewService(name, version) bs := new(bytes.Buffer) if err := renderTemplate(templates["service"], bs, s); err != nil { t.Errorf("Failed to render kubernetes service: %v", err) } // Render default deployment - d := DefaultDeployment(name, version, source) + d := NewDeployment(name, version) bd := new(bytes.Buffer) if err := renderTemplate(templates["deployment"], bd, d); err != nil { t.Errorf("Failed to render kubernetes deployment: %v", err) } } + +func TestFormatName(t *testing.T) { + testCases := []struct { + name string + expect string + }{ + {"foobar", "foobar"}, + {"foo-bar", "foo-bar"}, + {"foo.bar", "foo-bar"}, + {"Foo.Bar", "foo-bar"}, + {"go.micro.foo.bar", "go-micro-foo-bar"}, + } + + for _, test := range testCases { + v := Format(test.name) + if v != test.expect { + t.Fatalf("Expected name %s for %s got: %s", test.expect, test.name, v) + } + } +} diff --git a/runtime/kubernetes/kubernetes.go b/runtime/kubernetes/kubernetes.go index 26956856..91b224bc 100644 --- a/runtime/kubernetes/kubernetes.go +++ b/runtime/kubernetes/kubernetes.go @@ -5,7 +5,6 @@ import ( "errors" "fmt" "strconv" - "strings" "sync" "time" @@ -86,19 +85,19 @@ func (k *kubernetes) Create(s *runtime.Service, opts ...runtime.CreateOption) er o(&options) } - svcName := s.Name + // quickly prevalidate the name and version + name := s.Name if len(s.Version) > 0 { - svcName = strings.Join([]string{s.Name, s.Version}, "-") + name = name + "-" + s.Version } - if !client.ServiceRegexp.MatchString(svcName) { - return fmt.Errorf("invalid service name: %s", svcName) - } + // format as we'll format in the deployment + name = client.Format(name) // create new kubernetes micro service service := newService(s, options) - log.Debugf("Runtime queueing service %s for start action", service.Name) + log.Debugf("Runtime queueing service %s version %s for start action", service.Name, service.Version) // push into start queue k.queue <- &task{ @@ -109,9 +108,9 @@ func (k *kubernetes) Create(s *runtime.Service, opts ...runtime.CreateOption) er return nil } -// getMicroService queries kubernetes for micro service +// getService queries kubernetes for micro service // NOTE: this function is not thread-safe -func (k *kubernetes) getMicroService(labels map[string]string) ([]*runtime.Service, error) { +func (k *kubernetes) getService(labels map[string]string) ([]*runtime.Service, error) { // get the service status serviceList := new(client.ServiceList) r := &client.Resource{ @@ -137,31 +136,55 @@ func (k *kubernetes) getMicroService(labels map[string]string) ([]*runtime.Servi // collect info from kubernetes service for _, kservice := range serviceList.Items { + // name of the service name := kservice.Metadata.Labels["name"] + // version of the service version := kservice.Metadata.Labels["version"] - svcMap[name] = &runtime.Service{ + + // save as service + svcMap[name+version] = &runtime.Service{ Name: name, Version: version, Metadata: make(map[string]string), } + // copy annotations metadata into service metadata for k, v := range kservice.Metadata.Annotations { - svcMap[name].Metadata[k] = v + svcMap[name+version].Metadata[k] = v } } // collect additional info from kubernetes deployment for _, kdep := range depList.Items { + // name of the service name := kdep.Metadata.Labels["name"] - if svc, ok := svcMap[name]; ok { - // set the service source + // versio of the service + version := kdep.Metadata.Labels["version"] + + // access existing service map based on name + version + if svc, ok := svcMap[name+version]; ok { + // we're expecting our own service name in metadata + if _, ok := kdep.Metadata.Annotations["name"]; !ok { + continue + } + + // set the service name, version and source + // based on existing annotations we stored + svc.Name = kdep.Metadata.Annotations["name"] + svc.Version = kdep.Metadata.Annotations["version"] svc.Source = kdep.Metadata.Annotations["source"] + + // delete from metadata + delete(kdep.Metadata.Annotations, "name") + delete(kdep.Metadata.Annotations, "version") + delete(kdep.Metadata.Annotations, "source") + // copy all annotations metadata into service metadata for k, v := range kdep.Metadata.Annotations { svc.Metadata[k] = v } - // parse out deployment status + // parse out deployment status and inject into service metadata if len(kdep.Status.Conditions) > 0 { status := kdep.Status.Conditions[0].Type // pick the last known condition type and mark the service status with it @@ -186,6 +209,7 @@ func (k *kubernetes) getMicroService(labels map[string]string) ([]*runtime.Servi // collect all the services and return services := make([]*runtime.Service, 0, len(serviceList.Items)) + for _, service := range svcMap { services = append(services, service) } @@ -193,8 +217,8 @@ func (k *kubernetes) getMicroService(labels map[string]string) ([]*runtime.Servi return services, nil } -// Get returns all instances of given service -func (k *kubernetes) Get(name string, opts ...runtime.GetOption) ([]*runtime.Service, error) { +// Read returns all instances of given service +func (k *kubernetes) Read(name string, opts ...runtime.ReadOption) ([]*runtime.Service, error) { k.Lock() defer k.Unlock() @@ -203,13 +227,16 @@ func (k *kubernetes) Get(name string, opts ...runtime.GetOption) ([]*runtime.Ser return nil, errors.New("missing service name") } + // format the name + name = client.Format(name) + // set the default labels labels := map[string]string{ "micro": "service", "name": name, } - var options runtime.GetOptions + var options runtime.ReadOptions for _, o := range opts { o(&options) } @@ -221,7 +248,7 @@ func (k *kubernetes) Get(name string, opts ...runtime.GetOption) ([]*runtime.Ser log.Debugf("Runtime querying service %s", name) - return k.getMicroService(labels) + return k.getService(labels) } // List the managed services @@ -235,7 +262,7 @@ func (k *kubernetes) List() ([]*runtime.Service, error) { log.Debugf("Runtime listing all micro services") - return k.getMicroService(labels) + return k.getService(labels) } // Update the service in place diff --git a/runtime/kubernetes/service.go b/runtime/kubernetes/service.go index 7b7d2004..2a73071c 100644 --- a/runtime/kubernetes/service.go +++ b/runtime/kubernetes/service.go @@ -18,9 +18,23 @@ type service struct { } func newService(s *runtime.Service, c runtime.CreateOptions) *service { - kservice := client.DefaultService(s.Name, s.Version) - kdeploy := client.DefaultDeployment(s.Name, s.Version, s.Source) + // use pre-formatted name/version + name := client.Format(s.Name) + version := client.Format(s.Version) + kservice := client.NewService(name, version) + kdeploy := client.NewDeployment(name, version) + + // attach our values to the deployment; name, version, source + kdeploy.Metadata.Annotations["name"] = s.Name + kdeploy.Metadata.Annotations["version"] = s.Version + kdeploy.Metadata.Annotations["source"] = s.Source + + // associate owner:group to be later augmented + kdeploy.Metadata.Annotations["owner"] = "micro" + kdeploy.Metadata.Annotations["group"] = "micro" + + // define the environment values used by the container env := make([]client.EnvVar, 0, len(c.Env)) for _, evar := range c.Env { evarPair := strings.Split(evar, "=") @@ -35,10 +49,11 @@ func newService(s *runtime.Service, c runtime.CreateOptions) *service { // if Exec/Command has been supplied override the default command if len(s.Exec) > 0 { kdeploy.Spec.Template.PodSpec.Containers[0].Command = s.Exec - } else { - if len(c.Command) > 0 { - kdeploy.Spec.Template.PodSpec.Containers[0].Command = c.Command - } + } else if len(c.Command) > 0 { + kdeploy.Spec.Template.PodSpec.Containers[0].Command = c.Command + } else if len(s.Source) > 0 { + // default command for our k8s service should be source + kdeploy.Spec.Template.PodSpec.Containers[0].Command = []string{"go", "run", s.Source} } return &service{ diff --git a/runtime/options.go b/runtime/options.go index e031656d..cbc93952 100644 --- a/runtime/options.go +++ b/runtime/options.go @@ -55,17 +55,17 @@ func WithOutput(out io.Writer) CreateOption { } } -type GetOption func(o *GetOptions) +type ReadOption func(o *ReadOptions) -// GetOptions queries runtime services -type GetOptions struct { +// ReadOptions queries runtime services +type ReadOptions struct { // Version queries services with given version Version string } // WithVersion confifgures service version -func WithVersion(version string) GetOption { - return func(o *GetOptions) { +func WithVersion(version string) ReadOption { + return func(o *ReadOptions) { o.Version = version } } diff --git a/runtime/proto/runtime.micro.go b/runtime/proto/runtime.micro.go deleted file mode 100644 index 91ff4f8b..00000000 --- a/runtime/proto/runtime.micro.go +++ /dev/null @@ -1,108 +0,0 @@ -// Code generated by protoc-gen-micro. DO NOT EDIT. -// source: runtime.proto - -package go_micro_runtime - -import ( - fmt "fmt" - proto "github.com/golang/protobuf/proto" - math "math" -) - -import ( - context "context" - client "github.com/micro/go-micro/client" - server "github.com/micro/go-micro/server" -) - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package - -// Reference imports to suppress errors if they are not otherwise used. -var _ context.Context -var _ client.Option -var _ server.Option - -// Client API for Runtime service - -type RuntimeService interface { - Create(ctx context.Context, in *CreateRequest, opts ...client.CallOption) (*CreateResponse, error) - Delete(ctx context.Context, in *DeleteRequest, opts ...client.CallOption) (*DeleteResponse, error) -} - -type runtimeService struct { - c client.Client - name string -} - -func NewRuntimeService(name string, c client.Client) RuntimeService { - if c == nil { - c = client.NewClient() - } - if len(name) == 0 { - name = "go.micro.runtime" - } - return &runtimeService{ - c: c, - name: name, - } -} - -func (c *runtimeService) Create(ctx context.Context, in *CreateRequest, opts ...client.CallOption) (*CreateResponse, error) { - req := c.c.NewRequest(c.name, "Runtime.Create", in) - out := new(CreateResponse) - err := c.c.Call(ctx, req, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *runtimeService) Delete(ctx context.Context, in *DeleteRequest, opts ...client.CallOption) (*DeleteResponse, error) { - req := c.c.NewRequest(c.name, "Runtime.Delete", in) - out := new(DeleteResponse) - err := c.c.Call(ctx, req, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -// Server API for Runtime service - -type RuntimeHandler interface { - Create(context.Context, *CreateRequest, *CreateResponse) error - Delete(context.Context, *DeleteRequest, *DeleteResponse) error -} - -func RegisterRuntimeHandler(s server.Server, hdlr RuntimeHandler, opts ...server.HandlerOption) error { - type runtime interface { - Create(ctx context.Context, in *CreateRequest, out *CreateResponse) error - Delete(ctx context.Context, in *DeleteRequest, out *DeleteResponse) error - } - type Runtime struct { - runtime - } - h := &runtimeHandler{hdlr} - return s.Handle(s.NewHandler(&Runtime{h}, opts...)) -} - -type runtimeHandler struct { - RuntimeHandler -} - -func (h *runtimeHandler) Create(ctx context.Context, in *CreateRequest, out *CreateResponse) error { - return h.RuntimeHandler.Create(ctx, in, out) -} - -func (h *runtimeHandler) Delete(ctx context.Context, in *DeleteRequest, out *DeleteResponse) error { - return h.RuntimeHandler.Delete(ctx, in, out) -} diff --git a/runtime/proto/runtime.pb.go b/runtime/proto/runtime.pb.go deleted file mode 100644 index 8b6596d7..00000000 --- a/runtime/proto/runtime.pb.go +++ /dev/null @@ -1,257 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// source: runtime.proto - -package go_micro_runtime - -import ( - fmt "fmt" - proto "github.com/golang/protobuf/proto" - math "math" -) - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package - -type Service struct { - // name of the service - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // git url of the source - Source string `protobuf:"bytes,2,opt,name=source,proto3" json:"source,omitempty"` - // local path of the source - Path string `protobuf:"bytes,3,opt,name=path,proto3" json:"path,omitempty"` - // command to execute - Exec []string `protobuf:"bytes,4,rep,name=exec,proto3" json:"exec,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Service) Reset() { *m = Service{} } -func (m *Service) String() string { return proto.CompactTextString(m) } -func (*Service) ProtoMessage() {} -func (*Service) Descriptor() ([]byte, []int) { - return fileDescriptor_86e2dd377c869464, []int{0} -} - -func (m *Service) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Service.Unmarshal(m, b) -} -func (m *Service) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Service.Marshal(b, m, deterministic) -} -func (m *Service) XXX_Merge(src proto.Message) { - xxx_messageInfo_Service.Merge(m, src) -} -func (m *Service) XXX_Size() int { - return xxx_messageInfo_Service.Size(m) -} -func (m *Service) XXX_DiscardUnknown() { - xxx_messageInfo_Service.DiscardUnknown(m) -} - -var xxx_messageInfo_Service proto.InternalMessageInfo - -func (m *Service) GetName() string { - if m != nil { - return m.Name - } - return "" -} - -func (m *Service) GetSource() string { - if m != nil { - return m.Source - } - return "" -} - -func (m *Service) GetPath() string { - if m != nil { - return m.Path - } - return "" -} - -func (m *Service) GetExec() []string { - if m != nil { - return m.Exec - } - return nil -} - -type CreateRequest struct { - Service *Service `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *CreateRequest) Reset() { *m = CreateRequest{} } -func (m *CreateRequest) String() string { return proto.CompactTextString(m) } -func (*CreateRequest) ProtoMessage() {} -func (*CreateRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_86e2dd377c869464, []int{1} -} - -func (m *CreateRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_CreateRequest.Unmarshal(m, b) -} -func (m *CreateRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_CreateRequest.Marshal(b, m, deterministic) -} -func (m *CreateRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_CreateRequest.Merge(m, src) -} -func (m *CreateRequest) XXX_Size() int { - return xxx_messageInfo_CreateRequest.Size(m) -} -func (m *CreateRequest) XXX_DiscardUnknown() { - xxx_messageInfo_CreateRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_CreateRequest proto.InternalMessageInfo - -func (m *CreateRequest) GetService() *Service { - if m != nil { - return m.Service - } - return nil -} - -type CreateResponse struct { - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *CreateResponse) Reset() { *m = CreateResponse{} } -func (m *CreateResponse) String() string { return proto.CompactTextString(m) } -func (*CreateResponse) ProtoMessage() {} -func (*CreateResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_86e2dd377c869464, []int{2} -} - -func (m *CreateResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_CreateResponse.Unmarshal(m, b) -} -func (m *CreateResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_CreateResponse.Marshal(b, m, deterministic) -} -func (m *CreateResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_CreateResponse.Merge(m, src) -} -func (m *CreateResponse) XXX_Size() int { - return xxx_messageInfo_CreateResponse.Size(m) -} -func (m *CreateResponse) XXX_DiscardUnknown() { - xxx_messageInfo_CreateResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_CreateResponse proto.InternalMessageInfo - -type DeleteRequest struct { - Service *Service `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *DeleteRequest) Reset() { *m = DeleteRequest{} } -func (m *DeleteRequest) String() string { return proto.CompactTextString(m) } -func (*DeleteRequest) ProtoMessage() {} -func (*DeleteRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_86e2dd377c869464, []int{3} -} - -func (m *DeleteRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DeleteRequest.Unmarshal(m, b) -} -func (m *DeleteRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DeleteRequest.Marshal(b, m, deterministic) -} -func (m *DeleteRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_DeleteRequest.Merge(m, src) -} -func (m *DeleteRequest) XXX_Size() int { - return xxx_messageInfo_DeleteRequest.Size(m) -} -func (m *DeleteRequest) XXX_DiscardUnknown() { - xxx_messageInfo_DeleteRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_DeleteRequest proto.InternalMessageInfo - -func (m *DeleteRequest) GetService() *Service { - if m != nil { - return m.Service - } - return nil -} - -type DeleteResponse struct { - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *DeleteResponse) Reset() { *m = DeleteResponse{} } -func (m *DeleteResponse) String() string { return proto.CompactTextString(m) } -func (*DeleteResponse) ProtoMessage() {} -func (*DeleteResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_86e2dd377c869464, []int{4} -} - -func (m *DeleteResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DeleteResponse.Unmarshal(m, b) -} -func (m *DeleteResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DeleteResponse.Marshal(b, m, deterministic) -} -func (m *DeleteResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_DeleteResponse.Merge(m, src) -} -func (m *DeleteResponse) XXX_Size() int { - return xxx_messageInfo_DeleteResponse.Size(m) -} -func (m *DeleteResponse) XXX_DiscardUnknown() { - xxx_messageInfo_DeleteResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_DeleteResponse proto.InternalMessageInfo - -func init() { - proto.RegisterType((*Service)(nil), "go.micro.runtime.Service") - proto.RegisterType((*CreateRequest)(nil), "go.micro.runtime.CreateRequest") - proto.RegisterType((*CreateResponse)(nil), "go.micro.runtime.CreateResponse") - proto.RegisterType((*DeleteRequest)(nil), "go.micro.runtime.DeleteRequest") - proto.RegisterType((*DeleteResponse)(nil), "go.micro.runtime.DeleteResponse") -} - -func init() { proto.RegisterFile("runtime.proto", fileDescriptor_86e2dd377c869464) } - -var fileDescriptor_86e2dd377c869464 = []byte{ - // 229 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x91, 0xbf, 0x4e, 0x86, 0x30, - 0x14, 0xc5, 0x41, 0x08, 0xc4, 0x6b, 0x30, 0xa4, 0x83, 0xa9, 0x2e, 0x92, 0x4e, 0x4e, 0x1d, 0xe0, - 0x11, 0x64, 0x75, 0xa9, 0xb3, 0x03, 0x36, 0x37, 0x4a, 0x22, 0x14, 0xdb, 0x62, 0x7c, 0x23, 0x5f, - 0xd3, 0xf4, 0x0f, 0x03, 0xca, 0x37, 0x7d, 0xdb, 0xe9, 0xc9, 0xc9, 0xef, 0x9c, 0x9b, 0x42, 0xa5, - 0xd7, 0xd9, 0x8e, 0x13, 0xf2, 0x45, 0x2b, 0xab, 0x48, 0xfd, 0xa6, 0xf8, 0x34, 0x4a, 0xad, 0x78, - 0xf4, 0xd9, 0x0b, 0x94, 0xcf, 0xa8, 0xbf, 0x46, 0x89, 0x84, 0x40, 0x3e, 0x0f, 0x13, 0xd2, 0xb4, - 0x49, 0x1f, 0x2e, 0x85, 0xd7, 0xe4, 0x06, 0x0a, 0xa3, 0x56, 0x2d, 0x91, 0x5e, 0x78, 0x37, 0xbe, - 0x5c, 0x76, 0x19, 0xec, 0x3b, 0xcd, 0x42, 0xd6, 0x69, 0xe7, 0xe1, 0x37, 0x4a, 0x9a, 0x37, 0x99, - 0xf3, 0x9c, 0x66, 0x3d, 0x54, 0x8f, 0x1a, 0x07, 0x8b, 0x02, 0x3f, 0x57, 0x34, 0x96, 0x74, 0x50, - 0x9a, 0xd0, 0xe7, 0x7b, 0xae, 0xda, 0x5b, 0xfe, 0x77, 0x13, 0x8f, 0x83, 0xc4, 0x96, 0x64, 0x35, - 0x5c, 0x6f, 0x14, 0xb3, 0xa8, 0xd9, 0xa0, 0xe3, 0xf6, 0xf8, 0x81, 0xe7, 0x73, 0x37, 0x4a, 0xe0, - 0xb6, 0x3f, 0x29, 0x94, 0x22, 0xc4, 0xc9, 0x13, 0x14, 0xa1, 0x95, 0xdc, 0xff, 0x67, 0xed, 0xae, - 0xba, 0x6b, 0x4e, 0x07, 0xe2, 0xe0, 0xc4, 0xe1, 0x42, 0xd9, 0x11, 0x6e, 0x77, 0xcc, 0x11, 0x6e, - 0xbf, 0x93, 0x25, 0xaf, 0x85, 0xff, 0xd1, 0xee, 0x37, 0x00, 0x00, 0xff, 0xff, 0x99, 0xc5, 0x97, - 0x12, 0xe2, 0x01, 0x00, 0x00, -} diff --git a/runtime/proto/runtime.proto b/runtime/proto/runtime.proto deleted file mode 100644 index bce613e3..00000000 --- a/runtime/proto/runtime.proto +++ /dev/null @@ -1,31 +0,0 @@ -syntax = "proto3"; - -package go.micro.runtime; - -service Runtime { - rpc Create(CreateRequest) returns (CreateResponse) {}; - rpc Delete(DeleteRequest) returns (DeleteResponse) {}; -} - -message Service { - // name of the service - string name = 1; - // git url of the source - string source = 2; - // local path of the source - string path = 3; - // command to execute - repeated string exec = 4; -} - -message CreateRequest { - Service service = 1; -} - -message CreateResponse {} - -message DeleteRequest { - Service service = 1; -} - -message DeleteResponse {} diff --git a/runtime/runtime.go b/runtime/runtime.go index 8f7a4406..b6e17c31 100644 --- a/runtime/runtime.go +++ b/runtime/runtime.go @@ -16,8 +16,8 @@ type Runtime interface { Init(...Option) error // Create registers a service Create(*Service, ...CreateOption) error - // Get returns service or fails with error - Get(string, ...GetOption) ([]*Service, error) + // Read returns the service + Read(string, ...ReadOption) ([]*Service, error) // Update the service in place Update(*Service) error // Remove a service diff --git a/runtime/service/handler/handler.go b/runtime/service/handler/handler.go index f7694d79..48c714ef 100644 --- a/runtime/service/handler/handler.go +++ b/runtime/service/handler/handler.go @@ -54,8 +54,8 @@ func toCreateOptions(opts *pb.CreateOptions) []runtime.CreateOption { return options } -func toGetOptions(opts *pb.GetOptions) []runtime.GetOption { - options := []runtime.GetOption{} +func toReadOptions(opts *pb.ReadOptions) []runtime.ReadOption { + options := []runtime.ReadOption{} // version options if len(opts.Version) > 0 { options = append(options, runtime.WithVersion(opts.Version)) @@ -83,17 +83,17 @@ func (r *Runtime) Create(ctx context.Context, req *pb.CreateRequest, rsp *pb.Cre return nil } -func (r *Runtime) Get(ctx context.Context, req *pb.GetRequest, rsp *pb.GetResponse) error { +func (r *Runtime) Read(ctx context.Context, req *pb.ReadRequest, rsp *pb.ReadResponse) error { if len(req.Name) == 0 { return errors.BadRequest("go.micro.runtime", "blank service") } - var options []runtime.GetOption + var options []runtime.ReadOption if req.Options != nil { - options = toGetOptions(req.Options) + options = toReadOptions(req.Options) } - services, err := r.Runtime.Get(req.Name, options...) + services, err := r.Runtime.Read(req.Name, options...) if err != nil { return errors.InternalServerError("go.micro.runtime", err.Error()) } diff --git a/runtime/service/proto/runtime.pb.go b/runtime/service/proto/runtime.pb.go index 5e7d8938..f6610a97 100644 --- a/runtime/service/proto/runtime.pb.go +++ b/runtime/service/proto/runtime.pb.go @@ -1,5 +1,5 @@ // Code generated by protoc-gen-go. DO NOT EDIT. -// source: runtime.proto +// source: micro/go-micro/runtime/service/proto/runtime.proto package go_micro_runtime @@ -42,7 +42,7 @@ func (m *Service) Reset() { *m = Service{} } func (m *Service) String() string { return proto.CompactTextString(m) } func (*Service) ProtoMessage() {} func (*Service) Descriptor() ([]byte, []int) { - return fileDescriptor_86e2dd377c869464, []int{0} + return fileDescriptor_4bc91a8efec81434, []int{0} } func (m *Service) XXX_Unmarshal(b []byte) error { @@ -121,7 +121,7 @@ func (m *CreateOptions) Reset() { *m = CreateOptions{} } func (m *CreateOptions) String() string { return proto.CompactTextString(m) } func (*CreateOptions) ProtoMessage() {} func (*CreateOptions) Descriptor() ([]byte, []int) { - return fileDescriptor_86e2dd377c869464, []int{1} + return fileDescriptor_4bc91a8efec81434, []int{1} } func (m *CreateOptions) XXX_Unmarshal(b []byte) error { @@ -175,7 +175,7 @@ func (m *CreateRequest) Reset() { *m = CreateRequest{} } func (m *CreateRequest) String() string { return proto.CompactTextString(m) } func (*CreateRequest) ProtoMessage() {} func (*CreateRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_86e2dd377c869464, []int{2} + return fileDescriptor_4bc91a8efec81434, []int{2} } func (m *CreateRequest) XXX_Unmarshal(b []byte) error { @@ -220,7 +220,7 @@ func (m *CreateResponse) Reset() { *m = CreateResponse{} } func (m *CreateResponse) String() string { return proto.CompactTextString(m) } func (*CreateResponse) ProtoMessage() {} func (*CreateResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_86e2dd377c869464, []int{3} + return fileDescriptor_4bc91a8efec81434, []int{3} } func (m *CreateResponse) XXX_Unmarshal(b []byte) error { @@ -241,7 +241,7 @@ func (m *CreateResponse) XXX_DiscardUnknown() { var xxx_messageInfo_CreateResponse proto.InternalMessageInfo -type GetOptions struct { +type ReadOptions struct { // version of the service Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -249,118 +249,118 @@ type GetOptions struct { XXX_sizecache int32 `json:"-"` } -func (m *GetOptions) Reset() { *m = GetOptions{} } -func (m *GetOptions) String() string { return proto.CompactTextString(m) } -func (*GetOptions) ProtoMessage() {} -func (*GetOptions) Descriptor() ([]byte, []int) { - return fileDescriptor_86e2dd377c869464, []int{4} +func (m *ReadOptions) Reset() { *m = ReadOptions{} } +func (m *ReadOptions) String() string { return proto.CompactTextString(m) } +func (*ReadOptions) ProtoMessage() {} +func (*ReadOptions) Descriptor() ([]byte, []int) { + return fileDescriptor_4bc91a8efec81434, []int{4} } -func (m *GetOptions) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetOptions.Unmarshal(m, b) +func (m *ReadOptions) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ReadOptions.Unmarshal(m, b) } -func (m *GetOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetOptions.Marshal(b, m, deterministic) +func (m *ReadOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ReadOptions.Marshal(b, m, deterministic) } -func (m *GetOptions) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetOptions.Merge(m, src) +func (m *ReadOptions) XXX_Merge(src proto.Message) { + xxx_messageInfo_ReadOptions.Merge(m, src) } -func (m *GetOptions) XXX_Size() int { - return xxx_messageInfo_GetOptions.Size(m) +func (m *ReadOptions) XXX_Size() int { + return xxx_messageInfo_ReadOptions.Size(m) } -func (m *GetOptions) XXX_DiscardUnknown() { - xxx_messageInfo_GetOptions.DiscardUnknown(m) +func (m *ReadOptions) XXX_DiscardUnknown() { + xxx_messageInfo_ReadOptions.DiscardUnknown(m) } -var xxx_messageInfo_GetOptions proto.InternalMessageInfo +var xxx_messageInfo_ReadOptions proto.InternalMessageInfo -func (m *GetOptions) GetVersion() string { +func (m *ReadOptions) GetVersion() string { if m != nil { return m.Version } return "" } -type GetRequest struct { - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Options *GetOptions `protobuf:"bytes,2,opt,name=options,proto3" json:"options,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +type ReadRequest struct { + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Options *ReadOptions `protobuf:"bytes,2,opt,name=options,proto3" json:"options,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *GetRequest) Reset() { *m = GetRequest{} } -func (m *GetRequest) String() string { return proto.CompactTextString(m) } -func (*GetRequest) ProtoMessage() {} -func (*GetRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_86e2dd377c869464, []int{5} +func (m *ReadRequest) Reset() { *m = ReadRequest{} } +func (m *ReadRequest) String() string { return proto.CompactTextString(m) } +func (*ReadRequest) ProtoMessage() {} +func (*ReadRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_4bc91a8efec81434, []int{5} } -func (m *GetRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetRequest.Unmarshal(m, b) +func (m *ReadRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ReadRequest.Unmarshal(m, b) } -func (m *GetRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetRequest.Marshal(b, m, deterministic) +func (m *ReadRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ReadRequest.Marshal(b, m, deterministic) } -func (m *GetRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetRequest.Merge(m, src) +func (m *ReadRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ReadRequest.Merge(m, src) } -func (m *GetRequest) XXX_Size() int { - return xxx_messageInfo_GetRequest.Size(m) +func (m *ReadRequest) XXX_Size() int { + return xxx_messageInfo_ReadRequest.Size(m) } -func (m *GetRequest) XXX_DiscardUnknown() { - xxx_messageInfo_GetRequest.DiscardUnknown(m) +func (m *ReadRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ReadRequest.DiscardUnknown(m) } -var xxx_messageInfo_GetRequest proto.InternalMessageInfo +var xxx_messageInfo_ReadRequest proto.InternalMessageInfo -func (m *GetRequest) GetName() string { +func (m *ReadRequest) GetName() string { if m != nil { return m.Name } return "" } -func (m *GetRequest) GetOptions() *GetOptions { +func (m *ReadRequest) GetOptions() *ReadOptions { if m != nil { return m.Options } return nil } -type GetResponse struct { +type ReadResponse struct { Services []*Service `protobuf:"bytes,1,rep,name=services,proto3" json:"services,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } -func (m *GetResponse) Reset() { *m = GetResponse{} } -func (m *GetResponse) String() string { return proto.CompactTextString(m) } -func (*GetResponse) ProtoMessage() {} -func (*GetResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_86e2dd377c869464, []int{6} +func (m *ReadResponse) Reset() { *m = ReadResponse{} } +func (m *ReadResponse) String() string { return proto.CompactTextString(m) } +func (*ReadResponse) ProtoMessage() {} +func (*ReadResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_4bc91a8efec81434, []int{6} } -func (m *GetResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetResponse.Unmarshal(m, b) +func (m *ReadResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ReadResponse.Unmarshal(m, b) } -func (m *GetResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetResponse.Marshal(b, m, deterministic) +func (m *ReadResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ReadResponse.Marshal(b, m, deterministic) } -func (m *GetResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetResponse.Merge(m, src) +func (m *ReadResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ReadResponse.Merge(m, src) } -func (m *GetResponse) XXX_Size() int { - return xxx_messageInfo_GetResponse.Size(m) +func (m *ReadResponse) XXX_Size() int { + return xxx_messageInfo_ReadResponse.Size(m) } -func (m *GetResponse) XXX_DiscardUnknown() { - xxx_messageInfo_GetResponse.DiscardUnknown(m) +func (m *ReadResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ReadResponse.DiscardUnknown(m) } -var xxx_messageInfo_GetResponse proto.InternalMessageInfo +var xxx_messageInfo_ReadResponse proto.InternalMessageInfo -func (m *GetResponse) GetServices() []*Service { +func (m *ReadResponse) GetServices() []*Service { if m != nil { return m.Services } @@ -378,7 +378,7 @@ func (m *DeleteRequest) Reset() { *m = DeleteRequest{} } func (m *DeleteRequest) String() string { return proto.CompactTextString(m) } func (*DeleteRequest) ProtoMessage() {} func (*DeleteRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_86e2dd377c869464, []int{7} + return fileDescriptor_4bc91a8efec81434, []int{7} } func (m *DeleteRequest) XXX_Unmarshal(b []byte) error { @@ -416,7 +416,7 @@ func (m *DeleteResponse) Reset() { *m = DeleteResponse{} } func (m *DeleteResponse) String() string { return proto.CompactTextString(m) } func (*DeleteResponse) ProtoMessage() {} func (*DeleteResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_86e2dd377c869464, []int{8} + return fileDescriptor_4bc91a8efec81434, []int{8} } func (m *DeleteResponse) XXX_Unmarshal(b []byte) error { @@ -448,7 +448,7 @@ func (m *UpdateRequest) Reset() { *m = UpdateRequest{} } func (m *UpdateRequest) String() string { return proto.CompactTextString(m) } func (*UpdateRequest) ProtoMessage() {} func (*UpdateRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_86e2dd377c869464, []int{9} + return fileDescriptor_4bc91a8efec81434, []int{9} } func (m *UpdateRequest) XXX_Unmarshal(b []byte) error { @@ -486,7 +486,7 @@ func (m *UpdateResponse) Reset() { *m = UpdateResponse{} } func (m *UpdateResponse) String() string { return proto.CompactTextString(m) } func (*UpdateResponse) ProtoMessage() {} func (*UpdateResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_86e2dd377c869464, []int{10} + return fileDescriptor_4bc91a8efec81434, []int{10} } func (m *UpdateResponse) XXX_Unmarshal(b []byte) error { @@ -517,7 +517,7 @@ func (m *ListRequest) Reset() { *m = ListRequest{} } func (m *ListRequest) String() string { return proto.CompactTextString(m) } func (*ListRequest) ProtoMessage() {} func (*ListRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_86e2dd377c869464, []int{11} + return fileDescriptor_4bc91a8efec81434, []int{11} } func (m *ListRequest) XXX_Unmarshal(b []byte) error { @@ -549,7 +549,7 @@ func (m *ListResponse) Reset() { *m = ListResponse{} } func (m *ListResponse) String() string { return proto.CompactTextString(m) } func (*ListResponse) ProtoMessage() {} func (*ListResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_86e2dd377c869464, []int{12} + return fileDescriptor_4bc91a8efec81434, []int{12} } func (m *ListResponse) XXX_Unmarshal(b []byte) error { @@ -583,9 +583,9 @@ func init() { proto.RegisterType((*CreateOptions)(nil), "go.micro.runtime.CreateOptions") proto.RegisterType((*CreateRequest)(nil), "go.micro.runtime.CreateRequest") proto.RegisterType((*CreateResponse)(nil), "go.micro.runtime.CreateResponse") - proto.RegisterType((*GetOptions)(nil), "go.micro.runtime.GetOptions") - proto.RegisterType((*GetRequest)(nil), "go.micro.runtime.GetRequest") - proto.RegisterType((*GetResponse)(nil), "go.micro.runtime.GetResponse") + proto.RegisterType((*ReadOptions)(nil), "go.micro.runtime.ReadOptions") + proto.RegisterType((*ReadRequest)(nil), "go.micro.runtime.ReadRequest") + proto.RegisterType((*ReadResponse)(nil), "go.micro.runtime.ReadResponse") proto.RegisterType((*DeleteRequest)(nil), "go.micro.runtime.DeleteRequest") proto.RegisterType((*DeleteResponse)(nil), "go.micro.runtime.DeleteResponse") proto.RegisterType((*UpdateRequest)(nil), "go.micro.runtime.UpdateRequest") @@ -594,39 +594,42 @@ func init() { proto.RegisterType((*ListResponse)(nil), "go.micro.runtime.ListResponse") } -func init() { proto.RegisterFile("runtime.proto", fileDescriptor_86e2dd377c869464) } - -var fileDescriptor_86e2dd377c869464 = []byte{ - // 485 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x54, 0xcb, 0x6f, 0x94, 0x40, - 0x18, 0x2f, 0xcb, 0x16, 0xea, 0x87, 0x98, 0xcd, 0xc4, 0x98, 0x71, 0xe3, 0x63, 0xc3, 0x41, 0x7b, - 0xe2, 0xb0, 0x8d, 0xc6, 0xc7, 0xb1, 0x34, 0x7b, 0x71, 0x63, 0x42, 0x63, 0xe2, 0x75, 0x64, 0xbf, - 0x28, 0xb1, 0x30, 0xc8, 0x0c, 0x1b, 0x7b, 0xf2, 0xe4, 0x1f, 0xed, 0xcd, 0xcc, 0x6b, 0xdb, 0xa5, - 0xd0, 0xcb, 0xde, 0xbe, 0x17, 0x3f, 0x7e, 0x0f, 0x02, 0xc4, 0x6d, 0x57, 0xcb, 0xb2, 0xc2, 0xb4, - 0x69, 0xb9, 0xe4, 0x64, 0xf6, 0x9d, 0xa7, 0x55, 0x59, 0xb4, 0x3c, 0xb5, 0xf3, 0xe4, 0x9f, 0x07, - 0xe1, 0x25, 0xb6, 0xdb, 0xb2, 0x40, 0x42, 0x60, 0x5a, 0xb3, 0x0a, 0xa9, 0xb7, 0xf0, 0x4e, 0x1f, - 0xe4, 0xba, 0x26, 0x14, 0xc2, 0x2d, 0xb6, 0xa2, 0xe4, 0x35, 0x9d, 0xe8, 0xb1, 0x6b, 0xc9, 0x13, - 0x08, 0x04, 0xef, 0xda, 0x02, 0xa9, 0xaf, 0x17, 0xb6, 0x53, 0x28, 0x0d, 0x93, 0x3f, 0xe8, 0xd4, - 0xa0, 0xa8, 0x5a, 0xcd, 0xf0, 0x37, 0x16, 0xf4, 0x78, 0xe1, 0xab, 0x99, 0xaa, 0xc9, 0x39, 0x9c, - 0x54, 0x28, 0xd9, 0x86, 0x49, 0x46, 0x83, 0x85, 0x7f, 0x1a, 0x2d, 0x5f, 0xa7, 0x7d, 0x7a, 0xa9, - 0xa5, 0x96, 0xae, 0xed, 0xe5, 0x45, 0x2d, 0xdb, 0xeb, 0x7c, 0xf7, 0xe0, 0xfc, 0x23, 0xc4, 0x7b, - 0x2b, 0x32, 0x03, 0xff, 0x27, 0x5e, 0x5b, 0x09, 0xaa, 0x24, 0x8f, 0xe1, 0x78, 0xcb, 0xae, 0x3a, - 0xb4, 0xfc, 0x4d, 0xf3, 0x61, 0xf2, 0xce, 0x4b, 0x2e, 0x21, 0x3e, 0x6f, 0x91, 0x49, 0xfc, 0xdc, - 0xc8, 0x92, 0xd7, 0x42, 0x89, 0x2d, 0x78, 0x55, 0xb1, 0x7a, 0x43, 0x3d, 0xcd, 0xd4, 0xb5, 0x0a, - 0x16, 0xeb, 0x2d, 0x9d, 0xe8, 0xa9, 0x2a, 0x95, 0x7c, 0xde, 0xc9, 0xa6, 0x93, 0x4e, 0xbe, 0xe9, - 0x92, 0x3f, 0x0e, 0x34, 0xc7, 0x5f, 0x1d, 0x0a, 0x49, 0xce, 0x20, 0x14, 0x46, 0x85, 0x66, 0x15, - 0x2d, 0x9f, 0x8e, 0xca, 0xcc, 0xdd, 0x25, 0x79, 0x0f, 0x21, 0x37, 0xa4, 0x34, 0xed, 0x68, 0xf9, - 0xf2, 0xee, 0x43, 0x7b, 0xdc, 0x73, 0x77, 0x9f, 0xcc, 0xe0, 0x91, 0x23, 0x20, 0x1a, 0x5e, 0x0b, - 0x4c, 0x5e, 0x01, 0xac, 0x50, 0xde, 0x12, 0x39, 0x9c, 0x68, 0xf2, 0x55, 0xdf, 0x39, 0xde, 0x43, - 0x5f, 0xc3, 0xdb, 0x3e, 0xad, 0x67, 0x77, 0x69, 0xdd, 0xbc, 0xea, 0x86, 0x53, 0x06, 0x91, 0x46, - 0x36, 0x84, 0xc8, 0x1b, 0x38, 0xb1, 0x42, 0x85, 0x36, 0xfa, 0x5e, 0x4f, 0x76, 0xa7, 0x49, 0x06, - 0x71, 0x86, 0x57, 0x78, 0x98, 0xb5, 0xca, 0x1f, 0x87, 0x62, 0xfd, 0xc9, 0x20, 0xfe, 0xd2, 0x6c, - 0xd8, 0xe1, 0xb8, 0x0e, 0xc5, 0xe2, 0xc6, 0x10, 0x7d, 0x2a, 0x85, 0x33, 0x34, 0xb9, 0x80, 0x87, - 0xa6, 0x3d, 0xc8, 0x85, 0xe5, 0x5f, 0x1f, 0xc2, 0xdc, 0x6c, 0xc9, 0x1a, 0x02, 0x93, 0x35, 0x19, - 0xfd, 0x3e, 0xec, 0xdb, 0xe7, 0x8b, 0xf1, 0x03, 0x4b, 0xf7, 0x88, 0x64, 0xe0, 0xaf, 0x50, 0x92, - 0xe1, 0x50, 0x1d, 0xd0, 0xf3, 0x91, 0xed, 0x0e, 0x65, 0x0d, 0x81, 0x31, 0x78, 0x88, 0xd4, 0x5e, - 0x80, 0x43, 0xa4, 0x7a, 0xd9, 0x68, 0x38, 0xe3, 0xeb, 0x10, 0xdc, 0x5e, 0x6e, 0x43, 0x70, 0xbd, - 0x48, 0x8e, 0xc8, 0x0a, 0xa6, 0x2a, 0x05, 0x32, 0x20, 0xe3, 0x56, 0x58, 0xf3, 0x17, 0x63, 0x6b, - 0x07, 0xf4, 0x2d, 0xd0, 0xbf, 0xd4, 0xb3, 0xff, 0x01, 0x00, 0x00, 0xff, 0xff, 0xbc, 0xce, 0x6e, - 0x31, 0x63, 0x05, 0x00, 0x00, +func init() { + proto.RegisterFile("micro/go-micro/runtime/service/proto/runtime.proto", fileDescriptor_4bc91a8efec81434) +} + +var fileDescriptor_4bc91a8efec81434 = []byte{ + // 498 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x54, 0x4b, 0x6f, 0xd3, 0x40, + 0x10, 0xae, 0xe3, 0xd4, 0x2e, 0x63, 0x8c, 0xa2, 0x15, 0x42, 0x4b, 0x25, 0x20, 0xf2, 0xa5, 0xbd, + 0xe0, 0x48, 0xae, 0x10, 0xaf, 0x63, 0x53, 0x71, 0x21, 0x42, 0x72, 0xc5, 0x85, 0xdb, 0xe2, 0x8c, + 0x8a, 0x45, 0xed, 0x35, 0xde, 0x75, 0x44, 0x4f, 0x5c, 0xf9, 0xcb, 0xdc, 0xd0, 0xbe, 0x42, 0xe2, + 0xda, 0x5c, 0x72, 0x9b, 0x99, 0x9d, 0xfd, 0xfc, 0x3d, 0x56, 0x86, 0xac, 0x2a, 0x8b, 0x96, 0x2f, + 0x6e, 0xf8, 0x4b, 0x53, 0xb4, 0x5d, 0x2d, 0xcb, 0x0a, 0x17, 0x02, 0xdb, 0x4d, 0x59, 0xe0, 0xa2, + 0x69, 0xb9, 0xdc, 0x4e, 0x53, 0xdd, 0x91, 0xd9, 0x0d, 0x4f, 0xf5, 0x76, 0x6a, 0xe7, 0xc9, 0x1f, + 0x0f, 0xc2, 0x6b, 0x73, 0x83, 0x10, 0x98, 0xd6, 0xac, 0x42, 0xea, 0xcd, 0xbd, 0xf3, 0x07, 0xb9, + 0xae, 0x09, 0x85, 0x70, 0x83, 0xad, 0x28, 0x79, 0x4d, 0x27, 0x7a, 0xec, 0x5a, 0xf2, 0x04, 0x02, + 0xc1, 0xbb, 0xb6, 0x40, 0xea, 0xeb, 0x03, 0xdb, 0x29, 0x94, 0x86, 0xc9, 0x6f, 0x74, 0x6a, 0x50, + 0x54, 0xad, 0x66, 0xf8, 0x13, 0x0b, 0x7a, 0x3c, 0xf7, 0xd5, 0x4c, 0xd5, 0xe4, 0x12, 0x4e, 0x2a, + 0x94, 0x6c, 0xcd, 0x24, 0xa3, 0xc1, 0xdc, 0x3f, 0x8f, 0xb2, 0xb3, 0xb4, 0x4f, 0x2f, 0xb5, 0xd4, + 0xd2, 0x95, 0xdd, 0xbc, 0xaa, 0x65, 0x7b, 0x97, 0x6f, 0x2f, 0x9e, 0xbe, 0x87, 0x78, 0xef, 0x88, + 0xcc, 0xc0, 0xff, 0x8e, 0x77, 0x56, 0x82, 0x2a, 0xc9, 0x63, 0x38, 0xde, 0xb0, 0xdb, 0x0e, 0x2d, + 0x7f, 0xd3, 0xbc, 0x9b, 0xbc, 0xf1, 0x92, 0x6b, 0x88, 0x2f, 0x5b, 0x64, 0x12, 0x3f, 0x35, 0xb2, + 0xe4, 0xb5, 0x50, 0x62, 0x0b, 0x5e, 0x55, 0xac, 0x5e, 0x53, 0x4f, 0x33, 0x75, 0xad, 0x82, 0xc5, + 0x7a, 0x43, 0x27, 0x7a, 0xaa, 0x4a, 0x25, 0x9f, 0x77, 0xb2, 0xe9, 0xa4, 0x93, 0x6f, 0xba, 0xe4, + 0x97, 0x03, 0xcd, 0xf1, 0x47, 0x87, 0x42, 0x92, 0x0b, 0x08, 0x6d, 0x24, 0x9a, 0x55, 0x94, 0x3d, + 0x1d, 0x95, 0x99, 0xbb, 0x4d, 0xf2, 0x16, 0x42, 0x6e, 0x48, 0x69, 0xda, 0x51, 0xf6, 0xe2, 0xfe, + 0xa5, 0x3d, 0xee, 0xb9, 0xdb, 0x4f, 0x66, 0xf0, 0xc8, 0x11, 0x10, 0x0d, 0xaf, 0x05, 0x26, 0x67, + 0x10, 0xe5, 0xc8, 0xd6, 0x3b, 0x2a, 0x87, 0x23, 0x4d, 0xbe, 0x98, 0x45, 0xc7, 0x7c, 0xe8, 0x3d, + 0xbc, 0xee, 0x13, 0x7b, 0x76, 0x9f, 0xd8, 0xce, 0xc7, 0xfe, 0xd1, 0xba, 0x82, 0x87, 0x06, 0xdb, + 0x90, 0x22, 0xaf, 0xe0, 0xc4, 0x8a, 0x15, 0xda, 0xec, 0xff, 0xfa, 0xb2, 0x5d, 0x4d, 0x96, 0x10, + 0x2f, 0xf1, 0x16, 0x0f, 0xb3, 0x57, 0x79, 0xe4, 0x50, 0xac, 0x47, 0x4b, 0x88, 0x3f, 0x37, 0x6b, + 0x76, 0x38, 0xae, 0x43, 0xb1, 0xb8, 0x31, 0x44, 0x1f, 0x4b, 0x21, 0x2d, 0xaa, 0x72, 0xc1, 0xb4, + 0x07, 0xb9, 0x90, 0xfd, 0xf6, 0x21, 0xcc, 0xcd, 0x29, 0x59, 0x41, 0x60, 0xf2, 0x26, 0xa3, 0x6f, + 0xc4, 0x7e, 0xfd, 0x74, 0x3e, 0xbe, 0x60, 0xe9, 0x1e, 0x91, 0x0f, 0x30, 0x55, 0x39, 0x91, 0x91, + 0x5c, 0x1d, 0xd4, 0xf3, 0xb1, 0xe3, 0x2d, 0xd0, 0x0a, 0x02, 0xe3, 0xf1, 0x10, 0xaf, 0xbd, 0x0c, + 0x87, 0x78, 0xf5, 0xe2, 0xd1, 0x70, 0xc6, 0xda, 0x21, 0xb8, 0xbd, 0xe8, 0x86, 0xe0, 0x7a, 0xa9, + 0x68, 0x99, 0x2a, 0x88, 0x21, 0x99, 0x3b, 0x79, 0x0d, 0xc9, 0xdc, 0xcd, 0x2f, 0x39, 0xfa, 0x1a, + 0xe8, 0x3f, 0xeb, 0xc5, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xbe, 0x95, 0xdf, 0xf9, 0x8f, 0x05, + 0x00, 0x00, } diff --git a/runtime/service/proto/runtime.micro.go b/runtime/service/proto/runtime.pb.micro.go similarity index 87% rename from runtime/service/proto/runtime.micro.go rename to runtime/service/proto/runtime.pb.micro.go index b5a3c4f5..38f340d4 100644 --- a/runtime/service/proto/runtime.micro.go +++ b/runtime/service/proto/runtime.pb.micro.go @@ -1,5 +1,5 @@ // Code generated by protoc-gen-micro. DO NOT EDIT. -// source: runtime.proto +// source: micro/go-micro/runtime/service/proto/runtime.proto package go_micro_runtime @@ -35,7 +35,7 @@ var _ server.Option type RuntimeService interface { Create(ctx context.Context, in *CreateRequest, opts ...client.CallOption) (*CreateResponse, error) - Get(ctx context.Context, in *GetRequest, opts ...client.CallOption) (*GetResponse, error) + Read(ctx context.Context, in *ReadRequest, opts ...client.CallOption) (*ReadResponse, error) Delete(ctx context.Context, in *DeleteRequest, opts ...client.CallOption) (*DeleteResponse, error) Update(ctx context.Context, in *UpdateRequest, opts ...client.CallOption) (*UpdateResponse, error) List(ctx context.Context, in *ListRequest, opts ...client.CallOption) (*ListResponse, error) @@ -69,9 +69,9 @@ func (c *runtimeService) Create(ctx context.Context, in *CreateRequest, opts ... return out, nil } -func (c *runtimeService) Get(ctx context.Context, in *GetRequest, opts ...client.CallOption) (*GetResponse, error) { - req := c.c.NewRequest(c.name, "Runtime.Get", in) - out := new(GetResponse) +func (c *runtimeService) Read(ctx context.Context, in *ReadRequest, opts ...client.CallOption) (*ReadResponse, error) { + req := c.c.NewRequest(c.name, "Runtime.Read", in) + out := new(ReadResponse) err := c.c.Call(ctx, req, out, opts...) if err != nil { return nil, err @@ -113,7 +113,7 @@ func (c *runtimeService) List(ctx context.Context, in *ListRequest, opts ...clie type RuntimeHandler interface { Create(context.Context, *CreateRequest, *CreateResponse) error - Get(context.Context, *GetRequest, *GetResponse) error + Read(context.Context, *ReadRequest, *ReadResponse) error Delete(context.Context, *DeleteRequest, *DeleteResponse) error Update(context.Context, *UpdateRequest, *UpdateResponse) error List(context.Context, *ListRequest, *ListResponse) error @@ -122,7 +122,7 @@ type RuntimeHandler interface { func RegisterRuntimeHandler(s server.Server, hdlr RuntimeHandler, opts ...server.HandlerOption) error { type runtime interface { Create(ctx context.Context, in *CreateRequest, out *CreateResponse) error - Get(ctx context.Context, in *GetRequest, out *GetResponse) error + Read(ctx context.Context, in *ReadRequest, out *ReadResponse) error Delete(ctx context.Context, in *DeleteRequest, out *DeleteResponse) error Update(ctx context.Context, in *UpdateRequest, out *UpdateResponse) error List(ctx context.Context, in *ListRequest, out *ListResponse) error @@ -142,8 +142,8 @@ func (h *runtimeHandler) Create(ctx context.Context, in *CreateRequest, out *Cre return h.RuntimeHandler.Create(ctx, in, out) } -func (h *runtimeHandler) Get(ctx context.Context, in *GetRequest, out *GetResponse) error { - return h.RuntimeHandler.Get(ctx, in, out) +func (h *runtimeHandler) Read(ctx context.Context, in *ReadRequest, out *ReadResponse) error { + return h.RuntimeHandler.Read(ctx, in, out) } func (h *runtimeHandler) Delete(ctx context.Context, in *DeleteRequest, out *DeleteResponse) error { diff --git a/runtime/service/proto/runtime.proto b/runtime/service/proto/runtime.proto index 44a83df4..86814f9d 100644 --- a/runtime/service/proto/runtime.proto +++ b/runtime/service/proto/runtime.proto @@ -4,7 +4,7 @@ package go.micro.runtime; service Runtime { rpc Create(CreateRequest) returns (CreateResponse) {}; - rpc Get(GetRequest) returns (GetResponse) {}; + rpc Read(ReadRequest) returns (ReadResponse) {}; rpc Delete(DeleteRequest) returns (DeleteResponse) {}; rpc Update(UpdateRequest) returns (UpdateResponse) {}; rpc List(ListRequest) returns (ListResponse) {}; @@ -41,17 +41,17 @@ message CreateRequest { message CreateResponse {} -message GetOptions { +message ReadOptions { // version of the service string version = 2; } -message GetRequest { +message ReadRequest { string name = 1; - GetOptions options = 2; + ReadOptions options = 2; } -message GetResponse { +message ReadResponse { repeated Service services = 1; } diff --git a/runtime/service/service.go b/runtime/service/service.go index 00752989..769f0d69 100644 --- a/runtime/service/service.go +++ b/runtime/service/service.go @@ -75,23 +75,23 @@ func (s *svc) Create(svc *runtime.Service, opts ...runtime.CreateOption) error { return nil } -// Get returns the service with the given name from the runtime -func (s *svc) Get(name string, opts ...runtime.GetOption) ([]*runtime.Service, error) { - options := runtime.GetOptions{} +// Read returns the service with the given name from the runtime +func (s *svc) Read(name string, opts ...runtime.ReadOption) ([]*runtime.Service, error) { + options := runtime.ReadOptions{} // apply requested options for _, o := range opts { o(&options) } // runtime service create request - req := &pb.GetRequest{ + req := &pb.ReadRequest{ Name: name, - Options: &pb.GetOptions{ + Options: &pb.ReadOptions{ Version: options.Version, }, } - resp, err := s.runtime.Get(context.Background(), req) + resp, err := s.runtime.Read(context.Background(), req) if err != nil { return nil, err }