From 71b820ebf517261d3366b1c70c856d48c53051d4 Mon Sep 17 00:00:00 2001 From: Sebastian Gode Date: Mon, 4 Aug 2025 09:36:23 +0000 Subject: [PATCH] New service function (#36) Reviewed-on: https://gitea.eco.tsi-dev.otc-service.com/infra/otc-metadata-rework/pulls/36 Reviewed-by: Tino Schreiber Co-authored-by: Sebastian Gode Co-committed-by: Sebastian Gode --- otc_metadata/services.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/otc_metadata/services.py b/otc_metadata/services.py index a8e3504..0016700 100644 --- a/otc_metadata/services.py +++ b/otc_metadata/services.py @@ -453,3 +453,25 @@ class Services(object): res.sort(key=lambda x: x.get("name", "").lower()) return res + + def all_services_by_cloud_environment(self, cloud_environment, environments): + """Retrieve all services filtered by cloud_environment + """ + res = [] + for srv in self.all_services: + if environments and cloud_environment: + for srv_cloud_environment in srv["cloud_environments"]: + if srv_cloud_environment["name"] == cloud_environment: + for environment in environments: + if srv_cloud_environment["visibility"] == environment: + res.append(srv) + else: + continue + else: + raise Exception("No cloud_environment or environments " + "specified in function all_services_by_cloud_environment.") + + # Sort services + res.sort(key=lambda x: x.get("service_title", "").lower()) + + return res