Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

creado sub-módulo de configuraciones

limpieza de código, carga configuraciones desde archivo externo,
optimización de funciones
  • Loading branch information...
commit 9544dc7a0e83c3f1167c793ebe3c6788df7b11aa 1 parent 4a95d1a
@flazcano authored
View
42 AOC.py
@@ -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')
View
26 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
View
15 SBC.py
@@ -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):
@@ -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)
View
1  aoc.conf
@@ -0,0 +1 @@
+logfile = aoc.log
View
10 modulo/AOCMR.py
@@ -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():
@@ -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()) + ']'
View
75 sbc.log
@@ -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'
Please sign in to comment.
Something went wrong with that request. Please try again.