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