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







Vhost

print

Action : wls.vhost   (Category : wls, Name : vhost, By : kikonf)
Complete Name : wls.vhost.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 vhost plugin : Creates a Virtual Host

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

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 *
from java.lang import String


class Vhost(wlsAction):
    
    def extract(self, scope_attrs, name=None, prefix=None, **keywords):
        self_funct='extract'
        self.verbose(scope_attrs, name=name, prefix=prefix)    
        scope_cp, scope_attrs, scope=self.getScope(scope_attrs=scope_attrs, indent=self.getIndent())
        indent=self.getIndent() + 3*' '

        verbose('VirtualHost retreiving.', level=self.getVerbose(), ifLevel=4, indent=indent, logFile=self.getLogFile())        
        cmo=cd('/')
        vmb=getMBean('/VirtualHosts')
        vhs=vmb.getVirtualHosts()

        for vhost in vhs:
            vname=vhost.getName()
            
            if prefix!=None and name!=None and vname==prefix + '_' + name \
            or prefix==None and name!=None and name==vname \
            or prefix!=None and name==None and vname.startswith(prefix) \
            or prefix==None and name==None:
                if not checkTarget(vhost, scope):continue
                cmo=cd('/VirtualHosts/' + vhost.getName())
                verbose('VirtualHost:' + vname + ' retreived.', level=self.getVerbose(), ifLevel=3, indent=indent, logFile=self.getLogFile())
                channel=cmo.getNetworkAccessPoint()
                
                # - gets description
                cmo=cd('/VirtualHosts/' + vname)
                desc=cmo.getNotes()
                if desc==DESIGN_NOTICE:desc=None

                vhost_node=self.newTop() # because in extract, this return a blank vhost node.
                if prefix!=None:vname=vname.split(prefix + '_')[1]
                vhost_node.setAttrs(name=vname, desc=desc, channel=channel, prefix=prefix)
                
                mkNodeScope(vhost_node, scope_attrs, isUnique=True) #-- creates a scope node.

                urls=cmo.getVirtualHostNames()
                for url in urls:
                    vhost_node.newNode('aliases', host=url)

    def remove(self, no_name, no_name_no_prefix):
        vhost_node = self.getTop()        
        vhost_attrs = vhost_node.getAttrs()
        scope_cp, scope_attrs, scope=self.getScope(parent_node=vhost_node, indent=self.getIndent()) #-- Retreives scope
        self.verbose(scope_attrs, name=vhost_attrs.name, prefix=vhost_attrs.prefix)
        indent=self.getIndent() + 3*' '
            
        # no_name/no_name_no_prefix
        prefix=vhost_attrs.prefix        
        name=vhost_attrs.name
        if no_name or no_name_no_prefix:name=None
        if no_name_no_prefix:prefix=None
        
        self.rmvVirtualHost(name=name, prefix=prefix, indent=indent)

    def inject(self):
        self_funct='inject'
        vhost_node = self.getTop()        
        vhost_attrs = vhost_node.getAttrs()
        scope_cp, scope_attrs, scope=self.getScope(parent_node=vhost_node, indent=self.getIndent()) #-- Retreives scope
        self.verbose(scope_attrs, name=vhost_attrs.name, prefix=vhost_attrs.prefix)
        indent=self.getIndent() + 3*' '
        
        self.rmvVirtualHost(name=vhost_attrs.name, prefix=vhost_attrs.prefix, indent=indent)
        
        # - name
        if vhost_attrs.prefix==None:name=vhost_attrs.name
        else:name=vhost_attrs.prefix + '_' + vhost_attrs.name
        
        # - create vost
        cmo=cd('/')
        vhmb=cmo.createVirtualHost(name)


        # - description
        if vhost_attrs.desc!=None:desc=vhost_attrs.desc
        else:desc=DESIGN_NOTICE
        cmo=cd('/VirtualHosts/' + name)
        cmo.setNotes(desc)        
        
        # - set target
        cmo=cd('/')
        tg=getMBean(scope_cp)
        vhmb.addTarget(tg)       
        # <=> cmo=cd('/VirtualHosts/' + name) ?
        # cmo.setTargets(getMBean(scope_cp))
        
        if vhost_node.hasNode('alias'):
            alias_nodes=vhost_node.getNode('alias')
            as=[]
            for aliase_node in alias_nodes:
                alias_attrs=aliase_node.getAttrs()
                as.append(String(alias_attrs.host))

        verbose('VirtualHost:' + name + ' retreiving.', level=self.getVerbose(), ifLevel=4, indent=indent, logFile=self.getLogFile())        
        cmo=cd('/VirtualHosts/' + name) 
        cmo.setVirtualHostNames(jarray.array(as, String))
        verbose('VirtualHost:' + name + ' created.', level=self.getVerbose(), ifLevel=3, indent=indent, logFile=self.getLogFile())
        
    def rmvVirtualHost(self, name, prefix=None, indent=None):
        scope_cp, scope_attrs, scope=self.getScope()
        verbose('VirtualHost retreiving.', level=self.getVerbose(), ifLevel=4, indent=indent, logFile=self.getLogFile(), logFile=self.getLogFile())
        cmo=cd('/')
        vmb=getMBean('/VirtualHosts')
        vhs=vmb.getVirtualHosts()
        
        for vhost in vhs:
            vname=vhost.getName()

            if prefix!=None and vname.startswith(prefix) \
            or prefix==None and name!=None and name==vname \
            or prefix==None and name==None:
                if not checkTarget(vhost, scope):continue
                verbose('VirtualHost:' + vname + ' removing.', level=self.getVerbose(), ifLevel=4, indent=indent, logFile=self.getLogFile())        
                cmo=cd('/')
                cmo.destroyVirtualHost(vhost)
                verbose('VirtualHost:' + vname + ' 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('VirtualHost:' + name + ', under prefix:' + prefix+ ', at scope:' + scope + '.', level=self.getVerbose(), ifLevel=2, indent=self.getIndent())
        elif name!=None:verbose('VirtualHost:' + name + ', at scope:' + scope + '.', level=self.getVerbose(), ifLevel=2, indent=self.getIndent())
        elif prefix!=None:verbose('VirtualHosts under prefix:' + prefix + ', at scope:' + scope + '.', level=self.getVerbose(), ifLevel=2, indent=self.getIndent())
        else:verbose('VirtualHosts at scope:' + scope + '.', level=self.getVerbose(), ifLevel=2, indent=self.getIndent())
							
(Source: <KIKONF_INSTALLATION_DIR>/plugins/actions/wls/vhost/by/kikonf/vhost.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