Skip to content

Commit 9689114

Browse files
authored
Merge pull request #182 from cloudfoundry-community/features/handle-unmapped-routes
Implement delete unmapped routes Close #178
2 parents 60cbe98 + 929167e commit 9689114

3 files changed

Lines changed: 24 additions & 1 deletion

File tree

main/cloudfoundry_client/client.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
from cloudfoundry_client.v2.service_keys import ServiceKeyManager
2626
from cloudfoundry_client.v2.service_plan_visibilities import ServicePlanVisibilityManager
2727
from cloudfoundry_client.v2.service_plans import ServicePlanManager as ServicePlanManagerV2
28+
from cloudfoundry_client.v2.spaces import SpaceManager as SpaceManagerV2
2829

2930
from cloudfoundry_client.v3.apps import AppManager
3031
from cloudfoundry_client.v3.buildpacks import BuildpackManager
@@ -87,7 +88,7 @@ def __init__(self, target_endpoint: str, credential_manager: "CloudFoundryClient
8788
self.routes = RouteManager(target_endpoint, credential_manager)
8889
self.services = EntityManagerV2(target_endpoint, credential_manager, "/v2/services")
8990
self.shared_domains = EntityManagerV2(target_endpoint, credential_manager, "/v2/shared_domains")
90-
self.spaces = EntityManagerV2(target_endpoint, credential_manager, "/v2/spaces")
91+
self.spaces = SpaceManagerV2(target_endpoint, credential_manager)
9192
self.stacks = EntityManagerV2(target_endpoint, credential_manager, "/v2/stacks")
9293
self.user_provided_service_instances = EntityManagerV2(
9394
target_endpoint, credential_manager, "/v2/user_provided_service_instances"
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
from typing import TYPE_CHECKING
2+
3+
from cloudfoundry_client.v2.entities import EntityManager
4+
5+
if TYPE_CHECKING:
6+
from cloudfoundry_client.client import CloudFoundryClient
7+
8+
9+
class SpaceManager(EntityManager):
10+
def __init__(self, target_endpoint: str, client: "CloudFoundryClient"):
11+
super(SpaceManager, self).__init__(target_endpoint, client, "/v2/spaces")
12+
13+
def delete_unmapped_routes(self, space_guid: str):
14+
url = "%s%s/%s/unmapped_routes" % (self.target_endpoint, self.entity_uri, space_guid)
15+
super(SpaceManager, self)._delete(url)
16+

test/v2/test_spaces.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,12 @@ def test_entity(self):
6363
self.assertEqual(cpt, 1)
6464
self.client.get.assert_has_calls([call(side_effect.url) for side_effect in self.client.get.side_effect], any_order=False)
6565

66+
def test_delete_unmapped_routes(self):
67+
self.client.delete.return_value = self.mock_response(
68+
"/v2/spaces/space_id/unmapped_routes", HTTPStatus.NO_CONTENT, None)
69+
self.client.v2.spaces.delete_unmapped_routes("space_id")
70+
self.client.delete.assert_called_with(self.client.delete.return_value.url)
71+
6672
@patch.object(sys, "argv", ["main", "list_spaces"])
6773
def test_main_list_spaces(self):
6874
with patch("cloudfoundry_client.main.main.build_client_from_configuration", new=lambda: self.client):

0 commit comments

Comments
 (0)