diff options
author | Joshua Harlow <harlowja@yahoo-inc.com> | 2012-06-07 13:50:38 -0700 |
---|---|---|
committer | Joshua Harlow <harlowja@yahoo-inc.com> | 2012-06-07 13:50:38 -0700 |
commit | c29abc03def42008c22df2f43fca3e43f62e3adb (patch) | |
tree | 1c3e3fcb2483d993f92682365f03dd1f74100c5a | |
parent | 8b71365df508dbcad52f7fb85ecf777e5cec324d (diff) | |
download | vyos-cloud-init-c29abc03def42008c22df2f43fca3e43f62e3adb.tar.gz vyos-cloud-init-c29abc03def42008c22df2f43fca3e43f62e3adb.zip |
Add a standard exception holding file.
-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 |