5 HCE project, Python bindings, Distributed Tasks Manager application. 6 Event objects definitions. 11 @link: http://hierarchical-cluster-engine.com/ 12 @copyright: Copyright © 2013-2014 IOIX Ukraine 13 @license: http://hierarchical-cluster-engine.com/license/ 18 import cPickle
as pickle
27 from cement.core
import foundation
44 sys.stderr.write(abortStr)
51 label = Constants.APP_NAME
60 foundation.CementApp.__init__(self)
69 foundation.CementApp.setup(self)
76 foundation.CementApp.run(self)
78 if self.pargs.config
is not None:
80 drceSyncTasksCoverPickled = sys.stdin.read()
82 if not os.path.isfile(self.pargs.config):
83 raise Exception(
'Config file %s not found' % self.pargs.config)
84 cfgParser = ConfigParser.ConfigParser()
85 cfgParser.read(self.pargs.config)
88 logging.config.fileConfig(cfgParser.get(
"TasksManager",
"log_cfg"))
97 if len(drceSyncTasksCoverPickled) == 0
or drceSyncTasksCoverPickled[-1] !=
'\x2E':
98 drceSyncTasksCoverPickled +=
'\x2E' 100 drceSyncTasksCover = pickle.loads(drceSyncTasksCoverPickled)
101 responseDRCESyncTasksCover = dbTask.process(drceSyncTasksCover)
102 sys.stdout.write(pickle.dumps(responseDRCESyncTasksCover))
105 if dbTask.SQLErrorCode != Constants.EXIT_CODE_OK:
106 logger.error(
"Exited with dbTask.SQLErrorCode=" + str(dbTask.SQLErrorCode))
112 logger.info(APP_CONSTS.LOGGER_DELIMITER_LINE)
119 logger.info(APP_CONSTS.LOGGER_DELIMITER_LINE)
120 except MySQLdb.OperationalError
as err:
121 ExceptionLog.handler(logger, err,
"Aborted cause exception! MySQLdb.OperationalError:")
122 exceptionLogging(
"Aborted cause exception! MySQLdb.OperationalError {%s}\n" % str(err))
123 self.
errorCode = Constants.EXIT_CODE_GLOBAL_ERROR
124 except MySQLdb.Error
as err:
125 ExceptionLog.handler(logger, err,
"Aborted cause exception! Error %d: %s" % (err.args[0], err.args[1]))
126 exceptionLogging(
"Aborted cause exception! Error %d: %s" % (err.args[0], err.args[1]))
127 self.
errorCode = Constants.EXIT_CODE_GLOBAL_ERROR
128 except DatabaseException, err:
129 ExceptionLog.handler(logger, err,
"Aborted cause exception! ")
131 self.
errorCode = Constants.EXIT_CODE_MYSQL_ERROR
132 except Exception
as err:
133 ExceptionLog.handler(logger, err,
"Aborted cause exception! ")
135 self.
errorCode = Constants.EXIT_CODE_GLOBAL_ERROR
137 ExceptionLog.handler(logger,
None,
"Unknown exception")
139 logger.info(APP_CONSTS.LOGGER_DELIMITER_LINE)
145 logger.error(
"Invalid command line arguments. To help - python ./db_task.py -h")
146 sys.stderr.write(
"Invalid command line arguments. To help - python ./db_task.py -h")
149 logger.info(APP_CONSTS.LOGGER_DELIMITER_LINE)
152 self.
errorCode = Constants.EXIT_CODE_CONFIG_ERROR
160 foundation.CementApp.close(self)
def exceptionLogging(abortStr)
errorCode
drceSyncTasksCoverPickled = sys.stdin.read()
def close(self, code=None)