Skip to content

Commit

Permalink
extract the do register action
Browse files Browse the repository at this point in the history
Signed-off-by: sunwp <[email protected]>
  • Loading branch information
244372610 committed Dec 8, 2021
1 parent 6b78e06 commit 2d39315
Showing 1 changed file with 15 additions and 6 deletions.
21 changes: 15 additions & 6 deletions pkg/source/source_client.go
Original file line number Diff line number Diff line change
Expand Up @@ -138,28 +138,37 @@ func NewManager() ClientManager {
}

func (m *clientManager) Register(scheme string, resourceClient ResourceClient, adaptor requestAdapter, hooks ...Hook) error {
scheme = strings.ToLower(scheme)
m.mu.Lock()
defer m.mu.Unlock()
if client, ok := m.clients[strings.ToLower(scheme)]; ok {
if client, ok := m.clients[scheme]; ok {
if client.(*clientWrapper).rc != resourceClient {
return errors.Errorf("client with scheme %s already exist, current client: %#v", scheme, client)
}
logger.Warnf("client with scheme %s already exist, no need register again", scheme)
return nil
}
m.clients[strings.ToLower(scheme)] = &clientWrapper{
m.doRegister(scheme, &clientWrapper{
adapter: adaptor,
hooks: hooks,
rc: resourceClient,
}
})
return nil
}

func (m *clientManager) doRegister(scheme string, resourceClient ResourceClient) {
logger.Debugf("register new client %#v for scheme: %s", resourceClient, scheme)
m.clients[strings.ToLower(scheme)] = resourceClient
}

func (m *clientManager) UnRegister(scheme string) {
m.mu.Lock()
defer m.mu.Unlock()
if client, ok := m.clients[strings.ToLower(scheme)]; ok {
scheme = strings.ToLower(scheme)
if client, ok := m.clients[scheme]; ok {
logger.Infof("remove client %#v for scheme %s", client, scheme)
}
delete(m.clients, strings.ToLower(scheme))
delete(m.clients, scheme)
}

func (m *clientManager) GetClient(scheme string) (ResourceClient, bool) {
Expand All @@ -184,7 +193,7 @@ func (m *clientManager) GetClient(scheme string) (ResourceClient, bool) {
m.mu.Unlock()
return nil, false
}
m.clients[scheme] = client
m.doRegister(scheme, client)
m.mu.Unlock()
return client, true
}
Expand Down

0 comments on commit 2d39315

Please sign in to comment.