mirror of
https://github.com/openziti/ziti.git
synced 2026-09-11 13:29:03 +00:00
Implement entity change events. Fixes openziti/fabric#562
This commit is contained in:
@@ -17,7 +17,6 @@
|
||||
package handler_ctrl
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/openziti/channel/v2"
|
||||
"github.com/openziti/fabric/controller/change"
|
||||
"github.com/openziti/fabric/controller/network"
|
||||
@@ -28,10 +27,13 @@ type baseHandler struct {
|
||||
network *network.Network
|
||||
}
|
||||
|
||||
func (self *baseHandler) newChangeContext(ch channel.Channel) *change.Context {
|
||||
func (self *baseHandler) newChangeContext(ch channel.Channel, method string) *change.Context {
|
||||
return change.New().
|
||||
SetChangeAuthorId(self.router.Id).
|
||||
SetChangeAuthorName(self.router.Name).
|
||||
SetChangeAuthorType("router").
|
||||
SetSource(fmt.Sprintf("ctrl[%v]", ch.Underlay().GetRemoteAddr().String()))
|
||||
SetChangeAuthorType(change.AuthorTypeRouter).
|
||||
SetSourceType(change.SourceTypeControlChannel).
|
||||
SetSourceMethod(method).
|
||||
SetSourceLocal(ch.Underlay().GetLocalAddr().String()).
|
||||
SetSourceRemote(ch.Underlay().GetRemoteAddr().String())
|
||||
}
|
||||
|
||||
@@ -72,7 +72,7 @@ func (self *createTerminatorHandler) handleCreateTerminator(msg *channel.Message
|
||||
Cost: uint16(request.Cost),
|
||||
}
|
||||
|
||||
if err := self.network.Terminators.Create(terminator, self.newChangeContext(ch)); err == nil {
|
||||
if err := self.network.Terminators.Create(terminator, self.newChangeContext(ch, "fabric.create.terminator")); err == nil {
|
||||
pfxlog.Logger().Infof("created terminator [t/%s]", terminator.Id)
|
||||
handler_common.SendSuccess(msg, ch, terminator.Id)
|
||||
} else {
|
||||
|
||||
@@ -63,7 +63,7 @@ func (self *removeTerminatorHandler) handleRemoveTerminator(msg *channel.Message
|
||||
return
|
||||
}
|
||||
|
||||
if err := self.network.Terminators.Delete(request.TerminatorId, self.newChangeContext(ch)); err == nil {
|
||||
if err := self.network.Terminators.Delete(request.TerminatorId, self.newChangeContext(ch, "fabric.remove.terminator")); err == nil {
|
||||
log.
|
||||
WithField("routerId", ch.Id()).
|
||||
WithField("serviceId", terminator.Service).
|
||||
|
||||
@@ -57,7 +57,7 @@ func (self *removeTerminatorsHandler) HandleReceive(msg *channel.Message, ch cha
|
||||
func (self *removeTerminatorsHandler) handleRemoveTerminators(msg *channel.Message, ch channel.Channel, request *ctrl_pb.RemoveTerminatorsRequest) {
|
||||
log := pfxlog.ContextLogger(ch.Label())
|
||||
|
||||
if err := self.network.Terminators.DeleteBatch(request.TerminatorIds, self.newChangeContext(ch)); err == nil {
|
||||
if err := self.network.Terminators.DeleteBatch(request.TerminatorIds, self.newChangeContext(ch, "fabric.remove.terminators.batch")); err == nil {
|
||||
log.
|
||||
WithField("routerId", ch.Id()).
|
||||
WithField("terminatorIds", request.TerminatorIds).
|
||||
|
||||
@@ -97,7 +97,7 @@ func (self *updateTerminatorHandler) handleUpdateTerminator(msg *channel.Message
|
||||
checker[db.FieldTerminatorPrecedence] = struct{}{}
|
||||
}
|
||||
|
||||
if err := self.network.Terminators.Update(terminator, checker, self.newChangeContext(ch)); err != nil {
|
||||
if err := self.network.Terminators.Update(terminator, checker, self.newChangeContext(ch, "fabric.update.terminator")); err != nil {
|
||||
handler_common.SendFailure(msg, ch, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user