[XAPID-883] Bug fix: Use UTC time instead of local for creating local directories
diff --git a/buffering_manager.go b/buffering_manager.go index 79d4259..d581135 100644 --- a/buffering_manager.go +++ b/buffering_manager.go
@@ -106,7 +106,7 @@ // Save records to correct file based on what timestamp data is being collected for func save(records axRecords) error { - bucket, err := getBucketForTimestamp(time.Now(), records.Tenant) + bucket, err := getBucketForTimestamp(time.Now().UTC(), records.Tenant) if err != nil { return err } @@ -126,11 +126,11 @@ if exists { return b, nil } else { - timestamp := time.Unix(ts, 0).Format(timestampLayout) + timestamp := time.Unix(ts, 0).UTC().Format(timestampLayout) // endtimestamp of bucket = starttimestamp + collectionInterval endTime := time.Unix(ts+int64(config.GetInt(analyticsCollectionInterval)), 0) - endtimestamp := endTime.Format(timestampLayout) + endtimestamp := endTime.UTC().Format(timestampLayout) dirName := tenant.Org + "~" + tenant.Env + "~" + timestamp newPath := filepath.Join(localAnalyticsTempDir, dirName) @@ -161,7 +161,7 @@ //Send event to close directory after endTime + 5 // seconds to make sure all buffers are flushed to file - timer := time.After(endTime.Sub(time.Now()) + time.Second*5) + timer := time.After(endTime.Sub(time.Now().UTC()) + time.Second*5) go func() { <-timer closeBucketEvent <- newBucket
diff --git a/buffering_manager_test.go b/buffering_manager_test.go index c3c747e..42cd512 100644 --- a/buffering_manager_test.go +++ b/buffering_manager_test.go
@@ -12,7 +12,7 @@ var _ = Describe("test getBucketForTimestamp()", func() { It("should return new bucket or existing bucket if created previously", func() { - t := time.Date(2017, 1, 20, 10, 24, 5, 0, time.Local) + t := time.Date(2017, 1, 20, 10, 24, 5, 0, time.UTC) tenant := tenant{Org: "testorg", Env: "testenv", TenantId: "tenantid"} bucket, err := getBucketForTimestamp(t, tenant) @@ -25,7 +25,7 @@ Expect(fw.file.Name()).To(ContainSubstring("20170120102400.20170120102600")) // Should return existing bucket if same interval timestamp is passed - t2 := time.Date(2017, 1, 20, 10, 25, 5, 0, time.Local) + t2 := time.Date(2017, 1, 20, 10, 25, 5, 0, time.UTC) bucket, err = getBucketForTimestamp(t2, tenant) Expect(err).ShouldNot(HaveOccurred()) Expect(bucket.DirName).To(Equal("testorg~testenv~20170120102400"))