From 9627106519f493883d7d19516eba85f826f7dd24 Mon Sep 17 00:00:00 2001 From: Zhenguo Niu Date: Thu, 20 Jul 2017 16:54:56 +0800 Subject: [PATCH] Retrieve availability zone from aggregate This make availability zone list based on aggregate metadata. Partially Implements: bp node-aggregate Change-Id: I74d705e2b09c08afadbeacee1f0efa5655ffbcd6 --- mogan/engine/api.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/mogan/engine/api.py b/mogan/engine/api.py index bcb13e62..88f3a310 100644 --- a/mogan/engine/api.py +++ b/mogan/engine/api.py @@ -384,7 +384,12 @@ class API(object): def list_availability_zones(self, context): """Get availability zone list.""" - return {'availability_zones': [CONF.engine.default_availability_zone]} + aggregates = objects.AggregateList.get_by_metadata_key( + context, 'availability_zone') + azs = set([agg.metadata['availability_zone'] for agg in aggregates + if 'availability_zone' in agg.metadata]) + azs.add(CONF.engine.default_availability_zone) + return {'availability_zones': list(azs)} def lock(self, context, server): """Lock the given server."""