Skip to content

Commit 47043ab

Browse files
authored
feat(kafka/instance): add new APIs to replace history APIs (#748)
1 parent 0fd4ae2 commit 47043ab

File tree

2 files changed

+45
-0
lines changed

2 files changed

+45
-0
lines changed

openstack/dms/v2/kafka/instances/requests.go

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,20 @@ func CreateWithEngine(client *golangsdk.ServiceClient, ops CreateOpsBuilder, eng
242242
return
243243
}
244244

245+
func CreateInstance(client *golangsdk.ServiceClient, ops CreateOpsBuilder) (r CreateResult) {
246+
b, err := ops.ToInstanceCreateMap()
247+
if err != nil {
248+
r.Err = err
249+
return
250+
}
251+
252+
_, r.Err = client.Post(createInstanceURL(client), b, &r.Body, &golangsdk.RequestOpts{
253+
OkCodes: []int{200},
254+
})
255+
256+
return
257+
}
258+
245259
// Delete an instance by id
246260
func Delete(client *golangsdk.ServiceClient, id string) (r DeleteResult) {
247261
_, r.Err = client.Delete(deleteURL(client, id), &golangsdk.RequestOpts{
@@ -386,6 +400,29 @@ func Resize(client *golangsdk.ServiceClient, id string, opts ResizeInstanceOpts)
386400
return "", err
387401
}
388402

403+
func ExtendInstance(client *golangsdk.ServiceClient, instanceId string, opts ResizeInstanceOpts) (string, error) {
404+
b, err := golangsdk.BuildRequestBody(opts, "")
405+
if err != nil {
406+
return "", err
407+
}
408+
409+
var rst golangsdk.Result
410+
_, err = client.Post(extendInstanceURL(client, instanceId), b, &rst.Body, &golangsdk.RequestOpts{
411+
MoreHeaders: requestOpts.MoreHeaders,
412+
})
413+
414+
if err == nil {
415+
var r struct {
416+
JobID string `json:"job_id"`
417+
}
418+
if err = rst.ExtractInto(&r); err != nil {
419+
return "", err
420+
}
421+
return r.JobID, nil
422+
}
423+
return "", err
424+
}
425+
389426
// CrossVpcUpdateOpts is the structure required by the UpdateCrossVpc method to update the internal IP address for
390427
// cross-VPC access.
391428
type CrossVpcUpdateOpts struct {

openstack/dms/v2/kafka/instances/urls.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@ func createURLWithEngine(engine string, client *golangsdk.ServiceClient) string
1414
return client.ServiceURL(engine, client.ProjectID, resourcePath)
1515
}
1616

17+
func createInstanceURL(client *golangsdk.ServiceClient) string {
18+
return client.ServiceURL(client.ProjectID, "kafka", resourcePath)
19+
}
20+
1721
// deleteURL will build the url of deletion
1822
func deleteURL(client *golangsdk.ServiceClient, id string) string {
1923
return client.ServiceURL(client.ProjectID, resourcePath, id)
@@ -37,6 +41,10 @@ func extend(client *golangsdk.ServiceClient, id string) string {
3741
return client.ServiceURL(client.ProjectID, resourcePath, id, "extend")
3842
}
3943

44+
func extendInstanceURL(client *golangsdk.ServiceClient, instanceId string) string {
45+
return client.ServiceURL(client.ProjectID, "kafka", resourcePath, instanceId, "extend")
46+
}
47+
4048
func crossVpcURL(client *golangsdk.ServiceClient, id string) string {
4149
return client.ServiceURL(client.ProjectID, resourcePath, id, "crossvpc/modify")
4250
}

0 commit comments

Comments
 (0)