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  }