Add a simple Retry to preload 96/71496/1
authorKiran Kamineni <kiran.k.kamineni@intel.com>
Tue, 30 Oct 2018 19:16:49 +0000 (12:16 -0700)
committerKiran Kamineni <kiran.k.kamineni@intel.com>
Tue, 30 Oct 2018 19:16:55 +0000 (12:16 -0700)
We are seeing in some environments that
preload gets a connection refused error.
Preload should retry before giving up in such cases.
Currently default retry is 5 times
after a wait of 5 secs each.

Issue-ID: AAF-596
Change-Id: I06e1869374116d777a5dae3fccc72a35e793c6c9
Signed-off-by: Kiran Kamineni <kiran.k.kamineni@intel.com>
sms-service/src/preload/preload.go

index 7e54fb8..9e9b987 100644 (file)
@@ -76,6 +76,7 @@ type smsClient struct {
        //In seconds
        Timeout    int
        CaCertPath string
+       RetryCount int
 
        httpClient *http.Client
 }
@@ -260,17 +261,36 @@ func (c *smsClient) uploadToSMS(data DataJSON) error {
        fmt.Println("Uploading data...")
 
        for _, d := range ldata {
-               err := c.createDomain(d.Name)
+               var err error
+               for i := 0; i < c.RetryCount; i++ {
+                       err = c.createDomain(d.Name)
+                       if err != nil {
+                               fmt.Println(pkgerrors.Cause(err))
+                               fmt.Println("Retrying...")
+                               time.Sleep(5 * time.Second)
+                       } else {
+                               break
+                       }
+               }
                if err != nil {
                        return pkgerrors.Cause(err)
                }
 
                for _, s := range d.Secrets {
-                       err = c.createSecret(d.Name, s.Name, s.Values)
-                       if err != nil {
-                               return pkgerrors.Cause(err)
+                       for i := 0; i < c.RetryCount; i++ {
+                               err = c.createSecret(d.Name, s.Name, s.Values)
+                               if err != nil {
+                                       fmt.Println(pkgerrors.Cause(err))
+                                       fmt.Println("Retrying...")
+                                       time.Sleep(5 * time.Second)
+                               } else {
+                                       break
+                               }
                        }
                }
+               if err != nil {
+                       return pkgerrors.Cause(err)
+               }
        }
 
        return nil
@@ -310,6 +330,7 @@ func main() {
                Timeout:    30,
                BaseURL:    serviceURL,
                CaCertPath: *cacert,
+               RetryCount: 5,
        }
        client.init()