1 |
commit: ba984e1d239c4fcca04ccaa43b879d40cca771fc |
2 |
Author: Magnus Granberg <zorry <AT> gentoo <DOT> org> |
3 |
AuthorDate: Sat May 30 22:03:47 2015 +0000 |
4 |
Commit: Magnus Granberg <zorry <AT> gentoo <DOT> org> |
5 |
CommitDate: Sat May 30 22:03:47 2015 +0000 |
6 |
URL: https://gitweb.gentoo.org/proj/tinderbox-cluster.git/commit/?id=ba984e1d |
7 |
|
8 |
add support for test |
9 |
|
10 |
tbc/pym/build_job.py | 21 +++++++++++++++++---- |
11 |
tbc/pym/package.py | 12 ++++++++---- |
12 |
tbc/pym/sqlquerys.py | 33 +++++++++++++++++++++++---------- |
13 |
3 files changed, 48 insertions(+), 18 deletions(-) |
14 |
|
15 |
diff --git a/tbc/pym/build_job.py b/tbc/pym/build_job.py |
16 |
index 8e3a218..25649fb 100644 |
17 |
--- a/tbc/pym/build_job.py |
18 |
+++ b/tbc/pym/build_job.py |
19 |
@@ -18,7 +18,7 @@ from tbc.qacheck import check_file_in_manifest |
20 |
from tbc.main import emerge_main |
21 |
from tbc.build_log import log_fail_queru |
22 |
from tbc.actions import load_emerge_config |
23 |
-from tbc.sqlquerys import add_logs, get_packages_to_build, update_buildjobs_status, is_build_job_done |
24 |
+from tbc.sqlquerys import add_logs, get_packages_to_build, update_buildjobs_status, is_build_job_done, get_ebuild_restrictions |
25 |
|
26 |
class build_job_action(object): |
27 |
|
28 |
@@ -76,9 +76,19 @@ class build_job_action(object): |
29 |
log_msg = "filetext: %s" % filetext |
30 |
add_logs(self._session, log_msg, "info", self._config_id) |
31 |
with open("/etc/portage/package.use/99_autounmask", "a") as f: |
32 |
- f.write(filetext) |
33 |
- f.write('\n') |
34 |
- f.close |
35 |
+ f.write(filetext) |
36 |
+ f.write('\n') |
37 |
+ f.close |
38 |
+ restrictions_dict = get_ebuild_restrictions(self._session, build_dict['ebuild_id']) |
39 |
+ if restrictions_dict: |
40 |
+ if "test" in restrictions_dict: |
41 |
+ filetext = k + ' ' + 'notest.conf' |
42 |
+ log_msg = "filetext: %s" % filetext |
43 |
+ add_logs(self._session, log_msg, "info", self._config_id) |
44 |
+ with open("/etc/portage/package.env", "a") as f: |
45 |
+ f.write(filetext) |
46 |
+ f.write('\n') |
47 |
+ f.close |
48 |
log_msg = "build_cpv_list: %s" % (build_cpv_list,) |
49 |
add_logs(self._session, log_msg, "info", self._config_id) |
50 |
|
51 |
@@ -121,6 +131,9 @@ class build_job_action(object): |
52 |
os.remove("/etc/portage/package.use/99_autounmask") |
53 |
with open("/etc/portage/package.use/99_autounmask", "a") as f: |
54 |
f.close |
55 |
+ os.remove("/etc/portage/package.env") |
56 |
+ with open("/etc/portage/package.env", "a") as f: |
57 |
+ f.close |
58 |
except: |
59 |
pass |
60 |
|
61 |
|
62 |
diff --git a/tbc/pym/package.py b/tbc/pym/package.py |
63 |
index ed47955..502ea01 100644 |
64 |
--- a/tbc/pym/package.py |
65 |
+++ b/tbc/pym/package.py |
66 |
@@ -14,7 +14,7 @@ from tbc.sqlquerys import add_logs, get_package_info, get_config_info, \ |
67 |
get_package_metadata_sql, update_package_metadata, update_manifest_sql, \ |
68 |
get_package_info_from_package_id, get_config_all_info, add_new_package_sql, \ |
69 |
get_ebuild_checksums, get_ebuild_id_db, get_configmetadata_info, get_setup_info, \ |
70 |
- get_ebuild_info_ebuild_id |
71 |
+ get_ebuild_info_ebuild_id, get_ebuild_restrictions |
72 |
|
73 |
class tbc_package(object): |
74 |
|
75 |
@@ -147,6 +147,10 @@ class tbc_package(object): |
76 |
|
77 |
# Comper and add the cpv to buildqueue |
78 |
if build_cpv == k: |
79 |
+ restrictions_dict = get_ebuild_restrictions(self._session, ebuild_id) |
80 |
+ if restrictions_dict: |
81 |
+ if "test" in restrictions_dict and "test" in use_flagsDict: |
82 |
+ use_flagsDict['test'] = False |
83 |
add_new_build_job(self._session, ebuild_id, setup_id, use_flagsDict, self._config_id) |
84 |
# B = Build cpv use-flags config |
85 |
# FIXME log_msg need a fix to log the use flags corect. |
86 |
@@ -252,6 +256,8 @@ class tbc_package(object): |
87 |
log_msg = "N %s:%s" % (cp, repo) |
88 |
add_logs(self._session, log_msg, "info", self._config_id) |
89 |
repodir = self._myportdb.getRepositoryPath(repo) |
90 |
+ mytree = [] |
91 |
+ mytree.append(repodir) |
92 |
pkgdir = repodir + "/" + cp # Get RepoDIR + cp |
93 |
|
94 |
manifest_checksum_tree = self.get_manifest_checksum_tree(pkgdir, cp, repo, mytree) |
95 |
@@ -261,8 +267,6 @@ class tbc_package(object): |
96 |
|
97 |
package_metadataDict = self.get_package_metadataDict(pkgdir, package_id) |
98 |
# Get the ebuild list for cp |
99 |
- mytree = [] |
100 |
- mytree.append(repodir) |
101 |
ebuild_list_tree = self._myportdb.cp_list(cp, use_cache=1, mytree=mytree) |
102 |
if ebuild_list_tree == []: |
103 |
log_msg = "QA: Can't get the ebuilds list. %s:%s" % (cp, repo,) |
104 |
@@ -363,7 +367,7 @@ class tbc_package(object): |
105 |
repoman_fail = check_repoman(self._mysettings, self._myportdb, cpv, repo) |
106 |
if repoman_fail: |
107 |
log_msg = "Repoman %s:%s ... Fail." % (cpv, repo) |
108 |
- add_zobcs_logs(self._session, log_msg, "info", self._config_id) |
109 |
+ add_logs(self._session, log_msg, "info", self._config_id) |
110 |
|
111 |
# Check if the checksum have change |
112 |
if ebuild_version_manifest_checksum_db is None: |
113 |
|
114 |
diff --git a/tbc/pym/sqlquerys.py b/tbc/pym/sqlquerys.py |
115 |
index c674805..a8f2af4 100644 |
116 |
--- a/tbc/pym/sqlquerys.py |
117 |
+++ b/tbc/pym/sqlquerys.py |
118 |
@@ -7,7 +7,7 @@ from tbc.db_mapping import Configs, Logs, ConfigsMetaData, Jobs, BuildJobs, Pack |
119 |
Uses, ConfigsEmergeOptions, EmergeOptions, HiLight, BuildLogs, BuildLogsConfig, BuildJobsUse, BuildJobsRedo, \ |
120 |
HiLightCss, BuildLogsHiLight, BuildLogsEmergeOptions, BuildLogsErrors, ErrorsInfo, EmergeInfo, BuildLogsUse, \ |
121 |
BuildJobsEmergeOptions, EbuildsMetadata, EbuildsIUse, Restrictions, EbuildsRestrictions, EbuildsKeywords, \ |
122 |
- Keywords, PackagesMetadata, Emails, PackagesEmails, Setups, BuildLogsQA, BuildLogsRepoman |
123 |
+ Keywords, PackagesMetadata, Emails, PackagesEmails, Setups, BuildLogsQA, BuildLogsRepoman |
124 |
from sqlalchemy.orm.exc import NoResultFound, MultipleResultsFound |
125 |
from sqlalchemy import and_, or_ |
126 |
|
127 |
@@ -304,6 +304,18 @@ def add_fail_times(session, fail_querue_dict): |
128 |
session.add(NewBuildJobsRedo) |
129 |
session.commit() |
130 |
|
131 |
+def check_host_updatedb(session): |
132 |
+ jobs = False |
133 |
+ try: |
134 |
+ JobsInfo = session.query(Jobs).filter_by(Status = 'Done').filter_by(JobType = 'esync').one() |
135 |
+ except NoResultFound as e: |
136 |
+ jobs = True |
137 |
+ try: |
138 |
+ JobsInfo = session.query(Jobs).filter_by(Status = 'Done').filter_by(JobType = 'updatedb').one() |
139 |
+ except NoResultFound as e: |
140 |
+ jobs = True |
141 |
+ return jobs |
142 |
+ |
143 |
# Host Functions |
144 |
def update_repo_db(session, repo_list): |
145 |
for repo in repo_list: |
146 |
@@ -520,14 +532,15 @@ def get_ebuild_id_db(session, checksum, package_id): |
147 |
return ebuilds_id, True |
148 |
return EbuildInfos.EbuildId, False |
149 |
|
150 |
-def check_host_updatedb(session): |
151 |
- jobs = False |
152 |
+def get_ebuild_restrictions(session, ebuild_id): |
153 |
+ restrictions = [] |
154 |
try: |
155 |
- JobsInfo = session.query(Jobs).filter_by(Status = 'Done').filter_by(JobType = 'esync').one() |
156 |
+ EbuildsRestrictionsInfo = session.query(EbuildsRestrictions).filter_by(EbuildId = ebuild_id).one() |
157 |
except NoResultFound as e: |
158 |
- jobs = True |
159 |
- try: |
160 |
- JobsInfo = session.query(Jobs).filter_by(Status = 'Done').filter_by(JobType = 'updatedb').one() |
161 |
- except NoResultFound as e: |
162 |
- jobs = True |
163 |
- return jobs |
164 |
+ return False |
165 |
+ except MultipleResultsFound as e: |
166 |
+ EbuildsRestrictionsInfos = session.query(EbuildsRestrictions).filter_by(EbuildId = ebuild_id).all() |
167 |
+ for EbuildsRestrictionsInfo in EbuildsRestrictionsInfos: |
168 |
+ restrictions.append(session.query(Restrictions).filter_by(RestrictionId = EbuildsRestrictionsInfo.RestrictionId).one()) |
169 |
+ return restrictions |
170 |
+ return restrictions.append(session.query(Restrictions).filter_by(RestrictionId = EbuildsRestrictionsInfo.RestrictionId).one()) |