func providerConfigure(p *schema.Provider) schema.ConfigureFunc { return func(d *schema.ResourceData) (interface{}, error) { config := &Config{ SubscriptionID: d.Get("subscription_id").(string), ClientID: d.Get("client_id").(string), ClientSecret: d.Get("client_secret").(string), TenantID: d.Get("tenant_id").(string), } if err := config.validate(); err != nil { return nil, err } client, err := config.getArmClient() if err != nil { return nil, err } client.StopContext = p.StopContext() err = registerAzureResourceProvidersWithSubscription(client.rivieraClient) if err != nil { return nil, err } return client, nil } }
func providerConfigure(p *schema.Provider) schema.ConfigureFunc { return func(d *schema.ResourceData) (interface{}, error) { config := &Config{ SubscriptionID: d.Get("subscription_id").(string), ClientID: d.Get("client_id").(string), ClientSecret: d.Get("client_secret").(string), TenantID: d.Get("tenant_id").(string), Environment: d.Get("environment").(string), SkipProviderRegistration: d.Get("skip_provider_registration").(bool), } if err := config.validate(); err != nil { return nil, err } client, err := config.getArmClient() if err != nil { return nil, err } client.StopContext = p.StopContext() // List all the available providers and their registration state to avoid unnecessary // requests. This also lets us check if the provider credentials are correct. providerList, err := client.providers.List(nil, "") if err != nil { return nil, fmt.Errorf("Unable to list provider registration status, it is possible that this is due to invalid "+ "credentials or the service principal does not have permission to use the Resource Manager API, Azure "+ "error: %s", err) } if !config.SkipProviderRegistration { err = registerAzureResourceProvidersWithSubscription(*providerList.Value, client.providers) if err != nil { return nil, err } } return client, nil } }