extras-repoclosure RepoSupportExample.py, NONE, 1.1 RepoSupport.py, 1.1, 1.2 rc-run.py, 1.13, 1.14

Michael Schwendt (mschwendt) fedora-extras-commits at redhat.com
Sun Jul 16 14:00:06 UTC 2006


Author: mschwendt

Update of /cvs/fedora/extras-repoclosure
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv11898

Modified Files:
	RepoSupport.py rc-run.py 
Added Files:
	RepoSupportExample.py 
Log Message:
- move out more lines of code from rc-run.py into module
- add small example/test file RepoSupportExample.py



--- NEW FILE RepoSupportExample.py ---
#!/usr/bin/python
# -*- mode: Python; indent-tabs-mode: nil; -*-

import os

import sys
sys.path.append('.')
from RepoSupport import RepoSupport

if __name__ == '__main__':
    rs = RepoSupport()
    print rs.AllReleases()
    print rs.GenerateRepoIds('3')
    print rs.ReleaseArchsDict()['development']
    print rs.ReleaseRepoDict()['5']
    print rs.RepoNamesDict()['fedora-core']
    conf = rs.GenerateConfig(['5','4'])
    print conf
    os.system('cat %s' % conf)
    


Index: RepoSupport.py
===================================================================
RCS file: /cvs/fedora/extras-repoclosure/RepoSupport.py,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- RepoSupport.py	16 Jul 2006 13:35:42 -0000	1.1
+++ RepoSupport.py	16 Jul 2006 14:00:04 -0000	1.2
@@ -60,8 +60,20 @@
         return self.allreleases
 
     def ReleaseArchsDict(self):
-        """return map with list of releases per architecture"""
-        return self.relarchs
+        """return map with list of architectures per release"""
+        return self.archs
+
+    def TargetArchsDict(self):
+        """return target architecture map"""
+        return self.targetarchs
+    
+    def ReleaseRepoDict(self):
+        """return map with list of repository base-ids per release"""
+        return self.repos
+
+    def RepoNamesDict(self):
+        """return map with list of repository descriptions per release"""
+        return self.reponames
 
     def GenerateConfig(self, releases, cachedir=''):
         """return temporary yum.conf with repository definitions for the


Index: rc-run.py
===================================================================
RCS file: /cvs/fedora/extras-repoclosure/rc-run.py,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- rc-run.py	4 Jul 2006 17:56:27 -0000	1.13
+++ rc-run.py	16 Jul 2006 14:00:04 -0000	1.14
@@ -13,70 +13,9 @@
 workdir = '/srv/rpmbuild/extras-repoclosure'
 cachedir = '/srv/rpmbuild/extras-repoclosure/mdcache'
 
-allreleases = [ '3', '4', '5', 'development' ]
-
-archs = { '3' : ['i386','x86_64'],
-          '4' : ['i386','x86_64','ppc'],
-          '5' : ['i386','x86_64','ppc'],
-          'development' : ['i386','x86_64','ppc']
-          }
-
-repos = { '3' : ['fedora-core','fedora-core-updates','fedora-extras'],
-          '4' : ['fedora-core','fedora-core-updates','fedora-extras'],
-          '5' : ['fedora-core','fedora-core-updates','fedora-extras'],
-          'development' : ['fedora-core','fedora-extras']
-          }
-
-reponames = { 'fedora-core' : 'Fedora Core',
-              'fedora-core-updates' : 'Fedora Core Released Updates',
-              'fedora-extras' : 'Fedora Extras'
-              }
-
-# (%s, %s) = (release, arch)
-baseurls = { 'fedora-core' : 'http://download.fedora.redhat.com/pub/fedora/linux/core/%s/%s/os/',
-             'fedora-core-updates' : 'http://download.fedora.redhat.com/pub/fedora/linux/core/updates/%s/%s/',
-             'fedora-extras' : 'file:///srv/rpmbuild/extras/tree/extras/%s/%s/'
-             }
-
-targetarchs = { 'i386' : 'i686',
-                'x86_64' : 'x86_64',
-                'ppc' : 'ppc'
-                }
-
-def generateConfig():
-    try:
-        (fd, conffile) = tempfile.mkstemp()
-    except:
-        conffile = tempfile.mktemp()
-    fd = os.open(conffile,os.O_RDWR|os.O_CREAT)
-    confheader = """[main]
-cachedir=/var/cache/yum
-debuglevel=2
-logfile=/var/log/yum.log
-pkgpolicy=newest
-distroverpkg=fedora-release
-reposdir=/dev/null
-exactarch=1
-obsoletes=1
-retries=20
-
-"""
-    os.write(fd,confheader)
-    for release in allreleases:
-        for repo in repos[release]:
-            for arch in archs[release]:
-                reposection = """[%s-%s-%s]
-name=%s %s - %s
-baseurl=%s
-enabled=0
-
-""" % (repo, release, arch,
-       reponames[repo], release, arch,
-       baseurls[repo] % (release,arch))
-                os.write(fd,reposection)
-                
-    os.close(fd)
-    return conffile
+import sys
+sys.path.append('/srv/extras-push/work/extras-repoclosure')
+from RepoSupport import RepoSupport
 
 
 def makereport():
@@ -84,10 +23,10 @@
         os.remove(logfilename)
     except:
         pass
-    for arch in archs[release]:
+    for arch in rs.ReleaseArchsDict()[release]:
         print '%s (%s)' % (release,arch)
-        rcargs = ('-a %s ' % targetarchs[arch])
-        for r in repos[release]:
+        rcargs = ('-a %s ' % rs.targetarchs[arch])
+        for r in rs.ReleaseRepoDict()[release]:
             repoid = '%s-%s-%s' % (r,release,arch)
             rcargs += ('-r %s ' % repoid)
         # -n, --newest : yum-utils 0.5
@@ -169,20 +108,23 @@
     print 'ERROR: %s: %s' % (strerr,lockfilename)
     sys.exit(11)
 
+rs = RepoSupport()
+
 if sys.argv[0].endswith('rc-run-all.py'): # process all releases
-    for release in allreleases:
+    for release in rs.AllReleases():
         releases.append(release)
 else: # process one release given as command-line argument
     if len(sys.argv) != 2:
         print 'SYNTAX: %s <release>' % sys.argv[0]
         sys.exit(22)
     release = sys.argv[1]
-    if release not in archs:
+    if release not in rs.ReleaseArchsDict():
         print 'ERROR: release %s is not supported' % release
         sys.exit(22)
     releases = [release]
 
-conffile = generateConfig()
+conffile = rs.GenerateConfig(rs.AllReleases(),
+                             cachedir='/srv/rpmbuild/extras-repoclosure/mdcache')
 
 goodlogs = []
 badlogs = []




More information about the fedora-extras-commits mailing list