Skip to content

Commit 7c89735

Browse files
authored
Merge pull request #193 from bpandola/v3-get-permissions-for-a-service-instance
Add support for `GET /v3/service_instances/:guid/permissions`
2 parents 7a9ddf1 + 962b1f1 commit 7c89735

File tree

3 files changed

+25
-0
lines changed

3 files changed

+25
-0
lines changed

main/cloudfoundry_client/v3/service_instances.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from typing import Optional, TYPE_CHECKING, List
22

3+
from cloudfoundry_client.common_objects import JsonObject
34
from cloudfoundry_client.v3.entities import Entity, EntityManager, ToOneRelationship
45

56
if TYPE_CHECKING:
@@ -72,3 +73,8 @@ def update(
7273

7374
def remove(self, guid: str, asynchronous: bool = True):
7475
super(ServiceInstanceManager, self)._remove(guid, asynchronous)
76+
77+
def get_permissions(self, instance_guid: str) -> JsonObject:
78+
return super(ServiceInstanceManager, self)._get(
79+
"%s%s/%s/permissions" % (self.target_endpoint, self.entity_uri, instance_guid)
80+
)
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"read": true,
3+
"manage": false
4+
}

test/v3/test_service_instances.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
from unittest.mock import patch
44

55
from abstract_test_case import AbstractTestCase
6+
from cloudfoundry_client.common_objects import JsonObject
67
from cloudfoundry_client.v3.entities import Entity
78

89

@@ -157,3 +158,17 @@ def test_remove_synchronous(self, sleepmock):
157158
self.client.v3.service_instances.remove("service_instance_id", asynchronous=False)
158159
self.client.delete.assert_called_with(self.client.delete.return_value.url)
159160
assert self.client.get.call_count == 2
161+
162+
def test_get_permissions(self):
163+
self.client.get.return_value = self.mock_response(
164+
"/v3/service_instances/service_instance_id/permissions",
165+
HTTPStatus.OK,
166+
None,
167+
"v3",
168+
"service_instances",
169+
"GET_{id}_permissions_response.json"
170+
)
171+
permissions = self.client.v3.service_instances.get_permissions("service_instance_id")
172+
self.assertIsInstance(permissions, JsonObject)
173+
self.assertTrue(permissions["read"])
174+
self.assertFalse(permissions["manage"])

0 commit comments

Comments
 (0)