@@ -109,12 +109,10 @@ func (l *LocalMembership) GetIdentifier(id driver.Identity) (string, error) {
109
109
}
110
110
111
111
func (l * LocalMembership ) GetDefaultIdentifier () string {
112
- for _ , identity := range l .localIdentities {
113
- if identity .Default {
114
- return identity .Name
115
- }
116
- }
117
- return ""
112
+ l .localIdentitiesMutex .RLock ()
113
+ defer l .localIdentitiesMutex .RUnlock ()
114
+
115
+ return l .getDefaultIdentifier ()
118
116
}
119
117
120
118
func (l * LocalMembership ) GetIdentityInfo (label string , auditInfo []byte ) (driver.IdentityInfo , error ) {
@@ -137,10 +135,13 @@ func (l *LocalMembership) RegisterIdentity(idConfig driver.IdentityConfiguration
137
135
l .localIdentitiesMutex .Lock ()
138
136
defer l .localIdentitiesMutex .Unlock ()
139
137
140
- return l .registerIdentityConfiguration (& idConfig , l .GetDefaultIdentifier () == "" )
138
+ return l .registerIdentityConfiguration (& idConfig , l .getDefaultIdentifier () == "" )
141
139
}
142
140
143
141
func (l * LocalMembership ) IDs () ([]string , error ) {
142
+ l .localIdentitiesMutex .RLock ()
143
+ defer l .localIdentitiesMutex .RUnlock ()
144
+
144
145
var ids []string
145
146
for _ , identity := range l .localIdentities {
146
147
ids = append (ids , identity .Name )
@@ -176,7 +177,7 @@ func (l *LocalMembership) Load(identities []*config.Identity) error {
176
177
l .logger .Debugf ("load identities from storage...done" )
177
178
178
179
// if no default identity, use the first one
179
- defaultIdentifier := l .GetDefaultIdentifier ()
180
+ defaultIdentifier := l .getDefaultIdentifier ()
180
181
if len (defaultIdentifier ) == 0 {
181
182
l .logger .Warnf ("no default identity, use the first one available" )
182
183
if len (l .localIdentities ) > 0 {
@@ -192,6 +193,15 @@ func (l *LocalMembership) Load(identities []*config.Identity) error {
192
193
return nil
193
194
}
194
195
196
+ func (l * LocalMembership ) getDefaultIdentifier () string {
197
+ for _ , identity := range l .localIdentities {
198
+ if identity .Default {
199
+ return identity .Name
200
+ }
201
+ }
202
+ return ""
203
+ }
204
+
195
205
func (l * LocalMembership ) registerIdentity (identity config.Identity ) error {
196
206
// marshal opts
197
207
optsRaw , err := yaml .Marshal (identity .Opts )
@@ -362,7 +372,7 @@ func (l *LocalMembership) loadFromStorage() error {
362
372
URL : entry .URL ,
363
373
Config : entry .Config ,
364
374
Raw : entry .Raw ,
365
- }, l .GetDefaultIdentifier () == "" ); err != nil {
375
+ }, l .getDefaultIdentifier () == "" ); err != nil {
366
376
return err
367
377
}
368
378
}
0 commit comments