Esempio n. 1
0
    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)
Esempio n. 2
0
    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
Esempio n. 3
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)
Esempio n. 4
0
        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):
Esempio n. 5
0
    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