def rollback_it(self): roll_data = self.db.query("select * from deploy_list where id=%d" % int(self.roll_id))[0] if not roll_data: return -1 deployed_list = roll_data['deploy_path'].split() backup_list = roll_data['backup_path'].split() self.cmd_cur = self.try_login() ret_list = map(self.copy_back, backup_list, deployed_list) print ret_list index_path = self.cf.get('html_path', 'index_path') self.cmd_cur.sendline("cp %s %s_simple" % (index_path, index_path)) self.cmd_cur.prompt() check_success(self.cmd_cur, 'rollback file') self.db.update("update deploy_list set status=0 where id=%d" % int(self.roll_id)) return sum(ret_list)
def backup_old_file(self, cur, deploy_path): cur.sendline("test -f %s" % deploy_path) cur.prompt() cur.sendline("echo $?") cur.prompt() res = cur.before.split() for s in res: try: ret = int(s) if_exit = ret except: pass if if_exit == 0: backup_path = self.get_backup_path(cur, deploy_path) cur.sendline("cp %s %s" % (deploy_path, backup_path)) cur.prompt() check_success(cur, 'backup %s' % deploy_path) return backup_path else: return 0
print("Running standalone-specific tests\n") sys.stdout.flush() pref_plugin.device_options = {'directory': None, 'with_output': with_output, # same as in brian2.tests() 'build_on_run': False} argv = make_argv(tests, markers=target) exit_code = pytest.main(argv + additional_args, plugins=[pref_plugin]) pref_success = pref_success and exit_code in [0, 5] successes.append(pref_success) clear_caches() reset_device() print(f"\nTARGET: {target.upper()}") all_success = utils.check_success(successes, all_prefs_combinations) all_successes.append(all_success) if len(args.targets) > 1: print("\nFINISHED ALL TARGETS") if all(all_successes): print("\nALL TARGETS PASSED") else: print("\n{}/{} TARGETS FAILED:".format(sum(all_successes) - len(all_successes), len(all_successes))) for n, target in enumerate(args.targets): if not all_successes[n]: print(f"\t{target} failed.") sys.exit(1)
success = test(codegen_targets=[], long_tests=args.no_long_tests, test_codegen_independent=False, test_standalone=target, reset_preferences=False, fail_for_not_implemented=not args.skip_not_implemented, test_in_parallel=test_in_parallel, extra_test_dirs=extra_test_dirs, float_dtype=None) successes.append(success) buffer.add("\nTARGET: {}".format(target.upper())) all_success, print_lines = utils.check_success(successes, all_prefs_combinations, return_lines=True) all_successes.append(all_success) buffer.add(print_lines) buffer.print_all() if len(args.targets) > 1: buffer.add("\nFINISHED ALL TARGETS") if all(all_successes): buffer.add("\nALL TARGETS PASSED") buffer.print_all() else: buffer.add("\n{}/{} TARGETS FAILED:".format( sum(all_successes) - len(all_successes), len(all_successes))) for n, target in enumerate(args.targets):
def deploy_file(self, login_user, operation): backup_list = [] deploy_list = [] cur = self.try_login() app_backup = self.backup_old_file(cur, self.deploy_path) backup_list.append(str(app_backup)) deploy_list.append(self.deploy_path) cur.sendline("cp %s %s" % (self.copy_path, self.deploy_path)) cur.prompt() check_success(cur, 'deploy %s' % self.deploy_path) cur.sendline("md5sum %s" % self.deploy_path) cur.prompt() ret = cur.before md5 = self.get_md5(ret.split()) conf_path = os.path.join(ROOT, 'deploy.conf') cf = ConfigParser.ConfigParser() cf.read(conf_path) index_path = cf.get('html_path', 'index_path') index_backup = self.backup_old_file(cur, index_path) backup_list.append(str(index_backup)) deploy_list.append(index_path) if self.app_type == 'android_qfpay': cur.sendline('''python -c "import re; body=re.sub('Qianfang[a-zA-Z0-9\._]*\.apk', 'Qianfang_v%s.apk', open('%s_simple').read());f=open('%s','w');f.write(body.__str__());f.close()"''' % (self.app_version, index_path, index_path)) cur.prompt() check_success(cur, 'modify index %s' % index_path) elif self.app_type == 'ios_qfpay': plist_path = os.path.join(cf.get('ios_qfpay', 'deploy_path'), "QFPoS_v%s.plist" % self.app_version) plist_backup = self.backup_old_file(cur, plist_path) plist_simple = os.path.join(cf.get('ios_qfpay', 'deploy_path'), "QFPoS.plist_simple") backup_list.append(str(plist_backup)) deploy_list.append(plist_path) cur.sendline('''python -c "import re; body=re.sub('QFPoS[a-zA-Z0-9\._]*\.ipa', 'QFPoS_v%s.ipa', open('%s').read());f=open('%s','w');f.write(body.__str__());f.close()"''' % (self.app_version, plist_simple, plist_path)) cur.prompt() check_success(cur, 'modify plist %s' % index_path) cur.sendline('''python -c "import re; body=re.sub('QFPoS[a-zA-Z0-9\._]*\.plist', 'QFPoS_v%s.plist', open('%s_simple').read());f=open('%s','w');f.write(body.__str__());f.close()"''' % (self.app_version, index_path, index_path)) cur.prompt() check_success(cur, 'modify index %s' % index_path) cur.sendline("cp %s %s_simple" % (index_path, index_path)) cur.prompt() check_success(cur, 'copy to simple') cur_sql = self.db cur_sql.insert( "insert into deploy_list(user,operation,app_version,backup_path,deploy_path,stime,status) values(?,?,?,?,?,?,?)", [(login_user, operation, self.app_version, ' '.join(backup_list), ' '.join(deploy_list), time.strftime("%Y-%m-%d %H:%M:%S"), 1),] ) if md5 == self.ora_md5: print 'md5 ok' return 1 else: print 'md5 failed' return 0