Merge pull request #512 from rhafer/pull-req-release-pebbles-master-137ce7e8cd78cc0ffe2196fc1c693585dff02813

https://github.com/crowbar/barclamp-crowbar/pull/512

Merged by devtool for VictorLowther
Add a third validation steps for proposal, after saving

With the current validation of proposals, all changes to the proposals
are lost. This is good for changes that are really destructive, but
annoying for changes that are easy to fix.

Therefore, this patch adds a validation step after the saving of the
proposal. This will be up to each barclamp to override this method.

https://bugzilla.novell.com/show_bug.cgi?id=776375
Change newlines in flash notice to <br/> in the html output
Ensure state is specified when transitioning
log at debugging level during development
No real change except ending config.ru with a newline

The missing newline is the reason why config.ru is changed by crowbar,
as the installed file is different from the one available as a resource
to chef. So just make the files the same.
Some improvements to the Nodes UI

* Don't show deallocate button on unallocated nodes (bnc#774665)
* Fix unintuitive 'Not set' pop-up
Avoid trailing comma in list of proposal dependencies
use secure ciphersuite and protocol (bnc#777095)
make sure to html_escape file to avoid XSS (bnc#771840)
Remove temporary lock files from git, to avoid accidentally packaging them.
improve proposal name consistency (bnc#774384)
debug applying roles and modification/(re)construction of run lists
Fix hung ssh when rebooting client nodes (bnc#779709)

The SSH reboot fallback (used if IPMI doesn't work when triggering
a client reinstall) would hang indefinitely, which blocked crowbar
rainbows processes.  Once you've triggered four reinstalls, all
four rainbows processes are stuck and crowbar becomes unresponsive.
This fix ensures ssh terminates immediately, by:

- Backgrounding and redirecting input and output of the spawned
  reboot command (this allows ssh to return immediately)
- Using ConnectTimeout=10, in case the network is down
- If all else fails, it's wrapped by timeout(1), which will ensure
  it's killed after a maximum of 20 seconds

Signed-off-by: Tim Serong <tserong@suse.com>

Conflicts:
	crowbar_framework/app/models/node_object.rb
Fix instance_selector helper

It was not possible to really use the instance selector (to select the
instance of a proposal) because:

 a) the generated javascript was broken (no quote)
 b) in some cases, we need to work on a nested attribute, in which case
    we didn't properly fetch the current value
 c) this was assuming that the name/id of the html tag is the same as
    the name of the attribute

https://bugzilla.novell.com/show_bug.cgi?id=780797
Use lock when transitioning barclamps (bnc#782526)

If several nodes are discovered simultaneously, barclamp transitions can
race, causing some nodes to not be added to some proposals.  Strictly
this fix probably belongs within the transition function of each
barclamp where necessary.  This should be handled better in Crowbar 2.0.

See also https://bugzilla.novell.com/show_bug.cgi?id=782526

Signed-off-by: Tim Serong <tserong@suse.com>
Don't log passwords in production mode
Warn if RoleObject::save() races (bnc#773041)

When saving roles, we look up the current revision number immediately
before the save, so see if a race has occurred.  If there was a race,
the new role is still saved, but a warning is logged, e.g.:

WARNING: revision race for role crowbar-d52-54-00-10-00-00_example_com
(previous revision 35)

    https://bugzilla.novell.com/show_bug.cgi?id=773041

Signed-off-by: Tim Serong <tserong@suse.com>