+++ /dev/null
-"""Exceptions for the web interface."""
-
-from sipb_xen_database import Machine
-
-class MyException(Exception):
- """Base class for my exceptions"""
- pass
-
-class InvalidInput(MyException):
- """Exception for user-provided input is invalid but maybe in good faith.
-
- This would include setting memory to negative (which might be a
- typo) but not setting an invalid boot CD (which requires bypassing
- the select box).
- """
- def __init__(self, err_field, err_value, expl=None):
- MyException.__init__(self, expl)
- self.err_field = err_field
- self.err_value = err_value
-
-class CodeError(MyException):
- """Exception for internal errors or bad faith input."""
- pass
-
-import controls
-
-class Global(object):
- """Global state of the system, to avoid duplicate remctls to get state"""
- def __init__(self, user):
- self.user = user
-
- def __get_uptimes(self):
- if not hasattr(self, '_uptimes'):
- self._uptimes = controls.getUptimes(Machine.select())
- return self._uptimes
- uptimes = property(__get_uptimes)
-
- def clear(self):
- """Clear the state so future accesses reload it."""
- for attr in ('_uptimes', ):
- if hasattr(self, attr):
- delattr(self, attr)
-
-g = Global(None)