diff options
Diffstat (limited to 'cloudinit')
-rw-r--r-- | cloudinit/exceptions.py | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/cloudinit/exceptions.py b/cloudinit/exceptions.py new file mode 100644 index 00000000..235ded7a --- /dev/null +++ b/cloudinit/exceptions.py @@ -0,0 +1,62 @@ +# vim: tabstop=4 shiftwidth=4 softtabstop=4 + + +class ProcessExecutionError(IOError): + + message_tmpl = ('%(description)s\nCommand: %(cmd)s\n' + 'Exit code: %(exit_code)s\nStdout: %(stdout)r\n' + 'Stderr: %(stderr)r') + + def __init__(self, stdout=None, stderr=None, + exit_code=None, cmd=None, + description=None, reason=None): + if not cmd: + self.cmd = '-' + else: + self.cmd = cmd + + if not description: + self.description = 'Unexpected error while running command.' + else: + self.description = description + + if not isinstance(exit_code, (long, int)): + self.exit_code = '-' + else: + self.exit_code = exit_code + + if not stderr: + self.stderr = '' + else: + self.stderr = stderr + + if not stdout: + self.stdout = '' + else: + self.stdout = stdout + + message = self.message_tmpl % { + 'description': self.description, + 'cmd': self.cmd, + 'exit_code': self.exit_code, + 'stdout': self.stdout, + 'stderr': self.stderr, + } + IOError.__init__(self, message) + self.reason = reason + + +class MountFailedError(Exception): + pass + + +class StackExceeded(Exception): + pass + + +class RecursiveInclude(Exception): + pass + + +class DataSourceNotFoundException(Exception): + pass |