- # Temporarily disable contents storage until we re-do the table layout
- #exists = Binary(deb, reject).scan_package()
-
- if exists:
- sql = """INSERT INTO content_associations(binary_pkg,filepath,filename)
- SELECT currval('binaries_id_seq'), filepath, filename FROM pending_content_associations
- WHERE package=:package AND version=:version AND architecture=:archid"""
- session.execute(sql, vals)
-
- sql = """DELETE from pending_content_associations
- WHERE package=:package AND version=:version AND architecture=:archid"""
- session.execute(sql, vals)
- session.commit()
+ # rescan it now
+ exists = Binary(deb, reject).scan_package()
+
+ if not exists:
+ # LOG?
+ return False
+
+ component = binary.poolfile.location.component
+ override = session.query(Override).filter_by(package=binary.package,
+ suite=bin_association.suite,
+ component=component.id).first()
+ if not override:
+ # LOG?
+ return False
+
+
+ if not override.overridetype.type.endswith('deb'):
+ return True
+
+ if override.overridetype.type == "udeb":
+ table = "udeb_contents"
+ elif override.overridetype.type == "deb":
+ table = "deb_contents"
+ else:
+ return False
+
+
+ if component.name == "main":
+ component_str = ""
+ else:
+ component_str = component.name + "/"
+
+ vals = { 'package':binary.package,
+ 'version':binary.version,
+ 'arch':binary.architecture,
+ 'binary_id': binary.id,
+ 'component':component_str,
+ 'section':override.section.section
+ }
+
+ session.execute( """INSERT INTO %s
+ (binary_id,package,version.component,arch,section,filename)
+ SELECT :binary_id, :package, :version, :component, :arch, :section
+ FROM pending_bin_contents pbc
+ WHERE pbc.package=:package
+ AND pbc.version=:version
+ AND pbc.arch=:arch""" % table, vals )
+
+ session.execute( """DELETE from pending_bin_contents package=:package
+ AND version=:version
+ AND arch=:arch""", vals )