Check the valid of generated repos before using it
authorZhang Qiang <qiang.z.zhang@intel.com>
Wed, 4 Jul 2012 01:38:55 +0000 (09:38 +0800)
committerZhang Qiang <qiang.z.zhang@intel.com>
Wed, 4 Jul 2012 01:38:55 +0000 (09:38 +0800)
without this patch repos passed to build would contains some invalid
repos, which result in build fails.

gitbuildsys/utils.py

index cedde80d4b867f80065fd6c69491887b612997b6..bc72fad06f2f26a7f5c6dd946bb0dbaf96af4552 100644 (file)
@@ -169,7 +169,19 @@ class RepoParser(object):
         for arch in archs:
             repourls = [os.path.join(baseurl, 'repos', repo, arch, 'packages') \
                         for repo in repos]
-            self.repourls[arch] = repourls
+            validrepos = []
+            for repo in repourls:
+                # Check if repo is valid standard repo
+                repomd_url = os.path.join(repo, 'repodata/repomd.xml')
+                repomd_file = os.path.join(self.cachedir, 'repomd.xml')
+                try:
+                    urlgrab(repomd_url, repomd_file,
+                                            self.repos[baseurl]['user'],\
+                                            self.repos[baseurl]['passwd'])
+                    validrepos.append(repo)
+                except errors.UrlError:
+                    pass
+            self.repourls[arch] = validrepos
         self.archs = archs
 
     def parse(self):