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

dice.relationships.ContainedIn

MISSING DESCRIPTION

Parent:cloudify.relationships.contained_in
dice.relationships.Needs

MISSING DESCRIPTION

Parent:cloudify.relationships.depends_on