[elbe-devel] [PATCH 1/1] Change exception.message to str()
Bastian Germann
bage at linutronix.de
Wed Feb 5 01:10:53 CET 2020
Am 03.02.20 um 02:24 schrieb Olivier Dion:
> The 'message' attribute of an exception that inherit from
> BaseException is not valid in Py3. Thus, using the '__str__' method
> of the exception instead to get the error message.
>
> See the following traceback:
>
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>
> File "/home/olivier/linutronix/elbe/elbepack/debinstaller.py", \
> line 237, in copy_kinitrd
> download_kinitrd(tmp, suite, mirror)
> File "/home/olivier/linutronix/elbe/elbepack/debinstaller.py", \
> line 175, in download_kinitrd
> download_release(tmp, base_url)
> File "/home/olivier/linutronix/elbe/elbepack/debinstaller.py", \
> line 160, in download_release
> raise InvalidSignature('Failed to verify Release file')
> elbepack.debinstaller.InvalidSignature: Failed to verify Release file
>
> During handling of the above exception, another exception occurred:
>
> Traceback (most recent call last):
> File "/home/olivier/linutronix/elbe/elbe", line 55, in <module>
> cmdmod.run_command(sys.argv[2:])
> File "/home/olivier/linutronix/elbe/elbepack/commands/init.py", \
> line 198, in run_command
> copy_kinitrd(xml.node("/initvm"), out_path)
> File "/home/olivier/linutronix/elbe/elbepack/debinstaller.py", \
> line 251, in copy_kinitrd
> raise NoKinitrdException('InvalidSignature %s' % e.message)
> AttributeError: 'InvalidSignature' object has no attribute 'message'
> ----------------------------------------------------------------------
>
> Signed-off-by: Olivier Dion <dion at linutronix.de>
Reviewed-by: Bastian Germann <bage at linutronix.de>
> ---
> elbepack/commands/init.py | 5 +++--
> elbepack/debinstaller.py | 6 +++---
> elbepack/egpg.py | 10 +++++-----
> elbepack/soapclient.py | 4 ++--
> 4 files changed, 13 insertions(+), 12 deletions(-)
>
> diff --git a/elbepack/commands/init.py b/elbepack/commands/init.py
> index 724babf19..a97d45dfb 100644
> --- a/elbepack/commands/init.py
> +++ b/elbepack/commands/init.py
> @@ -197,12 +197,13 @@ def run_command(argv):
> try:
> copy_kinitrd(xml.node("/initvm"), out_path)
> except NoKinitrdException as e:
> + msg = str(e)
> logging.error("Failure to download kernel/initrd debian Package:")
> logging.error("")
> - logging.error(e.message)
> + logging.error(msg)
> logging.error("")
> logging.error("Check Mirror configuration")
> - if 'SHA256SUMS' in e.message:
> + if 'SHA256SUMS' in msg:
> logging.error("If you use debmirror please read "
> "https://github.com/Linutronix/elbe/issues/188 "
> "on how to work around the issue")
> diff --git a/elbepack/debinstaller.py b/elbepack/debinstaller.py
> index ffe4b5421..dd882d677 100644
> --- a/elbepack/debinstaller.py
> +++ b/elbepack/debinstaller.py
> @@ -246,8 +246,8 @@ def copy_kinitrd(prj, target_dir):
> os.path.join(target_dir, "vmlinuz"))
>
> except IOError as e:
> - raise NoKinitrdException('IoError %s' % e.message)
> + raise NoKinitrdException('IoError %s' % str(e))
> except InvalidSignature as e:
> - raise NoKinitrdException('InvalidSignature %s' % e.message)
> + raise NoKinitrdException('InvalidSignature %s' % str(e))
> except HashValidationFailed as e:
> - raise NoKinitrdException('HashValidationFailed %s' % e.message)
> + raise NoKinitrdException('HashValidationFailed %s' % str(e))
> diff --git a/elbepack/egpg.py b/elbepack/egpg.py
> index 55a624e99..7cfc881f7 100644
> --- a/elbepack/egpg.py
> +++ b/elbepack/egpg.py
> @@ -167,9 +167,9 @@ def unsign_file(fname):
> return outfilename
>
> except IOError as ex:
> - print(ex.message)
> + print(str(ex))
> except Exception as ex:
> - print("Error checking the file %s: %s" % (fname, ex.message))
> + print("Error checking the file %s: %s" % (fname, str(ex)))
>
> return None
>
> @@ -195,7 +195,7 @@ def sign(infile, outfile, fingerprint):
> try:
> key = ctx.get_key(fingerprint, 0)
> except Exception as ex:
> - print("no key with fingerprint %s: %s" % (fingerprint, ex.message))
> + print("no key with fingerprint %s: %s" % (fingerprint, str(ex)))
>
> unlock_key(key.fpr)
> ctx.signers_add(key)
> @@ -210,7 +210,7 @@ def sign(infile, outfile, fingerprint):
> with open(outfile, 'w') as fd:
> fd.write(signature)
> except Exception as ex:
> - print("Error signing file %s" % ex.message)
> + print("Error signing file %s" % str(ex))
>
>
> def sign_file(fname, fingerprint):
> @@ -219,7 +219,7 @@ def sign_file(fname, fingerprint):
> try:
> sign(fname, outfilename, fingerprint)
> except Exception as ex:
> - print("Error signing file %s" % ex.message)
> + print("Error signing file %s" % str(ex))
>
>
> def get_fingerprints():
> diff --git a/elbepack/soapclient.py b/elbepack/soapclient.py
> index d5b18c2ca..017e015af 100644
> --- a/elbepack/soapclient.py
> +++ b/elbepack/soapclient.py
> @@ -103,7 +103,7 @@ class ElbeSoapClient(object):
>
> print("get_file part %d failed, retry %d times" % (part, retry),
> file=sys.stderr)
> - print(e.message, file=sys.stderr)
> + print(str(e), file=sys.stderr)
> print(repr(e.line), file=sys.stderr)
>
> if not retry:
> @@ -596,7 +596,7 @@ class WaitProjectBusyAction(ClientAction):
> # code should be reworked as soon as it's clear what is going on
> # here
> except socket.error as e:
> - print(e.message, file=sys.stderr)
> + print(str(e), file=sys.stderr)
> print("socket error during wait busy occured, retry..",
> file=sys.stderr)
> continue
>
More information about the elbe-devel
mailing list