mirror of
https://github.com/paralus/paralus.git
synced 2026-03-05 02:20:18 +00:00
Basic server setup complete for usermgmt
This commit is contained in:
@@ -6,7 +6,6 @@ require (
|
||||
github.com/RafaySystems/rcloud-base/components/adminsrv v0.0.0-unpublished
|
||||
github.com/RafaySystems/rcloud-base/components/common v0.0.0-unpublished
|
||||
github.com/gogo/protobuf v1.3.2
|
||||
github.com/grpc-ecosystem/grpc-gateway v1.16.0
|
||||
github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.2
|
||||
github.com/spf13/viper v1.10.1
|
||||
google.golang.org/genproto v0.0.0-20211208223120-3a66f561d7aa
|
||||
|
||||
@@ -336,6 +336,7 @@ github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1
|
||||
github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk=
|
||||
github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
|
||||
github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
|
||||
github.com/julienschmidt/httprouter v1.3.0 h1:U0609e9tgbseu3rBINet9P48AI/D3oJs4dN7jwJOQ1U=
|
||||
github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM=
|
||||
github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=
|
||||
github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=
|
||||
@@ -484,6 +485,7 @@ github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9
|
||||
github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM=
|
||||
github.com/soheilhy/cmux v0.1.5/go.mod h1:T7TcVDs9LWfQgPlPsdngu6I6QIoyIFZDDC6sNE1GqG0=
|
||||
github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
|
||||
github.com/speps/go-hashids v2.0.0+incompatible h1:kSfxGfESueJKTx0mpER9Y/1XHl+FVQjtCqRyYcviFbw=
|
||||
github.com/speps/go-hashids v2.0.0+incompatible/go.mod h1:P7hqPzMdnZOfyIk+xrlG1QaSMw+gCBdHKsBDnhpaZvc=
|
||||
github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ=
|
||||
github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=
|
||||
|
||||
@@ -3,18 +3,25 @@ package main
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"net"
|
||||
"net/http"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
"github.com/grpc-ecosystem/grpc-gateway/v2/runtime"
|
||||
"github.com/spf13/viper"
|
||||
"sigs.k8s.io/controller-runtime/pkg/manager/signals"
|
||||
|
||||
"github.com/RafaySystems/rcloud-base/components/common/pkg/auth/interceptors"
|
||||
authv3 "github.com/RafaySystems/rcloud-base/components/common/pkg/auth/v3"
|
||||
"github.com/RafaySystems/rcloud-base/components/common/pkg/gateway"
|
||||
logv2 "github.com/RafaySystems/rcloud-base/components/common/pkg/log/v2"
|
||||
configrpc "github.com/RafaySystems/rcloud-base/components/common/proto/rpc/config"
|
||||
"github.com/RafaySystems/rcloud-base/components/usermgmt/pkg/service"
|
||||
pbrpcv3 "github.com/RafaySystems/rcloud-base/components/usermgmt/proto/rpc/v3"
|
||||
rpcv3 "github.com/RafaySystems/rcloud-base/components/usermgmt/proto/rpc/v3"
|
||||
"google.golang.org/grpc"
|
||||
_grpc "google.golang.org/grpc"
|
||||
)
|
||||
|
||||
const (
|
||||
@@ -78,8 +85,8 @@ func run() {
|
||||
wg.Add(1)
|
||||
|
||||
go runAPI(&wg, ctx)
|
||||
// go runRPC(&wg, ctx)
|
||||
// go runDebug(&wg, ctx)
|
||||
go runRPC(&wg, ctx)
|
||||
go runDebug(&wg, ctx)
|
||||
|
||||
<-ctx.Done()
|
||||
wg.Wait()
|
||||
@@ -120,6 +127,72 @@ func runAPI(wg *sync.WaitGroup, ctx context.Context) {
|
||||
}
|
||||
}
|
||||
|
||||
func runRPC(wg *sync.WaitGroup, ctx context.Context) {
|
||||
defer wg.Done()
|
||||
// defer configPool.Close()
|
||||
|
||||
// userServer := rpcv3.NewUserServer(service.NewUserServer())
|
||||
|
||||
l, err := net.Listen("tcp", fmt.Sprintf(":%d", rpcPort))
|
||||
if err != nil {
|
||||
_log.Fatalw("unable to start rpc listener", "error", err)
|
||||
}
|
||||
|
||||
var opts []_grpc.ServerOption
|
||||
if !dev {
|
||||
opts = append(opts, _grpc.UnaryInterceptor(
|
||||
interceptors.NewAuthInterceptorWithOptions(
|
||||
interceptors.WithLogRequest(),
|
||||
interceptors.WithAuthPool(authPool),
|
||||
interceptors.WithExclude("POST", "/v2/sentry/bootstrap/:templateToken/register"),
|
||||
),
|
||||
))
|
||||
defer authPool.Close()
|
||||
} else {
|
||||
opts = append(opts, _grpc.UnaryInterceptor(
|
||||
interceptors.NewAuthInterceptorWithOptions(interceptors.WithDummy())),
|
||||
)
|
||||
}
|
||||
s := grpc.NewServer(opts...)
|
||||
if err != nil {
|
||||
_log.Fatalw("unable to create grpc server", "error", err)
|
||||
}
|
||||
|
||||
go func() {
|
||||
defer s.GracefulStop()
|
||||
|
||||
<-ctx.Done()
|
||||
_log.Infow("context done")
|
||||
}()
|
||||
|
||||
rpcv3.RegisterUserServer(s, service.NewUserServer())
|
||||
|
||||
_log.Infow("starting rpc server", "port", rpcPort)
|
||||
err = s.Serve(l)
|
||||
if err != nil {
|
||||
_log.Fatalw("unable to start rpc server", "error", err)
|
||||
}
|
||||
}
|
||||
|
||||
func runDebug(wg *sync.WaitGroup, ctx context.Context) {
|
||||
defer wg.Done()
|
||||
s := http.Server{
|
||||
Addr: fmt.Sprintf(":%d", debugPort),
|
||||
}
|
||||
_log.Infow("starting debug server", "port", debugPort)
|
||||
go func() {
|
||||
err := s.ListenAndServe()
|
||||
if err != nil {
|
||||
_log.Fatalw("unable to start debug server", "error", err)
|
||||
}
|
||||
}()
|
||||
|
||||
<-ctx.Done()
|
||||
ctx, cancel := context.WithTimeout(ctx, time.Second*10)
|
||||
defer cancel()
|
||||
s.Shutdown(ctx)
|
||||
}
|
||||
|
||||
func main() {
|
||||
setup()
|
||||
run()
|
||||
|
||||
30
components/usermgmt/pkg/service/user.go
Normal file
30
components/usermgmt/pkg/service/user.go
Normal file
@@ -0,0 +1,30 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
|
||||
userv3 "github.com/RafaySystems/rcloud-base/components/usermgmt/proto/types/userpb/v3"
|
||||
userrpcv3 "github.com/RafaySystems/rcloud-base/components/usermgmt/proto/rpc/v3"
|
||||
)
|
||||
|
||||
type server struct{}
|
||||
|
||||
func (s *server) CreateUser(context.Context, *userv3.User) (*userv3.User, error) {
|
||||
fmt.Println("Called create user")
|
||||
return nil, nil
|
||||
}
|
||||
func (s *server) GetUsers(context.Context, *userrpcv3.GetUsersRequest) (*userrpcv3.GetUsersResponse, error) {
|
||||
return nil, nil
|
||||
}
|
||||
func (s *server) GetUser(context.Context, *userrpcv3.GetUserRequest) (*userv3.User, error) { return nil, nil }
|
||||
func (s *server) UpdateUser(context.Context, *userrpcv3.PutUserRequest) (*userrpcv3.UserResponse, error) {
|
||||
return nil, nil
|
||||
}
|
||||
func (s *server) DeleteUser(context.Context, *userrpcv3.DeleteUserRequest) (*userrpcv3.UserResponse, error) {
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func NewUserServer() userrpcv3.UserServer {
|
||||
return &server{}
|
||||
}
|
||||
Reference in New Issue
Block a user