All, Victor and I were kicking around the DB models a little more. The result was a further refinement/simplification for discussion.
1) Deployment is the top level thing. Basically, all the roles hang off the deployment (through the snapshot pointer). When a role has a prerequisite, that prerequisite is always resolved from within the deployment. The discussion image shows the role prereq chain in blue. 2) Each role is linked to a one (and only one) jig. That means it is very clear which jig owns the operation of any role and the inbound data values related to that role. The consequence of that design choice is that we may have "duplicate" roles that are implemented by different jigs. For example, the SQL barclamp could have roles for the Puppet and Chef jigs. While that seems redundant, it is much clearer and reduces a lot of ambiguity. It would be OK for a role tied to the Chef jig to have a Puppet jig role as a prereq; however, we expect that most roles will be chained within a single jig type. 3) The jig is responsible to updating the state of the node-role after any activity. Having roles tied to jigs makes that ownership very clear. Schema: https://github.com/crowbar/barclamp-crowbar/blob/master/doc/devguide/model/crowbar_model.png Example: https://github.com/crowbar/barclamp-crowbar/blob/master/doc/devguide/model/crowbar_model_discussion.png Remember: the node-role relationship is proposed as the core atomic unit in CB2 core. It's the action handle that's passed to a jig and also the place where state is updated. Overall, I feel like we're moving towards a model that is more explicit and direct than before. Our design objective is that Crowbar operations are more transparent and easier to track. Rob ______________________________ Rob Hirschfeld Distinguished Cloud Solution Architect Dell | Cloud Edge, Data Center Solutions blog robhirschfeld.com, twitter @zehicle Please note, I am based in the CENTRAL (-6) time zone
_______________________________________________ Crowbar mailing list [email protected] https://lists.us.dell.com/mailman/listinfo/crowbar For more information: http://crowbar.github.com/
