def query(query, dbname, port, retry=3): exceptionList = [1152, 1154, 2003, 2013] values = dbHelper.getDBCred(port) for i in range(0, retry): try: db = Database(server='127.0.0.1', db=dbname, user=values['DbUsername'], passwd=values['DbPassword'], port=port) if query.lower().startswith('insert') or query.lower().startswith('update'): dboutput = db.writeToDB(query) else: dboutput = db.readFromDB(query) dboutput = map(list, dboutput) dboutput = dbHelper.convertDataType(dboutput) db.close() return dboutput except Exception as e: if e[0] in exceptionList: Logger.log(e) if not Utils.restartTunnel(port): break else: Logger.log('Ignore DB restart') break raise Exception( "Exception Occured while Querying :{} for Query :{} on DB :{} and port :{}".format(e, query, dbname, port))
def generateSmsWhitelistingData(tmpValue, mobile = '918660430751'): if constant.config['cluster'] in ['nightly', 'staging']: for i in range(0, 3): try: testCol = constant.config['mongoConn'] value = { "mobile": mobile, "delivered": 0, "not_delivered": 0 } value.update(tmpValue) value['total'] = value['delivered'] + value['not_delivered'] batchReq = [] batchReq.append(pymongo.ReplaceOne({'mobile': mobile}, value, upsert=True)) testCol.bulk_write(batchReq) Logger.log(testCol.find({'mobile' : mobile})[0]) return except pymongo.errors.ConnectionFailure as e: Logger.log(e) port = constant.config['INTOUCH_DB_MONGO_MASTER'] if Utils.restartTunnel(port): DarknightHelper.getMongoConnection('whitelisting', 'mobile_status') else: break except Exception as e: break raise Exception(e)
def checkCommServerConn(ignoreConnectionError=False): for port in constant.config['NSADMIN_THRIFT_SERVICE']: for _ in range(0, 3): try: nsObj = NSAdminThrift(port, 10000) if nsObj.isAlive(): if constant.config['cluster'] in ['nightly','staging','china', 'eu', 'more', 'india']: constant.config['nsMasterPort'] = port constant.config[str(port) + '_obj'] = nsObj else: if nsObj.isMaster(): constant.config['nsMasterPort'] = port constant.config[str(port)+'_obj'] = nsObj break except Exception as e: Logger.log('Error connecting to port:', port,' .Issuing tunnelrestart.') #(traceback.format_exc()) Utils.restartTunnel(port) if not ignoreConnectionError and not 'nsMasterPort' in constant.config: raise Exception('Master NSAdmin server not found')
def findDocuments(database, collection, port, query, sort='', limit=1, skip=0, retry=3): for i in range(0, retry): try: db = MongoHelper(database, collection, port) dboutput = db.readFromMongoDB(query, sort, limit, skip) db.close() dboutput = MongoHelper.convertDataTypeMongo(dboutput) return dboutput except pymongo.errors.ConnectionFailure as e: Logger.log(e) if not Utils.restartTunnel(port): break else: Logger.log('Ignore DB restart') except Exception as e: break raise Exception(e)