summaryrefslogtreecommitdiff
path: root/trove/common/neutron.py
diff options
context:
space:
mode:
Diffstat (limited to 'trove/common/neutron.py')
-rw-r--r--trove/common/neutron.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/trove/common/neutron.py b/trove/common/neutron.py
index 5f3330b1..d11ecf22 100644
--- a/trove/common/neutron.py
+++ b/trove/common/neutron.py
@@ -21,6 +21,7 @@ from trove.common import exception
CONF = cfg.CONF
LOG = logging.getLogger(__name__)
MGMT_NETWORKS = None
+MGMT_CIDRS = None
def get_management_networks(context):
@@ -147,3 +148,27 @@ def create_security_group_rule(client, sg_id, protocol, ports, remote_ips):
}
client.create_security_group_rule(body)
+
+
+def get_subnet_cidrs(client, network_id):
+ cidrs = []
+
+ subnets = client.list_subnets(network_id=network_id)['subnets']
+ for subnet in subnets:
+ cidrs.append(subnet.get('cidr'))
+
+ return cidrs
+
+
+def get_mamangement_subnet_cidrs(client):
+ """Cache the management subnet CIDRS."""
+ global MGMT_CIDRS
+
+ if MGMT_CIDRS is not None:
+ return MGMT_CIDRS
+
+ MGMT_CIDRS = []
+ if len(CONF.management_networks) > 0:
+ MGMT_CIDRS = get_subnet_cidrs(client, CONF.management_networks[0])
+
+ return MGMT_CIDRS