blob: 8e80acbfcb3ba26ca66d11c63e616f921b76563f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
# Sanity check the sota setup for common misconfigurations
def sota_check_overrides(status, d):
for var in (d.getVar('SOTA_OVERRIDES_BLACKLIST') or "").split():
if var in d.getVar('OVERRIDES').split(':'):
status.addresult("%s should not be a overrides, because it is a image fstype in updater layer, please check your OVERRIDES setting.\n" % var)
def sota_check_required_variables(status, d):
for var in (d.getVar('SOTA_REQUIRED_VARIABLES') or "").split():
if not d.getVar(var):
status.addresult("%s should be set in your local.conf.\n" % var)
def sota_raise_sanity_error(msg, d):
if d.getVar("SANITY_USE_EVENTS") == "1":
bb.event.fire(bb.event.SanityCheckFailed(msg), d)
return
bb.fatal("Sota's config sanity checker detected a potential misconfiguration.\n"
"Please fix the cause of this error then you can continue to build.\n"
"Following is the list of potential problems / advisories:\n"
"\n%s" % msg)
def sota_check_sanity(sanity_data):
class SanityStatus(object):
def __init__(self):
self.messages = ""
self.reparse = False
def addresult(self, message):
if message:
self.messages = self.messages + message
status = SanityStatus()
sota_check_overrides(status, sanity_data)
sota_check_required_variables(status, sanity_data)
if status.messages != "":
sota_raise_sanity_error(sanity_data.expand(status.messages), sanity_data)
addhandler sota_check_sanity_eventhandler
sota_check_sanity_eventhandler[eventmask] = "bb.event.SanityCheck"
python sota_check_sanity_eventhandler() {
if bb.event.getName(e) == "SanityCheck":
sanity_data = copy_data(e)
if e.generateevents:
sanity_data.setVar("SANITY_USE_EVENTS", "1")
reparse = sota_check_sanity(sanity_data)
e.data.setVar("BB_INVALIDCONF", reparse)
bb.event.fire(bb.event.SanityCheckPassed(), e.data)
return
}
|