cle_clock
Home > wikikonf >  was/actions/by kikonf > envars







Envars

print

Action : was.envars   (Category : was, Name : envars, By : kikonf)
Complete Name : was.envars.by.kikonf
Version : 5.0        License : Modified BSD License

Purpose of the was category :
Easy to customize. This category use in background the wsadmin command in jython mode (through AdminConfig, AdminControl and AdminTask), to drive WebSphere Application Server configuration.
You can use it to manage the whole WebSphere architecture.

Purpose of this envars plugin : Creates one or more JVM environment(s) variable(s) into the target Server

The following shows the main Source Code File for the Action : was.envars

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.was.tools import *



class Envars(wasAction):
    
    def extract(self, scope_attrs=None, prefix=None, **keywords):
        self_funct='extract'
        self.verbose(scope_attrs, prefix=prefix)
        scope_id, scope_attrs, scope=self.getScope(scope_attrs=scope_attrs, indent=self.getIndent())
        envars_node=self.newTop()  #-- because in extract mode, each call returns a new blank top node.
        indent=self.getIndent() + 3*' '
        
        envars_node.setAttrs(prefix=prefix)
        
        mkNodeScope(envars_node, scope_attrs, isUnique=True) #-- creates a scope node.

        verbose('JavaProcessDef listing.', level=self.getVerbose(), ifLevel=4, indent=indent, logFile=self.getLogFile())
        pjd=AdminConfig.list('JavaProcessDef', scope_id)
        verbose('JavaProcessDef listed.', level=self.getVerbose(), ifLevel=3, indent=indent, logFile=self.getLogFile())
        vs=getStartByNameAsDict(split(AdminConfig.showAttribute(pjd, 'environment')))
        
        if len(vs)==0:return
              
        for vname in vs.keys():
            if vname=='':continue
            
            if prefix!=None and vname.startswith(prefix) \
            or prefix==None:
            
                verbose('Environnment Variable:' + vname + ' listed.', level=self.getVerbose(), ifLevel=3, indent=indent, logFile=self.getLogFile())
            
                attrs={}
                vars=getShowAsDict(AdminConfig.show(vs[vname]))
                
                _name=vname
                if prefix!=None:_name=vname.split(prefix + '_')[1]
                
                if vars.has_key('description') and vars['description']!=None:desc=vars['description'][1:-1]
                else:desc=None
                if desc==DESIGN_NOTICE:desc=None
                
                envars_node.newNode('var', name=_name, value=vars['value'], required=vars['required'], desc=desc)

    def remove(self, no_name, no_name_no_prefix):
        envars_node = self.getTop()        
        envars_attrs = envars_node.getAttrs()
        scope_id, scope_attrs, scope=self.getScope(parent_node=envars_node, indent=self.getIndent()) #-- Retreives scope
        self.verbose(scope_attrs, prefix=envars_attrs.prefix)
        indent=self.getIndent() + 3*' '

        # no_name/no_name_no_prefix
        prefix=envars_attrs.prefix        
        if no_name_no_prefix:prefix=None
        if no_name_no_prefix or prefix!=None:self.rmvVar(prefix=prefix, indent=indent)
        else:
            if envars_node.hasNode('var'):            
                var_nodes=envars_node.getNode('var')
                
                for var_node in var_nodes:
                    var_attrs = var_node.getAttrs()
                    self.rmvVar(name=var_attrs.name, indent=indent)
            
    def inject(self):
        self_funct='inject'
        envars_node = self.getTop()        
        envars_attrs = envars_node.getAttrs()
        scope_id, scope_attrs, scope=self.getScope(parent_node=envars_node, indent=self.getIndent()) #-- Retreives scope
        self.verbose(scope_attrs, prefix=envars_attrs.prefix)
        indent=self.getIndent() + 3*' '
        
        if envars_attrs.prefix!=None:self.rmvVar(prefix=envars_attrs.prefix, indent=indent)

        if envars_node.hasNode('var'):            
            pjd=AdminConfig.list('JavaProcessDef', scope_id)
            var_nodes=envars_node.getNode('var')
            
            cmdvalues=[]
            for var_node in var_nodes:
                var_attrs = var_node.getAttrs()
                
                #-- name
                if envars_attrs.prefix==None:name=var_attrs.name
                else:name=envars_attrs.prefix + '_' + var_attrs.name
                indent=self.getIndent() + 3*' '                
                if envars_attrs.prefix==None:self.rmvVar(name=var_attrs.name, indent=indent)

                vars=[]
                vars.append(['name', name])                       
                vars.append(['value', var_attrs.value])
                vars.append(['required', var_attrs.required])   
                
                if var_attrs.desc!=None:vars.append(['description', var_attrs.desc]) 
                else:vars.append(['description', DESIGN_NOTICE]) 
                
                cmdvalues.append(vars)

            verbose('JavaProcessDef listing.', level=self.getVerbose(), ifLevel=4, indent=indent, logFile=self.getLogFile())
            verbose('Environnment Variables modifying.', level=self.getVerbose(), ifLevel=4, indent=indent, logFile=self.getLogFile())
            AdminConfig.modify(pjd, 'environment', cmdvalues)
            verbose('Environnment Variables modified.', level=self.getVerbose(), ifLevel=3, indent=indent, logFile=self.getLogFile())

    def rmvVar(self, name=None, prefix=None, indent=None):
        scope_id, scope_attrs, scope=self.getScope()
        
        verbose('JavaProcessDef listing.', level=self.getVerbose(), ifLevel=4, indent=indent, logFile=self.getLogFile())
        pjd=AdminConfig.list('JavaProcessDef', scope_id)
        vs=getStartByNameAsDict(split(AdminConfig.showAttribute(pjd, 'environment')))
        
        for vname in vs.keys():   
            if prefix!=None and vname.startswith(prefix) \
            or prefix==None and name!=None and name==vname \
            or prefix==None and name==None:
                verbose('Environnment Variable:' + vname + ' removing.', level=self.getVerbose(), ifLevel=4, indent=indent, logFile=self.getLogFile())
                AdminConfig.remove(vs[vname])
                verbose('Environnment Variable:' + vname + ' removed.', level=self.getVerbose(), ifLevel=3, indent=indent, logFile=self.getLogFile())
                
    def verbose(self, scope_attrs, prefix=None):
        scope=str(scope_attrs).replace("'", '')[1:-1]
        
        if prefix!=None:verbose('Environment Variables under prefix:' + prefix + ', at scope:' + scope + '.', level=self.getVerbose(), ifLevel=2, indent=self.getIndent())
        else:verbose('Environment Variables at scope:' + scope + '.', level=self.getVerbose(), ifLevel=2, indent=self.getIndent())
							
(Source: <KIKONF_INSTALLATION_DIR>/plugins/actions/was/envars/by/kikonf/envars.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 :
  • "IBM", "WebSphere", "WebSphere Aplication Server", "WAS" are registred trademarks of International Business Machines Corporation.
  • "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