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  }