Skip to content

Commit 60fab0f

Browse files
committed
Add Get to placement resourceproviders
[Docs](https://docs.openstack.org/api-ref/placement/?expanded=show-resource-provider-detail) Relates to: #526
1 parent 78b1b96 commit 60fab0f

7 files changed

Lines changed: 57 additions & 2 deletions

File tree

acceptance/openstack/placement/v1/resourceproviders_test.go

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,14 @@ func TestResourceProviderCreate(t *testing.T) {
3636
th.AssertNoErr(t, err)
3737
defer DeleteResourceProvider(t, client, resourceProvider.UUID)
3838

39-
resourceProvider, err = CreateResourceProviderWithParent(t, client, resourceProvider.UUID)
39+
resourceProvider2, err := CreateResourceProviderWithParent(t, client, resourceProvider.UUID)
4040
th.AssertNoErr(t, err)
41-
defer DeleteResourceProvider(t, client, resourceProvider.UUID)
41+
defer DeleteResourceProvider(t, client, resourceProvider2.UUID)
42+
43+
resourceProviderGet, err := resourceproviders.Get(client, resourceProvider2.UUID).Extract()
44+
th.AssertNoErr(t, err)
45+
th.AssertEquals(t, resourceProvider2.Name, resourceProviderGet.Name)
46+
4247
}
4348

4449
func TestResourceProviderUsages(t *testing.T) {

openstack/placement/v1/resourceproviders/doc.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,13 @@ Example to Delete a resource provider
3838
panic(err)
3939
}
4040
41+
Example to Get a resource provider
42+
43+
resourceProviderID := "b99b3ab4-3aa6-4fba-b827-69b88b9c544a"
44+
resourceProvider, err := resourceproviders.Get(placementClient, resourceProviderID).Extract()
45+
if err != nil {
46+
panic(err)
47+
}
4148
4249
Example to get resource providers usages
4350

openstack/placement/v1/resourceproviders/requests.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,13 @@ func Delete(c *gophercloud.ServiceClient, resourceProviderID string) (r DeleteRe
106106
return
107107
}
108108

109+
// Get retrieves a specific resource provider based on its unique ID.
110+
func Get(c *gophercloud.ServiceClient, resourceProviderID string) (r GetResult) {
111+
resp, err := c.Get(getURL(c, resourceProviderID), &r.Body, nil)
112+
_, r.Header, r.Err = gophercloud.ParseResponse(resp, err)
113+
return
114+
}
115+
109116
func GetUsages(client *gophercloud.ServiceClient, resourceProviderID string) (r GetUsagesResult) {
110117
resp, err := client.Get(getResourceProviderUsagesURL(client, resourceProviderID), &r.Body, nil)
111118
_, r.Header, r.Err = gophercloud.ParseResponse(resp, err)

openstack/placement/v1/resourceproviders/results.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,12 @@ type DeleteResult struct {
9191
gophercloud.ErrResult
9292
}
9393

94+
// GetResult represents the result of a create operation. Call its Extract
95+
// method to interpret it as a ResourceProvider.
96+
type GetResult struct {
97+
resourceProviderResult
98+
}
99+
94100
// ResourceProvidersPage contains a single page of all resource providers from a List call.
95101
type ResourceProvidersPage struct {
96102
pagination.SinglePageBase

openstack/placement/v1/resourceproviders/testing/fixtures.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -270,6 +270,18 @@ func HandleResourceProviderCreate(t *testing.T) {
270270
})
271271
}
272272

273+
func HandleResourceProviderGet(t *testing.T) {
274+
th.Mux.HandleFunc("/resource_providers/99c09379-6e52-4ef8-9a95-b9ce6f68452e", func(w http.ResponseWriter, r *http.Request) {
275+
th.TestMethod(t, r, "GET")
276+
th.TestHeader(t, r, "X-Auth-Token", fake.TokenID)
277+
278+
w.Header().Add("Content-Type", "application/json")
279+
w.WriteHeader(http.StatusOK)
280+
281+
fmt.Fprintf(w, ResourceProviderCreateBody)
282+
})
283+
}
284+
273285
func HandleResourceProviderDelete(t *testing.T) {
274286
th.Mux.HandleFunc("/resource_providers/b99b3ab4-3aa6-4fba-b827-69b88b9c544a", func(w http.ResponseWriter, r *http.Request) {
275287
th.TestMethod(t, r, "DELETE")

openstack/placement/v1/resourceproviders/testing/requests_test.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,20 @@ func TestCreateResourceProvider(t *testing.T) {
5757
th.AssertDeepEquals(t, &expected, actual)
5858
}
5959

60+
func TestGetResourceProvider(t *testing.T) {
61+
th.SetupHTTP()
62+
defer th.TeardownHTTP()
63+
64+
HandleResourceProviderGet(t)
65+
66+
expected := ExpectedResourceProvider1
67+
68+
actual, err := resourceproviders.Get(fake.ServiceClient(), ExpectedResourceProvider1.UUID).Extract()
69+
th.AssertNoErr(t, err)
70+
71+
th.AssertDeepEquals(t, &expected, actual)
72+
}
73+
6074
func TestDeleteResourceProvider(t *testing.T) {
6175
th.SetupHTTP()
6276
defer th.TeardownHTTP()

openstack/placement/v1/resourceproviders/urls.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@ func deleteURL(client *gophercloud.ServiceClient, resourceProviderID string) str
1414
return client.ServiceURL(apiName, resourceProviderID)
1515
}
1616

17+
func getURL(client *gophercloud.ServiceClient, resourceProviderID string) string {
18+
return client.ServiceURL(apiName, resourceProviderID)
19+
}
20+
1721
func getResourceProviderUsagesURL(client *gophercloud.ServiceClient, resourceProviderID string) string {
1822
return client.ServiceURL(apiName, resourceProviderID, "usages")
1923
}

0 commit comments

Comments
 (0)