diff --git a/plugins/migration_api/index.py b/plugins/migration_api/index.py index 42fa23b20..d412ff859 100755 --- a/plugins/migration_api/index.py +++ b/plugins/migration_api/index.py @@ -99,9 +99,12 @@ class classApi: os.remove(log_file) plugins_dir = mw.getServerDir() + '/mdserver-web' - exe = "cd {0} && source bin/activate && nohup python3 plugins/migration_api/index.py bg_process &>{1} &".format( + exe = "cd {0} && source bin/activate && python3 plugins/migration_api/index.py bg_process &>{1} &".format( plugins_dir, log_file_error) - mw.execShell(exe) + # mw.execShell(exe) + # os.system(exe) + subprocess.Popen(exe, shell=True, stdout=subprocess.PIPE, + stderr=subprocess.PIPE) time.sleep(1) # 检查是否执行成功 if not getPid(): @@ -350,7 +353,7 @@ class classApi: # 设置状态 self._SYNC_INFO[stype][index]['state'] = state self._SYNC_INFO[stype][index]['error'] = error - if self._SYNC_INFO[stype][index]['state'] != 1: + if self._SYNC_INFO[stype][index]['state'] == 1: self._SYNC_INFO['speed'] += 1 self.save() @@ -399,24 +402,27 @@ class classApi: def sync_site(self): data = getCfgData() - sites = data['ready']['sites'] + sites = self._SYNC_INFO['sites'] for i in range(len(sites)): + + site_name = sites[i]['name'] try: - siteInfo = mw.M('sites').where('name=?', (sites[i],)).field( + self.state('sites', i, 1) + siteInfo = mw.M('sites').where('name=?', (site_name,)).field( 'id,name,path,ps,status,edate,addtime').find() if not siteInfo: - err_msg = "指定站点[{}]不存在!".format(sites[i]) + err_msg = "指定站点[{}]不存在!".format(site_name) self.state('sites', i, -1, err_msg) self.error(err_msg) continue pid = siteInfo['id'] siteInfo['port'] = mw.M('domain').where( - 'pid=? and name=?', (pid, sites[i],)).getField('port') + 'pid=? and name=?', (pid, site_name,)).getField('port') siteInfo['domain'] = mw.M('domain').where( - 'pid=? and name!=?', (pid, sites[i])).field('name,port').select() + 'pid=? and name!=?', (pid, site_name)).field('name,port').select() if self.send_site(siteInfo, i): self.state('sites', i, 2) @@ -661,12 +667,12 @@ class classApi: def sync_database(self): data = getCfgData() - databases = data['ready']['databases'] + + databases = self._SYNC_INFO['databases'] for i in range(len(databases)): try: self.state('databases', i, 1) - db = databases[i] - + db = databases[i]['name'] sp_msg = "|-迁移数据库: [{}]".format(db) self.write_speed('action', sp_msg) write_log(sp_msg) @@ -682,8 +688,7 @@ class classApi: def run(self): # 开始迁移 - # self.upload_file( - # "/Users/midoks/Desktop/mwdev/backup/mysql-boost-5.7.39.tar.gz", "/tmp/mysql-boost-5.7.39.tar.gz") + # self.upload_file("/tmp/mysql-boost-5.7.39.tar.gz", "/tmp/mysql-boost-5.7.39.tar.gz") # mw.CheckMyCnf() # self.sync_other() @@ -732,7 +737,7 @@ def getConf(): def getCfgData(): path = getConf() if not os.path.exists(path): - mw.writeFile(path, '{}') + mw.writeFile(path, "{}") t = mw.readFile(path) return json.loads(t) @@ -961,10 +966,6 @@ if __name__ == "__main__": func = sys.argv[1] if func == 'status': print(status()) - elif func == 'start': - print(start()) - elif func == 'stop': - print(stop()) elif func == 'get_conf': print(getStepOneData()) elif func == 'step_one': diff --git a/plugins/migration_api/js/app.js b/plugins/migration_api/js/app.js index 7333a1bfa..f41094e3a 100755 --- a/plugins/migration_api/js/app.js +++ b/plugins/migration_api/js/app.js @@ -197,26 +197,32 @@ function initStep3(){ function renderMigrationProgress(){ maPostNoMsg('get_speed',{}, function(rdata){ var rdata = $.parseJSON(rdata.data); - - console.log('sss:',rdata); + console.log('speed:',rdata.data); if (rdata.status){ - - if (rdata['data']['action'] == 'True'){ var end = '
传输大小: 4.92 KB,耗时: 0分6秒,平均速度: 840 B/s
\ -\ - \ - 迁移日志\ -
\ -