@@ -24,7 +24,6 @@ package client
24
24
25
25
import (
26
26
"context"
27
- "fmt"
28
27
"net"
29
28
"strconv"
30
29
"sync"
@@ -49,19 +48,15 @@ type Cache interface {
49
48
50
49
func NewClientCache (apiObjectGetter func () * api.ArangoDeployment , factory conn.Factory ) Cache {
51
50
return & cache {
52
- clients : make (map [string ]driver.Client ),
53
51
apiObjectGetter : apiObjectGetter ,
54
52
factory : factory ,
55
53
}
56
54
}
57
55
58
56
type cache struct {
59
57
mutex sync.Mutex
60
- clients map [string ]driver.Client
61
58
apiObjectGetter func () * api.ArangoDeployment
62
59
63
- databaseClient driver.Client
64
-
65
60
factory conn.Factory
66
61
}
67
62
@@ -75,18 +70,12 @@ func (cc *cache) extendHost(host string) string {
75
70
}
76
71
77
72
func (cc * cache ) getClient (ctx context.Context , group api.ServerGroup , id string ) (driver.Client , error ) {
78
- key := fmt .Sprintf ("%d-%s" , group , id )
79
- c , found := cc .clients [key ]
80
- if found {
81
- return c , nil
82
- }
73
+ m , _ , _ := cc .apiObjectGetter ().Status .Members .ElementByID (id )
83
74
84
- // Not found, create a new client
85
- c , err := cc .factory .Client (cc .extendHost (k8sutil .CreatePodDNSName (cc .apiObjectGetter (), group .AsRole (), id )))
75
+ c , err := cc .factory .Client (cc .extendHost (m .GetEndpoint (k8sutil .CreatePodDNSName (cc .apiObjectGetter (), group .AsRole (), id ))))
86
76
if err != nil {
87
77
return nil , errors .WithStack (err )
88
78
}
89
- cc .clients [key ] = c
90
79
return c , nil
91
80
}
92
81
@@ -99,7 +88,6 @@ func (cc *cache) get(ctx context.Context, group api.ServerGroup, id string) (dri
99
88
if _ , err := client .Version (ctx ); err == nil {
100
89
return client , nil
101
90
} else if driver .IsUnauthorized (err ) {
102
- delete (cc .clients , fmt .Sprintf ("%d-%s" , group , id ))
103
91
return cc .getClient (ctx , group , id )
104
92
} else {
105
93
return client , nil
@@ -120,16 +108,10 @@ func (cc cache) GetAuth() conn.Auth {
120
108
}
121
109
122
110
func (cc * cache ) getDatabaseClient () (driver.Client , error ) {
123
- if c := cc .databaseClient ; c != nil {
124
- return c , nil
125
- }
126
-
127
- // Not found, create a new client
128
111
c , err := cc .factory .Client (cc .extendHost (k8sutil .CreateDatabaseClientServiceDNSName (cc .apiObjectGetter ())))
129
112
if err != nil {
130
113
return nil , errors .WithStack (err )
131
114
}
132
- cc .databaseClient = c
133
115
return c , nil
134
116
}
135
117
@@ -142,7 +124,6 @@ func (cc *cache) getDatabase(ctx context.Context) (driver.Client, error) {
142
124
if _ , err := client .Version (ctx ); err == nil {
143
125
return client , nil
144
126
} else if driver .IsUnauthorized (err ) {
145
- cc .databaseClient = nil
146
127
return cc .getDatabaseClient ()
147
128
} else {
148
129
return client , nil
@@ -162,7 +143,7 @@ func (cc *cache) getAgencyClient() (agency.Agency, error) {
162
143
// Not found, create a new client
163
144
var dnsNames []string
164
145
for _ , m := range cc .apiObjectGetter ().Status .Members .Agents {
165
- dnsNames = append (dnsNames , cc .extendHost (k8sutil .CreatePodDNSName (cc .apiObjectGetter (), api .ServerGroupAgents .AsRole (), m .ID )))
146
+ dnsNames = append (dnsNames , cc .extendHost (m . GetEndpoint ( k8sutil .CreatePodDNSName (cc .apiObjectGetter (), api .ServerGroupAgents .AsRole (), m .ID ) )))
166
147
}
167
148
168
149
if len (dnsNames ) == 0 {
0 commit comments