Skip to content

Commit

Permalink
provider/openstack: Fix admin_state_up on openstack_lb_member_v1
Browse files Browse the repository at this point in the history
admin_state_up was never being passed to a load balancing member
during creation.
  • Loading branch information
jtopjian committed Apr 20, 2016
1 parent 1047df9 commit dad76f7
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 8 deletions.
15 changes: 13 additions & 2 deletions builtin/providers/openstack/resource_openstack_lb_member_v1.go
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ func resourceLBMemberV1Create(d *schema.ResourceData, meta interface{}) error {
ProtocolPort: d.Get("port").(int),
}

log.Printf("[DEBUG] Create Options: %#v", createOpts)
log.Printf("[DEBUG] OpenStack LB Member Create Options: %#v", createOpts)
m, err := members.Create(networkingClient, createOpts).Extract()
if err != nil {
return fmt.Errorf("Error creating OpenStack LB member: %s", err)
Expand All @@ -86,7 +86,7 @@ func resourceLBMemberV1Create(d *schema.ResourceData, meta interface{}) error {

stateConf := &resource.StateChangeConf{
Pending: []string{"PENDING_CREATE"},
Target: []string{"ACTIVE"},
Target: []string{"ACTIVE", "INACTIVE"},
Refresh: waitForLBMemberActive(networkingClient, m.ID),
Timeout: 2 * time.Minute,
Delay: 5 * time.Second,
Expand All @@ -100,6 +100,17 @@ func resourceLBMemberV1Create(d *schema.ResourceData, meta interface{}) error {

d.SetId(m.ID)

// Due to the way Gophercloud is currently set up, AdminStateUp must be set post-create
updateOpts := members.UpdateOpts{
AdminStateUp: d.Get("admin_state_up").(bool),
}

log.Printf("[DEBUG] OpenStack LB Member Update Options: %#v", createOpts)
m, err = members.Update(networkingClient, m.ID, updateOpts).Extract()
if err != nil {
return fmt.Errorf("Error updating OpenStack LB member: %s", err)
}

return resourceLBMemberV1Read(d, meta)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -237,19 +237,21 @@ var testAccLBV1Pool_fullstack = fmt.Sprintf(`
pool_id = "${openstack_lb_pool_v1.pool_1.id}"
address = "${openstack_compute_instance_v2.instance_1.access_ip_v4}"
port = 80
admin_state_up = true
}
resource "openstack_lb_member_v1" "member_2" {
pool_id = "${openstack_lb_pool_v1.pool_1.id}"
address = "${openstack_compute_instance_v2.instance_2.access_ip_v4}"
port = 80
admin_state_up = true
}
resource "openstack_lb_vip_v1" "vip_1" {
name = "vip_1"
subnet_id = "${openstack_networking_subnet_v2.subnet_1.id}"
protocol = "TCP"
port = 80
pool_id = "${openstack_lb_pool_v1.pool_1.id}"
admin_state_up = true
name = "vip_1"
subnet_id = "${openstack_networking_subnet_v2.subnet_1.id}"
protocol = "TCP"
port = 80
pool_id = "${openstack_lb_pool_v1.pool_1.id}"
admin_state_up = true
}`)

0 comments on commit dad76f7

Please sign in to comment.