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 }