summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Harlow <harlowja@yahoo-inc.com>2012-06-07 13:50:38 -0700
committerJoshua Harlow <harlowja@yahoo-inc.com>2012-06-07 13:50:38 -0700
commitc29abc03def42008c22df2f43fca3e43f62e3adb (patch)
tree1c3e3fcb2483d993f92682365f03dd1f74100c5a
parent8b71365df508dbcad52f7fb85ecf777e5cec324d (diff)
downloadvyos-cloud-init-c29abc03def42008c22df2f43fca3e43f62e3adb.tar.gz
vyos-cloud-init-c29abc03def42008c22df2f43fca3e43f62e3adb.zip
Add a standard exception holding file.
-rw-r--r--cloudinit/exceptions.py62
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