commit: 1cbba36a9ea54c96b751728c98e30e0c23fac006
Author: Magnus Granberg <zorry <AT> gentoo <DOT> org>
AuthorDate: Wed Aug 5 01:09:51 2015 +0000
Commit: Magnus Granberg <zorry <AT> gentoo <DOT> org>
CommitDate: Wed Aug 5 01:09:51 2015 +0000
URL:
https://gitweb.gentoo.org/proj/tinderbox-cluster.git/commit/?id=1cbba36a
add remove package and fix some repoman stuff
pym/tbc/build_log.py | 4 ++--
pym/tbc/package.py | 38 ++++++++++++++++++++++----------------
pym/tbc/sqlquerys.py | 5 +++++
3 files changed, 29 insertions(+), 18 deletions(-)
diff --git a/pym/tbc/build_log.py b/pym/tbc/build_log.py
index 71c14b5..d72ef91 100644
--- a/pym/tbc/build_log.py
+++ b/pym/tbc/build_log.py
@@ -32,7 +32,7 @@ from tbc.sqlquerys import add_logs, get_config_id,
get_ebuild_id_db, add_new_bui
add_repoman_log
from sqlalchemy.orm import sessionmaker
-def repoman_check_full(session, pkgdir, package_id, config_id):
+def check_repoman_full(session, pkgdir, package_id, config_id):
# Check cp with repoman repoman full
status = repoman_full(session, pkgdir, config_id)
repoman_hash = hashlib.sha256()
@@ -224,7 +224,7 @@ def get_buildlog_info(session, settings, pkg, build_dict):
categories = element[0]
package = element[1]
pkgdir = myportdb.getRepositoryPath(build_dict['repo']) + "/" +
categories + "/" + package
- repoman_error_list = repoman_check_full(session, pkgdir,
build_dict['package_id'], config_id)
+ repoman_error_list = check_repoman_full(session, pkgdir,
build_dict['package_id'], config_id)
build_log_dict = {}
build_log_dict['fail'] = False
if repoman_error_list:
diff --git a/pym/tbc/package.py b/pym/tbc/package.py
index 657c90d..0bb41eb 100644
--- a/pym/tbc/package.py
+++ b/pym/tbc/package.py
@@ -16,7 +16,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_restrictions
+ get_ebuild_info_ebuild_id, get_ebuild_restrictions, add_old_package
class tbc_package(object):
@@ -159,6 +159,7 @@ class tbc_package(object):
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)
i = i +1
+
def get_changelog_text(self, pkgdir):
changelog_text_dict, max_text_lines = get_log_text_dict(pkgdir
+ "/ChangeLog")
spec = 3
@@ -214,7 +215,7 @@ class tbc_package(object):
def add_package(self, packageDict, package_metadataDict, package_id,
new_ebuild_id_list, old_ebuild_id_list, manifest_checksum_tree):
# Use packageDict to update the db
ebuild_id_list = add_new_ebuild_sql(self._session, packageDict)
-
+
# Make old ebuilds unactive
for ebuild_id in ebuild_id_list:
new_ebuild_id_list.append(ebuild_id)
@@ -286,12 +287,13 @@ class tbc_package(object):
return
package_id = add_new_package_sql(self._session, cp, repo)
-
+
# 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." %
(cpv, repo)
- add_logs(self._session, log_msg,
"error", self._config_id)
+ log_msg = "Repoman %s::%s ... Fail." % (cp, repo)
+ add_logs(self._session, log_msg, "error",
self._config_id)
+
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)
@@ -308,7 +310,7 @@ class tbc_package(object):
old_ebuild_id_list = []
for cpv in sorted(ebuild_list_tree):
packageDict[cpv] = self.get_packageDict(pkgdir, cpv,
repo)
-
+
# take package descriptions from the ebuilds
if
package_metadataDict[package_id]['metadata_xml_descriptions'] !=
packageDict[cpv]['ebuild_version_descriptions_tree']:
package_metadataDict[package_id]['metadata_xml_descriptions'] =
packageDict[cpv]['ebuild_version_descriptions_tree']
@@ -329,6 +331,7 @@ class tbc_package(object):
pkgdir = repodir + "/" + cp # Get RepoDIR + cp
mytree = []
mytree.append(repodir)
+
manifest_checksum_tree =
self.get_manifest_checksum_tree(pkgdir, cp, repo, mytree)
if manifest_checksum_tree is None:
return
@@ -340,17 +343,11 @@ class tbc_package(object):
log_msg = "U %s:%s" % (cp, repo)
add_logs(self._session, log_msg, "info",
self._config_id)
- # 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." %
(cpv, repo)
- add_logs(self._session, log_msg,
"error", self._config_id)
-
# 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 == []:
- if manifest_checksum_tree != "0":
+ if manifest_checksum_tree == "0":
old_ebuild_id_list =
get_ebuild_id_list(self._session, package_id)
for ebuild_id in old_ebuild_id_list:
EbuildInfo =
get_ebuild_info_ebuild_id(self._session, ebuild_id)
@@ -358,15 +355,24 @@ class tbc_package(object):
# R = remove ebuild
log_msg = "R %s:%s" % (cpv,
repo,)
add_logs(self._session,
log_msg, "info", self._config_id)
+ if not os.path.isdir(pkgdir):
+
add_old_package(self._session, package_id)
add_old_ebuild(self._session,
old_ebuild_id_list)
log_msg = "C %s:%s ... Done." % (cp,
repo)
add_logs(self._session, log_msg,
"info", self._config_id)
+
else:
log_msg = "QA: Can't get the ebuilds
list. %s:%s" % (cp, repo,)
add_logs(self._session, log_msg,
"info", self._config_id)
log_msg = "C %s:%s ... Fail." % (cp,
repo)
add_logs(self._session, log_msg,
"info", self._config_id)
return
+
+ # 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)
package_metadataDict =
self.get_package_metadataDict(pkgdir, package_id)
packageDict ={}
new_ebuild_id_list = []
@@ -374,14 +380,14 @@ class tbc_package(object):
# split out ebuild version
ebuild_version_tree =
portage.versions.cpv_getversion(cpv)
-
+
# Get packageDict for cpv
packageDict[cpv] = self.get_packageDict(pkgdir,
cpv, repo)
-
+
# take package descriptions from the ebuilds
if
package_metadataDict[package_id]['metadata_xml_descriptions'] !=
packageDict[cpv]['ebuild_version_descriptions_tree']:
package_metadataDict[package_id]['metadata_xml_descriptions'] =
packageDict[cpv]['ebuild_version_descriptions_tree']
-
+
# Get the checksum of the ebuild in tree and db
ebuild_version_checksum_tree =
packageDict[cpv]['checksum']
checksums_db, fail =
get_ebuild_checksums(self._session, package_id, ebuild_version_tree)
diff --git a/pym/tbc/sqlquerys.py b/pym/tbc/sqlquerys.py
index 4d2a5e5..7791e6e 100644
--- a/pym/tbc/sqlquerys.py
+++ b/pym/tbc/sqlquerys.py
@@ -453,6 +453,11 @@ def add_old_ebuild(session, old_ebuild_list):
for build_job in build_job_id_list:
del_old_build_jobs(session,
build_job.BuildJobId)
+def add_old_package(session, package_id):
+ PackagesInfo = session.query(Packages).filter_by(PackageId =
package_id).one()
+ PackagesInfo.Active = False
+ session.commit()
+
def add_new_package_sql(session, cp, repo):
element = cp.split('/')
categories = element[0]