From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) by finch.gentoo.org (Postfix) with ESMTP id 5E6DC13800E for ; Wed, 25 Jul 2012 22:48:11 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 91FCAE0687; Wed, 25 Jul 2012 22:47:52 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by pigeon.gentoo.org (Postfix) with ESMTP id 4D27EE0687 for ; Wed, 25 Jul 2012 22:47:52 +0000 (UTC) Received: from hornbill.gentoo.org (hornbill.gentoo.org [94.100.119.163]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 4D7581B47A1 for ; Wed, 25 Jul 2012 22:47:51 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by hornbill.gentoo.org (Postfix) with ESMTP id 376F6E5446 for ; Wed, 25 Jul 2012 22:47:49 +0000 (UTC) From: "Slava Bacherikov" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Slava Bacherikov" Message-ID: <1343256150.dc4adfafdddafea0b3ccd5ce7b41552191c274f8.bacher09@gentoo> Subject: [gentoo-commits] proj/gentoo-packages:master commit in: gpackages/apps/packages/ X-VCS-Repository: proj/gentoo-packages X-VCS-Files: gpackages/apps/packages/scan.py X-VCS-Directories: gpackages/apps/packages/ X-VCS-Committer: bacher09 X-VCS-Committer-Name: Slava Bacherikov X-VCS-Revision: dc4adfafdddafea0b3ccd5ce7b41552191c274f8 X-VCS-Branch: master Date: Wed, 25 Jul 2012 22:47:49 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: 4b4a4f14-79fc-4d21-9810-ef59ba632d30 X-Archives-Hash: eb5a063c444260dd1a481c93547aad7b commit: dc4adfafdddafea0b3ccd5ce7b41552191c274f8 Author: Slava Bacherikov bacher09 org> AuthorDate: Wed Jul 25 22:42:30 2012 +0000 Commit: Slava Bacherikov bacherikov org ua> CommitDate: Wed Jul 25 22:42:30 2012 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gentoo-packages.git;a=commit;h=dc4adfaf More right transactions --- gpackages/apps/packages/scan.py | 71 ++++++++++++++++++++++----------------- 1 files changed, 40 insertions(+), 31 deletions(-) diff --git a/gpackages/apps/packages/scan.py b/gpackages/apps/packages/scan.py index c99ed85..d7c2f63 100644 --- a/gpackages/apps/packages/scan.py +++ b/gpackages/apps/packages/scan.py @@ -580,6 +580,38 @@ class Scanner(object): package_object.update_info(package) package_object.save(force_update = True) + @transaction.commit_on_success + def scanpackage(self, package, porttree, category_object, porttree_obj, + force_update = False): + #if use_cache: + #key = str(porttree.name)+'/'+str(package) + #val = None + #if key in cache_dict: + #val = cache_dict[key] + #if val is not None and val == package.manifest_sha1: + #continue + self.output('%-44s [%s]\n', (package, porttree)) + package_object, package_created = models.PackageModel.objects \ + .only('changelog_hash', 'manifest_hash', 'metadata_hash') \ + .get_or_create(package = package, + category = category_object, + repository = porttree_obj) + #if update_cache: + #key = str(porttree.name)+'/'+str(package) + #cache_dict[key] = package.manifest_sha1 + + if not package_created: + if package_object.check_or_need_update(package) or force_update: + # need update + self.update_package(package, package_object, + force_update = force_update) + + return package_object.pk + # if package_created: + self.add_related_to_package(package, package_object) + self.create_ebuilds(package, package_object) + return package_object.pk + def scanpackages(self, porttree, porttree_obj, delete = True, force_update = False, update_cache = True, use_cache = True): """Scan packages (and ebuilds) in porttree @@ -604,34 +636,10 @@ class Scanner(object): existend_categorys.append(category_object.pk) for package in category.iter_packages(): - #if use_cache: - #key = str(porttree.name)+'/'+str(package) - #val = None - #if key in cache_dict: - #val = cache_dict[key] - #if val is not None and val == package.manifest_sha1: - #continue - self.output('%-44s [%s]\n', (package, porttree)) - package_object, package_created = models.PackageModel.objects \ - .only('changelog_hash', 'manifest_hash', 'metadata_hash') \ - .get_or_create(package = package, - category = category_object, - repository = porttree_obj) - #if update_cache: - #key = str(porttree.name)+'/'+str(package) - #cache_dict[key] = package.manifest_sha1 - - existend_packages.append(package_object.pk) - if not package_created: - if package_object.check_or_need_update(package) or force_update: - # need update - self.update_package(package, package_object, - force_update = force_update) - - continue - # if package_created: - self.add_related_to_package(package, package_object) - self.create_ebuilds(package, package_object) + pk = self.scanpackage(package, porttree, + category_object, porttree_obj, + force_update) + existend_packages.append(pk) if delete: models.PackageModel.objects \ @@ -755,6 +763,7 @@ class Scanner(object): latest_ebuild = max(ebuilds, key = lambda x: x.version_cmp) except ValueError: logger.exception('Bad package without ebuilds %s' % package_id) - # Hack for not update last modified datetime - models.PackageModel.objects.filter(pk = package_id). \ - update(latest_ebuild = latest_ebuild) + else: + # Hack for not update last modified datetime + models.PackageModel.objects.filter(pk = package_id). \ + update(latest_ebuild = latest_ebuild)