Driver Internal Info

https://blueprints.launchpad.net/ironic/+spec/driver-internal-info

Problem description

Driver should have its own infos which cannot manipulated by user/admin. These infos are not input from admin like driver_info and they may vary during the deployment process. They can only be used by driver itself.

One example is ipmitool. Not all IPMI firmware support set boot device persistent, so we need to save this locally.

Proposed change

  • Add a new internal attribute driver_internal_info in nodes table, which cannot modify by Admin/user by calling node.update API
  • Modify node.update to clear driver_internal_info when update driver via node.update API.

Alternatives

Saving these infos in a new table named driver_interal_info.

Data model impact

Add a new internal attribute driver_internal_info in node table. This field is a json dict.

REST API impact

The driver_internal_info field should be added to the node details API.

RPC API impact

None

Driver API impact

None

Nova driver impact

None

Security impact

None

Other end user impact

None

Scalability impact

None

Performance Impact

None

Other deployer impact

None

Developer impact

Other drivers should save their own infos into the new attribute.

Implementation

Assignee(s)

Primary assignee:
tan-lin-good

Work Items

  • Add driver_internal_info to the nodes table with a migration.
  • Update object Node.
  • Support clean a node’s driver_internal_infos when it changes its driver.
  • Update some drivers with this feature.

Dependencies

None

Testing

Add unit tests.

Upgrades and Backwards Compatibility

Add a migration script for DB.

Documentation Impact

Update the developer documentation.

References

None