Esempio n. 1
0
def get_repo_info(repo=None, logged_in=False):
    if repo is None:
        abort(500)
    rinfo_key = 'cache:repo_info:%s' % repo
    repo_info_cache = db.exists(rinfo_key)
    pkg_list = {}
    p, a, rev_pending = get_build_info(1, repo, logged_in)

    # logger.info('@@-antbs.py-@@ 293 | GET_REPO_INFO - FIRED')
    if not repo_info_cache:
        logger.info('@@-antbs.py-@@ 295 | GET_REPO_INFO - CACHE CHECK FAILED. WE ARE NOT USING CACHED INFO')
        all_packages = glob.glob('/srv/antergos.info/repo/%s/x86_64/***.pkg.tar.xz' % repo)

        if all_packages is not None:
            for item in all_packages:
                # logger.info(item)
                item = item.split('/')[-1]
                item = re.search('^([a-z]|[0-9]|-|_)+(?=-\d|r|v)', item)

                item = item.group(0) or ''
                if not item or item == '':
                    continue
                logger.info(item)
                pkg = package.Package(item)
                builds = pkg.builds
                try:
                    bnum = builds[0]
                except Exception:
                    bnum = ''
                review_stat = db.get('build_log:%s:review_stat' % bnum) or 'n/a'
                review_stat = db.get('review_stat:%s:string' % review_stat) or 'n/a'
                review_dev = db.get('build_log:%s:review_dev' % bnum) or 'n/a'
                review_date = db.get('build_log:%s:review_date' % bnum) or 'n/a'
                all_info = dict(bnum=bnum, name=pkg.name, version=pkg.version, review_dev=review_dev,
                                review_stat=review_stat, review_date=review_date, pkgid=pkg.pkgid)

                db.hmset('%s:%s' % (rinfo_key, pkg.pkgid), all_info)
                db.expire('%s:%s' % (rinfo_key, pkg.pkgid), 901)
                db.rpush(rinfo_key, pkg.pkgid)
                db.expire(rinfo_key, 900)
                pkg_list[pkg.pkgid] = all_info

    else:
        logger.info('@@-antbs.py-@@ 318 | GET_REPO_INFO - CACHE CHECK PASSED. WE ARE USING CACHED INFO')
        rindex = db.lrange(rinfo_key, 0, -1)
        for i in rindex:
            h = db.hgetall('%s:%s' % (rinfo_key, i))
            pkg_list[i] = h
            # logger.info('@@-antbs.py-@@ 320 | GET_REPO_INFO - pkg_list hash is %s' % str(pkg_list))

    return pkg_list, rev_pending
Esempio n. 2
0
    def process_manual(self):

        try:
            key = db.lrange("payloads:index", -1, -1)
            logger.info(key)
            logger.info(key[0])
            self.payload = db.hgetall(key[0])
        except Exception as err:
            logger.error(err)
            self.result = 500
            return
        self.commits = ast.literal_eval(self.payload["commits"])
        self.is_github = True
        self.full_name = "Antergos/antergos-packages"
        self.repo = "antergos-packages"
Esempio n. 3
0
# along with AntBS; If not, see <http://www.gnu.org/licenses/>.


""" Monitor commit activity on 3rd-party repos. Schedule a build when new commits are detected. """

from utils.logging_config import logger
from utils.redis_connection import db
from utils.server_status import status
import webhook
from github3 import login
from gitlab import Gitlab
import json

GITLAB_TOKEN = status.gitlab_token
GITHUB_TOKEN = status.github_token
ITEMS_HASH = db.hgetall("antbs:monitor:list") or False
logger.debug(type(ITEMS_HASH))
MONITOR_ITEMS = ITEMS_HASH if ITEMS_HASH else None


def maybe_check_for_new_items():
    """


    :return:
    """
    return db.exists("FEED_CHECKED")


def check_for_new_items():
    """