From f399f7956cf419480c302ee1f42cc985be96d24f Mon Sep 17 00:00:00 2001 From: Ilia Bakhterev Date: Mon, 4 May 2026 21:46:48 +0200 Subject: [PATCH] added:openstack/rds/v3/instances/UpgradeDescription.go; tests --- acceptance/openstack/rds/v3/rds_test.go | 10 +++++ .../rds/v3/instances/UpgradeDescription.go | 30 +++++++++++++++ .../rds/v3/instances/testing/request_test.go | 38 +++++++++++++++++++ 3 files changed, 78 insertions(+) create mode 100644 openstack/rds/v3/instances/UpgradeDescription.go create mode 100644 openstack/rds/v3/instances/testing/request_test.go diff --git a/acceptance/openstack/rds/v3/rds_test.go b/acceptance/openstack/rds/v3/rds_test.go index 8e2e088c4..02f2bca2d 100644 --- a/acceptance/openstack/rds/v3/rds_test.go +++ b/acceptance/openstack/rds/v3/rds_test.go @@ -79,6 +79,16 @@ func TestRdsLifecycle(t *testing.T) { }) th.AssertNoErr(t, err) + t.Log("UpgradeDescription") + + newAlias := tools.RandomString("alias-", 8) + _, err = instances.UpgradeDescription(client, + instances.UpgradeDescriptionOpts{ + InstanceId: rds.Id, + Alias: &newAlias, + }) + th.AssertNoErr(t, err) + t.Log("SetSecurityGroup") _, err = security.SetSecurityGroup(client, security.SetSecurityGroupOpts{ diff --git a/openstack/rds/v3/instances/UpgradeDescription.go b/openstack/rds/v3/instances/UpgradeDescription.go new file mode 100644 index 000000000..6445462d4 --- /dev/null +++ b/openstack/rds/v3/instances/UpgradeDescription.go @@ -0,0 +1,30 @@ +package instances + +import ( + golangsdk "github.com/opentelekomcloud/gophertelekomcloud" + "github.com/opentelekomcloud/gophertelekomcloud/internal/build" + "github.com/opentelekomcloud/gophertelekomcloud/internal/extract" +) + +type UpgradeDescriptionOpts struct { + InstanceId string `json:"-"` + Alias *string `json:"alias"` +} + +func UpgradeDescription(client *golangsdk.ServiceClient, opts UpgradeDescriptionOpts) (*string, error) { + b, err := build.RequestBody(opts, "") + if err != nil { + return nil, err + } + + raw, err := client.Put(client.ServiceURL("instances", opts.InstanceId, "alias"), b, nil, &golangsdk.RequestOpts{ + OkCodes: []int{200}, + }) + if err != nil { + return nil, err + } + + var res JobId + err = extract.Into(raw.Body, &res) + return &res.JobId, err +} diff --git a/openstack/rds/v3/instances/testing/request_test.go b/openstack/rds/v3/instances/testing/request_test.go new file mode 100644 index 000000000..8aa046ac7 --- /dev/null +++ b/openstack/rds/v3/instances/testing/request_test.go @@ -0,0 +1,38 @@ +package testing + +import ( + "net/http" + "testing" + + "github.com/opentelekomcloud/gophertelekomcloud/openstack/rds/v3/instances" + th "github.com/opentelekomcloud/gophertelekomcloud/testhelper" + "github.com/opentelekomcloud/gophertelekomcloud/testhelper/client" +) + +func TestUpgradeDescription(t *testing.T) { + th.SetupHTTP() + defer th.TeardownHTTP() + + instanceID := "5b409baece064984a1b3eef6addae50cin01" + expectedAlias := "alias-test" + + th.Mux.HandleFunc("/instances/"+instanceID+"/alias", func(w http.ResponseWriter, r *http.Request) { + th.TestMethod(t, r, "PUT") + + th.TestJSONRequest(t, r, ` +{ + "alias": "alias-test" +} + `) + + w.Header().Add("Content-Type", "application/json") + w.WriteHeader(http.StatusOK) + }) + + _, err := instances.UpgradeDescription(client.ServiceClient(), instances.UpgradeDescriptionOpts{ + InstanceId: instanceID, + Alias: &expectedAlias, + }) + + th.AssertNoErr(t, err) +}