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]

Reply via email to