Skip to content
Snippets Groups Projects
Unverified Commit 4b4964e5 authored by 李泽玺's avatar 李泽玺 Committed by GitHub
Browse files

Merge pull request #8840 from rainzm/automated-cherry-pick-of-#8827-upstream-release-3.4

Automated cherry pick of #8827: fix(notify): be compatible with keystone's UsersV3.GetById
parents cbea17b4 4a06b38d
No related branches found
No related tags found
No related merge requests found
......@@ -332,7 +332,13 @@ func notifyRobot(ctx context.Context, robot string, recipientId []string, isGrou
if err != nil {
return err
}
jarray, _ := result.Get("types")
if result == nil {
return nil
}
jarray, err := result.Get("types")
if err != nil {
return err
}
cTypes := jarray.(*jsonutils.JSONArray).GetStringArray()
for _, ct := range cTypes {
RawNotifyWithCtx(ctx, recipientId, isGroup, npk.TNotifyChannel(ct), priority, event, data)
......
......@@ -243,6 +243,8 @@ func (rm *SReceiverManager) ValidateCreateData(ctx context.Context, userCred mcc
return input, err
}
uname, _ := userObj.GetString("name")
uid, _ := userObj.GetString("id")
input.UID = uid
input.UName = uname
domainId, _ := userObj.GetString("domain_id")
input.ProjectDomainId = domainId
......@@ -260,7 +262,9 @@ func (rm *SReceiverManager) ValidateCreateData(ctx context.Context, userCred mcc
return input, err
}
uid, _ := userObj.GetString("id")
uname, _ := userObj.GetString("name")
input.UID = uid
input.UName = uname
domainId, _ := userObj.GetString("domain_id")
input.ProjectDomainId = domainId
}
......@@ -862,6 +866,9 @@ func (rm *SReceiverManager) OnUpdate(oldObj, newObj *jsonutils.JSONDict) {
log.Errorf("fail to FetchByIDs: %v", err)
return
}
if len(receivers) == 0 {
return
}
receiver := &receivers[0]
uname, _ := newObj.GetString("name")
domainId, _ := newObj.GetString("domain_id")
......@@ -885,6 +892,9 @@ func (rm *SReceiverManager) OnDelete(obj *jsonutils.JSONDict) {
log.Errorf("fail to FetchByIDs: %v", err)
return
}
if len(receivers) == 0 {
return
}
receiver := &receivers[0]
err = receiver.Delete(context.Background(), auth.GetAdminSession(context.Background(), "", "").GetToken())
if err != nil {
......
......@@ -58,6 +58,11 @@ func StartService() {
db.EnsureAppInitSyncDB(applicaion, dbOpts, models.InitDB)
defer cloudcommon.CloseDB()
err := models.ReceiverManager.StartWatchUserInKeystone()
if err != nil {
log.Logger().Panic(err.Error())
}
// init notify service
models.NotifyService = rpc.NewSRpcService(opts.SocketFileDir, models.ConfigManager, models.TemplateManager)
models.NotifyService.InitAll()
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment