1
- # Copyright (c) 2018, 2022 , Oracle and/or its affiliates.
1
+ # Copyright (c) 2018, 2023 , Oracle and/or its affiliates.
2
2
# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
3
3
#
4
4
# ------------
47
47
import copy
48
48
import inspect
49
49
import os
50
- import sys
50
+ import sys , traceback
51
51
52
52
tmp_callerframerecord = inspect .stack ()[0 ] # 0 represents this line # 1 represents line at caller
53
53
tmp_info = inspect .getframeinfo (tmp_callerframerecord [0 ])
54
54
tmp_scriptdir = os .path .dirname (tmp_info [0 ])
55
55
sys .path .append (tmp_scriptdir )
56
56
57
+ import utils
58
+
57
59
env = None
58
60
ISTIO_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' ]
59
61
@@ -157,31 +159,49 @@ def readCredentialsSecret(self, key):
157
159
158
160
159
161
def 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 :
162
167
initOfflineWlstEnv (model )
163
168
164
- initSecretManager (env )
169
+ initSecretManager (env )
165
170
166
- if model and 'resources' in model :
167
- customizeCustomFileStores (model )
171
+ if model and 'resources' in model :
172
+ customizeCustomFileStores (model )
168
173
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 )
173
178
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 ] = {}
179
194
180
- if 'Server' in topology :
181
195
customizeServers (model )
182
196
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
+
185
205
186
206
def initOfflineWlstEnv (model ):
187
207
global env
@@ -450,11 +470,8 @@ def customizeServerIstioNetworkAccessPoint(server, listen_address):
450
470
istio_readiness_port = env .getEnvOrDef ("ISTIO_READINESS_PORT" , None )
451
471
if istio_readiness_port is None :
452
472
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.
455
473
456
- if admin_server_port is None :
457
- admin_server_port = 7001
474
+ admin_server_port = _get_default_listen_port (server )
458
475
459
476
# readiness probe
460
477
_writeIstioNAP (name = 'http-probe' , server = server , listen_address = listen_address ,
@@ -585,10 +602,8 @@ def customizeManagedIstioNetworkAccessPoint(template, listen_address):
585
602
istio_readiness_port = env .getEnvOrDef ("ISTIO_READINESS_PORT" , None )
586
603
if istio_readiness_port is None :
587
604
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 )
592
607
593
608
# readiness probe
594
609
_writeIstioNAP (name = 'http-probe' , server = template , listen_address = listen_address ,
@@ -651,12 +666,8 @@ def addAdminChannelPortForwardNetworkAccessPoints(server):
651
666
if (admin_channel_port_forwarding_enabled == 'false' ) or \
652
667
(istio_enabled == 'true' and istioVersionRequiresLocalHostBindings ()):
653
668
return
654
-
655
- admin_server_port = server ['ListenPort' ]
656
669
# 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 )
660
671
661
672
model = env .getModel ()
662
673
@@ -837,5 +848,10 @@ def getSecretManager():
837
848
def istioVersionRequiresLocalHostBindings ():
838
849
if env .getEnvOrDef ("ISTIO_USE_LOCALHOST_BINDINGS" , "true" ) == 'true' :
839
850
return True
851
+ return False
840
852
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