Skip to content

Commit 7ec5314

Browse files
authored
Port fix model without anyservers (#3978)
* fix wdt model doesn't have any servers defined
1 parent 1f39c34 commit 7ec5314

File tree

3 files changed

+52
-31
lines changed

3 files changed

+52
-31
lines changed

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright (c) 2018, 2022, Oracle and/or its affiliates.
1+
# Copyright (c) 2018, 2023, Oracle and/or its affiliates.
22
# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
33
#
44
# ------------
@@ -493,7 +493,7 @@ def validateNonDynamicClusterReferencedByAtLeastOneServer(self, cluster):
493493
for server in self.env.getDomain().getServers():
494494
if self.env.getClusterOrNone(server) is cluster:
495495
return
496-
self.addError("The WebLogic configured cluster " + self.name(cluster) + " is not referenced by any servers.")
496+
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.")
497497

498498
def validateNonDynamicClusterNotReferencedByAnyServerTemplates(self, cluster):
499499
for template in self.env.getDomain().getServerTemplates():

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

Lines changed: 40 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -7,32 +7,45 @@
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+
13+
1014
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] = {}
25-
26-
if 'Name' in topology:
27-
model['topology']['Name'] = topology['Name']
28-
29-
if 'Security' in topology:
30-
model['topology']['Security'] = topology['Security']
31-
32-
33-
if model and 'appDeployments' in model:
34-
model['appDeployments'] = {}
35-
36-
if model and 'resources' in model:
37-
model['resources'] = {}
15+
try:
16+
if model and 'topology' in model:
17+
topology = model['topology']
18+
if 'AdminServerName' in model['topology']:
19+
admin_server = topology['AdminServerName']
20+
else:
21+
# weblogic default
22+
admin_server = 'AdminServer'
23+
model['topology'] = {}
24+
model['topology']['AdminServerName'] = admin_server
25+
model['topology']['Server'] = {}
26+
27+
# cover the odd case that the model doesn't have any server!
28+
if 'Server' in topology and admin_server in topology['Server']:
29+
model['topology']['Server'][admin_server] = topology['Server'][admin_server]
30+
else:
31+
if 'Server' not in topology:
32+
model['topology']['Server'] = {}
33+
model['topology']['Server'][admin_server] = {}
34+
35+
if 'Name' in topology:
36+
model['topology']['Name'] = topology['Name']
37+
38+
if 'Security' in topology:
39+
model['topology']['Security'] = topology['Security']
40+
41+
if model and 'appDeployments' in model:
42+
model['appDeployments'] = {}
43+
44+
if model and 'resources' in model:
45+
model['resources'] = {}
3846

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

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

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,11 @@ def filter_model(model):
186186
admin_server = 'AdminServer'
187187
topology['AdminServerName'] = admin_server
188188

189+
# cover the odd case that the model doesn't have any server!
190+
191+
if 'Server' not in topology:
192+
topology['Server'] = {}
193+
189194
if admin_server not in topology['Server']:
190195
topology['Server'][admin_server] = {}
191196

@@ -410,10 +415,13 @@ def isAdministrationPortEnabledForDomain(model):
410415
def isSecureModeEnabledForDomain(model):
411416
secureModeEnabled = False
412417
topology = model['topology']
413-
domain_info = model['domainInfo']
418+
domain_info = None
419+
if 'domainInfo' in model:
420+
domain_info = model['domainInfo']
421+
414422
if 'SecurityConfiguration' in topology and 'SecureMode' in topology['SecurityConfiguration'] and 'SecureModeEnabled' in topology['SecurityConfiguration']['SecureMode']:
415423
secureModeEnabled = topology['SecurityConfiguration']['SecureMode']['SecureModeEnabled']
416-
elif 'ServerStartMode' in domain_info and domain_info['ServerStartMode'] == 'secure':
424+
elif domain_info and 'ServerStartMode' in domain_info and domain_info['ServerStartMode'] == 'secure':
417425
secureModeEnabled = True
418426
else:
419427
is_production_mode_enabled = False

0 commit comments

Comments
 (0)