github.com/Axway/agent-sdk@v1.1.101/pkg/agent/handler/agentresource.go (about) 1 package handler 2 3 import ( 4 "context" 5 6 "github.com/Axway/agent-sdk/pkg/agent/resource" 7 v1 "github.com/Axway/agent-sdk/pkg/apic/apiserver/models/api/v1" 8 "github.com/Axway/agent-sdk/pkg/watchmanager/proto" 9 ) 10 11 const ( 12 discoveryAgent = "DiscoveryAgent" 13 traceabilityAgent = "TraceabilityAgent" 14 governanceAgent = "GovernanceAgent" 15 ) 16 17 type agentResourceHandler struct { 18 agentResourceManager resource.Manager 19 } 20 21 // NewAgentResourceHandler - creates a Handler for Agent resources 22 func NewAgentResourceHandler(agentResourceManager resource.Manager) Handler { 23 return &agentResourceHandler{ 24 agentResourceManager: agentResourceManager, 25 } 26 } 27 28 func (h *agentResourceHandler) Handle(ctx context.Context, _ *proto.EventMeta, resource *v1.ResourceInstance) error { 29 action := GetActionFromContext(ctx) 30 if h.agentResourceManager != nil && action == proto.Event_UPDATED { 31 kind := resource.Kind 32 switch kind { 33 case discoveryAgent: 34 fallthrough 35 case traceabilityAgent: 36 fallthrough 37 case governanceAgent: 38 h.agentResourceManager.SetAgentResource(resource) 39 } 40 } 41 return nil 42 }