diff options
Diffstat (limited to 'meta/lib/oe/prservice.py')
-rw-r--r-- | meta/lib/oe/prservice.py | 33 |
1 files changed, 16 insertions, 17 deletions
diff --git a/meta/lib/oe/prservice.py b/meta/lib/oe/prservice.py index fcdbe66c19..c41242c878 100644 --- a/meta/lib/oe/prservice.py +++ b/meta/lib/oe/prservice.py | |||
@@ -1,4 +1,6 @@ | |||
1 | # | 1 | # |
2 | # Copyright OpenEmbedded Contributors | ||
3 | # | ||
2 | # SPDX-License-Identifier: GPL-2.0-only | 4 | # SPDX-License-Identifier: GPL-2.0-only |
3 | # | 5 | # |
4 | 6 | ||
@@ -7,11 +9,10 @@ def prserv_make_conn(d, check = False): | |||
7 | host_params = list([_f for _f in (d.getVar("PRSERV_HOST") or '').split(':') if _f]) | 9 | host_params = list([_f for _f in (d.getVar("PRSERV_HOST") or '').split(':') if _f]) |
8 | try: | 10 | try: |
9 | conn = None | 11 | conn = None |
10 | conn = prserv.serv.PRServerConnection(host_params[0], int(host_params[1])) | 12 | conn = prserv.serv.connect(host_params[0], int(host_params[1])) |
11 | if check: | 13 | if check: |
12 | if not conn.ping(): | 14 | if not conn.ping(): |
13 | raise Exception('service not available') | 15 | raise Exception('service not available') |
14 | d.setVar("__PRSERV_CONN",conn) | ||
15 | except Exception as exc: | 16 | except Exception as exc: |
16 | bb.fatal("Connecting to PR service %s:%s failed: %s" % (host_params[0], host_params[1], str(exc))) | 17 | bb.fatal("Connecting to PR service %s:%s failed: %s" % (host_params[0], host_params[1], str(exc))) |
17 | 18 | ||
@@ -22,31 +23,29 @@ def prserv_dump_db(d): | |||
22 | bb.error("Not using network based PR service") | 23 | bb.error("Not using network based PR service") |
23 | return None | 24 | return None |
24 | 25 | ||
25 | conn = d.getVar("__PRSERV_CONN") | 26 | conn = prserv_make_conn(d) |
26 | if conn is None: | 27 | if conn is None: |
27 | conn = prserv_make_conn(d) | 28 | bb.error("Making connection failed to remote PR service") |
28 | if conn is None: | 29 | return None |
29 | bb.error("Making connection failed to remote PR service") | ||
30 | return None | ||
31 | 30 | ||
32 | #dump db | 31 | #dump db |
33 | opt_version = d.getVar('PRSERV_DUMPOPT_VERSION') | 32 | opt_version = d.getVar('PRSERV_DUMPOPT_VERSION') |
34 | opt_pkgarch = d.getVar('PRSERV_DUMPOPT_PKGARCH') | 33 | opt_pkgarch = d.getVar('PRSERV_DUMPOPT_PKGARCH') |
35 | opt_checksum = d.getVar('PRSERV_DUMPOPT_CHECKSUM') | 34 | opt_checksum = d.getVar('PRSERV_DUMPOPT_CHECKSUM') |
36 | opt_col = ("1" == d.getVar('PRSERV_DUMPOPT_COL')) | 35 | opt_col = ("1" == d.getVar('PRSERV_DUMPOPT_COL')) |
37 | return conn.export(opt_version, opt_pkgarch, opt_checksum, opt_col) | 36 | d = conn.export(opt_version, opt_pkgarch, opt_checksum, opt_col) |
37 | conn.close() | ||
38 | return d | ||
38 | 39 | ||
39 | def prserv_import_db(d, filter_version=None, filter_pkgarch=None, filter_checksum=None): | 40 | def prserv_import_db(d, filter_version=None, filter_pkgarch=None, filter_checksum=None): |
40 | if not d.getVar('PRSERV_HOST'): | 41 | if not d.getVar('PRSERV_HOST'): |
41 | bb.error("Not using network based PR service") | 42 | bb.error("Not using network based PR service") |
42 | return None | 43 | return None |
43 | 44 | ||
44 | conn = d.getVar("__PRSERV_CONN") | 45 | conn = prserv_make_conn(d) |
45 | if conn is None: | 46 | if conn is None: |
46 | conn = prserv_make_conn(d) | 47 | bb.error("Making connection failed to remote PR service") |
47 | if conn is None: | 48 | return None |
48 | bb.error("Making connection failed to remote PR service") | ||
49 | return None | ||
50 | #get the entry values | 49 | #get the entry values |
51 | imported = [] | 50 | imported = [] |
52 | prefix = "PRAUTO$" | 51 | prefix = "PRAUTO$" |
@@ -70,6 +69,7 @@ def prserv_import_db(d, filter_version=None, filter_pkgarch=None, filter_checksu | |||
70 | bb.error("importing(%s,%s,%s,%d) failed. DB may have larger value %d" % (version,pkgarch,checksum,value,ret)) | 69 | bb.error("importing(%s,%s,%s,%d) failed. DB may have larger value %d" % (version,pkgarch,checksum,value,ret)) |
71 | else: | 70 | else: |
72 | imported.append((version,pkgarch,checksum,value)) | 71 | imported.append((version,pkgarch,checksum,value)) |
72 | conn.close() | ||
73 | return imported | 73 | return imported |
74 | 74 | ||
75 | def prserv_export_tofile(d, metainfo, datainfo, lockdown, nomax=False): | 75 | def prserv_export_tofile(d, metainfo, datainfo, lockdown, nomax=False): |
@@ -78,8 +78,7 @@ def prserv_export_tofile(d, metainfo, datainfo, lockdown, nomax=False): | |||
78 | bb.utils.mkdirhier(d.getVar('PRSERV_DUMPDIR')) | 78 | bb.utils.mkdirhier(d.getVar('PRSERV_DUMPDIR')) |
79 | df = d.getVar('PRSERV_DUMPFILE') | 79 | df = d.getVar('PRSERV_DUMPFILE') |
80 | #write data | 80 | #write data |
81 | lf = bb.utils.lockfile("%s.lock" % df) | 81 | with open(df, "a") as f, bb.utils.fileslocked(["%s.lock" % df]) as locks: |
82 | with open(df, "a") as f: | ||
83 | if metainfo: | 82 | if metainfo: |
84 | #dump column info | 83 | #dump column info |
85 | f.write("#PR_core_ver = \"%s\"\n\n" % metainfo['core_ver']); | 84 | f.write("#PR_core_ver = \"%s\"\n\n" % metainfo['core_ver']); |
@@ -113,7 +112,6 @@ def prserv_export_tofile(d, metainfo, datainfo, lockdown, nomax=False): | |||
113 | if not nomax: | 112 | if not nomax: |
114 | for i in idx: | 113 | for i in idx: |
115 | f.write("PRAUTO_%s_%s = \"%s\"\n" % (str(datainfo[idx[i]]['version']),str(datainfo[idx[i]]['pkgarch']),str(datainfo[idx[i]]['value']))) | 114 | f.write("PRAUTO_%s_%s = \"%s\"\n" % (str(datainfo[idx[i]]['version']),str(datainfo[idx[i]]['pkgarch']),str(datainfo[idx[i]]['value']))) |
116 | bb.utils.unlockfile(lf) | ||
117 | 115 | ||
118 | def prserv_check_avail(d): | 116 | def prserv_check_avail(d): |
119 | host_params = list([_f for _f in (d.getVar("PRSERV_HOST") or '').split(':') if _f]) | 117 | host_params = list([_f for _f in (d.getVar("PRSERV_HOST") or '').split(':') if _f]) |
@@ -125,4 +123,5 @@ def prserv_check_avail(d): | |||
125 | except TypeError: | 123 | except TypeError: |
126 | bb.fatal('Undefined/incorrect PRSERV_HOST value. Format: "host:port"') | 124 | bb.fatal('Undefined/incorrect PRSERV_HOST value. Format: "host:port"') |
127 | else: | 125 | else: |
128 | prserv_make_conn(d, True) | 126 | conn = prserv_make_conn(d, True) |
127 | conn.close() | ||