github.com/gophercloud/gophercloud@v1.11.0/internal/acceptance/openstack/messaging/v2/queue_test.go (about) 1 //go:build acceptance || messaging || queues 2 // +build acceptance messaging queues 3 4 package v2 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/messaging/v2/queues" 12 "github.com/gophercloud/gophercloud/pagination" 13 ) 14 15 func TestCRUDQueues(t *testing.T) { 16 clientID := "3381af92-2b9e-11e3-b191-71861300734d" 17 18 client, err := clients.NewMessagingV2Client(clientID) 19 if err != nil { 20 t.Fatalf("Unable to create a messaging service client: %v", err) 21 } 22 23 createdQueueName, err := CreateQueue(t, client) 24 defer DeleteQueue(t, client, createdQueueName) 25 26 createdQueue, err := queues.Get(client, createdQueueName).Extract() 27 28 tools.PrintResource(t, createdQueue) 29 tools.PrintResource(t, createdQueue.Extra) 30 31 updateOpts := queues.BatchUpdateOpts{ 32 queues.UpdateOpts{ 33 Op: "replace", 34 Path: "/metadata/_max_claim_count", 35 Value: 15, 36 }, 37 queues.UpdateOpts{ 38 Op: "replace", 39 Path: "/metadata/description", 40 Value: "Updated description for queues acceptance test.", 41 }, 42 } 43 44 t.Logf("Attempting to update Queue: %s", createdQueueName) 45 updateResult, updateErr := queues.Update(client, createdQueueName, updateOpts).Extract() 46 if updateErr != nil { 47 t.Fatalf("Unable to update Queue %s: %v", createdQueueName, updateErr) 48 } 49 50 updatedQueue, err := GetQueue(t, client, createdQueueName) 51 52 tools.PrintResource(t, updateResult) 53 tools.PrintResource(t, updatedQueue) 54 tools.PrintResource(t, updatedQueue.Extra) 55 } 56 57 func TestListQueues(t *testing.T) { 58 clientID := "3381af92-2b9e-11e3-b191-71861300734d" 59 60 client, err := clients.NewMessagingV2Client(clientID) 61 if err != nil { 62 t.Fatalf("Unable to create a messaging service client: %v", err) 63 } 64 65 firstQueueName, err := CreateQueue(t, client) 66 defer DeleteQueue(t, client, firstQueueName) 67 68 secondQueueName, err := CreateQueue(t, client) 69 defer DeleteQueue(t, client, secondQueueName) 70 71 listOpts := queues.ListOpts{ 72 Limit: 10, 73 Detailed: true, 74 } 75 76 pager := queues.List(client, listOpts) 77 err = pager.EachPage(func(page pagination.Page) (bool, error) { 78 allQueues, err := queues.ExtractQueues(page) 79 if err != nil { 80 t.Fatalf("Unable to extract Queues: %v", err) 81 } 82 83 for _, queue := range allQueues { 84 tools.PrintResource(t, queue) 85 } 86 87 return true, nil 88 }) 89 } 90 91 func TestStatQueue(t *testing.T) { 92 clientID := "3381af92-2b9e-11e3-b191-71861300734c" 93 94 client, err := clients.NewMessagingV2Client(clientID) 95 if err != nil { 96 t.Fatalf("Unable to create a messaging service client: %v", err) 97 } 98 99 createdQueueName, err := CreateQueue(t, client) 100 defer DeleteQueue(t, client, createdQueueName) 101 102 queueStats, err := queues.GetStats(client, createdQueueName).Extract() 103 if err != nil { 104 t.Fatalf("Unable to stat queue: %v", err) 105 } 106 107 tools.PrintResource(t, queueStats) 108 } 109 110 func TestShare(t *testing.T) { 111 clientID := "3381af92-2b9e-11e3-b191-71861300734c" 112 113 client, err := clients.NewMessagingV2Client(clientID) 114 if err != nil { 115 t.Fatalf("Unable to create a messaging service client: %v", err) 116 } 117 118 queueName, err := CreateQueue(t, client) 119 if err != nil { 120 t.Logf("Unable to create queue for share.") 121 } 122 defer DeleteQueue(t, client, queueName) 123 124 t.Logf("Attempting to create share for queue: %s", queueName) 125 share, shareErr := CreateShare(t, client, queueName) 126 if shareErr != nil { 127 t.Fatalf("Unable to create share: %v", shareErr) 128 } 129 130 tools.PrintResource(t, share) 131 } 132 133 func TestPurge(t *testing.T) { 134 clientID := "3381af92-2b9e-11e3-b191-71861300734c" 135 136 client, err := clients.NewMessagingV2Client(clientID) 137 if err != nil { 138 t.Fatalf("Unable to create a messaging service client: %v", err) 139 } 140 141 queueName, err := CreateQueue(t, client) 142 defer DeleteQueue(t, client, queueName) 143 144 purgeOpts := queues.PurgeOpts{ 145 ResourceTypes: []queues.PurgeResource{ 146 queues.ResourceMessages, 147 }, 148 } 149 150 t.Logf("Attempting to purge queue: %s", queueName) 151 purgeErr := queues.Purge(client, queueName, purgeOpts).ExtractErr() 152 if purgeErr != nil { 153 t.Fatalf("Unable to purge queue %s: %v", queueName, purgeErr) 154 } 155 }