Skip to content

Commit

Permalink
creado sub-módulo de configuraciones
Browse files Browse the repository at this point in the history
limpieza de código, carga configuraciones desde archivo externo,
optimización de funciones
  • Loading branch information
flazcano committed Oct 31, 2011
1 parent 4a95d1a commit 9544dc7
Show file tree
Hide file tree
Showing 6 changed files with 157 additions and 12 deletions.
42 changes: 41 additions & 1 deletion AOC.py
Expand Up @@ -8,6 +8,46 @@
Agente de Obtencion de Cargas
'''

import Config

from threading import Thread

from Logger import handler
from modulo import AOCME

AOCME.run()
configFile = 'aoc.conf'

class ThreadxAOCME(Thread):
def __init__(self):
Thread.__init__(self)

def run(self):
AOCME.run(puerto)

if __name__ == '__main__':
handler.log.info('iniciando el Agente de Obtencion de Cargas')

# cargando configuraciones del agente
try:
cfg = Config.load(configFile)
puerto = cfg["puerto"]
except KeyError, (message):
handler.log.error('no se ha podido encontrar una variable de confifguracion necesaria')
handler.log.exception(message)
exit(1);
except IOError, (message):
handler.log.error('ha ocurrido un error al cargar el archivo de configuracion: ' + configFile)
handler.log.exception(message)
exit(1);
except Exception, (message):
handler.log.error('ha ocurrido un error al cargar el archivo de configuracion: ' + configFile)
handler.log.exception(message)
exit(1);

# ejecutando el modulo como hilo
try: tAOCME = ThreadxAOCME().start(puerto)
except Exception, (message):
handler.log.error('ha ocurrido un error en el modulo')
handler.log.exception(message)
exit(1);
else: handler.log.info('el Agente de Obtencion de Cargas se ha iniciado correctamente')
26 changes: 26 additions & 0 deletions Config.py
@@ -0,0 +1,26 @@
'''
Created on 30/10/2011
@author: Fernando
Sub-Modulo de Gestion de Archivos de Configuracion
'''

import re

# -- carga un archivo de configuracion
def load(filename):
try: configfile = open(filename, "r")
except Exception, e: raise e
try: configtext = configfile.read()
except Exception, e: raise e
# Compile a pattern that matches our key-value line structure
pattern = re.compile("\\n([\w_]+)[\t ]*([\w: \\\/~.-]+)")
# Find all matches to this pattern in the text of the <strong class="highlight">config</strong> <strong class="highlight">file</strong>
tuples = re.findall(pattern, configtext)
# Create a new dictionary and fill it: for every tuple (key, value) in
# the 'tuples' list, set ret[key] to value
configuraciones = dict()
for x in tuples: configuraciones[x[0]] = x[1]
# Return the fully-loaded dictionary object
return configuraciones
15 changes: 6 additions & 9 deletions SBC.py
Expand Up @@ -8,12 +8,11 @@
Sistema Balanceador de Carga
'''

from modulo import ME
from modulo import MIS

from sys import exit
from threading import Thread;

from modulo import ME
from modulo import MIS
from Logger import handler;

class ThreadxMIS(Thread):
Expand All @@ -33,17 +32,15 @@ def run(self):
if __name__ == '__main__':
handler.log.info('iniciando el Sistema Balanceador de Carga')

try:
tMIS = ThreadxMIS()
tMIS.start()
# ejecutando el modulo como hilo
try: tMIS = ThreadxMIS().start()
except Exception, (message):
handler.log.error('ha ocurrido un error en el modulo')
handler.log.exception(message)
exit(1);

try:
tME = ThreadxME()
tME.start()
# ejecutando el modulo como hilo
try: tME = ThreadxME().start()
except Exception, (message):
handler.log.error('ha ocurrido un error en el modulo')
handler.log.exception(message)
Expand Down
1 change: 1 addition & 0 deletions aoc.conf
@@ -0,0 +1 @@
logfile = aoc.log
10 changes: 8 additions & 2 deletions modulo/AOCMR.py
Expand Up @@ -6,7 +6,13 @@
Modulo de Monitorizacion de Recursos para Agente de Obtencion de Cargas (AOCMR)
'''

import psutil
from sys import exit
try:
import psutil
except:
print 'no se encuentra python::psutil necesario para correr el modulo'
exit(1)


# devuelve el valor del % CPU utilizado, mas un arreglo de % utilizacion por CPU
def CPU():
Expand Down Expand Up @@ -60,4 +66,4 @@ def HDD():
return '[]'

def LAV():
return '[' + str(CPU()) + ', ' + str(MEM()) + ', ' + str(IO()) + ', ' + str(NET()) + ', ' + str(HDD()) + ']'
return '[' + str(CPU()) + ', ' + str(MEM()) + ', ' + str(IO()) + ', ' + str(NET()) + ', ' + str(HDD()) + ']'
75 changes: 75 additions & 0 deletions sbc.log
Expand Up @@ -66,3 +66,78 @@
2011-10-30 03:21:44,013 [AOCME] INFO - iniciando modulo AOCME
2011-10-30 03:21:49,349 [AOCME] INFO - conectado desde 127.0.0.1:50328
2011-10-30 03:21:52,761 [AOCME] INFO - desconectado desde 127.0.0.1:50328
2011-10-30 15:53:02,685 [AOCME] INFO - iniciando modulo AOCME
2011-10-30 18:00:55,419 [AOC] INFO - iniciando el Agente de Obtencion de Cargas
2011-10-30 18:00:55,493 [AOCME] INFO - iniciando modulo AOCME
2011-10-30 18:00:55,494 [AOCME] CRITICAL - no se puede abrir el socket: [Errno 48] Address already in use
2011-10-30 18:02:09,399 [AOC] INFO - iniciando el Agente de Obtencion de Cargas
2011-10-30 18:02:09,447 [AOCME] INFO - iniciando modulo AOCME
2011-10-30 18:02:38,828 [AOC] INFO - iniciando el Agente de Obtencion de Cargas
2011-10-30 18:02:38,829 [AOCME] INFO - iniciando modulo AOCME
2011-10-30 19:59:12,751 [AOC] INFO - iniciando el Agente de Obtencion de Cargas
2011-10-30 19:59:12,837 [AOCME] INFO - iniciando modulo AOCME
2011-10-30 19:59:12,838 [AOC] ERROR - el Agente de Obtencion de Cargas se ha iniciado correctamente
2011-10-30 19:59:57,233 [AOCME] INFO - conectado desde 127.0.0.1:51664
2011-10-30 20:00:01,084 [AOCME] INFO - desconectado desde 127.0.0.1:51664
2011-10-30 21:19:04,072 [AOC] INFO - iniciando el Agente de Obtencion de Cargas
2011-10-30 21:19:04,138 [AOC] ERROR - ha ocurrido un error al cargar el archivo de configuracion: aoc.config
2011-10-30 21:19:04,140 [AOC] ERROR - [Errno 2] No such file or directory: 'aoc.config'
Traceback (most recent call last):
File "/Users/Fernando/Documents/Workspace/SBC/AOC.py", line 32, in <module>
cfg = Config.load(configFile)
File "/Users/Fernando/Documents/Workspace/SBC/Config.py", line 16, in load
try: configfile = open(filename, "r")
IOError: [Errno 2] No such file or directory: 'aoc.config'
2011-10-30 21:21:18,219 [AOC] INFO - iniciando el Agente de Obtencion de Cargas
2011-10-30 21:21:18,240 [AOC] ERROR - ha ocurrido un error al cargar el archivo de configuracion: aoc.config
2011-10-30 21:21:18,241 [AOC] ERROR - [Errno 2] No such file or directory: 'aoc.config'
Traceback (most recent call last):
File "/Users/Fernando/Documents/Workspace/SBC/AOC.py", line 32, in <module>
cfg = Config.load(configFile)
File "/Users/Fernando/Documents/Workspace/SBC/Config.py", line 16, in load
try: configfile = open(filename, "r")
IOError: [Errno 2] No such file or directory: 'aoc.config'
2011-10-30 21:21:34,935 [AOC] INFO - iniciando el Agente de Obtencion de Cargas
2011-10-30 21:21:34,969 [AOC] ERROR - ha ocurrido un error al cargar el archivo de configuracion: aoc.conf
2011-10-30 21:21:34,969 [AOC] ERROR - 'SOMEKEY'
Traceback (most recent call last):
File "/Users/Fernando/Documents/Workspace/SBC/AOC.py", line 34, in <module>
print cfg["SOMEKEY"]
KeyError: 'SOMEKEY'
2011-10-30 21:22:27,229 [AOC] INFO - iniciando el Agente de Obtencion de Cargas
2011-10-30 21:22:27,230 [AOC] ERROR - ha ocurrido un error al cargar el archivo de configuracion: aoc.config
2011-10-30 21:22:27,230 [AOC] ERROR - [Errno 2] No such file or directory: 'aoc.config'
Traceback (most recent call last):
File "/Users/Fernando/Documents/Workspace/SBC/AOC.py", line 32, in <module>
cfg = Config.load(configFile)
File "/Users/Fernando/Documents/Workspace/SBC/Config.py", line 16, in load
try: configfile = open(filename, "r")
IOError: [Errno 2] No such file or directory: 'aoc.config'
2011-10-30 21:24:32,186 [AOC] INFO - iniciando el Agente de Obtencion de Cargas
2011-10-30 21:24:32,223 [AOC] ERROR - ha ocurrido un error al cargar el archivo de configuracion: aoc.conf
2011-10-30 21:24:32,223 [AOC] ERROR - 'SOMEKEY'
Traceback (most recent call last):
File "/Users/Fernando/Documents/Workspace/SBC/AOC.py", line 33, in <module>
cfg["SOMEKEY"]
KeyError: 'SOMEKEY'
2011-10-30 21:25:59,907 [AOC] INFO - iniciando el Agente de Obtencion de Cargas
2011-10-30 21:25:59,908 [AOC] ERROR - no se ha podido encontrar una variable de confifguracion necesaria
2011-10-30 21:25:59,908 [AOC] ERROR - 'SOMEKEY'
Traceback (most recent call last):
File "/Users/Fernando/Documents/Workspace/SBC/AOC.py", line 33, in <module>
cfg["SOMEKEY"]
KeyError: 'SOMEKEY'
2011-10-30 21:28:52,626 [AOC] INFO - iniciando el Agente de Obtencion de Cargas
2011-10-30 21:28:52,652 [AOC] ERROR - no se ha podido encontrar una variable de confifguracion necesaria
2011-10-30 21:28:52,653 [AOC] ERROR - 'SOMEKEY'
Traceback (most recent call last):
File "/Users/Fernando/Documents/Workspace/SBC/AOC.py", line 33, in <module>
cfg["SOMEKEY"]
KeyError: 'SOMEKEY'
2011-10-30 21:30:57,721 [AOC] INFO - iniciando el Agente de Obtencion de Cargas
2011-10-30 21:30:57,753 [AOC] ERROR - no se ha podido encontrar una variable de confifguracion necesaria
2011-10-30 21:30:57,754 [AOC] ERROR - 'SOMEKEY'
Traceback (most recent call last):
File "/Users/Fernando/Documents/Workspace/SBC/AOC.py", line 33, in <module>
cfg["SOMEKEY"]
KeyError: 'SOMEKEY'

0 comments on commit 9544dc7

Please sign in to comment.