From 3c4a2a73fe5c34b2ad02f8f0466b2a854f7f5cc6 Mon Sep 17 00:00:00 2001 From: Sebastian Gode Date: Mon, 4 Aug 2025 09:27:46 +0000 Subject: [PATCH] New service function --- otc_metadata/services.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/otc_metadata/services.py b/otc_metadata/services.py index a8e3504..0c021e8 100644 --- a/otc_metadata/services.py +++ b/otc_metadata/services.py @@ -13,6 +13,7 @@ import copy import warnings +import json import otc_metadata.data @@ -453,3 +454,26 @@ 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 \ No newline at end of file