Add attributes for base_os and kernel selection and custom kernel

params to HostProfile

Add attribute for defining the primary interface (i.e. default
route) for a node.
This commit is contained in:
Scott Hussey 2017-05-05 10:30:21 -05:00
parent 7760769b25
commit 595f3d9fc3

View File

@ -48,6 +48,9 @@ class HostProfile(base.DrydockPersistentObject, base.DrydockObject):
'tags': obj_fields.ListOfStringsField(nullable=True),
'owner_data': obj_fields.DictOfStringsField(nullable=True),
'rack': obj_fields.StringField(nullable=True),
'base_os': obj_fields.StringField(nullable=True),
'kernel': obj_fields.StringField(nullable=True),
'kernel_params': obj_fields.StringField(nullable=True),
}
def __init__(self, **kwargs):
@ -87,10 +90,10 @@ class HostProfile(base.DrydockPersistentObject, base.DrydockObject):
# First compute inheritance for simple fields
inheritable_field_list = [
"hardware_profile", "oob_type", "oob_network",
"oob_credential", "oob_account", "storage_layout",
"bootdisk_device", "bootdisk_root_size", "bootdisk_boot_size",
"rack"]
'hardware_profile', 'oob_type', 'oob_network',
'oob_credential', 'oob_account', 'storage_layout',
'bootdisk_device', 'bootdisk_root_size', 'bootdisk_boot_size',
'rack', 'base_os', 'kernel', 'kernel_params']
# Create applied data from self design values and parent
# applied values
@ -131,6 +134,7 @@ class HostInterface(base.DrydockObject):
fields = {
'device_name': obj_fields.StringField(),
'primary_network': obj_fields.BooleanField(nullable=False, default=False),
'source': hd_fields.ModelSourceField(),
'network_link': obj_fields.StringField(nullable=True),
'hardware_slaves': obj_fields.ListOfStringsField(nullable=True),
@ -208,6 +212,11 @@ class HostInterface(base.DrydockObject):
elif j.get_name() == parent_name:
m = objects.HostInterface()
m.device_name = j.get_name()
m.primary_network =
objects.Util.apply_field_inheritance(
getattr(j, 'primary_network', None),
getattr(i, 'primary_network', None))
m.network_link = \
objects.Utils.apply_field_inheritance(
getattr(j, 'network_link', None),