Skip to content

Commit 405ec82

Browse files
add listopts to rds instances (#345)
[RDS] add list opts to RDS instances add list opts of rds #1736 Reviewed-by: Anton Sidelnikov <None> Reviewed-by: Rodion Gyrbu <fpsoff@outlook.com>
1 parent a01f86e commit 405ec82

File tree

1 file changed

+39
-20
lines changed

1 file changed

+39
-20
lines changed

openstack/rds/v3/instances/requests.go

Lines changed: 39 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,45 @@ func Delete(client *golangsdk.ServiceClient, instanceId string) (r DeleteInstanc
141141
return
142142
}
143143

144+
type ListOpts struct {
145+
Id string `q:"id"`
146+
Name string `q:"name"`
147+
Type string `q:"type"`
148+
DataStoreType string `q:"datastore_type"`
149+
VpcId string `q:"vpc_id"`
150+
SubnetId string `q:"subnet_id"`
151+
Offset int `q:"offset"`
152+
Limit int `q:"limit"`
153+
}
154+
155+
func (opts ListOpts) ToRdsListDetailQuery() (string, error) {
156+
q, err := golangsdk.BuildQueryString(opts)
157+
if err != nil {
158+
return "", err
159+
}
160+
return q.String(), err
161+
}
162+
163+
func List(client *golangsdk.ServiceClient, opts ListRdsBuilder) pagination.Pager {
164+
url := listURL(client)
165+
if opts != nil {
166+
query, err := opts.ToRdsListDetailQuery()
167+
168+
if err != nil {
169+
return pagination.Pager{Err: err}
170+
}
171+
url += query
172+
}
173+
174+
pageRdsList := pagination.NewPager(client, url, func(r pagination.PageResult) pagination.Page {
175+
return RdsPage{pagination.SinglePageBase(r)}
176+
})
177+
178+
rdsheader := map[string]string{"Content-Type": "application/json"}
179+
pageRdsList.Headers = rdsheader
180+
return pageRdsList
181+
}
182+
144183
type RestartRdsInstanceOpts struct {
145184
Restart string `json:"restart" required:"true"`
146185
}
@@ -192,26 +231,6 @@ func (opts ListRdsInstanceOpts) ToRdsListDetailQuery() (string, error) {
192231
return q.String(), err
193232
}
194233

195-
func List(client *golangsdk.ServiceClient, opts ListRdsBuilder) pagination.Pager {
196-
url := listURL(client)
197-
if opts != nil {
198-
query, err := opts.ToRdsListDetailQuery()
199-
200-
if err != nil {
201-
return pagination.Pager{Err: err}
202-
}
203-
url += query
204-
}
205-
206-
pageRdsList := pagination.NewPager(client, url, func(r pagination.PageResult) pagination.Page {
207-
return RdsPage{pagination.SinglePageBase(r)}
208-
})
209-
210-
rdsheader := map[string]string{"Content-Type": "application/json"}
211-
pageRdsList.Headers = rdsheader
212-
return pageRdsList
213-
}
214-
215234
type SingleToHaRdsOpts struct {
216235
SingleToHa *SingleToHaRds `json:"single_to_ha" required:"true"`
217236
}

0 commit comments

Comments
 (0)