crowbar/barclamp-crowbar — pull request #756 by VictorLowther (2013-11-02 08:54:02+00:00)
Title: Update role binding logic to facilitate running a real workload on Crowbar 2.0 [1/8]

Fix up role logic to help support Ceph
* Add utility roles that other roles can easily depend on to tell when a
node is in certian states. Currently, these are:
* crowbar-managed-node, which indicates that a node has completed the
initial discovery process,
* crowbar-admin-node, which indicates that the admin node is alive and
ready to manage other nodes, and
* crowbar-installed-node, which indicates that the node has an
operating system installed and is ready to have a workload deployed on
it.
* Add on_deployemnt_create and on_deployment_delete hooks to the role
model. These are called whenever a deployment role is created or
destroyed to allow roles to preseed deployment-specific values. They
are currently used by the Ceph barclamp to randomly generate unique
fsid and monitor secrets..
* Add a cluster flag and accompaining logic to roles. When a role has
the cluster flag set, add_to_node_in_snapshot will ensure that all of
the noderoles created as children of any noderoles created for
noderoles with the cluster flag are fully connected -- all the
children will depend on all the parents. This is used to ensure that
no child noderole will start deploying until all of its parents have
completed their deploys.
* Modified add_to_node_in_snapshot to recursively create all parent
noderoles, instead of only doing so with implicit noderoles.
* Modify how we queue roles up for delayed_jobs to be a little more
stable.

crowbar.yml | 28 ++++-
crowbar_framework/app/models/barclamp.rb | 3 +-
crowbar_framework/app/models/deployment_role.rb | 12 ++
crowbar_framework/app/models/node.rb | 8 +-
crowbar_framework/app/models/node_role.rb | 17 ++-
crowbar_framework/app/models/role.rb | 140 +++++++++++----------
crowbar_framework/app/models/run.rb | 8 +-
.../db/migrate/20120731225510_create_roles.rb | 7 +-
8 files changed, 151 insertions(+), 72 deletions(-)

Crowbar-Pull-ID: f28b0c0c0dce9879a7994eaa07e17b3068198e63

Crowbar-Release: development