|
|
|
Cache
Action : was.cache (Category : was, Name : cache, By : kikonf)
Complete Name : was.cache.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 cache plugin : Creates a new ObjectCacheInstance The following shows the main Source Code File for the Action : was.cache 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 Cache(wasAction): def extract(self, scope_attrs=None, name=None, prefix=None, **keywords): self_funct='extract' self.verbose(scope_attrs, name=name, prefix=prefix) scope_id, scope_attrs, scope=self.getScope(scope_attrs=scope_attrs, indent=self.getIndent()) indent=self.getIndent() + 3*' ' verbose('ObjectCacheInstance listing.', level=self.getVerbose(), ifLevel=4, indent=indent, logFile=self.getLogFile()) cs=getStartByNameAsDict(split(AdminConfig.list('ObjectCacheInstance', scope_id))) verbose('ObjectCacheInstances listed.', level=self.getVerbose(), ifLevel=3, indent=indent, logFile=self.getLogFile()) for cname in cs.keys(): if prefix!=None and name!=None and cname==prefix + '_' + name \ or prefix==None and name!=None and cname==name \ or prefix!=None and name==None and cname.startswith(prefix) \ or prefix==None and name==None: verbose('Found matching ObjectCacheInstance:' + cname + '.', level=self.getVerbose(), ifLevel=3, indent=indent, logFile=self.getLogFile()) cache_node=self.newTop() #-- because in extract mode, each call returns a new blank top node. caches=getShowAsDict(AdminConfig.show(cs[cname])) _name=cname if prefix!=None:_name=cname.split(prefix + '_')[1] desc=None if caches.has_key('description') and caches['description']!=None:desc=caches['description'][1:-1] if desc==DESIGN_NOTICE:desc=None cache_node.setAttrs(name=_name, jndi_name=caches['jndiName'], size=caches['cacheSize'], desc=desc, prefix=prefix) mkNodeScope(cache_node, scope_attrs, isUnique=True) #-- creates a scope node. def remove(self, no_name, no_name_no_prefix): cache_node = self.getTop() cache_attrs = cache_node.getAttrs() scope_id, scope_attrs, scope=self.getScope(parent_node=cache_node, indent=self.getIndent()) #-- Retreives scope # no_name/no_name_no_prefix prefix=cache_attrs.prefix name=cache_attrs.name if no_name or no_name_no_prefix:name=None if no_name_no_prefix:prefix=None self.verbose(scope_attrs, name=name, prefix=prefix) indent=self.getIndent() + 3*' ' self.rmvCache(name=name, prefix=prefix, indent=indent) def inject(self): self_funct='inject' cache_node = self.getTop() cache_attrs = cache_node.getAttrs() scope_id, scope_attrs, scope=self.getScope(parent_node=cache_node, indent=self.getIndent()) #-- Retreives scope self.verbose(scope_attrs, name=cache_attrs.name, prefix=cache_attrs.prefix) indent=self.getIndent() + 3*' ' #-- remove first self.rmvCache(name=cache_attrs.name, prefix=cache_attrs.prefix, indent=indent) #-- name if cache_attrs.prefix==None:name=cache_attrs.name else:name=cache_attrs.prefix + '_' + cache_attrs.name # -- desc if cache_attrs.desc==None:desc=DESIGN_NOTICE else:desc=cache_attrs.desc cmdvalues=[] cmdvalues.append(['name', name]) cmdvalues.append(['jndiName', cache_attrs.jndi_name]) cmdvalues.append(['cacheSize', cache_attrs.size]) cmdvalues.append(['defaultPriority', 1]) cmdvalues.append(['enableDiskOffload', 'false']) cmdvalues.append(['flushToDiskOnStop', 'false']) cmdvalues.append(['useListenerContext', 'false']) cmdvalues.append(['disableDependencyId', 'false']) cmdvalues.append(['description', desc]) # Creates verbose('ObjectCacheInstance retreiving.', level=self.getVerbose(), ifLevel=4, indent=indent, logFile=self.getLogFile()) wpv=AdminConfig.getid(scope.getCP() +'/CacheProvider:/') AdminConfig.create('ObjectCacheInstance', wpv, cmdvalues) verbose('ObjectCacheInstance:' + name + ' created.', level=self.getVerbose(), ifLevel=3, indent=indent, logFile=self.getLogFile()) def rmvCache(self, name=None, prefix=None, indent=None): scope_id, scope_attrs, scope=self.getScope() verbose('ObjectCacheInstance listing.', level=self.getVerbose(), ifLevel=4, indent=indent, logFile=self.getLogFile()) cs=getStartByNameAsDict(split(AdminConfig.list('ObjectCacheInstance', scope_id))) verbose('ObjectCacheInstances listed.', level=self.getVerbose(), ifLevel=3, indent=indent, logFile=self.getLogFile()) for cname in cs.keys(): if cname=='':continue if prefix!=None and cname.startswith(prefix) \ or prefix==None and name!=None and name==cname \ or prefix==None and name==None: verbose('ObjectCacheInstance:' + cname + ' removing.', level=self.getVerbose(), ifLevel=4, indent=indent, logFile=self.getLogFile()) AdminConfig.remove(cs[cname]) verbose('ObjectCacheInstance:' + cname + ' removed.', level=self.getVerbose(), ifLevel=3, indent=indent, logFile=self.getLogFile()) def verbose(self, scope_attrs, name=None, prefix=None): scope=str(scope_attrs).replace("'", '')[1:-1] if name!=None and prefix!=None:verbose('ObjectCacheInstance:' + name +', under prefix:' + prefix + ', at scope:' + scope + '.', level=self.getVerbose(), ifLevel=2, indent=self.getIndent(), logFile=self.getLogFile()) elif name!=None and prefix==None:verbose('ObjectCacheInstance:' + name + ', at scope:' + scope + '.', level=self.getVerbose(), ifLevel=2, indent=self.getIndent(), logFile=self.getLogFile()) elif prefix!=None:verbose('ObjectCacheInstances under prefix:' + prefix + ', at scope:' + scope + '.', level=self.getVerbose(), ifLevel=2, indent=self.getIndent(), logFile=self.getLogFile()) else:verbose('ObjectCacheInstances at scope:' + scope + '.', level=self.getVerbose(), ifLevel=2, indent=self.getIndent(), logFile=self.getLogFile())
Trademarks :
|