commit:     070938ef89e8cc93fe2072c540d8e620607b2bee
Author:     Magnus Granberg <zorry <AT> gentoo <DOT> org>
AuthorDate: Sun Jan 24 22:24:26 2016 +0000
Commit:     Magnus Granberg <zorry <AT> gentoo <DOT> org>
CommitDate: Sun Jan 24 22:24:26 2016 +0000
URL:        
https://gitweb.gentoo.org/proj/tinderbox-cluster.git/commit/?id=070938ef

add support for logging

 bin/tbc_guest_jobs   | 30 +++++++++++++++++++++--------
 bin/tbc_host_jobs    | 14 +++++++++-----
 pym/tbc/build_log.py | 22 ++++++++++++++--------
 pym/tbc/jobs.py      | 31 +++++++++++++++---------------
 pym/tbc/log.py       | 38 +++++++++++++++++++++++++++++++++++++
 pym/tbc/package.py   | 53 ++++++++++++++++++++++++++--------------------------
 pym/tbc/readconf.py  | 10 ++++++++--
 pym/tbc/sqlquerys.py |  9 ++++++---
 pym/tbc/sync.py      | 21 +++++++++++++--------
 pym/tbc/updatedb.py  | 21 +++++++++++----------
 10 files changed, 164 insertions(+), 85 deletions(-)

diff --git a/bin/tbc_guest_jobs b/bin/tbc_guest_jobs
index 721c7e1..b4b74fd 100755
--- a/bin/tbc_guest_jobs
+++ b/bin/tbc_guest_jobs
@@ -1,15 +1,16 @@
-#!/usr/bin/python
+#!/usr/bin/python3.4
 #
-# Copyright 1998-2015 Gentoo Foundation
+# Copyright 1998-2016 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 from __future__ import print_function
 from tbc.readconf import read_config_settings
 from tbc.ConnectionManager import NewConnection
-from tbc.sqlquerys import add_logs, get_config_id_fqdn, check_host_updatedb, 
update_deamon_status
+from tbc.sqlquerys import get_config_id_fqdn, check_host_updatedb, 
update_deamon_status
 from tbc.check_setup import check_configure_guest
 from tbc.build_job import build_job_action
 from tbc.jobs import jobs_main
+from tbc.log import setup_logger, write_log
 from sqlalchemy.orm import sessionmaker
 import portage
 import sys
@@ -19,11 +20,18 @@ import time
 def main():
        repeat = True
        tbc_settings = read_config_settings()
+
+       # setupt the logger
+       logger = setup_logger(tbc_settings):
+
        Session = sessionmaker(bind=NewConnection(tbc_settings))
        session = Session()
        config_id = get_config_id_fqdn(session, tbc_settings['hostname'])
-       add_logs(session, "Job and build deamon started.", "info", config_id)
-       update_deamon_status(session, 'Waiting', config_id)
+       write_log(session, "Job and build deamon started.", "info", config_id, 
'main')
+       Status = 'Waiting'
+       update_deamon_status(session, Status, config_id)
+       msg = 'Status: %s Host: %s' % (Status, tbc_settings['hostname'],)
+       write_log(session, msg, "info", config_id, 'main')
        init_build_job = build_job_action(config_id, session)
        while repeat:
                jobs_main(session, config_id)
@@ -31,10 +39,16 @@ def main():
                        time.sleep(60)
                        continue
                else:
-                       update_deamon_status(session, 'Runing', config_id)
+                       Status = 'Runing'
+                       update_deamon_status(session, Status, config_id)
+                       msg = 'Status: %s Host: %s' % (Status, 
tbc_settings['hostname'],)
+                       write_log(session, msg, "info", config_id, 'main')
                        init_build_job.procces_build_jobs()
-                       time.sleep(5)
-                       update_deamon_status(session, 'Waiting', config_id)
+                       Status = 'Waiting'
+                       update_deamon_status(session, Status, config_id)
+                       msg = 'Status: %s Host: %s' % (Status, 
tbc_settings['hostname'],)
+                       write_log(session, msg, "info", config_id, 'main')
+                       time.sleep(60)
        conn.close
 
 if __name__ == "__main__":

diff --git a/bin/tbc_host_jobs b/bin/tbc_host_jobs
index c9bbf8c..629ef54 100755
--- a/bin/tbc_host_jobs
+++ b/bin/tbc_host_jobs
@@ -1,6 +1,6 @@
-#!/usr/bin/python
+#!/usr/bin/python3.4
 #
-# Copyright 1998-2015 Gentoo Foundation
+# Copyright 1998-2016 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 from __future__ import print_function
@@ -8,23 +8,27 @@ from __future__ import print_function
 from tbc.readconf import read_config_settings
 from tbc.jobs import jobs_main
 from tbc.ConnectionManager import NewConnection
-from tbc.sqlquerys import add_logs, get_config_id_fqdn
+from tbc.sqlquerys import get_config_id_fqdn
+from tbc.log import setup_logger, write_log
 from sqlalchemy.orm import sessionmaker
 import time
 
 def main():
        # Main
        tbc_settings = read_config_settings()
+       # setupt the logger
+       logger = setup_logger(tbc_settings):
+
        Session = sessionmaker(bind=NewConnection(tbc_settings))
        session = Session()
        config_id = get_config_id_fqdn(session, tbc_settings['hostname'])
-       add_logs(session, "Job deamon started", "info", config_id)
+       write_log(session, "Job deamon started", "info", config_id, 'main')
        repeat = True
        while repeat:
                jobs_main(session, config_id)
                repeat = False
                time.sleep(60)
-       add_logs(session, "Job deamon stoped", "info", config_id)
+       write_log(session, "Job deamon stoped", "info", config_id, 'main')
 
 if __name__ == "__main__":
        main()
\ No newline at end of file

diff --git a/pym/tbc/build_log.py b/pym/tbc/build_log.py
index 7b3784a..70cd091 100644
--- a/pym/tbc/build_log.py
+++ b/pym/tbc/build_log.py
@@ -1,4 +1,4 @@
-# Copyright 1998-2015 Gentoo Foundation
+# Copyright 1998-2016 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 from __future__ import print_function
@@ -6,6 +6,7 @@ import re
 import os
 import platform
 import hashlib
+import logging
 
 from portage.versions import catpkgsplit, cpv_getversion
 import portage
@@ -25,15 +26,18 @@ from tbc.text import get_log_text_dict
 from tbc.readconf import read_config_settings
 from tbc.flags import tbc_use_flags
 from tbc.ConnectionManager import NewConnection
-from tbc.sqlquerys import add_logs, get_config_id, get_ebuild_id_db, 
add_new_buildlog, \
+from tbc.sqlquerys import get_config_id, get_ebuild_id_db, add_new_buildlog, \
        get_package_info, get_build_job_id, get_use_id, get_config_info, 
get_hilight_info, get_error_info_list, \
        add_e_info, get_fail_times, add_fail_times, update_fail_times, 
del_old_build_jobs, add_old_ebuild, \
        update_buildjobs_status, update_mtime_sql, add_repoman_qa, 
get_config_id_fqdn, get_setup_info, \
        add_repoman_log
+from tbc.log import write_log
+
 from sqlalchemy.orm import sessionmaker
 
 def check_repoman_full(session, pkgdir, package_id, config_id, cpv=False):
        # Check cp with repoman repoman full
+       write_log(session, 'Repoman Check', "info", config_id, 
'build_log.check_repoman_full')
        status = repoman_full(session, pkgdir, config_id)
        repoman_hash = hashlib.sha256()
        if cpv:
@@ -59,7 +63,9 @@ def check_repoman_full(session, pkgdir, package_id, 
config_id, cpv=False):
                                        repoman_log = repoman_log + line + "\n"
                                        
repoman_hash.update(line.encode('utf-8'))
                        add_repoman_log(session, package_id, repoman_log, 
repoman_hash.hexdigest())
+                       write_log(session, 'Repoman Check Fail\n' + 
repoman_log, "warning", config_id, 'build_log.check_repoman_full')
                        return repoman_log
+       write_log(session, 'Repoman Check Pass', "info", config_id, 
'build_log.check_repoman_full')
        return False
 
 def get_build_dict_db(session, config_id, settings, tbc_settings_dict, pkg):
@@ -281,7 +287,7 @@ def add_buildlog_main(settings, pkg, trees):
                build_dict = get_build_dict_db(session, config_id, settings, 
tbc_settings, pkg)
        if build_dict is None:
                log_msg = "Package %s:%s is NOT logged." % (pkg.cpv, pkg.repo,)
-               add_logs(session, log_msg, "info", config_id)
+               write_log(session, log_msg, "info", config_id, 
'build_log.add_buildlog_main')
                session.close
                return
        build_log_dict = {}
@@ -298,19 +304,18 @@ def add_buildlog_main(settings, pkg, trees):
        build_log_dict['log_hash'] = log_hash.hexdigest()
        build_log_dict['logfilename'] = 
settings.get("PORTAGE_LOG_FILE").split(host_config)[1]
        log_msg = "Logfile name: %s" % (settings.get("PORTAGE_LOG_FILE"),)
-       add_logs(session, log_msg, "info", config_id)
+        write_log(session, log_msg, "info", config_id, 
'build_log.add_buildlog_main')
        build_log_dict['emerge_info'] = get_emerge_info_id(settings, trees, 
session, config_id)
        log_id = add_new_buildlog(session, build_dict, build_log_dict)
 
        if log_id is None:
                log_msg = "Package %s:%s is NOT logged." % (pkg.cpv, pkg.repo,)
-               add_logs(session, log_msg, "info", config_id)
+               write_log(session, log_msg, "info", config_id, 
'build_log.add_buildlog_main')
        else:
                add_repoman_qa(session, build_log_dict, log_id)
                os.chmod(settings.get("PORTAGE_LOG_FILE"), 0o664)
                log_msg = "Package: %s:%s is logged." % (pkg.cpv, pkg.repo,)
-               add_logs(session, log_msg, "info", config_id)
-               print("\n>>> Logging %s:%s\n" % (pkg.cpv, pkg.repo,))
+               write_log(session, log_msg, "info", config_id, 
'build_log.add_buildlog_main')
                build_msg = "BUILD: PASS"
                qa_msg = "QA: PASS"
                repoman_msg = "REPOMAN: PASS"
@@ -322,7 +327,8 @@ def add_buildlog_main(settings, pkg, trees):
                                        qa_msg = "QA: FAILD"
                                else:
                                        build_msg = "BUILD: FAILD"
-               msg = "Package: %s Repo: %s %s %s %s Weblink 
http://foo.gg.oo/new/logs/build/%s\n"; % (pkg.cpv, pkg.repo, build_msg, 
repoman_msg, qa_msg, log_id,)
+               msg = "Package: %s Repo: %s %s %s %s Weblink 
http://77.110.8.67/new/logs/build/%s\n"; % (pkg.cpv, pkg.repo, build_msg, 
repoman_msg, qa_msg, log_id,)
+               write_log(session, msg, "info", config_id, 
'build_log.add_buildlog_main')
                send_irk(msg)
        session.close
 

diff --git a/pym/tbc/jobs.py b/pym/tbc/jobs.py
index 924421c..5c136d2 100644
--- a/pym/tbc/jobs.py
+++ b/pym/tbc/jobs.py
@@ -1,11 +1,12 @@
-# Copyright 1998-2015 Gentoo Foundation
+# Copyright 1998-2016 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 from __future__ import print_function
 from tbc.sync import git_sync_main
 #from tbc.buildquerydb import add_buildquery_main, del_buildquery_main
 from tbc.updatedb import update_db_main
-from tbc.sqlquerys import get_config_id, add_logs, get_jobs, update_job_list
+from tbc.sqlquerys import get_config_id, get_jobs, update_job_list
+from tbc.log import write_log
 
 def jobs_main(session, config_id):
        JobsInfo = get_jobs(session, config_id)
@@ -16,55 +17,55 @@ def jobs_main(session, config_id):
                run_config_id = JobInfo.RunConfigId
                job_id = JobInfo.JobId
                log_msg = "Job: %s Type: %s" % (job_id, job,)
-               add_logs(session, log_msg, "info", config_id)
+               write_log(session, log_msg, "info", config_id, 'jobs_main')
                if job == "addbuildquery":
                        update_job_list(session, "Runing", job_id)
                        log_msg = "Job %s is runing." % (job_id,)
-                       add_logs(session, log_msg, "info", config_id)
+                       write_log(session, log_msg, "info", config_id, 
'jobs_main')
                        #result =  add_buildquery_main(run_config_id)
                        #if result is True:
                        #       update_job_list(session, "Done", job_id)
                        #       log_msg = "Job %s is done.." % (job_id,)
-                       #       add_logs(session, log_msg, "info", config_id)
+                       #       write_log(session, log_msg, "info", config_id, 
'jobs_main')
                        #else:
                        #       update_job_list(session, "Fail", job_id)
                        #       log_msg = "Job %s did fail." % (job_id,)
-                       #       add_logs(session, log_msg, "info", config_id)
+                       #       write_log(session, log_msg, "info", config_id, 
'jobs_main')
                elif job == "delbuildquery":
                        update_job_list(session, "Runing", job_id)
                        log_msg = "Job %s is runing." % (job_id,)
-                       add_logs(session, log_msg, "info", config_id)
+                       write_log(session, log_msg, "info", config_id, 
'jobs_main')
                        #result =  del_buildquery_main(config_id)
                        #if result is True:
                        #       update_job_list(session, "Done", job_id)
                        #       log_msg = "Job %s is done.." % (job_id,)
-                       #       add_logs(session, log_msg, "info", config_id)
+                       #       write_log(session, log_msg, "info", config_id, 
'jobs_main')
                        #else:
                        #       update_job_list(session, "Fail", job_id)
                        #       log_msg = "Job %s did fail." % (job_id,)
-                       #       add_logs(session, log_msg, "info", config_id)
+                       #       write_log(session, log_msg, "info", config_id, 
'jobs_main')
                elif job == "esync":
                        update_job_list(session, "Runing", job_id)
                        log_msg = "Job %s is runing." % (job_id,)
-                       add_logs(session, log_msg, "info", config_id)
+                       write_log(session, log_msg, "info", config_id, 
'jobs_main')
                        if update_db_main(session, git_sync_main(session), 
config_id):
                                update_job_list(session, "Done", job_id)
                                log_msg = "Job %s is done.." % (job_id,)
-                               add_logs(session, log_msg, "info", config_id)
+                               write_log(session, log_msg, "info", config_id, 
'jobs_main')
                        else:
                                update_job_list(session, "Fail", job_id)
                                log_msg = "Job %s did fail." % (job_id,)
-                               add_logs(session, log_msg, "info", config_id)
+                               write_log(session, log_msg, "info", config_id, 
'jobs_main')
                elif job == "updatedb":
                        update_job_list(session, "Runing", job_id)
                        log_msg = "Job %s is runing." % (job_id,)
-                       add_logs(session, log_msg, "info", config_id)
+                       write_log(session, log_msg, "info", config_id, 
'jobs_main')
                        if update_db_main(session, None, config_id):
                                update_job_list(session, "Done", job_id)
                                log_msg = "Job %s is done.." % (job_id,)
-                               add_logs(session, log_msg, "info", config_id)
+                               write_log(session, log_msg, "info", config_id, 
'jobs_main')
                        else:
                                update_job_list(session, "Fail", job_id)
                                log_msg = "Job %s did fail." % (job_id,)
-                               add_logs(session, log_msg, "info", config_id)
+                               write_log(session, log_msg, "info", config_id, 
'jobs_main')
        return

diff --git a/pym/tbc/log.py b/pym/tbc/log.py
new file mode 100644
index 0000000..944d3fa
--- /dev/null
+++ b/pym/tbc/log.py
@@ -0,0 +1,38 @@
+# Copyright 1998-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+from __future__ import print_function
+import logging
+module_logger = logging.getLogger('tbc.log')
+
+def setup_logger( tbc_settings):
+       # setupt the logger
+       log_level = getattr(logging, tbc_settings['log_level'].upper(), None)
+       format = '%(asctime)s - %(name)s - %(levelname)s - %(message)s'
+       if not isinstance(log_level, int):
+               raise ValueError('Invalid log level: %s' % 
tbc_settings['log_level'])
+       logging.basicConfig()
+       logger = logging.getLogger('tbc')
+       logger.setLevel(log_level)
+       if tbc_settings['log_file']:
+               fh = logging.FileHandler(tbc_settings['log_file'])
+       else:
+               fh = logging.StreamHandler()
+       formatter = logging.Formatter(format)
+       fh.setFormatter(formatter)
+       logger.addHandler(fh)
+       return logger
+
+def write_log(session, msg, level, config_id, function=False):
+       if function:
+               logger = logging.getLogger('tbc.' + function)
+       else:
+               logger = logging.getLogger('tbc')
+       if level == 'info':
+               logger.info(msg)
+       if level == 'error':
+               logger.error(msg)
+       if level == 'debug':
+               logger.debug(msg)
+       if level == 'warning':
+               logger.warning(msg)

diff --git a/pym/tbc/package.py b/pym/tbc/package.py
index 40de495..72108a2 100644
--- a/pym/tbc/package.py
+++ b/pym/tbc/package.py
@@ -13,7 +13,8 @@ from tbc.text import get_ebuild_cvs_revision, 
get_log_text_dict
 from tbc.flags import tbc_use_flags
 from tbc.qachecks import check_repoman
 from tbc.build_log import check_repoman_full
-from tbc.sqlquerys import add_logs, get_package_info, get_config_info, \
+from tbc.log import write_log
+from tbc.sqlquerys import 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_mtime_sql, \
        get_package_info_from_package_id, get_config_all_info, 
add_new_package_sql, \
@@ -104,9 +105,9 @@ class tbc_package(object):
                except:
                        ebuild_version_checksum_tree = "0"
                        log_msg = "QA: Can't checksum the ebuild file. %s on 
repo %s" % (cpv, repo,)
-                       add_logs(self._session, log_msg, "info", 
self._config_id)
+                       write_log(session, log_msg, "warning", config_id, 
'packages.get_packageDict')
                        log_msg = "C %s:%s ... Fail." % (cpv, repo)
-                       add_logs(self._session, log_msg, "info", 
self._config_id)
+                       write_log(session, log_msg, "info", config_id, 
'packages.get_packageDict')
                        git_commit = '0'
                else:
                        git_commit = self.get_git_log_ebuild(repodir, 
ebuild_file)
@@ -118,7 +119,7 @@ class tbc_package(object):
                # so it can be updated next time we update the db
                if not ebuild_version_metadata_tree:
                        log_msg = " QA: %s have broken metadata on repo %s" % 
(cpv, repo)
-                       add_logs(self._session, log_msg, "info", 
self._config_id)
+                       write_log(session, log_msg, "warning", config_id, 
'packages.get_packageDict')
                        ebuild_version_metadata_tree = 
['','','','','','','','','','','','','','','','','','','','','','','','','']
                        ebuild_version_checksum_tree = '0'
 
@@ -167,7 +168,7 @@ class tbc_package(object):
                                                # B = Build cpv use-flags config
                                                # FIXME log_msg need a fix to 
log the use flags corect.
                                                log_msg = "B %s:%s USE: %s 
Setup: %s" % (k, v['repo'], use_flagsDict, setup_id,)
-                                               add_logs(self._session, 
log_msg, "info", self._config_id)
+                                               write_log(session, log_msg, 
"info", config_id, 'packages.add_new_build_job_db')
                                        i = i +1
 
        def get_git_log_pkg_text(self, repodir, cp):
@@ -188,7 +189,7 @@ class tbc_package(object):
                        pkg_md = MetaDataXML(pkgdir + "/metadata.xml", herd)
                except:
                        log_msg = "Metadata file %s is missing or has errors" % 
(pkgdir + "/metadata.xml")
-                       add_logs(self._session, log_msg, "qa", self._config_id)
+                       write_log(session, log_msg, "warning", config_id, 
'packages.get_package_metadataDict')
                else:
                        tmp_herds = pkg_md.herds()
                        if tmp_herds != ():
@@ -200,7 +201,7 @@ class tbc_package(object):
                                attDict['metadata_xml_email'] = md_email_list
                        else:
                                log_msg = "Metadata file %s missing Email" % 
(pkgdir + "/metadata.xml")
-                               add_logs(self._session, log_msg, "qa", 
self._config_id)
+                               write_log(session, log_msg, "warning", 
config_id, 'packages.get_package_metadataDict')
                attDict['git_log_pkg_text'] = 
self.get_git_log_pkg_text(repodir, cp)
                attDict['metadata_xml_descriptions'] = ''
                package_metadataDict[package_id] = attDict
@@ -246,9 +247,9 @@ class tbc_package(object):
                        mtime = os.path.getmtime(pkgdir + "/Manifest")
                except:
                        log_msg = "QA: Can't checksum the Manifest file. 
:%s:%s" % (cp, repo,)
-                       add_logs(self._session, log_msg, "error", 
self._config_id)
+                       write_log(session, log_msg, "warning", config_id, 
'packages.get_manifest_mtime_tree')
                        log_msg = "C %s:%s ... Fail." % (cp, repo)
-                       add_logs(self._session, log_msg, "error", 
self._config_id)
+                       write_log(session, log_msg, "warning", config_id, 
'packages.get_manifest_mtime_tree')
                        return False
                return 
datetime.datetime.fromtimestamp(mtime).replace(microsecond=0)
 
@@ -257,9 +258,9 @@ class tbc_package(object):
                # C = Checking
                # N = New Package
                log_msg = "C %s:%s" % (cp, repo)
-               add_logs(self._session, log_msg, "info", self._config_id)
+               write_log(session, log_msg, "info", config_id, 
'packages.add_new_package_db')
                log_msg = "N %s:%s" % (cp, repo)
-               add_logs(self._session, log_msg, "info", self._config_id)
+               write_log(session, log_msg, "info", config_id, 
'packages.add_new_package_db')
                repodir = self._myportdb.getRepositoryPath(repo)
                mytree = []
                mytree.append(repodir)
@@ -274,16 +275,16 @@ class tbc_package(object):
                status = check_repoman_full(self._session, pkgdir, package_id, 
self._config_id)
                if status:
                        log_msg = "Repoman %s::%s ... Fail." % (cp, repo)
-                       add_logs(self._session, log_msg, "error", 
self._config_id)
+                       write_log(session, log_msg, "warning", config_id, 
'packages.add_new_package_db')
 
                package_metadataDict = self.get_package_metadataDict(pkgdir, 
package_id)
                # Get the ebuild list for cp
                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_logs(self._session, log_msg, "info", 
self._config_id)
+                       write_log(session, log_msg, "error", config_id, 
'packages.add_new_package_db')
                        log_msg = "C %s:%s ... Fail." % (cp, repo)
-                       add_logs(self._session, log_msg, "info", 
self._config_id)
+                       write_log(session, log_msg, "warning", config_id, 
'packages.add_new_package_db')
                        return None
 
                # Make the needed packageDict with ebuild infos so we can add 
it later to the db.
@@ -300,7 +301,7 @@ class tbc_package(object):
                packageDict[cpv]['new'] = True
                self.add_package(packageDict, package_metadataDict, package_id, 
new_ebuild_id_list, old_ebuild_id_list, manifest_mtime_tree)
                log_msg = "C %s:%s ... Done." % (cp, repo)
-               add_logs(self._session, log_msg, "info", self._config_id)
+               write_log(session, log_msg, "info", config_id, 
'packages.add_new_package_db')
 
        def update_package_db(self, package_id):
                # Update the categories and package with new info
@@ -309,7 +310,7 @@ class tbc_package(object):
                cp = CategoryInfo.Category + '/' + PackageInfo.Package
                repo = RepoInfo.Repo
                log_msg = "C %s:%s" % (cp, repo)
-               add_logs(self._session, log_msg, "info", self._config_id)
+               write_log(session, log_msg, "info", config_id, 
'packages.update_package_db')
                repodir = self._myportdb.getRepositoryPath(repo)
                pkgdir = repodir + "/" + cp # Get RepoDIR + cp
                if not os.path.isdir(pkgdir):
@@ -319,11 +320,11 @@ class tbc_package(object):
                                cpv = cp + "-" + EbuildInfo.Version
                                # R =  remove ebuild
                                log_msg = "R %s:%s" % (cpv, repo,)
-                               add_logs(self._session, log_msg, "info", 
self._config_id)
+                               write_log(session, log_msg, "info", config_id, 
'packages.update_package_db')
                        add_old_ebuild(self._session, old_ebuild_id_list)
                        add_old_package(self._session, package_id)
                        log_msg = "C %s:%s ... Done." % (cp, repo)
-                       add_logs(self._session, log_msg, "info", 
self._config_id)
+                       write_log(session, log_msg, "info", config_id, 
'packages.update_package_db')
                        return None
                
                mytree = []
@@ -337,23 +338,23 @@ class tbc_package(object):
 
                        # U = Update
                        log_msg = "U %s:%s" % (cp, repo)
-                       add_logs(self._session, log_msg, "info", 
self._config_id)
+                       write_log(session, log_msg, "info", config_id, 
'packages.update_package_db')
 
                        # Get the ebuild list for cp
                        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_logs(self._session, log_msg, "info", 
self._config_id)
+                               write_log(session, log_msg, "error", config_id, 
'packages.update_package_db')
                                log_msg = "C %s:%s ... Fail." % (cp, repo)
-                               add_logs(self._session, log_msg, "info", 
self._config_id)
+                               write_log(session, log_msg, "warning", 
config_id, 'packages.update_package_db')
                                return None
 
                        # Check cp with repoman full
                        status = check_repoman_full(self._session, pkgdir, 
package_id, self._config_id)
                        if status:
                                log_msg = "Repoman %s::%s ... Fail." % (cp, 
repo)
-                               add_logs(self._session, log_msg, "error", 
self._config_id)
+                               write_log(session, log_msg, "warning", 
config_id, 'packages.update_package_db')
                        package_metadataDict = 
self.get_package_metadataDict(pkgdir, package_id)
                        packageDict ={}
                        new_ebuild_id_list = []
@@ -382,7 +383,7 @@ class tbc_package(object):
                                                ebuilds_id , status = 
get_ebuild_id_db(self._session, checksum, package_id)
                                                for ebuild_id in ebuilds_id:
                                                        log_msg = "U %s:%s:%s 
Dups of checksums" % (cpv, repo, ebuild_id,)
-                                                       add_logs(self._session, 
log_msg, "error", self._config_id)
+                                                       write_log(session, 
log_msg, "warning", config_id, 'packages.update_package_db')
                                                        
dupe_ebuild_id_list.append(ebuild_id)
                                        add_old_ebuild(self._session, 
dupe_ebuild_id_list)
                                        ebuild_version_manifest_checksum_db = 
None
@@ -393,12 +394,12 @@ class tbc_package(object):
                                if ebuild_version_manifest_checksum_db is None:
                                        # N = New ebuild
                                        log_msg = "N %s:%s" % (cpv, repo,)
-                                       add_logs(self._session, log_msg, 
"info", self._config_id)
+                                       write_log(session, log_msg, "info", 
config_id, 'packages.update_package_db')
                                        packageDict[cpv]['new'] = True
                                elif  ebuild_version_checksum_tree != 
ebuild_version_manifest_checksum_db:
                                        # U = Updated ebuild
                                        log_msg = "U %s:%s" % (cpv, repo,)
-                                       add_logs(self._session, log_msg, 
"info", self._config_id)
+                                       write_log(session, log_msg, "info", 
config_id, 'packages.update_package_db')
                                else:
                                        # Remove cpv from packageDict and add 
ebuild to new ebuils list
                                        del packageDict[cpv]
@@ -407,4 +408,4 @@ class tbc_package(object):
                        self.add_package(packageDict, package_metadataDict, 
package_id, new_ebuild_id_list, old_ebuild_id_list, manifest_mtime_tree)
 
                log_msg = "C %s:%s ... Done." % (cp, repo)
-               add_logs(self._session, log_msg, "info", self._config_id)
+               write_log(session, log_msg, "info", config_id, 
'packages.update_package_db')

diff --git a/pym/tbc/readconf.py b/pym/tbc/readconf.py
index b4bad11..ebb3b71 100644
--- a/pym/tbc/readconf.py
+++ b/pym/tbc/readconf.py
@@ -1,4 +1,4 @@
-# Copyright 1998-2015 Gentoo Foundation
+# Copyright 1998-2016 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 import os
@@ -10,6 +10,8 @@ configfile = "/etc/tbc/tbc.conf"
 
 def read_config_settings():
 # It will return a dict with options from the configfile
+       log_file= False
+       tbc_settings = {}
        try:
                open_conffile = open(configfile, 'r')
        except:
@@ -27,13 +29,17 @@ def read_config_settings():
                        get_sql_user = element[1]
                if element[0] == 'SQLPASSWD':           # Password
                        get_sql_passwd = element[1]
+               if element[0] == 'LOG':         # Log level
+                       tbc_settings['log_level'] = element[1].rstrip('\n')
+               if element[0] == 'LOGFILE':             # Log level
+                       log_file = element[1].rstrip('\n')
        open_conffile.close()
 
-       tbc_settings = {}
        tbc_settings['sql_backend'] = get_sql_backend.rstrip('\n')
        tbc_settings['sql_db'] = get_sql_db.rstrip('\n')
        tbc_settings['sql_host'] = get_sql_host.rstrip('\n')
        tbc_settings['sql_user'] = get_sql_user.rstrip('\n')
        tbc_settings['sql_passwd'] = get_sql_passwd.rstrip('\n')
        tbc_settings['hostname'] = getfqdn()
+       tbc_settings['log_file'] = log_file
        return tbc_settings

diff --git a/pym/tbc/sqlquerys.py b/pym/tbc/sqlquerys.py
index e93c96d..5100bec 100644
--- a/pym/tbc/sqlquerys.py
+++ b/pym/tbc/sqlquerys.py
@@ -1,4 +1,4 @@
-# Copyright 1998-2015 Gentoo Foundation
+# Copyright 1998-2016 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 from __future__ import print_function
@@ -10,6 +10,7 @@ from tbc.db_mapping import Configs, Logs, ConfigsMetaData, 
Jobs, BuildJobs, Pack
        BuildJobsEmergeOptions, EbuildsMetadata, EbuildsIUse, Restrictions, 
EbuildsRestrictions, EbuildsKeywords, \
        Keywords, PackagesMetadata, Emails, PackagesEmails, Setups, 
BuildLogsRepomanQa, CategoriesMetadata, \
        PackagesRepoman
+from tbc.log import write_log
 from sqlalchemy.orm.exc import NoResultFound, MultipleResultsFound
 from sqlalchemy import and_, or_
 
@@ -83,8 +84,6 @@ def get_packages_to_build(session, config_id):
        elif BuildJobsTmp.filter_by(BuildNow = False).all() != []:
                BuildJobsInfo = BuildJobsTmp.filter_by(BuildNow = False).first()
        else:
-               log_msg = "BuildJobsTmp found job but the if state mant did 
not."
-               add_zobcs_logs(session, log_msg, "error", config_id)
                return None
        update_buildjobs_status(session, BuildJobsInfo.BuildJobId, 'Looked', 
config_id)
        EbuildsInfo = session.query(Ebuilds).filter_by(EbuildId = 
BuildJobsInfo.EbuildId).one()
@@ -219,6 +218,8 @@ def add_new_buildlog(session, build_dict, build_log_dict):
                        else:
                                for use in use_list:
                                        useflagsdict[use.UseId] = use.Status
+                       msg = 'Log_hash: %s Log_hash_sql: %s Build_log_id: %s' 
% (build_log_dict['log_hash'], log_hash[0], build_log_id,)
+                       write_log(session, msg, "debug", 
build_dict['config_id'], 'sqlquerys.add_new_buildlog.build_log_id_match')
                        if log_hash[0] == build_log_dict['log_hash'] and 
build_dict['build_useflags'] == useflagsdict:
                                if 
session.query(BuildLogsConfig).filter(BuildLogsConfig.ConfigId.in_([build_dict['config_id']])).filter_by(BuildLogId
 = build_log_id[0]):
                                        return None, True
@@ -255,6 +256,8 @@ def add_new_buildlog(session, build_dict, build_log_dict):
                        session.commit()
                return build_log_id
 
+       msg = 'build_job_id: %s build_log_id_list: %s' % 
(build_dict['build_job_id'], build_log_id_list,)
+       write_log(session, msg, "debug", build_dict['config_id'], 
'sqlquerys.add_new_buildlog')
        if build_dict['build_job_id'] is None and build_log_id_list == []:
                build_log_id = build_log_id_no_match(build_dict, build_log_dict)
                return build_log_id

diff --git a/pym/tbc/sync.py b/pym/tbc/sync.py
index 610f357..1732f1f 100644
--- a/pym/tbc/sync.py
+++ b/pym/tbc/sync.py
@@ -13,6 +13,7 @@ import git
 from tbc.sqlquerys import get_config_id_fqdn, add_logs, get_config_all_info, \
        get_configmetadata_info, get_config_info, get_setup_info
 from tbc.readconf import read_config_settings
+from tbc.log import write_log
 
 def git_repos_list(myportdb):
        repo_trees_list = myportdb.porttrees
@@ -46,7 +47,7 @@ def git_sync_main(session):
        myportdb = portage.portdbapi(mysettings=mysettings)
        GuestBusy = True
        log_msg = "Waiting for Guest to be idel"
-       add_logs(session, log_msg, "info", config_id)
+       write_log(session, log_msg, "info", config_id, 'sync.git_sync_main')
        guestid_list = []
        # check if the guests is idel
        for config in get_config_all_info(session):
@@ -57,6 +58,7 @@ def git_sync_main(session):
                for guest_id in guestid_list:
                        ConfigMetadataGuest = get_configmetadata_info(session, 
guest_id)
                        Status_list.append(ConfigMetadataGuest.Status)
+               write_log(session, 'Guset status: %s' % (Status_list,), 
"debug", config_id, 'sync.git_sync_main')
                if not 'Runing' in Status_list:
                        GuestBusy = False
                else:
@@ -75,13 +77,15 @@ def git_sync_main(session):
                reponame = myportdb.getRepositoryName(repo_dir)
                repo = git.Repo(repo_dir)
                log_msg = "Checking repo %s" % (reponame)
-               add_logs(session, log_msg, "info", config_id)
+               write_log(session, log_msg, "info", config_id, 
'sync.git_sync_main')
                info_list, repouptodate = git_fetch(repo)
                if not repouptodate:
                        cp_list = []
                        attr = {}
                        # We check for Manifest changes and add the package to 
a list
-                       for diff_line in repo.git.diff('origin', 
'--name-only').splitlines():
+                       repo_diff = repo.git.diff('origin', '--name-only')
+                       write_log(session, 'Git diff: %s' % (repo_diff,), 
"debug", config_id, 'sync.git_sync_main')
+                       for diff_line in repo_diff.splitlines():
                                if re.search("Manifest$", diff_line):
                                                cp = re.sub('/Manifest', '', 
diff_line)
                                                cp_list.append(cp)
@@ -90,9 +94,9 @@ def git_sync_main(session):
                        git_merge(repo, info_list[0])
                else:
                        log_msg = "Repo %s is up to date" % (reponame)
-                       add_logs(session, log_msg, "info", config_id)
+                       write_log(session, log_msg, "info", config_id, 
'sync.git_sync_main')
                log_msg = "Checking repo %s Done" % (reponame)
-               add_logs(session, log_msg, "info", config_id)
+               write_log(session, log_msg, "info", config_id, 
'sync.git_sync_main')
        # Need to add a clone of profiles/base for reading the tree
        try:
                os.mkdir(mysettings['PORTDIR'] + "/profiles/config", 0o777)
@@ -103,16 +107,17 @@ def git_sync_main(session):
                pass
 
        log_msg = "Repo sync ... Done."
-       add_logs(session, log_msg, "info", config_id)
+       write_log(session, log_msg, "info", config_id, 'sync.git_sync_main')
+       write_log(session, 'Updated Packages: %s' % (repo_cp_dict,), "debug", 
config_id, 'sync.git_sync_main')
        return repo_cp_dict
 
 def git_pull(session, repo_dir, config_id):
        log_msg = "Git pull"
-       add_logs(session, log_msg, "info", config_id)
+       write_log(session, log_msg, "info", config_id, 'sync.git_pull')
        repo = git.Repo(repo_dir)
        info_list, repouptodate = git_fetch(repo)
        if not repouptodate:
                git_merge(repo, info_list[0])
        log_msg = "Git pull ... Done"
-       add_logs(session, log_msg, "info", config_id)
+       write_log(session, log_msg, "info", config_id, 'sync.git_pull')
        return True

diff --git a/pym/tbc/updatedb.py b/pym/tbc/updatedb.py
index b860f51..0753d92 100644
--- a/pym/tbc/updatedb.py
+++ b/pym/tbc/updatedb.py
@@ -11,19 +11,20 @@ import portage
 from portage.xml.metadata import MetaDataXML
 from sqlalchemy.orm import scoped_session, sessionmaker
 from tbc.ConnectionManager import NewConnection
-from tbc.sqlquerys import add_logs, get_package_info, update_repo_db, \
+from tbc.sqlquerys import get_package_info, update_repo_db, \
        update_categories_db, get_configmetadata_info, get_config_all_info, 
add_new_build_job, \
        get_config_info, get_setup_info
 from tbc.check_setup import check_make_conf
 from tbc.package import tbc_package
 # Get the options from the config file tbc.conf
 from tbc.readconf import  read_config_settings
+from tbc.log import write_log
 
 def init_portage_settings(session, config_id):
        # check config setup
        check_make_conf(session, config_id)
        log_msg = "Check configs done"
-       add_logs(session, log_msg, "info", config_id)
+       write_log(session, log_msg, "info", config_id, 
'updatedb.init_portage_settings')
 
        # setup default root
        ConfigsMetaDataInfo = get_configmetadata_info(session, config_id)
@@ -35,7 +36,7 @@ def init_portage_settings(session, config_id):
        # Set config_root (PORTAGE_CONFIGROOT)  to default_config_root
        mysettings = portage.config(config_root = default_config_root)
        log_msg = "Setting default config to: %s" % (host_config,)
-       add_logs(session, log_msg, "info", config_id)
+       write_log(session, log_msg, "info", config_id, 
'updatedb.init_portage_settings')
        return mysettings
 
 def get_categories_metadataDict(pkgdir):
@@ -78,7 +79,7 @@ def update_cpv_db_pool(mysettings, myportdb, cp, repo, 
tbc_settings, config_id):
 def update_cpv_db(session, repo_cp_dict, config_id, tbc_settings):
        GuestBusy = True
        log_msg = "Waiting for Guest to be idel"
-       add_logs(session, log_msg, "info", config_id)
+       write_log(session, log_msg, "info", config_id, 'updatedb.update_cpv_db')
        guestid_list = []
        for config in get_config_all_info(session):
                if not config.Host:
@@ -93,7 +94,7 @@ def update_cpv_db(session, repo_cp_dict, config_id, 
tbc_settings):
                time.sleep(30)
 
        log_msg = "Checking categories, package, ebuilds"
-       add_logs(session, log_msg, "info", config_id)
+       write_log(session, log_msg, "info", config_id, 'updatedb.update_cpv_db')
        new_build_jobs_list = []
 
        # Setup settings, portdb and pool
@@ -101,8 +102,8 @@ def update_cpv_db(session, repo_cp_dict, config_id, 
tbc_settings):
        myportdb = portage.portdbapi(mysettings=mysettings)
        
        # Use all cores when multiprocessing
-       pool_cores = multiprocessing.cpu_count()
-       pool = multiprocessing.Pool(processes = pool_cores)
+       #pool_cores = multiprocessing.cpu_count()
+       #pool = multiprocessing.Pool(processes = pool_cores)
 
        # Get packages and repo
        if repo_cp_dict is None:
@@ -147,7 +148,7 @@ def update_cpv_db(session, repo_cp_dict, config_id, 
tbc_settings):
        # pool.close()
        # pool.join()
        log_msg = "Checking categories, package and ebuilds ... done"
-       add_logs(session, log_msg, "info", config_id)
+       write_log(session, log_msg, "info", config_id, 'updatedb.update_cpv_db')
 
 def update_db_main(session, repo_cp_dict, config_id):
        # Main
@@ -156,10 +157,10 @@ def update_db_main(session, repo_cp_dict, config_id):
        # Logging
        tbc_settings = read_config_settings()
        log_msg = "Update db started."
-       add_logs(session, log_msg, "info", config_id)
+       write_log(session, log_msg, "info", config_id, 
'updatedb.update_db_main')
 
        # Update the cpv db
        update_cpv_db(session, repo_cp_dict, config_id, tbc_settings)
        log_msg = "Update db ... Done."
-       add_logs(session, log_msg, "info", config_id)
+       write_log(session, log_msg, "info", config_id, 
'updatedb.update_db_main')
        return True

Reply via email to