Re: jboss module controller

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 2008-03-17 at 09:52 -0400, Jesus M. Rodriguez wrote:

> Outstanding work. This is great!

thanks

> I will defer to others wrt funcweb.

ok :-)

I've upgrade and add some stuff (search by address, port and istance
name) and check istance without listening ports.

bye
Luca
-- 
Today is Sweetmorn, the 3rd day of Discord in the YOLD 3174

#!/usr/bin/python
# find jboss istances and got information
# about them
# written by Luca Foppiano <lfoppiano@xxxxxxxxxxxxx>
# Modified starting by Michael DeHaan <mdehaan@xxxxxxxxxx> 
# driver checker script
# ===============================================

import func.overlord.client as fc

info = fc.Client("*").process.info("ax")

print " == JBoss istances monitor == "

# Retrieve information about program (ps ax)
data1 = {}
for (host,details) in info.iteritems():
    temp_host_data = []
    for items in details:
        if "-Dprogram.name=run.sh" in items:
            for item in items:
                if "java" in item:
                    java = True

            if java == True:
                if items.__contains__("-c"):
                    istance = items[items.index("-c")+1]
                else:
                    istance = None

                if items.__contains__("-b"):
                    address = items[items.index("-b")+1]
                else:
                    address = None

                temp_host_data.append((int(items[0]),istance,address,[]))


    data1[host] = temp_host_data

# Retrieve information about network (netstat -tupln)
info = fc.Client("*").command.run("netstat -tupln")
data2 = {}
for (host,details) in info.iteritems():
    netstat_list=details[1].split("\n")
    temp_host_data = []
    for string in netstat_list:

        address = None
        port = None
        pid = None

        try:
            address_port = string.split()[3]
            pid_name = string.split()[6]
        except:
            address_port = None
            pid_name = None

        if address_port != None:
            try:
                address = string.split()[3].split(":")[0]
                port =  int(string.split()[3].split(":")[1])
            except:
                address = None
                port = None

        if pid_name != None:
            try:
                pid = int(pid_name.split("/")[0])
            except:
                pid = None
        
        if pid != None:
            for data in data1[host]:
                if data[0] == pid:
                    #verify address
                    if address != None:
                        if data[2] == address:
                            data[3].append(port)


# Display
# * host: hostname
#  - (pid, istance, address, ports)  

for key in data1.keys():
    print " * host:" +str(key)
    for item in data1[key]:
        print "  - "+str(item)


print "\n\n == JBoss istances checker == "

for key in data1.keys():
    for item in data1[key]:
        if len(item[3]) == 0:
            print " * problem with istance "+item[1]+"(pid: "+str(item[0])+") listening on "+item[2]+" on host "+key+": no port founded"


print "\n\n == JBoss search =="

print "\n === By istance (search word: default) ==="
search = "default"

for key in data1.keys():
    for item in data1[key]:
        if item[1] == search:
            print " * istance found "+item[1]+"(pid: "+str(item[0])+ ") listening on "+item[2]+" on host "+key+ ". Ports: "+str(item[3])


print "\n === By address (search word: 127.0.0.1) ==="
search = "127.0.0.1"

for key in data1.keys():
    for item in data1[key]:
        if item[2] == search:
            print " * istance found "+item[1]+"(pid: "+str(item[0])+ ") listening on "+item[2]+" on host "+key+ ". Ports: "+str(item[3])

print "\n === By port (search port: 8081) ==="
search = "8081"

for key in data1.keys():
    for item in data1[key]:
        for port in item[3]:
            if port == search:
                print " * istance found "+item[1]+"(pid: "+str(item[0])+ ") listening on "+item[2]+" on host "+key+ ". Ports: "+str(item[3])
_______________________________________________
Func-list mailing list
Func-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/func-list

[Index of Archives]     [Fedora Users]     [Linux Networking]     [Fedora Legacy List]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]

  Powered by Linux