X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=db_base.py;h=10f94045d9e5e1cf32ea2eecaaf89d032e572d66;hb=06e6c396413630640cafae3488442a0869f1642d;hp=f6a5c59a5b5e53fe1a059fe6b0b40723f1bb89cc;hpb=b13f3ccc55a71878d8e7c501be9269d84fc85ace;p=osm%2FRO.git diff --git a/db_base.py b/db_base.py index f6a5c59a..10f94045 100644 --- a/db_base.py +++ b/db_base.py @@ -75,7 +75,7 @@ def _convert_datetime2str(var): 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: @@ -87,7 +87,7 @@ def _convert_bandwidth(data, reverse=False): 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"]) @@ -102,12 +102,13 @@ def _convert_bandwidth(data, reverse=False): 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 @@ -124,8 +125,11 @@ def _convert_str2boolean(data, items): _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: @@ -164,10 +168,11 @@ class db_base(): 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.