1# 2# Copyright OpenEmbedded Contributors 3# 4# SPDX-License-Identifier: MIT 5# 6 7PRSERV_DUMPOPT_VERSION = "${PRAUTOINX}" 8PRSERV_DUMPOPT_PKGARCH = "" 9PRSERV_DUMPOPT_CHECKSUM = "" 10PRSERV_DUMPOPT_COL = "0" 11 12PRSERV_DUMPDIR ??= "${LOG_DIR}/db" 13PRSERV_DUMPFILE ??= "${PRSERV_DUMPDIR}/prserv.inc" 14 15python prexport_handler () { 16 import bb.event 17 if not e.data or bb.data.inherits_class('native', e.data) or \ 18 bb.data.inherits_class('crosssdk', e.data): 19 return 20 21 if isinstance(e, bb.event.RecipeParsed): 22 import oe.prservice 23 #get all PR values for the current PRAUTOINX 24 ver = e.data.getVar('PRSERV_DUMPOPT_VERSION') 25 ver = ver.replace('%','-') 26 retval = oe.prservice.prserv_dump_db(e.data) 27 if not retval: 28 bb.fatal("prexport_handler: export failed!") 29 (metainfo, datainfo) = retval 30 if not datainfo: 31 bb.note("prexport_handler: No AUTOPR values found for %s" % ver) 32 return 33 oe.prservice.prserv_export_tofile(e.data, None, datainfo, False) 34 if 'AUTOINC' in ver: 35 import re 36 srcpv = bb.fetch2.get_srcrev(e.data) 37 base_ver = "AUTOINC-%s" % ver[:ver.find(srcpv)] 38 e.data.setVar('PRSERV_DUMPOPT_VERSION', base_ver) 39 retval = oe.prservice.prserv_dump_db(e.data) 40 if not retval: 41 bb.fatal("prexport_handler: export failed!") 42 (metainfo, datainfo) = retval 43 oe.prservice.prserv_export_tofile(e.data, None, datainfo, False) 44 elif isinstance(e, bb.event.ParseStarted): 45 import bb.utils 46 import oe.prservice 47 oe.prservice.prserv_check_avail(e.data) 48 #remove dumpfile 49 bb.utils.remove(e.data.getVar('PRSERV_DUMPFILE')) 50 elif isinstance(e, bb.event.ParseCompleted): 51 import oe.prservice 52 #dump meta info of tables 53 d = e.data.createCopy() 54 d.setVar('PRSERV_DUMPOPT_COL', "1") 55 retval = oe.prservice.prserv_dump_db(d) 56 if not retval: 57 bb.error("prexport_handler: export failed!") 58 return 59 (metainfo, datainfo) = retval 60 oe.prservice.prserv_export_tofile(d, metainfo, None, True) 61 62} 63 64addhandler prexport_handler 65prexport_handler[eventmask] = "bb.event.RecipeParsed bb.event.ParseStarted bb.event.ParseCompleted" 66