From ff86a856a61ef2d177e05cb5a26d87f7d5741c78 Mon Sep 17 00:00:00 2001
From: Steven Hardy <shardy@redhat.com>
Date: Tue, 4 Oct 2016 15:52:19 +0100
Subject: [PATCH] j2 template per-role ServiceNetMapDefaults

The *HostnameResolveNetwork should default to a sane value
for all roles, including those specified by the user.

We choose internal_api by default (maintaining the existing
special-case for the CephStorage role which uses the storage
network), but users can of course override the default with
a network of their choice.

Change-Id: Ib240f56c1db5842b953fa510316e75fd53f24735
Closes-Bug: #1629827
---
 .../{service_net_map.yaml => service_net_map.j2.yaml} | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)
 rename network/{service_net_map.yaml => service_net_map.j2.yaml} (92%)

diff --git a/network/service_net_map.yaml b/network/service_net_map.j2.yaml
similarity index 92%
rename from network/service_net_map.yaml
rename to network/service_net_map.j2.yaml
index 6e5c244956..2f78133bf9 100644
--- a/network/service_net_map.yaml
+++ b/network/service_net_map.j2.yaml
@@ -46,13 +46,14 @@ parameters:
       CephClusterNetwork: storage_mgmt
       CephMonNetwork: storage
       CephRgwNetwork: storage
-      ControllerHostnameResolveNetwork: internal_api
-      ComputeHostnameResolveNetwork: internal_api
-      BlockStorageHostnameResolveNetwork: internal_api
-      ObjectStorageHostnameResolveNetwork: internal_api
-      CephStorageHostnameResolveNetwork: storage
       PublicNetwork: external
       OpenDaylightApiNetwork: internal_api
+      # We special-case the default ResolveNetwork for the CephStorage role
+      # for backwards compatibility, all other roles default to internal_api
+      CephStorageHostnameResolveNetwork: storage
+{% for role in roles if role.name != 'CephStorage' %}
+      {{role.name}}HostnameResolveNetwork: internal_api
+{% endfor %}
     description: Mapping of service_name -> network name. Typically set
                  via parameter_defaults in the resource registry.
     type: json