func (s *azureVolumeAdder) Set(containerName string) error { if trashLifetime != 0 { return ErrNotImplemented } if containerName == "" { return errors.New("no container name given") } if azureStorageAccountName == "" || azureStorageAccountKeyFile == "" { return errors.New("-azure-storage-account-name and -azure-storage-account-key-file arguments must given before -azure-storage-container-volume") } accountKey, err := readKeyFromFile(azureStorageAccountKeyFile) if err != nil { return err } azClient, err := storage.NewBasicClient(azureStorageAccountName, accountKey) if err != nil { return errors.New("creating Azure storage client: " + err.Error()) } if flagSerializeIO { log.Print("Notice: -serialize is not supported by azure-blob-container volumes.") } v := NewAzureBlobVolume(azClient, containerName, flagReadonly, azureStorageReplication) if err := v.Check(); err != nil { return err } *s.volumeSet = append(*s.volumeSet, v) return nil }
func NewTestableAzureBlobVolume(t *testing.T, readonly bool, replication int) *TestableAzureBlobVolume { azHandler := newAzStubHandler() azStub := httptest.NewServer(azHandler) var azClient storage.Client container := azureTestContainer if container == "" { // Connect to stub instead of real Azure storage service stubURLBase := strings.Split(azStub.URL, "://")[1] var err error if azClient, err = storage.NewClient(emulatorAccountName, emulatorAccountKey, stubURLBase, storage.DefaultAPIVersion, false); err != nil { t.Fatal(err) } container = "fakecontainername" } else { // Connect to real Azure storage service accountKey, err := readKeyFromFile(azureStorageAccountKeyFile) if err != nil { t.Fatal(err) } azClient, err = storage.NewBasicClient(azureStorageAccountName, accountKey) if err != nil { t.Fatal(err) } } v := NewAzureBlobVolume(azClient, container, readonly, replication) return &TestableAzureBlobVolume{ AzureBlobVolume: v, azHandler: azHandler, azStub: azStub, t: t, } }