From 7877c4344db89237bba5f9a03342bfd9a03aebbf Mon Sep 17 00:00:00 2001 From: Bogdan Marinescu Date: Wed, 26 Sep 2012 17:00:10 +0300 Subject: sanity: Added explicit network error status in SanityCheckFailed event If we fail a network test, a special flag is set in the SanityChekFailed event. This helps Hob identify the network error properly and display a special message to the user. [YOCTO #3025] Signed-off-by: Bogdan Marinescu Signed-off-by: Saul Wold --- meta/classes/sanity.bbclass | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/meta/classes/sanity.bbclass b/meta/classes/sanity.bbclass index 9c3ab1ff2e..e2095ddd48 100644 --- a/meta/classes/sanity.bbclass +++ b/meta/classes/sanity.bbclass @@ -54,9 +54,12 @@ python check_bblayers_conf() { f.write(''.join(lines)) } -def raise_sanity_error(msg, d): +def raise_sanity_error(msg, d, network_error=False): if d.getVar("SANITY_USE_EVENTS", True) == "1": - bb.event.fire(bb.event.SanityCheckFailed(msg), d) + try: + bb.event.fire(bb.event.SanityCheckFailed(msg, network_error), d) + except TypeError: + bb.event.fire(bb.event.SanityCheckFailed(msg), d) return bb.fatal(""" OE-core's config sanity checker detected a potential misconfiguration. @@ -169,8 +172,9 @@ def check_sanity_tmpdir_change(tmpdir, data): # Check that TMPDIR isn't on a filesystem with limited filename length (eg. eCryptFS) testmsg = check_create_long_filename(tmpdir, "TMPDIR") # Check that we can fetch from various network transports + errmsg = check_connectivity(data) testmsg = testmsg + check_connectivity(data) - return testmsg + return testmsg, errmsg == "" def check_sanity_version_change(data): # Sanity checks to be done when SANITY_VERSION changes @@ -534,16 +538,18 @@ def check_sanity(sanity_data): last_sstate_dir = line.split()[1] sanity_version = int(sanity_data.getVar('SANITY_VERSION', True) or 1) + network_error = False if last_sanity_version < sanity_version: messages = messages + check_sanity_version_change(sanity_data) - messages = messages + check_sanity_tmpdir_change(tmpdir, sanity_data) + err, network_error = check_sanity_tmpdir_change(tmpdir, sanity_data) + messages = messages + err messages = messages + check_sanity_sstate_dir_change(sstate_dir, sanity_data) else: if last_tmpdir != tmpdir: - messages = messages + check_sanity_tmpdir_change(tmpdir, sanity_data) + err, network_error = check_sanity_tmpdir_change(tmpdir, sanity_data) + messages = messages + err if last_sstate_dir != sstate_dir: messages = messages + check_sanity_sstate_dir_change(sstate_dir, sanity_data) - if os.path.exists("conf") and not messages: f = file(sanityverfile, 'w') f.write("SANITY_VERSION %s\n" % sanity_version) @@ -614,7 +620,7 @@ def check_sanity(sanity_data): messages = messages + "Error, you have a space in your COREBASE directory path. Please move the installation to a directory which doesn't include a space." if messages != "": - raise_sanity_error(sanity_data.expand(messages), sanity_data) + raise_sanity_error(sanity_data.expand(messages), sanity_data, network_error) # Create a copy of the datastore and finalise it to ensure appends and # overrides are set - the datastore has yet to be finalised at ConfigParsed -- cgit 1.2.3-korg