crowbar/barclamp-crowbar — pull request #710 by VictorLowther (2013-10-03 03:31:53+00:00)
Title: Fully bootstrap nodes into Sledgehammer [1/7]

This pull request series fixes a bunch of bugs that were keeping the
Crowbar admin node from bootstrapping all of the discovery roles in
Sledgehammer.

* Fixed several race conditions caused by noderoles being marked as
ACTIVE before all their wall data had been written and saved. Jigs
wait until the very last instant before marking a noderole as
ACTIVE.
* Stop trying to install packages in bootstrap roles if the executable
we need is already present on the system.
* Tune the role binding logic to make better choices when picking
parent noderoles. Role.add_to_node_in_snapshot should make better
binding choices -- in particular, it will always handle the implicit
flag properly, and it will respect the overall ordering of noderoles
imposed by the deployment tree instad of jsut looking on the current
node and then on all the nodes.
* Shift to not sharing attribute information amongst noderoles by
default. The annealer used to just smash all of the attributes in
all of the parent noderoles together to determine what would be fed
to the jig when adding a new noderole to a jig -- this led to
unintended intermittent information leakage between nodes. Now,
roles that should share information with their children must have a
server flag in the appropriate crowbar.yml. The annealer now only
considers attributes from active or transitioning noderoles on the
same system + active noderoles that are parents of the noderoles on
the system. This is intended as a stopgap measure until we get
around to formalizing attributes on a per-role basis.

crowbar_framework/app/models/barclamp.rb | 28 +-
.../app/models/barclamp_crowbar/jig.rb | 5 +-
crowbar_framework/app/models/node.rb | 37 +-
crowbar_framework/app/models/node_role.rb | 946 +++++++++++----------
crowbar_framework/app/models/role.rb | 67 +-
.../db/migrate/20120731225510_create_roles.rb | 15 +-
etc/init.d/crowbar | 2 -
7 files changed, 570 insertions(+), 530 deletions(-)

Crowbar-Pull-ID: adf59d76e7c4525496432dae4e35f36b067b56c2

Crowbar-Release: development