From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from pigeon.gentoo.org ([208.92.234.80] helo=lists.gentoo.org) by finch.gentoo.org with esmtp (Exim 4.60) (envelope-from ) id 1QE7YL-0005mU-Cf for garchives@archives.gentoo.org; Sun, 24 Apr 2011 22:13:19 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 69E941C012; Sun, 24 Apr 2011 22:13:10 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by pigeon.gentoo.org (Postfix) with ESMTP id E90BF1C012 for ; Sun, 24 Apr 2011 22:13:09 +0000 (UTC) Received: from pelican.gentoo.org (unknown [66.219.59.40]) (using TLSv1 with cipher ADH-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 355141B4007 for ; Sun, 24 Apr 2011 22:13:09 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by pelican.gentoo.org (Postfix) with ESMTP id 706C9803E3 for ; Sun, 24 Apr 2011 22:13:08 +0000 (UTC) From: "Magnus Granberg" To: gentoo-commits@lists.gentoo.org Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Magnus Granberg" Message-ID: <37d14f0a9ca1a7e0cccb485620322edd0e5e9967.zorry@gentoo> Subject: [gentoo-commits] dev/zorry:master commit in: gobs/bin/, gobs/pym/ X-VCS-Repository: dev/zorry X-VCS-Files: gobs/bin/gobs_updatedb gobs/pym/package.py gobs/pym/pgsqlbackend.py X-VCS-Directories: gobs/bin/ gobs/pym/ X-VCS-Committer: zorry X-VCS-Committer-Name: Magnus Granberg X-VCS-Revision: 37d14f0a9ca1a7e0cccb485620322edd0e5e9967 Date: Sun, 24 Apr 2011 22:13:08 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: quoted-printable X-Archives-Salt: X-Archives-Hash: 12c6a7112db8a7b08e58e3a233c67864 commit: 37d14f0a9ca1a7e0cccb485620322edd0e5e9967 Author: Magnus Granberg gentoo org> AuthorDate: Sun Apr 24 22:12:29 2011 +0000 Commit: Magnus Granberg gentoo org> CommitDate: Sun Apr 24 22:12:29 2011 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=3Ddev/zorry.git;a=3D= commit;h=3D37d14f0a fix the delet old packages part --- gobs/bin/gobs_updatedb | 4 +- gobs/pym/package.py | 34 +- gobs/pym/pgsqlbackend.py | 760 ++++++++++++++++++++++++----------------= ------ 3 files changed, 411 insertions(+), 387 deletions(-) diff --git a/gobs/bin/gobs_updatedb b/gobs/bin/gobs_updatedb index a6afa17..582efa6 100755 --- a/gobs/bin/gobs_updatedb +++ b/gobs/bin/gobs_updatedb @@ -67,12 +67,12 @@ def update_cpv_db(mysettings, database, gobs_settings= _dict): # Check if we don't have the cp in the package table package_id =3D database.have_package_db(categories, package) if package_id is None: - # Add new package with ebuilds + # Add new package with ebuilds package_id =3D init_package.add_new_package_db(categories, package) package_id_list_tree.append(package_id) # Ceck if we have the cp in the package table elif package_id is not None: - # Update the packages with ebuilds + # Update the packages with ebuilds init_package.update_package_db(categories, package, package_id) package_id_list_tree.append(package_id) # Update the metadata for categories diff --git a/gobs/pym/package.py b/gobs/pym/package.py index 1180bd2..ed8d70b 100644 --- a/gobs/pym/package.py +++ b/gobs/pym/package.py @@ -80,7 +80,7 @@ class gobs_package(object): ebuild_version_text =3D self.init_text.get_ebuild_text(pkgdir + "/" + = package + "-" + ebuild_version_tree + ".ebuild") init_repoman =3D gobs_repoman(self.mysettings, self.myportdb, self.dat= abase) repoman_error =3D init_repoman.check_repoman(categories, package, ebui= ld_version_tree, config_id) - ebuild_version_metadata_tree =3D get_ebuild_metadata(ebuild_line) + ebuild_version_metadata_tree =3D self.get_ebuild_metadata(ebuild_line) # if there some error to get the metadata we add rubish to the=20 # ebuild_version_metadata_tree and set ebuild_version_checksum_tree to= 0 # so it can be updated next time we update the db @@ -105,14 +105,14 @@ class gobs_package(object): for k, v in packageDict.iteritems(): attDict =3D {} metadata_restrictions =3D [] - for i in v['ebuild_version_metadata_tree'][4].split(): - metadata_restrictions.append(i) + for i in v['ebuild_version_metadata_tree'][4].split(): + metadata_restrictions.append(i) metadata_keyword =3D [] - for i in v['ebuild_version_metadata_tree'][8].split(): - metadata_keyword.append(i) + for i in v['ebuild_version_metadata_tree'][8].split(): + metadata_keyword.append(i) metadata_iuse =3D [] - for i in v['ebuild_version_metadata_tree'][10].split(): - metadata_iuse.append(i) + for i in v['ebuild_version_metadata_tree'][10].split(): + metadata_iuse.append(i) attDict['restrictions'] =3D metadata_restrictions attDict['keyword'] =3D metadata_keyword attDict['iuse'] =3D metadata_iuse @@ -174,7 +174,7 @@ class gobs_package(object): pkgdir =3D self.mysettings['PORTDIR'] + "/" + categories + "/" + packa= ge # Get PORTDIR + cp categories_dir =3D self.mysettings['PORTDIR'] + "/" + categories + "/" # Get the ebuild list for cp - ebuild_list_tree =3D self.portdb.cp_list((categories + "/" + package),= use_cache=3D1, mytree=3DNone) + ebuild_list_tree =3D self.myportdb.cp_list((categories + "/" + package= ), use_cache=3D1, mytree=3DNone) config_cpv_listDict =3D self.config_match_ebuild(categories, package) config_id =3D self.database.get_default_config()[0] packageDict =3D{} @@ -186,13 +186,9 @@ class gobs_package(object): ebuild_id_list =3D return_id[0] package_id_list =3D return_id[1] package_id =3D package_id_list[0] - # Add the manifest file to db - manifest_checksum_tree =3D portage.checksum.sha256hash(pkgdir + "/Man= ifest")[0] - get_manifest_text =3D self.init_text.get_file_text(pkgdir + "/Manifes= t") - database.add_new_manifest_sql(package_id, get_manifest_text, manifest= _checksum_tree) # Add metadataDict to db metadataDict =3D self.get_metadataDict(packageDict, ebuild_id_list) - database.add_new_metadata(metadataDict) + self.database.add_new_metadata(metadataDict) # Add any qa and repoman erro for the ebuild to buildlog qa_error =3D [] init_manifest =3D gobs_manifest(self.mysettings) @@ -206,7 +202,11 @@ class gobs_package(object): # Add some checksum on some files package_metadataDict =3D self.get_package_metadataDict(pkgdir, packag= e) self.database.add_new_package_metadata(package_id, package_metadataDi= ct) - return package_id + # Add the manifest file to db + manifest_checksum_tree =3D portage.checksum.sha256hash(pkgdir + "/Man= ifest")[0] + get_manifest_text =3D self.init_text.get_file_text(pkgdir + "/Manifes= t") + self.database.add_new_manifest_sql(package_id, get_manifest_text, man= ifest_checksum_tree) + return package_id =20 def update_package_db(self, categories, package, package_id): # Update the categories and package with new info @@ -214,7 +214,7 @@ class gobs_package(object): # Get the checksum from the file in portage tree manifest_checksum_tree =3D portage.checksum.sha256hash(pkgdir + "/Mani= fest")[0] # Get the checksum from the db in package table - manifest_checksum_db =3D self.database.get_manifest_db(package_id)[0] + manifest_checksum_db =3D self.database.get_manifest_db(package_id) # if we have the same checksum return else update the package ebuild_list_tree =3D self.myportdb.cp_list((categories + "/" + package= ), use_cache=3D1, mytree=3DNone) if manifest_checksum_tree !=3D manifest_checksum_db: @@ -264,5 +264,5 @@ class gobs_package(object): # Add the ebuild to the buildqueru table if needed self.add_new_ebuild_buildquery_db(ebuild_id_list, packageDict, config= _cpv_listDict) # Mark or remove any old ebuilds - init_old_cpv =3D gobs_old_cpv(self.database, self.myportdb) - init_old_cpv.mark_old_ebuild_db(categories, package, package_id, sort= ed(ebuild_list_tree)) + init_old_cpv =3D gobs_old_cpv(self.database, self.myportdb, self.myse= ttings) + init_old_cpv.mark_old_ebuild_db(categories, package, package_id) diff --git a/gobs/pym/pgsqlbackend.py b/gobs/pym/pgsqlbackend.py index 27fdf57..d89feec 100644 --- a/gobs/pym/pgsqlbackend.py +++ b/gobs/pym/pgsqlbackend.py @@ -1,377 +1,401 @@ =20 class SQLPackageDatabase(object): - """we have to store our stuff somewhere - - subclass and redefine init to provide - at least self.cursor""" - - # These are set by subclasses - db =3D None - cursor =3D None - syntax_placeholder =3D None - syntax_autoincrement =3D None - - sql =3D {} - - def get_default_config(self): - cursor =3D self.conn.cursor() - sqlQ =3D 'SELECT id FROM configs WHERE default_config =3D True' - cursor.execute(sqlQ) - return cursor.fetchone() + """we have to store our stuff somewhere + subclass and redefine init to provide + at least self.cursor""" + + # These are set by subclasses + db =3D None + cursor =3D None + syntax_placeholder =3D None + syntax_autoincrement =3D None + sql =3D {} + + def get_default_config(self): + cursor =3D self.conn.cursor() + sqlQ =3D 'SELECT id FROM configs WHERE default_config =3D True' + cursor.execute(sqlQ) + return cursor.fetchone() =20 - def get_config_list(self): - cursor =3D self.conn.cursor() - sqlQ =3D 'SELECT id FROM configs WHERE default_config =3D False AND = active =3D True' - cursor.execute(sqlQ) - return cursor.fetchall() - - def get_config_list_all(self): - cursor =3D self.conn.cursor() - sqlQ =3D 'SELECT id FROM configs' - cursor.execute(sqlQ) - return cursor.fetchall() - - def update__make_conf(self, configsDict): - cursor =3D self.conn.cursor() - sqlQ =3D 'UPDATE configs SET make_conf_checksum =3D %s, make_conf_te= xt =3D %s, active =3D %s, config_error =3D %s WHERE id =3D %s' - for k, v in configsDict.iteritems(): - params =3D [v['make_conf_checksum_tree'], v['make_conf_text'], v['= active'], v['config_error'], k] - cursor.execute(sqlQ, params) - self.conn.commit() - - def have_package_db(self, categories, package): - cursor =3D self.conn.cursor() - sqlQ =3D'SELECT package_id FROM packages WHERE category =3D %s AND p= ackage_name =3D %s' - params =3D categories, package - cursor.execute(sqlQ, params) - return cursor.fetchone() - - def get_categories_db(self): - cursor =3D self.conn.cursor() - sqlQ =3D' SELECT category FROM categories' - cursor.execute(sqlQ) - return cursor.fetchall() - - def get_categories_checksum_db(self, categories): - cursor =3D self.conn.cursor() - sqlQ =3D' SELECT metadata_xml_checksum FROM categories_meta WHERE ca= tegory =3D %s' - cursor.execute(sqlQ, (categories,)) - return cursor.fetchone() - - def add_new_categories_meta_sql(self, categories, categories_metadata_= xml_checksum_tree, categories_metadata_xml_text_tree): - cursor =3D self.conn.cursor() - sqlQ =3D 'INSERT INTO categories_meta (category, metadata_xml_checks= um, metadata_xml_text) VALUES ( %s, %s, %s )' - params =3D categories, categories_metadata_xml_checksum_tree, catego= ries_metadata_xml_text_tree - cursor.execute(sqlQ, params) - self.conn.commit() - - def update_categories_meta_sql(self, categories, categories_metadata_x= ml_checksum_tree, categories_metadata_xml_text_tree): - cursor =3D self.conn.cursor() - sqlQ =3D'UPDATE categories_meta SET metadata_xml_checksum =3D %s, me= tadata_xml_text =3D %s WHERE category =3D %s' - params =3D (categories_metadata_xml_checksum_tree, categories_metada= ta_xml_text_tree, categories) - cursor.execute(sqlQ, params) - self.conn.commit() - - def add_new_manifest_sql(self, package_id, get_manifest_text, manifest= _checksum_tree): - cursor =3D self.conn.cursor() - sqlQ =3D 'INSERT INTO manifest (package_id, manifest, checksum) VALU= ES ( %s, %s, %s )' - params =3D package_id, get_manifest_text, manifest_checksum_tree - cursor.execute(sqlQ, params) - self.conn.commit() - - def add_new_package_metadata(self, package_id, package_metadataDict): - cursor =3D self.conn.cursor() - sqlQ =3D 'SELECT changelog_checksum FROM packages_meta WHERE package= _id =3D %s' - cursor.execute(sqlQ, (package_id,)) - if cursor.fetchone() is None: - sqlQ =3D 'INSERT INTO packages_meta (package_id, changelog_text, c= hangelog_checksum, metadata_text, metadata_checksum) VALUES ( %s, %s, %s= , %s, %s )' - for k, v in package_metadataDict.iteritems(): - params =3D package_id, v['changelog_text'], v['changelog_checksum'], v[= ' metadata_xml_text'], v['metadata_xml_checksum'] - cursor.execute(sqlQ, params) - self.conn.commit() - - def update_new_package_metadata(self, package_id, package_metadataDict= ): - cursor =3D self.conn.cursor() - sqlQ =3D 'SELECT changelog_checksum, metadata_checksum FROM packages= _meta WHERE package_id =3D %s' - cursor.execute(sqlQ, package_id) - entries =3D cursor.fetchone() - changelog_checksum_db =3D entries[0] - metadata_checksum_db =3D entries[1] - for k, v in package_metadataDict.iteritems(): - if changelog_checksum_db !=3D v['changelog_checksum']: - sqlQ =3D 'UPDATE packages_meta SET changelog_text =3D %s, changelog_che= cksum =3D %s WHERE package_id =3D %s' - params =3D v['changelog_text'], v['changelog_checksum'], package_id - cursor.execute(sqlQ, params) - if metadata_checksum_db !=3D v['metadata_xml_checksum']: - sqlQ =3D 'UPDATE packages_meta SET metadata_text =3D %s, metadata_check= sum =3D %s WHERE package_id =3D %s' - params =3D v[' metadata_xml_text'], v['metadata_xml_checksum'], package= _id - cursor.execute(sqlQ, params) - self.conn.commit() - - def get_manifest_db(self, package_id): - cursor =3D self.conn.cursor() - sqlQ =3D 'SELECT checksum FROM manifest WHERE package_id =3D %s' - cursor.execute(sqlQ, (package_id,)) - return cursor.fetchone() - - def update_manifest_sql(self, package_id, get_manifest_text, manifest_= checksum_tree): - cursor =3D self.conn.cursor() - sqlQ =3D 'UPDATE manifest SET checksum =3D %s, manifest =3D %s WHERE = package_id =3D %s' - params =3D (manifest_checksum_tree, get_manifest_text, package_id) - cursor.execute(sqlQ, params) - self.conn.commit() - - def add_new_metadata(self, metadataDict): - for k, v in metadataDict.iteritems(): - cursor =3D self.conn.cursor() - sqlQ =3D 'SELECT updaterestrictions( %s, %s )' - params =3D k, v['restrictions'] - cursor.execute(sqlQ, params) - sqlQ =3D 'SELECT updatekeywords( %s, %s )' - params =3D k, v['keyword'] - cursor.execute(sqlQ, params) - sqlQ =3D 'SELECT updateiuse( %s, %s )' - params =3D k, v['iuse'] - cursor.execute(sqlQ, params) - self.conn.commit() - - def add_new_package_sql(self, packageDict): - #lets have a new cursor for each metod as per best practice - cursor =3D self.conn.cursor() - sqlQ=3D"SELECT insert_ebuild( %s, %s, %s, %s, %s, %s, %s, %s, %s, %s= , %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, 'True')" - ebuild_id_list =3D [] - package_id_list =3D [] - for k, v in packageDict.iteritems(): - params =3D [v['categories'], v['package'], v['ebuild_version_tree'= ], v['ebuild_version_revision'], v['ebuild_version_checksum_tree'], - v['ebuild_version_text'], v['ebuild_version_metadata_tree'][0], v[= 'ebuild_version_metadata_tree'][1], - v['ebuild_version_metadata_tree'][12], v['ebuild_version_metadata_= tree'][2], v['ebuild_version_metadata_tree'][3], - v['ebuild_version_metadata_tree'][5],v['ebuild_version_metadata_tr= ee'][6], v['ebuild_version_metadata_tree'][7], - v['ebuild_version_metadata_tree'][9], v['ebuild_version_metadata_t= ree'][11], - v['ebuild_version_metadata_tree'][13],v['ebuild_version_metadata_t= ree'][14], v['ebuild_version_metadata_tree'][15], - v['ebuild_version_metadata_tree'][16]] - cursor.execute(sqlQ, params) - mid =3D cursor.fetchone() - mid=3Dmid[0] - ebuild_id_list.append(mid[1]) - package_id_list.append(mid[0]) - self.conn.commit() - # add_new_metadata(metadataDict) - return ebuild_id_list, package_id_list - - def add_new_ebuild_sql(packageDict, new_ebuild_list): - #lets have a new cursor for each metod as per best practice - cursor =3D self.conn.cursor() - sqlQ=3D"SELECT insert_ebuild( %s, %s, %s, %s, %s, %s, %s, %s, %s, %s= , %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, 'True')" - ebuild_id_list =3D [] - package_id_list =3D [] - for k, v in packageDict.iteritems(): - for x in new_ebuild_list: - if x =3D=3D v['ebuild_version_tree']: - params =3D [v['categories'], v['package'], v['ebuild_version_tree'], = v['ebuild_version_revision'], v['ebuild_version_checksum_tree'], - v['ebuild_version_text'], v['ebuild_version_metadata_tree'][0], v['eb= uild_version_metadata_tree'][1], - v['ebuild_version_metadata_tree'][12], v['ebuild_version_metadata_tre= e'][2], v['ebuild_version_metadata_tree'][3], - v['ebuild_version_metadata_tree'][5],v['ebuild_version_metadata_tree'= ][6], v['ebuild_version_metadata_tree'][7], - v['ebuild_version_metadata_tree'][9], v['ebuild_version_metadata_tree= '][11], - v['ebuild_version_metadata_tree'][13],v['ebuild_version_metadata_tree= '][14], v['ebuild_version_metadata_tree'][15], - v['ebuild_version_metadata_tree'][16]] - cursor.execute(sqlQ, params) - mid =3D cursor.fetchone() - mid=3Dmid[0] - ebuild_id_list.append(mid[1]) - package_id_list.append(mid[0]) - self.conn.commit() - # add_new_metadata(metadataDict) - return ebuild_id_list, package_id_list - - def update_active_ebuild(self, package_id, ebuild_version_tree): - cursor =3D self.conn.cursor() - sqlQ =3D"UPDATE ebuilds SET active =3D 'False', timestamp =3D now() = WHERE package_id =3D %s AND ebuild_version =3D %s AND active =3D 'True'" - cursor.execute(sqlQ, (package_id, ebuild_version_tree)) - self.conn.commit() - - def get_cpv_from_ebuild_id(self, ebuild_id): - cursor =3D self.conn.cursor() - sqlQ =3D 'SELECT package_id FROM ebuild WHERE id =3D %s' - self.cursor.execute(sql, ebuild_id) - entries =3D self.cursor.fetchone() - return entries - - def get_cp_from_package_id(self, package_id): - cursor =3D self.conn.cursor() - sqlQ =3D "SELECT ARRAY_TO_STRING(ARRAY[category, package_name] , '/'= ) AS cp FROM packages WHERE package_id =3D %s" - cursor.execute(sqlQ, (package_id,)) - return cursor.fetchone() + def get_config_list(self): + cursor =3D self.conn.cursor() + sqlQ =3D 'SELECT id FROM configs WHERE default_config =3D False AND ac= tive =3D True' + cursor.execute(sqlQ) + return cursor.fetchall() + + def get_config_list_all(self): + cursor =3D self.conn.cursor() + sqlQ =3D 'SELECT id FROM configs' + cursor.execute(sqlQ) + return cursor.fetchall() + + def update__make_conf(self, configsDict): + cursor =3D self.conn.cursor() + sqlQ =3D 'UPDATE configs SET make_conf_checksum =3D %s, make_conf_text= =3D %s, active =3D %s, config_error =3D %s WHERE id =3D %s' + for k, v in configsDict.iteritems(): + params =3D [v['make_conf_checksum_tree'], v['make_conf_text'], v['act= ive'], v['config_error'], k] + cursor.execute(sqlQ, params) + self.conn.commit() + + def have_package_db(self, categories, package): + cursor =3D self.conn.cursor() + sqlQ =3D'SELECT package_id FROM packages WHERE category =3D %s AND pac= kage_name =3D %s' + params =3D categories, package + cursor.execute(sqlQ, params) + return cursor.fetchone() + + def get_categories_db(self): + cursor =3D self.conn.cursor() + sqlQ =3D' SELECT category FROM categories' + cursor.execute(sqlQ) + return cursor.fetchall() + + def get_categories_checksum_db(self, categories): + cursor =3D self.conn.cursor() + sqlQ =3D' SELECT metadata_xml_checksum FROM categories_meta WHERE cate= gory =3D %s' + cursor.execute(sqlQ, (categories,)) + return cursor.fetchone() + + def add_new_categories_meta_sql(self, categories, categories_metadata_x= ml_checksum_tree, categories_metadata_xml_text_tree): + cursor =3D self.conn.cursor() + sqlQ =3D 'INSERT INTO categories_meta (category, metadata_xml_checksum= , metadata_xml_text) VALUES ( %s, %s, %s )' + params =3D categories, categories_metadata_xml_checksum_tree, categori= es_metadata_xml_text_tree + cursor.execute(sqlQ, params) + self.conn.commit() + + def update_categories_meta_sql(self, categories, categories_metadata_xm= l_checksum_tree, categories_metadata_xml_text_tree): + cursor =3D self.conn.cursor() + sqlQ =3D'UPDATE categories_meta SET metadata_xml_checksum =3D %s, meta= data_xml_text =3D %s WHERE category =3D %s' + params =3D (categories_metadata_xml_checksum_tree, categories_metadata= _xml_text_tree, categories) + cursor.execute(sqlQ, params) + self.conn.commit() + + def add_new_manifest_sql(self, package_id, get_manifest_text, manifest_= checksum_tree): + cursor =3D self.conn.cursor() + sqlQ =3D 'INSERT INTO manifest (package_id, manifest, checksum) VALUES= ( %s, %s, %s )' + params =3D package_id, get_manifest_text, manifest_checksum_tree + cursor.execute(sqlQ, params) + self.conn.commit() + + def add_new_package_metadata(self, package_id, package_metadataDict): + cursor =3D self.conn.cursor() + sqlQ =3D 'SELECT changelog_checksum FROM packages_meta WHERE package_i= d =3D %s' + cursor.execute(sqlQ, (package_id,)) + if cursor.fetchone() is None: + sqlQ =3D 'INSERT INTO packages_meta (package_id, changelog_text, chan= gelog_checksum, metadata_text, metadata_checksum) VALUES ( %s, %s, %s, %= s, %s )' + for k, v in package_metadataDict.iteritems(): + params =3D package_id, v['changelog_text'], v['changelog_checksum'],= v[' metadata_xml_text'], v['metadata_xml_checksum'] + cursor.execute(sqlQ, params) + self.conn.commit() + + def update_new_package_metadata(self, package_id, package_metadataDict)= : + cursor =3D self.conn.cursor() + sqlQ =3D 'SELECT changelog_checksum, metadata_checksum FROM packages_m= eta WHERE package_id =3D %s' + cursor.execute(sqlQ, package_id) + entries =3D cursor.fetchone() + if entries is None: + changelog_checksum_db =3D None + metadata_checksum_db =3D None + else: + changelog_checksum_db =3D entries[0] + metadata_checksum_db =3D entries[1] + for k, v in package_metadataDict.iteritems(): + if changelog_checksum_db !=3D v['changelog_checksum']: + sqlQ =3D 'UPDATE packages_meta SET changelog_text =3D %s, changelog_= checksum =3D %s WHERE package_id =3D %s' + params =3D v['changelog_text'], v['changelog_checksum'], package_id + cursor.execute(sqlQ, params) + if metadata_checksum_db !=3D v['metadata_xml_checksum']: + sqlQ =3D 'UPDATE packages_meta SET metadata_text =3D %s, metadata_ch= ecksum =3D %s WHERE package_id =3D %s' + params =3D v[' metadata_xml_text'], v['metadata_xml_checksum'], pack= age_id + cursor.execute(sqlQ, params) + self.conn.commit() + + def get_manifest_db(self, package_id): + cursor =3D self.conn.cursor() + sqlQ =3D 'SELECT checksum FROM manifest WHERE package_id =3D %s' + cursor.execute(sqlQ, (package_id,)) + manifest_checksum =3D cursor.fetchone() + if manifest_checksum is None: + return None + return manifest_checksum[0] + + def update_manifest_sql(self, package_id, get_manifest_text, manifest_c= hecksum_tree): + cursor =3D self.conn.cursor() + sqlQ =3D 'UPDATE manifest SET checksum =3D %s, manifest =3D %s WHERE p= ackage_id =3D %s' + params =3D (manifest_checksum_tree, get_manifest_text, package_id) + cursor.execute(sqlQ, params) + self.conn.commit() + + def add_new_metadata(self, metadataDict): + for k, v in metadataDict.iteritems(): + cursor =3D self.conn.cursor() + sqlQ =3D 'SELECT updaterestrictions( %s, %s )' + params =3D k, v['restrictions'] + cursor.execute(sqlQ, params) + sqlQ =3D 'SELECT updatekeywords( %s, %s )' + params =3D k, v['keyword'] + cursor.execute(sqlQ, params) + sqlQ =3D 'SELECT updateiuse( %s, %s )' + params =3D k, v['iuse'] + cursor.execute(sqlQ, params) + self.conn.commit() + + def add_new_package_sql(self, packageDict): + #lets have a new cursor for each metod as per best practice + cursor =3D self.conn.cursor() + sqlQ=3D"SELECT insert_ebuild( %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, = %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, 'True')" + ebuild_id_list =3D [] + package_id_list =3D [] + for k, v in packageDict.iteritems(): + params =3D [v['categories'], v['package'], v['ebuild_version_tree'], = v['ebuild_version_revision'], v['ebuild_version_checksum_tree'], + v['ebuild_version_text'], v['ebuild_version_metadata_tree'][0], v['e= build_version_metadata_tree'][1], + v['ebuild_version_metadata_tree'][12], v['ebuild_version_metadata_tr= ee'][2], v['ebuild_version_metadata_tree'][3], + v['ebuild_version_metadata_tree'][5],v['ebuild_version_metadata_tree= '][6], v['ebuild_version_metadata_tree'][7], + v['ebuild_version_metadata_tree'][9], v['ebuild_version_metadata_tre= e'][11], + v['ebuild_version_metadata_tree'][13],v['ebuild_version_metadata_tre= e'][14], v['ebuild_version_metadata_tree'][15], + v['ebuild_version_metadata_tree'][16]] + cursor.execute(sqlQ, params) + mid =3D cursor.fetchone() + mid=3Dmid[0] + ebuild_id_list.append(mid[1]) + package_id_list.append(mid[0]) + self.conn.commit() + # add_new_metadata(metadataDict) + return ebuild_id_list, package_id_list + + def add_new_ebuild_sql(packageDict, new_ebuild_list): + #lets have a new cursor for each metod as per best practice + cursor =3D self.conn.cursor() + sqlQ=3D"SELECT insert_ebuild( %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, = %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, 'True')" + ebuild_id_list =3D [] + package_id_list =3D [] + for k, v in packageDict.iteritems(): + for x in new_ebuild_list: + if x =3D=3D v['ebuild_version_tree']: + params =3D [v['categories'], v['package'], v['ebuild_version_tree']= , v['ebuild_version_revision'], v['ebuild_version_checksum_tree'], + v['ebuild_version_text'], v['ebuild_version_metadata_tree'][0], v[= 'ebuild_version_metadata_tree'][1], + v['ebuild_version_metadata_tree'][12], v['ebuild_version_metadata_= tree'][2], v['ebuild_version_metadata_tree'][3], + v['ebuild_version_metadata_tree'][5],v['ebuild_version_metadata_tr= ee'][6], v['ebuild_version_metadata_tree'][7], + v['ebuild_version_metadata_tree'][9], v['ebuild_version_metadata_t= ree'][11], + v['ebuild_version_metadata_tree'][13],v['ebuild_version_metadata_t= ree'][14], v['ebuild_version_metadata_tree'][15], + v['ebuild_version_metadata_tree'][16]] + cursor.execute(sqlQ, params) + mid =3D cursor.fetchone() + mid=3Dmid[0] + ebuild_id_list.append(mid[1]) + package_id_list.append(mid[0]) + self.conn.commit() + # add_new_metadata(metadataDict) + return ebuild_id_list, package_id_list + + def update_active_ebuild(self, package_id, ebuild_version_tree): + cursor =3D self.conn.cursor() + sqlQ =3D"UPDATE ebuilds SET active =3D 'False', timestamp =3D now() WH= ERE package_id =3D %s AND ebuild_version =3D %s AND active =3D 'True'" + cursor.execute(sqlQ, (package_id, ebuild_version_tree)) + self.conn.commit() + + def get_cpv_from_ebuild_id(self, ebuild_id): + cursor =3D self.conn.cursor() + sqlQ =3D 'SELECT package_id FROM ebuild WHERE id =3D %s' + self.cursor.execute(sql, ebuild_id) + entries =3D self.cursor.fetchone() + return entries + + def get_cp_from_package_id(self, package_id): + cursor =3D self.conn.cursor() + sqlQ =3D "SELECT ARRAY_TO_STRING(ARRAY[category, package_name] , '/') = AS cp FROM packages WHERE package_id =3D %s" + cursor.execute(sqlQ, (package_id,)) + return cursor.fetchone() =20 - def add_new_package_buildqueue(self, ebuild_id, config_id, iuse_flags_= list, use_enable, message): - cursor =3D self.conn.cursor() - sqlQ=3D"SELECT insert_buildqueue( %s, %s, %s, %s, %s )" - if not iuse_flags_list: - iuse_flags_list=3DNone - use_enable=3DNone - params =3D ebuild_id, unicode(config_id), iuse_flags_list, use_enabl= e, message - cursor.execute(sqlQ, params) - self.conn.commit() - - def get_ebuild_checksum(self, package_id, ebuild_version_tree): - cursor =3D self.conn.cursor() - sqlQ =3D 'SELECT ebuild_checksum FROM ebuilds WHERE package_id =3D %= s AND ebuild_version =3D %s AND active =3D TRUE' - cursor.execute(sqlQ, (package_id, ebuild_version_tree)) - entries =3D cursor.fetchone() - if entries is None: - return None - return entries[0] - - def add_old_package(self, old_package_list): - cursor =3D self.conn.cursor() - mark_old_list =3D [] - sqlQ =3D "UPDATE ebuilds SET active =3D 'FALSE', timestamp =3D NOW()= WHERE package_id =3D %s AND active =3D 'TRUE' RETURNING package_id" - for old_package in old_package_list: - cursor.execute(sqlQ, (old_package[0],)) - entries =3D cursor.fetchone() - if entries is not None: - mark_old_list.append(entries[0]) - self.conn.commit() - return mark_old_list + def add_new_package_buildqueue(self, ebuild_id, config_id, iuse_flags_l= ist, use_enable, message): + cursor =3D self.conn.cursor() + sqlQ=3D"SELECT insert_buildqueue( %s, %s, %s, %s, %s )" + if not iuse_flags_list: + iuse_flags_list=3DNone + use_enable=3DNone + params =3D ebuild_id, unicode(config_id), iuse_flags_list, use_enable,= message + cursor.execute(sqlQ, params) + self.conn.commit() + + def get_ebuild_checksum(self, package_id, ebuild_version_tree): + cursor =3D self.conn.cursor() + sqlQ =3D 'SELECT ebuild_checksum FROM ebuilds WHERE package_id =3D %s = AND ebuild_version =3D %s AND active =3D TRUE' + cursor.execute(sqlQ, (package_id, ebuild_version_tree)) + entries =3D cursor.fetchone() + if entries is None: + return None + return entries[0] + + def add_old_package(self, old_package_list): + cursor =3D self.conn.cursor() + mark_old_list =3D [] + sqlQ =3D "UPDATE ebuilds SET active =3D 'FALSE', timestamp =3D NOW() W= HERE package_id =3D %s AND active =3D 'TRUE' RETURNING package_id" + for old_package in old_package_list: + cursor.execute(sqlQ, (old_package[0],)) + entries =3D cursor.fetchone() + if entries is not None: + mark_old_list.append(entries[0]) + self.conn.commit() + return mark_old_list =20 - def get_old_categories(self, categories_line): - cursor =3D self.conn.cursor() - sqlQ =3D "SELECT package_name FROM packages WHERE category =3D %s" - cursor.execute(sqlQ (categories_line)) - return cursor.fetchone() - - def del_old_categories(self, real_old_categoriess): - cursor =3D self.conn.cursor() - sqlQ =3D 'DELETE FROM categories categories_meta WHERE category =3D = %s' - cursor.execute(sqlQ (real_old_categories)) - self.conn.commit() - - def add_old_ebuild(self, package_id, old_ebuild_list): - cursor =3D self.conn.cursor() - sqlQ1 =3D "UPDATE ebuilds SET active =3D 'FALSE' WHERE package_id =3D= %s AND ebuild_version =3D %s" - sqlQ2 =3D "SELECT id FROM ebuilds WHERE package_id =3D %s AND ebuild= _version =3D %s AND active =3D 'TRUE'" - sqlQ3 =3D "SELECT queue_id FROM buildqueue WHERE ebuild_id =3D %s" - sqlQ4 =3D 'DELETE FROM ebuildqueuedwithuses buildqueue WHERE queue_i= d =3D %s' - for old_ebuild in old_ebuild_list: - cursor.execute(sqlQ2, (package_id, old_ebuild[0])) - ebuild_id_list =3D cursor.fetchall() - if ebuild_id_list is not None: - for ebuild_id in ebuild_id_list: - cursor.execute(sqlQ3, (ebuild_id)) - queue_id_list =3D cursor.fetchall() - if queue_id_list is not None: - for queue_id in queue_id_list: - cursor.execute(sqlQ4, (queue_id)) - cursor.execute(sqlQ1, (package_id, old_ebuild[0])) - self.conn.commit() - - def cp_all_old_db(self, old_package_id_list): - cursor =3D self.conn.cursor() - old_package_list =3D [] - for old_package in old_package_id_list: - sqlQ =3D "SELECT package_id FROM ebuilds WHERE package_id =3D %s A= ND active =3D 'FALSE' AND date_part('days', NOW() - timestamp) < 60" - cursor.execute(sqlQ, old_package) - entries =3D cursor.fetchone() - if entries is None: - old_package_list.append(old_package) - return old_package_list - def cp_all_db(self): - cursor =3D self.conn.cursor() - sqlQ =3D "SELECT package_id FROM packages" - cursor.execute(sqlQ) - return cursor.fetchall() - - def del_old_ebuild(self, ebuild_old_list_db): - cursor =3D self.conn.cursor() - sqlQ2 =3D 'SELECT build_id FROM buildlog WHERE ebuild_id =3D %s' - sqlQ3 =3D 'DELETE FROM qa_problems repoman_problems WHERE build_id = =3D %s' - sqlQ4 =3D 'DELETE FROM ebuildhaveskeywords ebuildhavesiuses WHERE eb= uild_id =3D %s' - sqlQ5 =3D 'DELETE FROM ebuildbuildwithuses WHERE build_id =3D %s' - sqlQ6 =3D 'DELETE FROM ebuildhavesrestrictions buildlog WHERE ebuild= _id =3D %s' - for del_ebuild_old in ebuild_old_list_db: - cursor.execute(sqlQ2, (del_ebuild_old[0],)) - build_id_list =3D cursor.fetchall() - for build_id in build_id_list: - cursor.execute(sqlQ3, (build_id,)) - cursor.execute(sqlQ5, (build_id,)) - cursor.execute(sqlQ4, (del_ebuild_old[0],)) - cursor.execute(sqlQ6, (del_ebuild_old[0],)) - self.conn.commit() - - def del_old_package(self, package_id_list): - cursor =3D self.conn.cursor() - sqlQ1 =3D 'SELECT id FROM ebuilds WHERE package_id =3D %s' - sqlQ2 =3D 'SELECT build_id FROM buildlog WHERE ebuild_id =3D %s' - sqlQ3 =3D 'DELETE FROM qa_problems, repoman_problems, ebuildbuildwit= huses WHERE build_id =3D %s' - sqlQ4 =3D 'DELETE FROM ebuildhaveskeywords, ebuildhavesiuses, ebuild= havesrestrictions, buildlog WHERE ebuild_id =3D %s' - sqlQ5 =3D 'DELETE FROM ebuilds, manifest, package_meta, packages WHE= RE package_id =3D %s' - for package_id in package_id_list: - cursor.execute(sqlQ1, package_id) - ebuild_id_list =3D cursor.fetchall() - for ebuild_id in ebuild_id_list: - cursor.execute(sqlQ2, ebuild_id) - build_id_list =3D cursor.fetchall() - for build_id in build_id_list: - cursor.execute(sqlQ3, build_id) - cursor.execute(sqlQ4, ebuild_id) - cursor.execute(sqlQ5, package_id) - self.conn.commit() - - def cp_list_db(self, package_id): - cursor =3D self.conn.cursor() - sqlQ =3D "SELECT ebuild_version FROM ebuilds WHERE active =3D 'TRUE'= AND package_id =3D %s" - cursor.execute(sqlQ, (package_id)) - return cursor.fetchall() - - def cp_list_old_db(self, package_id): - cursor =3D self.conn.cursor() - sqlQ =3D"SELECT id, ebuild_version FROM ebuilds WHERE active =3D 'FA= LSE' AND package_id =3D %s AND date_part('days', NOW() - timestamp) > 60" - cursor.execute(sqlQ, package_id) - return cursor.fetchall() - - def add_qa_repoman(self, ebuild_id_list, qa_error, packageDict, config= _id): - ebuild_i =3D 0 - cursor =3D self.conn.cursor() - for k, v in packageDict.iteritems(): - ebuild_id =3D ebuild_id_list[ebuild_i] - sqlQ =3D 'INSERT INTO buildlog (ebuild_id, config, error_summary, = timestamp ) VALUES ( %s, %s, %s, now() ) RETURNING build_id' - if v['ebuild_error'] !=3D [] or qa_error !=3D []: - if v['ebuild_error'] !=3D [] or qa_error =3D=3D []: - summary =3D "Repoman" - elif v['ebuild_error'] =3D=3D [] or qa_error !=3D []: - summary =3D "QA" - else: - summary =3D "QA:Repoman" - params =3D (ebuild_id, config_id, summary) - cursor.execute(sqlQ, params) - build_id =3D cursor.fetchone() - if v['ebuild_error'] !=3D []: - sqlQ =3D 'INSERT INTO repoman_problems (problem, build_id ) VALUES ( = %s, %s )' - for x in v['ebuild_error']: - params =3D (x, build_id) - cursor.execute(sqlQ, params) - if qa_error !=3D []: - sqlQ =3D 'INSERT INTO qa_problems (problem, build_id ) VALUES ( %s, %= s )' - for x in qa_error: - params =3D (x, build_id) - cursor.execute(sqlQ, params) - ebuild_i =3D ebuild_i +1 - self.conn.commit() - - def get_arch_db(self): - cursor =3D self.conn.cursor() - sqlQ =3D 'SELECT keyword FROM keywords WHERE keyword =3D %s' - cursor.execute(sqlQ, ('ppc',)) - return cursor.fetchone() + def get_old_categories(self, categories_line): + cursor =3D self.conn.cursor() + sqlQ =3D "SELECT package_name FROM packages WHERE category =3D %s" + cursor.execute(sqlQ (categories_line)) + return cursor.fetchone() + + def del_old_categories(self, real_old_categoriess): + cursor =3D self.conn.cursor() + sqlQ1 =3D 'DELETE FROM categories_meta WHERE category =3D %s' + sqlQ2 =3D 'DELETE FROM categories categories_meta WHERE category =3D %= s' + cursor.execute(sqlQ1 (real_old_categories)) + cursor.execute(sqlQ2 (real_old_categories)) + self.conn.commit() + + def add_old_ebuild(self, package_id, old_ebuild_list): + cursor =3D self.conn.cursor() + sqlQ1 =3D "UPDATE ebuilds SET active =3D 'FALSE' WHERE package_id =3D = %s AND ebuild_version =3D %s" + sqlQ2 =3D "SELECT id FROM ebuilds WHERE package_id =3D %s AND ebuild_v= ersion =3D %s AND active =3D 'TRUE'" + sqlQ3 =3D "SELECT queue_id FROM buildqueue WHERE ebuild_id =3D %s" + sqlQ4 =3D 'DELETE FROM ebuildqueuedwithuses WHERE queue_id =3D %s' + sqlQ5 =3D 'DELETE FROM buildqueue WHERE queue_id =3D %s' + for old_ebuild in old_ebuild_list: + cursor.execute(sqlQ2, (package_id, old_ebuild[0])) + ebuild_id_list =3D cursor.fetchall() + if ebuild_id_list is not None: + for ebuild_id in ebuild_id_list: + cursor.execute(sqlQ3, (ebuild_id)) + queue_id_list =3D cursor.fetchall() + if queue_id_list is not None: + for queue_id in queue_id_list: + cursor.execute(sqlQ4, (queue_id)) + cursor.execute(sqlQ5, (queue_id)) + cursor.execute(sqlQ1, (package_id, old_ebuild[0])) + self.conn.commit() + + def cp_all_old_db(self, old_package_id_list): + cursor =3D self.conn.cursor() + old_package_list =3D [] + for old_package in old_package_id_list: + sqlQ =3D "SELECT package_id FROM ebuilds WHERE package_id =3D %s AND = active =3D 'FALSE' AND date_part('days', NOW() - timestamp) < 60" + cursor.execute(sqlQ, old_package) + entries =3D cursor.fetchone() + if entries is None: + old_package_list.append(old_package) + return old_package_list + + def cp_all_db(self): + cursor =3D self.conn.cursor() + sqlQ =3D "SELECT package_id FROM packages" + cursor.execute(sqlQ) + return cursor.fetchall() + + def del_old_ebuild(self, ebuild_old_list_db): + cursor =3D self.conn.cursor() + sqlQ1 =3D 'SELECT build_id FROM buildlog WHERE ebuild_id =3D %s' + sqlQ2 =3D 'DELETE FROM qa_problems WHERE build_id =3D %s' + sqlQ3 =3D 'DELETE FROM repoman_problems WHERE build_id =3D %s' + sqlQ4 =3D 'DELETE FROM ebuildbuildwithuses WHERE build_id =3D %s' + sqlQ5 =3D 'DELETE FROM ebuildhaveskeywords WHERE ebuild_id =3D %s' + sqlQ6 =3D 'DELETE FROM ebuildhavesiuses WHERE ebuild_id =3D %s' + sqlQ7 =3D 'DELETE FROM ebuildhavesrestrictions WHERE ebuild_id =3D %s' + sqlQ8 =3D 'DELETE FROM buildlog WHERE ebuild_id =3D %s' + sqlQ9 =3D 'SELECT queue_id FROM buildqueue WHERE ebuild_id =3D %s' + sqlQ10 =3D 'DELETE FROM ebuildqueuedwithuses WHERE queue_id =3D %s' + sqlQ11 =3D 'DELETE FROM buildqueue WHERE ebuild_id =3D %s' + sqlQ12 =3D 'DELETE FROM ebuilds WHERE id =3D %s' + for ebuild_id in ebuild_old_list_db: + cursor.execute(sqlQ1, (ebuild_id[0],)) + build_id_list =3D cursor.fetchall() + for build_id in build_id_list: + cursor.execute(sqlQ2, (build_id,)) + cursor.execute(sqlQ3, (build_id,)) + cursor.execute(sqlQ4, (build_id,)) + cursor.execute(sqlQ9, (ebuild_id[0],)) + queue_id_list =3D cursor.fetchall() + for queue_id in queue_id_list: + cursor.execute(sqlQ10, (queue_id,)) + cursor.execute(sqlQ5, (ebuild_id[0],)) + cursor.execute(sqlQ6, (ebuild_id[0],)) + cursor.execute(sqlQ7, (ebuild_id[0],)) + cursor.execute(sqlQ8, (ebuild_id[0],)) + cursor.execute(sqlQ11, (ebuild_id[0],)) + cursor.execute(sqlQ12, (ebuild_id[0],)) + self.conn.commit() + + def del_old_package(self, package_id_list): + cursor =3D self.conn.cursor() + sqlQ1 =3D 'SELECT id FROM ebuilds WHERE package_id =3D %s' + sqlQ2 =3D 'DELETE FROM ebuilds WHERE package_id =3D %s' + sqlQ3 =3D 'DELETE FROM manifest WHERE package_id =3D %s' + sqlQ4 =3D 'DELETE FROM packages_meta WHERE package_id =3D %s' + sqlQ5 =3D 'DELETE FROM packages WHERE package_id =3D %s' + for package_id in package_id_list: + cursor.execute(sqlQ1, package_id) + ebuild_id_list =3D cursor.fetchall() + self.del_old_ebuild(ebuild_id_list) + cursor.execute(sqlQ2, (package_id,)) + cursor.execute(sqlQ3, (package_id,)) + cursor.execute(sqlQ4, (package_id,)) + cursor.execute(sqlQ5, (package_id,)) + self.conn.commit() + + def cp_list_db(self, package_id): + cursor =3D self.conn.cursor() + sqlQ =3D "SELECT ebuild_version FROM ebuilds WHERE active =3D 'TRUE' A= ND package_id =3D %s" + cursor.execute(sqlQ, (package_id)) + return cursor.fetchall() + + def cp_list_old_db(self, package_id): + cursor =3D self.conn.cursor() + sqlQ =3D"SELECT id, ebuild_version FROM ebuilds WHERE active =3D 'FALS= E' AND package_id =3D %s AND date_part('days', NOW() - timestamp) > 60" + cursor.execute(sqlQ, package_id) + return cursor.fetchall() + + def add_qa_repoman(self, ebuild_id_list, qa_error, packageDict, config_= id): + ebuild_i =3D 0 + cursor =3D self.conn.cursor() + for k, v in packageDict.iteritems(): + ebuild_id =3D ebuild_id_list[ebuild_i] + sqlQ =3D "INSERT INTO buildlog (ebuild_id, config, error_summary, tim= estamp, hash ) VALUES ( %s, %s, %s, now(), '0' ) RETURNING build_id" + if v['ebuild_error'] !=3D [] or qa_error !=3D []: + if v['ebuild_error'] !=3D [] or qa_error =3D=3D []: + summary =3D "Repoman" + elif v['ebuild_error'] =3D=3D [] or qa_error !=3D []: + summary =3D "QA" + else: + summary =3D "QA:Repoman" + params =3D (ebuild_id, config_id, summary) + cursor.execute(sqlQ, params) + build_id =3D cursor.fetchone() + if v['ebuild_error'] !=3D []: + sqlQ =3D 'INSERT INTO repoman_problems (problem, build_id ) VALUES = ( %s, %s )' + for x in v['ebuild_error']: + params =3D (x, build_id) + cursor.execute(sqlQ, params) + if qa_error !=3D []: + sqlQ =3D 'INSERT INTO qa_problems (problem, build_id ) VALUES ( %s= , %s )' + for x in qa_error: + params =3D (x, build_id) + cursor.execute(sqlQ, params) + ebuild_i =3D ebuild_i +1 + self.conn.commit() + + def get_arch_db(self): + cursor =3D self.conn.cursor() + sqlQ =3D 'SELECT keyword FROM keywords WHERE keyword =3D %s' + cursor.execute(sqlQ, ('ppc',)) + return cursor.fetchone() =20 - def add_new_arch_db(self, arch_list): - cursor =3D self.conn.cursor() - sqlQ =3D 'INSERT INTO keywords (keyword) VALUES ( %s )' - for arch in arch_list: - cursor.execute(sqlQ, (arch,)) - self.conn.commit() - - def closeconnection(self): - self.conn.close() + def add_new_arch_db(self, arch_list): + cursor =3D self.conn.cursor() + sqlQ =3D 'INSERT INTO keywords (keyword) VALUES ( %s )' + for arch in arch_list: + cursor.execute(sqlQ, (arch,)) + self.conn.commit() + + def closeconnection(self): + self.conn.close() =20 class PgSQLPackageDB(SQLPackageDatabase): """override for MySQL backend"""