Skip to content

Commit 775b1fb

Browse files
authored
Merge pull request #1166 from oracle/tbarnes-unused-template-fix
Fix introspector to handle WL config templates that don't reference a cluster.
2 parents be06bfc + c9cbe44 commit 775b1fb

File tree

3 files changed

+44
-27
lines changed

3 files changed

+44
-27
lines changed

operator/src/main/resources/scripts/introspectDomain.py

Lines changed: 23 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,14 @@ def addError(self, error):
177177
def getErrors(self):
178178
return self.errors
179179

180+
def getClusterOrNone(self,serverOrTemplate):
181+
try:
182+
ret = serverOrTemplate.getCluster()
183+
except:
184+
trace("Ignoring getCluster() exception, this is expected.")
185+
ret = None
186+
return ret
187+
180188
def addGeneratedFile(self, filePath):
181189
self.generatedFiles.append(filePath)
182190

@@ -311,14 +319,6 @@ def getDynamicServersOrNone(self,cluster):
311319
ret = None
312320
return ret
313321

314-
def getClusterOrNone(self,server):
315-
try:
316-
ret = server.getCluster()
317-
except:
318-
trace("Ignoring getCluster() exception, this is expected.")
319-
ret = None
320-
return ret
321-
322322
def getSSLOrNone(self,server):
323323
try:
324324
ret = server.getSSL()
@@ -339,7 +339,7 @@ def validateAdminServer(self):
339339
if adminServer is None:
340340
addError("The admin server '" + adminServerName + "' does not exist.")
341341
return
342-
cluster = self.getClusterOrNone(adminServer)
342+
cluster = self.env.getClusterOrNone(adminServer)
343343
if cluster is not None:
344344
self.addError("The admin server " + self.name(adminServer) + " belongs to the cluster " + self.name(cluster) + ".")
345345

@@ -361,13 +361,13 @@ def validateNonDynamicCluster(self, cluster):
361361

362362
def validateNonDynamicClusterReferencedByAtLeastOneServer(self, cluster):
363363
for server in self.env.getDomain().getServers():
364-
if self.getClusterOrNone(server) is cluster:
364+
if self.env.getClusterOrNone(server) is cluster:
365365
return
366366
self.addError("The non-dynamic cluster " + self.name(cluster) + " is not referenced by any servers.")
367367

368368
def validateNonDynamicClusterNotReferencedByAnyServerTemplates(self, cluster):
369369
for template in self.env.getDomain().getServerTemplates():
370-
if template.getCluster() is cluster:
370+
if self.env.getClusterOrNone(template) is cluster:
371371
self.addError("The non-dynamic cluster " + self.name(cluster) + " is referenced by the server template " + self.name(template) + ".")
372372

373373
LISTEN_PORT = 'listen port'
@@ -403,7 +403,7 @@ def validateNonDynamicClusterServersHaveSameListenPort(self, cluster):
403403
firstAdminPort = None
404404
firstAdminPortEnabled = None
405405
for server in self.env.getDomain().getServers():
406-
if cluster is self.getClusterOrNone(server):
406+
if cluster is self.env.getClusterOrNone(server):
407407
listenPort = server.getListenPort()
408408
listenPortEnabled = server.isListenPortEnabled()
409409
ssl = self.getSSLOrNone(server)
@@ -442,7 +442,7 @@ def validateClusterServersListenPortProperty(self, cluster, errorMsg, clusterLis
442442
firstServer = None
443443
firstListenPortProperty = None
444444
for server in self.env.getDomain().getServers():
445-
if cluster is self.getClusterOrNone(server):
445+
if cluster is self.env.getClusterOrNone(server):
446446
listenPortProperty = getServerClusterPortPropertyValue(self, server, clusterListenPortProperty)
447447
if firstServer is None:
448448
firstServer = server
@@ -456,7 +456,7 @@ def validateNonDynamicClusterServerHaveSameCustomChannels(self, cluster):
456456
firstServer = None
457457
serverNap = {}
458458
for server in self.env.getDomain().getServers():
459-
if cluster is self.getClusterOrNone(server):
459+
if cluster is self.env.getClusterOrNone(server):
460460
if firstServer is None:
461461
for nap in server.getNetworkAccessPoints():
462462
serverNap[nap.getName()] = nap.getProtocol() + "~" + str(nap.getListenPort());
@@ -485,7 +485,7 @@ def validateDynamicCluster(self, cluster):
485485
def validateDynamicClusterReferencedByOneServerTemplate(self, cluster):
486486
server_template=None
487487
for template in self.env.getDomain().getServerTemplates():
488-
if template.getCluster() is cluster:
488+
if self.env.getClusterOrNone(template) is cluster:
489489
if server_template is None:
490490
server_template = template
491491
else:
@@ -497,7 +497,7 @@ def validateDynamicClusterReferencedByOneServerTemplate(self, cluster):
497497

498498
def validateDynamicClusterNotReferencedByAnyServers(self, cluster):
499499
for server in self.env.getDomain().getServers():
500-
if self.getClusterOrNone(server) is cluster:
500+
if self.env.getClusterOrNone(server) is cluster:
501501
self.addError("The dynamic cluster " + self.name(cluster) + " is referenced by the server " + self.name(server) + ".")
502502

503503
def validateDynamicClusterDynamicServersDoNotUseCalculatedListenPorts(self, cluster):
@@ -587,7 +587,7 @@ def addDynamicServer(self, dynamicServer):
587587
def getClusteredServers(self, cluster):
588588
rtn = []
589589
for server in self.env.getDomain().getServers():
590-
if self.getClusterOrNone(server) is cluster:
590+
if self.env.getClusterOrNone(server) is cluster:
591591
rtn.append(server)
592592
return rtn
593593

@@ -619,7 +619,8 @@ def addServerTemplates(self):
619619
self.writeln("serverTemplates:")
620620
self.indent()
621621
for serverTemplate in serverTemplates:
622-
self.addServerTemplate(serverTemplate)
622+
if not (self.env.getClusterOrNone(serverTemplate) is None):
623+
self.addServerTemplate(serverTemplate)
623624
self.undent()
624625

625626
def addServerTemplate(self, serverTemplate):
@@ -655,7 +656,7 @@ def addDynamicCluster(self, cluster):
655656

656657
def findDynamicClusterServerTemplate(self, cluster):
657658
for template in cmo.getServerTemplates():
658-
if template.getCluster() is cluster:
659+
if self.env.getClusterOrNone(template) is cluster:
659660
return template
660661
# should never get here - the domain validator already checked that
661662
# one server template references the cluster
@@ -667,7 +668,7 @@ def addNonClusteredServers(self):
667668
self.writeln("servers:")
668669
self.indent()
669670
for server in self.env.getDomain().getServers():
670-
if self.getClusterOrNone(server) is None:
671+
if self.env.getClusterOrNone(server) is None:
671672
self.addServer(server)
672673
self.undent()
673674

@@ -827,7 +828,8 @@ def customizeServer(self, server):
827828

828829
def customizeServerTemplates(self):
829830
for template in self.env.getDomain().getServerTemplates():
830-
self.customizeServerTemplate(template)
831+
if not (self.env.getClusterOrNone(template) is None):
832+
self.customizeServerTemplate(template)
831833

832834
def customizeServerTemplate(self, template):
833835
name=template.getName()
@@ -1154,12 +1156,6 @@ def main(env):
11541156
traceback.print_exc()
11551157
dumpStack()
11561158
exit(exitcode=1)
1157-
except UndeclaredThrowableException, f:
1158-
trace("SEVERE","Domain introspection failed with undeclared exception: " + str(f))
1159-
print f
1160-
traceback.print_exc()
1161-
dumpStack()
1162-
exit(exitcode=1)
11631159
except:
11641160
trace("SEVERE","Domain introspection unexpectedly failed:")
11651161
traceback.print_exc()

operator/src/main/resources/scripts/startNodeManager.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,8 @@ checkEnv JAVA_HOME NODEMGR_HOME DOMAIN_HOME DOMAIN_UID ORACLE_HOME MW_HOME WL_HO
6666

6767
if [ "${SERVER_NAME}" = "introspector" ]; then
6868
SERVICE_NAME=localhost
69+
trace "Contents of '${DOMAIN_HOME}/config/config.xml':"
70+
cat ${DOMAIN_HOME}/config/config.xml
6971
else
7072
checkEnv SERVER_NAME ADMIN_NAME AS_SERVICE_NAME SERVICE_NAME USER_MEM_ARGS || exit 1
7173
fi

src/integration-tests/introspector/wl-create-domain-pod.pyt

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -243,6 +243,25 @@ else:
243243
cmo.setCluster(cl)
244244
print('Done setting attributes for Server Template: %s' % templateName);
245245

246+
templateName = '${CLUSTER_NAME}' + "-template-dummy1"
247+
print('Creating Server Template: %s' % templateName)
248+
st2=create(templateName, 'ServerTemplate')
249+
print('Done creating Server Template: %s' % templateName)
250+
cd('/ServerTemplates/%s' % templateName)
251+
cmo.setListenPort(${MANAGED_SERVER_PORT})
252+
#cmo.setListenAddress('${DOMAIN_UID}-${MANAGED_SERVER_NAME_BASE}${id}') # subst-ignore-missing
253+
#cmo.setCluster(cl)
254+
print('Done setting attributes for Server Template: %s' % templateName);
255+
256+
templateName = '${CLUSTER_NAME}' + "-template-dummy2"
257+
print('Creating Server Template: %s' % templateName)
258+
st3=create(templateName, 'ServerTemplate')
259+
print('Done creating Server Template: %s' % templateName)
260+
cd('/ServerTemplates/%s' % templateName)
261+
cmo.setListenPort(${MANAGED_SERVER_PORT})
262+
#cmo.setListenAddress('${DOMAIN_UID}-${MANAGED_SERVER_NAME_BASE}${id}') # subst-ignore-missing
263+
#cmo.setCluster(cl)
264+
print('Done setting attributes for Server Template: %s' % templateName);
246265

247266
cd('/Clusters/%s' % '${CLUSTER_NAME}')
248267
create('${CLUSTER_NAME}', 'DynamicServers')

0 commit comments

Comments
 (0)