diff --git a/service/remotecfg/noop.go b/service/remotecfg/noop.go new file mode 100644 index 000000000000..493c3b69b762 --- /dev/null +++ b/service/remotecfg/noop.go @@ -0,0 +1,41 @@ +package remotecfg + +import ( + "context" + "errors" + + "connectrpc.com/connect" + agentv1 "github.com/grafana/agent-remote-config/api/gen/proto/go/agent/v1" +) + +type noopClient struct{} + +// GetConfig returns the agent's configuration. +func (c noopClient) GetConfig(context.Context, *connect.Request[agentv1.GetConfigRequest]) (*connect.Response[agentv1.GetConfigResponse], error) { + return nil, errors.New("noop client") +} + +// GetAgent returns information about the agent. +func (c noopClient) GetAgent(context.Context, *connect.Request[agentv1.GetAgentRequest]) (*connect.Response[agentv1.Agent], error) { + return nil, errors.New("noop client") +} + +// ListAgents returns information about all agents. +func (c noopClient) ListAgents(context.Context, *connect.Request[agentv1.ListAgentsRequest]) (*connect.Response[agentv1.Agents], error) { + return nil, errors.New("noop client") +} + +// CreateAgent registers a new agent. +func (c noopClient) CreateAgent(context.Context, *connect.Request[agentv1.CreateAgentRequest]) (*connect.Response[agentv1.Agent], error) { + return nil, errors.New("noop client") +} + +// UpdateAgent updates an existing agent. +func (c noopClient) UpdateAgent(context.Context, *connect.Request[agentv1.UpdateAgentRequest]) (*connect.Response[agentv1.Agent], error) { + return nil, errors.New("noop client") +} + +// DeleteAgent deletes an existing agent. +func (c noopClient) DeleteAgent(context.Context, *connect.Request[agentv1.DeleteAgentRequest]) (*connect.Response[agentv1.DeleteAgentResponse], error) { + return nil, errors.New("noop client") +} diff --git a/service/remotecfg/remotecfg.go b/service/remotecfg/remotecfg.go index 65ddc9624d8f..95c5bab9cddd 100644 --- a/service/remotecfg/remotecfg.go +++ b/service/remotecfg/remotecfg.go @@ -105,8 +105,9 @@ func New(opts Options) (*Service, error) { } return &Service{ - opts: opts, - ticker: time.NewTicker(math.MaxInt64), + opts: opts, + asClient: noopClient{}, + ticker: time.NewTicker(math.MaxInt64), }, nil } @@ -257,8 +258,8 @@ func (s *Service) Update(newConfig any) error { s.mut.Lock() defer s.mut.Unlock() s.ticker.Reset(math.MaxInt64) - s.asClient = nil - s.args.HTTPClientConfig = nil + s.asClient = noopClient{} + s.args.HTTPClientConfig = config.CloneDefaultHTTPClientConfig() s.currentConfigHash = "" return nil }