github.com/gophercloud/gophercloud@v1.11.0/internal/acceptance/openstack/db/v1/instances_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/instances" 12 ) 13 14 // Because it takes so long to create an instance, 15 // all tests will be housed in a single function. 16 func TestInstances(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 tools.PrintResource(t, &instance) 33 34 // List all instances. 35 allPages, err := instances.List(client).AllPages() 36 if err != nil { 37 t.Fatalf("Unable to list instances: %v", err) 38 } 39 40 allInstances, err := instances.ExtractInstances(allPages) 41 if err != nil { 42 t.Fatalf("Unable to extract instances: %v", err) 43 } 44 45 for _, instance := range allInstances { 46 tools.PrintResource(t, instance) 47 } 48 49 // Enable root user. 50 _, err = instances.EnableRootUser(client, instance.ID).Extract() 51 if err != nil { 52 t.Fatalf("Unable to enable root user: %v", err) 53 } 54 55 enabled, err := instances.IsRootEnabled(client, instance.ID).Extract() 56 if err != nil { 57 t.Fatalf("Unable to check if root user is enabled: %v", err) 58 } 59 60 t.Logf("Root user is enabled: %t", enabled) 61 62 // Restart 63 err = instances.Restart(client, instance.ID).ExtractErr() 64 if err != nil { 65 t.Fatalf("Unable to restart instance: %v", err) 66 } 67 68 err = WaitForInstanceStatus(client, instance, "ACTIVE") 69 if err != nil { 70 t.Fatalf("Unable to restart instance: %v", err) 71 } 72 }