for v in var:
_convert_datetime2str(v)
-def _convert_bandwidth(data, reverse=False):
+def _convert_bandwidth(data, reverse=False, logger=None):
'''Check the field bandwidth recursivelly and when found, it removes units and convert to number
It assumes that bandwidth is well formed
Attributes:
if type(data) is dict:
for k in data.keys():
if type(data[k]) is dict or type(data[k]) is tuple or type(data[k]) is list:
- _convert_bandwidth(data[k], reverse)
+ _convert_bandwidth(data[k], reverse, logger)
if "bandwidth" in data:
try:
value=str(data["bandwidth"])
if value % 1000 == 0: data["bandwidth"]=str(value/1000) + " Gbps"
else: data["bandwidth"]=str(value) + " Mbps"
except:
- print "convert_bandwidth exception for type", type(data["bandwidth"]), " data", data["bandwidth"]
+ if logger:
+ logger.error("convert_bandwidth exception for type '%s' data '%s'", type(data["bandwidth"]), data["bandwidth"])
return
if type(data) is tuple or type(data) is list:
for k in data:
if type(k) is dict or type(k) is tuple or type(k) is list:
- _convert_bandwidth(k, reverse)
+ _convert_bandwidth(k, reverse, logger)
def _convert_str2boolean(data, items):
'''Check recursively the content of data, and if there is an key contained in items, convert value from string to boolean
_convert_str2boolean(data[k], items)
if k in items:
if type(data[k]) is str:
- if data[k]=="false" or data[k]=="False": data[k]=False
- elif data[k]=="true" or data[k]=="True": data[k]=True
+ if data[k]=="false" or data[k]=="False" or data[k]=="0": data[k]=False
+ elif data[k]=="true" or data[k]=="True" or data[k]=="1": data[k]=True
+ elif type(data[k]) is int:
+ if data[k]==0: data[k]=False
+ elif data[k]==1: data[k]=True
if type(data) is tuple or type(data) is list:
for k in data:
if type(k) is dict or type(k) is tuple or type(k) is list:
if database: self.database = database
self.con = mdb.connect(self.host, self.user, self.passwd, self.database)
- print "DB: connected to %s@%s -> %s" % (self.user, self.host, self.database)
- except mdb.Error, e:
- raise db_base_Exception("Cannot connect to DB {}@{} -> {} Error {}: {}".format(self.user, self.host, self.database, e.args[0], e.args[1]),
- code = HTTP_Internal_Server_Error )
+ self.logger.debug("DB: connected to '%s' at '%s@%s'", self.database, self.user, self.host)
+ except mdb.Error as e:
+ raise db_base_Exception("Cannot connect to DataBase '{}' at '{}@{}' Error {}: {}".format(
+ self.database, self.user, self.host, e.args[0], e.args[1]),
+ http_code = HTTP_Unauthorized )
def get_db_version(self):
''' Obtain the database schema version.
'''
if data==None:
return 'Null'
+ elif isinstance(data[1], str):
+ return json.dumps(data)
else:
return json.dumps(str(data))
'''
if data[1]==None:
return str(data[0]) + "=Null"
+ elif isinstance(data[1], str):
+ return str(data[0]) + '=' + json.dumps(data[1])
else:
return str(data[0]) + '=' + json.dumps(str(data[1]))
'''
if data[1]==None:
return str(data[0]) + " is Null"
-
-# if type(data[1]) is tuple: #this can only happen in a WHERE_OR clause
-# text =[]
-# for d in data[1]:
-# if d==None:
-# text.append(str(data[0]) + " is Null")
-# continue
-# out=str(d)
-# if "'" not in out:
-# text.append( str(data[0]) + "='" + out + "'" )
-# elif '"' not in out:
-# text.append( str(data[0]) + '="' + out + '"' )
-# else:
-# text.append( str(data[0]) + '=' + json.dumps(out) )
-# return " OR ".join(text)
-
- out=str(data[1])
- return str(data[0]) + '=' + json.dumps(out)
+ elif isinstance(data[1], str):
+ return str(data[0]) + '=' + json.dumps(data[1])
+ else:
+ return str(data[0]) + '=' + json.dumps(str(data[1]))
def __tuple2db_format_where_not(self, data):
'''Compose the needed text for a SQL WHERE(not). parameter 'data' is a pair tuple (A,B),
'''
if data[1]==None:
return str(data[0]) + " is not Null"
- out=str(data[1])
- return str(data[0]) + '<>' + json.dumps(out)
+ elif isinstance(data[1], str):
+ return str(data[0]) + '<>' + json.dumps(data[1])
+ else:
+ return str(data[0]) + '<>' + json.dumps(str(data[1]))
def __remove_quotes(self, data):
'''remove single quotes ' of any string content of data dictionary'''