cle_clock
Home > wikikonf >  wls/actions/by kikonf > chgports







Chgports

print

Action : wls.chgports   (Category : wls, Name : chgports, By : kikonf)
Complete Name : wls.chgports.by.kikonf
Version : 4.0        License : Modified BSD License

Purpose of the wls category :
Easy to customize. This category use in background the wlst command in jython mode, to drive WebLogic Server configuration.
You can use it to manage the whole WebLogic architecture.

Purpose of this chgports plugin : Changes a JVM ports

The following shows the main Source Code File for the Action : wls.chgports

Toggle lines
##  Copyright (c) 2008, Patrick Germain Placidoux
##  All rights reserved.
##
##  This file is part of Kikonf Public Software.
##
##  Kikonf Public Software is released under the modified BSD License,
##  which should accompany it or any part of it in the file "COPYING".
##  If you do not have this file you can access the license 
##  through the WWW at http://www.kikonf.org/license/bsd/license.txt.
## 
##  Home: http://www.kikonf.org
##  Contact: kikonf@gmx.com



from actions.wls.tools import *



class Chgports(wlsAction):

    def extract(self, scope_attrs=None, **keywords):        
        self_funct='extract'
        self.verbose(scope_attrs)
        scope_id, scope_attrs, scope=self.getScope(scope_attrs=scope_attrs, indent=self.getIndent())
        indent=self.getIndent() + 3*' '

        chgports_node=self.newTop() #-- because in extract mode, each call returns a new blank top node.
        
        cmo=cd('/Servers/' + scope_attrs['server'])
        verbose('Server:'  + scope_attrs['server'] + ' retreived.', level=self.getVerbose(), ifLevel=4, indent=indent, logFile=self.getLogFile())
        if cmo.isIIOPEnabled():chgports_node.setAttrs(enable_iiop='true')
        
        mkNodeScope(chgports_node, scope_attrs, isUnique=True) #-- creates a scope node.
        
        self.extPorts(scope_attrs['server'], chgports_node, level=self.getVerbose(), indent=indent, logFile=self.getLogFile())        
        verbose('Server:'  + scope_attrs['server'] + ' modified.', level=self.getVerbose(), ifLevel=3, indent=indent, logFile=self.getLogFile())

    def inject(self):
        self_funct='inject'
        chgports_node = self.getTop()                                           #-- Grabs top node
        chgports_attrs = chgports_node.getAttrs()
        scope_id, scope_attrs, scope=self.getScope(parent_node=chgports_node, indent=self.getIndent()) #-- Retreives scope
        self.verbose(scope_attrs) 
        indent=self.getIndent() + 3*' '

        if chgports_attrs.enable_iiop=='true':
            cmo=cd('/Servers/' + scope_attrs['server'])
            cmo.setIIOPEnabled(True)
            
        starting_port=None
        if chgports_attrs.starting_port!=None:starting_port=int(chgports_attrs.starting_port)
        
        port_nodes=chgports_node.getNode('port')
        for port_node in port_nodes:
            port_attrs=port_node.getdAttrs()
            if starting_port!=None:port_attrs['port']=starting_port
            setPorts(scope_attrs['server'], port_attrs, level=self.getVerbose(), indent=indent, logFile=self.getLogFile())
            verbose('Protocol/Channel:' + port_attrs['protocol'] + '/' + port_attrs['channel'] + ' set to:' + str(port_attrs['port']) + '.', level=self.getVerbose(), ifLevel=4, indent=indent, logFile=self.getLogFile())
            if starting_port!=None:starting_port+=1
            
        verbose('Server:'  + scope_attrs['server'] + ' modified.', level=self.getVerbose(), ifLevel=3, indent=indent, logFile=self.getLogFile())
            
    def extPorts(self, server, parent_node, level=None, indent=None, logFile=None):
        attrs={}
        
        cmo=cd('/Servers/' + server)
        # - gets channel
        aps=cmo.getNetworkAccessPoints()
        for ap in aps:
            attrs['channel']=ap.getName()
            cmo=cd('/Servers/' + server + '/NetworkAccessPoints/' + attrs['channel'])
            
            # - gets protocol
            attrs['protocol']=cmo.getProtocol()                        
            # - gets host
            attrs['host']=cmo.getListenAddress()            
            # - gets port
            attrs['port']=cmo.getListenPort()            
            # - gets enable
            if cmo.isEnabled():attrs['enable']='true'
            # - gets enable_http
            if cmo.isHttpEnabledForThisProtocol():attrs['enable_http']='true'           
            # - gets enable_tuneling
            if cmo.isTunnelingEnabled():attrs['enable_tuneling']='true'            
            # - gets enable_ssl
            if cmo.isTwoWaySSLEnabled():attrs['enable_ssl']='true'            
            # - gets ssl_client_auth
            if cmo.isClientCertificateEnforced():attrs['ssl_client_auth']='true'            
            
            parent_node.newNode('ports', **attrs)

    def verbose(self, scope_attrs):
        scope=str(scope_attrs).replace("'", '')[1:-1]
        
        verbose('JVM Ports at scope:' + scope + '.', level=self.getVerbose(), ifLevel=2, indent=self.getIndent())
        
def setPorts(server, attrs, level=None, indent=None, logFile=None):
        channel=attrs['channel']
        if channel==None:channel=attrs['channel']='channel_' + attrs['protocol']
        
        # - sets channel
        try:
            cmo=cd('/Servers/' + server + '/NetworkAccessPoints/' + channel)
        except:
            cmo=cd('/Servers/' + server)
            cmo.createNetworkAccessPoint(channel)
            cmo=cd('/Servers/' + server + '/NetworkAccessPoints/' + channel)
        
        # - sets protocol
        cmo.setProtocol(attrs['protocol'])
        # - sets host
        cmo.setListenAddress(attrs['host'])
        # - sets port
        cmo.setListenPort(attrs['port'])
        # - sets enable
        if attrs['enable']=='true':cmo.setEnabled(True)
        else:cmo.setEnabled(False)
        # - sets enable_http
        if attrs['enable_http']=='true':cmo.setHttpEnabledForThisProtocol(True)
        else:cmo.setHttpEnabledForThisProtocol(False)
        # - sets enable_ssl
        if attrs['enable_ssl']=='true':
            cmo.setTwoWaySSLEnabled(True)
            cmo.setEnabled(True)
        else:
            cmo.setTwoWaySSLEnabled(False)
            cmo.setEnabled(False)
        # - sets enable_tuneling
        if attrs['enable_tuneling']=='true':
            if not (attrs['enable_http'], attrs['enable_ssl'])==('true', 'true'):
                verbose('enable_tuneling is ignored because enable_http and enable_ssl are not set together !', level=level, ifLevel=3, indent=indent + 3*' ', logFile=logFile)
            else:cmo.setTunnelingEnabled(True)
        else:cmo.setTunnelingEnabled(False)
        # - sets ssl_client_auth
        if attrs['ssl_client_auth']=='true':cmo.setClientCertificateEnforced(True)
        else:cmo.setClientCertificateEnforced(False)
							
(Source: <KIKONF_INSTALLATION_DIR>/plugins/actions/wls/chgports/by/kikonf/chgports.py)


  • Line 1 to 3 say something , say something , say something
  • Line 10 to 17 say something , say something , say something , say something , say something
  • Line 20 to 25 say something



Trademarks :
  • "oracle", "Weblogic", "Weblogic Server", "Java" and "JVM" are a registred trademarks of Oracle and/or its affiliates.
  • Other names may be trademarks of their respective owners.

Copyright © 2011 - Patrick Placidoux, Hélène Malamoud