@@ -253,30 +253,46 @@ func TestArgoCDEndpoints(ctx context.Context, t *testing.T, baseUrl string) {
253253}
254254
255255func  GetBasicAuth (ctx  context.Context , name  string ) (BasicAuth , error ) {
256+ 	var  lastErr  error 
256257
257- 	b , err  :=  RunCommand (ctx , fmt .Sprintf ("%s get secrets -o json" , IdpbuilderBinaryLocation ), 10 * time .Second )
258- 	if  err  !=  nil  {
259- 		return  BasicAuth {}, err 
260- 	}
261- 	out  :=  BasicAuth {}
258+ 	for  attempt  :=  0 ; attempt  <  5 ; attempt ++  {
259+ 		select  {
260+ 		case  <- ctx .Done ():
261+ 			return  BasicAuth {}, ctx .Err ()
262+ 		default :
263+ 			b , err  :=  RunCommand (ctx , fmt .Sprintf ("%s get secrets -o json" , IdpbuilderBinaryLocation ), 10 * time .Second )
264+ 			if  err  !=  nil  {
265+ 				lastErr  =  err 
266+ 				time .Sleep (httpRetryDelay )
267+ 				continue 
268+ 			}
262269
263- 	secs  :=  make ([]get.TemplateData , 2 )
264- 	err  =  json .Unmarshal (b , & secs )
265- 	if  err  !=  nil  {
266- 		return  BasicAuth {}, err 
267- 	}
270+ 			out  :=  BasicAuth {}
271+ 			secs  :=  make ([]get.TemplateData , 2 )
272+ 			if  err  =  json .Unmarshal (b , & secs ); err  !=  nil  {
273+ 				lastErr  =  err 
274+ 				time .Sleep (httpRetryDelay )
275+ 				continue 
276+ 			}
268277
269- 	for  i  :=  range  secs  {
270- 		if  secs [i ].Name  ==  name  {
271- 			out .Password  =  secs [i ].Data ["password" ]
272- 			out .Username  =  secs [i ].Data ["username" ]
273- 			break 
278+ 			for  i  :=  range  secs  {
279+ 				if  secs [i ].Name  ==  name  {
280+ 					out .Password  =  secs [i ].Data ["password" ]
281+ 					out .Username  =  secs [i ].Data ["username" ]
282+ 					break 
283+ 				}
284+ 			}
285+ 
286+ 			if  out .Password  ==  ""  ||  out .Username  ==  ""  {
287+ 				time .Sleep (httpRetryDelay )
288+ 				continue 
289+ 			}
290+ 
291+ 			return  out , nil 
274292		}
275293	}
276- 	if  out .Password  ==  ""  ||  out .Username  ==  ""  {
277- 		return  BasicAuth {}, fmt .Errorf ("could not find argocd or gitea credentials: %s" , b )
278- 	}
279- 	return  out , nil 
294+ 
295+ 	return  BasicAuth {}, fmt .Errorf ("failed after 5 attempts: %w" , lastErr )
280296}
281297
282298func  GetArgoCDSessionToken (ctx  context.Context , endpoint  string ) (string , error ) {
@@ -350,11 +366,7 @@ func isArgoAppSyncedAndHealthy(ctx context.Context, kubeClient client.Client, na
350366		return  false , err 
351367	}
352368
353- 	if  app .Status .Health .Status  ==  "Healthy"  &&  app .Status .Sync .Status  ==  "Synced"  {
354- 		return  true , nil 
355- 	}
356- 
357- 	return  false , nil 
369+ 	return  app .Status .Health .Status  ==  "Healthy"  &&  app .Status .Sync .Status  ==  "Synced" , nil 
358370}
359371
360372func  GetKubeClient () (client.Client , error ) {
0 commit comments