|
|
|
Crtserver
Action : wls.crtserver (Category : wls, Name : crtserver, By : kikonf)
Complete Name : wls.crtserver.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 crtserver plugin : Creates a new Server The following shows the main Source Code File for the Action : wls.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.wls.tools import * class Crtserver(wlsAction): def extract(self, scope_attrs=None, **keywords): self_funct='extract' dct={'server': None, 'cluster': None} dct.update(scope_attrs) scope_attrs=dct server, cluster = scope_attrs['server'], scope_attrs['cluster'] self.verbose(scope_attrs) indent=self.getIndent() + 3*' ' if server!=None: cmo=cd('/') srv=cmo.lookupServer(server) if srv==None:raise xception.kikonfActionParameterException(self, self_funct, 'Scope: Unable to retreive server:' + server + '. Your scope:' + str({'server':server, 'cluster':cluster}) + '.') if cluster!=None: cl=srv.getCluster() if cl==None or cl.getName()!=cluster:raise xception.kikonfActionParameterException(self, self_funct, 'Scope: Unable to retreive cluster:' + cluster + '. Your scope:' + str({'server':server, 'cluster':cluster}) + '.') cluster, attrs=extServer(server, level=self.getVerbose(), indent=indent, logFile=self.getLogFile()) server_node=self.newTop() mkNodeScope(server_node, {'cluster':cluster, 'server':server}, isUnique=True) #-- creates a scope node. server_node.setAttrs(**attrs) elif cluster!=None: try: cmo=cd('/Clusters/' + cluster) except: raise xception.kikonfActionParameterException(self, self_funct, 'Scope: Unable to retreive cluster:' + cluster + '. Your scope:' + str({'server':server, 'cluster':cluster}) + '.') srvs=cmo.getServers() for srv in srvs: sname=srv.getName() desc=srv.getNotes() if desc==DESIGN_NOTICE:desc=None cluster, attrs=extServer(sname) server_node=self.newTop() mkNodeScope(server_node, {'cluster':cluster, 'server':sname}, isUnique=True,desc=desc) #-- creates a scope node. server_node.setAttrs(**attrs) else: cluster, attrs=extServer(server) server_node=self.newTop() mkNodeScope(server_node, {'cluster':cluster, 'server':sname}, isUnique=True) #-- creates a scope node. server_node.setAttrs(**attrs) 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({'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.server==None:raise xception.kikonfActionSystemException(self, self_funct, 'Scope: server is required. Your scope:' + str({'cluster':scope_attrs.cluster, 'server': scope_attrs.server})) self.verbose({'server': scope_attrs.server, 'cluster': scope_attrs.cluster}) indent=self.getIndent() + 3*' ' #-- remove first self.rmvSrv(scope_attrs, indent=indent) verbose('Creating Server:' + scope_attrs.server + '.', level=self.getVerbose(), ifLevel=4, indent=indent, logFile=self.getLogFile()) cmo=cd('/') cmo.createServer(scope_attrs.server) # - sets host cmo=cd('/Servers/' + scope_attrs.server) cmo.setListenAddress(crtserver_attrs.host) # - sets port cmo.setListenPort(crtserver_attrs.port) # - sets enable_client_cert_proxy if crtserver_attrs.enable_client_cert_proxy=='true':cmo.setClientCertProxyEnabled(True) else:cmo.setClientCertProxyEnabled(False) # - sets cluster if scope_attrs.cluster!=None: cls=getMBean('/Clusters/' + scope_attrs.cluster) if cls==None:raise xception.kikonfActionSystemException(self, self_funct, 'Cluster:' + scope_attrs.cluster + ' not found !') cmo.setCluster(cls) else: cmo.unSet('Cluster') # - sets machine if crtserver_attrs.machine!=None: mc=getMBean('/Machines/' + crtserver_attrs.machine) if mc==None:raise xception.kikonfActionSystemException(self, self_funct, 'Machine:' + scope_attrs.machine + ' not found !') cmo.setMachine(mc) else:cmo.unSet('Machine') # - sets desc if crtserver_attrs.desc==None:desc=DESIGN_NOTICE else:desc=crtserver_attrs.desc cmo.setNotes(desc) # - sets ssl cmo=cd('/Servers/' + scope_attrs.server + '/SSL/' + scope_attrs.server) if crtserver_attrs.enable_ssl=='true': cmo.setTwoWaySSLEnabled(True) cmo.setEnabled(True) if crtserver_attrs.ssl_port!=None:cmo.setListenPort(crtserver_attrs.ssl_port) else: cmo.setTwoWaySSLEnabled(False) cmo.setEnabled(False) cmo.unSet('ListenPort') verbose('Server:' + scope_attrs.server + ' created.', level=self.getVerbose(), ifLevel=3, indent=indent, logFile=self.getLogFile()) def rmvSrv(self, scope_attrs, indent=None): cmo=cd('/') srv=cmo.lookupServer(scope_attrs.server) if srv==None:return verbose('Server:' + scope_attrs.server + ' removing.', level=self.getVerbose(), ifLevel=4, indent=indent, logFile=self.getLogFile()) cmo=cd('/Servers/' + scope_attrs.server) cmo.setCluster(None) cmo.setMachine(None) editService.getConfigurationManager().removeReferencesToBean(srv) cmo=cd('/') cmo.destroyServer(srv) verbose('Server:' + scope_attrs.server + ' removed.', level=self.getVerbose(), ifLevel=3, indent=indent, logFile=self.getLogFile()) def verbose(self, scope_attrs): verbose('Application Server at scope: server:' + str(scope_attrs['server']) + ' cluster:' + str(scope_attrs['cluster']) + '.', level=self.getVerbose(), ifLevel=2, indent=self.getIndent()) def extServer(server, level=None, indent=None, logFile=None): attrs={} verbose('Server:' + server + ' retreiving.', level=level, ifLevel=4, indent=indent, logFile=logFile) # - gets host cmo=cd('/Servers/' + server) attrs['host']=cmo.getListenAddress() # - gets port attrs['port']=cmo.getListenPort() # - gets enable_client_cert_proxy if cmo.isClientCertProxyEnabled():attrs['enable_client_cert_proxy']='true' # - gets cluster cluster=cmo.getCluster() if cluster!=None:cluster=cluster.getName() # - gets machine attrs['machine']=cmo.getMachine().getName() # - gets ssl cmo=cd('/Servers/' + server + '/SSL/' + server) if cmo.isEnabled():attrs['enable_ssl']='true' attrs['ssl_port']=cmo.getListenPort() return cluster, attrs
Trademarks :
|