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  }