@@ -24,7 +24,6 @@ package client
2424
2525import (
2626 "context"
27- "fmt"
2827 "net"
2928 "strconv"
3029 "sync"
@@ -49,19 +48,15 @@ type Cache interface {
4948
5049func NewClientCache (apiObjectGetter func () * api.ArangoDeployment , factory conn.Factory ) Cache {
5150 return & cache {
52- clients : make (map [string ]driver.Client ),
5351 apiObjectGetter : apiObjectGetter ,
5452 factory : factory ,
5553 }
5654}
5755
5856type cache struct {
5957 mutex sync.Mutex
60- clients map [string ]driver.Client
6158 apiObjectGetter func () * api.ArangoDeployment
6259
63- databaseClient driver.Client
64-
6560 factory conn.Factory
6661}
6762
@@ -75,18 +70,12 @@ func (cc *cache) extendHost(host string) string {
7570}
7671
7772func (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 )
8374
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 ))))
8676 if err != nil {
8777 return nil , errors .WithStack (err )
8878 }
89- cc .clients [key ] = c
9079 return c , nil
9180}
9281
@@ -99,7 +88,6 @@ func (cc *cache) get(ctx context.Context, group api.ServerGroup, id string) (dri
9988 if _ , err := client .Version (ctx ); err == nil {
10089 return client , nil
10190 } else if driver .IsUnauthorized (err ) {
102- delete (cc .clients , fmt .Sprintf ("%d-%s" , group , id ))
10391 return cc .getClient (ctx , group , id )
10492 } else {
10593 return client , nil
@@ -120,16 +108,10 @@ func (cc cache) GetAuth() conn.Auth {
120108}
121109
122110func (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
128111 c , err := cc .factory .Client (cc .extendHost (k8sutil .CreateDatabaseClientServiceDNSName (cc .apiObjectGetter ())))
129112 if err != nil {
130113 return nil , errors .WithStack (err )
131114 }
132- cc .databaseClient = c
133115 return c , nil
134116}
135117
@@ -142,7 +124,6 @@ func (cc *cache) getDatabase(ctx context.Context) (driver.Client, error) {
142124 if _ , err := client .Version (ctx ); err == nil {
143125 return client , nil
144126 } else if driver .IsUnauthorized (err ) {
145- cc .databaseClient = nil
146127 return cc .getDatabaseClient ()
147128 } else {
148129 return client , nil
@@ -162,7 +143,7 @@ func (cc *cache) getAgencyClient() (agency.Agency, error) {
162143 // Not found, create a new client
163144 var dnsNames []string
164145 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 ) )))
166147 }
167148
168149 if len (dnsNames ) == 0 {
0 commit comments