non-existent manifest not handled gracefully #127

Closed
opened 2021-11-20 13:24:22 +00:00 by ungleich-gitea · 2 comments

Created by: matthijskooijman

I just noticed that when you specify a non-existent manifest, this error is not handled gracefully (instead, two more exceptions happen during the error handling):

matthijs@grubby:~/docs/Meetjestad/Lorank/cdist$ ./bin/cdist config -v -i write-emmc beaglebone.local
INFO: beaglebone.local: Starting configuration run
Traceback (most recent call last):
  File "/home/matthijs/docs/Meetjestad/Lorank/cdist/cdist/config.py", line 409, in run
    self.manifest.run_initial_manifest(self.local.initial_manifest)
  File "/home/matthijs/docs/Meetjestad/Lorank/cdist/cdist/core/manifest.py", line 152, in run_initial_manifest
    raise NoInitialManifestError(initial_manifest, user_supplied)
cdist.core.manifest.NoInitialManifestError: 'Initial manifest missing: write-emmc'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/matthijs/docs/Meetjestad/Lorank/cdist/cdist/config.py", line 369, in onehost
    c.run()
  File "/home/matthijs/docs/Meetjestad/Lorank/cdist/cdist/config.py", line 414, in run
    stderr_path, e)
cdist.InitialManifestError: <exception str() failed>

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "./bin/../scripts/cdist", line 79, in <module>
    commandline()
  File "./bin/../scripts/cdist", line 56, in commandline
    args.func(args)
  File "/home/matthijs/docs/Meetjestad/Lorank/cdist/cdist/config.py", line 245, in commandline
    configuration=configuration)
  File "/home/matthijs/docs/Meetjestad/Lorank/cdist/cdist/config.py", line 373, in onehost
    log.error(e)
  File "/usr/lib/python3.5/logging/__init__.py", line 1309, in error
    self._log(ERROR, msg, args, **kwargs)
  File "/usr/lib/python3.5/logging/__init__.py", line 1416, in _log
    self.handle(record)
  File "/usr/lib/python3.5/logging/__init__.py", line 1425, in handle
    if (not self.disabled) and self.filter(record):
  File "/home/matthijs/docs/Meetjestad/Lorank/cdist/cdist/log.py", line 87, in filter
    record.msg = self.name + ": " + str(record.msg)
  File "/home/matthijs/docs/Meetjestad/Lorank/cdist/cdist/__init__.py", line 118, in __str__
    output.append(self.stderr + '\n')
  File "/home/matthijs/docs/Meetjestad/Lorank/cdist/cdist/__init__.py", line 100, in stderr
    if os.path.getsize(stderr_path) > 0:
  File "/usr/lib/python3.5/genericpath.py", line 50, in getsize
    return os.stat(filename).st_size
FileNotFoundError: [Errno 2] No such file or directory: '/tmp/tmpfi9ttov_/df657ea62e4feac5920bc989521e2e3e/data/stderr/init'
*Created by: matthijskooijman* I just noticed that when you specify a non-existent manifest, this error is not handled gracefully (instead, two more exceptions happen during the error handling): ``` matthijs@grubby:~/docs/Meetjestad/Lorank/cdist$ ./bin/cdist config -v -i write-emmc beaglebone.local INFO: beaglebone.local: Starting configuration run Traceback (most recent call last): File "/home/matthijs/docs/Meetjestad/Lorank/cdist/cdist/config.py", line 409, in run self.manifest.run_initial_manifest(self.local.initial_manifest) File "/home/matthijs/docs/Meetjestad/Lorank/cdist/cdist/core/manifest.py", line 152, in run_initial_manifest raise NoInitialManifestError(initial_manifest, user_supplied) cdist.core.manifest.NoInitialManifestError: 'Initial manifest missing: write-emmc' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/home/matthijs/docs/Meetjestad/Lorank/cdist/cdist/config.py", line 369, in onehost c.run() File "/home/matthijs/docs/Meetjestad/Lorank/cdist/cdist/config.py", line 414, in run stderr_path, e) cdist.InitialManifestError: <exception str() failed> During handling of the above exception, another exception occurred: Traceback (most recent call last): File "./bin/../scripts/cdist", line 79, in <module> commandline() File "./bin/../scripts/cdist", line 56, in commandline args.func(args) File "/home/matthijs/docs/Meetjestad/Lorank/cdist/cdist/config.py", line 245, in commandline configuration=configuration) File "/home/matthijs/docs/Meetjestad/Lorank/cdist/cdist/config.py", line 373, in onehost log.error(e) File "/usr/lib/python3.5/logging/__init__.py", line 1309, in error self._log(ERROR, msg, args, **kwargs) File "/usr/lib/python3.5/logging/__init__.py", line 1416, in _log self.handle(record) File "/usr/lib/python3.5/logging/__init__.py", line 1425, in handle if (not self.disabled) and self.filter(record): File "/home/matthijs/docs/Meetjestad/Lorank/cdist/cdist/log.py", line 87, in filter record.msg = self.name + ": " + str(record.msg) File "/home/matthijs/docs/Meetjestad/Lorank/cdist/cdist/__init__.py", line 118, in __str__ output.append(self.stderr + '\n') File "/home/matthijs/docs/Meetjestad/Lorank/cdist/cdist/__init__.py", line 100, in stderr if os.path.getsize(stderr_path) > 0: File "/usr/lib/python3.5/genericpath.py", line 50, in getsize return os.stat(filename).st_size FileNotFoundError: [Errno 2] No such file or directory: '/tmp/tmpfi9ttov_/df657ea62e4feac5920bc989521e2e3e/data/stderr/init' ```
Author
Owner

Created by: matthijskooijman

Looks good, thanks!

*Created by: matthijskooijman* Looks good, thanks!
Author
Owner

Created by: darko-poljak

@matthijskooijman Please check github.com/ungleich/cdist@3fb7e33305

*Created by: darko-poljak* @matthijskooijman Please check https://github.com/ungleich/cdist/commit/3fb7e33305f55875424ea8521b2ba2e3893b3793
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
ungleich-public/cdist#127
No description provided.