github.com/gophercloud/gophercloud@v1.11.0/internal/acceptance/openstack/container/v1/capsules_test.go (about) 1 //go:build acceptance || containers || capsules 2 // +build acceptance containers capsules 3 4 package v1 5 6 import ( 7 "testing" 8 9 "github.com/gophercloud/gophercloud/internal/acceptance/clients" 10 "github.com/gophercloud/gophercloud/openstack/container/v1/capsules" 11 "github.com/gophercloud/gophercloud/pagination" 12 th "github.com/gophercloud/gophercloud/testhelper" 13 ) 14 15 func TestCapsuleBase(t *testing.T) { 16 t.Skip("Currently failing in OpenLab") 17 18 clients.SkipRelease(t, "stable/mitaka") 19 clients.SkipRelease(t, "stable/newton") 20 clients.SkipRelease(t, "stable/ocata") 21 clients.SkipRelease(t, "stable/pike") 22 clients.SkipRelease(t, "stable/queens") 23 24 client, err := clients.NewContainerV1Client() 25 th.AssertNoErr(t, err) 26 27 template := new(capsules.Template) 28 template.Bin = []byte(capsuleTemplate) 29 30 createOpts := capsules.CreateOpts{ 31 TemplateOpts: template, 32 } 33 34 v, err := capsules.Create(client, createOpts).Extract() 35 th.AssertNoErr(t, err) 36 capsule := v.(*capsules.Capsule) 37 38 err = WaitForCapsuleStatus(client, capsule.UUID, "Running") 39 th.AssertNoErr(t, err) 40 41 pager := capsules.List(client, nil) 42 err = pager.EachPage(func(page pagination.Page) (bool, error) { 43 v, err := capsules.ExtractCapsules(page) 44 th.AssertNoErr(t, err) 45 allCapsules := v.([]capsules.Capsule) 46 47 for _, m := range allCapsules { 48 capsuleUUID := m.UUID 49 if capsuleUUID != capsule.UUID { 50 continue 51 } 52 capsule, err := capsules.Get(client, capsuleUUID).ExtractBase() 53 54 th.AssertNoErr(t, err) 55 th.AssertEquals(t, capsule.MetaName, "template") 56 57 err = capsules.Delete(client, capsuleUUID).ExtractErr() 58 th.AssertNoErr(t, err) 59 60 } 61 return true, nil 62 }) 63 th.AssertNoErr(t, err) 64 } 65 66 func TestCapsuleV132(t *testing.T) { 67 t.Skip("Currently failing in OpenLab") 68 69 clients.SkipRelease(t, "stable/mitaka") 70 clients.SkipRelease(t, "stable/newton") 71 clients.SkipRelease(t, "stable/ocata") 72 clients.SkipRelease(t, "stable/pike") 73 clients.SkipRelease(t, "stable/queens") 74 clients.SkipRelease(t, "stable/rocky") 75 clients.SkipRelease(t, "stable/stein") 76 77 client, err := clients.NewContainerV1Client() 78 th.AssertNoErr(t, err) 79 80 client.Microversion = "1.32" 81 82 template := new(capsules.Template) 83 template.Bin = []byte(capsuleTemplate) 84 85 createOpts := capsules.CreateOpts{ 86 TemplateOpts: template, 87 } 88 89 capsule, err := capsules.Create(client, createOpts).ExtractV132() 90 th.AssertNoErr(t, err) 91 92 err = WaitForCapsuleStatus(client, capsule.UUID, "Running") 93 th.AssertNoErr(t, err) 94 95 pager := capsules.List(client, nil) 96 err = pager.EachPage(func(page pagination.Page) (bool, error) { 97 allCapsules, err := capsules.ExtractCapsulesV132(page) 98 th.AssertNoErr(t, err) 99 100 for _, m := range allCapsules { 101 capsuleUUID := m.UUID 102 if capsuleUUID != capsule.UUID { 103 continue 104 } 105 capsule, err := capsules.Get(client, capsuleUUID).ExtractV132() 106 107 th.AssertNoErr(t, err) 108 th.AssertEquals(t, capsule.MetaName, "template") 109 110 err = capsules.Delete(client, capsuleUUID).ExtractErr() 111 th.AssertNoErr(t, err) 112 113 } 114 return true, nil 115 }) 116 th.AssertNoErr(t, err) 117 }