github.com/gophercloud/gophercloud@v1.11.0/internal/acceptance/openstack/db/v1/databases_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/databases" 12 ) 13 14 // Because it takes so long to create an instance, 15 // all tests will be housed in a single function. 16 func TestDatabases(t *testing.T) { 17 if testing.Short() { 18 t.Skip("Skipping in short mode") 19 } 20 21 client, err := clients.NewDBV1Client() 22 if err != nil { 23 t.Fatalf("Unable to create a DB client: %v", err) 24 } 25 26 // Create and Get an instance. 27 instance, err := CreateInstance(t, client) 28 if err != nil { 29 t.Fatalf("Unable to create instance: %v", err) 30 } 31 defer DeleteInstance(t, client, instance.ID) 32 33 // Create a database. 34 err = CreateDatabase(t, client, instance.ID) 35 if err != nil { 36 t.Fatalf("Unable to create database: %v", err) 37 } 38 39 // List all databases. 40 allPages, err := databases.List(client, instance.ID).AllPages() 41 if err != nil { 42 t.Fatalf("Unable to list databases: %v", err) 43 } 44 45 allDatabases, err := databases.ExtractDBs(allPages) 46 if err != nil { 47 t.Fatalf("Unable to extract databases: %v", err) 48 } 49 50 for _, db := range allDatabases { 51 tools.PrintResource(t, db) 52 } 53 54 defer DeleteDatabase(t, client, instance.ID, allDatabases[0].Name) 55 56 }