@@ -11,6 +11,7 @@ import (
1111 "github.com/utmstack/UTMStack/threadwinds-ingestion/config"
1212 "github.com/utmstack/UTMStack/threadwinds-ingestion/internal/client"
1313 "github.com/utmstack/UTMStack/threadwinds-ingestion/internal/scheduler"
14+ "github.com/utmstack/UTMStack/threadwinds-ingestion/utils"
1415)
1516
1617func main () {
@@ -57,14 +58,27 @@ func main() {
5758 }
5859
5960 if twConfig .APIKey == "" || twConfig .APISecret == "" {
60- catcher .Info ("ThreadWinds not configured, registering in platform ..." , nil )
61+ catcher .Info ("ThreadWinds not configured, will attempt registration with retry ..." , nil )
6162
62- regResp , err := cmClient .RegisterUserReporter (adminEmail )
63+ var regResp * client.RegistrationResponse
64+
65+ registerFunc := func () error {
66+ resp , err := cmClient .RegisterUserReporter (adminEmail )
67+ if err != nil {
68+ return err
69+ }
70+ regResp = resp
71+ return nil
72+ }
73+
74+ err = utils .InfiniteRetryIfXError (registerFunc , "404" , "Not Found" , "connection refused" )
6375 if err != nil {
64- catcher .Error ("failed to register in ThreadWinds Platform" , err , nil )
76+ catcher .Error ("failed to register in ThreadWinds Platform after retries " , err , nil )
6577 os .Exit (1 )
6678 }
6779
80+ catcher .Info ("ThreadWinds registration successful" , nil )
81+
6882 err = backendClient .SaveThreadWindsCredentials (ctx ,
6983 regResp .APIKey ,
7084 regResp .APISecret ,
0 commit comments