func()

in src/terraform/providers/terraform-provider-avere/averevfxt.go [1161:1206]


func (a *AvereVfxt) CreateAzureStorageFiler(azureStorageFiler *AzureStorageFiler) error {
	credentials, err := a.AvereCommand(a.getListCredentialsCommand())
	if err != nil {
		return err
	}
	type Credentials struct {
		Name string `json:"name"`
	}
	var resultsRaw []Credentials
	if err := json.Unmarshal([]byte(credentials), &resultsRaw); err != nil {
		return err
	}
	credentialsFound := false
	for _, credential := range resultsRaw {
		if credential.Name == azureStorageFiler.GetCloudFilerName() {
			credentialsFound = true
			break
		}
	}
	if !credentialsFound {
		createCredentialsCommand, err := a.getCreateAzureStorageCredentialsCommand(azureStorageFiler)
		if err != nil {
			return err
		}
		if _, err := a.AvereCommand(createCredentialsCommand); err != nil {
			return err
		}
	}
	// ensure the filer has a container
	if err = azureStorageFiler.PrepareForFilerCreation(a); err != nil {
		return err
	}
	// create the storage core filer
	createAzureStorageFilerCommand, err := a.getCreateAzureStorageFilerCommand(azureStorageFiler)
	if err != nil {
		return err
	}
	if _, err := a.AvereCommand(createAzureStorageFilerCommand); err != nil {
		return err
	}
	log.Printf("[INFO] vfxt: ensure stable cluster after adding storage filer")
	if err := a.EnsureClusterStable(); err != nil {
		return err
	}
	return nil
}