Merge "Make base class for data drivers more granular"
This commit is contained in:
commit
ddaa32235b
@ -29,22 +29,38 @@ class BaseDataDriver(object):
|
|||||||
def __init__(self, data):
|
def __init__(self, data):
|
||||||
self.data = copy.deepcopy(data)
|
self.data = copy.deepcopy(data)
|
||||||
|
|
||||||
|
|
||||||
|
@six.add_metaclass(abc.ABCMeta)
|
||||||
|
class PartitioningDataDriverMixin(object):
|
||||||
|
|
||||||
@abc.abstractproperty
|
@abc.abstractproperty
|
||||||
def partition_scheme(self):
|
def partition_scheme(self):
|
||||||
"""Retruns instance of PartionScheme object"""
|
"""Retruns instance of PartionScheme object"""
|
||||||
|
|
||||||
|
|
||||||
|
@six.add_metaclass(abc.ABCMeta)
|
||||||
|
class ProvisioningDataDriverMixin(object):
|
||||||
|
|
||||||
@abc.abstractproperty
|
@abc.abstractproperty
|
||||||
def image_scheme(self):
|
def image_scheme(self):
|
||||||
"""Returns instance of ImageScheme object"""
|
"""Returns instance of ImageScheme object"""
|
||||||
|
|
||||||
@abc.abstractproperty
|
|
||||||
def grub(self):
|
|
||||||
"""Returns instance of Grub object"""
|
|
||||||
|
|
||||||
@abc.abstractproperty
|
@abc.abstractproperty
|
||||||
def operating_system(self):
|
def operating_system(self):
|
||||||
"""Returns instance of OperatingSystem object"""
|
"""Returns instance of OperatingSystem object"""
|
||||||
|
|
||||||
|
|
||||||
|
@six.add_metaclass(abc.ABCMeta)
|
||||||
|
class ConfigDriveDataDriverMixin(object):
|
||||||
|
|
||||||
@abc.abstractproperty
|
@abc.abstractproperty
|
||||||
def configdrive_scheme(self):
|
def configdrive_scheme(self):
|
||||||
"""Returns instance of ConfigDriveScheme object"""
|
"""Returns instance of ConfigDriveScheme object"""
|
||||||
|
|
||||||
|
|
||||||
|
@six.add_metaclass(abc.ABCMeta)
|
||||||
|
class GrubBootloaderDataDriverMixin(object):
|
||||||
|
|
||||||
|
@abc.abstractproperty
|
||||||
|
def grub(self):
|
||||||
|
"""Returns instance of Grub object"""
|
||||||
|
@ -24,6 +24,10 @@ from six.moves.urllib.parse import urlsplit
|
|||||||
import yaml
|
import yaml
|
||||||
|
|
||||||
from bareon.drivers.base import BaseDataDriver
|
from bareon.drivers.base import BaseDataDriver
|
||||||
|
from bareon.drivers.base import ConfigDriveDataDriverMixin
|
||||||
|
from bareon.drivers.base import GrubBootloaderDataDriverMixin
|
||||||
|
from bareon.drivers.base import PartitioningDataDriverMixin
|
||||||
|
from bareon.drivers.base import ProvisioningDataDriverMixin
|
||||||
from bareon.drivers import ks_spaces_validator
|
from bareon.drivers import ks_spaces_validator
|
||||||
from bareon import errors
|
from bareon import errors
|
||||||
from bareon import objects
|
from bareon import objects
|
||||||
@ -71,7 +75,11 @@ def match_device(hu_disk, ks_disk):
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
class Nailgun(BaseDataDriver):
|
class Nailgun(BaseDataDriver,
|
||||||
|
PartitioningDataDriverMixin,
|
||||||
|
ProvisioningDataDriverMixin,
|
||||||
|
ConfigDriveDataDriverMixin,
|
||||||
|
GrubBootloaderDataDriverMixin):
|
||||||
"""Driver for parsing regular volumes metadata from Nailgun."""
|
"""Driver for parsing regular volumes metadata from Nailgun."""
|
||||||
|
|
||||||
def __init__(self, data):
|
def __init__(self, data):
|
||||||
@ -624,7 +632,10 @@ class Ironic(Nailgun):
|
|||||||
return super(Ironic, self).parse_partition_scheme()
|
return super(Ironic, self).parse_partition_scheme()
|
||||||
|
|
||||||
|
|
||||||
class NailgunBuildImage(BaseDataDriver):
|
class NailgunBuildImage(BaseDataDriver,
|
||||||
|
ProvisioningDataDriverMixin,
|
||||||
|
ConfigDriveDataDriverMixin,
|
||||||
|
GrubBootloaderDataDriverMixin):
|
||||||
|
|
||||||
# TODO(kozhukalov):
|
# TODO(kozhukalov):
|
||||||
# This list of packages is used by default only if another
|
# This list of packages is used by default only if another
|
||||||
|
Loading…
x
Reference in New Issue
Block a user