Search code examples
weblogic11gwlst

Get managed servers of a machine with wlst


I'm working on a script to automatically configure Nodemanager, enroll a machine and starting de managed servers in it. What i currently have is (not exactly):


connect(...)
cd('/')
for m in cmo.getMachines():
    nombre_machine=m.getName()
    #Solo ejecutamos el NodeManager en el que estamos ejecutando el script.
    if nombre_machine in HOST:
        cd('/Machines/'+nombre_machine+'/NodeManager/'+nombre_machine)
        machine=cmo
        nm_srv_addrs[machine.getListenPort()] = machine.getListenAddress()

for nm_port, nm_addr in nm_srv_addrs.iteritems():
    printInStyle('Iniciando Nodemanager, favor tener paciencia la primera vez.')
    startNodeManager(verbose='false', NodeManagerHome=NM_HOME, ListenPort=str(nm_port), ListenAddress=nm_addr)
    print 'Generando nodemanager.properties ',
    while not os.path.exists(NM_PROP_FILE):
        systime.sleep(10)
        print '\b.',
        sys.stdout.flush()
    print 'Archivo creado!'  

cd('/')
servidores = cmo.getServers()
for s in servidores:
    nombre = s.getName()
    if nombre != 'AdminServer':
        start(nombre)

But the last sequence will fail because will try to start all servers and i'm looking to start only the in the one i'm running the script. What i believe i'm looking is a way to filter the servers in the current machine. I'll appreciate any help or advice. I am just starting in wlst scripting. thanks


Solution

  • I figured it out thanks to this link

    I'll just need to filter in a couple of loops like this:


    import os
    cd('/')
    current_m=''
    machines = cmo.getMachines()
    for m in machines:
        hostname = os.environ['HOSTNAME']
        nm = m.getNodeManager()
        if nm.getListenAddress() in hostname:
            current_m=m
    
    servers = cmo.getServers()
    for s in servers:
        name = s.getName()
        if name != 'AdminServer':
            ref = getMBean('/Servers/'+name+'/Machine/'+current_m.getName())
            if ref != None:
                start(name)