public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Slava Bacherikov" <slava@bacherikov.org.ua>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/gentoo-packages:master commit in: gpackages/apps/packages/
Date: Wed, 25 Jul 2012 22:47:49 +0000 (UTC)	[thread overview]
Message-ID: <1343256150.dc4adfafdddafea0b3ccd5ce7b41552191c274f8.bacher09@gentoo> (raw)

commit:     dc4adfafdddafea0b3ccd5ce7b41552191c274f8
Author:     Slava Bacherikov <slava <AT> bacher09 <DOT> org>
AuthorDate: Wed Jul 25 22:42:30 2012 +0000
Commit:     Slava Bacherikov <slava <AT> bacherikov <DOT> org <DOT> 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)


             reply	other threads:[~2012-07-25 22:48 UTC|newest]

Thread overview: 69+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-07-25 22:47 Slava Bacherikov [this message]
  -- strict thread matches above, loose matches on Subject: below --
2012-09-23 19:35 [gentoo-commits] proj/gentoo-packages:master commit in: gpackages/apps/packages/ Slava Bacherikov
2012-09-13 22:17 Slava Bacherikov
2012-08-26 23:00 Slava Bacherikov
2012-08-20 13:03 Slava Bacherikov
2012-08-20 13:03 Slava Bacherikov
2012-08-11 22:30 Slava Bacherikov
2012-08-11 22:30 Slava Bacherikov
2012-08-07  0:10 Slava Bacherikov
2012-07-31 23:20 Slava Bacherikov
2012-07-30 23:30 Slava Bacherikov
2012-07-30 12:59 Slava Bacherikov
2012-07-25 22:47 Slava Bacherikov
2012-07-22 23:46 Slava Bacherikov
2012-07-19 23:50 Slava Bacherikov
2012-07-19 23:50 Slava Bacherikov
2012-07-18 23:20 Slava Bacherikov
2012-07-18 23:20 Slava Bacherikov
2012-07-15 23:08 Slava Bacherikov
2012-07-15 23:08 Slava Bacherikov
2012-07-12 22:16 Slava Bacherikov
2012-07-08 19:54 Slava Bacherikov
2012-07-05 23:27 Slava Bacherikov
2012-07-04 22:13 Slava Bacherikov
2012-07-03 21:08 Slava Bacherikov
2012-07-02 22:25 Slava Bacherikov
2012-06-29 17:29 Slava Bacherikov
2012-06-29 17:29 Slava Bacherikov
2012-06-28 23:59 Slava Bacherikov
2012-06-28 23:59 Slava Bacherikov
2012-06-27 22:52 Slava Bacherikov
2012-06-25 22:23 Slava Bacherikov
2012-06-24 23:21 Slava Bacherikov
2012-06-20 23:23 Slava Bacherikov
2012-06-20 23:23 Slava Bacherikov
2012-06-20 23:23 Slava Bacherikov
2012-06-13 22:15 Slava Bacherikov
2012-06-12 18:34 Slava Bacherikov
2012-06-10 22:56 Slava Bacherikov
2012-06-10 17:51 Slava Bacherikov
2012-06-09 18:19 Slava Bacherikov
2012-06-09 18:19 Slava Bacherikov
2012-06-07 22:48 Slava Bacherikov
2012-06-07 18:37 Slava Bacherikov
2012-06-07 18:37 Slava Bacherikov
2012-06-07 18:37 Slava Bacherikov
2012-06-07 18:37 Slava Bacherikov
2012-06-07 11:27 Slava Bacherikov
2012-06-06 22:48 Slava Bacherikov
2012-06-05 20:48 Slava Bacherikov
2012-06-05 20:48 Slava Bacherikov
2012-06-05 20:48 Slava Bacherikov
2012-06-05 15:49 Slava Bacherikov
2012-06-05 15:49 Slava Bacherikov
2012-06-03 16:19 Slava Bacherikov
2012-06-03 13:19 Slava Bacherikov
2012-05-31 13:34 Slava Bacherikov
2012-05-29 21:34 Slava Bacherikov
2012-05-29 13:38 Slava Bacherikov
2012-05-29 12:24 Slava Bacherikov
2012-05-29 12:24 Slava Bacherikov
2012-05-29 12:24 Slava Bacherikov
2012-05-28 20:32 Slava Bacherikov
2012-05-28 17:00 Slava Bacherikov
2012-05-28 17:00 Slava Bacherikov
2012-05-28 17:00 Slava Bacherikov
2012-05-28 10:39 Slava Bacherikov
2012-05-28 10:39 Slava Bacherikov
2012-05-27 22:48 Slava Bacherikov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1343256150.dc4adfafdddafea0b3ccd5ce7b41552191c274f8.bacher09@gentoo \
    --to=slava@bacherikov.org.ua \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox