From 7afe65adad31945e5e071087ec6652c5ca2696b7 Mon Sep 17 00:00:00 2001 From: Zhenguo Niu Date: Mon, 29 Apr 2019 19:31:26 +0800 Subject: [PATCH 1/2] Add lbaas_listeners support to as_group --- openstack/autoscaling/v1/groups/requests.go | 8 ++++++++ openstack/autoscaling/v1/groups/results.go | 9 ++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/openstack/autoscaling/v1/groups/requests.go b/openstack/autoscaling/v1/groups/requests.go index 7c6598cc0..ef94b40ab 100644 --- a/openstack/autoscaling/v1/groups/requests.go +++ b/openstack/autoscaling/v1/groups/requests.go @@ -19,6 +19,7 @@ type CreateOpts struct { MaxInstanceNumber int `json:"max_instance_number,omitempty"` CoolDownTime int `json:"cool_down_time,omitempty"` LBListenerID string `json:"lb_listener_id,omitempty"` + LBaaSListeners []LBaaSListenerOpts `json:"lbaas_listeners,omitempty"` AvailableZones []string `json:"available_zones,omitempty"` Networks []NetworkOpts `json:"networks" required:"ture"` SecurityGroup []SecurityGroupOpts `json:"security_groups" required:"ture"` @@ -38,6 +39,12 @@ type SecurityGroupOpts struct { ID string `json:"id,omitempty"` } +type LBaaSListenerOpts struct { + PoolID string `json:"pool_id" required:"true"` + ProtocolPort int `json:"protocol_port" required:"true"` + Weight int `json:"weight,omitempty"` +} + func (opts CreateOpts) ToGroupCreateMap() (map[string]interface{}, error) { return golangsdk.BuildRequestBody(opts, "") } @@ -111,6 +118,7 @@ type UpdateOpts struct { MaxInstanceNumber int `json:"max_instance_number,omitempty"` CoolDownTime int `json:"cool_down_time,omitempty"` LBListenerID string `json:"lb_listener_id,omitempty"` + LBaaSListeners []LBaaSListenerOpts `json:"lbaas_listeners,omitempty"` AvailableZones []string `json:"available_zones,omitempty"` Networks []NetworkOpts `json:"networks,omitempty"` SecurityGroup []SecurityGroupOpts `json:"security_groups,omitempty"` diff --git a/openstack/autoscaling/v1/groups/results.go b/openstack/autoscaling/v1/groups/results.go index d6a2fa957..5429cef74 100644 --- a/openstack/autoscaling/v1/groups/results.go +++ b/openstack/autoscaling/v1/groups/results.go @@ -49,7 +49,7 @@ type Group struct { MaxInstanceNumber int `json:"max_instance_number"` CoolDownTime int `json:"cool_down_time"` LBListenerID string `json:"lb_listener_id"` - LBaaSListeners []interface{} `json:"lbaas_listeners"` + LBaaSListeners []LBaaSListener `json:"lbaas_listeners"` AvailableZones []string `json:"available_zones"` Networks []Network `json:"networks"` SecurityGroups []SecurityGroup `json:"security_groups"` @@ -73,6 +73,13 @@ type SecurityGroup struct { ID string `json:"id"` } +type LBListener struct { + ListenerID string `json:"listener_id"` + PoolID string `json:"pool_id"` + ProtocolPort int `json:"protocol_port"` + Weight int `json:"weight"` +} + type GroupPage struct { pagination.SinglePageBase } From 9ae715f524db2db2b4ffd68cd256df623c7e126a Mon Sep 17 00:00:00 2001 From: Zhenguo Niu Date: Tue, 30 Apr 2019 09:15:29 +0800 Subject: [PATCH 2/2] fix naming issue --- openstack/autoscaling/v1/groups/results.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openstack/autoscaling/v1/groups/results.go b/openstack/autoscaling/v1/groups/results.go index 5429cef74..98eb70d50 100644 --- a/openstack/autoscaling/v1/groups/results.go +++ b/openstack/autoscaling/v1/groups/results.go @@ -73,7 +73,7 @@ type SecurityGroup struct { ID string `json:"id"` } -type LBListener struct { +type LBaaSListener struct { ListenerID string `json:"listener_id"` PoolID string `json:"pool_id"` ProtocolPort int `json:"protocol_port"`