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())