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







Crtserver

print

Action : was.crtserver   (Category : was, Name : crtserver, By : kikonf)
Complete Name : was.crtserver.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 crtserver plugin : Creates a new Server

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

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 Crtserver(wasAction):

    def extract(self, scope_attrs=None, **keywords):
        self_funct='extract'
        dct={'server': None, 'node': None, 'cluster': None}
        dct.update(scope_attrs)
        scope_attrs=dct
        
        server, node, cluster = scope_attrs['server'], scope_attrs['node'], scope_attrs['cluster']
        self.verbose(scope_attrs)
        
        if server!=None and node!=None and cluster!=None:self.extAllKind({'server':server, 'node':node, 'cluster':cluster}, **keywords)
        elif cluster!=None and server==None and node==None:
            cl=AdminConfig.getid('/ServerCluster:' + cluster)
            if cl=='':raise xception.kikonfActionParameterException(self, self_funct, 'Scope: Unable to retreive cluster:' + cluster + '. Your scope:' + str({'server':server, 'node':node, 'cluster':cluster}) + '.')
            mbrs=split(AdminConfig.showAttribute(cl, 'members'))
            for mbr in mbrs:
                members=getShowAsDict( AdminConfig.show(mbr) )
                server=members['memberName']
                node=members['nodeName']
                #id=members['uniqueId']
                weight=members['weight']
                self.extAllKind({'server':server, 'node':node, 'cluster':cluster}, weight=weight, **keywords)
                
        elif server!=None and cluster==None:
            if node!=None:node='/Node:' + node
            else:node=''
                
            srvs=split(AdminConfig.getid(node + '/Server:' + server))
            if srvs=='':raise xception.kikonfActionParameterException(self, self_funct, 'Scope: Unable to retreive server:' + server + '. Your scope:' + str({'server':server, 'node':node, 'cluster':cluster}) + '.')
            for srv in srvs:
                node=srv.split('/nodes/')[1].split('/servers')[0]

                #--check if cluster:
                cluster=AdminConfig.showAttribute(srv,'clusterName')
                if cluster=='':cluster=None
                # make it
                self.extAllKind({'server':server, 'node':node, 'cluster':cluster}, **keywords)

        else:raise xception.kikonfActionParameterException(self, self_funct, 'Scope: Unvalide scope:' + '. Your scope:' + str({'server':server, 'node':node, 'cluster':cluster}) + '. At least server or cluster must be guiven !')
        
    def extAllKind(self, scope_attrs, weight=None, **keywords):
        if scope_attrs['node']==None or scope_attrs['server']==None:raise xception.kikonfActionParameterException(self, self_funct, 'Scope: Attributes "node" and "server" are required !')        
        crtserver_node=self.newTop()
        indent=self.getIndent() + 3*' '
        
        verbose('Server:' + scope_attrs['server'] + ' retreived.', level=self.getVerbose(), ifLevel=4, indent=indent, logFile=self.getLogFile())        
        if scope_attrs['cluster']!=None:
            if weight!=None:
                cm, node, c=getClusterMember(cluster=scope_attrs['cluster'], node=scope_attrs['node'], member=scope_attrs['server'], asServer=False, asMember=True, doRaise=True)
                #id=AdminConfig.showAttribute(cm, 'uniqueId')
                weight=AdminConfig.showAttribute(cm, 'weight')
            crtserver_node.setAttrs(weight=weight)

        mkNodeScope(crtserver_node, scope_attrs, isUnique=True)
        
    def remove(self, no_name, no_name_no_prefix):
        crtserver_node = self.getTop()        
        crtserver_attrs = crtserver_node.getAttrs()
        if not crtserver_node.hasNode('scope'):raise xception.kikonfActionSystemException(self, self_funct, 'Node scope is required !')
        scope_attrs=crtserver_node.getNode('scope')[0].getAttrs()
        self.verbose({'node': scope_attrs.node, 'server': scope_attrs.server, 'cluster': scope_attrs.cluster})
        indent=self.getIndent() + 3*' '
        
        self.rmvSrv(scope_attrs, indent=indent)
        
    def inject(self):
        self_funct='inject'
        crtserver_node = self.getTop()        
        crtserver_attrs = crtserver_node.getAttrs()        
        if not crtserver_node.hasNode('scope'):raise xception.kikonfActionSystemException(self, self_funct, 'Node scope is required !') 
        scope_attrs=crtserver_node.getNode('scope')[0].getAttrs()
        if scope_attrs.node==None or scope_attrs.server==None:raise xception.kikonfActionSystemException(self, self_funct, 'Scope: server and node required. Your scope:' + str({'node':scope_attrs.node, 'server': scope_attrs.server}))
        self.verbose({'node': scope_attrs.node, 'server': scope_attrs.server, 'cluster': scope_attrs.cluster})
        indent=self.getIndent() + 3*' '
        
        #-- remove first
        self.rmvSrv(scope_attrs, indent=indent)
        
        if scope_attrs.cluster!=None:
            first=False
            verbose('ServerCluster retreiving.', level=self.getVerbose(), ifLevel=4, indent=indent, logFile=self.getLogFile())
            cl=AdminConfig.getid( '/Cell:' + self.getCell() + '/ServerCluster:' + scope_attrs.cluster)
            
            if cl=='':raise xception.kikonfActionSystemException(self, self_funct, 'Cluster:' + scope_attrs.cluster + ' not found !')
            node_group=AdminConfig.showAttribute(cl, 'nodeGroupName')
            if len(split(AdminConfig.showAttribute(cl, 'members')))==0:first=True
            
            cmdvalues=[]
            cmdvalues.append(['clusterName', scope_attrs.cluster])
            mbrs=[]
            cmdvalues.append(['memberConfig', mbrs])
            mbrs.append(['memberName', scope_attrs.server])
            mbrs.append(['memberNode', scope_attrs.node])
            mbrs.append(['memberWeight', crtserver_attrs.weight])
            
            mbrs.append(['memberWeight', crtserver_attrs.weight])

            if first:
                fms=[]
                cmdvalues.append(['firstMember', fms])
                fms.append(['templateName', crtserver_attrs.template])
                fms.append(['nodeGroup', node_group])
                
            verbose('ClusterMember:' + scope_attrs.server + ' creating.', level=self.getVerbose(), ifLevel=4, indent=indent, logFile=self.getLogFile())
            cmdvalues=trsToAdminTask(cmdvalues)
            AdminTask.createClusterMember(cmdvalues)
            verbose('ClusterMember:' + scope_attrs.server + ' created.', level=self.getVerbose(), ifLevel=3, indent=indent, logFile=self.getLogFile())
        else:
            cmdvalues=[]
            cmdvalues.append(['name', scope_attrs.server])
            cmdvalues.append(['templateName', crtserver_attrs.template])            
            
            verbose('ApplicationServer:' + scope_attrs.server + ' creating.', level=self.getVerbose(), ifLevel=4, indent=indent, logFile=self.getLogFile())
            cmdvalues=trsToAdminTask(cmdvalues)
            AdminTask.createApplicationServer(scope_attrs.node, cmdvalues)
            verbose('ApplicationServer:' + scope_attrs.server + ' created.', level=self.getVerbose(), ifLevel=3, indent=indent, logFile=self.getLogFile())

    def rmvSrv(self, scope_attrs, indent=None):
        
        if scope_attrs.cluster!=None:
            verbose('ClusterMember listing.', level=self.getVerbose(), ifLevel=4, indent=indent, logFile=self.getLogFile())            
            srv, node, c=getClusterMember(cluster=scope_attrs.cluster, node=scope_attrs.node, member=scope_attrs.server)
            if srv=='':return
            
            verbose('ClusterMember removing.', level=self.getVerbose(), ifLevel=4, indent=indent, logFile=self.getLogFile())
            AdminConfig.remove(srv)
            verbose('ClusterMember:' + scope_attrs.server + ' removed.', level=self.getVerbose(), ifLevel=3, indent=indent, logFile=self.getLogFile())
        else:
            verbose('ApplicationServer retreiving.', level=self.getVerbose(), ifLevel=4, indent=indent, logFile=self.getLogFile())
            sv=AdminConfig.getid('/Cell:' + self.getCell() + '/Node:' + scope_attrs.node + '/Server:' + scope_attrs.server + '/')
            if sv=='':return
            
            verbose('ApplicationServer removing.', level=self.getVerbose(), ifLevel=4, indent=indent, logFile=self.getLogFile())
            AdminConfig.remove(sv)
            verbose('ApplicationServer:' + scope_attrs.server + ' removed.', level=self.getVerbose(), ifLevel=3, indent=indent, logFile=self.getLogFile())
            
    def verbose(self, scope_attrs):  
        verbose('Application Server at scope: node:' + str(scope_attrs['node']) + ' server:' + str(scope_attrs['server']) + ' cluster:' + str(scope_attrs['cluster']) + '.', level=self.getVerbose(), ifLevel=2, indent=self.getIndent())
							
(Source: <KIKONF_INSTALLATION_DIR>/plugins/actions/was/crtserver/by/kikonf/crtserver.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