summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean Finney <seanius@debian.org>2011-09-17 13:22:22 +0200
committerSean Finney <seanius@debian.org>2011-09-17 14:17:44 +0200
commit256f98994f7dae65b731d137217e210d23262c6b (patch)
tree95ab7f9fdbdc44fdf318a0e3d90560f7fbc48e3a
parent2f0570f339bbf30697b965caf09c9d2e7740bf35 (diff)
downloadpatch-tracker-django-rewrite.tar.gz
Properly create/insert objects that don't existdjango-rewrite
-rwxr-xr-xgen-patch-info.py29
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")