Skip to content

Commit 82672c1

Browse files
committed
Changes to handle multiple custom admin channel configuration use-case.
1 parent 4053478 commit 82672c1

File tree

3 files changed

+24
-35
lines changed

3 files changed

+24
-35
lines changed

documentation/staging/content/userguide/managing-domains/accessing-the-domain/port-forward.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ Situation | Channel Name | Listen Address | Port | Protocol
8585
When there's no admin port or admin channels configured, and a non-SSL default channel exists | internal-t3 | localhost | Server listening port | t3
8686
When there's no admin port or admin channels configured, and an SSL default channel exists | internal-t3s | localhost | Server SSL listening port | t3s
8787
When an admin port is enabled | internal-admin | localhost | WebLogic administration port | admin
88-
When a custom admin channel is configured | internal-admin | localhost | Custom administration port | admin
88+
When one or more custom admin channels are configured | internal-admin${index} (where ${index} is a number that starts with 1 and increases by 1 for each custom admin channel) | localhost | Custom administration port | admin
8989

9090
### Port forward to an Administration Server Pod
9191

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

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1349,16 +1349,19 @@ def addAdminChannelPortForwardNetworkAccessPoints(self, server):
13491349
if (admin_channel_port_forward_enabled == 'false') or (istio_enabled == 'true') :
13501350
return
13511351

1352-
customAdminChannelPort = getCustomAdminChannelPort(server)
1352+
index = 0
1353+
for nap in server.getNetworkAccessPoints():
1354+
if nap.getProtocol() == "admin":
1355+
index += 1
1356+
port=nap.getListenPort()
1357+
self._writeAdminChannelPortForwardNAP(name='internal-admin' + str(index), server=server,
1358+
listen_port=port, protocol='admin')
13531359

13541360
if isAdministrationPortEnabledForServer(server, self.env.getDomain()):
13551361
self._writeAdminChannelPortForwardNAP(name='internal-admin', server=server,
13561362
listen_port=getAdministrationPort(server, self.env.getDomain()),
13571363
protocol='admin')
1358-
elif (customAdminChannelPort != 0):
1359-
self._writeAdminChannelPortForwardNAP(name='internal-admin', server=server,
1360-
listen_port=customAdminChannelPort, protocol='admin')
1361-
else:
1364+
elif index == 0:
13621365
admin_server_port = getRealListenPort(server)
13631366
self._writeAdminChannelPortForwardNAP(name='internal-t3', server=server,
13641367
listen_port=admin_server_port, protocol='t3')
@@ -1819,14 +1822,6 @@ def isAdministrationPortEnabledForDomain(domain):
18191822
administrationPortEnabled = isSecureModeEnabledForDomain(domain)
18201823
return administrationPortEnabled
18211824

1822-
def getCustomAdminChannelPort(server):
1823-
port = 0
1824-
for nap in server.getNetworkAccessPoints():
1825-
if nap.getProtocol() == "admin":
1826-
port=nap.getListenPort()
1827-
break
1828-
return port
1829-
18301825
def isAdministrationPortEnabledForServer(server, domain, isServerTemplate=False):
18311826
administrationPortEnabled = false
18321827
#"if server.isSet('AdministrationPortEnabled'):" does not work in off-line WLST!

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

Lines changed: 15 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -523,21 +523,6 @@ def customizeManagedIstioNetworkAccessPoint(template, listen_address):
523523
_writeIstioNAP(name='tls-iiops', server=template, listen_address=listen_address,
524524
listen_port=ssl_listen_port, protocol='iiops')
525525

526-
def getCustomAdminChannelPort(server):
527-
customAdminChannelPort=0
528-
if 'NetworkAccessPoint' not in server:
529-
server['NetworkAccessPoint'] = {}
530-
531-
naps = server['NetworkAccessPoint']
532-
nap_names = naps.keys()
533-
for nap_name in nap_names:
534-
nap = naps[nap_name]
535-
if nap['Protocol'] == 'admin':
536-
customAdminChannelPort = nap['ListenPort']
537-
break
538-
return customAdminChannelPort
539-
540-
541526
def addAdminChannelPortForwardNetworkAccessPoints(server):
542527
istio_enabled = env.getEnvOrDef("ISTIO_ENABLED", "false")
543528
admin_channel_port_forwarding_enabled = env.getEnvOrDef("ADMIN_CHANNEL_PORT_FORWARDING_ENABLED", "true")
@@ -551,15 +536,25 @@ def addAdminChannelPortForwardNetworkAccessPoints(server):
551536
admin_server_port = 7001
552537

553538
model = env.getModel()
554-
customAdminChannelPort=getCustomAdminChannelPort(server)
539+
540+
if 'NetworkAccessPoint' not in server:
541+
server['NetworkAccessPoint'] = {}
542+
543+
naps = server['NetworkAccessPoint']
544+
nap_names = naps.keys()
545+
index = 0
546+
for nap_name in nap_names:
547+
nap = naps[nap_name]
548+
if nap['Protocol'] == 'admin':
549+
index += 1
550+
customAdminChannelPort = nap['ListenPort']
551+
_writeAdminChannelPortForwardNAP(name='internal-admin' + str(index), server=server,
552+
listen_port=customAdminChannelPort, protocol='admin')
555553

556554
if isAdministrationPortEnabledForServer(server, model['topology']):
557555
_writeAdminChannelPortForwardNAP(name='internal-admin', server=server,
558556
listen_port=getAdministrationPort(server, model['topology']), protocol='admin')
559-
elif (customAdminChannelPort != 0 ):
560-
_writeAdminChannelPortForwardNAP(name='internal-admin', server=server,
561-
listen_port=customAdminChannelPort, protocol='admin')
562-
else:
557+
elif index == 0:
563558
_writeAdminChannelPortForwardNAP(name='internal-t3', server=server, listen_port=admin_server_port, protocol='t3')
564559

565560
ssl = getSSLOrNone(server)
@@ -574,7 +569,6 @@ def addAdminChannelPortForwardNetworkAccessPoints(server):
574569
if ssl_listen_port is not None:
575570
_writeAdminChannelPortForwardNAP(name='internal-t3s', server=server, listen_port=ssl_listen_port, protocol='t3s')
576571

577-
578572
def _writeAdminChannelPortForwardNAP(name, server, listen_port, protocol):
579573

580574
if 'NetworkAccessPoint' not in server:

0 commit comments

Comments
 (0)