Skip to content

Commit 68663c9

Browse files
authored
OWLS-98083 - Create port-forward NAP when admin server name not defined in WDT model (#2911) (#2929)
* OWLS-98083 - Fix for port-forwarding to handle cases where admin server name not defined in WDT model file. * Change the unit test name. * Changes as per Robert's review comments.
1 parent f31b3ef commit 68663c9

File tree

3 files changed

+36
-2
lines changed

3 files changed

+36
-2
lines changed

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

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -326,14 +326,20 @@ def customizeServers(model):
326326

327327
def customizeServer(model, server, name):
328328
listen_address=env.toDNS1123Legal(env.getDomainUID() + "-" + name)
329-
adminServer = model['topology']['AdminServerName']
329+
330+
adminServer = None
331+
if 'AdminServerName' in model['topology'] and len(model['topology']['AdminServerName']) > 0:
332+
adminServer = model['topology']['AdminServerName']
333+
330334
customizeLog(name, server)
331335
customizeAccessLog(name, server)
332336
customizeDefaultFileStore(server)
333337
setServerListenAddress(server, listen_address)
334338
customizeNetworkAccessPoints(server,listen_address)
335339
customizeServerIstioNetworkAccessPoint(server, listen_address)
336-
if (name == adminServer):
340+
# If the admin server name is not provided in the WDT model,
341+
# use the default name 'AdminServer'.
342+
if (name == adminServer or name == 'AdminServer'):
337343
addAdminChannelPortForwardNetworkAccessPoints(server)
338344
else:
339345
customizeIstioReplicationChannel(server, name, listen_address)

operator/src/test/python/test_wdt_mii_filter.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,20 @@ def getStaticModel(self):
9191

9292
return model
9393

94+
def getModelWithoutAdminServerName(self):
95+
# Load model as dictionary
96+
file = open(r'../resources/model.dict_without_admin_server_name.txt')
97+
contents = file.read()
98+
model = ast.literal_eval(contents)
99+
file.close()
100+
101+
# Setup mock environment
102+
mock_env= MockOfflineWlstEnv()
103+
mock_env.open(model)
104+
model_wdt_mii_filter.env = mock_env
105+
106+
return model
107+
94108
def writeModelAsDict(self, model, file_path):
95109
f = open(file_path,"w")
96110
f.write( str(model) )
@@ -229,6 +243,19 @@ def test_customize_port_forward_network_access_point_multiple_custom_admin_chann
229243
internal_custom1_nap_listen_port = server['NetworkAccessPoint']['internal-admin2']['ListenPort']
230244
self.assertEqual(7897, internal_custom1_nap_listen_port, "Expected nap listen address to be \'7897\'")
231245

246+
def test_port_forward_network_access_point_when_admin_server_name_not_defined(self):
247+
model = self.getModelWithoutAdminServerName()
248+
servers = model['topology']['Server']
249+
names = servers.keys()
250+
for name in names:
251+
server = servers[name]
252+
model_wdt_mii_filter.customizeServer(model, server, name)
253+
254+
internal_admin_nap_listen_address = server['NetworkAccessPoint']['internal-admin']['ListenAddress']
255+
self.assertEqual('localhost', internal_admin_nap_listen_address, "Expected nap listen address to be \'localhost\'")
256+
internal_admin_nap_listen_port = server['NetworkAccessPoint']['internal-admin']['ListenPort']
257+
self.assertEqual(9002, internal_admin_nap_listen_port, "Expected nap listen port to be \'9002\'")
258+
232259
def test_customizeServerTemplates(self):
233260
model = self.getModel()
234261

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{'appDeployments': {'Application': {'myapp': {'SourcePath': 'wlsdeploy/applications/myapp-v1', 'ModuleType': 'ear', 'Target': 'cluster-1'}}}, 'domainInfo': {'AdminUserName': 'weblogic', 'ServerStartMode': 'dev', 'AdminPassword': 'welcome1'}, 'resources': {'FileStore': {'FileStore-0': {'Directory': '/u01/oracle/customFileStore/', 'Target': 'cluster-1'}}}, 'topology': {'Cluster': {'cluster-1': {'DynamicServers': {'MinDynamicClusterSize': '0', 'CalculatedListenPorts': False, 'MaxDynamicClusterSize': '5', 'ServerNamePrefix': 'managed-server', 'DynamicClusterSize': '5', 'ServerTemplate': 'cluster-1-template'}}}, 'Name': 'sample-domain1', 'AdministrationPortEnabled': 'true', 'ServerTemplate': {'cluster-1-template': {'NetworkAccessPoint': {'T3Channel': {'PublicAddress': 'admin-server-public-service', 'PublicPort': 9003, 'ListenAddress': 'admin-server-service', 'ListenPort': 8003}}, 'Cluster': 'cluster-1', 'ListenPort': 8001}}, 'Server': {'AdminServer': {'NetworkAccessPoint': {'ASChannel': {'TunnelingEnabled': False, 'Protocol': 'admin', 'HttpEnabledForThisProtocol': True, 'ListenPort': 7896, 'PublicPort': 7896, 'Enabled': True, 'ListenAddress': 'domain1-admin-server'}, 'AS1Channel': {'TunnelingEnabled': False, 'Protocol': 'admin', 'HttpEnabledForThisProtocol': True, 'ListenPort': 7897, 'PublicPort': 7897, 'Enabled': True, 'ListenAddress': 'domain1-admin-server'}}, 'ListenPort': 7001}}}}

0 commit comments

Comments
 (0)