From 1fe30611aecb3242d558f242420a86bbf1b4fa3d Mon Sep 17 00:00:00 2001 From: haoqixu Date: Tue, 28 Nov 2023 23:52:03 +0800 Subject: [PATCH] refactor: capabilities to protobufs.AgentCapabilities --- extension/opampextension/config.go | 12 ++++++++++++ extension/opampextension/opamp_agent.go | 6 +----- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/extension/opampextension/config.go b/extension/opampextension/config.go index 52b6968c3634..825c52a9ab1b 100644 --- a/extension/opampextension/config.go +++ b/extension/opampextension/config.go @@ -7,6 +7,7 @@ import ( "errors" "github.com/oklog/ulid/v2" + "github.com/open-telemetry/opamp-go/protobufs" "go.opentelemetry.io/collector/config/configopaque" "go.opentelemetry.io/collector/config/configtls" ) @@ -29,6 +30,17 @@ type Capabilities struct { ReportsEffectiveConfig bool `mapstructure:"reports_effective_config"` } +func (caps Capabilities) toAgentCapabilities() protobufs.AgentCapabilities { + // All Agents MUST report status. + agentCapabilities := protobufs.AgentCapabilities_AgentCapabilities_ReportsStatus + + if caps.ReportsEffectiveConfig { + agentCapabilities |= protobufs.AgentCapabilities_AgentCapabilities_ReportsEffectiveConfig + } + + return agentCapabilities +} + // OpAMPServer contains the OpAMP transport configuration. type OpAMPServer struct { WS *OpAMPWebsocket `mapstructure:"ws"` diff --git a/extension/opampextension/opamp_agent.go b/extension/opampextension/opamp_agent.go index 8543a99d547e..3fdc4c5348ed 100644 --- a/extension/opampextension/opamp_agent.go +++ b/extension/opampextension/opamp_agent.go @@ -76,11 +76,7 @@ func (o *opampAgent) Start(_ context.Context, _ component.Host) error { }, OnMessageFunc: o.onMessage, }, - Capabilities: protobufs.AgentCapabilities_AgentCapabilities_ReportsStatus, - } - - if o.capabilities.ReportsEffectiveConfig { - settings.Capabilities |= protobufs.AgentCapabilities_AgentCapabilities_ReportsEffectiveConfig + Capabilities: o.capabilities.toAgentCapabilities(), } if err := o.createAgentDescription(); err != nil {