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 get_backend(self, module):
         if module.source == fetch.LOCAL:
             return Local()
         else:
             logging.info("Investigating module: " + str(module) +
                          "[parent: " + str(module.parent) + "]")
             if module.source == fetch.SVN:
                 return Svn()
             if module.source == fetch.GIT:
                 return Git()
             if module.source == fetch.GITSUBMODULE:
                 return GitSubmodule()
Esempio n. 3
0
    def __init__(self):
        self.svn = Svn(svn_utils.find_svn_root_path())

        self.trunk_dir = "trunk"
        self.tags_dir = "tags"
        self.branches_dir = "branches"
        self.develop_branch = os.path.join(self.branches_dir, "develop")
        self.feature_dir = os.path.join(self.branches_dir, "feature")
        self.release_dir = os.path.join(self.branches_dir, "release")
        self.hotfix_dir = os.path.join(self.branches_dir, "hotfix")

        self.branch_dir_by_type = {"feature" : self.feature_dir, \
         "release" : self.release_dir, \
         "hotfix" : self.hotfix_dir}
Esempio n. 4
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)