Skip to content

Commit c2f2209

Browse files
committed
feature(v3) add user v3
Closes #271
1 parent ee267ac commit c2f2209

20 files changed

+249
-60
lines changed

cloudfoundry_client/client.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
from cloudfoundry_client.v3.spaces import SpaceManager
4545
from cloudfoundry_client.v3.tasks import TaskManager
4646
from cloudfoundry_client.v3.jobs import JobManager
47+
from cloudfoundry_client.v3.users import UserManager
4748

4849
_logger = logging.getLogger(__name__)
4950

@@ -130,6 +131,7 @@ def __init__(self, cloud_controller_v3_url: str, credential_manager: "CloudFound
130131
self.service_plans = ServicePlanManager(target_endpoint, credential_manager)
131132
self.spaces = SpaceManager(target_endpoint, credential_manager)
132133
self.tasks = TaskManager(target_endpoint, credential_manager)
134+
self.users = UserManager(target_endpoint, credential_manager)
133135

134136

135137
class CloudFoundryClient(CredentialManager):

cloudfoundry_client/v3/buildpacks.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ def create(
2626
"enabled": enabled,
2727
"locked": locked,
2828
"stack": stack,
29-
"metadata": {"labels": meta_labels, "annotations": meta_annotations},
3029
}
30+
self._metadata(data, meta_labels, meta_annotations)
3131
return super(BuildpackManager, self)._create(data)
3232

3333
def remove(self, buildpack_guid: str, asynchronous: bool = True) -> str | None:
@@ -50,8 +50,8 @@ def update(
5050
"enabled": enabled,
5151
"locked": locked,
5252
"stack": stack,
53-
"metadata": {"labels": meta_labels, "annotations": meta_annotations},
5453
}
54+
self._metadata(data, meta_labels, meta_annotations)
5555
return super(BuildpackManager, self)._update(buildpack_guid, data)
5656

5757
def upload(self, buildpack_guid: str, buildpack_zip: str, asynchronous: bool = False) -> Entity:

cloudfoundry_client/v3/domains.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,8 @@ def create(
3939
"organization": organization,
4040
"shared_organizations": shared_organizations,
4141
},
42-
"metadata": {"labels": meta_labels, "annotations": meta_annotations},
4342
}
43+
self._metadata(data, meta_labels, meta_annotations)
4444
return super(DomainManager, self)._create(data)
4545

4646
def list_domains_for_org(self, org_guid: str, **kwargs) -> Pagination[Entity]:

cloudfoundry_client/v3/entities.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -312,3 +312,12 @@ def _append_encoded_parameter(parameters: list[str], args: tuple[str, Any]) -> l
312312
return "%s?%s" % (url, "&".join(functools.reduce(_append_encoded_parameter, sorted(list(kwargs.items())), [])))
313313
else:
314314
return url
315+
316+
def _metadata(self, data, meta_labels, meta_annotations):
317+
if meta_labels or meta_annotations:
318+
metadata = dict()
319+
if meta_labels:
320+
metadata["labels"] = meta_labels
321+
if meta_annotations:
322+
metadata["annotations"] = meta_annotations
323+
data["metadata"] = metadata

cloudfoundry_client/v3/isolation_segments.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,15 @@ def __init__(self, target_endpoint: str, client: "CloudFoundryClient"):
1111
super(IsolationSegmentManager, self).__init__(target_endpoint, client, "/v3/isolation_segments")
1212

1313
def create(self, name: str, meta_labels: dict | None = None, meta_annotations: dict | None = None) -> Entity:
14-
data = {"name": name, "metadata": {"labels": meta_labels, "annotations": meta_annotations}}
14+
data = {"name": name}
15+
self._metadata(data, meta_labels, meta_annotations)
1516
return super(IsolationSegmentManager, self)._create(data)
1617

1718
def update(
1819
self, isolation_segment_guid: str, name: str, meta_labels: dict | None = None, meta_annotations: dict | None = None
1920
) -> Entity:
20-
data = {"name": name, "metadata": {"labels": meta_labels, "annotations": meta_annotations}}
21+
data = {"name": name}
22+
self._metadata(data, meta_labels, meta_annotations)
2123
return super(IsolationSegmentManager, self)._update(isolation_segment_guid, data)
2224

2325
def entitle_organizations(self, isolation_segment_guid: str, *org_guids: str) -> ToManyRelationship:

cloudfoundry_client/v3/organizations.py

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ def __init__(self, target_endpoint: str, client: "CloudFoundryClient"):
1313
def create(
1414
self, name: str, suspended: bool, meta_labels: dict | None = None, meta_annotations: dict | None = None
1515
) -> Entity:
16-
data = {"name": name, "suspended": suspended, "metadata": {"labels": meta_labels, "annotations": meta_annotations}}
16+
data = {"name": name, "suspended": suspended}
17+
self._metadata(data, meta_labels, meta_annotations)
1718
return super(OrganizationManager, self)._create(data)
1819

1920
def update(
@@ -27,13 +28,7 @@ def update(
2728
data = {"name": name}
2829
if suspended is not None:
2930
data["suspended"] = suspended
30-
metadata = {}
31-
if meta_labels is not None:
32-
metadata["labels"] = meta_labels
33-
if meta_annotations is not None:
34-
metadata["annotations"] = meta_annotations
35-
if len(metadata) > 0:
36-
data["metadata"] = metadata
31+
self._metadata(data, meta_labels, meta_annotations)
3732
return super(OrganizationManager, self)._update(guid, data)
3833

3934
def remove(self, guid: str, asynchronous: bool = True) -> str | None:

cloudfoundry_client/v3/service_brokers.py

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,7 @@ def create(
2222
) -> Entity:
2323
credentials = {"type": "basic", "credentials": {"username": auth_username, "password": auth_password}}
2424
payload = dict(name=name, url=url, authentication=credentials)
25-
if meta_labels or meta_annotations:
26-
metadata = dict()
27-
if meta_labels:
28-
metadata["labels"] = meta_labels
29-
if meta_annotations:
30-
metadata["annotations"] = meta_annotations
31-
payload["metadata"] = metadata
25+
self._metadata(payload, meta_labels, meta_annotations)
3226
if space_guid:
3327
payload["relationships"] = dict(space=ToOneRelationship(space_guid))
3428
return super(ServiceBrokerManager, self)._create(payload)
@@ -50,13 +44,7 @@ def update(
5044
payload["url"] = url
5145
if auth_username and auth_password:
5246
payload["authentication"] = {"type": "basic", "credentials": {"username": auth_username, "password": auth_password}}
53-
if meta_labels or meta_annotations:
54-
metadata = dict()
55-
if meta_labels:
56-
metadata["labels"] = meta_labels
57-
if meta_annotations:
58-
metadata["annotations"] = meta_annotations
59-
payload["metadata"] = metadata
47+
self._metadata(payload, meta_labels, meta_annotations)
6048
return super(ServiceBrokerManager, self)._update(guid, payload)
6149

6250
def remove(self, guid: str, asynchronous: bool = True) -> str | None:

cloudfoundry_client/v3/service_instances.py

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,7 @@ def create(
3030
data["parameters"] = parameters
3131
if tags:
3232
data["tags"] = tags
33-
if meta_labels or meta_annotations:
34-
metadata = dict()
35-
if meta_labels:
36-
metadata["labels"] = meta_labels
37-
if meta_annotations:
38-
metadata["annotations"] = meta_annotations
39-
data["metadata"] = metadata
33+
self._metadata(data, meta_labels, meta_annotations)
4034
return super(ServiceInstanceManager, self)._create(data)
4135

4236
def update(
@@ -62,17 +56,11 @@ def update(
6256
data["maintenance_info"] = {"version": maintenance_info}
6357
if tags:
6458
data["tags"] = tags
65-
if meta_labels or meta_annotations:
66-
metadata = dict()
67-
if meta_labels:
68-
metadata["labels"] = meta_labels
69-
if meta_annotations:
70-
metadata["annotations"] = meta_annotations
71-
data["metadata"] = metadata
72-
return super(ServiceInstanceManager, self)._update(instance_guid, data)
59+
super()._metadata(data, meta_labels, meta_annotations)
60+
return super()._update(instance_guid, data)
7361

7462
def remove(self, guid: str, asynchronous: bool = True):
75-
super(ServiceInstanceManager, self)._remove(guid, asynchronous)
63+
super()._remove(guid, asynchronous)
7664

7765
def get_permissions(self, instance_guid: str) -> JsonObject:
7866
return super(ServiceInstanceManager, self)._get(

cloudfoundry_client/v3/service_offerings.py

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,7 @@ def __init__(self, target_endpoint: str, client: "CloudFoundryClient"):
1212

1313
def update(self, guid: str, meta_labels: dict | None = None, meta_annotations: dict | None = None) -> Entity:
1414
payload = dict()
15-
if meta_labels or meta_annotations:
16-
metadata = dict()
17-
if meta_labels:
18-
metadata["labels"] = meta_labels
19-
if meta_annotations:
20-
metadata["annotations"] = meta_annotations
21-
payload["metadata"] = metadata
15+
self._metadata(payload, meta_labels, meta_annotations)
2216
return super(ServiceOfferingsManager, self)._update(guid, payload)
2317

2418
def remove(self, guid: str, purge: bool = False) -> None:

cloudfoundry_client/v3/service_plans.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,7 @@ def update(
1717
meta_annotations: dict | None = None,
1818
) -> Entity:
1919
payload = {"metadata": {}}
20-
21-
if meta_labels:
22-
payload["metadata"]["labels"] = meta_labels
23-
if meta_annotations:
24-
payload["metadata"]["annotations"] = meta_annotations
20+
self._metadata(payload, meta_labels, meta_annotations)
2521
return super(ServicePlanManager, self)._update(guid, payload)
2622

2723
def remove(self, guid: str):

0 commit comments

Comments
 (0)