Merge pull request #6919 from jtopjian/openstack-lb-pool-provider

provider/openstack: Add lb_provider argument to lb_pool_v1 resource
pull/6997/head
Joe Topjian 10 years ago
commit c1ec286ff7

156
Godeps/Godeps.json generated

@ -1099,198 +1099,198 @@
},
{
"ImportPath": "github.com/rackspace/gophercloud",
"Comment": "v1.0.0-905-gadc2065",
"Rev": "adc206589ed49d18cecc9890ab93534704b04702"
"Comment": "v1.0.0-911-g6fbd243",
"Rev": "6fbd243473c9984e40119ce8b96be8bfd1cb75d8"
},
{
"ImportPath": "github.com/rackspace/gophercloud/openstack",
"Comment": "v1.0.0-905-gadc2065",
"Rev": "adc206589ed49d18cecc9890ab93534704b04702"
"Comment": "v1.0.0-911-g6fbd243",
"Rev": "6fbd243473c9984e40119ce8b96be8bfd1cb75d8"
},
{
"ImportPath": "github.com/rackspace/gophercloud/openstack/blockstorage/v1/volumes",
"Comment": "v1.0.0-905-gadc2065",
"Rev": "adc206589ed49d18cecc9890ab93534704b04702"
"Comment": "v1.0.0-911-g6fbd243",
"Rev": "6fbd243473c9984e40119ce8b96be8bfd1cb75d8"
},
{
"ImportPath": "github.com/rackspace/gophercloud/openstack/blockstorage/v2/volumes",
"Comment": "v1.0.0-905-gadc2065",
"Rev": "adc206589ed49d18cecc9890ab93534704b04702"
"Comment": "v1.0.0-911-g6fbd243",
"Rev": "6fbd243473c9984e40119ce8b96be8bfd1cb75d8"
},
{
"ImportPath": "github.com/rackspace/gophercloud/openstack/compute/v2/extensions/bootfromvolume",
"Comment": "v1.0.0-905-gadc2065",
"Rev": "adc206589ed49d18cecc9890ab93534704b04702"
"Comment": "v1.0.0-911-g6fbd243",
"Rev": "6fbd243473c9984e40119ce8b96be8bfd1cb75d8"
},
{
"ImportPath": "github.com/rackspace/gophercloud/openstack/compute/v2/extensions/floatingip",
"Comment": "v1.0.0-905-gadc2065",
"Rev": "adc206589ed49d18cecc9890ab93534704b04702"
"Comment": "v1.0.0-911-g6fbd243",
"Rev": "6fbd243473c9984e40119ce8b96be8bfd1cb75d8"
},
{
"ImportPath": "github.com/rackspace/gophercloud/openstack/compute/v2/extensions/keypairs",
"Comment": "v1.0.0-905-gadc2065",
"Rev": "adc206589ed49d18cecc9890ab93534704b04702"
"Comment": "v1.0.0-911-g6fbd243",
"Rev": "6fbd243473c9984e40119ce8b96be8bfd1cb75d8"
},
{
"ImportPath": "github.com/rackspace/gophercloud/openstack/compute/v2/extensions/schedulerhints",
"Comment": "v1.0.0-905-gadc2065",
"Rev": "adc206589ed49d18cecc9890ab93534704b04702"
"Comment": "v1.0.0-911-g6fbd243",
"Rev": "6fbd243473c9984e40119ce8b96be8bfd1cb75d8"
},
{
"ImportPath": "github.com/rackspace/gophercloud/openstack/compute/v2/extensions/secgroups",
"Comment": "v1.0.0-905-gadc2065",
"Rev": "adc206589ed49d18cecc9890ab93534704b04702"
"Comment": "v1.0.0-911-g6fbd243",
"Rev": "6fbd243473c9984e40119ce8b96be8bfd1cb75d8"
},
{
"ImportPath": "github.com/rackspace/gophercloud/openstack/compute/v2/extensions/servergroups",
"Comment": "v1.0.0-905-gadc2065",
"Rev": "adc206589ed49d18cecc9890ab93534704b04702"
"Comment": "v1.0.0-911-g6fbd243",
"Rev": "6fbd243473c9984e40119ce8b96be8bfd1cb75d8"
},
{
"ImportPath": "github.com/rackspace/gophercloud/openstack/compute/v2/extensions/tenantnetworks",
"Comment": "v1.0.0-905-gadc2065",
"Rev": "adc206589ed49d18cecc9890ab93534704b04702"
"Comment": "v1.0.0-911-g6fbd243",
"Rev": "6fbd243473c9984e40119ce8b96be8bfd1cb75d8"
},
{
"ImportPath": "github.com/rackspace/gophercloud/openstack/compute/v2/extensions/volumeattach",
"Comment": "v1.0.0-905-gadc2065",
"Rev": "adc206589ed49d18cecc9890ab93534704b04702"
"Comment": "v1.0.0-911-g6fbd243",
"Rev": "6fbd243473c9984e40119ce8b96be8bfd1cb75d8"
},
{
"ImportPath": "github.com/rackspace/gophercloud/openstack/compute/v2/flavors",
"Comment": "v1.0.0-905-gadc2065",
"Rev": "adc206589ed49d18cecc9890ab93534704b04702"
"Comment": "v1.0.0-911-g6fbd243",
"Rev": "6fbd243473c9984e40119ce8b96be8bfd1cb75d8"
},
{
"ImportPath": "github.com/rackspace/gophercloud/openstack/compute/v2/images",
"Comment": "v1.0.0-905-gadc2065",
"Rev": "adc206589ed49d18cecc9890ab93534704b04702"
"Comment": "v1.0.0-911-g6fbd243",
"Rev": "6fbd243473c9984e40119ce8b96be8bfd1cb75d8"
},
{
"ImportPath": "github.com/rackspace/gophercloud/openstack/compute/v2/servers",
"Comment": "v1.0.0-905-gadc2065",
"Rev": "adc206589ed49d18cecc9890ab93534704b04702"
"Comment": "v1.0.0-911-g6fbd243",
"Rev": "6fbd243473c9984e40119ce8b96be8bfd1cb75d8"
},
{
"ImportPath": "github.com/rackspace/gophercloud/openstack/identity/v2/tenants",
"Comment": "v1.0.0-905-gadc2065",
"Rev": "adc206589ed49d18cecc9890ab93534704b04702"
"Comment": "v1.0.0-911-g6fbd243",
"Rev": "6fbd243473c9984e40119ce8b96be8bfd1cb75d8"
},
{
"ImportPath": "github.com/rackspace/gophercloud/openstack/identity/v2/tokens",
"Comment": "v1.0.0-905-gadc2065",
"Rev": "adc206589ed49d18cecc9890ab93534704b04702"
"Comment": "v1.0.0-911-g6fbd243",
"Rev": "6fbd243473c9984e40119ce8b96be8bfd1cb75d8"
},
{
"ImportPath": "github.com/rackspace/gophercloud/openstack/identity/v3/tokens",
"Comment": "v1.0.0-905-gadc2065",
"Rev": "adc206589ed49d18cecc9890ab93534704b04702"
"Comment": "v1.0.0-911-g6fbd243",
"Rev": "6fbd243473c9984e40119ce8b96be8bfd1cb75d8"
},
{
"ImportPath": "github.com/rackspace/gophercloud/openstack/networking/v2/extensions/fwaas/firewalls",
"Comment": "v1.0.0-905-gadc2065",
"Rev": "adc206589ed49d18cecc9890ab93534704b04702"
"Comment": "v1.0.0-911-g6fbd243",
"Rev": "6fbd243473c9984e40119ce8b96be8bfd1cb75d8"
},
{
"ImportPath": "github.com/rackspace/gophercloud/openstack/networking/v2/extensions/fwaas/policies",
"Comment": "v1.0.0-905-gadc2065",
"Rev": "adc206589ed49d18cecc9890ab93534704b04702"
"Comment": "v1.0.0-911-g6fbd243",
"Rev": "6fbd243473c9984e40119ce8b96be8bfd1cb75d8"
},
{
"ImportPath": "github.com/rackspace/gophercloud/openstack/networking/v2/extensions/fwaas/rules",
"Comment": "v1.0.0-905-gadc2065",
"Rev": "adc206589ed49d18cecc9890ab93534704b04702"
"Comment": "v1.0.0-911-g6fbd243",
"Rev": "6fbd243473c9984e40119ce8b96be8bfd1cb75d8"
},
{
"ImportPath": "github.com/rackspace/gophercloud/openstack/networking/v2/extensions/layer3/floatingips",
"Comment": "v1.0.0-905-gadc2065",
"Rev": "adc206589ed49d18cecc9890ab93534704b04702"
"Comment": "v1.0.0-911-g6fbd243",
"Rev": "6fbd243473c9984e40119ce8b96be8bfd1cb75d8"
},
{
"ImportPath": "github.com/rackspace/gophercloud/openstack/networking/v2/extensions/layer3/routers",
"Comment": "v1.0.0-905-gadc2065",
"Rev": "adc206589ed49d18cecc9890ab93534704b04702"
"Comment": "v1.0.0-911-g6fbd243",
"Rev": "6fbd243473c9984e40119ce8b96be8bfd1cb75d8"
},
{
"ImportPath": "github.com/rackspace/gophercloud/openstack/networking/v2/extensions/lbaas/members",
"Comment": "v1.0.0-905-gadc2065",
"Rev": "adc206589ed49d18cecc9890ab93534704b04702"
"Comment": "v1.0.0-911-g6fbd243",
"Rev": "6fbd243473c9984e40119ce8b96be8bfd1cb75d8"
},
{
"ImportPath": "github.com/rackspace/gophercloud/openstack/networking/v2/extensions/lbaas/monitors",
"Comment": "v1.0.0-905-gadc2065",
"Rev": "adc206589ed49d18cecc9890ab93534704b04702"
"Comment": "v1.0.0-911-g6fbd243",
"Rev": "6fbd243473c9984e40119ce8b96be8bfd1cb75d8"
},
{
"ImportPath": "github.com/rackspace/gophercloud/openstack/networking/v2/extensions/lbaas/pools",
"Comment": "v1.0.0-905-gadc2065",
"Rev": "adc206589ed49d18cecc9890ab93534704b04702"
"Comment": "v1.0.0-911-g6fbd243",
"Rev": "6fbd243473c9984e40119ce8b96be8bfd1cb75d8"
},
{
"ImportPath": "github.com/rackspace/gophercloud/openstack/networking/v2/extensions/lbaas/vips",
"Comment": "v1.0.0-905-gadc2065",
"Rev": "adc206589ed49d18cecc9890ab93534704b04702"
"Comment": "v1.0.0-911-g6fbd243",
"Rev": "6fbd243473c9984e40119ce8b96be8bfd1cb75d8"
},
{
"ImportPath": "github.com/rackspace/gophercloud/openstack/networking/v2/extensions/security/groups",
"Comment": "v1.0.0-905-gadc2065",
"Rev": "adc206589ed49d18cecc9890ab93534704b04702"
"Comment": "v1.0.0-911-g6fbd243",
"Rev": "6fbd243473c9984e40119ce8b96be8bfd1cb75d8"
},
{
"ImportPath": "github.com/rackspace/gophercloud/openstack/networking/v2/extensions/security/rules",
"Comment": "v1.0.0-905-gadc2065",
"Rev": "adc206589ed49d18cecc9890ab93534704b04702"
"Comment": "v1.0.0-911-g6fbd243",
"Rev": "6fbd243473c9984e40119ce8b96be8bfd1cb75d8"
},
{
"ImportPath": "github.com/rackspace/gophercloud/openstack/networking/v2/networks",
"Comment": "v1.0.0-905-gadc2065",
"Rev": "adc206589ed49d18cecc9890ab93534704b04702"
"Comment": "v1.0.0-911-g6fbd243",
"Rev": "6fbd243473c9984e40119ce8b96be8bfd1cb75d8"
},
{
"ImportPath": "github.com/rackspace/gophercloud/openstack/networking/v2/ports",
"Comment": "v1.0.0-905-gadc2065",
"Rev": "adc206589ed49d18cecc9890ab93534704b04702"
"Comment": "v1.0.0-911-g6fbd243",
"Rev": "6fbd243473c9984e40119ce8b96be8bfd1cb75d8"
},
{
"ImportPath": "github.com/rackspace/gophercloud/openstack/networking/v2/subnets",
"Comment": "v1.0.0-905-gadc2065",
"Rev": "adc206589ed49d18cecc9890ab93534704b04702"
"Comment": "v1.0.0-911-g6fbd243",
"Rev": "6fbd243473c9984e40119ce8b96be8bfd1cb75d8"
},
{
"ImportPath": "github.com/rackspace/gophercloud/openstack/objectstorage/v1/accounts",
"Comment": "v1.0.0-905-gadc2065",
"Rev": "adc206589ed49d18cecc9890ab93534704b04702"
"Comment": "v1.0.0-911-g6fbd243",
"Rev": "6fbd243473c9984e40119ce8b96be8bfd1cb75d8"
},
{
"ImportPath": "github.com/rackspace/gophercloud/openstack/objectstorage/v1/containers",
"Comment": "v1.0.0-905-gadc2065",
"Rev": "adc206589ed49d18cecc9890ab93534704b04702"
"Comment": "v1.0.0-911-g6fbd243",
"Rev": "6fbd243473c9984e40119ce8b96be8bfd1cb75d8"
},
{
"ImportPath": "github.com/rackspace/gophercloud/openstack/objectstorage/v1/objects",
"Comment": "v1.0.0-905-gadc2065",
"Rev": "adc206589ed49d18cecc9890ab93534704b04702"
"Comment": "v1.0.0-911-g6fbd243",
"Rev": "6fbd243473c9984e40119ce8b96be8bfd1cb75d8"
},
{
"ImportPath": "github.com/rackspace/gophercloud/openstack/utils",
"Comment": "v1.0.0-905-gadc2065",
"Rev": "adc206589ed49d18cecc9890ab93534704b04702"
"Comment": "v1.0.0-911-g6fbd243",
"Rev": "6fbd243473c9984e40119ce8b96be8bfd1cb75d8"
},
{
"ImportPath": "github.com/rackspace/gophercloud/pagination",
"Comment": "v1.0.0-905-gadc2065",
"Rev": "adc206589ed49d18cecc9890ab93534704b04702"
"Comment": "v1.0.0-911-g6fbd243",
"Rev": "6fbd243473c9984e40119ce8b96be8bfd1cb75d8"
},
{
"ImportPath": "github.com/rackspace/gophercloud/testhelper",
"Comment": "v1.0.0-905-gadc2065",
"Rev": "adc206589ed49d18cecc9890ab93534704b04702"
"Comment": "v1.0.0-911-g6fbd243",
"Rev": "6fbd243473c9984e40119ce8b96be8bfd1cb75d8"
},
{
"ImportPath": "github.com/rackspace/gophercloud/testhelper/client",
"Comment": "v1.0.0-905-gadc2065",
"Rev": "adc206589ed49d18cecc9890ab93534704b04702"
"Comment": "v1.0.0-911-g6fbd243",
"Rev": "6fbd243473c9984e40119ce8b96be8bfd1cb75d8"
},
{
"ImportPath": "github.com/rainycape/unidecode",

@ -51,6 +51,12 @@ func resourceLBPoolV1() *schema.Resource {
Required: true,
ForceNew: false,
},
"lb_provider": &schema.Schema{
Type: schema.TypeString,
Optional: true,
Computed: true,
ForceNew: true,
},
"tenant_id": &schema.Schema{
Type: schema.TypeString,
Optional: true,
@ -116,6 +122,7 @@ func resourceLBPoolV1Create(d *schema.ResourceData, meta interface{}) error {
SubnetID: d.Get("subnet_id").(string),
LBMethod: d.Get("lb_method").(string),
TenantID: d.Get("tenant_id").(string),
Provider: d.Get("lb_provider").(string),
}
log.Printf("[DEBUG] Create Options: %#v", createOpts)
@ -182,6 +189,7 @@ func resourceLBPoolV1Read(d *schema.ResourceData, meta interface{}) error {
d.Set("protocol", p.Protocol)
d.Set("subnet_id", p.SubnetID)
d.Set("lb_method", p.LBMethod)
d.Set("lb_provider", p.Provider)
d.Set("tenant_id", p.TenantID)
d.Set("monitor_ids", p.MonitorIDs)
d.Set("member_ids", p.MemberIDs)

@ -28,6 +28,7 @@ func TestAccLBV1Pool_basic(t *testing.T) {
Config: testAccLBV1Pool_basic,
Check: resource.ComposeTestCheckFunc(
testAccCheckLBV1PoolExists(t, "openstack_lb_pool_v1.pool_1", &pool),
resource.TestCheckResourceAttr("openstack_lb_pool_v1.pool_1", "lb_provider", "haproxy"),
),
},
resource.TestStep{
@ -144,6 +145,7 @@ var testAccLBV1Pool_basic = fmt.Sprintf(`
protocol = "HTTP"
subnet_id = "${openstack_networking_subnet_v2.subnet_1.id}"
lb_method = "ROUND_ROBIN"
lb_provider = "haproxy"
}`,
OS_REGION_NAME, OS_REGION_NAME, OS_REGION_NAME)

@ -74,6 +74,9 @@ type CreateOpts struct {
// current specification supports LBMethodRoundRobin and
// LBMethodLeastConnections as valid values for this attribute.
LBMethod string
// The provider of the pool
Provider string
}
// Create accepts a CreateOpts struct and uses the values to create a new
@ -85,6 +88,7 @@ func Create(c *gophercloud.ServiceClient, opts CreateOpts) CreateResult {
Protocol string `json:"protocol"`
SubnetID string `json:"subnet_id"`
LBMethod string `json:"lb_method"`
Provider string `json:"provider,omitempty"`
}
type request struct {
Pool pool `json:"pool"`
@ -96,6 +100,7 @@ func Create(c *gophercloud.ServiceClient, opts CreateOpts) CreateResult {
Protocol: opts.Protocol,
SubnetID: opts.SubnetID,
LBMethod: opts.LBMethod,
Provider: opts.Provider,
}}
var res CreateResult

@ -25,7 +25,7 @@ func (opts GetOpts) ToAccountGetMap() (map[string]string, error) {
// ExtractHeader method on the GetResult.
func Get(c *gophercloud.ServiceClient, opts GetOptsBuilder) GetResult {
var res GetResult
h := c.AuthenticatedHeaders()
h := make(map[string]string)
if opts != nil {
headers, err := opts.ToAccountGetMap()

@ -96,7 +96,7 @@ func (opts CreateOpts) ToContainerCreateMap() (map[string]string, error) {
// Create is a function that creates a new container.
func Create(c *gophercloud.ServiceClient, containerName string, opts CreateOptsBuilder) CreateResult {
var res CreateResult
h := c.AuthenticatedHeaders()
h := make(map[string]string)
if opts != nil {
headers, err := opts.ToContainerCreateMap()
@ -164,7 +164,7 @@ func (opts UpdateOpts) ToContainerUpdateMap() (map[string]string, error) {
// metadata.
func Update(c *gophercloud.ServiceClient, containerName string, opts UpdateOptsBuilder) UpdateResult {
var res UpdateResult
h := c.AuthenticatedHeaders()
h := make(map[string]string)
if opts != nil {
headers, err := opts.ToContainerUpdateMap()

@ -117,7 +117,7 @@ func Download(c *gophercloud.ServiceClient, containerName, objectName string, op
var res DownloadResult
url := downloadURL(c, containerName, objectName)
h := c.AuthenticatedHeaders()
h := make(map[string]string)
if opts != nil {
headers, query, err := opts.ToObjectDownloadParams()
@ -282,7 +282,7 @@ func (opts CopyOpts) ToObjectCopyMap() (map[string]string, error) {
// Copy is a function that copies one object to another.
func Copy(c *gophercloud.ServiceClient, containerName, objectName string, opts CopyOptsBuilder) CopyResult {
var res CopyResult
h := c.AuthenticatedHeaders()
h := make(map[string]string)
headers, err := opts.ToObjectCopyMap()
if err != nil {
@ -427,7 +427,7 @@ func (opts UpdateOpts) ToObjectUpdateMap() (map[string]string, error) {
// Update is a function that creates, updates, or deletes an object's metadata.
func Update(c *gophercloud.ServiceClient, containerName, objectName string, opts UpdateOptsBuilder) UpdateResult {
var res UpdateResult
h := c.AuthenticatedHeaders()
h := make(map[string]string)
if opts != nil {
headers, err := opts.ToObjectUpdateMap()

@ -18,6 +18,7 @@ resource "openstack_lb_pool_v1" "pool_1" {
protocol = "HTTP"
subnet_id = "12345"
lb_method = "ROUND_ROBIN"
lb_provider = "haproxy"
monitor_ids = ["67890"]
}
```
@ -131,6 +132,9 @@ The following arguments are supported:
members of the pool. The current specification supports 'ROUND_ROBIN' and
'LEAST_CONNECTIONS' as valid values for this attribute.
* `lb_provider` - (Optional) The backend load balancing provider. For example:
`haproxy`, `F5`, etc.
* `tenant_id` - (Optional) The owner of the pool. Required if admin wants to
create a pool member for another tenant. Changing this creates a new pool.
@ -166,6 +170,7 @@ The following attributes are exported:
* `protocol` - See Argument Reference above.
* `subnet_id` - See Argument Reference above.
* `lb_method` - See Argument Reference above.
* `lb_provider` - See Argument Reference above.
* `tenant_id` - See Argument Reference above.
* `monitor_id` - See Argument Reference above.
* `member` - See Argument Reference above.

Loading…
Cancel
Save