Skip to content

Commit e51cd2b

Browse files
authored
Merge pull request #1118 from oracle/introspect-after-edit
Resolve failure in introspection following a console edit
2 parents 41fcde8 + 7d97bac commit e51cd2b

File tree

1 file changed

+54
-28
lines changed

1 file changed

+54
-28
lines changed

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

Lines changed: 54 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright 2018, Oracle Corporation and/or its affiliates. All rights reserved.
1+
# Copyright 2018, 2019, Oracle Corporation and/or its affiliates. All rights reserved.
22
# Licensed under the Universal Permissive License v 1.0 as shown at http://oss.oracle.com/licenses/upl.
33
#
44
# ------------
@@ -209,14 +209,14 @@ def printFile(self, path):
209209

210210
def getEnv(self, name):
211211
val = os.getenv(name)
212-
if val == None or val == "null":
212+
if val is None or val == "null":
213213
trace("ERROR: Env var "+name+" not set.")
214214
sys.exit(1)
215215
return val
216216

217217
def getEnvOrDef(self, name, deflt):
218218
val = os.getenv(name)
219-
if val == None or val == "null":
219+
if val is None or val == "null":
220220
return deflt
221221
return val
222222

@@ -303,18 +303,33 @@ def generate(self):
303303
# at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
304304
# at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
305305
# at java.lang.reflect.Method.invoke(Method.java:498)
306-
def getDynamicServersWA(self,cluster):
306+
def getDynamicServersOrNone(self,cluster):
307307
try:
308308
ret = cluster.getDynamicServers()
309309
except:
310310
trace("Ignoring getDynamicServers() exception, this is expected.")
311311
ret = None
312312
return ret
313313

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+
322+
def getSSLOrNone(self,server):
323+
try:
324+
ret = server.getSSL()
325+
except:
326+
trace("Ignoring getSSL() exception, this is expected.")
327+
ret = None
328+
return ret
314329

315330
def validateAdminServer(self):
316331
adminServerName = self.env.getDomain().getAdminServerName()
317-
if adminServerName == None:
332+
if adminServerName is None:
318333
addError("The admin server name is null.")
319334
return
320335
adminServer = None
@@ -324,16 +339,16 @@ def validateAdminServer(self):
324339
if adminServer is None:
325340
addError("The admin server '" + adminServerName + "' does not exist.")
326341
return
327-
cluster = adminServer.getCluster()
328-
if cluster != None:
342+
cluster = self.getClusterOrNone(adminServer)
343+
if cluster is not None:
329344
self.addError("The admin server " + self.name(adminServer) + " belongs to the cluster " + self.name(cluster) + ".")
330345

331346
def validateClusters(self):
332347
for cluster in self.env.getDomain().getClusters():
333348
self.validateCluster(cluster)
334349

335350
def validateCluster(self, cluster):
336-
if self.getDynamicServersWA(cluster) is None:
351+
if self.getDynamicServersOrNone(cluster) is None:
337352
self.validateNonDynamicCluster(cluster)
338353
else:
339354
self.validateDynamicCluster(cluster)
@@ -346,7 +361,7 @@ def validateNonDynamicCluster(self, cluster):
346361

347362
def validateNonDynamicClusterReferencedByAtLeastOneServer(self, cluster):
348363
for server in self.env.getDomain().getServers():
349-
if server.getCluster() is cluster:
364+
if self.getClusterOrNone(server) is cluster:
350365
return
351366
self.addError("The non-dynamic cluster " + self.name(cluster) + " is not referenced by any servers.")
352367

@@ -362,13 +377,14 @@ def validateNonDynamicClusterNotReferencedByAnyServerTemplates(self, cluster):
362377
ADMIN_LISTEN_PORT = 'admin listen port'
363378
ADMIN_LISTEN_PORT_ENABLED = 'admin listen port enabled'
364379

365-
def getServerClusterPortPropertyValue(server, clusterListenPortProperty):
380+
def getServerClusterPortPropertyValue(self, server, clusterListenPortProperty):
366381
sslListenPort = None
367-
if server.getSSL() != None:
368-
sslListenPort = server.getSSL().getListenPort()
382+
ssl = self.getSSLOrNone(server)
383+
if ssl is not None:
384+
sslListenPort = ssl.getListenPort()
369385
sslListenPortEnabled = None
370-
if server.getSSL()!= None:
371-
sslListenPortEnabled = server.getSSL().isListenPortEnabled()
386+
if ssl is not None:
387+
sslListenPortEnabled = ssl.isListenPortEnabled()
372388
return {
373389
LISTEN_PORT: server.getListenPort(),
374390
LISTEN_PORT_ENABLED: server.isListenPortEnabled(),
@@ -387,10 +403,10 @@ def validateNonDynamicClusterServersHaveSameListenPort(self, cluster):
387403
firstAdminPort = None
388404
firstAdminPortEnabled = None
389405
for server in self.env.getDomain().getServers():
390-
if cluster is server.getCluster():
406+
if cluster is self.getClusterOrNone(server):
391407
listenPort = server.getListenPort()
392408
listenPortEnabled = server.isListenPortEnabled()
393-
ssl = server.getSSL()
409+
ssl = self.getSSLOrNone(server)
394410
sslListenPort = None
395411
sslListenPortEnabled = None
396412
if ssl is not None:
@@ -426,8 +442,8 @@ def validateClusterServersListenPortProperty(self, cluster, errorMsg, clusterLis
426442
firstServer = None
427443
firstListenPortProperty = None
428444
for server in self.env.getDomain().getServers():
429-
if cluster is server.getCluster():
430-
listenPortProperty = getServerClusterPortPropertyValue(server, clusterListenPortProperty)
445+
if cluster is self.getClusterOrNone(server):
446+
listenPortProperty = getServerClusterPortPropertyValue(self, server, clusterListenPortProperty)
431447
if firstServer is None:
432448
firstServer = server
433449
firstListenPortProperty = listenPortProperty
@@ -440,7 +456,7 @@ def validateNonDynamicClusterServerHaveSameCustomChannels(self, cluster):
440456
firstServer = None
441457
serverNap = {}
442458
for server in self.env.getDomain().getServers():
443-
if cluster is server.getCluster():
459+
if cluster is self.getClusterOrNone(server):
444460
if firstServer is None:
445461
for nap in server.getNetworkAccessPoints():
446462
serverNap[nap.getName()] = nap.getProtocol() + "~" + str(nap.getListenPort());
@@ -481,7 +497,7 @@ def validateDynamicClusterReferencedByOneServerTemplate(self, cluster):
481497

482498
def validateDynamicClusterNotReferencedByAnyServers(self, cluster):
483499
for server in self.env.getDomain().getServers():
484-
if server.getCluster() is cluster:
500+
if self.getClusterOrNone(server) is cluster:
485501
self.addError("The dynamic cluster " + self.name(cluster) + " is referenced by the server " + self.name(server) + ".")
486502

487503
def validateDynamicClusterDynamicServersDoNotUseCalculatedListenPorts(self, cluster):
@@ -535,13 +551,13 @@ def addConfiguredClusters(self):
535551
def getConfiguredClusters(self):
536552
rtn = []
537553
for cluster in self.env.getDomain().getClusters():
538-
if self.getDynamicServersWA(cluster) is None:
554+
if self.getDynamicServersOrNone(cluster) is None:
539555
rtn.append(cluster)
540556
return rtn
541557

542558
def addConfiguredCluster(self, cluster):
543559
self.writeln("- name: " + self.name(cluster))
544-
dynamicServers = self.getDynamicServersWA(cluster)
560+
dynamicServers = self.getDynamicServersOrNone(cluster)
545561
if dynamicServers is not None:
546562
self.indent();
547563
self.writeln("dynamicServersConfig:")
@@ -571,7 +587,7 @@ def addDynamicServer(self, dynamicServer):
571587
def getClusteredServers(self, cluster):
572588
rtn = []
573589
for server in self.env.getDomain().getServers():
574-
if server.getCluster() is cluster:
590+
if self.getClusterOrNone(server) is cluster:
575591
rtn.append(server)
576592
return rtn
577593

@@ -590,7 +606,7 @@ def addServer(self, server):
590606
self.addNetworkAccessPoints(server)
591607

592608
def addSSL(self, server):
593-
ssl = server.getSSL()
609+
ssl = self.getSSLOrNone(server)
594610
if ssl is not None and ssl.isEnabled():
595611
self.indent()
596612
self.writeln("sslListenPort: " + str(ssl.getListenPort()))
@@ -623,7 +639,7 @@ def addDynamicClusters(self):
623639
def getDynamicClusters(self):
624640
rtn = []
625641
for cluster in self.env.getDomain().getClusters():
626-
if self.getDynamicServersWA(cluster) is not None:
642+
if self.getDynamicServersOrNone(cluster) is not None:
627643
rtn.append(cluster)
628644
return rtn
629645

@@ -651,7 +667,7 @@ def addNonClusteredServers(self):
651667
self.writeln("servers:")
652668
self.indent()
653669
for server in self.env.getDomain().getServers():
654-
if server.getCluster() is None:
670+
if self.getClusterOrNone(server) is None:
655671
self.addServer(server)
656672
self.undent()
657673

@@ -845,20 +861,29 @@ def customizeNetworkAccessPoint(self, nap, listen_address):
845861
self.undent()
846862
self.writeln("</d:network-access-point>")
847863

864+
def getLogOrNone(self,server):
865+
try:
866+
ret = server.getLog()
867+
except:
868+
trace("Ignoring getLog() exception, this is expected.")
869+
ret = None
870+
return ret
871+
848872
def customizeLog(self, name, bean, isDomainBean):
849873
logs_dir = self.env.getDomainLogHome()
850874
if logs_dir is None or len(logs_dir) == 0:
851875
return
852876

853877
logaction=''
854878
fileaction=''
855-
if bean.getLog() is None:
879+
log = self.getLogOrNone(bean)
880+
if log is None:
856881
if not isDomainBean:
857882
# don't know why, but don't need to "add" a missing domain log bean, and adding it causes trouble
858883
logaction=' f:combine-mode="add"'
859884
fileaction=' f:combine-mode="add"'
860885
else:
861-
if bean.getLog().getFileName() is None:
886+
if log.getFileName() is None:
862887
fileaction=' f:combine-mode="add"'
863888
else:
864889
fileaction=' f:combine-mode="replace"'
@@ -1129,6 +1154,7 @@ def main(env):
11291154
traceback.print_exc()
11301155
exit(exitcode=1)
11311156
except UndeclaredThrowableException, f:
1157+
dumpStack()
11321158
print f
11331159
trace("Domain introspection failed with undeclared exception:")
11341160
traceback.print_exc()

0 commit comments

Comments
 (0)