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 }