Basic types¶
This file contains basic definitions that are used across the library.
Reasons for duplication in node types definitions¶
Currently, there is no way of reparenting built-in cloudify types, so we basically need to define three base types:
- dice.LogicalNode: Equivalent of cloudify.nodes.Root.
- dice.SoftwareComponent: Equivalent of cloudify.nodes.SoftwareComponent.
- dice.chef.SoftwareComponent: Equivalent of cloudify.chef.nodes.SoftwareComponent.
All DICE base types have ‘configuration’ property that can hold arbitrary key-value pairs. Chef recipe can use contents of this property to perform additional customization of configuration.
Another addition to underlying types is ‘dice.interfaces.reconfiguration’ interface that contains ‘update_configuration’ and ‘reset’ operations. These operations will be used in the future in reconfiguration workflow. Default implementation of ‘update_configuration’ should be fine for most use cases. On the other hand, ‘reset’ operation is component dependent and thus must be provided by implementor.