diff --git a/integration-tests/src/test/resources/wdt-models/coherence-managed-wdt-config.yaml b/integration-tests/src/test/resources/wdt-models/coherence-managed-wdt-config.yaml
index b53cd3c954f..3acb07151e5 100644
--- a/integration-tests/src/test/resources/wdt-models/coherence-managed-wdt-config.yaml
+++ b/integration-tests/src/test/resources/wdt-models/coherence-managed-wdt-config.yaml
@@ -49,14 +49,10 @@ topology:
ListenPort: 8001
Cluster: 'cluster-1'
CoherenceClusterSystemResource: CoherenceCluster
- CoherenceMemberConfig:
- UnicastListenAddress: 'coherence-managed-domain-cluster-1-managed-server${id}'
'cluster-2-template':
ListenPort: 8001
Cluster: 'cluster-2'
CoherenceClusterSystemResource: CoherenceCluster
- CoherenceMemberConfig:
- UnicastListenAddress: 'coherence-managed-domain-cluster-2-managed-server${id}'
resources:
CoherenceClusterSystemResource:
CoherenceCluster:
diff --git a/operator/src/main/resources/scripts/introspectDomain.py b/operator/src/main/resources/scripts/introspectDomain.py
index a4e498936ae..1098a053014 100644
--- a/operator/src/main/resources/scripts/introspectDomain.py
+++ b/operator/src/main/resources/scripts/introspectDomain.py
@@ -1068,6 +1068,8 @@ def customizeServer(self, server):
self.writeListenAddress(server.getListenAddress(),listen_address)
self.customizeNetworkAccessPoints(server,listen_address)
self.customizeServerIstioNetworkAccessPoint(listen_address, server)
+ if (self.getCoherenceClusterSystemResourceOrNone(server) is not None):
+ self.customizeCoherenceMemberConfig(server.getCoherenceMemberConfig(),listen_address)
self.undent()
self.writeln("")
@@ -1089,6 +1091,8 @@ def customizeServerTemplate(self, template):
self.writeListenAddress(template.getListenAddress(),listen_address)
self.customizeNetworkAccessPoints(template,listen_address)
self.customizeManagedIstioNetworkAccessPoint(listen_address, template)
+ if (self.getCoherenceClusterSystemResourceOrNone(template) is not None):
+ self.customizeCoherenceMemberConfig(template.getCoherenceMemberConfig(), listen_address)
self.undent()
self.writeln("")
@@ -1163,6 +1167,37 @@ def _writeIstioNAP(self, name, server, listen_address, listen_port, protocol, ht
self.undent()
self.writeln('')
+ def getCoherenceClusterSystemResourceOrNone(self, serverOrTemplate):
+ try:
+ cluster=serverOrTemplate.getCluster()
+ if (cluster is not None):
+ ret=cluster.getCoherenceClusterSystemResource()
+ else:
+ ret=serverOrTemplate.getCoherenceClusterSystemResource()
+ except:
+ trace("Ignoring getCoherenceClusterSystemResource () exception, this is expected.")
+ ret = None
+ return ret
+
+ def customizeCoherenceMemberConfig(self, coherence_member_config, listen_address):
+ repVerb='"add"'
+ if (coherence_member_config is None):
+ self.writeln('')
+ self.indent()
+ self.writeln('%s' % listen_address)
+ self.undent()
+ self.writeln('')
+ else:
+ unicastAddress=coherence_member_config.getUnicastListenAddress()
+ if unicastAddress is not None:
+ repVerb='"replace"'
+
+ self.writeln('')
+ self.indent()
+ self.writeln('%s' % listen_address)
+ self.undent()
+ self.writeln('')
+
def customizeServerIstioNetworkAccessPoint(self, listen_address, server):
istio_enabled = self.env.getEnvOrDef("ISTIO_ENABLED", "false")
if istio_enabled == 'false':
diff --git a/operator/src/main/resources/scripts/model_wdt_mii_filter.py b/operator/src/main/resources/scripts/model_wdt_mii_filter.py
index 8d929286edf..87326c94238 100644
--- a/operator/src/main/resources/scripts/model_wdt_mii_filter.py
+++ b/operator/src/main/resources/scripts/model_wdt_mii_filter.py
@@ -206,6 +206,7 @@ def customizeServerTemplates(model):
customizeServerTemplate(topology, template)
+
def customizeServerTemplate(topology, template):
server_name_prefix = getServerNamePrefix(topology, template)
domain_uid = env.getDomainUID()
@@ -216,6 +217,8 @@ def customizeServerTemplate(topology, template):
setServerListenAddress(template, listen_address)
customizeNetworkAccessPoints(template, listen_address)
customizeManagedIstioNetworkAccessPoint(template, listen_address)
+ if (getCoherenceClusterSystemResourceOrNone(topology, template) is not None):
+ customizeCoherenceMemberConfig(template, listen_address)
def getServerNamePrefix(topology, template):
@@ -294,10 +297,10 @@ def customizeServers(model):
names = servers.keys()
for name in names:
server = servers[name]
- customizeServer(server, name)
+ customizeServer(model, server, name)
-def customizeServer(server, name):
+def customizeServer(model, server, name):
listen_address=env.toDNS1123Legal(env.getDomainUID() + "-" + name)
customizeLog(name, server)
customizeAccessLog(name, server)
@@ -305,6 +308,16 @@ def customizeServer(server, name):
setServerListenAddress(server, listen_address)
customizeNetworkAccessPoints(server,listen_address)
customizeServerIstioNetworkAccessPoint(server, listen_address)
+ if (getCoherenceClusterSystemResourceOrNone(model['topology'], server) is not None):
+ customizeCoherenceMemberConfig(server, listen_address)
+
+
+def customizeCoherenceMemberConfig(server, listen_address):
+ if 'CoherenceMemberConfig ' not in server:
+ server['CoherenceMemberConfig'] = {}
+
+ cmc = server['CoherenceMemberConfig']
+ cmc['UnicastListenAddress'] = listen_address
def getAdministrationPort(server, topology):
@@ -592,6 +605,23 @@ def getClusterOrNone(topology, name):
return None
+def getCoherenceClusterSystemResourceOrNone(topology, serverOrTemplate):
+
+ cluster_name = getClusterNameOrNone(serverOrTemplate)
+ if cluster_name is not None:
+ cluster = getClusterOrNone(topology, cluster_name)
+ if cluster is not None:
+ if 'CoherenceClusterSystemResource' not in cluster:
+ return None
+ return cluster['CoherenceClusterSystemResource']
+ else:
+ if 'CoherenceClusterSystemResource' not in serverOrTemplate:
+ return None
+ else:
+ if 'CoherenceClusterSystemResource' not in serverOrTemplate:
+ return None
+ return serverOrTemplate['CoherenceClusterSystemResource']
+
def getDynamicServerOrNone(cluster):
if 'DynamicServers' not in cluster:
diff --git a/operator/src/test/python/test_wdt_mii_filter.py b/operator/src/test/python/test_wdt_mii_filter.py
index c376dbc2a9f..ccca77c2355 100644
--- a/operator/src/test/python/test_wdt_mii_filter.py
+++ b/operator/src/test/python/test_wdt_mii_filter.py
@@ -101,7 +101,7 @@ def test_customize_admin_server_static_cluster(self):
server_name = 'admin-server'
server = model['topology']['Server'][server_name]
- model_wdt_mii_filter.customizeServer(server, server_name)
+ model_wdt_mii_filter.customizeServer(model, server, server_name)
listen_address = server['ListenAddress']
self.assertEqual('sample-domain1-admin-server', listen_address, "Expected listen address to be \'sample-domain1-admin-server\'")