github.com/gophercloud/gophercloud@v1.11.0/internal/acceptance/openstack/db/v1/configurations_test.go (about) 1 //go:build acceptance || db 2 // +build acceptance db 3 4 package v1 5 6 import ( 7 "testing" 8 9 "github.com/gophercloud/gophercloud/internal/acceptance/clients" 10 "github.com/gophercloud/gophercloud/internal/acceptance/tools" 11 "github.com/gophercloud/gophercloud/openstack/db/v1/configurations" 12 th "github.com/gophercloud/gophercloud/testhelper" 13 ) 14 15 func TestConfigurationsCRUD(t *testing.T) { 16 client, err := clients.NewDBV1Client() 17 if err != nil { 18 t.Fatalf("Unable to create a DB client: %v", err) 19 } 20 21 choices, err := clients.AcceptanceTestChoicesFromEnv() 22 if err != nil { 23 t.Fatalf("Unable to get environment settings") 24 } 25 26 createOpts := &configurations.CreateOpts{ 27 Name: "test", 28 Description: "description", 29 } 30 31 datastore := configurations.DatastoreOpts{ 32 Type: choices.DBDatastoreType, 33 Version: choices.DBDatastoreVersion, 34 } 35 createOpts.Datastore = &datastore 36 37 values := make(map[string]interface{}) 38 values["collation_server"] = "latin1_swedish_ci" 39 createOpts.Values = values 40 41 cgroup, err := configurations.Create(client, createOpts).Extract() 42 if err != nil { 43 t.Fatalf("Unable to create configuration: %v", err) 44 } 45 46 readCgroup, err := configurations.Get(client, cgroup.ID).Extract() 47 if err != nil { 48 t.Fatalf("Unable to read configuration: %v", err) 49 } 50 51 tools.PrintResource(t, readCgroup) 52 th.AssertEquals(t, readCgroup.Name, createOpts.Name) 53 th.AssertEquals(t, readCgroup.Description, createOpts.Description) 54 // TODO: verify datastore 55 //th.AssertDeepEquals(t, readCgroup.Datastore, datastore) 56 57 // Update cgroup 58 newCgroupName := "New configuration name" 59 newCgroupDescription := "" 60 updateOpts := configurations.UpdateOpts{ 61 Name: newCgroupName, 62 Description: &newCgroupDescription, 63 } 64 err = configurations.Update(client, cgroup.ID, updateOpts).ExtractErr() 65 th.AssertNoErr(t, err) 66 67 newCgroup, err := configurations.Get(client, cgroup.ID).Extract() 68 if err != nil { 69 t.Fatalf("Unable to read updated configuration: %v", err) 70 } 71 72 tools.PrintResource(t, newCgroup) 73 th.AssertEquals(t, newCgroup.Name, newCgroupName) 74 th.AssertEquals(t, newCgroup.Description, newCgroupDescription) 75 76 err = configurations.Delete(client, cgroup.ID).ExtractErr() 77 if err != nil { 78 t.Fatalf("Unable to delete configuration: %v", err) 79 } 80 }