diff options
-rw-r--r-- | cloudinit/sources/__init__.py | 5 | ||||
-rw-r--r-- | cloudinit/user_data.py | 7 |
2 files changed, 11 insertions, 1 deletions
diff --git a/cloudinit/sources/__init__.py b/cloudinit/sources/__init__.py index 55900119..46350255 100644 --- a/cloudinit/sources/__init__.py +++ b/cloudinit/sources/__init__.py @@ -20,6 +20,8 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. +import abc + from cloudinit import importer from cloudinit import log as logging from cloudinit import user_data as ud @@ -37,6 +39,9 @@ class DataSourceNotFoundException(Exception): class DataSource(object): + + __metaclass__ = abc.ABCMeta + def __init__(self, sys_cfg, distro, paths): self.sys_cfg = sys_cfg self.distro = distro diff --git a/cloudinit/user_data.py b/cloudinit/user_data.py index f64a1707..28c9f2ce 100644 --- a/cloudinit/user_data.py +++ b/cloudinit/user_data.py @@ -20,7 +20,7 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. - +import abc import os import email @@ -233,6 +233,9 @@ class UserDataProcessor(object): class PartHandler(object): + + __metaclass__ = abc.ABCMeta + def __init__(self, frequency, version=2): self.handler_version = version self.frequency = frequency @@ -240,12 +243,14 @@ class PartHandler(object): def __repr__(self): return "%s: [%s]" % (util.obj_name(self), self.list_types()) + @abc.abstractmethod def list_types(self): raise NotImplementedError() def handle_part(self, data, ctype, filename, payload, frequency): return self._handle_part(data, ctype, filename, payload, frequency) + @abc.abstractmethod def _handle_part(self, data, ctype, filename, payload, frequency): raise NotImplementedError() |