summaryrefslogtreecommitdiff
path: root/cloudinit
diff options
context:
space:
mode:
Diffstat (limited to 'cloudinit')
-rw-r--r--cloudinit/sources/__init__.py5
-rw-r--r--cloudinit/user_data.py7
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()