commit:     d7ea5a2a7d0170b6e7aa8c777f1d860828d75107
Author:     Magnus Granberg <zorry <AT> gentoo <DOT> org>
AuthorDate: Tue May 26 20:56:33 2015 +0000
Commit:     Magnus Granberg <zorry <AT> gentoo <DOT> org>
CommitDate: Tue May 26 20:56:33 2015 +0000
URL:        
https://gitweb.gentoo.org/proj/tinderbox-cluster.git/commit/?id=d7ea5a2a

small fixes for diffrent things

 conf/tbc.conf          |   4 +-
 tbc/bin/tbc_guest_jobs |   7 +-
 tbc/pym/build_job.py   |   7 +-
 tbc/pym/build_log.py   |   9 +--
 tbc/pym/jobs.py        |   2 +-
 tbc/pym/package.py     |  94 +++++++++++++++++---------
 tbc/pym/qachecks.py    | 178 +++++++++++++++++++++++++++++++++++++++++++++++++
 tbc/pym/sqlquerys.py   |  16 +++--
 tbc/pym/updatedb.py    |   2 +-
 9 files changed, 264 insertions(+), 55 deletions(-)

diff --git a/conf/tbc.conf b/conf/tbc.conf
index ca3c987..339a22a 100644
--- a/conf/tbc.conf
+++ b/conf/tbc.conf
@@ -8,8 +8,8 @@ SQLHOST=localhost
 SQLUSER=buildhost
 # Sql Password
 SQLPASSWD=buildhost
-# TBC git repo name for the setups/configs
-TBCGITREPONAME=tinderboxs_configs
+# TBC git repo path for the setups/configs /etc/portage
+TBCGITREPOPATH=/var/cache/tbc/tinderboxs_configs
 TBCSONFIG=base
 # Main logfile
 LOGFILE=/var/log/tbc

diff --git a/tbc/bin/tbc_guest_jobs b/tbc/bin/tbc_guest_jobs
index 8cecba2..a6fa566 100755
--- a/tbc/bin/tbc_guest_jobs
+++ b/tbc/bin/tbc_guest_jobs
@@ -4,7 +4,7 @@
 # Distributed under the terms of the GNU General Public License v2
 
 from __future__ import print_function
-from tbc.readconf import get_conf_settings
+from tbc.readconf import read_config_settings
 from tbc.ConnectionManager import NewConnection
 from tbc.sqlquerys import add_tbc_logs, get_config_id, check_host_updatedb, 
update_deamon_status
 from tbc.check_setup import check_configure_guest
@@ -18,8 +18,7 @@ import time
 
 def main():
        repeat = True
-       reader = get_conf_settings()
-       tbc_settings_dict=reader.read_tbc_settings_all()
+       tbc_settings_dict = read_config_settings()
        config = tbc_settings_dict['tbc_config']
        hostname = tbc_settings_dict['hostname']
        Session = sessionmaker(bind=NewConnection(tbc_settings_dict))
@@ -29,7 +28,7 @@ def main():
        init_build_job = build_job_action(config_id, session)
        while repeat:
                jobs_main(session, config)
-               if not check_configure_guest(session, config_id) or 
check_host_updatedb(session):
+               if not check_configure_guest(session, tbc_settings_dict, 
config_id) or check_host_updatedb(session):
                        time.sleep(30)
                        continue
                else:

diff --git a/tbc/pym/build_job.py b/tbc/pym/build_job.py
index 0167882..dfe6639 100644
--- a/tbc/pym/build_job.py
+++ b/tbc/pym/build_job.py
@@ -12,9 +12,9 @@ from portage import _encodings
 from portage import _unicode_decode
 from portage.versions import cpv_getkey
 from portage.dep import check_required_use
-from tbc.manifest import tbc_manifest
 from tbc.depclean import do_depclean
 from tbc.flags import tbc_use_flags
+from tbc.qacheck import check_file_in_manifest
 from tbc.main import emerge_main
 from tbc.build_log import log_fail_queru
 from tbc.actions import load_emerge_config
@@ -32,20 +32,19 @@ class build_job_action(object):
                package = build_dict['package']
                cpv = build_dict['cpv']
                pkgdir = portdb.getRepositoryPath(repo) + "/" + cp
-               init_manifest =  tbc_manifest(settings, pkgdir)
                build_use_flags_list = []
                try:
                        ebuild_version_checksum_tree = 
portage.checksum.sha256hash(pkgdir + "/" + package + "-" + 
build_dict['ebuild_version'] + ".ebuild")[0]
                except:
                        ebuild_version_checksum_tree = None
                if ebuild_version_checksum_tree == build_dict['checksum']:
-                       manifest_error = 
init_manifest.check_file_in_manifest(portdb, cpv, build_use_flags_list, repo)
+                       manifest_error = check_file_in_manifest(pkgdir, 
settings, portdb, cpv, build_use_flags_list, repo)
                        if manifest_error is None:
                                init_flags = tbc_use_flags(settings, portdb, 
cpv)
                                build_use_flags_list = 
init_flags.comper_useflags(build_dict)
                                log_msg = "build_use_flags_list %s" % 
(build_use_flags_list,)
                                add_tbc_logs(self._session, log_msg, "info", 
self._config_id)
-                               manifest_error = 
init_manifest.check_file_in_manifest(portdb, cpv, build_use_flags_list, repo)
+                               manifest_error = check_file_in_manifest(pkgdir, 
settings, portdb, cpv, build_use_flags_list, repo)
                        if manifest_error is None:
                                build_dict['check_fail'] = False
                                build_cpv_dict = {}

diff --git a/tbc/pym/build_log.py b/tbc/pym/build_log.py
index f6ceea6..26735e2 100644
--- a/tbc/pym/build_log.py
+++ b/tbc/pym/build_log.py
@@ -20,7 +20,7 @@ portage.proxy.lazyimport.lazyimport(globals(),
        'tbc.actions:action_info,load_emerge_config',
 )
 
-from tbc.repoman_tbc import tbc_repoman
+from tbc.qachecks import check_repoman
 from tbc.text import get_log_text_dict
 from tbc.package import tbc_package
 from tbc.readconf import read_config_settings
@@ -184,7 +184,6 @@ def search_buildlog(session, logfile_text_dict, 
max_text_lines):
 
 def get_buildlog_info(session, settings, pkg, build_dict):
        myportdb = portage.portdbapi(mysettings=settings)
-       init_repoman = tbc_repoman(settings, myportdb)
        logfile_text_dict, max_text_lines = 
get_log_text_dict(settings.get("PORTAGE_LOG_FILE"))
        hilight_dict = search_buildlog(session, logfile_text_dict, 
max_text_lines)
        error_log_list = []
@@ -206,11 +205,9 @@ def get_buildlog_info(session, settings, pkg, build_dict):
                                i = i +1
 
        # Run repoman check_repoman()
-       repoman_error_list = init_repoman.check_repoman(build_dict['cpv'], 
pkg.repo)
-       if repoman_error_list != []:
+       repoman_error_list = check_repoman(settings, myportdb, 
build_dict['cpv'], pkg.repo)
+       if repoman_error_list:
                sum_build_log_list.append("1") # repoman = 1
-       else:
-               repoman_error_list = False
        if qa_error_list != []:
                sum_build_log_list.append("2") # qa = 2
        else:

diff --git a/tbc/pym/jobs.py b/tbc/pym/jobs.py
index a805a22..830aa07 100644
--- a/tbc/pym/jobs.py
+++ b/tbc/pym/jobs.py
@@ -59,7 +59,7 @@ def jobs_main(session, config_id):
                        update_job_list(session, "Runing", job_id)
                        log_msg = "Job %s is runing." % (job_id,)
                        add_tbc_logs(session, log_msg, "info", config_id)
-                        if update_db_main(session, None, config_id):
+                       if update_db_main(session, None, config_id):
                                update_job_list(session, "Done", job_id)
                                log_msg = "Job %s is done.." % (job_id,)
                                add_tbc_logs(session, log_msg, "info", 
config_id)

diff --git a/tbc/pym/package.py b/tbc/pym/package.py
index 5f172cb..a61a1c9 100644
--- a/tbc/pym/package.py
+++ b/tbc/pym/package.py
@@ -8,12 +8,13 @@ from tbc.flags import tbc_use_flags
 from tbc.manifest import tbc_manifest
 from tbc.text import get_ebuild_cvs_revision
 from tbc.flags import tbc_use_flags
+from tbc.qachecks import digestcheck, check_repoman
 from tbc.sqlquerys import add_tbc_logs, get_package_info, get_config_info, \
        add_new_build_job, add_new_ebuild_sql, get_ebuild_id_list, 
add_old_ebuild, \
        get_package_metadata_sql, update_package_metadata, update_manifest_sql, 
\
        get_package_info_from_package_id, get_config_all_info, 
add_new_package_sql, \
-       get_ebuild_checksums, get_ebuild_id_db, get_configmetadata_info, 
get_setup_info
-from tbc.readconf import get_conf_settings
+       get_ebuild_checksums, get_ebuild_id_db, get_configmetadata_info, 
get_setup_info, \
+       get_ebuild_info_ebuild_id
 
 class tbc_package(object):
 
@@ -219,6 +220,30 @@ class tbc_package(object):
                # Add the ebuild to the build jobs table if needed
                self.add_new_build_job_db(ebuild_id_list, packageDict, 
config_cpv_listDict)
 
+       def get_manifest_checksum_tree(self, pkgdir, cp, repo, mytree):
+
+               # Get the cp manifest file checksum.
+               try:
+                       manifest_checksum_tree = 
portage.checksum.sha256hash(pkgdir + "/Manifest")[0]
+               except:
+                       # Get the package list from the repo
+                       package_list_tree =self. _myportdb.cp_all(trees=mytree)
+                       if cp in package_list_tree:
+                               log_msg = "QA: Can't checksum the Manifest 
file. :%s:%s" % (cp, repo,)
+                               add_zobcs_logs(self._session, log_msg, "error", 
self._config_id)
+                               log_msg = "C %s:%s ... Fail." % (cp, repo)
+                               add_zobcs_logs(self._session, log_msg, "error", 
self._config_id)
+                       return "0"
+               fail_msg = digestcheck(self._mysettings, pkgdir)
+               if fail_msg:
+                       log_msg = "QA: Manifest file has errors. :%s:%s" % (cp, 
repo,)
+                       add_zobcs_logs(self._session, log_msg, "error", 
self._config_id)
+                       add_zobcs_logs(self._session, fail_msg, "error", 
self._config_id)
+                       log_msg = "C %s:%s ... Fail." % (cp, repo)
+                       add_zobcs_logs(self._session, log_msg, "error", 
self._config_id)
+                       return None
+               return manifest_checksum_tree
+
        def add_new_package_db(self, cp, repo):
                # Add new categories package ebuild to tables package and 
ebuilds
                # C = Checking
@@ -230,16 +255,9 @@ class tbc_package(object):
                repodir = self._myportdb.getRepositoryPath(repo)
                pkgdir = repodir + "/" + cp # Get RepoDIR + cp
 
-               # Get the cp manifest file checksum.
-               try:
-                       manifest_checksum_tree = 
portage.checksum.sha256hash(pkgdir + "/Manifest")[0]
-               except:
-                       manifest_checksum_tree = "0"
-                       log_msg = "QA: Can't checksum the Manifest file. 
:%s:%s" % (cp, repo,)
-                       add_tbc_logs(self._session, log_msg, "info", 
self._config_id)
-                       log_msg = "C %s:%s ... Fail." % (cp, repo)
-                       add_tbc_logs(self._session, log_msg, "info", 
self._config_id)
-                       return None
+               manifest_checksum_tree = 
self.get_manifest_checksum_tree(pkgdir, cp, repo, mytree)
+               if manifest_checksum_tree is None:
+                       return
                package_id = add_new_package_sql(self._session, cp, repo)
                
                package_metadataDict = self.get_package_metadataDict(pkgdir, 
package_id)
@@ -259,6 +277,10 @@ class tbc_package(object):
                new_ebuild_id_list = []
                old_ebuild_id_list = []
                for cpv in sorted(ebuild_list_tree):
+                       repoman_fail = check_repoman(self._mysettings, 
self._myportdb, cpv, repo)
+                       if repoman_fail:
+                               log_msg = "Repoman %s:%s ... Fail." % (cpv, 
repo)
+                               add_tbc_logs(self._session, log_msg, "error", 
self._config_id)
                        packageDict[cpv] = self.get_packageDict(pkgdir, cpv, 
repo)
 
                self.add_package(packageDict, package_metadataDict, package_id, 
new_ebuild_id_list, old_ebuild_id_list, manifest_checksum_tree)
@@ -275,17 +297,11 @@ class tbc_package(object):
                add_tbc_logs(self._session, log_msg, "info", self._config_id)
                repodir = self._myportdb.getRepositoryPath(repo)
                pkgdir = repodir + "/" + cp # Get RepoDIR + cp
-
-               # Get the cp mainfest file checksum
-               try:
-                       manifest_checksum_tree = 
portage.checksum.sha256hash(pkgdir + "/Manifest")[0]
-               except:
-                       manifest_checksum_tree = "0"
-                       log_msg = "QA: Can't checksum the Manifest file. %s:%s" 
% (cp, repo,)
-                       add_tbc_logs(self._session, log_msg, "info", 
self._config_id)
-                       log_msg = "C %s:%s ... Fail." % (cp, repo)
-                       add_tbc_logs(self._session, log_msg, "info", 
self._config_id)
-                       return None
+               mytree = []
+               mytree.append(repodir)
+               manifest_checksum_tree = 
self.get_manifest_checksum_tree(pkgdir, cp, repo, mytree)
+               if manifest_checksum_tree is None:
+                       return
 
                # if we NOT have the same checksum in the db update the package
                if manifest_checksum_tree != PackageInfo.Checksum:
@@ -295,18 +311,28 @@ class tbc_package(object):
                        add_tbc_logs(self._session, log_msg, "info", 
self._config_id)
 
                        # Get the ebuild list for cp
-                       mytree = []
-                       mytree.append(repodir)
+                       old_ebuild_id_list = []
                        ebuild_list_tree = self._myportdb.cp_list(cp, 
use_cache=1, mytree=mytree)
                        if ebuild_list_tree == []:
-                               log_msg = "QA: Can't get the ebuilds list. 
%s:%s" % (cp, repo,)
-                               add_tbc_logs(self._session, log_msg, "info", 
self._config_id)
-                               log_msg = "C %s:%s ... Fail." % (cp, repo)
-                               add_tbc_logs(self._session, log_msg, "info", 
self._config_id)
-                               return None
+                               if manifest_checksum_tree == "0":
+                                       old_ebuild_id_list = 
get_ebuild_id_list(self._session, package_id)
+                                       for ebuild_id in old_ebuild_id_list:
+                                               EbuildInfo = 
get_ebuild_info_ebuild_id(self._session, ebuild_id)
+                                               cpv = cp + "-" + 
EbuildInfo.Version
+                                               # R =  remove ebuild
+                                               log_msg = "R %s:%s" % (cpv, 
repo,)
+                                               add_tbc_logs(self._session, 
log_msg, "info", self._config_id)
+                                       add_old_ebuild(session, 
old_ebuild_id_list)
+                                       log_msg = "C %s:%s ... Done." % (cp, 
repo)
+                                       add_tbc_logs(self._session, log_msg, 
"info", self._config_id)
+                               else:
+                                       log_msg = "QA: Can't get the ebuilds 
list. %s:%s" % (cp, repo,)
+                                       add_tbc_logs(self._session, log_msg, 
"info", self._config_id)
+                                       log_msg = "C %s:%s ... Fail." % (cp, 
repo)
+                                       add_tbc_logs(self._session, log_msg, 
"info", self._config_id)
+                               return
                        packageDict ={}
                        new_ebuild_id_list = []
-                       old_ebuild_id_list = []
                        for cpv in sorted(ebuild_list_tree):
 
                                # split out ebuild version
@@ -334,6 +360,12 @@ class tbc_package(object):
                                else:
                                        ebuild_version_manifest_checksum_db = 
checksums_db
 
+                               if ebuild_version_manifest_checksum_db is None 
or ebuild_version_checksum_tree != ebuild_version_manifest_checksum_db:
+                                       repoman_fail = 
check_repoman(self._mysettings, self._myportdb, cpv, repo)
+                                       if repoman_fail:
+                                               log_msg = "Repoman %s:%s ... 
Fail." % (cpv, repo)
+                                               add_zobcs_logs(self._session, 
log_msg, "info", self._config_id)
+
                                # Check if the checksum have change
                                if ebuild_version_manifest_checksum_db is None:
                                        # N = New ebuild

diff --git a/tbc/pym/qachecks.py b/tbc/pym/qachecks.py
new file mode 100644
index 0000000..f1d0fb1
--- /dev/null
+++ b/tbc/pym/qachecks.py
@@ -0,0 +1,178 @@
+# Copyright 1998-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+import os
+import warnings
+import sys
+import codecs
+from portage import os, _encodings, _unicode_decode
+from portage.exception import DigestException, FileNotFound
+from portage.localization import _
+from portage.manifest import Manifest
+from portage import os, _encodings, _unicode_decode, _unicode_encode
+from portage.exception import DigestException, FileNotFound, ParseError, 
PermissionDenied
+from _emerge.Package import Package
+from _emerge.RootConfig import RootConfig
+from repoman.checks import run_checks
+import portage
+
+# Copy of portage.digestcheck() but without the writemsg() stuff
+def digestcheck(mysettings, pkgdir):
+       """
+       Verifies checksums. Assumes all files have been downloaded.
+       @rtype: int
+       @return: 1 on success and 0 on failure
+       """
+
+       myfiles = []
+       justmanifest = None
+       mf = None
+
+       if mysettings.get("EBUILD_SKIP_MANIFEST") == "1":
+               return False
+       hash_filter = _hash_filter(mysettings.get("PORTAGE_CHECKSUM_FILTER", 
""))
+       if hash_filter.transparent:
+               hash_filter = None
+       if mf is None:
+               mf = mysettings.repositories.get_repo_for_location(
+                       os.path.dirname(os.path.dirname(pkgdir)))
+               mf = mf.load_manifest(pkgdir, mysettings["DISTDIR"])
+       try:
+               if not mf.thin and strict and "PORTAGE_PARALLEL_FETCHONLY" not 
in mysettings:
+                       if mf.fhashdict.get("EBUILD"):
+                               mf.checkTypeHashes("EBUILD", 
hash_filter=hash_filter)
+                       if mf.fhashdict.get("AUX"):
+                               mf.checkTypeHashes("AUX", 
hash_filter=hash_filter)
+                       if mf.fhashdict.get("MISC"):
+                               mf.checkTypeHashes("MISC", 
ignoreMissingFiles=True,
+                                       hash_filter=hash_filter)
+               for f in myfiles:
+                       ftype = mf.findFile(f)
+                       if ftype is None:
+                               if mf.allow_missing:
+                                       continue
+                               return ("\n!!! Missing digest for '%s'\n") % f
+                       mf.checkFileHashes(ftype, f, hash_filter=hash_filter)
+       except FileNotFound as e:
+               return ("\n!!! A file listed in the Manifest could not be 
found: %s\n") % str(e)
+       except DigestException as e:
+               return ("!!! Digest verification failed: %s\nReason: %s\nGot: 
%s\nExpected: %s") \
+                                % (e.value[0], e.value[1], e.value[2], 
e.value[3])
+       if mf.thin or mf.allow_missing:
+               # In this case we ignore any missing digests that
+               # would otherwise be detected below.
+               return False
+       # Make sure that all of the ebuilds are actually listed in the Manifest.
+       for f in os.listdir(pkgdir):
+               pf = None
+               if f[-7:] == '.ebuild':
+                       pf = f[:-7]
+               if pf is not None and not mf.hasFile("EBUILD", f):
+                       return ("!!! A file is not listed in the Manifest: 
'%s'\n") % os.path.join(pkgdir, f)
+
+       # epatch will just grab all the patches out of a directory, so we have 
to
+       # make sure there aren't any foreign files that it might grab.
+       filesdir = os.path.join(pkgdir, "files")
+
+       for parent, dirs, files in os.walk(filesdir):
+               try:
+                       parent = _unicode_decode(parent,
+                               encoding=_encodings['fs'], errors='strict')
+               except UnicodeDecodeError:
+                       parent = _unicode_decode(parent,
+                               encoding=_encodings['fs'], errors='replace')
+                       return ("!!! Path contains invalid character(s) for 
encoding '%s': '%s'") % (_encodings['fs'], parent)
+               for d in dirs:
+                       d_bytes = d
+                       try:
+                               d = _unicode_decode(d,
+                                       encoding=_encodings['fs'], 
errors='strict')
+                       except UnicodeDecodeError:
+                               d = _unicode_decode(d,
+                                       encoding=_encodings['fs'], 
errors='replace')
+                               return ("!!! Path contains invalid character(s) 
for encoding '%s': '%s'") % (_encodings['fs'], os.path.join(parent, d))
+                       if d.startswith(".") or d == "CVS":
+                               dirs.remove(d_bytes)
+               for f in files:
+                       try:
+                               f = _unicode_decode(f,
+                                       encoding=_encodings['fs'], 
errors='strict')
+                       except UnicodeDecodeError:
+                               f = _unicode_decode(f,
+                                       encoding=_encodings['fs'], 
errors='replace')
+                               if f.startswith("."):
+                                       continue
+                               f = os.path.join(parent, f)[len(filesdir) + 1:]
+                               return ("!!! File name contains invalid 
character(s) for encoding '%s': '%s'") % (_encodings['fs'], f)
+                       if f.startswith("."):
+                               continue
+                       f = os.path.join(parent, f)[len(filesdir) + 1:]
+                       file_type = mf.findFile(f)
+                       if file_type != "AUX" and not f.startswith("digest-"):
+                               return ("!!! A file is not listed in the 
Manifest: '%s'\n") % os.path.join(filesdir, f)
+       return False
+
+
+def check_file_in_manifest(pkgdir, mysettings, portdb, cpv, 
build_use_flags_list, repo):
+       myfetchlistdict = portage.FetchlistDict(pkgdir, mysettings, portdb)
+       my_manifest = portage.Manifest(pkgdir, mysettings['DISTDIR'], 
fetchlist_dict=myfetchlistdict, manifest1_compat=False, from_scratch=False)
+       ebuild_version = portage.versions.cpv_getversion(cpv)
+       package = portage.versions.cpv_getkey(cpv).split("/")[1]
+       if my_manifest.findFile(package + "-" + ebuild_version + ".ebuild") is 
None:
+               return "Ebuild file not found."
+       tree = portdb.getRepositoryPath(repo)
+       cpv_fetchmap = portdb.getFetchMap(cpv, useflags=build_use_flags_list, 
mytree=tree)
+       self._mysettings.unlock()
+       try:
+               portage.fetch(cpv_fetchmap, mysettings, listonly=0, 
fetchonly=0, locks_in_subdir='.locks', use_locks=1, try_mirrors=1)
+       except:
+               self._mysettings.lock()
+               return "Can't fetch the file."
+       finally:
+               self._mysettings.lock()
+       try:
+               my_manifest.checkCpvHashes(cpv, checkDistfiles=True, 
onlyDistfiles=False, checkMiscfiles=True)
+       except:
+               return "Can't fetch the file or the hash failed."
+       try:
+               portdb.fetch_check(cpv, useflags=build_use_flags_list, 
mysettings=mysettings, all=False)
+       except: 
+               return "Fetch check failed."
+       return
+
+def check_repoman(mysettings, myportdb, cpv, repo):
+               # We run repoman run_checks on the ebuild
+               ebuild_version_tree = portage.versions.cpv_getversion(cpv)
+               element = portage.versions.cpv_getkey(cpv).split('/')
+               categories = element[0]
+               package = element[1]
+               pkgdir = myportdb.getRepositoryPath(repo) + "/" + categories + 
"/" + package
+               full_path = pkgdir + "/" + package + "-" + ebuild_version_tree 
+ ".ebuild"
+               root = '/'
+               trees = {
+               root : {'porttree' : portage.portagetree(root, 
settings=mysettings)}
+               }
+               root_config = RootConfig(mysettings, trees[root], None)
+               allvars = set(x for x in portage.auxdbkeys if not 
x.startswith("UNUSED_"))
+               allvars.update(Package.metadata_keys)
+               allvars = sorted(allvars)
+               myaux = dict(zip(allvars, myportdb.aux_get(cpv, allvars, 
myrepo=repo)))
+               pkg = Package(cpv=cpv, metadata=myaux, root_config=root_config, 
type_name='ebuild')
+               fails = []
+               try:
+                       # All ebuilds should have utf_8 encoding.
+                       f = codecs.open(_unicode_encode(full_path,
+                       encoding = _encodings['fs'], errors = 'strict'),
+                       mode = 'r', encoding = _encodings['repo.content'])
+                       try:
+                               for check_name, e in run_checks(f, pkg):
+                                       fails.append(check_name + ": " + e)
+                       finally:
+                               f.close()
+               except UnicodeDecodeError:
+                       # A file.UTF8 failure will have already been recorded 
above.
+                       pass
+               # fails will have a list with repoman errors
+               if fails == []:
+                       return False
+               return fails
\ No newline at end of file

diff --git a/tbc/pym/sqlquerys.py b/tbc/pym/sqlquerys.py
index f9fc8b4..097ded2 100644
--- a/tbc/pym/sqlquerys.py
+++ b/tbc/pym/sqlquerys.py
@@ -147,6 +147,9 @@ def get_ebuild_info(session, build_dict):
                return EbuildInfo.all(), True
        return EbuildInfo2, False
 
+def get_ebuild_info_ebuild_id(session, ebuild_id):
+       return session.query(Ebuilds).filter_by(EbuildId = 
ebuild_id).filter_by(Active = True).one()
+
 def get_build_job_id(session, build_dict):
        BuildJobsIdInfo = 
session.query(BuildJobs.BuildJobId).filter_by(EbuildId = 
build_dict['ebuild_id']).filter_by(ConfigId = build_dict['config_id']).all()
        if BuildJobsIdInfo == []:
@@ -500,10 +503,6 @@ def get_ebuild_checksums(session, package_id, 
ebuild_version):
        except MultipleResultsFound as e:
                EbuildInfo2 = session.query(Ebuilds).filter_by(PackageId = 
package_id).filter_by(Version = ebuild_version).filter_by(Active = True).all()
                for Ebuild in EbuildInfo2:
-                       print("ebuild version checksum")
-                       print(ebuild_version)
-                       print(Ebuild.Version)
-                       print(Ebuild.Checksum)
                        ebuild_checksum_list.append(Ebuild.Checksum)
                return ebuild_checksum_list, True
        return EbuildInfo.Checksum, False
@@ -522,8 +521,13 @@ def get_ebuild_id_db(session, checksum, package_id):
        return EbuildInfos.EbuildId, False
 
 def check_host_updatedb(session):
+       jobs = False
        try:
                JobsInfo = session.query(Jobs).filter_by(Status = 
'Done').filter_by(JobType = 'esync').one()
        except NoResultFound as e:
-               return True
-       return False
+               jobs = True
+       try:
+               JobsInfo = session.query(Jobs).filter_by(Status = 
'Done').filter_by(JobType = 'updatedb').one()
+       except NoResultFound as e:
+               jobs = True
+       return jobs

diff --git a/tbc/pym/updatedb.py b/tbc/pym/updatedb.py
index 3cbe495..9b74093 100644
--- a/tbc/pym/updatedb.py
+++ b/tbc/pym/updatedb.py
@@ -133,7 +133,7 @@ def update_cpv_db(session, config_id, tbc_settings_dict):
 
 def update_db_main(session, repo_cp_dict, config_id):
        # Main
-        if repo_cp_dict == {}:
+       if repo_cp_dict == {}:
                return True
        # Logging
        tbc_settings_dict = reader. read_config_settings()

Reply via email to