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. Relationships ------------- .. relationship:: dice.relationships.ContainedIn MISSING DESCRIPTION :parent: :relationship:`cloudify.relationships.contained_in` .. relationship:: dice.relationships.Needs MISSING DESCRIPTION :parent: :relationship:`cloudify.relationships.depends_on`