Skip to content

Commit

Permalink
Fix #218 (#219)
Browse files Browse the repository at this point in the history
* Fail if enabled service doesn't exist
Fixes #218

* appprovidersvc as a grpc service
  • Loading branch information
diocas authored and labkode committed Aug 27, 2019
1 parent 3a8cdb8 commit 1053f99
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 17 deletions.
21 changes: 12 additions & 9 deletions cmd/revad/grpcserver/grpcserver.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
package grpcserver

import (
"fmt"
"io"
"net"
"sort"
Expand Down Expand Up @@ -155,26 +156,28 @@ func (s *Server) isInterceptorEnabled(name string) bool {
return false
}

func (s *Server) isServiceEnabled(name string) bool {
for _, k := range s.conf.EnabledServices {
if k == name {
func (s *Server) isService(svcName string) bool {
for key := range Services {
if key == svcName {
return true
}
}
return false
}

func (s *Server) registerServices() error {
for name, newFunc := range Services {
if s.isServiceEnabled(name) {
closer, err := newFunc(s.conf.Services[name], s.s)
for _, svcName := range s.conf.EnabledServices {
if s.isService(svcName) {
newFunc := Services[svcName]
closer, err := newFunc(s.conf.Services[svcName], s.s)
if err != nil {
return err
}
s.closers[name] = closer
s.log.Info().Msgf("grpc service enabled: %s", name)
s.closers[svcName] = closer
s.log.Info().Msgf("grpc service enabled: %s", svcName)
} else {
s.log.Info().Msgf("grpc service disabled: %s", name)
message := fmt.Sprintf("grpc service %s does not exist", svcName)
return errors.New(message)
}
}
return nil
Expand Down
13 changes: 9 additions & 4 deletions cmd/revad/httpserver/httpserver.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ package httpserver

import (
"context"
"fmt"
"net"
"net/http"
"sort"
Expand Down Expand Up @@ -176,8 +177,8 @@ func (s *Server) GracefulStop() error {
return s.httpServer.Shutdown(context.Background())
}

func (s *Server) isEnabled(svcName string) bool {
for _, key := range s.conf.EnabledServices {
func (s *Server) isService(svcName string) bool {
for key := range Services {
if key == svcName {
return true
}
Expand Down Expand Up @@ -216,8 +217,9 @@ func (s *Server) registerMiddlewares() error {
}

func (s *Server) registerServices() error {
for svcName, newFunc := range Services {
if s.isEnabled(svcName) {
for _, svcName := range s.conf.EnabledServices {
if s.isService(svcName) {
newFunc := Services[svcName]
svc, err := newFunc(s.conf.Services[svcName])
if err != nil {
err = errors.Wrap(err, "error registering new http service")
Expand All @@ -229,6 +231,9 @@ func (s *Server) registerServices() error {
s.handlers[svc.Prefix()] = h
s.svcs[svc.Prefix()] = svc
s.log.Info().Msgf("http service enabled: %s@/%s", svcName, svc.Prefix())
} else {
message := fmt.Sprintf("http service %s does not exist", svcName)
return errors.New(message)
}
}
return nil
Expand Down
18 changes: 14 additions & 4 deletions cmd/revad/svcs/grpcsvcs/appprovidersvc/appprovidersvc.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,16 +21,22 @@ package appprovidersvc
import (
"context"
"fmt"
"io"

appproviderv0alphapb "github.com/cs3org/go-cs3apis/cs3/appprovider/v0alpha"
rpcpb "github.com/cs3org/go-cs3apis/cs3/rpc"
"github.com/cs3org/reva/cmd/revad/grpcserver"
"github.com/cs3org/reva/pkg/app"
"github.com/cs3org/reva/pkg/app/provider/demo"
"github.com/cs3org/reva/pkg/appctx"
"github.com/mitchellh/mapstructure"
"google.golang.org/grpc"
)

func init() {
grpcserver.Register("appprovidersvc", New)
}

type service struct {
provider app.Provider
}
Expand All @@ -41,24 +47,24 @@ type config struct {
}

// New creates a new StorageRegistryService
func New(m map[string]interface{}, ss *grpc.Server) error {
func New(m map[string]interface{}, ss *grpc.Server) (io.Closer, error) {

c, err := parseConfig(m)
if err != nil {
return err
return nil, err
}

provider, err := getProvider(c)
if err != nil {
return err
return nil, err
}

service := &service{
provider: provider,
}

appproviderv0alphapb.RegisterAppProviderServiceServer(ss, service)
return nil
return service, nil
}

func parseConfig(m map[string]interface{}) (*config, error) {
Expand All @@ -69,6 +75,10 @@ func parseConfig(m map[string]interface{}) (*config, error) {
return c, nil
}

func (s *service) Close() error {
return nil
}

func getProvider(c *config) (app.Provider, error) {
switch c.Driver {
case "demo":
Expand Down

0 comments on commit 1053f99

Please sign in to comment.