Add inspector rules to add system vendor to metadata, use to set bmc_type
This commit is contained in:
parent
35aab4e4fe
commit
c56d126ddc
15
ansible/filter_plugins/bmc_type.py
Normal file
15
ansible/filter_plugins/bmc_type.py
Normal file
@ -0,0 +1,15 @@
|
||||
def bmc_type_from_system_vendor(system_vendor):
|
||||
if not system_vendor:
|
||||
return None
|
||||
if system_vendor.get('manufacturer') == 'Dell Inc.':
|
||||
return 'idrac'
|
||||
return None
|
||||
|
||||
|
||||
class FilterModule(object):
|
||||
"""BMC type filters."""
|
||||
|
||||
def filters(self):
|
||||
return {
|
||||
'bmc_type_from_system_vendor': bmc_type_from_system_vendor,
|
||||
}
|
@ -207,6 +207,68 @@ inspector_rule_lldp_switch_port_desc_to_name:
|
||||
path: "name"
|
||||
value: "{data[all_interfaces][{{ inspector_rule_var_lldp_switch_port_interface }}][lldp_processed][switch_port_description]}"
|
||||
|
||||
# Ironic inspector rule to initialise system vendor data in the node's metadata.
|
||||
inspector_rule_save_system_vendor_init:
|
||||
description: "Intiialise system vendor data in Ironic node metadata"
|
||||
conditions:
|
||||
- field: "data://inventory.system_vendor"
|
||||
op: "is-empty"
|
||||
invert: True
|
||||
- field: "node://extra.system_vendor"
|
||||
op: "is-empty"
|
||||
actions:
|
||||
- action: "set-attribute"
|
||||
path: "extra/system_vendor"
|
||||
value: {}
|
||||
|
||||
# Ironic inspector rule to save system vendor manufacturer data in the node's
|
||||
# metadata.
|
||||
inspector_rule_save_system_vendor_manufacturer:
|
||||
description: "Save system vendor manufacturer data in Ironic node metadata"
|
||||
conditions:
|
||||
- field: "data://inventory.system_vendor"
|
||||
op: "is-empty"
|
||||
invert: True
|
||||
- field: "data://inventory.system_vendor.manufacturer"
|
||||
op: "is-empty"
|
||||
invert: True
|
||||
actions:
|
||||
- action: "set-attribute"
|
||||
path: "extra/system_vendor/manufacturer"
|
||||
value: "{data[inventory][system_vendor][manufacturer]}"
|
||||
|
||||
# Ironic inspector rule to save system vendor serial number in the node's
|
||||
# metadata.
|
||||
inspector_rule_save_system_vendor_serial_number:
|
||||
description: "Save system vendor serial number in Ironic node metadata"
|
||||
conditions:
|
||||
- field: "data://inventory.system_vendor"
|
||||
op: "is-empty"
|
||||
invert: True
|
||||
- field: "data://inventory.system_vendor.serial_number"
|
||||
op: "is-empty"
|
||||
invert: True
|
||||
actions:
|
||||
- action: "set-attribute"
|
||||
path: "extra/system_vendor/serial_number"
|
||||
value: "{data[inventory][system_vendor][serial_number]}"
|
||||
|
||||
# Ironic inspector rule to save system vendor product name in the node's
|
||||
# metadata.
|
||||
inspector_rule_save_system_vendor_product_name:
|
||||
description: "Save system vendor product name in Ironic node metadata"
|
||||
conditions:
|
||||
- field: "data://inventory.system_vendor"
|
||||
op: "is-empty"
|
||||
invert: True
|
||||
- field: "data://inventory.system_vendor.product_name"
|
||||
op: "is-empty"
|
||||
invert: True
|
||||
actions:
|
||||
- action: "set-attribute"
|
||||
path: "extra/system_vendor/product_name"
|
||||
value: "{data[inventory][system_vendor][product_name]}"
|
||||
|
||||
# Ironic inspector rule to save introspection data to the node.
|
||||
inspector_rule_save_data:
|
||||
description: "Save introspection data to Ironic node"
|
||||
@ -226,6 +288,10 @@ inspector_rules_default:
|
||||
- "{{ inspector_rule_root_hint_serial }}"
|
||||
- "{{ inspector_rule_set_pxe_interface_mac }}"
|
||||
- "{{ inspector_rule_lldp_switch_port_desc_to_name }}"
|
||||
- "{{ inspector_rule_save_system_vendor_init }}"
|
||||
- "{{ inspector_rule_save_system_vendor_manufacturer }}"
|
||||
- "{{ inspector_rule_save_system_vendor_serial_number }}"
|
||||
- "{{ inspector_rule_save_system_vendor_product_name }}"
|
||||
|
||||
# List of additional ironic inspector rules.
|
||||
inspector_rules_extra: []
|
||||
|
@ -30,6 +30,8 @@
|
||||
{% for host in ironic_inventory.baremetal.hosts %}
|
||||
{% set hostvars=ironic_inventory._meta.hostvars[host] %}
|
||||
{% set ipmi_address=hostvars.driver_info.ipmi_address | default %}
|
||||
{{ host }} ipmi_address={{ ipmi_address }}
|
||||
{% set system_vendor=hostvars.extra.system_vendor | default %}
|
||||
{% set bmc_type=system_vendor | bmc_type_from_system_vendor %}
|
||||
{{ host }} ipmi_address={{ ipmi_address }} bmc_type={{ bmc_type }}
|
||||
{% endfor %}
|
||||
dest: "{{ kayobe_config_path }}/inventory/controllers"
|
||||
|
Loading…
Reference in New Issue
Block a user