Property group
In heat resource plugins, properties are getting defined with validation schema and there is no group concept exist which is required for following reasons:
* some time, resource mandates to provide either PropertyA or PropertyB should be provided, and one of them is mandatory one for resource. This can't be defined now in heat, as developer can't set required=true for both the properties and as part of validate() method, developer should implement the logic whether one of these property is provided. Such a case occurs in many Resources. This can be over come by:
PropertyGroupA = {
required=true,
PropertyA= {},
PropertyB={},
validation: PropertyA OR PropertyB
}
Here 'validation' define binary operator among them. Like (A AND B) OR (A AND C) AND (B OR E).
PropertyGroup can have child PropertyGroup as well and 'validation' can operate on top of PropertyGroup.
* some of the Plugin supports multiple versions of its thing, for example, docker plugin supports multiple versions. so Some properties are only supported in some versions only. so PropertyGroup can be used with 'plugin_
PropertyGroupA = {
PropertyA = {}
PropertyB ={}
client_
}
Heat engine can infer that this set of properties in the PropertyGroups are supported only from 1.2 version. so it can check the current client_
Blueprint information
- Status:
- Not started
- Approver:
- None
- Priority:
- Medium
- Drafter:
- Kanagaraj Manickam
- Direction:
- Needs approval
- Assignee:
- None
- Definition:
- Pending Approval
- Series goal:
- None
- Implementation:
- Unknown
- Milestone target:
- None
- Started by
- Completed by
Related branches
Related bugs
Sprints
Whiteboard
Gerrit topic: https:/
Addressed by: https:/
Property Group
Addressed by: https:/
Fix milestone and new ideas to properties group
Addressed by: https:/
Implement Properties Group
Addressed by: https:/
Add operators for properties group
Addressed by: https:/
Add properties groups schema for Resource
Addressed by: https:/
Add properties_
Addressed by: https:/
Add versions resolving to properties groups
Addressed by: https:/
[WIP] Test more lightweight properties group
Addressed by: https:/
[WIP] Add properties group to doc generator
Addressed by: https:/
[WIP] Add properties group schema to resources
Addressed by: https:/
Initial PropertiesGroup implementation
Addressed by: https:/
Add props dependencies builder for PropertiesGroup
Addressed by: https:/
Add properties groups to doc generator
Addressed by: https:/
Add properties_
Addressed by: https:/
Add generic method to validate props relations
Addressed by: https:/
String representation of PropertiesGroup
Addressed by: https:/
Support PropertiesGroup validation in resources