1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
|
//go:build acceptance || db
// +build acceptance db
package v1
import (
"testing"
"github.com/gophercloud/gophercloud/acceptance/clients"
"github.com/gophercloud/gophercloud/acceptance/tools"
"github.com/gophercloud/gophercloud/openstack/db/v1/instances"
)
// Because it takes so long to create an instance,
// all tests will be housed in a single function.
func TestInstances(t *testing.T) {
if testing.Short() {
t.Skip("Skipping in short mode")
}
client, err := clients.NewDBV1Client()
if err != nil {
t.Fatalf("Unable to create a DB client: %v", err)
}
// Create and Get an instance.
instance, err := CreateInstance(t, client)
if err != nil {
t.Fatalf("Unable to create instance: %v", err)
}
defer DeleteInstance(t, client, instance.ID)
tools.PrintResource(t, &instance)
// List all instances.
allPages, err := instances.List(client).AllPages()
if err != nil {
t.Fatalf("Unable to list instances: %v", err)
}
allInstances, err := instances.ExtractInstances(allPages)
if err != nil {
t.Fatalf("Unable to extract instances: %v", err)
}
for _, instance := range allInstances {
tools.PrintResource(t, instance)
}
// Enable root user.
_, err = instances.EnableRootUser(client, instance.ID).Extract()
if err != nil {
t.Fatalf("Unable to enable root user: %v", err)
}
enabled, err := instances.IsRootEnabled(client, instance.ID).Extract()
if err != nil {
t.Fatalf("Unable to check if root user is enabled: %v", err)
}
t.Logf("Root user is enabled: %t", enabled)
// Restart
err = instances.Restart(client, instance.ID).ExtractErr()
if err != nil {
t.Fatalf("Unable to restart instance: %v", err)
}
err = WaitForInstanceStatus(client, instance, "ACTIVE")
if err != nil {
t.Fatalf("Unable to restart instance: %v", err)
}
}
|