X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=daklib%2Fdatabase.py;h=c274a637a84fd54c0af32075056dce5e6341c930;hb=1af0343f2bcab92549d41426be7acd4fe7361206;hp=5818733ea73a565e7fe9cb3bbf876626ea576e44;hpb=9f371390bb90395b2f2f0b65c91c21047896774a;p=dak.git diff --git a/daklib/database.py b/daklib/database.py index 5818733e..c274a637 100755 --- a/daklib/database.py +++ b/daklib/database.py @@ -3,7 +3,8 @@ """ DB access functions @group readonly: get_suite_id, get_section_id, get_priority_id, get_override_type_id, get_architecture_id, get_archive_id, get_component_id, get_location_id, - get_source_id, get_suite_version, get_files_id, get_maintainer, get_suites + get_source_id, get_suite_version, get_files_id, get_maintainer, get_suites, + get_suite_architectures @group read/write: get_or_set*, set_files_id @contact: Debian FTP Master @@ -47,6 +48,7 @@ location_id_cache = {} #: cache for locations maintainer_id_cache = {} #: cache for maintainers keyring_id_cache = {} #: cache for keyrings source_id_cache = {} #: cache for sources + files_id_cache = {} #: cache for files maintainer_cache = {} #: cache for maintainer names fingerprint_id_cache = {} #: cache for fingerprints @@ -456,6 +458,32 @@ def preload_binary_id_cache(): cache_preloaded = True +def get_suite_architectures(suite): + """ + Returns list of architectures for C{suite}. + + @type suite: string, int + @param suite: the suite name or the suite_id + + @rtype: list + @return: the list of architectures for I{suite} + """ + + suite_id = None + if type(suite) == str: + suite_id = get_suite_id(suite) + elif type(suite) == int: + suite_id = suite + else: + return None + + sql = """ SELECT a.arch_string FROM suite_architectures sa + JOIN architecture a ON (a.id = sa.architecture) + WHERE suite='%s' """ % (suite_id) + + q = projectB.query(sql) + return map(lambda x: x[0], q.getresult()) + ################################################################################ def get_or_set_maintainer_id (maintainer): @@ -786,12 +814,12 @@ def copy_temporary_contents(package, version, deb): copy the previously stored contents from the temp table to the permanant one during process-unchecked, the deb should have been scanned and the - contents stored in temp_content_associations + contents stored in pending_content_associations """ # first see if contents exist: - exists = projectB.query("""SELECT 1 FROM temp_content_associations + exists = projectB.query("""SELECT 1 FROM pending_content_associations WHERE package='%s' LIMIT 1""" % package ).getresult() if not exists: @@ -801,21 +829,21 @@ def copy_temporary_contents(package, version, deb): subst = { "__PACKAGE__": package, "__VERSION__": version, - "__DAK_ADDRESS__": Cnf["Dinstall::MyEmailAddress"] - } + "__TO_ADDRESS__": Cnf["Dinstall::MyAdminAddress"], + "__DAK_ADDRESS__": Cnf["Dinstall::MyEmailAddress"] } - message = utils.TemplateSubst(Subst, Cnf["Dir::Templates"]+"/bts-categorize") + message = utils.TemplateSubst(Subst, Cnf["Dir::Templates"]+"/missing-contents") utils.send_mail( message ) exists = DBConn().insert_content_path(package, version, deb) if exists: sql = """INSERT INTO content_associations(binary_pkg,filepath,filename) - SELECT currval('binaries_id_seq'), filepath, filename FROM temp_content_associations + SELECT currval('binaries_id_seq'), filepath, filename FROM pending_content_associations WHERE package='%s' AND version='%s'""" % (package, version) projectB.query(sql) - projectB.query("""DELETE from temp_content_associations + projectB.query("""DELETE from pending_content_associations WHERE package='%s' AND version='%s'""" % (package, version))