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 660F113877A for ; Sat, 16 Aug 2014 18:06:20 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 3C132E08B5; Sat, 16 Aug 2014 18:06:18 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id A6C65E08B5 for ; Sat, 16 Aug 2014 18:06:17 +0000 (UTC) Received: from spoonbill.gentoo.org (spoonbill.gentoo.org [81.93.255.5]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 7B95233FF41 for ; Sat, 16 Aug 2014 18:06:16 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by spoonbill.gentoo.org (Postfix) with ESMTP id A66D11881B for ; Sat, 16 Aug 2014 18:06:14 +0000 (UTC) From: "Brian Dolbec" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Brian Dolbec" Message-ID: <1408211929.754cc935e1484b580e1bcbabb4210ffc4084efc6.dol-sen@gentoo> Subject: [gentoo-commits] proj/layman:master commit in: layman/ X-VCS-Repository: proj/layman X-VCS-Files: layman/api.py X-VCS-Directories: layman/ X-VCS-Committer: dol-sen X-VCS-Committer-Name: Brian Dolbec X-VCS-Revision: 754cc935e1484b580e1bcbabb4210ffc4084efc6 X-VCS-Branch: master Date: Sat, 16 Aug 2014 18:06:14 +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: cdafa44b-00f1-434a-ac2e-003f943f3a62 X-Archives-Hash: 5b672dc36f1ac77fe3c519f7243a0e7d commit: 754cc935e1484b580e1bcbabb4210ffc4084efc6 Author: Brian Dolbec gentoo org> AuthorDate: Sat Jul 26 23:38:14 2014 +0000 Commit: Brian Dolbec gmail com> CommitDate: Sat Aug 16 17:58:49 2014 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/layman.git;a=commit;h=754cc935 Fix errors in overlay updates. Original problem reported in #gentoo-overlays by user quinso. --- layman/api.py | 42 ++++++++++++++++++++++++------------------ 1 file changed, 24 insertions(+), 18 deletions(-) diff --git a/layman/api.py b/layman/api.py index bb63d8d..cff89ed 100755 --- a/layman/api.py +++ b/layman/api.py @@ -409,9 +409,8 @@ class LaymanAPI(object): current_src = odb.sources[0].src (available_srcs, valid) = verify_overlay_src(current_src, set(e.src for e in ordb.sources)) - + if ordb and odb and not valid: - update_url = True if len(available_srcs) == 1: plural = '' candidates = ' %s' % tuple(available_srcs)[0] @@ -437,8 +436,8 @@ class LaymanAPI(object): 'candidates':candidates, 'plural':plural, }) - return True, msg - return False, '' + return True, msg, available_srcs + return False, '', available_srcs def sync(self, repos, output_results=True, update_news=False): """syncs the specified repo(s) specified by repos @@ -486,22 +485,29 @@ class LaymanAPI(object): self.output.debug("API.sync(); else: self._get_remote_db().select(ovl)", 5) (diff_type, type_msg) = self._verify_overlay_type(odb, ordb) - (update_url, url_msg) = self._verify_overlay_source(odb, ordb) + (update_url, url_msg, available_srcs) = self._verify_overlay_source(odb, ordb) + + try: + if diff_type: + self.output.debug("API.sync(); starting API.readd_repos(ovl)", 5) + warnings.append((ovl, type_msg)) + self.readd_repos(ovl) + success.append((ovl, 'Successfully readded overlay "' + ovl + '".')) + else: + if update_url: + self.output.debug("API.sync() starting db.update(ovl)", 5) + warnings.append((ovl, url_msg)) + update_success = db.update(ordb, available_srcs) + if not update_success: + self.output.warn('Failed to update repo...readding', 2) + self.readd_repos(ovl) + except Exception as error: + self.output.warn('Failed to perform overlay type or url updates', 2) + self.output.warn(' for Overlay: %s' % ovl, 2) + self.output.warn(' Error was: %s' % str(error)) + continue try: - if diff_type: - self.output.debug("API.sync(); starting API.readd_repos(ovl)", 5) - warnings.append((ovl, type_msg)) - self.readd_repos(ovl) - success.append((ovl, 'Successfully readded overlay "' + ovl + '".')) - else: - if update_url: - self.output.debug("API.sync() starting db.update(ovl)", 5) - warnings.append((ovl, url_msg)) - update_success = db.update(ordb, available_srcs) - if not update_success: - self.output.warn('Failed to update repo...readding', 2) - self.readd_repos(ovl) self.output.debug("API.sync(); starting db.sync(ovl)", 5) db.sync(ovl) success.append((ovl,'Successfully synchronized overlay "' + ovl + '".'))