Gentoo Archives: gentoo-commits

From: Magnus Granberg <zorry@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/tinderbox-cluster:master commit in: tbc/pym/
Date: Sun, 31 May 2015 21:15:30
Message-Id: 1433023427.ba984e1d239c4fcca04ccaa43b879d40cca771fc.zorry@gentoo
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())