Пример #1
0
 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))
Пример #2
0
 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)
Пример #3
0
 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')
Пример #4
0
 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)