github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/provider/rackspace/init.go (about)

     1  // Copyright 2015 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package rackspace
     5  
     6  import (
     7  	"gopkg.in/goose.v2/client"
     8  	"gopkg.in/goose.v2/identity"
     9  
    10  	"github.com/juju/juju/environs"
    11  	"github.com/juju/juju/provider/openstack"
    12  )
    13  
    14  const (
    15  	providerType = "rackspace"
    16  )
    17  
    18  func init() {
    19  	osProvider := &openstack.EnvironProvider{
    20  		ProviderCredentials: Credentials{},
    21  		Configurator:        &rackspaceConfigurator{},
    22  		FirewallerFactory:   &firewallerFactory{},
    23  		FlavorFilter:        openstack.FlavorFilterFunc(acceptRackspaceFlavor),
    24  		NetworkingDecorator: rackspaceNetworkingDecorator{},
    25  		ClientFromEndpoint: func(endpoint string) client.AuthenticatingClient {
    26  			return client.NewClient(&identity.Credentials{URL: endpoint}, 0, nil)
    27  		},
    28  	}
    29  	providerInstance = &environProvider{
    30  		osProvider,
    31  	}
    32  	environs.RegisterProvider(providerType, providerInstance)
    33  }