Example #1
0
 def depfind(packages):
     deplist = {}
     for p in packages:
         for repoid, repo in repos.items():
             if p.paket.adi in repo.paketler.keys():
                 deplist[p.paket.adi] = repo.depcheck(p.paket.adi)
     return deplist
Example #2
0
 def depfind(packages):
     deplist = {}
     for p in packages:
         for repoid, repo  in  repos.items():
             if p.paket.adi in repo.paketler.keys():
                 deplist[p.paket.adi] = repo.depcheck(p.paket.adi)
     return deplist
Example #3
0
 def depfind(packages):
     deplist = {}
     for p in packages:
         for repoid, repo in repos.items():
             try:
                 if p.paket.adi in repo.paketler.keys():
                     deplist[p.paket.adi] = repo.depcheck(p.paket.adi)
             except:
                 print("sorunlu paket ", p.paket.adi)
                 tb.print_exc()
                 pass
     return deplist
Example #4
0
def gitcommit(fname):
    f = "/tmp/%s" % fname
    p = Push(f)
    if p.reindex == True:
        rp = ses.query(Repo).all()
        for r in rp:
            repos[r.id] = RepoView(r, True, pisi20repo)

    d = p.db()
    bra = p.ref
    rep = p.data['repository']["full_name"].replace("https://github.com/", "")
    if check_branch_db(rep, bra) == True:
        tar = p.data['repository']['updated_at']
        tar = tar.replace("Z", "").replace("T", " ")
        t = datetime.strptime(tar, "%Y-%m-%d %H:%M:%S")
        for _id, com in p.db2().items():
            print "gitcommit, com.modified :", com['modified']
            id = com['id']
            url = com['url']
            print com['timestamp'], len(com['modified'])
            for pkg in com['modified']:
                pkg = pkg.strip()
                pkgid = paketID(pkg)
                if pkgid == None:
                    ppp = Paket(adi=pkg,
                                aciklama="%s icin aciklama eklenmeli" % pkg)
                    ses.add(ppp)
                    ses.commit()
                    pkgid = paketID(pkg)
                if commitCheck(pkgid, id) == 0:
                    deplist = []
                    for repoid, repo in repos.items():
                        if pkg in repo.paketler.keys():
                            deplist = repo.depcheck(pkg)
                    drm = 0
                    state = True
                    for dep in deplist:
                        state = state and dep
                    if state == False:
                        drm = 2
                    k = Kuyruk(tarih=t, paket_id=pkgid, commit_id=id, \
                                      commit_url=url, durum=drm, repository=rep, \
                                      branch=bra)
                    ses.add(k)
                    ses.commit()
                    ses.flush()
                else:
                    print pkg, "  sorun var"
        return p.ref
    return p.ref
Example #5
0
def gitcommit(fname):
    f = "/tmp/%s" % fname
    p = Push(f)
    if p.reindex == True:
        rp = ses.query(Repo).all()
        for r in rp:
            repos[r.id] = RepoView(r, True, pisi20repo)

    d = p.db()
    bra = p.ref
    rep = p.data['repository']["full_name"].replace("https://github.com/", "")
    if check_branch_db(rep, bra) == True:
        tar = p.data['repository']['updated_at']
        tar = tar.replace("Z","").replace("T"," ")
        t = datetime.strptime(tar,"%Y-%m-%d %H:%M:%S")
        for _id, com in p.db2().items():
            print "gitcommit, com.modified :",com['modified']
            id = com['id']
            url = com['url']
            print com['timestamp'], len(com['modified'])
            for pkg in com['modified']:
                pkg = pkg.strip()
                pkgid = paketID(pkg)
                if pkgid == None:
                    ppp = Paket(adi=pkg, aciklama="%s icin aciklama eklenmeli" % pkg)
                    ses.add(ppp)
                    ses.commit()
                    pkgid = paketID(pkg)
                if commitCheck(pkgid, id) == 0:
                    deplist = []
                    for repoid, repo  in  repos.items():
                        if pkg in repo.paketler.keys():
                            deplist = repo.depcheck(pkg)
                    drm = 0
                    state = True
                    for dep in deplist:
                        state = state and dep
                    if state == False:
                        drm = 2
                    k = Kuyruk(tarih=t, paket_id=pkgid, commit_id=id, \
                                      commit_url=url, durum=drm, repository=rep, \
                                      branch=bra)
                    ses.add(k)
                    ses.commit() 
                    ses.flush()
                else:
                    print pkg, "  sorun var"
        return p.ref
    return p.ref
Example #6
0
def docker_image_name(r,b):
    for k, v in repos.items():
        if ((v.repo == r) and (v.branch == b)):
            return v.dockerimage
    return None
Example #7
0
def check_branch(r, b):
    for k, v in repos.items():
        if ((v.repo == r) and (v.branch == b)):
            return True
    return False
Example #8
0
def binpackage(name):
    for k,v in repos.items():
        if name in v.paketler:
            return  "%s True" % name
        else:
            return  "%s False" % name
Example #9
0
def check_branch(r, b):
    for k, v in repos.items():
        if ((v.repo == r) and (v.branch == b)):
            return True
    return False
Example #10
0
def binpackage(name):
    for k, v in repos.items():
        if name in v.paketler:
            return "%s True" % name
        else:
            return "%s False" % name
Example #11
0
def docker_image_name(r, b):
    for k, v in repos.items():
        if ((v.repo == r) and (v.branch == b)):
            return v.dockerimage
    return None
Example #12
0
def requestPkg(email):
    try:
        gonullu_id = ses.query(Gonullu).filter(Gonullu.email == email).one().id
    except:
        cevap = {
            'state':
            states.MAILERR,
            'durum':
            'mail yok',
            'mesaj':
            "[email protected] adresine mektup atarak gonullu olmak istediginizi belirtin"
        }
        return jsonify(cevap)
    try:
        kuyruk = ses.query(Kuyruk).filter(Kuyruk.durum == 0).order_by(
            Kuyruk.id.asc()).first()
        k = ses.query(Kuyruk)
        k = k.filter(Kuyruk.id == kuyruk.id)
        kayit = k.one()
    except:
        cevap = {
            'state': states.NOPACKAGE,
            'message': 'No package in queue',
            'durum': 'paket yok',
            'mesaj': 'Daha fazla bekleyin'
        }
        return jsonify(cevap)
    kayit.durum = 100
    ses.flush()
    yeniGorev = Gorev(gonullu_id=gonullu_id, kuyruk_id=kuyruk.id)
    ses.add(yeniGorev)
    ses.flush()
    docker_image = docker_image_name(kuyruk.repository, kuyruk.branch)
    repobinary = ""
    for repoid, r in repos.items():
        if (r.repo == kuyruk.repository) and (r.branch == kuyruk.branch):
            repobinary = r.binary_repo_dir

    paketadi = ses.query(Paket).filter(Paket.id == kuyruk.paket_id).first().adi
    ses.commit()
    krn = False
    if paketadi in blacklist:
        krn = True
    if docker_image is not None:
        cevap = {
            'state': states.OK,
            'durum': 'ok',
            'kuyruk_id': kuyruk.id,
            'queue_id': kuyruk.id,
            'paket': paketadi,
            'package': paketadi,
            'commit_id': kuyruk.commit_id,
            'repo': kuyruk.repository,
            'branch': kuyruk.branch,
            'kernel_required': krn,
            'kernel_gerekli': krn,
            'dockerimage': docker_image,
            'binary_repo_dir': repobinary
        }
        print(">>>>> ", cevap)
        return jsonify(cevap)
    else:
        cevap = {
            'state':
            states.NODOCKERIMAGE,
            'message':
            'No docker image set for repository %s  branch %s' %
            (kuyruk.repository, kuyruk.branch)
        }
        return jsonify(cevap)