commit:     ba984e1d239c4fcca04ccaa43b879d40cca771fc
Author:     Magnus Granberg <zorry <AT> gentoo <DOT> org>
AuthorDate: Sat May 30 22:03:47 2015 +0000
Commit:     Magnus Granberg <zorry <AT> gentoo <DOT> org>
CommitDate: Sat May 30 22:03:47 2015 +0000
URL:        
https://gitweb.gentoo.org/proj/tinderbox-cluster.git/commit/?id=ba984e1d

add support for test

 tbc/pym/build_job.py | 21 +++++++++++++++++----
 tbc/pym/package.py   | 12 ++++++++----
 tbc/pym/sqlquerys.py | 33 +++++++++++++++++++++++----------
 3 files changed, 48 insertions(+), 18 deletions(-)

diff --git a/tbc/pym/build_job.py b/tbc/pym/build_job.py
index 8e3a218..25649fb 100644
--- a/tbc/pym/build_job.py
+++ b/tbc/pym/build_job.py
@@ -18,7 +18,7 @@ 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
-from tbc.sqlquerys import add_logs, get_packages_to_build, 
update_buildjobs_status, is_build_job_done
+from tbc.sqlquerys import add_logs, get_packages_to_build, 
update_buildjobs_status, is_build_job_done, get_ebuild_restrictions
 
 class build_job_action(object):
 
@@ -76,9 +76,19 @@ class build_job_action(object):
                                log_msg = "filetext: %s" % filetext
                                add_logs(self._session, log_msg, "info", 
self._config_id)
                                with 
open("/etc/portage/package.use/99_autounmask", "a") as f:
-                                       f.write(filetext)
-                                       f.write('\n')
-                                       f.close
+                                       f.write(filetext)
+                                       f.write('\n')
+                                       f.close
+                               restrictions_dict = 
get_ebuild_restrictions(self._session, build_dict['ebuild_id'])
+                               if restrictions_dict:
+                                       if "test" in restrictions_dict:
+                                               filetext = k + ' ' + 
'notest.conf'
+                                               log_msg = "filetext: %s" % 
filetext
+                                               add_logs(self._session, 
log_msg, "info", self._config_id)
+                                               with 
open("/etc/portage/package.env", "a") as f:
+                                                       f.write(filetext)
+                                                       f.write('\n')
+                                                       f.close
                log_msg = "build_cpv_list: %s" % (build_cpv_list,)
                add_logs(self._session, log_msg, "info", self._config_id)
 
@@ -121,6 +131,9 @@ class build_job_action(object):
                        os.remove("/etc/portage/package.use/99_autounmask")
                        with open("/etc/portage/package.use/99_autounmask", 
"a") as f:
                                f.close
+                       os.remove("/etc/portage/package.env")
+                       with open("/etc/portage/package.env", "a") as f:
+                               f.close
                except:
                        pass
 

diff --git a/tbc/pym/package.py b/tbc/pym/package.py
index ed47955..502ea01 100644
--- a/tbc/pym/package.py
+++ b/tbc/pym/package.py
@@ -14,7 +14,7 @@ from tbc.sqlquerys import add_logs, get_package_info, 
get_config_info, \
        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, \
-       get_ebuild_info_ebuild_id
+       get_ebuild_info_ebuild_id, get_ebuild_restrictions
 
 class tbc_package(object):
 
@@ -147,6 +147,10 @@ class tbc_package(object):
 
                                        # Comper and add the cpv to buildqueue
                                        if build_cpv == k:
+                                               restrictions_dict = 
get_ebuild_restrictions(self._session, ebuild_id)
+                                               if restrictions_dict:
+                                                       if "test" in 
restrictions_dict and "test" in use_flagsDict:
+                                                               
use_flagsDict['test'] = False
                                                
add_new_build_job(self._session, ebuild_id, setup_id, use_flagsDict, 
self._config_id)
                                                # B = Build cpv use-flags config
                                                # FIXME log_msg need a fix to 
log the use flags corect.
@@ -252,6 +256,8 @@ class tbc_package(object):
                log_msg = "N %s:%s" % (cp, repo)
                add_logs(self._session, log_msg, "info", self._config_id)
                repodir = self._myportdb.getRepositoryPath(repo)
+               mytree = []
+               mytree.append(repodir)
                pkgdir = repodir + "/" + cp # Get RepoDIR + cp
 
                manifest_checksum_tree = 
self.get_manifest_checksum_tree(pkgdir, cp, repo, mytree)
@@ -261,8 +267,6 @@ class tbc_package(object):
                
                package_metadataDict = self.get_package_metadataDict(pkgdir, 
package_id)
                # Get the ebuild list for cp
-               mytree = []
-               mytree.append(repodir)
                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,)
@@ -363,7 +367,7 @@ class tbc_package(object):
                                        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)
+                                               add_logs(self._session, 
log_msg, "info", self._config_id)
 
                                # Check if the checksum have change
                                if ebuild_version_manifest_checksum_db is None:

diff --git a/tbc/pym/sqlquerys.py b/tbc/pym/sqlquerys.py
index c674805..a8f2af4 100644
--- a/tbc/pym/sqlquerys.py
+++ b/tbc/pym/sqlquerys.py
@@ -7,7 +7,7 @@ from tbc.db_mapping import Configs, Logs, ConfigsMetaData, 
Jobs, BuildJobs, Pack
        Uses, ConfigsEmergeOptions, EmergeOptions, HiLight, BuildLogs, 
BuildLogsConfig, BuildJobsUse, BuildJobsRedo, \
        HiLightCss, BuildLogsHiLight, BuildLogsEmergeOptions, BuildLogsErrors, 
ErrorsInfo, EmergeInfo, BuildLogsUse, \
        BuildJobsEmergeOptions, EbuildsMetadata, EbuildsIUse, Restrictions, 
EbuildsRestrictions, EbuildsKeywords, \
-        Keywords, PackagesMetadata, Emails, PackagesEmails, Setups, 
BuildLogsQA,  BuildLogsRepoman
+       Keywords, PackagesMetadata, Emails, PackagesEmails, Setups, 
BuildLogsQA,  BuildLogsRepoman
 from sqlalchemy.orm.exc import NoResultFound, MultipleResultsFound
 from sqlalchemy import and_, or_
 
@@ -304,6 +304,18 @@ def add_fail_times(session, fail_querue_dict):
        session.add(NewBuildJobsRedo)
        session.commit()
 
+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:
+               jobs = True
+       try:
+               JobsInfo = session.query(Jobs).filter_by(Status = 
'Done').filter_by(JobType = 'updatedb').one()
+       except NoResultFound as e:
+               jobs = True
+       return jobs
+
 # Host Functions
 def update_repo_db(session, repo_list):
        for repo in repo_list:
@@ -520,14 +532,15 @@ def get_ebuild_id_db(session, checksum, package_id):
                return ebuilds_id, True
        return EbuildInfos.EbuildId, False
 
-def check_host_updatedb(session):
-       jobs = False
+def get_ebuild_restrictions(session, ebuild_id):
+       restrictions = []
        try:
-               JobsInfo = session.query(Jobs).filter_by(Status = 
'Done').filter_by(JobType = 'esync').one()
+               EbuildsRestrictionsInfo = 
session.query(EbuildsRestrictions).filter_by(EbuildId = ebuild_id).one()
        except NoResultFound as e:
-               jobs = True
-       try:
-               JobsInfo = session.query(Jobs).filter_by(Status = 
'Done').filter_by(JobType = 'updatedb').one()
-       except NoResultFound as e:
-               jobs = True
-       return jobs
+               return False
+       except MultipleResultsFound as e:
+               EbuildsRestrictionsInfos = 
session.query(EbuildsRestrictions).filter_by(EbuildId = ebuild_id).all()
+               for EbuildsRestrictionsInfo in EbuildsRestrictionsInfos:
+                       
restrictions.append(session.query(Restrictions).filter_by(RestrictionId = 
EbuildsRestrictionsInfo.RestrictionId).one())
+               return restrictions
+       return 
restrictions.append(session.query(Restrictions).filter_by(RestrictionId = 
EbuildsRestrictionsInfo.RestrictionId).one())

Reply via email to