4 @author Alexander Vybornyh <alexander.hce.cluster@gmail.com> 5 @link: http://hierarchical-cluster-engine.com/ 6 @copyright: Copyright © 2013-2016 IOIX Ukraine 7 @license: http://hierarchical-cluster-engine.com/license/ 25 super(SQLCustomTask, self).
__init__()
34 def process(self, sqlRequest, queryCallback, bdResolveFunc):
38 logger.debug(
"!!! SQL Custom request: %s", str(sqlRequest.query))
40 if sqlRequest
is None:
41 raise Exception(
"Error: request object is None")
43 if sqlRequest.query
is None or \
44 (
not isinstance(sqlRequest.query, basestring)
and not isinstance(sqlRequest.query, list)):
45 raise Exception(
"Error: wrong type of sql request param (%s)", str(
type(sqlRequest)))
47 if isinstance(sqlRequest.query, basestring)
and sqlRequest.query ==
"":
48 raise Exception(
"Error: sql request is empty string")
50 if isinstance(sqlRequest.query, list)
and len(sqlRequest.query) == 0:
51 raise Exception(
"Error: input list of sql requests is empty")
53 if sqlRequest.dbName
is None or \
54 not isinstance(sqlRequest.dbName, basestring)
or \
55 sqlRequest.dbName ==
"":
56 raise Exception(
"Error: wrong database name '%s'", str(sqlRequest.dbName))
58 dbIndex = bdResolveFunc(sqlRequest.dbName)
60 raise Exception(
"Error: there isn't '%s' database connection", str(sqlRequest.dbName))
63 if isinstance(sqlRequest.query, basestring):
64 queries = [sqlRequest.query]
66 queries = sqlRequest.query
72 if sqlRequest.includeFieldsNames == dbi.EventObjects.CustomRequest.SQL_BY_INDEX:
73 res = queryCallback(query, dbIndex)
74 elif sqlRequest.includeFieldsNames == dbi.EventObjects.CustomRequest.SQL_BY_NAME:
75 res = queryCallback(query, dbIndex, Constants.EXEC_NAME)
78 raise Exception(
"Error: wrong SQL request '%s'", str(query))
84 if isSingleQuery
and len(results) > 0:
85 ret.result = results[0]
89 except Exception, err:
90 ret.errString = str(err)
91 logger.debug(
"!!! SQL Custom request: %s", str(err))
def process(self, sqlRequest, queryCallback, bdResolveFunc)