COSMOS Design 260720
Associate properties in SDD topology with resource properties for resolution
This is the design document for bugzilla 2607320.
|Jeff Hamm||January 22, 2009|
|Process||Sizing||Names of people doing the work|
|Design||2||Jeff Hamm, Brad Beck|
|Build and infrastructure||0|
|Code review, etc.*||1|
'* - includes other committer work (e.g. check-in, contribution tracking)
This enhancement will provide a basic implementation of the Change Resolver. The Change Resolver module is responsible for managing the resolution of a SDD as loaded by the Change Analyzer. It implements the multiple paths that must be taken when performing resolution which may result in multiple passes of resolution. In a SDD, the requirements and conditions that are defined and need to be resolved are directly associated with the resources defined in the topology.
- The Change Resolver must interface with the Change Analyzer and leverage the data model of the SDD.
- The Change Resolver must be able to load and run the appropriate resolver tasks as needed.
- The Change Resolver will provide a model of the status of resolution after being run.
- The Change Resolver must be able to make multiple passes at the SDD model provided by the Change Analyzer.
- The Change Resolver must keep an aggregation of the results of resolution when making multiple passes.
- The "ChangeResolver" class implements the base execution of resolution. When called, it accesses the data for the SDD model from the ChangeResolver module. Using this data, the ChangeResolver uses a collection of classes known as "Walkers" to traverse the various high level components of the SDD.
- The "TopologyWalker" class is responsible for traversing the topology section of the SDD. Each identified resource or hosted resource is collected in a model maintained by the ChangeResolver class.
- The TopologyWaker maintains the model of what variables and requirements are resolved for each topology entry.
- The class is responsible for providing the model to external classes.
- The class queries the model for requirements and variables that may have been resolved so that during multiple passes resources that have already been resolved do not have to be resolved again.
- The "InstallableUnitWalker" class is responsible for traversing the installable unit section of the SDD. The installable unit section defines the variable and requirements that must be satisfied by the the resolvers.
- As the InstallableUnitWalker discovers variables and requirements defined, it leverages various classes that know how to handle each.
- The full implementation of the SDD is a large task. This implementation does not address every possible type that may be defined in a SDD. This first implementation will resolve the following types
- Hosted Resource
- Conditional Variables
Impacts of this enhancement
- This implementation will provide a basic framework for resolving a simple CL1 SDD xml.