Skip to content

Network ports resolution between operator and wls runtime #2256

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 28 commits into from
Mar 16, 2021
Merged
Changes from 1 commit
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
e2646a9
Provide a get around for wlst returning incorrect listening port/ssl …
jshum2479 Feb 26, 2021
10db0ad
Error out if secure mode is enabled but no ssl nap defined.
jshum2479 Mar 1, 2021
4ee7b72
cor
jshum2479 Mar 1, 2021
aaef308
fix getRealListenPort assignment issue
jshum2479 Mar 1, 2021
2acb008
Fixed comparision
jshum2479 Mar 1, 2021
c7fe574
missed some fix
jshum2479 Mar 1, 2021
4c7a2b4
Fix logic error when getting real listen ports
jshum2479 Mar 1, 2021
672e570
Fixed logic error when getting real listen port
jshum2479 Mar 1, 2021
c638caf
when nap public port is not set, just set it to same as listen port
jshum2479 Mar 2, 2021
331964e
refactor and restore nap listen port 0 check
jshum2479 Mar 8, 2021
d9cbe01
fix getRealListenPort bug
jshum2479 Mar 8, 2021
9d69e48
minor comment
jshum2479 Mar 8, 2021
8417e71
remove secure mode error out. There are ongoing discussion and the f…
jshum2479 Mar 9, 2021
9efbaad
refactoring
jshum2479 Mar 10, 2021
7755935
move helper outside of the class
jshum2479 Mar 10, 2021
46e66c0
remove public port requirements
jshum2479 Mar 10, 2021
f3c0636
fix script error
jshum2479 Mar 11, 2021
cba2477
fixed typo
jshum2479 Mar 11, 2021
e14a19d
fixes for pr comments
jshum2479 Mar 11, 2021
843daad
fix default value set but wlst offline returns otherwise
jshum2479 Mar 11, 2021
e2925b8
cleanup imports
jshum2479 Mar 11, 2021
f0c51bc
missed import
jshum2479 Mar 12, 2021
ee5da53
tempory
jshum2479 Mar 12, 2021
005ecf9
update comment and validation logic
jshum2479 Mar 12, 2021
5066b5c
fix text wordings
jshum2479 Mar 12, 2021
712434a
fixed script error
jshum2479 Mar 12, 2021
0a2f9aa
fixed string comparison
jshum2479 Mar 12, 2021
1607cb7
remove comments and obsolete codes
jshum2479 Mar 16, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
tempory
  • Loading branch information
jshum2479 committed Mar 12, 2021
commit ee5da533b64c113d3d12de5b9094b631d5d2e215
41 changes: 38 additions & 3 deletions operator/src/main/resources/scripts/introspectDomain.py
Original file line number Diff line number Diff line change
Expand Up @@ -463,12 +463,13 @@ def validateNonDynamicClusterServersHaveSameListenPort(self, cluster):
if cluster is self.env.getClusterOrNone(server):
listenPort = getRealListenPort(server)
listenPortEnabled = isListenPortEnabledForServer(server, self.env.getDomain())
sslListenPort = None
sslListenPortEnabled = None
sslListenPortEnabled = False
ssl_listen_port = getSSLPortIfEnabled(server, self.env.getDomain(), is_server_template=False)
if ssl_listen_port is not None:
sslListenPort = ssl_listen_port
sslListenPortEnabled = True
else:
sslListenPort = getSSLPortIfDisabledButSet(server, self.env.getDomain(), is_server_template=False)

adminPort = getAdministrationPort(server, self.env.getDomain())
adminPortEnabled = isAdministrationPortEnabledForServer(server, self.env.getDomain())
Expand All @@ -485,7 +486,7 @@ def validateNonDynamicClusterServersHaveSameListenPort(self, cluster):
self.addError("The WebLogic configured cluster " + self.name(cluster) + "'s server " + self.name(firstServer) + "'s listen port is " + str(firstListenPort) + " but its server " + self.name(server) + "'s listen port is " + str(listenPort) + ". All ports for the same channel in a cluster must be the same.")
if listenPortEnabled != firstListenPortEnabled:
self.addError("The WebLogic configured cluster " + self.name(cluster) + "'s server " + self.name(firstServer) + " has listen port enabled: " + self.booleanToString(firstListenPortEnabled) + " but its server " + self.name(server) + "'s listen port enabled: " + self.booleanToString(listenPortEnabled) + ". Channels in a cluster must be either all enabled or disabled.")
if sslListenPort != firstSslListenPort:
if sslListenPort is not None and sslListenPort != firstSslListenPort:
self.addError("The WebLogic configured cluster " + self.name(cluster) + "'s server " + self.name(firstServer) + "'s ssl listen port is " + str(firstSslListenPort) + " but its server " + self.name(server) + "'s ssl listen port is " + str(sslListenPort) + ". All ports for the same channel in a cluster must be the same.")
if sslListenPortEnabled != firstSslListenPortEnabled:
self.addError("The WebLogic configured cluster " + self.name(cluster) + "'s server " + self.name(firstServer) + " has ssl listen port enabled: " + self.booleanToString(firstSslListenPortEnabled) + " but its server " + self.name(server) + "'s ssl listen port enabled: " + self.booleanToString(sslListenPortEnabled) + ". Channels in a cluster must be either all enabled or disabled.")
Expand Down Expand Up @@ -1786,6 +1787,40 @@ def isSSLListenPortEnabled(ssl, domain):
enabled = True
return enabled

def getSSLPortIfDisabledButSet(server, domain, is_server_template=True):
"""
return the SSL listen port if enabled -
If SSL is enabled:
If is_server_template is False then just return the SSL listen port from server mbean.
If is_server_template is True then return the actual SSL listen port that it listens on. If the server

If SSL is not enabled but domain has SecureMode enabled return 7002.
:param server: server or server template
:param domain: domain mbean
:return: SSL listen port
"""
ssl = None
ssl_listen_port = None
try:
# this can throw if SSL mbean not there
ssl = server.getSSL()
# this can throw if SSL mbean is there but enabled is false
ssl.getListenPort()
# this can throw if SSL mbean is there but enabled is false ??
ssl.isEnabled()
except:
pass

# Can only be called if enabled
if ssl is not None and ssl.isEnabled():
if not is_server_template:
ssl_listen_port = ssl.getListenPort()
else:
ssl_listen_port = getRealSSLListenPort(server, ssl.getListenPort())
elif ssl is None and isSecureModeEnabledForDomain(domain):
ssl_listen_port = "7002"
return ssl_listen_port

def getSSLPortIfEnabled(server, domain, is_server_template=True):
"""
return the SSL listen port if enabled -
Expand Down