Skip to content

Commit 4ec5540

Browse files
authored
feat: add multi tenant (#553)
* feat: support multi-tenant Signed-off-by: xdlbdy <[email protected]> * feat: remove can not delete system eventbus limit Signed-off-by: xdlbdy <[email protected]> * feat: code review Signed-off-by: xdlbdy <[email protected]> --------- Signed-off-by: xdlbdy <[email protected]>
1 parent 28c5b79 commit 4ec5540

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

81 files changed

+9733
-579
lines changed

cmd/controller/main.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ func main() {
8686
os.Exit(-1)
8787
}
8888

89-
namespaceCtrlStv := tenant.NewController(cfg.GetTenantConfig(), mem)
89+
tenantCtrlStv := tenant.NewController(cfg.GetTenantConfig(), mem)
9090
segmentCtrl := eventbus.NewController(cfg.GetEventbusCtrlConfig(), mem)
9191
triggerCtrlStv := trigger.NewController(cfg.GetTriggerConfig(), mem)
9292

@@ -121,7 +121,8 @@ func main() {
121121
}
122122

123123
ctrlpb.RegisterPingServerServer(grpcServer, segmentCtrl)
124-
ctrlpb.RegisterNamespaceControllerServer(grpcServer, namespaceCtrlStv)
124+
ctrlpb.RegisterNamespaceControllerServer(grpcServer, tenantCtrlStv)
125+
ctrlpb.RegisterAuthControllerServer(grpcServer, tenantCtrlStv)
125126
ctrlpb.RegisterEventbusControllerServer(grpcServer, segmentCtrl)
126127
ctrlpb.RegisterEventlogControllerServer(grpcServer, segmentCtrl)
127128
ctrlpb.RegisterSegmentControllerServer(grpcServer, segmentCtrl)
@@ -139,7 +140,7 @@ func main() {
139140
wg.Done()
140141
}()
141142

142-
if err = namespaceCtrlStv.Start(); err != nil {
143+
if err = tenantCtrlStv.Start(); err != nil {
143144
log.Error(ctx, "start namespace controller fail", map[string]interface{}{
144145
log.KeyError: err,
145146
})

internal/controller/eventbus/controller.go

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,12 @@ import (
2626
"sync/atomic"
2727
"time"
2828

29+
"google.golang.org/grpc/codes"
30+
"google.golang.org/grpc/credentials/insecure"
31+
"google.golang.org/grpc/status"
32+
"google.golang.org/protobuf/types/known/emptypb"
33+
"google.golang.org/protobuf/types/known/wrapperspb"
34+
2935
"github.com/vanus-labs/vanus/internal/controller/eventbus/eventlog"
3036
"github.com/vanus-labs/vanus/internal/controller/eventbus/metadata"
3137
"github.com/vanus-labs/vanus/internal/controller/eventbus/server"
@@ -42,11 +48,6 @@ import (
4248
"github.com/vanus-labs/vanus/pkg/util"
4349
ctrlpb "github.com/vanus-labs/vanus/proto/pkg/controller"
4450
metapb "github.com/vanus-labs/vanus/proto/pkg/meta"
45-
"google.golang.org/grpc/codes"
46-
"google.golang.org/grpc/credentials/insecure"
47-
"google.golang.org/grpc/status"
48-
"google.golang.org/protobuf/types/known/emptypb"
49-
"google.golang.org/protobuf/types/known/wrapperspb"
5051
)
5152

5253
var (
@@ -332,6 +333,7 @@ func (ctrl *controller) deleteEventbus(ctx context.Context, id vanus.ID) error {
332333
if !exist {
333334
return errors.ErrResourceNotFound.WithMessage("the eventbus doesn't exist")
334335
}
336+
// todo user can't delete system eventbus, but timer need to delete system eventbus
335337
err := ctrl.kvStore.Delete(ctx, metadata.GetEventbusMetadataKey(id))
336338
if err != nil {
337339
return errors.ErrInternal.WithMessage("delete eventbus metadata in kv failed").Wrap(err)
@@ -376,13 +378,16 @@ func (ctrl *controller) getEventbus(id vanus.ID) (*metapb.Eventbus, error) {
376378
}
377379

378380
func (ctrl *controller) ListEventbus(ctx context.Context,
379-
_ *ctrlpb.ListEventbusRequest,
381+
req *ctrlpb.ListEventbusRequest,
380382
) (*ctrlpb.ListEventbusResponse, error) {
381383
eventbusList := make([]*metapb.Eventbus, 0)
382384
for _, v := range ctrl.eventbusMap {
383385
if strings.HasPrefix(v.Name, primitive.SystemEventbusNamePrefix) {
384386
continue
385387
}
388+
if req.NamespaceId != 0 && req.NamespaceId != v.NamespaceID {
389+
continue
390+
}
386391
ebMD := metadata.Convert2ProtoEventbus(v)[0]
387392
eventbusList = append(eventbusList, ebMD)
388393
}

0 commit comments

Comments
 (0)