Gentoo Archives: gentoo-commits

From: Magnus Granberg <zorry@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] dev/zorry:master commit in: /, gobs/pym/
Date: Sat, 30 Jul 2011 02:02:33
Message-Id: 4931ada1a32903da715ec8809dbc6aa792521739.zorry@gentoo
1 commit: 4931ada1a32903da715ec8809dbc6aa792521739
2 Author: Magnus Granberg <zorry <AT> gentoo <DOT> org>
3 AuthorDate: Sat Jul 30 00:58:44 2011 +0000
4 Commit: Magnus Granberg <zorry <AT> gentoo <DOT> org>
5 CommitDate: Sat Jul 30 00:58:44 2011 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=dev/zorry.git;a=commit;h=4931ada1
7
8 Move pgsql.py
9
10 ---
11 gobs/pym/arch.py | 9 +-
12 gobs/pym/build_log.py | 4 +-
13 gobs/pym/build_queru.py | 4 +-
14 gobs/pym/categories.py | 11 +-
15 gobs/pym/check_setup.py | 4 +-
16 gobs/pym/old_cpv.py | 29 +--
17 gobs/pym/package.py | 74 +++---
18 gobs/pym/pgsql.py | 596 +++++++++++++++++++++++++++++++++++++++++++++++
19 setup.py | 2 +-
20 9 files changed, 659 insertions(+), 74 deletions(-)
21
22 diff --git a/gobs/pym/arch.py b/gobs/pym/arch.py
23 index 160de7c..7e11041 100644
24 --- a/gobs/pym/arch.py
25 +++ b/gobs/pym/arch.py
26 @@ -5,10 +5,7 @@ class gobs_arch(object):
27 def __init__(self, CM):
28 #selective import the pgsql/mysql queries
29 if CM.getName() is 'pgsql':
30 - from gobs.querys import pgsql
31 - self._dbquerys = pgsql
32 - #elif CM.getName() == 'mysql':
33 - # import querys.mysql
34 + from gobs.pgsql import *
35 self._CM = CM
36 self._conn = CM.getConnection()
37
38 @@ -18,10 +15,10 @@ class gobs_arch(object):
39 def update_arch_db(self):
40 # FIXME: check for new keyword
41 # Add arch db (keywords)
42 - if self._dbquerys.get_arch_db(self._conn) is None:
43 + if get_arch_db(self._conn) is None:
44 arch_list = portage.archlist
45 for arch in arch_list:
46 if arch[0] not in ["~","-"]:
47 arch_list.append("-" + arch)
48 arch_list.append("-*")
49 - self._dbquerys.add_new_arch_db(self._conn,arch_list)
50 \ No newline at end of file
51 + add_new_arch_db(self._conn,arch_list)
52 \ No newline at end of file
53
54 diff --git a/gobs/pym/build_log.py b/gobs/pym/build_log.py
55 index eb5fcea..ccd8225 100644
56 --- a/gobs/pym/build_log.py
57 +++ b/gobs/pym/build_log.py
58 @@ -12,9 +12,7 @@ from gobs.ConnectionManager import connectionManager
59 CM=connectionManager(gobs_settings_dict)
60 #selectively import the pgsql/mysql querys
61 if CM.getName()=='pgsql':
62 - from gobs.querys.pgsql import *
63 -elif CM.getName()=='mysql':
64 - from gobs.querys.mysql import *
65 + from gobs.pgsql import *
66
67 class gobs_buildlog(object):
68
69
70 diff --git a/gobs/pym/build_queru.py b/gobs/pym/build_queru.py
71 index 3d53a05..f97884d 100644
72 --- a/gobs/pym/build_queru.py
73 +++ b/gobs/pym/build_queru.py
74 @@ -7,9 +7,7 @@ from gobs.ConnectionManager import connectionManager
75 CM=connectionManager(gobs_settings_dict)
76 #selectively import the pgsql/mysql querys
77 if CM.getName()=='pgsql':
78 - from gobs.querys.pgsql import *
79 -elif CM.getName()=='mysql':
80 - from gobs.querys.mysql import *
81 + from gobs.pgsql import *
82
83 import portage
84 import os
85
86 diff --git a/gobs/pym/categories.py b/gobs/pym/categories.py
87 index 636f114..f9f4367 100644
88 --- a/gobs/pym/categories.py
89 +++ b/gobs/pym/categories.py
90 @@ -9,10 +9,7 @@ class gobs_categories(object):
91 self._conn=CM.getConnection()
92 self._mysettings = mysettings
93 if CM.getName() is 'pgsql':
94 - from gobs.querys import pgsql
95 - self.dbquerys = pgsql
96 - elif CM.getName() is 'mysql':
97 - import querys.mysql
98 + from gobs.pgsql import *
99
100 def __del__(self):
101 self._CM.putConnection(self._conn)
102 @@ -22,8 +19,8 @@ class gobs_categories(object):
103 categories_dir = self._mysettings['PORTDIR'] + "/" + categories + "/"
104 categories_metadata_xml_checksum_tree = portage.checksum.sha256hash(categories_dir + "metadata.xml")[0]
105 categories_metadata_xml_text_tree = get_file_text(categories_dir + "metadata.xml")
106 - categories_metadata_xml_checksum_db = self.dbquerys.get_categories_checksum_db(self._conn, categories)
107 + categories_metadata_xml_checksum_db = get_categories_checksum_db(self._conn, categories)
108 if categories_metadata_xml_checksum_db is None:
109 - self.dbquerys.add_new_categories_meta_sql(self._conn,categories, categories_metadata_xml_checksum_tree, categories_metadata_xml_text_tree)
110 + add_new_categories_meta_sql(self._conn,categories, categories_metadata_xml_checksum_tree, categories_metadata_xml_text_tree)
111 elif categories_metadata_xml_checksum_db != categories_metadata_xml_checksum_tree:
112 - self.dbquerys.update_categories_meta_sql(self._conn,categories, categories_metadata_xml_checksum_tree, categories_metadata_xml_text_tree)
113 + update_categories_meta_sql(self._conn,categories, categories_metadata_xml_checksum_tree, categories_metadata_xml_text_tree)
114
115 diff --git a/gobs/pym/check_setup.py b/gobs/pym/check_setup.py
116 index 47d1a08..b4d08e9 100644
117 --- a/gobs/pym/check_setup.py
118 +++ b/gobs/pym/check_setup.py
119 @@ -11,9 +11,7 @@ from gobs.ConnectionManager import connectionManager
120 CM=connectionManager(gobs_settings_dict)
121 #selectively import the pgsql/mysql querys
122 if CM.getName()=='pgsql':
123 - from gobs.querys.pgsql import *
124 -elif CM.getName()=='mysql':
125 - from gobs.querys.mysql import *
126 + from gobs.pgsql import *
127
128 def check_make_conf(conn, gobs_settings_dict):
129 # FIXME: mark any config updating true in the db when updating the configs
130
131 diff --git a/gobs/pym/old_cpv.py b/gobs/pym/old_cpv.py
132 index 8a1a9c5..c577033 100644
133 --- a/gobs/pym/old_cpv.py
134 +++ b/gobs/pym/old_cpv.py
135 @@ -6,16 +6,13 @@ class gobs_old_cpv(object):
136 self._mysettings = mysettings
137 self._myportdb = myportdb
138 if CM.getName() is 'pgsql':
139 - from gobs.querys import pgsql
140 - self.dbquerys = pgsql
141 - elif CM.getName() is 'mysql':
142 - import querys.mysql
143 + from gobs.pgsql import *
144
145 def mark_old_ebuild_db(self, categories, package, package_id):
146 conn=self._CM.getConnection()
147 ebuild_list_tree = sorted(self._myportdb.cp_list((categories + "/" + package), use_cache=1, mytree=None))
148 # Get ebuild list on categories, package in the db
149 - ebuild_list_db = self.dbquerys.cp_list_db(conn,package_id)
150 + ebuild_list_db = cp_list_db(conn,package_id)
151 # Check if don't have the ebuild in the tree
152 # Add it to the no active list
153 old_ebuild_list = []
154 @@ -29,18 +26,18 @@ class gobs_old_cpv(object):
155 print("O", categories + "/" + package + "-" + old_ebuild[0])
156 self.dbquerys.add_old_ebuild(conn,package_id, old_ebuild_list)
157 # Check if we have older no activ ebuilds then 60 days
158 - ebuild_old_list_db = self.dbquerys.cp_list_old_db(conn,package_id)
159 + ebuild_old_list_db = cp_list_old_db(conn,package_id)
160 # Delete older ebuilds in the db
161 if ebuild_old_list_db != []:
162 for del_ebuild_old in ebuild_old_list_db:
163 print("D", categories + "/" + package + "-" + del_ebuild_old[1])
164 - self.dbquerys.del_old_ebuild(conn,ebuild_old_list_db)
165 + del_old_ebuild(conn,ebuild_old_list_db)
166 self._CM.putConnection(conn)
167
168 def mark_old_package_db(self, package_id_list_tree):
169 conn=self._CM.getConnection()
170 # Get categories/package list from db
171 - package_list_db = self.dbquerys.cp_all_db(conn)
172 + package_list_db = cp_all_db(conn)
173 old_package_id_list = []
174 # Check if don't have the categories/package in the tree
175 # Add it to the no active list
176 @@ -49,37 +46,37 @@ class gobs_old_cpv(object):
177 old_package_id_list.append(package_line)
178 # Set no active on categories/package and ebuilds in the db that no longer in tree
179 if old_package_id_list != []:
180 - mark_old_list = self.dbquerys.add_old_package(conn,old_package_id_list)
181 + mark_old_list = add_old_package(conn,old_package_id_list)
182 if mark_old_list != []:
183 for x in mark_old_list:
184 - element = self.dbquerys.get_cp_from_package_id(conn,x)
185 + element = get_cp_from_package_id(conn,x)
186 print("O", element[0])
187 # Check if we have older no activ categories/package then 60 days
188 - del_package_id_old_list = self.dbquerys.cp_all_old_db(conn,old_package_id_list)
189 + del_package_id_old_list = cp_all_old_db(conn,old_package_id_list)
190 # Delete older categories/package and ebuilds in the db
191 if del_package_id_old_list != []:
192 for i in del_package_id_old_list:
193 - element = self.dbquerys.get_cp_from_package_id(conn,i)
194 + element = get_cp_from_package_id(conn,i)
195 print("D", element)
196 - self.dbquerys.del_old_package(conn,del_package_id_old_list)
197 + del_old_package(conn,del_package_id_old_list)
198 self._CM.putConnection(conn)
199
200 def mark_old_categories_db(self):
201 conn=self._CM.getConnection()
202 # Get categories list from the tree and db
203 categories_list_tree = self._mysettings.categories
204 - categories_list_db =self.dbquerys.get_categories_db(conn)
205 + categories_list_db =get_categories_db(conn)
206 categories_old_list = []
207 # Check if don't have the categories in the tree
208 # Add it to the no active list
209 for categories_line in categories_list_db:
210 if not categories_line[0] in categories_list_tree:
211 - old_c = self.dbquerys.get_old_categories(conn,categories_line[0])
212 + old_c = get_old_categories(conn,categories_line[0])
213 if old_c is not None:
214 categories_old_list.append(categories_line)
215 # Delete older categories in the db
216 if categories_old_list != []:
217 for real_old_categories in categories_old_list:
218 - self.dbquerys.del_old_categories(conn,real_old_categoriess)
219 + del_old_categories(conn,real_old_categoriess)
220 print("D", real_old_categories)
221 self._CM.putConnection(conn)
222 \ No newline at end of file
223
224 diff --git a/gobs/pym/package.py b/gobs/pym/package.py
225 index 4f0864d..f240e4e 100644
226 --- a/gobs/pym/package.py
227 +++ b/gobs/pym/package.py
228 @@ -5,19 +5,23 @@ from gobs.repoman_gobs import gobs_repoman
229 from gobs.manifest import gobs_manifest
230 from gobs.text import get_file_text, get_ebuild_text
231 from gobs.old_cpv import gobs_old_cpv
232 +from gobs.readconf import get_conf_settings
233 +from gobs.flags import gobs_use_flags
234 +reader=get_conf_settings()
235 +gobs_settings_dict=reader.read_gobs_settings_all()
236 +# make a CM
237 +from gobs.ConnectionManager import connectionManager
238 +CM=connectionManager(gobs_settings_dict)
239 +#selectively import the pgsql/mysql querys
240 +if CM.getName()=='pgsql':
241 + from gobs.pgsql import *
242
243 class gobs_package(object):
244
245 def __init__(self, mysettings, CM, myportdb, gobs_settings_dict):
246 self._mysettings = mysettings
247 - self._CM = CM
248 self._gobs_settings_dict = gobs_settings_dict
249 self._myportdb = myportdb
250 - if CM.getName() is 'pgsql':
251 - from gobs.querys import pgsql
252 - self._dbquerys = pgsql
253 - elif CM.getName() is 'mysql':
254 - from gobs.querys import mysql
255
256 def change_config(self, config_id):
257 # Change config_root config_id = table configs.id
258 @@ -26,10 +30,10 @@ class gobs_package(object):
259 return mysettings_setup
260
261 def config_match_ebuild(self, categories, package):
262 - conn=self._CM.getConnection()
263 + conn=CM.getConnection()
264 config_cpv_listDict ={}
265 # Get a list from table configs/setups with default_config=Fales and active = True
266 - config_list_all = self._dbquerys.get_config_list(conn)
267 + config_list_all = get_config_list(conn)
268 if config_list_all is ():
269 return config_cpv_listDict
270 for i in config_list_all:
271 @@ -65,7 +69,7 @@ class gobs_package(object):
272 # Clean some cache
273 myportdb_setup.close_caches()
274 portage.portdbapi.portdbapi_instances.remove(myportdb_setup)
275 - self._CM.putConnection(conn)
276 + CM.putConnection(conn)
277 return config_cpv_listDict
278
279 def get_ebuild_metadata(self, ebuild_line):
280 @@ -128,7 +132,7 @@ class gobs_package(object):
281 return metadataDict
282
283 def add_new_ebuild_buildquery_db(self, ebuild_id_list, packageDict, config_cpv_listDict):
284 - conn=self._CM.getConnection()
285 + conn=CM.getConnection()
286 # Get the needed info from packageDict and config_cpv_listDict and put that in buildqueue
287 # Only add it if ebuild_version in packageDict and config_cpv_listDict match
288 if config_cpv_listDict != {}:
289 @@ -157,10 +161,10 @@ class gobs_package(object):
290 use_enable_list.append(s)
291 # Comper ebuild_version and add the ebuild_version to buildqueue
292 if portage.vercmp(v['ebuild_version_tree'], latest_ebuild_version) == 0:
293 - self._dbquerys.add_new_package_buildqueue(conn,ebuild_id, config_id, use_flags_list, use_enable_list, message)
294 + add_new_package_buildqueue(conn,ebuild_id, config_id, use_flags_list, use_enable_list, message)
295 print("B", config_id, v['categories'] + "/" + v['package'] + "-" + latest_ebuild_version, "USE:", use_enable) # B = Build config cpv use-flags
296 i = i +1
297 - self._CM.putConnection(conn)
298 + CM.putConnection(conn)
299
300 def get_package_metadataDict(self, pkgdir, package):
301 # Make package_metadataDict
302 @@ -178,7 +182,7 @@ class gobs_package(object):
303 return package_metadataDict
304
305 def add_new_package_db(self, categories, package):
306 - conn=self._CM.getConnection()
307 + conn=CM.getConnection()
308 # add new categories package ebuild to tables package and ebuilds
309 print("N", categories + "/" + package) # N = New Package
310 pkgdir = self._mysettings['PORTDIR'] + "/" + categories + "/" + package # Get PORTDIR + cp
311 @@ -186,19 +190,19 @@ class gobs_package(object):
312 # Get the ebuild list for cp
313 ebuild_list_tree = self._myportdb.cp_list((categories + "/" + package), use_cache=1, mytree=None)
314 config_cpv_listDict = self.config_match_ebuild(categories, package)
315 - config_id = self._dbquerys.get_default_config(conn)
316 + config_id = get_default_config(conn)
317 packageDict ={}
318 for ebuild_line in sorted(ebuild_list_tree):
319 # Make the needed packageDict
320 packageDict[ebuild_line] = self.get_packageDict(pkgdir, ebuild_line, categories, package, config_id)
321 # Add the ebuild to db
322 - return_id = self._dbquerys.add_new_package_sql(conn,packageDict)
323 + return_id = add_new_package_sql(conn,packageDict)
324 ebuild_id_list = return_id[0]
325 package_id_list = return_id[1]
326 package_id = package_id_list[0]
327 # Add metadataDict to db
328 metadataDict = self.get_metadataDict(packageDict, ebuild_id_list)
329 - self._dbquerys.add_new_metadata(conn,metadataDict)
330 + add_new_metadata(conn,metadataDict)
331 # Add any qa and repoman erro for the ebuild to buildlog
332 qa_error = []
333 init_manifest = gobs_manifest(self._mysettings, pkgdir)
334 @@ -206,37 +210,37 @@ class gobs_package(object):
335 if manifest_error is not None:
336 qa_error.append(manifest_error)
337 print("QA:", categories + "/" + package, qa_error)
338 - self._dbquerys.add_qa_repoman(conn,ebuild_id_list, qa_error, packageDict, config_id)
339 + add_qa_repoman(conn,ebuild_id_list, qa_error, packageDict, config_id)
340 # Add the ebuild to the buildqueru table if needed
341 self.add_new_ebuild_buildquery_db(ebuild_id_list, packageDict, config_cpv_listDict)
342 # Add some checksum on some files
343 package_metadataDict = self.get_package_metadataDict(pkgdir, package)
344 - self._dbquerys.add_new_package_metadata(conn,package_id, package_metadataDict)
345 + add_new_package_metadata(conn,package_id, package_metadataDict)
346 # Add the manifest file to db
347 manifest_checksum_tree = portage.checksum.sha256hash(pkgdir + "/Manifest")[0]
348 get_manifest_text = get_file_text(pkgdir + "/Manifest")
349 - self._dbquerys.add_new_manifest_sql(conn,package_id, get_manifest_text, manifest_checksum_tree)
350 - self._CM.putConnection(conn)
351 + add_new_manifest_sql(conn,package_id, get_manifest_text, manifest_checksum_tree)
352 + CM.putConnection(conn)
353 return package_id
354
355 def update_package_db(self, categories, package, package_id):
356 - conn=self._CM.getConnection()
357 + conn=CM.getConnection()
358 # Update the categories and package with new info
359 pkgdir = self._mysettings['PORTDIR'] + "/" + categories + "/" + package # Get PORTDIR with cp
360 # Get the checksum from the file in portage tree
361 manifest_checksum_tree = portage.checksum.sha256hash(pkgdir + "/Manifest")[0]
362 # Get the checksum from the db in package table
363 - manifest_checksum_db = self._dbquerys.get_manifest_db(conn,package_id)
364 + manifest_checksum_db = get_manifest_db(conn,package_id)
365 # if we have the same checksum return else update the package
366 ebuild_list_tree = self._myportdb.cp_list((categories + "/" + package), use_cache=1, mytree=None)
367 if manifest_checksum_tree != manifest_checksum_db:
368 print("U", categories + "/" + package) # U = Update
369 # Get package_metadataDict and update the db with it
370 package_metadataDict = self.get_package_metadataDict(pkgdir, package)
371 - self._dbquerys.update_new_package_metadata(conn,package_id, package_metadataDict)
372 + update_new_package_metadata(conn,package_id, package_metadataDict)
373 # Get config_cpv_listDict
374 config_cpv_listDict = self.config_match_ebuild(categories, package)
375 - config_id = self._dbquerys.get_default_config(conn)
376 + config_id = get_default_config(conn)
377 packageDict ={}
378 for ebuild_line in sorted(ebuild_list_tree):
379 old_ebuild_list = []
380 @@ -244,7 +248,7 @@ class gobs_package(object):
381 ebuild_version_tree = portage.versions.cpv_getversion(ebuild_line)
382 # Get the checksum of the ebuild in tree and db
383 ebuild_version_checksum_tree = portage.checksum.sha256hash(pkgdir + "/" + package + "-" + ebuild_version_tree + ".ebuild")[0]
384 - ebuild_version_manifest_checksum_db = self._dbquerys.get_ebuild_checksum(conn,package_id, ebuild_version_tree)
385 + ebuild_version_manifest_checksum_db = get_ebuild_checksum(conn,package_id, ebuild_version_tree)
386 # Check if the checksum have change
387 if ebuild_version_manifest_checksum_db is None or ebuild_version_checksum_tree != ebuild_version_manifest_checksum_db:
388 # Get packageDict for ebuild
389 @@ -255,13 +259,13 @@ class gobs_package(object):
390 print("U", categories + "/" + package + "-" + ebuild_version_tree) # U = Updated ebuild
391 # Fix so we can use add_new_package_sql(packageDict) to update the ebuilds
392 old_ebuild_list.append(ebuild_version_tree)
393 - self._dbquerys.add_old_ebuild(conn,package_id, old_ebuild_list)
394 - self._dbquerys.update_active_ebuild(conn,package_id, ebuild_version_tree)
395 + add_old_ebuild(conn,package_id, old_ebuild_list)
396 + update_active_ebuild(conn,package_id, ebuild_version_tree)
397 # Use packageDictand and metadataDict to update the db
398 - return_id = self._dbquerys.add_new_package_sql(conn,packageDict)
399 + return_id = add_new_package_sql(conn,packageDict)
400 ebuild_id_list = return_id[0]
401 metadataDict = self.get_metadataDict(packageDict, ebuild_id_list)
402 - self._dbquerys.add_new_metadata(conn,metadataDict)
403 + add_new_metadata(conn,metadataDict)
404 # Get the text in Manifest and update it
405 get_manifest_text = get_file_text(pkgdir + "/Manifest")
406 self._dbquerys.update_manifest_sql(conn,package_id, get_manifest_text, manifest_checksum_tree)
407 @@ -272,16 +276,16 @@ class gobs_package(object):
408 if manifest_error is not None:
409 qa_error.append(manifest_error)
410 print("QA:", categories + "/" + package, qa_error)
411 - self._dbquerys.add_qa_repoman(conn,ebuild_id_list, qa_error, packageDict, config_id)
412 + add_qa_repoman(conn,ebuild_id_list, qa_error, packageDict, config_id)
413 # Add the ebuild to the buildqueru table if needed
414 self.add_new_ebuild_buildquery_db(ebuild_id_list, packageDict, config_cpv_listDict)
415 # Mark or remove any old ebuilds
416 init_old_cpv = gobs_old_cpv(self._CM, self._myportdb, self._mysettings)
417 init_old_cpv.mark_old_ebuild_db(categories, package, package_id)
418 - self._CM.putConnection(conn)
419 + CM.putConnection(conn)
420
421 def update_ebuild_db(self, build_dict):
422 - conn=self._CM.getConnection()
423 + conn=CM.getConnection()
424 config_id = build_dict['config_profile']
425 categories = build_dict['categories']
426 package = build_dict['package']
427 @@ -295,7 +299,7 @@ class gobs_package(object):
428 old_ebuild_list = []
429 if ebuild_version_manifest_checksum_db is not None:
430 old_ebuild_list.append(ebuild_version_tree)
431 - self._dbquerys.add_old_ebuild(conn,package_id, old_ebuild_list)
432 - self._dbquerys.update_active_ebuild(conn,package_id, ebuild_version_tree)
433 - return_id = self._dbquerys.add_new_package_sql(conn,packageDict)
434 + add_old_ebuild(conn,package_id, old_ebuild_list)
435 + update_active_ebuild(conn,package_id, ebuild_version_tree)
436 + return_id = add_new_package_sql(conn,packageDict)
437 print('return_id', return_id)
438 \ No newline at end of file
439
440 diff --git a/gobs/pym/pgsql.py b/gobs/pym/pgsql.py
441 new file mode 100644
442 index 0000000..021c37f
443 --- /dev/null
444 +++ b/gobs/pym/pgsql.py
445 @@ -0,0 +1,596 @@
446 +#every function takes a connection as a parameter that is provided by the CM
447 +from __future__ import print_function
448 +
449 +def get_default_config(connection):
450 + cursor = connection.cursor()
451 + sqlQ = 'SELECT id FROM configs WHERE default_config = True'
452 + cursor.execute(sqlQ)
453 + return cursor.fetchone()
454 +
455 +def get_profile_checksum(connection, config_profile):
456 + cursor = connection.cursor()
457 + sqlQ = "SELECT make_conf_checksum FROM configs WHERE active = 'True' AND id = %s AND updateing = 'False'"
458 + cursor.execute(sqlQ, (config_profile,))
459 + return cursor.fetchone()
460 +
461 +def get_packages_to_build(connection, config_profile):
462 + cursor =connection.cursor()
463 + # no point in returning dead ebuilds, to just chuck em out later
464 + sqlQ1 = '''SELECT post_message, queue_id, ebuild_id FROM buildqueue WHERE config = %s AND extract(epoch from (NOW()) - timestamp) > 7200 ORDER BY queue_id LIMIT 1'''
465 +
466 + sqlQ2 ='''SELECT ebuild_id,category,package_name,ebuild_version,ebuild_checksum FROM ebuilds,buildqueue,packages
467 + WHERE buildqueue.ebuild_id=ebuilds.id AND ebuilds.package_id=packages.package_id AND queue_id = %s AND ebuilds.active = TRUE'''
468 +
469 + # get use flags to use
470 + sqlQ3 = "SELECT useflag, enabled FROM ebuildqueuedwithuses WHERE queue_id = %s"
471 + cursor.execute(sqlQ1, (config_profile,))
472 + build_dict={}
473 + entries = cursor.fetchone()
474 + if entries is None:
475 + return None
476 + if entries[2] is None:
477 + build_dict['ebuild_id'] = None
478 + build_dict['queue_id'] = entries[1]
479 + return build_dict
480 + msg_list = []
481 + if not entries[0] is None:
482 + for msg in entries[0].split(" "):
483 + msg_list.append(msg)
484 + build_dict['post_message'] = msg_list
485 + build_dict['queue_id'] = entries[1]
486 + build_dict['ebuild_id']=entries[2]
487 + cursor.execute(sqlQ2, (build_dict['queue_id'],))
488 + #make a list that contains objects that haves ebuild_id and post_message +the lot as attributes
489 + entries = cursor.fetchone()
490 + if entries is None:
491 + build_dict['checksum']= None
492 + return build_dict
493 + build_dict['ebuild_id']=entries[0]
494 + build_dict['category']=entries[1]
495 + build_dict['package']=entries[2]
496 + build_dict['ebuild_version']=entries[3]
497 + build_dict['checksum']=entries[4]
498 +
499 + #add a enabled and disabled list to the objects in the item list
500 + cursor.execute(sqlQ3, (build_dict['queue_id'],))
501 + uses={}
502 + for row in cursor.fetchall():
503 + uses[ row[0] ] = row[1]
504 + build_dict['build_useflags']=uses
505 + return build_dict
506 +
507 +def check_revision(connection, build_dict):
508 + cursor = connection.cursor()
509 + sqlQ1 = 'SELECT queue_id FROM buildqueue WHERE ebuild_id = %s AND config = %s'
510 + sqlQ2 = "SELECT useflag FROM ebuildqueuedwithuses WHERE queue_id = %s AND enabled = 'True'"
511 + cursor.execute(sqlQ1, (build_dict['ebuild_id'], build_dict['config_profile']))
512 + queue_id_list = cursor.fetchall()
513 + print('queue_id_list', queue_id_list)
514 + if queue_id_list == []:
515 + return None
516 + for queue_id in queue_id_list:
517 + print('queue_id after list', queue_id[0])
518 + cursor.execute(sqlQ2, (queue_id[0],))
519 + entries = cursor.fetchall()
520 + build_useflags = []
521 + if entries == []:
522 + build_useflags = None
523 + else:
524 + for use_line in sorted(entries):
525 + build_useflags.append(use_line[0])
526 + print("build_useflags build_dict['build_useflags']", build_useflags, build_dict['build_useflags'])
527 + if build_useflags == build_dict['build_useflags']:
528 + print('queue_id', queue_id[0])
529 + return queue_id[0]
530 + return None
531 +
532 +def get_config_list(connection):
533 + cursor = connection.cursor()
534 + sqlQ = 'SELECT id FROM configs WHERE default_config = False AND active = True'
535 + cursor.execute(sqlQ)
536 + return cursor.fetchall()
537 +
538 +def get_config_list_all(connection):
539 + cursor = connection.cursor()
540 + sqlQ = 'SELECT id FROM configs'
541 + cursor.execute(sqlQ)
542 + return cursor.fetchall()
543 +
544 +def update__make_conf(connection, configsDict):
545 + cursor = connection.cursor()
546 + sqlQ = 'UPDATE configs SET make_conf_checksum = %s, make_conf_text = %s, active = %s, config_error = %s WHERE id = %s'
547 + for k, v in configsDict.iteritems():
548 + params = [v['make_conf_checksum_tree'], v['make_conf_text'], v['active'], v['config_error'], k]
549 + cursor.execute(sqlQ, params)
550 + connection.commit()
551 +
552 +def have_package_db(connection, categories, package):
553 + cursor = connection.cursor()
554 + sqlQ ='SELECT package_id FROM packages WHERE category = %s AND package_name = %s'
555 + params = categories, package
556 + cursor.execute(sqlQ, params)
557 + return cursor.fetchone()
558 +
559 +def have_activ_ebuild_id(connection, ebuild_id):
560 + cursor = connection.cursor()
561 + sqlQ = 'SELECT ebuild_checksum FROM ebuilds WHERE id = %s AND active = TRUE'
562 + cursor.execute(sqlQ, (ebuild_id,))
563 + entries = cursor.fetchone()
564 + if entries is None:
565 + return None
566 + # If entries is not None we need [0]
567 + return entries[0]
568 +
569 +def get_categories_db(connection):
570 + cursor = connection.cursor()
571 + sqlQ =' SELECT category FROM categories'
572 + cursor.execute(sqlQ)
573 + return cursor.fetchall()
574 +
575 +def get_categories_checksum_db(connection, categories):
576 + cursor = connection.cursor()
577 + sqlQ =' SELECT metadata_xml_checksum FROM categories_meta WHERE category = %s'
578 + cursor.execute(sqlQ, (categories,))
579 + return cursor.fetchone()
580 +
581 +def add_new_categories_meta_sql(connection, categories, categories_metadata_xml_checksum_tree, categories_metadata_xml_text_tree):
582 + cursor = connection.cursor()
583 + sqlQ = 'INSERT INTO categories_meta (category, metadata_xml_checksum, metadata_xml_text) VALUES ( %s, %s, %s )'
584 + params = categories, categories_metadata_xml_checksum_tree, categories_metadata_xml_text_tree
585 + cursor.execute(sqlQ, params)
586 + connection.commit()
587 +
588 +def update_categories_meta_sql(connection, categories, categories_metadata_xml_checksum_tree, categories_metadata_xml_text_tree):
589 + cursor = connection.cursor()
590 + sqlQ ='UPDATE categories_meta SET metadata_xml_checksum = %s, metadata_xml_text = %s WHERE category = %s'
591 + params = (categories_metadata_xml_checksum_tree, categories_metadata_xml_text_tree, categories)
592 + cursor.execute(sqlQ, params)
593 + connection.commit()
594 +
595 +def add_new_manifest_sql(connection, package_id, get_manifest_text, manifest_checksum_tree):
596 + cursor = connection.cursor()
597 + sqlQ = 'INSERT INTO manifest (package_id, manifest, checksum) VALUES ( %s, %s, %s )'
598 + params = package_id, get_manifest_text, manifest_checksum_tree
599 + cursor.execute(sqlQ, params)
600 + connection.commit()
601 +
602 +def add_new_package_metadata(connection, package_id, package_metadataDict):
603 + cursor = connection.cursor()
604 + sqlQ = 'SELECT changelog_checksum FROM packages_meta WHERE package_id = %s'
605 + cursor.execute(sqlQ, (package_id,))
606 + if cursor.fetchone() is None:
607 + sqlQ = 'INSERT INTO packages_meta (package_id, changelog_text, changelog_checksum, metadata_text, metadata_checksum) VALUES ( %s, %s, %s, %s, %s )'
608 + for k, v in package_metadataDict.iteritems():
609 + params = package_id, v['changelog_text'], v['changelog_checksum'], v[' metadata_xml_text'], v['metadata_xml_checksum']
610 + cursor.execute(sqlQ, params)
611 + connection.commit()
612 +
613 +def update_new_package_metadata(connection, package_id, package_metadataDict):
614 + cursor = connection.cursor()
615 + sqlQ = 'SELECT changelog_checksum, metadata_checksum FROM packages_meta WHERE package_id = %s'
616 + cursor.execute(sqlQ, package_id)
617 + entries = cursor.fetchone()
618 + if entries is None:
619 + changelog_checksum_db = None
620 + metadata_checksum_db = None
621 + else:
622 + changelog_checksum_db = entries[0]
623 + metadata_checksum_db = entries[1]
624 + for k, v in package_metadataDict.iteritems():
625 + if changelog_checksum_db != v['changelog_checksum']:
626 + sqlQ = 'UPDATE packages_meta SET changelog_text = %s, changelog_checksum = %s WHERE package_id = %s'
627 + params = v['changelog_text'], v['changelog_checksum'], package_id
628 + cursor.execute(sqlQ, params)
629 + if metadata_checksum_db != v['metadata_xml_checksum']:
630 + sqlQ = 'UPDATE packages_meta SET metadata_text = %s, metadata_checksum = %s WHERE package_id = %s'
631 + params = v[' metadata_xml_text'], v['metadata_xml_checksum'], package_id
632 + cursor.execute(sqlQ, params)
633 + connection.commit()
634 +
635 +def get_manifest_db(connection, package_id):
636 + cursor = connection.cursor()
637 + sqlQ = 'SELECT checksum FROM manifest WHERE package_id = %s'
638 + cursor.execute(sqlQ, package_id)
639 + entries = cursor.fetchone()
640 + if entries is None:
641 + return None
642 + # If entries is not None we need [0]
643 + return entries[0]
644 +
645 +def update_manifest_sql(connection, package_id, get_manifest_text, manifest_checksum_tree):
646 + cursor = connection.cursor()
647 + sqlQ = 'UPDATE manifest SET checksum = %s, manifest = %s WHERE package_id = %s'
648 + params = (manifest_checksum_tree, get_manifest_text, package_id)
649 + cursor.execute(sqlQ, params)
650 + connection.commit()
651 +
652 +def add_new_metadata(connection, metadataDict):
653 + cursor = connection.cursor()
654 + for k, v in metadataDict.iteritems():
655 + #moved the cursor out side of the loop
656 + sqlQ = 'SELECT updaterestrictions( %s, %s )'
657 + params = k, v['restrictions']
658 + cursor.execute(sqlQ, params)
659 + sqlQ = 'SELECT updatekeywords( %s, %s )'
660 + params = k, v['keyword']
661 + cursor.execute(sqlQ, params)
662 + sqlQ = 'SELECT updateiuse( %s, %s )'
663 + params = k, v['iuse']
664 + cursor.execute(sqlQ, params)
665 + connection.commit()
666 +
667 +def add_new_package_sql(connection, packageDict):
668 + #lets have a new cursor for each metod as per best practice
669 + cursor = connection.cursor()
670 + sqlQ="SELECT insert_ebuild( %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, 'True')"
671 + ebuild_id_list = []
672 + package_id_list = []
673 + for k, v in packageDict.iteritems():
674 + params = [v['categories'], v['package'], v['ebuild_version_tree'], v['ebuild_version_revision'], v['ebuild_version_checksum_tree'],
675 + v['ebuild_version_text'], v['ebuild_version_metadata_tree'][0], v['ebuild_version_metadata_tree'][1],
676 + v['ebuild_version_metadata_tree'][12], v['ebuild_version_metadata_tree'][2], v['ebuild_version_metadata_tree'][3],
677 + v['ebuild_version_metadata_tree'][5],v['ebuild_version_metadata_tree'][6], v['ebuild_version_metadata_tree'][7],
678 + v['ebuild_version_metadata_tree'][9], v['ebuild_version_metadata_tree'][11],
679 + v['ebuild_version_metadata_tree'][13],v['ebuild_version_metadata_tree'][14], v['ebuild_version_metadata_tree'][15],
680 + v['ebuild_version_metadata_tree'][16]]
681 + cursor.execute(sqlQ, params)
682 + mid = cursor.fetchone()
683 + mid=mid[0]
684 + ebuild_id_list.append(mid[1])
685 + package_id_list.append(mid[0])
686 + connection.commit()
687 + # add_new_metadata(metadataDict)
688 + return ebuild_id_list, package_id_list
689 +
690 +def add_new_ebuild_sql(connection, packageDict, new_ebuild_list):
691 + #lets have a new cursor for each metod as per best practice
692 + cursor = connection.cursor()
693 + sqlQ="SELECT insert_ebuild( %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, 'True')"
694 + ebuild_id_list = []
695 + package_id_list = []
696 + for k, v in packageDict.iteritems():
697 + for x in new_ebuild_list:
698 + if x == v['ebuild_version_tree']:
699 + params = [v['categories'], v['package'], v['ebuild_version_tree'], v['ebuild_version_revision'], v['ebuild_version_checksum_tree'],
700 + v['ebuild_version_text'], v['ebuild_version_metadata_tree'][0], v['ebuild_version_metadata_tree'][1],
701 + v['ebuild_version_metadata_tree'][12], v['ebuild_version_metadata_tree'][2], v['ebuild_version_metadata_tree'][3],
702 + v['ebuild_version_metadata_tree'][5],v['ebuild_version_metadata_tree'][6], v['ebuild_version_metadata_tree'][7],
703 + v['ebuild_version_metadata_tree'][9], v['ebuild_version_metadata_tree'][11],
704 + v['ebuild_version_metadata_tree'][13],v['ebuild_version_metadata_tree'][14], v['ebuild_version_metadata_tree'][15],
705 + v['ebuild_version_metadata_tree'][16]]
706 + cursor.execute(sqlQ, params)
707 + mid = cursor.fetchone()
708 + mid=mid[0]
709 + ebuild_id_list.append(mid[1])
710 + package_id_list.append(mid[0])
711 + connection.commit()
712 + # add_new_metadata(metadataDict)
713 + return ebuild_id_list, package_id_list
714 +
715 +def update_active_ebuild(connection, package_id, ebuild_version_tree):
716 + cursor = connection.cursor()
717 + sqlQ ="UPDATE ebuilds SET active = 'False', timestamp = now() WHERE package_id = %s AND ebuild_version = %s AND active = 'True'"
718 + cursor.execute(sqlQ, (package_id, ebuild_version_tree))
719 + connection.commit()
720 +
721 +def get_ebuild_id_db(connection, categories, package, ebuild_version_tree):
722 + cursor = connection.cursor()
723 + sqlQ ='SELECT id FROM packages WHERE category = %s AND ebuild_name = %s AND ebuild_version = %s'
724 + cursor.execute(sqlQ, (categories, package, ebuild_version_tree))
725 + entries = cursor.fetchone()
726 + return entries
727 +
728 +def get_ebuild_id_db_checksum(connection, build_dict):
729 + cursor = connection.cursor()
730 + sqlQ = 'SELECT id FROM ebuilds WHERE ebuild_version = %s AND ebuild_checksum = %s AND package_id = %s'
731 + cursor.execute(sqlQ, (build_dict['ebuild_version'], build_dict['checksum'], build_dict['package_id']))
732 + ebuild_id = cursor.fetchone()
733 + print('ebuild_id', ebuild_id)
734 + if ebuild_id is None:
735 + return None
736 + return ebuild_id[0]
737 +
738 +def get_cpv_from_ebuild_id(connection, ebuild_id):
739 + cursor = connection.cursor()
740 + #wasent used
741 + #sqlQ = 'SELECT package_id FROM ebuild WHERE id = %s'
742 + sqlQ='SELECT category, ebuild_name, ebuild_version FROM packages WHERE id = %s'
743 + cursor.execute(sqlQ, ebuild_id)
744 + entries = cursor.fetchone()
745 + return entries
746 +
747 +def get_cp_from_package_id(connection, package_id):
748 + cursor =connection.cursor()
749 + sqlQ = "SELECT ARRAY_TO_STRING(ARRAY[category, package_name] , '/') AS cp FROM packages WHERE package_id = %s"
750 + cursor.execute(sqlQ, (package_id,))
751 + return cursor.fetchone()
752 +
753 +def get_keyword_id_db(connection, arch, stable):
754 + cursor =connection.cursor()
755 + sqlQ ='SELECT id_keyword FROM keywords WHERE ARCH = %s AND stable = %s'
756 + cursor.execute(sqlQ, (arch, stable))
757 + entries = cursor.fetchone()
758 + #why only return 1 entery? if that IS the point use top(1)
759 + return entries
760 +
761 +def add_new_keywords(connection, ebuild_id, keyword_id):
762 + cursor = connection.cursor()
763 + sqlQ ='INSERT INTO keywordsToEbuild (ebuild_id, id_keyword) VALUES ( %s, %s )'
764 + cursor.execute(sqlQ, (ebuild_id, keyword_id))
765 + connection.commit()
766 +
767 +def have_package_buildqueue(connection, ebuild_id, config_id):
768 + cursor = connection.cursor()
769 + sqlQ = 'SELECT useflags FROM buildqueue WHERE ebuild_id = %s AND config_id = %s'
770 + params = (ebuild_id[0], config_id)
771 + cursor.execute(sqlQ, params)
772 + entries = cursor.fetchone()
773 + return entries
774 +
775 +def add_new_package_buildqueue(connection, ebuild_id, config_id, iuse_flags_list, use_enable, message):
776 + cursor = connection.cursor()
777 + sqlQ="SELECT insert_buildqueue( %s, %s, %s, %s, %s )"
778 + if not iuse_flags_list:
779 + iuse_flags_list=None
780 + use_enable=None
781 + params = ebuild_id, config_id, iuse_flags_list, use_enable, message
782 + cursor.execute(sqlQ, params)
783 + connection.commit()
784 +
785 +def get_ebuild_checksum(connection, package_id, ebuild_version_tree):
786 + cursor = connection.cursor()
787 + sqlQ = 'SELECT ebuild_checksum FROM ebuilds WHERE package_id = %s AND ebuild_version = %s AND active = TRUE'
788 + cursor.execute(sqlQ, (package_id, ebuild_version_tree))
789 + entries = cursor.fetchone()
790 + if entries is None:
791 + return None
792 + # If entries is not None we need [0]
793 + return entries[0]
794 +
795 +def cp_all_db(connection):
796 + cursor = connection.cursor()
797 + sqlQ = "SELECT package_id FROM packages"
798 + cursor.execute(sqlQ)
799 + return cursor.fetchall()
800 +
801 +def add_old_package(connection, old_package_list):
802 + cursor = connection.cursor()
803 + mark_old_list = []
804 + sqlQ = "UPDATE ebuilds SET active = 'FALSE', timestamp = NOW() WHERE package_id = %s AND active = 'TRUE' RETURNING package_id"
805 + for old_package in old_package_list:
806 + cursor.execute(sqlQ, (old_package[0],))
807 + entries = cursor.fetchone()
808 + if entries is not None:
809 + mark_old_list.append(entries[0])
810 + connection.commit()
811 + return mark_old_list
812 +
813 +def get_old_categories(connection, categories_line):
814 + cursor = connection.cursor()
815 + sqlQ = "SELECT package_name FROM packages WHERE category = %s"
816 + cursor.execute(sqlQ (categories_line))
817 + return cursor.fetchone()
818 +
819 +def del_old_categories(connection, real_old_categoriess):
820 + cursor = connection.cursor()
821 + sqlQ1 = 'DELETE FROM categories_meta WHERE category = %s'
822 + sqlQ2 = 'DELETE FROM categories categories_meta WHERE category = %s'
823 + cursor.execute(sqlQ1 (real_old_categories))
824 + cursor.execute(sqlQ2 (real_old_categories))
825 + connection.commit()
826 +
827 +def add_old_ebuild(connection, package_id, old_ebuild_list):
828 + cursor = connection.cursor()
829 + sqlQ1 = "UPDATE ebuilds SET active = 'FALSE' WHERE package_id = %s AND ebuild_version = %s"
830 + sqlQ2 = "SELECT id FROM ebuilds WHERE package_id = %s AND ebuild_version = %s AND active = 'TRUE'"
831 + sqlQ3 = "SELECT queue_id FROM buildqueue WHERE ebuild_id = %s"
832 + sqlQ4 = 'DELETE FROM ebuildqueuedwithuses WHERE queue_id = %s'
833 + sqlQ5 = 'DELETE FROM buildqueue WHERE queue_id = %s'
834 + for old_ebuild in old_ebuild_list:
835 + cursor.execute(sqlQ2, (package_id, old_ebuild[0]))
836 + ebuild_id_list = cursor.fetchall()
837 + if ebuild_id_list is not None:
838 + for ebuild_id in ebuild_id_list:
839 + cursor.execute(sqlQ3, (ebuild_id))
840 + queue_id_list = cursor.fetchall()
841 + if queue_id_list is not None:
842 + for queue_id in queue_id_list:
843 + cursor.execute(sqlQ4, (queue_id))
844 + cursor.execute(sqlQ5, (queue_id))
845 + cursor.execute(sqlQ1, (package_id, old_ebuild[0]))
846 + connection.commit()
847 +
848 +def cp_all_old_db(connection, old_package_id_list):
849 + cursor = connection.cursor()
850 + old_package_list = []
851 + for old_package in old_package_id_list:
852 + sqlQ = "SELECT package_id FROM ebuilds WHERE package_id = %s AND active = 'FALSE' AND date_part('days', NOW() - timestamp) < 60"
853 + cursor.execute(sqlQ, old_package)
854 + entries = cursor.fetchone()
855 + if entries is None:
856 + old_package_list.append(old_package)
857 + return old_package_list
858 +
859 +def del_old_queue(connection, queue_id):
860 + cursor = connection.cursor()
861 + sqlQ1 = 'DELETE FROM ebuildqueuedwithuses WHERE queue_id = %s'
862 + sqlQ2 = 'DELETE FROM temp_errors_queue_qa WHERE queue_id = %s'
863 + sqlQ3 = 'DELETE FROM buildqueue WHERE queue_id = %s'
864 + cursor.execute(sqlQ1, (queue_id,))
865 + cursor.execute(sqlQ2, (queue_id,))
866 + cursor.execute(sqlQ3, (queue_id,))
867 + connection.commit()
868 +
869 +def del_old_ebuild(connection, ebuild_old_list_db):
870 + cursor = connection.cursor()
871 + sqlQ1 = 'SELECT build_id FROM buildlog WHERE ebuild_id = %s'
872 + sqlQ2 = 'DELETE FROM qa_problems WHERE build_id = %s'
873 + sqlQ3 = 'DELETE FROM repoman_problems WHERE build_id = %s'
874 + sqlQ4 = 'DELETE FROM ebuildbuildwithuses WHERE build_id = %s'
875 + sqlQ5 = 'DELETE FROM ebuildhaveskeywords WHERE ebuild_id = %s'
876 + sqlQ6 = 'DELETE FROM ebuildhavesiuses WHERE ebuild_id = %s'
877 + sqlQ7 = 'DELETE FROM ebuildhavesrestrictions WHERE ebuild_id = %s'
878 + sqlQ8 = 'DELETE FROM buildlog WHERE ebuild_id = %s'
879 + sqlQ9 = 'SELECT queue_id FROM buildqueue WHERE ebuild_id = %s'
880 + sqlQ10 = 'DELETE FROM ebuildqueuedwithuses WHERE queue_id = %s'
881 + sqlQ11 = 'DELETE FROM buildqueue WHERE ebuild_id = %s'
882 + sqlQ12 = 'DELETE FROM ebuilds WHERE id = %s'
883 + for ebuild_id in ebuild_old_list_db:
884 + cursor.execute(sqlQ1, (ebuild_id[0],))
885 + build_id_list = cursor.fetchall()
886 + if build_id_list != []:
887 + for build_id in build_id_list:
888 + cursor.execute(sqlQ2, (build_id[0],))
889 + cursor.execute(sqlQ3, (build_id[0],))
890 + cursor.execute(sqlQ4, (build_id[0],))
891 + cursor.execute(sqlQ9, (ebuild_id[0],))
892 + queue_id_list = cursor.fetchall()
893 + if queue_id_list != []:
894 + for queue_id in queue_id_list:
895 + cursor.execute(sqlQ10, (queue_id[0],))
896 + cursor.execute(sqlQ5, (ebuild_id[0],))
897 + cursor.execute(sqlQ6, (ebuild_id[0],))
898 + cursor.execute(sqlQ7, (ebuild_id[0],))
899 + cursor.execute(sqlQ8, (ebuild_id[0],))
900 + cursor.execute(sqlQ11, (ebuild_id[0],))
901 + cursor.execute(sqlQ12, (ebuild_id[0],))
902 + connection.commit()
903 +
904 +def del_old_package(connection, package_id_list):
905 + cursor = connection.cursor()
906 + sqlQ1 = 'SELECT id FROM ebuilds WHERE package_id = %s'
907 + sqlQ2 = 'DELETE FROM ebuilds WHERE package_id = %s'
908 + sqlQ3 = 'DELETE FROM manifest WHERE package_id = %s'
909 + sqlQ4 = 'DELETE FROM packages_meta WHERE package_id = %s'
910 + sqlQ5 = 'DELETE FROM packages WHERE package_id = %s'
911 + for package_id in package_id_list:
912 + cursor.execute(sqlQ1, package_id)
913 + ebuild_id_list = cursor.fetchall()
914 + del_old_ebuild(connection, ebuild_id_list)
915 + cursor.execute(sqlQ2, (package_id,))
916 + cursor.execute(sqlQ3, (package_id,))
917 + cursor.execute(sqlQ4, (package_id,))
918 + cursor.execute(sqlQ5, (package_id,))
919 + connection.commit()
920 +
921 +def cp_list_db(connection, package_id):
922 + cursor = connection.cursor()
923 + sqlQ = "SELECT ebuild_version FROM ebuilds WHERE active = 'TRUE' AND package_id = %s"
924 + cursor.execute(sqlQ, (package_id))
925 + return cursor.fetchall()
926 +
927 +def cp_list_old_db(connection, package_id):
928 + cursor = connection.cursor()
929 + sqlQ ="SELECT id, ebuild_version FROM ebuilds WHERE active = 'FALSE' AND package_id = %s AND date_part('days', NOW() - timestamp) > 60"
930 + cursor.execute(sqlQ, package_id)
931 + return cursor.fetchall()
932 +
933 +def move_queru_buildlog(connection, queue_id, build_error, summary_error, build_log_dict):
934 + cursor = connection.cursor()
935 + print('queue_id', queue_id)
936 + print('build_log_dict', build_log_dict)
937 + repoman_error_list = build_log_dict['repoman_error_list']
938 + qa_error_list = build_log_dict['qa_error_list']
939 + sqlQ = 'SELECT make_buildlog( %s, %s, %s, %s, %s, %s)'
940 + cursor.execute(sqlQ, (queue_id, summary_error, build_error, build_log_dict['logfilename'], qa_error_list, repoman_error_list))
941 + entries = cursor.fetchone()
942 + connection.commit()
943 + return entries
944 +
945 +def add_new_buildlog(connection, build_dict, use_flags_list, use_enable_list, build_error, summary_error, build_log_dict):
946 + cursor = connection.cursor()
947 + repoman_error_list = build_log_dict['repoman_error_list']
948 + qa_error_list = build_log_dict['qa_error_list']
949 + if not use_flags_list:
950 + use_flags_list=None
951 + use_enable=None
952 + print('make_deplog', build_dict['ebuild_id'], build_dict['config_profile'], use_flags_list, use_enable_list, summary_error, build_error, build_log_dict['logfilename'], qa_error_list, repoman_error_list)
953 + sqlQ = 'SELECT make_deplog( %s, %s, %s, %s, %s, %s, %s, %s, %s)'
954 + params = (build_dict['ebuild_id'], build_dict['config_profile'], use_flags_list, use_enable_list, summary_error, build_error, build_log_dict['logfilename'], qa_error_list, repoman_error_list)
955 + cursor.execute(sqlQ, params)
956 + entries = cursor.fetchone()
957 + connection.commit()
958 + return entries
959 +
960 +def add_qa_repoman(connection, ebuild_id_list, qa_error, packageDict, config_id):
961 + cursor = connection.cursor()
962 + ebuild_i = 0
963 + for k, v in packageDict.iteritems():
964 + ebuild_id = ebuild_id_list[ebuild_i]
965 + sqlQ = "INSERT INTO buildlog (ebuild_id, config, error_summary, timestamp, hash ) VALUES ( %s, %s, %s, now(), '1' ) RETURNING build_id"
966 + if v['ebuild_error'] != [] or qa_error != []:
967 + if v['ebuild_error'] != [] or qa_error == []:
968 + summary = "Repoman"
969 + elif v['ebuild_error'] == [] or qa_error != []:
970 + summary = "QA"
971 + else:
972 + summary = "QA:Repoman"
973 + params = (ebuild_id, config_id, summary)
974 + cursor.execute(sqlQ, params)
975 + build_id = cursor.fetchone()
976 + if v['ebuild_error'] != []:
977 + sqlQ = 'INSERT INTO repoman_problems (problem, build_id ) VALUES ( %s, %s )'
978 + for x in v['ebuild_error']:
979 + params = (x, build_id)
980 + cursor.execute(sqlQ, params)
981 + if qa_error != []:
982 + sqlQ = 'INSERT INTO qa_problems (problem, build_id ) VALUES ( %s, %s )'
983 + for x in qa_error:
984 + params = (x, build_id)
985 + cursor.execute(sqlQ, params)
986 + ebuild_i = ebuild_i +1
987 + connection.commit()
988 +
989 +def update_qa_repoman(connection, build_id, build_log_dict):
990 + cursor = connection.cursor()
991 + sqlQ1 = 'INSERT INTO repoman_problems (problem, build_id ) VALUES ( %s, %s )'
992 + sqlQ2 = 'INSERT INTO qa_problems (problem, build_id ) VALUES ( %s, %s )'
993 + if build_log_dict['repoman_error_list'] != []:
994 + for x in build_log_dict['repoman_error_list']:
995 + params = (x, build_id)
996 + cursor.execute(sqlQ, params)
997 + if build_log_dict['qa_error_list'] != []:
998 + for x in build_log_dict['qa_error_list']:
999 + params = (x, build_id)
1000 + cursor.execute(sqlQ, params)
1001 + connection.commit()
1002 +
1003 +def get_arch_db(connection):
1004 + cursor = connection.cursor()
1005 + sqlQ = "SELECT keyword FROM keywords WHERE keyword = 'amd64'"
1006 + cursor.execute(sqlQ)
1007 + return cursor.fetchone()
1008 +
1009 +def add_new_arch_db(connection, arch_list):
1010 + cursor = connection.cursor()
1011 + sqlQ = 'INSERT INTO keywords (keyword) VALUES ( %s )'
1012 + for arch in arch_list:
1013 + cursor.execute(sqlQ, (arch,))
1014 + connection.commit()
1015 +
1016 +def check_fail_times(connection, logDict):
1017 + queue_id = logDict['queue_id']
1018 + qa_error = logDict['qa_error_list'][0]
1019 + cursor = connection.cursor()
1020 + sqlQ = 'SELECT errors FROM temp_errors_queue_qa WHERE queue_id = %s AND what_error = %s'
1021 + cursor.execute(sqlQ, (queue_id, qa_error,))
1022 + return cursor.fetchone()
1023 +
1024 +def add_fail_times(connection, logDict):
1025 + queue_id = logDict['queue_id']
1026 + qa_error = logDict['qa_error_list'][0]
1027 + cursor = connection.cursor()
1028 + sqlQ = 'INSERT INTO temp_errors_queue_qa (queue_id, what_error) VALUES ( %s, %s)'
1029 + cursor.execute(sqlQ, (queue_id, qa_error,))
1030 + connection.commit()
1031 +
1032 +def update_fail_times(connection, logDict):
1033 + queue_id = logDict['queue_id']
1034 + qa_error = logDict['qa_error_list'][0]
1035 + cursor = connection.cursor()
1036 + sqlQ1 = 'UPDATE buildqueue SET timestamp = NOW() WHERE queue_id = %s'
1037 + cursor.execute(sqlQ1, (queue_id,))
1038 + connection.commit()
1039 +
1040 +def make_conf_error(connection,config_profile):
1041 + pass
1042
1043 diff --git a/setup.py b/setup.py
1044 index 4ad9586..4042077 100644
1045 --- a/setup.py
1046 +++ b/setup.py
1047 @@ -15,7 +15,7 @@ version = os.path.split(os.path.abspath(__file__))[-2].split('-')[-1]
1048
1049 packages = ['gobs']
1050
1051 -package_dir = {'gobs': 'gobs/pym','gobs/pym/querys'}
1052 +package_dir = {'gobs': 'gobs/pym'}
1053
1054 setup(
1055 name="gobs",