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", |