Esempio n. 1
0
def check(ip):
    svn_url = "svn://{0}".format(ip)

    etalon = []
    with open(ETALON_FILENAME) as fn:
        for line in fn:
            etalon.append(json.loads(line))

    svn = Svn(svn_url)
    rev = svn.info()["rev"]

    if rev != len(etalon) - 1:
        print "Wrong revisions number"
        sys.exit(STATUS_NOT_OK)

    for _ in xrange(ITERATIONS):
        et = random.choice(etalon)
        rev = et["rev"]
        files = et["files"]

        for r_file in svn.ls(rev=rev):
            #logging.info("Checking rev: %d, file '%s', size %d", rev, r_file["name"], r_file["size"])
            if r_file["name"] not in files:
                print "File '{0}' in rev {1} should be deleted".format(r_file["name"], rev)
                sys.exit(STATUS_NOT_OK)

            e_file = files[r_file["name"]]
            if e_file["deleted"]:
                print "File '{0}' should be deleted in rev {1}".format(e_file["name"], rev)
                sys.exit(STATUS_NOT_OK)
Esempio n. 2
0
def main():
    logging.basicConfig(format="%(asctime)-15s:%(levelname)s:%(message)s", level=logging.INFO)
    if len(sys.argv) < 2:
        print >>sys.stderr, "Usage: {0} ip".format(sys.argv[0])
        sys.exit(1)

    svn_url = sys.argv[1]

    svn = Svn(svn_url)
    max_rev = svn.info()["rev"]

    deleted_files = set()
    for rev in xrange(max_rev + 1):
        info = {}
        info["rev"] = rev
        files = {}
        for f in svn.ls(rev=rev):
            f["deleted"] = False
            if f["name"] in deleted_files or f["size"] > MAX_FILE_SIZE:
                deleted_files.add(f["name"])
                f["deleted"] = True
            files[f["name"]] = f
        info["files"] = files
        print json.dumps(info)