From: Mariusz Mazur Date: Sun, 24 Jul 2005 00:31:56 +0000 (+0000) Subject: - minor internal reorganization finished X-Git-Url: http://git.pld-linux.org/?p=projects%2Fpld-ftp-admin.git;a=commitdiff_plain;h=85f3481ac15210ddccf96a73e00ed378ee860a9d - minor internal reorganization finished Changed files: bin/pfa-mvpkg -> 1.14 modules/baseftptree.py -> 1.5 modules/cmds.py -> 1.11 modules/ftptree.py -> 1.21 --- diff --git a/bin/pfa-mvpkg b/bin/pfa-mvpkg index eb331aa..fcfc992 100644 --- a/bin/pfa-mvpkg +++ b/bin/pfa-mvpkg @@ -65,7 +65,7 @@ for pkg in srctree.marked4moving: for bid in pkg.build.keys(): if pkg.build[bid].requester not in requesters: requesters.append(pkg.build[bid].requester) - pkgs[pkg.name]=requesters + pkgs[pkg.nvr]=requesters m=Message() m.set_headers(to=cval['logs_list'], subject='MOVED: %s => %s... %d packages' % @@ -73,8 +73,8 @@ m.set_headers(to=cval['logs_list'], subject='MOVED: %s => %s... %d packages' % m.write(('SrcTree: %s DstTree: %s\n' + 'Amount: %d\n\n---- Moved:\n\n') % (sys.argv[1], sys.argv[2], len(pkgs))) -for name in sorted(pkgs.keys()): - m.write_line('%s ---- %s' % (name, ', '.join(pkgs[name]))) +for nvr in sorted(pkgs.keys()): + m.write_line('%s ---- %s' % (nvr, ', '.join(pkgs[nvr]))) m.send() diff --git a/modules/baseftptree.py b/modules/baseftptree.py index ee68d4e..1f3febc 100644 --- a/modules/baseftptree.py +++ b/modules/baseftptree.py @@ -9,24 +9,24 @@ class Build: self.requester_email='' class BasePkg: - def __init__(self, name, tree=None, content=None): + def __init__(self, nvr, tree=None, content=None): self.files={} self.info={} self.build={} self.noarch_arch={} self.tree=tree - self.name=name + self.nvr=nvr self.load(content) def __repr__(self): - return self.name + return self.nvr def load(self, content=None): if content: lines=content.splitlines() else: f=open("%s/SRPMS/.metadata/%s.src.rpm.info" % - (self.tree.basedir, self.name), 'r') + (self.tree.basedir, self.nvr), 'r') lines=f.readlines() f.close() diff --git a/modules/cmds.py b/modules/cmds.py index a9e0244..b46047b 100644 --- a/modules/cmds.py +++ b/modules/cmds.py @@ -137,10 +137,10 @@ def reloadftptree(): def cmd_gettree(con): buf='' - for pkgname in pkglist: + for pkgnvr in pkglist: # TODO: show only user's own pkgs - pkg=srctree[pkgname] - line=pkgname + pkg=srctree[pkgnvr] + line=pkgnvr if pkg.marked4moving: line=line+'\n1' else: diff --git a/modules/ftptree.py b/modules/ftptree.py index 06a0200..3c244ad 100644 --- a/modules/ftptree.py +++ b/modules/ftptree.py @@ -6,6 +6,7 @@ from baseftptree import BasePkg, BaseFtpTree errnum=0 SomeError="Oh no" +quietmode=False def bailoutonerror(): if not errnum == 0: @@ -32,12 +33,15 @@ def mv(src, dst): #print "mv: %s %s" % (src, dst+'/'+src.split('/')[-1]) class Pkg(BasePkg): - def __init__(self, name, tree): + def __init__(self, nvr, tree): + BasePkg.__init__(self, nvr, tree) + self.name=string.join(nvr.split('-')[:-2], '-') + self.version=nvr.split('-')[-2] + self.release=nvr.split('-')[-1] self.marked4removal=False self.marked4moving=False self.errors=[] self.warnings=[] - BasePkg.__init__(self, name, tree) def mark4moving(self): if not self.marked4moving: @@ -49,13 +53,23 @@ class Pkg(BasePkg): self.tree.marked4removal.append(self) self.marked4removal=True + def error(self, msg): + self.errors.append(msg) + if not quietmode: + perror('%s %s' % (self.nvr, msg)) + + def warning(self, msg): + self.warnings.append(msg) + if not quietmode: + pwarning('%s %s' % (self.nvr, msg)) + def load(self, content=None): BasePkg.load(self, content) if self.info.has_key('move'): self.mark4moving() def writeinfo(self): - f=open(self.tree.basedir+'/SRPMS/.metadata/'+self.name+'.src.rpm.info', 'w') + f=open(self.tree.basedir+'/SRPMS/.metadata/'+self.nvr+'.src.rpm.info', 'w') for bid in self.build.keys(): f.write("info:build:%s:requester:%s\ninfo:build:%s:requester_email:%s\n" % (bid, self.build[bid].requester, bid, self.build[bid].requester_email)) for key in self.info.keys(): @@ -73,31 +87,31 @@ class Pkg(BasePkg): rm(noarchcachedir+rpm+'.filelist') if fileexists(noarchcachedir+rpm+'.reqlist'): rm(noarchcachedir+rpm+'.reqlist') - rm(self.tree.basedir+'/SRPMS/.metadata/'+self.name+'.src.rpm.info') + rm(self.tree.basedir+'/SRPMS/.metadata/'+self.nvr+'.src.rpm.info') def move(self, dsttree): - if dsttree.has_key(self.name): + if dsttree.has_key(self.nvr): movedany=False for arch in self.files.keys(): - if arch in dsttree[self.name].files.keys(): - pinfo("Arch %s for %s is already present in dest tree; removing from srctree" % (arch, self.name)) + if arch in dsttree[self.nvr].files.keys(): + pinfo("Arch %s for %s is already present in dest tree; removing from srctree" % (arch, self.nvr)) for rpm in self.files[arch]: rm(self.tree.basedir+'/'+arch+'/RPMS/'+rpm) else: movedany=True - dsttree[self.name].files[arch]=self.files[arch] + dsttree[self.nvr].files[arch]=self.files[arch] for rpm in self.files[arch]: mv(self.tree.basedir+'/'+arch+'/RPMS/'+rpm, dsttree.basedir+'/'+arch+'/RPMS/') if movedany: for bid in self.build.keys(): - dsttree[self.name].build[bid]=self.build[bid] - dsttree[self.name].writeinfo() - rm(self.tree.basedir+'/SRPMS/.metadata/'+self.name+'.src.rpm.info') + dsttree[self.nvr].build[bid]=self.build[bid] + dsttree[self.nvr].writeinfo() + rm(self.tree.basedir+'/SRPMS/.metadata/'+self.nvr+'.src.rpm.info') else: for arch in self.files.keys(): for rpm in self.files[arch]: mv(self.tree.basedir+'/'+arch+'/RPMS/'+rpm, dsttree.basedir+'/'+arch+'/RPMS/') - mv(self.tree.basedir+'/SRPMS/.metadata/'+self.name+'.src.rpm.info', dsttree.basedir+'/SRPMS/.metadata/') + mv(self.tree.basedir+'/SRPMS/.metadata/'+self.nvr+'.src.rpm.info', dsttree.basedir+'/SRPMS/.metadata/') class FtpTree(BaseFtpTree): @@ -134,7 +148,8 @@ class FtpTree(BaseFtpTree): return self.pkgnames def checktree(self, dsttree): - pass + self.__checkbuild(self.loadedpkgs.values()) + self.__checkarchs(dsttree, self.loadedpkgs.values()) def testmove(self, dsttree): self.__checkbuild(self.marked4moving) @@ -210,12 +225,12 @@ class FtpTree(BaseFtpTree): for pkg in marked: for bid in pkg.build.keys(): if requests.has_key(bid) and not requests[bid].find('?') == -1: - perror("%s (buildid %s) building not finished" % (pkg,bid)) + pkg.error("(buildid %s) building not finished" % bid) def __checkarchs(self, dsttree, marked): for pkg in marked: if len(pkg.files.keys()) <= 1: - perror('%s has only src.rpm built' % pkg) + pkg.error('has only src.rpm built') continue otherpkgnames=self.__find_other_pkgs(pkg, dsttree) if otherpkgnames: # check if we're not removing some archs @@ -227,8 +242,7 @@ class FtpTree(BaseFtpTree): if arch not in pkg.files.keys(): missingarchs.append(arch) if missingarchs: - perror('%s moving would remove archs: %s' % - (pkg, missingarchs)) + pkg.error('moving would remove archs: %s' % missingarchs) else: # warn if a package isn't built for all archs if (config.separate_noarch and 'noarch' in pkg.files.keys() and len(pkg.files.keys())==2): @@ -238,8 +252,7 @@ class FtpTree(BaseFtpTree): for arch in config.ftp_archs: if arch not in pkg.files.keys(): missingarchs.append(arch) - pwarning('%s not built for archs: %s' % - (pkg, missingarchs)) + pkg.warning('not built for archs: %s' % missingarchs) def __rmolderfromsrc(self): for pkg in self.marked4moving: @@ -256,11 +269,10 @@ class FtpTree(BaseFtpTree): # Used more than once filter functions def __find_other_pkgs(self, pkg, tree): - pkgname=string.join(pkg.name.split('-')[:-2], '-') - escapedpkgname=pkgname.replace('.', '\.').replace('+', '\+') + escapedpkgname=pkg.name.replace('.', '\.').replace('+', '\+') ziewre=re.compile(escapedpkgname+'-[^-]*-[^-]*$') def filter_other_pkgs(x): - if ziewre.match(x) and not x == pkg.name: + if ziewre.match(x) and not x == pkg.nvr: return True else: return False @@ -269,11 +281,10 @@ class FtpTree(BaseFtpTree): def __find_older_pkgs(self, pkg): def filter_older_pkgs(x): checking=x.split('-') - curpkg=pkg.name.split('-') - if checking[-2]