github.com/gophercloud/gophercloud@v1.11.0/internal/acceptance/openstack/orchestration/v1/stacks_test.go (about)

     1  //go:build acceptance
     2  // +build acceptance
     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/orchestration/v1/stacks"
    12  	th "github.com/gophercloud/gophercloud/testhelper"
    13  )
    14  
    15  func TestStacksCRUD(t *testing.T) {
    16  	client, err := clients.NewOrchestrationV1Client()
    17  	th.AssertNoErr(t, err)
    18  
    19  	createdStack, err := CreateStack(t, client)
    20  	th.AssertNoErr(t, err)
    21  	defer DeleteStack(t, client, createdStack.Name, createdStack.ID)
    22  
    23  	tools.PrintResource(t, createdStack)
    24  	tools.PrintResource(t, createdStack.CreationTime)
    25  
    26  	template := new(stacks.Template)
    27  	template.Bin = []byte(basicTemplate)
    28  	updateOpts := stacks.UpdateOpts{
    29  		TemplateOpts: template,
    30  		Timeout:      20,
    31  	}
    32  
    33  	err = stacks.Update(client, createdStack.Name, createdStack.ID, updateOpts).ExtractErr()
    34  	th.AssertNoErr(t, err)
    35  
    36  	err = WaitForStackStatus(client, createdStack.Name, createdStack.ID, "UPDATE_COMPLETE")
    37  	th.AssertNoErr(t, err)
    38  
    39  	var found bool
    40  	allPages, err := stacks.List(client, nil).AllPages()
    41  	th.AssertNoErr(t, err)
    42  	allStacks, err := stacks.ExtractStacks(allPages)
    43  	th.AssertNoErr(t, err)
    44  
    45  	for _, v := range allStacks {
    46  		if v.ID == createdStack.ID {
    47  			found = true
    48  		}
    49  	}
    50  
    51  	th.AssertEquals(t, found, true)
    52  }