File: registeredlimits_test.go

package info (click to toggle)
golang-github-gophercloud-gophercloud 1.4.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 11,416 kB
  • sloc: sh: 99; makefile: 21
file content (102 lines) | stat: -rw-r--r-- 3,519 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
//go:build acceptance
// +build acceptance

package v3

import (
	"os"
	"testing"

	"github.com/gophercloud/gophercloud/acceptance/clients"
	"github.com/gophercloud/gophercloud/acceptance/tools"
	"github.com/gophercloud/gophercloud/openstack/identity/v3/registeredlimits"
	"github.com/gophercloud/gophercloud/openstack/identity/v3/services"
	th "github.com/gophercloud/gophercloud/testhelper"
)

func TestRegisteredLimitsCRUD(t *testing.T) {
	err := os.Setenv("OS_SYSTEM_SCOPE", "all")
	th.AssertNoErr(t, err)
	defer os.Unsetenv("OS_SYSTEM_SCOPE")

	clients.RequireAdmin(t)

	client, err := clients.NewIdentityV3Client()
	th.AssertNoErr(t, err)

	// Get glance service to register the limit
	allServicePages, err := services.List(client, nil).AllPages()
	th.AssertNoErr(t, err)

	svList, err := services.ExtractServices(allServicePages)
	serviceID := ""
	for _, service := range svList {
		serviceID = service.ID
		break
	}
	th.AssertIntGreaterOrEqual(t, len(serviceID), 1)

	// Create RegisteredLimit
	limitDescription := tools.RandomString("TESTLIMITS-DESC-", 8)
	defaultLimit := tools.RandomInt(1, 100)
	resourceName := tools.RandomString("LIMIT-NAME-", 8)

	createOpts := registeredlimits.BatchCreateOpts{
		registeredlimits.CreateOpts{
			ServiceID:    serviceID,
			ResourceName: resourceName,
			DefaultLimit: defaultLimit,
			Description:  limitDescription,
			RegionID:     "RegionOne",
		},
	}

	createdRegisteredLimits, err := registeredlimits.BatchCreate(client, createOpts).Extract()
	th.AssertNoErr(t, err)
	tools.PrintResource(t, createdRegisteredLimits[0])
	th.AssertIntGreaterOrEqual(t, 1, len(createdRegisteredLimits))
	th.AssertEquals(t, limitDescription, createdRegisteredLimits[0].Description)
	th.AssertEquals(t, defaultLimit, createdRegisteredLimits[0].DefaultLimit)
	th.AssertEquals(t, resourceName, createdRegisteredLimits[0].ResourceName)
	th.AssertEquals(t, serviceID, createdRegisteredLimits[0].ServiceID)
	th.AssertEquals(t, "RegionOne", createdRegisteredLimits[0].RegionID)

	// List the registered limits
	listOpts := registeredlimits.ListOpts{}
	allPages, err := registeredlimits.List(client, listOpts).AllPages()
	th.AssertNoErr(t, err)

	_, err = registeredlimits.ExtractRegisteredLimits(allPages)
	th.AssertNoErr(t, err)

	// Get RegisteredLimit by ID
	registered_limit, err := registeredlimits.Get(client, createdRegisteredLimits[0].ID).Extract()
	th.AssertNoErr(t, err)
	tools.PrintResource(t, registered_limit)

	// Update the existing registered_limit
	updatedDescription := "Test description for registered limit"
	updatedDefaultLimit := 1000
	updatedResourceName := tools.RandomString("LIMIT-NAME-", 8)
	updatedOpts := registeredlimits.UpdateOpts{
		Description:  &updatedDescription,
		DefaultLimit: &updatedDefaultLimit,
		ServiceID:    serviceID,
		ResourceName: updatedResourceName,
	}

	updated_registered_limit, err := registeredlimits.Update(client, createdRegisteredLimits[0].ID, updatedOpts).Extract()
	th.AssertNoErr(t, err)

	tools.PrintResource(t, updated_registered_limit)
	th.AssertEquals(t, updated_registered_limit.Description, updatedDescription)
	th.AssertEquals(t, updated_registered_limit.DefaultLimit, updatedDefaultLimit)
	th.AssertEquals(t, updated_registered_limit.ResourceName, updatedResourceName)

	// Delete the registered limit
	del_err := registeredlimits.Delete(client, createdRegisteredLimits[0].ID).ExtractErr()
	th.AssertNoErr(t, del_err)

	_, err = registeredlimits.Get(client, createdRegisteredLimits[0].ID).Extract()
	th.AssertErr(t, err)
}