Skip to content

Commit 5f5cfa7

Browse files
authored
Port fix adminservername problem (#3956)
* port of fixing the AdminServerName missing in model from 3.4
1 parent cbbe524 commit 5f5cfa7

File tree

3 files changed

+51
-17
lines changed

3 files changed

+51
-17
lines changed

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

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright (c) 2018, 2021, 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
# ------------
@@ -10,14 +10,18 @@
1010
def filter_model(model):
1111
if model and 'topology' in model:
1212
topology = model['topology']
13-
if model['topology']['AdminServerName'] != None:
13+
if 'AdminServerName' in model['topology']:
1414
admin_server = topology['AdminServerName']
15-
model['topology'] = {}
16-
model['topology']['AdminServerName'] = admin_server
17-
model['topology']['Server'] = {}
18-
model['topology']['Server'][admin_server] = topology['Server'][admin_server]
1915
else:
20-
model['topology'] = {}
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] = {}
2125

2226
if 'Name' in topology:
2327
model['topology']['Name'] = topology['Name']

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

Lines changed: 18 additions & 9 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
# ------------
@@ -179,8 +179,17 @@ def filter_model(model):
179179
customizeNodeManagerCreds(topology)
180180
customizeDomainLogPath(topology)
181181

182-
if 'Server' in topology:
183-
customizeServers(model)
182+
if 'AdminServerName' in topology:
183+
admin_server = topology['AdminServerName']
184+
else:
185+
# weblogic default
186+
admin_server = 'AdminServer'
187+
topology['AdminServerName'] = admin_server
188+
189+
if admin_server not in topology['Server']:
190+
topology['Server'][admin_server] = {}
191+
192+
customizeServers(model)
184193

185194
if 'ServerTemplate' in topology:
186195
customizeServerTemplates(model)
@@ -462,12 +471,8 @@ def addAdminChannelPortForwardNetworkAccessPoints(server):
462471
admin_channel_port_forwarding_enabled = env.getEnvOrDef("ADMIN_CHANNEL_PORT_FORWARDING_ENABLED", "true")
463472
if (admin_channel_port_forwarding_enabled == 'false'):
464473
return
465-
466-
admin_server_port = server['ListenPort']
467474
# Set the default if it is not provided to avoid nap default to 0 which fails validation.
468-
469-
if admin_server_port is None:
470-
admin_server_port = 7001
475+
admin_server_port = _get_default_listen_port(server)
471476

472477
model = env.getModel()
473478

@@ -645,4 +650,8 @@ def getSecretManager():
645650
def istioVersionRequiresLocalHostBindings():
646651
return False
647652

648-
653+
def _get_default_listen_port(server):
654+
if 'ListenPort' not in server:
655+
return 7001
656+
else:
657+
return server['ListenPort']

operator/src/test/python/test_wdt_mii_filter.py

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright (c) 2021, 2022, Oracle and/or its affiliates.
1+
# Copyright (c) 2021, 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
import ast
@@ -332,6 +332,27 @@ def test_istioVersionRequiresLocalHostBindings(self):
332332
model = self.getModel()
333333
self.assertFalse(model_wdt_mii_filter.istioVersionRequiresLocalHostBindings())
334334

335+
def test_adminserver_name_missing(self):
336+
try:
337+
model = self.getModel()
338+
topology = model['topology']
339+
del topology['AdminServerName']
340+
model_wdt_mii_filter.filter_model(model)
341+
self.assertEqual('AdminServer', topology['AdminServerName'],
342+
"Expected AdminServerName set to AdminServer after filter")
343+
admin_server_exists = 'AdminServer' in topology['Server']
344+
self.assertTrue(admin_server_exists, "Expected AdminServer added if AdminServerName is not set")
345+
346+
topology['AdminServerName'] = 'MyAdminServer'
347+
model_wdt_mii_filter.filter_model(model)
348+
self.assertEqual('MyAdminServer', topology['AdminServerName'],
349+
"Expected AdminServerName set to MyAdminServer after filter")
350+
admin_server_exists = 'MyAdminServer' in topology['Server']
351+
self.assertTrue(admin_server_exists, "Expected MyAdminServer added if AdminServerName is not set")
352+
353+
except ImportError as ie:
354+
self.assertTrue(ie is not None)
355+
335356
class MockOfflineWlstEnv(model_wdt_mii_filter.OfflineWlstEnv):
336357

337358
WLS_CRED_USERNAME = 'weblogic'

0 commit comments

Comments
 (0)