Merge branch '14018-acr-set-container-properties' into main
[arvados.git] / services / keepstore / s3aws_volume_test.go
index 46fe07d164465854a12848c8f518ed7693d2cd26..0387d52f18f9bc8e4d05a6d6179117d06f53c2ff 100644 (file)
@@ -41,9 +41,9 @@ type s3AWSFakeClock struct {
 
 func (c *s3AWSFakeClock) Now() time.Time {
        if c.now == nil {
-               return time.Now()
+               return time.Now().UTC()
        }
-       return *c.now
+       return c.now.UTC()
 }
 
 func (c *s3AWSFakeClock) Since(t time.Time) time.Duration {
@@ -123,11 +123,11 @@ func (s *StubbedS3AWSSuite) TestSignature(c *check.C) {
        // as of June 24, 2020. Cf. https://forums.aws.amazon.com/ann.jspa?annID=5816
        vol := S3AWSVolume{
                S3VolumeDriverParameters: arvados.S3VolumeDriverParameters{
-                       AccessKey: "xxx",
-                       SecretKey: "xxx",
-                       Endpoint:  stub.URL,
-                       Region:    "test-region-1",
-                       Bucket:    "test-bucket-name",
+                       AccessKeyID:     "xxx",
+                       SecretAccessKey: "xxx",
+                       Endpoint:        stub.URL,
+                       Region:          "test-region-1",
+                       Bucket:          "test-bucket-name",
                },
                cluster: s.cluster,
                logger:  ctxlog.TestLogger(c),
@@ -166,8 +166,9 @@ func (s *StubbedS3AWSSuite) TestIAMRoleCredentials(c *check.C) {
                metrics: newVolumeMetricsVecs(prometheus.NewRegistry()),
        }
        err := v.check(s.metadata.URL + "/latest")
+       c.Check(err, check.IsNil)
        creds, err := v.bucket.svc.Client.Config.Credentials.Retrieve(context.Background())
-       fmt.Printf("%+v, %s\n", creds, err)
+       c.Check(err, check.IsNil)
        c.Check(creds.AccessKeyID, check.Equals, "ASIAIOSFODNN7EXAMPLE")
        c.Check(creds.SecretAccessKey, check.Equals, "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY")
 
@@ -186,6 +187,7 @@ func (s *StubbedS3AWSSuite) TestIAMRoleCredentials(c *check.C) {
                metrics: newVolumeMetricsVecs(prometheus.NewRegistry()),
        }
        err = deadv.check(s.metadata.URL + "/latest")
+       c.Check(err, check.IsNil)
        _, err = deadv.bucket.svc.Client.Config.Credentials.Retrieve(context.Background())
        c.Check(err, check.ErrorMatches, `(?s).*EC2RoleRequestError: no EC2 instance role found.*`)
        c.Check(err, check.ErrorMatches, `(?s).*404.*`)
@@ -321,9 +323,8 @@ func (s *StubbedS3AWSSuite) TestBackendStates(c *check.C) {
                        return
                }
                v.serverClock.now = &t
-               fmt.Printf("USING TIMESTAMP %s to write key %s", t, key)
                uploader := s3manager.NewUploaderWithClient(v.bucket.svc)
-               resp, err := uploader.UploadWithContext(context.Background(), &s3manager.UploadInput{
+               _, err := uploader.UploadWithContext(context.Background(), &s3manager.UploadInput{
                        Bucket: aws.String(v.bucket.bucket),
                        Key:    aws.String(key),
                        Body:   bytes.NewReader(data),
@@ -331,10 +332,11 @@ func (s *StubbedS3AWSSuite) TestBackendStates(c *check.C) {
                if err != nil {
                        panic(err)
                }
-               fmt.Println(resp)
                v.serverClock.now = nil
-               resp2, err := v.Head(key)
-               fmt.Printf("KEY: %s\n%s", key, resp2)
+               _, err = v.Head(key)
+               if err != nil {
+                       panic(err)
+               }
        }
 
        t0 := time.Now()
@@ -544,10 +546,11 @@ func (s *StubbedS3AWSSuite) newTestableVolume(c *check.C, cluster *arvados.Clust
        // fake s3
        backend := s3mem.New(s3mem.WithTimeSource(clock))
 
-       logger := new(LogrusLog)
+       // To enable GoFakeS3 debug logging, pass logger to gofakes3.WithLogger()
+       /* logger := new(LogrusLog)
        ctxLogger := ctxlog.FromContext(context.Background())
-       logger.log = &ctxLogger
-       faker := gofakes3.New(backend, gofakes3.WithTimeSource(clock), gofakes3.WithLogger(logger), gofakes3.WithTimeSkewLimit(0))
+       logger.log = &ctxLogger */
+       faker := gofakes3.New(backend, gofakes3.WithTimeSource(clock), gofakes3.WithLogger(nil), gofakes3.WithTimeSkewLimit(0))
        srv := httptest.NewServer(faker.Server())
 
        endpoint := srv.URL
@@ -564,8 +567,8 @@ func (s *StubbedS3AWSSuite) newTestableVolume(c *check.C, cluster *arvados.Clust
                S3AWSVolume: &S3AWSVolume{
                        S3VolumeDriverParameters: arvados.S3VolumeDriverParameters{
                                IAMRole:            iamRole,
-                               AccessKey:          accessKey,
-                               SecretKey:          secretKey,
+                               AccessKeyID:        accessKey,
+                               SecretAccessKey:    secretKey,
                                Bucket:             S3AWSTestBucketName,
                                Endpoint:           endpoint,
                                Region:             "test-region-1",