forked from TrueCloudLab/distribution
031c388543
The secure flag will be true by default and will change the s3 endpoint of the region to http instead of https when selected as false. The main benefits of running with secure being false is that it apparently has a roughly 33% performance boost (even on pure data transfer, not only connection setup which is what I would have expected).
71 lines
1.8 KiB
Go
71 lines
1.8 KiB
Go
package s3
|
|
|
|
import (
|
|
"io/ioutil"
|
|
"os"
|
|
"strconv"
|
|
"testing"
|
|
|
|
"github.com/crowdmob/goamz/aws"
|
|
"github.com/docker/distribution/storagedriver"
|
|
"github.com/docker/distribution/storagedriver/testsuites"
|
|
|
|
"gopkg.in/check.v1"
|
|
)
|
|
|
|
// Hook up gocheck into the "go test" runner.
|
|
func Test(t *testing.T) { check.TestingT(t) }
|
|
|
|
func init() {
|
|
accessKey := os.Getenv("AWS_ACCESS_KEY")
|
|
secretKey := os.Getenv("AWS_SECRET_KEY")
|
|
bucket := os.Getenv("S3_BUCKET")
|
|
encrypt := os.Getenv("S3_ENCRYPT")
|
|
secure := os.Getenv("S3_SECURE")
|
|
region := os.Getenv("AWS_REGION")
|
|
root, err := ioutil.TempDir("", "driver-")
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
s3DriverConstructor := func(region aws.Region) (storagedriver.StorageDriver, error) {
|
|
encryptBool, err := strconv.ParseBool(encrypt)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
secureBool := true
|
|
if secure != "" {
|
|
secureBool, err = strconv.ParseBool(secure)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
}
|
|
return New(accessKey, secretKey, bucket, root, region, encryptBool, secureBool)
|
|
}
|
|
|
|
// Skip S3 storage driver tests if environment variable parameters are not provided
|
|
skipCheck := func() string {
|
|
if accessKey == "" || secretKey == "" || bucket == "" || encrypt == "" {
|
|
return "Must set AWS_ACCESS_KEY, AWS_SECRET_KEY, S3_BUCKET, and S3_ENCRYPT to run S3 tests"
|
|
}
|
|
return ""
|
|
}
|
|
|
|
// for _, region := range aws.Regions {
|
|
// if region == aws.USGovWest {
|
|
// continue
|
|
// }
|
|
|
|
testsuites.RegisterInProcessSuite(func() (storagedriver.StorageDriver, error) {
|
|
return s3DriverConstructor(aws.GetRegion(region))
|
|
}, skipCheck)
|
|
// testsuites.RegisterIPCSuite(driverName, map[string]string{
|
|
// "accesskey": accessKey,
|
|
// "secretkey": secretKey,
|
|
// "region": region.Name,
|
|
// "bucket": bucket,
|
|
// "encrypt": encrypt,
|
|
// }, skipCheck)
|
|
// }
|
|
}
|