Move promenade config into the design context
This commit is contained in:
parent
ef2a1d597a
commit
3fcf90f8c7
@ -115,7 +115,7 @@ class Ingester(object):
|
|||||||
elif type(m) is node.BaremetalNode:
|
elif type(m) is node.BaremetalNode:
|
||||||
design_data.add_baremetal_node(m)
|
design_data.add_baremetal_node(m)
|
||||||
elif type(m) is prom.PromenadeConfig:
|
elif type(m) is prom.PromenadeConfig:
|
||||||
design_state.post_promenade_part(m)
|
design_data.add_promenade_config(m)
|
||||||
design_state.put_design(design_data)
|
design_state.put_design(design_data)
|
||||||
return design_items
|
return design_items
|
||||||
else:
|
else:
|
||||||
|
@ -28,6 +28,7 @@ def register_all():
|
|||||||
__import__('drydock_provisioner.objects.hostprofile')
|
__import__('drydock_provisioner.objects.hostprofile')
|
||||||
__import__('drydock_provisioner.objects.hwprofile')
|
__import__('drydock_provisioner.objects.hwprofile')
|
||||||
__import__('drydock_provisioner.objects.site')
|
__import__('drydock_provisioner.objects.site')
|
||||||
|
__import__('drydock_provisioner.objects.promenade')
|
||||||
|
|
||||||
# Utility class for calculating inheritance
|
# Utility class for calculating inheritance
|
||||||
|
|
||||||
|
@ -12,8 +12,6 @@
|
|||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
#
|
#
|
||||||
from copy import deepcopy
|
|
||||||
|
|
||||||
from oslo_versionedobjects import fields as ovo_fields
|
from oslo_versionedobjects import fields as ovo_fields
|
||||||
|
|
||||||
import drydock_provisioner.objects as objects
|
import drydock_provisioner.objects as objects
|
||||||
@ -43,3 +41,22 @@ class PromenadeConfig(base.DrydockPersistentObject, base.DrydockObject):
|
|||||||
|
|
||||||
def get_name(self):
|
def get_name(self):
|
||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
|
@base.DrydockObjectRegistry.register
|
||||||
|
class PromenadeConfigList(base.DrydockObjectListBase, base.DrydockObject):
|
||||||
|
|
||||||
|
VERSION = '1.0'
|
||||||
|
|
||||||
|
fields = {
|
||||||
|
'objects': ovo_fields.ListOfObjectsField('PromenadeConfig'),
|
||||||
|
}
|
||||||
|
|
||||||
|
def select_for_target(target):
|
||||||
|
"""
|
||||||
|
Select all promenade configs destined for the target
|
||||||
|
|
||||||
|
:param string target: Target to search documents for
|
||||||
|
"""
|
||||||
|
|
||||||
|
return [x for x in self.objects if x.target == target]
|
||||||
|
|
||||||
|
@ -126,6 +126,7 @@ class SiteDesign(base.DrydockPersistentObject, base.DrydockObject):
|
|||||||
'host_profiles': ovo_fields.ObjectField('HostProfileList', nullable=True),
|
'host_profiles': ovo_fields.ObjectField('HostProfileList', nullable=True),
|
||||||
'hardware_profiles': ovo_fields.ObjectField('HardwareProfileList', nullable=True),
|
'hardware_profiles': ovo_fields.ObjectField('HardwareProfileList', nullable=True),
|
||||||
'baremetal_nodes': ovo_fields.ObjectField('BaremetalNodeList', nullable=True),
|
'baremetal_nodes': ovo_fields.ObjectField('BaremetalNodeList', nullable=True),
|
||||||
|
'prom_configs': ovo_fields.ObjectField('PromenadeConfigList', nullable=True),
|
||||||
}
|
}
|
||||||
|
|
||||||
def __init__(self, **kwargs):
|
def __init__(self, **kwargs):
|
||||||
@ -231,6 +232,23 @@ class SiteDesign(base.DrydockPersistentObject, base.DrydockObject):
|
|||||||
raise DesignError("BaremetalNode %s not found in design state"
|
raise DesignError("BaremetalNode %s not found in design state"
|
||||||
% node_key)
|
% node_key)
|
||||||
|
|
||||||
|
def add_promenade_config(self, prom_conf):
|
||||||
|
if self.prom_configs is None:
|
||||||
|
self.prom_configs = objects.PromenadeConfigList()
|
||||||
|
|
||||||
|
self.prom_configs.append(prom_conf)
|
||||||
|
|
||||||
|
def get_promenade_configs(self):
|
||||||
|
return self.prom_configs
|
||||||
|
|
||||||
|
def get_promenade_config(self, target_list):
|
||||||
|
targeted_docs = []
|
||||||
|
|
||||||
|
for t in target_list:
|
||||||
|
targeted_docs.extend(self.prom_configs.select_for_target(t))
|
||||||
|
|
||||||
|
return targeted_docs
|
||||||
|
|
||||||
def create(self, ctx, state_manager):
|
def create(self, ctx, state_manager):
|
||||||
self.created_at = datetime.datetime.now()
|
self.created_at = datetime.datetime.now()
|
||||||
self.created_by = ctx.user
|
self.created_by = ctx.user
|
||||||
|
Loading…
x
Reference in New Issue
Block a user