Skip to content

Commit bd15d00

Browse files
authored
Fix problem with a wdt without any servers defined but with cluster (#3977)
* Fix problem with a wdt without any servers defined but with cluster
1 parent e6fb90f commit bd15d00

File tree

3 files changed

+41
-23
lines changed

3 files changed

+41
-23
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -441,7 +441,7 @@ def validateNonDynamicClusterReferencedByAtLeastOneServer(self, cluster):
441441
for server in self.env.getDomain().getServers():
442442
if self.env.getClusterOrNone(server) is cluster:
443443
return
444-
self.addError("The WebLogic configured cluster " + self.name(cluster) + " is not referenced by any servers.")
444+
self.addError("The WebLogic configured cluster " + self.name(cluster) + " is not referenced by any servers. You must have managed servers defined that belong to this cluster.")
445445

446446
def validateNonDynamicClusterNotReferencedByAnyServerTemplates(self, cluster):
447447
for template in self.env.getDomain().getServerTemplates():

operator/src/main/resources/scripts/model-wdt-create-filter.py

Lines changed: 35 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -7,31 +7,44 @@
77
# This is a WDT filter for primordial domain creation. It filters out all resources and
88
# apps deployments, leaving only the domainInfo and admin server in topology.
99
#
10+
import sys, traceback
11+
import utils
12+
1013
def filter_model(model):
11-
if model and 'topology' in model:
12-
topology = model['topology']
13-
if 'AdminServerName' in model['topology']:
14-
admin_server = topology['AdminServerName']
15-
else:
16-
# weblogic default
17-
admin_server = 'AdminServer'
18-
model['topology'] = {}
19-
model['topology']['AdminServerName'] = admin_server
20-
model['topology']['Server'] = {}
21-
if admin_server in topology['Server']:
22-
model['topology']['Server'][admin_server] = topology['Server'][admin_server]
23-
else:
24-
model['topology']['Server'][admin_server] = {}
14+
try:
15+
if model and 'topology' in model:
16+
topology = model['topology']
17+
if 'AdminServerName' in model['topology']:
18+
admin_server = topology['AdminServerName']
19+
else:
20+
# weblogic default
21+
admin_server = 'AdminServer'
22+
model['topology'] = {}
23+
model['topology']['AdminServerName'] = admin_server
24+
model['topology']['Server'] = {}
25+
26+
# cover the odd case that the model doesn't have any server!
27+
if 'Server' in topology and admin_server in topology['Server']:
28+
model['topology']['Server'][admin_server] = topology['Server'][admin_server]
29+
else:
30+
if 'Server' not in topology:
31+
model['topology']['Server'] = {}
32+
model['topology']['Server'][admin_server] = {}
2533

26-
if 'Name' in topology:
27-
model['topology']['Name'] = topology['Name']
34+
if 'Name' in topology:
35+
model['topology']['Name'] = topology['Name']
2836

29-
if 'Security' in topology:
30-
model['topology']['Security'] = topology['Security']
37+
if 'Security' in topology:
38+
model['topology']['Security'] = topology['Security']
3139

32-
if model and 'appDeployments' in model:
33-
model['appDeployments'] = {}
40+
if model and 'appDeployments' in model:
41+
model['appDeployments'] = {}
3442

35-
if model and 'resources' in model:
36-
model['resources'] = {}
43+
if model and 'resources' in model:
44+
model['resources'] = {}
3745

46+
except:
47+
exc_type, exc_obj, exc_tb = sys.exc_info()
48+
ee_string = traceback.format_exception(exc_type, exc_obj, exc_tb)
49+
utils.trace('SEVERE', 'Error in applying MII filter:\n ' + str(ee_string))
50+
raise

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,11 @@ def filter_model(model):
189189
admin_server = 'AdminServer'
190190
topology['AdminServerName'] = admin_server
191191

192+
# cover the odd case that the model doesn't have any server!
193+
194+
if 'Server' not in topology:
195+
topology['Server'] = {}
196+
192197
if admin_server not in topology['Server']:
193198
topology['Server'][admin_server] = {}
194199

0 commit comments

Comments
 (0)