diff --git a/pkg/connector/registry.go b/pkg/connector/registry.go index 28b6982ef..3f82487b8 100644 --- a/pkg/connector/registry.go +++ b/pkg/connector/registry.go @@ -34,10 +34,14 @@ func NewConnectorRegistry() *ConnectorRegistry { } } -func (cr *ConnectorRegistry) Register(connectorID string, connector Connector) { +func (cr *ConnectorRegistry) Register(connectorID string, connector Connector) error { cr.Lock() defer cr.Unlock() + if _, ok := cr.connectors[connectorID]; ok { + return fmt.Errorf("connector %q already registered", connectorID) + } cr.connectors[connectorID] = connector + return nil } func (cr *ConnectorRegistry) Get(connectorID string) (Connector, error) { diff --git a/pkg/probod/probod.go b/pkg/probod/probod.go index c47a89dee..1507fc44d 100644 --- a/pkg/probod/probod.go +++ b/pkg/probod/probod.go @@ -178,7 +178,9 @@ func (impl *Implm) Run( defaultConnectorRegistry := connector.NewConnectorRegistry() for _, connector := range impl.cfg.Connectors { - defaultConnectorRegistry.Register(connector.Name, connector.Config) + if err := defaultConnectorRegistry.Register(connector.Name, connector.Config); err != nil { + return fmt.Errorf("cannot register connector: %w", err) + } } usrmgrService, err := usrmgr.NewService(