if parseErr != nil {
// Could not parse as a timestamp, must be number of seconds
dur, parseErr := strconv.ParseInt(ra, 10, 64)
- if parseErr != nil {
+ if parseErr == nil {
earliestRetry = time.Now().Add(time.Duration(dur) * time.Second)
+ } else {
+ // Couldn't make sense of retry-after,
+ // so set retry to 20 seconds
+ earliestRetry = time.Now().Add(20 * time.Second)
}
}
- if parseErr != nil {
- // Couldn't make sense of retry-after,
- // so set retry to 20 seconds
- earliestRetry = time.Now().Add(20 * time.Second)
- }
return &AzureRateLimitError{*rq, earliestRetry}
}
if rq.ServiceError == nil {
az.ctx, az.stopFunc = context.WithCancel(context.Background())
go func() {
+ az.stopWg.Add(1)
+ defer az.stopWg.Done()
+
tk := time.NewTicker(5 * time.Minute)
for {
select {
case <-az.ctx.Done():
+ tk.Stop()
return
case <-tk.C:
az.ManageBlobs()
// leased to a VM) and haven't been modified for
// DeleteDanglingResourcesAfter seconds.
func (az *AzureInstanceSet) ManageBlobs() {
- az.stopWg.Add(1)
- defer az.stopWg.Done()
-
result, err := az.storageAcctClient.ListKeys(az.ctx, az.azconfig.ResourceGroup, az.azconfig.StorageAccount)
if err != nil {
az.logger.WithError(err).Warn("Couldn't get account keys")
--- /dev/null
+// Copyright (C) The Arvados Authors. All rights reserved.
+//
+// SPDX-License-Identifier: AGPL-3.0
+
+package cloud
+
+import (
+ "testing"
+
+ check "gopkg.in/check.v1"
+)
+
+// Gocheck boilerplate
+func Test(t *testing.T) {
+ check.TestingT(t)
+}