From eabc11593d9b412c20254f5faad5f50009562f5f Mon Sep 17 00:00:00 2001 From: tischrei Date: Wed, 13 Aug 2025 13:44:27 +0000 Subject: [PATCH] add dict function for services by cloud_env --- otc_metadata/services.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/otc_metadata/services.py b/otc_metadata/services.py index 0016700..f102f4a 100644 --- a/otc_metadata/services.py +++ b/otc_metadata/services.py @@ -475,3 +475,33 @@ class Services(object): res.sort(key=lambda x: x.get("service_title", "").lower()) return res + + def all_services_by_cloud_environment_as_dict(self, cloud_environment, environments): + """Retrieve all services filtered by cloud_environment + Returns a dict keyed by service_type. + """ + + res = {} + + if not (environments and cloud_environment): + raise Exception( + "No cloud_environment or environments specified in function all_services_by_cloud_environment." + ) + + for srv in self.all_services: + for srv_cloud_environment in srv.get("cloud_environments", []): + if srv_cloud_environment.get("name") == cloud_environment: + for environment in environments: + if srv_cloud_environment.get("visibility") == environment: + service_type = srv.get("service_type") + if service_type: + res[service_type] = srv + break + res = dict( + sorted( + res.items(), + key=lambda item: item[1].get("service_type", "").lower() + ) + ) + + return res -- 2.34.1