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  }