drivers/azure/azureutil/azureutil.go
func (a AzureClient) RegisterResourceProviders(namespaces ...string) error {
	l, err := a.providersClient().List(nil, "")
	if err != nil {
		return err
	}
	if l.Value == nil {
		return errors.New("resource providers list is returned as nil")
	}

	m := make(map[string]bool)
	for _, p := range *l.Value {
		m[strings.ToLower(to.String(p.Namespace))] = to.String(p.RegistrationState) == "Registered"
	}

	for _, ns := range namespaces {
		registered, ok := m[strings.ToLower(ns)]
		if !ok {
			return fmt.Errorf("unknown resource provider %q", ns)
		}
		if registered {
			log.Debugf("Already registered for %q", ns)
		} else {
			log.Info("Registering subscription to resource provider.", logutil.Fields{
				"ns":   ns,
				"subs": a.subscriptionID,
			})
			if _, err := a.providersClient().Register(ns); err != nil {
				return err
			}
		}
	}
	return nil
}
func (a AzureClient) RegisterResourceProviders(namespaces ...string) error {
	l, err := a.providersClient().List(nil, "")
	if err != nil {
		return err
	}
	if l.Value == nil {
		return errors.New("resource providers list is returned as nil")
	}

	m := make(map[string]bool)
	for _, p := range *l.Value {
		m[strings.ToLower(to.String(p.Namespace))] = to.String(p.RegistrationState) == "Registered"
	}

	for _, ns := range namespaces {
		registered, ok := m[strings.ToLower(ns)]
		if !ok {
			return fmt.Errorf("unknown resource provider %q", ns)
		}
		if registered {
			log.Debugf("Already registered for %q", ns)
		} else {
			log.Info("Registering subscription to resource provider.", logutil.Fields{
				"ns":   ns,
				"subs": a.subscriptionID,
			})
			if _, err := a.providersClient().Register(ns); err != nil {
				return err
			}
		}
	}
	return nil
}
func ( a AzureClient ) RegisterResourceProviders ( namespaces ... string ) error { l , err := a . providersClient ( ) . List ( nil , " " ) if err != nil { return err } if l . Value == nil { return errors . New ( " " ) } m := make ( map [ string ] bool ) for _ , p := range * l . Value { m [ strings . ToLower ( to . String ( p . Namespace ) ) ] = to . String ( p . RegistrationState ) == " " } for _ , ns := range namespaces { registered , ok := m [ strings . ToLower ( ns ) ] if ! ok { return fmt . Errorf ( " " , ns ) } if registered { log . Debugf ( " " , ns ) } else { log . Info ( " " , logutil . Fields { " " : ns , " " : a . subscriptionID , } ) if _ , err := a . providersClient ( ) . Register ( ns ) ; err != nil { return err } } } return nil }
// RegisterResourceProviders registers current subscription to the specified
// resource provider namespaces if they are not already registered. Namespaces
// are case-insensitive.
RegisterResourceProviders registers current subscription to the specified resource provider namespaces if they are not already registered . Namespaces are case - insensitive .