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# ------------
4747import copy
4848import inspect
4949import os
50- import sys
50+ import sys , traceback
5151
5252tmp_callerframerecord = inspect .stack ()[0 ] # 0 represents this line # 1 represents line at caller
5353tmp_info = inspect .getframeinfo (tmp_callerframerecord [0 ])
5454tmp_scriptdir = os .path .dirname (tmp_info [0 ])
5555sys .path .append (tmp_scriptdir )
5656
57+ import utils
58+
5759env = None
5860ISTIO_NAP_NAMES = ['tcp-cbt' , 'tcp-ldap' , 'tcp-iiop' , 'tcp-snmp' , 'http-default' , 'tcp-default' , 'https-secure' , 'tls-ldaps' , 'tls-default' , 'tls-cbts' , 'tls-iiops' , 'https-admin' ]
5961
@@ -157,31 +159,49 @@ def readCredentialsSecret(self, key):
157159
158160
159161def filter_model (model ):
160- if model is not None :
161- if getOfflineWlstEnv () is None :
162+
163+ try :
164+ if model is not None :
165+
166+ if getOfflineWlstEnv () is None :
162167 initOfflineWlstEnv (model )
163168
164- initSecretManager (env )
169+ initSecretManager (env )
165170
166- if model and 'resources' in model :
167- customizeCustomFileStores (model )
171+ if model and 'resources' in model :
172+ customizeCustomFileStores (model )
168173
169- if model and 'topology' in model :
170- topology = model ['topology' ]
171- customizeNodeManagerCreds (topology )
172- customizeDomainLogPath (topology )
174+ if model and 'topology' in model :
175+ topology = model ['topology' ]
176+ customizeNodeManagerCreds (topology )
177+ customizeDomainLogPath (topology )
173178
174- if 'Cluster' in topology :
175- # If Istio enabled, inject replication channel for each cluster
176- # before creating the corresponding NAP for each server and
177- # server-template
178- customizeIstioClusters (model )
179+ if 'Cluster' in topology :
180+ # If Istio enabled, inject replication channel for each cluster
181+ # before creating the corresponding NAP for each server and
182+ # server-template
183+ customizeIstioClusters (model )
184+
185+ if 'AdminServerName' in topology :
186+ admin_server = topology ['AdminServerName' ]
187+ else :
188+ # weblogic default
189+ admin_server = 'AdminServer'
190+ topology ['AdminServerName' ] = admin_server
191+
192+ if admin_server not in topology ['Server' ]:
193+ topology ['Server' ][admin_server ] = {}
179194
180- if 'Server' in topology :
181195 customizeServers (model )
182196
183- if 'ServerTemplate' in topology :
184- customizeServerTemplates (model )
197+ if 'ServerTemplate' in topology :
198+ customizeServerTemplates (model )
199+ except :
200+ exc_type , exc_obj , exc_tb = sys .exc_info ()
201+ ee_string = traceback .format_exception (exc_type , exc_obj , exc_tb )
202+ utils .trace ('SEVERE' , 'Error in applying MII filter:\n ' + str (ee_string ))
203+ raise
204+
185205
186206def initOfflineWlstEnv (model ):
187207 global env
@@ -450,11 +470,8 @@ def customizeServerIstioNetworkAccessPoint(server, listen_address):
450470 istio_readiness_port = env .getEnvOrDef ("ISTIO_READINESS_PORT" , None )
451471 if istio_readiness_port is None :
452472 return
453- admin_server_port = server ['ListenPort' ]
454- # Set the default if it is not provided to avoid nap default to 0 which fails validation.
455473
456- if admin_server_port is None :
457- admin_server_port = 7001
474+ admin_server_port = _get_default_listen_port (server )
458475
459476 # readiness probe
460477 _writeIstioNAP (name = 'http-probe' , server = server , listen_address = listen_address ,
@@ -585,10 +602,8 @@ def customizeManagedIstioNetworkAccessPoint(template, listen_address):
585602 istio_readiness_port = env .getEnvOrDef ("ISTIO_READINESS_PORT" , None )
586603 if istio_readiness_port is None :
587604 return
588- listen_port = template ['ListenPort' ]
589- # Set the default if it is not provided to avoid nap default to 0 which fails validation.
590- if listen_port is None :
591- listen_port = 7001
605+
606+ listen_port = _get_default_listen_port (template )
592607
593608 # readiness probe
594609 _writeIstioNAP (name = 'http-probe' , server = template , listen_address = listen_address ,
@@ -651,12 +666,8 @@ def addAdminChannelPortForwardNetworkAccessPoints(server):
651666 if (admin_channel_port_forwarding_enabled == 'false' ) or \
652667 (istio_enabled == 'true' and istioVersionRequiresLocalHostBindings ()):
653668 return
654-
655- admin_server_port = server ['ListenPort' ]
656669 # Set the default if it is not provided to avoid nap default to 0 which fails validation.
657-
658- if admin_server_port is None :
659- admin_server_port = 7001
670+ admin_server_port = _get_default_listen_port (server )
660671
661672 model = env .getModel ()
662673
@@ -837,5 +848,10 @@ def getSecretManager():
837848def istioVersionRequiresLocalHostBindings ():
838849 if env .getEnvOrDef ("ISTIO_USE_LOCALHOST_BINDINGS" , "true" ) == 'true' :
839850 return True
851+ return False
840852
841- return False
853+ def _get_default_listen_port (server ):
854+ if 'ListenPort' not in server :
855+ return 7001
856+ else :
857+ return server ['ListenPort' ]
0 commit comments