def get_single_rollback(backupDb,opid_time): sqllist = [] tbNamesql = "select tablename from %s.$_$Inception_backup_information$_$ where opid_time='%s';" % (backupDb, opid_time) results,col = func.mysql_query(tbNamesql,incept_backup_user,incept_backup_passwd,incept_backup_host,int(incept_backup_port),backupDb) if len(results) > 0: tbName = results[0][0] backsql = "select rollback_statement from %s.%s where opid_time='%s' order by id desc" % (backupDb, tbName, opid_time) results,col = func.mysql_query(backsql,incept_backup_user,incept_backup_passwd,incept_backup_host,int(incept_backup_port),backupDb) for row in results : sqllist.append(row[0]) return sqllist else: return sqllist
def task_running_status(idnum): task = Task.objects.get(id=idnum) if task.status=='executed failed'or task.status=='executed': data = Incep_error_log.objects.filter(create_time=task.create_time, finish_time=task.update_time, task_id = idnum).order_by("myid") col =[f.name for f in Incep_error_log._meta.get_fields()] #delete first element "ID" del col[0], col[1] return data,col elif task.status == 'running': text = task.sqlsha if text=='': try: tar_username, tar_passwd, tar_host, tar_port,tar_dbname = get_db_info(task) sql = "select * from information_schema.processlist where Db='" + tar_dbname + "'" + " and USER='******' order by TIME desc" return func.mysql_query(sql, tar_username, tar_passwd, tar_host, int(tar_port), 'information_schema') except Exception,e: return([e],''),['info'] else: for i in text.split('^^'): x = i.split('*') if len(x)>=2: sqlsha = '*'+ x[1] datalist,collist,mynum = incep_getstatus(sqlsha) #add sqltext to the end of the tuple if mynum >0: for d in datalist: data=d+(x[0],) collist.append('SQLTEXT') cols = collist data = (data,) break if not vars().has_key('data'): data = (['wait in running queue'], '') cols = ['info'] return data,cols
def inception_check(hosttag, sql, flag=0): make_sure_mysql_usable() a = Db_name.objects.get(dbtag=hosttag) #a = Db_name.objects.get(dbtag=hosttag) tar_dbname = a.dbname if (not cmp(sql, wrong_msg)): results, col = func.mysql_query(wrong_msg, user, passwd, host, int(port), dbname) return results, col, tar_dbname try: if a.instance.all().filter(role='write')[0]: tar_host = a.instance.all().filter(role='write')[0].ip tar_port = a.instance.all().filter(role='write')[0].port except Exception, e: try: tar_host = a.instance.all().filter(role='all')[0].ip tar_port = a.instance.all().filter(role='all')[0].port except Exception, e: wrongmsg = "select \"" + str(e).replace('"', "\"") + "\"" results, col = func.mysql_query(wrongmsg, user, passwd, host, int(port), dbname) return results, col, tar_dbname
def inception_check(tar_dbname,db_account,sql,flag=0): make_sure_mysql_usable() pc = prpcrypt() tar_username = db_account.user tar_passwd = pc.decrypt(db_account.passwd) tar_host = db_account.instance.ip tar_port = db_account.instance.port #print tar_port+tar_passwd+tar_username+tar_host try: results,col = incep_exec(sql,tar_username,tar_passwd,tar_host,tar_port,tar_dbname,flag) return results,col,tar_dbname except Exception,e: wrongmsg = e results, col = func.mysql_query(wrongmsg, user, passwd, host, int(port), dbname) return results, col, tar_dbname
results, col = func.mysql_query(wrongmsg, user, passwd, host, int(port), dbname) return results, col, tar_dbname for i in a.db_account_set.all(): if i.role == 'admin': tar_username = i.user tar_passwd = i.passwd break #print tar_port+tar_passwd+tar_username+tar_host try: results, col = incep_exec(sql, tar_username, tar_passwd, tar_host, tar_port, tar_dbname, flag) return results, col, tar_dbname except Exception, e: wrongmsg = "select \"no admin account being setted\"" results, col = func.mysql_query(wrongmsg, user, passwd, host, int(port), dbname) return results, col, tar_dbname # def process_runtask(hosttag,sqltext,mytask): # time.sleep(1) # results,col,tar_dbname = inception_check(hosttag,sqltext,1) # status='executed' # c_time = mytask.create_time # mytask.update_time = timezone.now() # make_sure_mysql_usable() # mytask.save() # for row in results: # try: # inclog = Incep_error_log(myid=row[0],stage=row[1],errlevel=row[2],stagestatus=row[3],errormessage=row[4],\ # sqltext=row[5],affectrow=row[6],sequence=row[7],backup_db=row[8],execute_time=row[9],sqlsha=row[10],\