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  }