diff options
author | Sean Finney <seanius@debian.org> | 2011-09-17 13:22:22 +0200 |
---|---|---|
committer | Sean Finney <seanius@debian.org> | 2011-09-17 14:17:44 +0200 |
commit | 256f98994f7dae65b731d137217e210d23262c6b (patch) | |
tree | 95ab7f9fdbdc44fdf318a0e3d90560f7fbc48e3a | |
parent | 2f0570f339bbf30697b965caf09c9d2e7740bf35 (diff) | |
download | patch-tracker-django-rewrite.tar.gz |
Properly create/insert objects that don't existdjango-rewrite
-rwxr-xr-x | gen-patch-info.py | 29 |
1 files changed, 23 insertions, 6 deletions
diff --git a/gen-patch-info.py b/gen-patch-info.py index 0c2e768..de82276 100755 --- a/gen-patch-info.py +++ b/gen-patch-info.py @@ -43,17 +43,34 @@ if __name__ == '__main__': print a for s in a.suites(filter=suites): print "suite: ",s - suite = patchtracker.models.RepositorySuite.objects.get(name=s) + try: + suite = patchtracker.models.RepositorySuite.objects.get(name=s) + except patchtracker.models.RepositorySuite.DoesNotExist: + suite = patchtracker.models.RepositorySuite.objects.create(name=s) + suite.save() + for c in a.components(s): print "\tcomponent:",c - component = patchtracker.models.RepositoryComponent.objects.get(name=c) + try: + component = patchtracker.models.RepositoryComponent.objects.get(name=c) + except patchtracker.models.RepositoryComponent.DoesNotExist: + component = patchtracker.models.RepositoryComponent.objects.create(name=c) + component.save() + for p in a.sourcepackages(s, c, filter=packages): print "\t\tpackage:",p - m = patchtracker.models.SourcePackageMapping.objects.get(suite=suite, component=component, package__name=p.name) - m.package = p - m.save() + try: + pkg = patchtracker.models.SourcePackage.objects.get(name=p.name, version=p.version) + except patchtracker.models.SourcePackage.DoesNotExist: + p.save() + pkg = p + try: + m = patchtracker.models.SourcePackageMapping.objects.get(suite=suite, component=component, package=pkg) + except patchtracker.models.SourcePackageMapping.DoesNotExist: + m = patchtracker.models.SourcePackageMapping.objects.create(suite=suite, component=component, package=pkg) + m.save() if gen_pts_index: - pts_idx.add(p) + pts_idx.add(pkg) if gen_pts_index: pts_fh = gzip.GzipFile(Conf.pts_index_file, mode="wb") |