Node-Attrib relationship work and tests [1/1] [1/1]

This pull changes the node-attribute relationship from a HABTM to a HasMany with Value.

NOTE: This was originally submitted as #313 but this pull includes change recommnded during review by Greg & Andi.

The basics of this relationship where in place but major object and API work was
needed to ensure that it functioned correctly.

There is still pending work so that you can set Values for Node Attibutes. This is mostly test work so 
I am pulling in work so others are not blocked by the change.

Most notably: we changed from "Attribute" to "Attrib" to avoid naming collisions. This caused a lot of changes, but they are mostly just naming.

That change along caused MAJOR code changes, but relatively little changed functionality.

I refactored BDD in several ways
1) all test notifications go through the logger (which is much cleaner)
2) created infrastructure for the "unless" and "skip" step types

Note: I am starting to stage work to move the docs as described on the list. This is only
at the very early stages but there are some related file additions to support this.This pull changes the node-attribute relationship from a HABTM to a HasMany with Value.

The basics of this relationship where in place but major object and API work was
needed to ensure that it functioned correctly.

There is still pending work so that you can set Values for Node Attibutes. This is mostly test work so 
I am pulling in work so others are not blocked by the change.

Most notably: we changed from "Attribute" to "Attrib" to avoid naming collisions.

That change along caused MAJOR code changes, but relatively little changed functionality.

I refactored BDD in several ways
1) all test notifications go through the logger (which is much cleaner)
2) created infrastructure for the "unless" step type (but this is not completely working yet)

Note: I am starting to stage work to move the docs as described on the list. This is only
at the very early stages but there are some related file additions to support this.


 crowbar_framework/BDD/attrib.erl                   |   90 +++++++
 crowbar_framework/BDD/attribute.erl                |   88 -------
 crowbar_framework/BDD/bdd.erl                      |  183 +++++++-------
 crowbar_framework/BDD/bdd_catchall.erl             |   21 +-
 crowbar_framework/BDD/bdd_restrat.erl              |   20 +-
 crowbar_framework/BDD/bdd_utils.erl                |  119 ++++++---
 crowbar_framework/BDD/crowbar.config               |    3 +-
 crowbar_framework/BDD/crowbar_rest.erl             |    6 +-
 crowbar_framework/BDD/default.config               |    3 +-
 crowbar_framework/BDD/dev.config                   |   18 +-
 crowbar_framework/BDD/dev.erl                      |   29 ++-
 crowbar_framework/BDD/eurl.erl                     |   26 +-
 crowbar_framework/BDD/features/attrib.feature      |   27 +++
 crowbar_framework/BDD/features/attribute.feature   |   27 ---
 .../BDD/features/authenticate.feature              |    3 +-
 crowbar_framework/BDD/features/node.feature        |   52 ++--
 crowbar_framework/BDD/features/scaffolds.feature   |   15 +-
 crowbar_framework/BDD/features/users.feature       |    6 +-
 crowbar_framework/BDD/node.erl                     |   68 +++---
 crowbar_framework/BDD/simple_auth.erl              |    2 +-
 .../app/controllers/crowbar_controller.rb          |   54 +++--
 .../app/controllers/nodes_controller.rb            |    6 +-
 .../controllers/scaffolds/attribs_controller.rb    |   19 ++
 .../controllers/scaffolds/attributes_controller.rb |   19 --
 .../scaffolds/cmdb_attributes_controller.rb        |   19 --
 crowbar_framework/app/models/attrib.rb             |   27 +++
 crowbar_framework/app/models/attribute.rb          |   26 --
 crowbar_framework/app/models/cmdb.rb               |    8 +-
 crowbar_framework/app/models/cmdb_attribute.rb     |   24 --
 crowbar_framework/app/models/cmdb_chef.rb          |    9 +-
 crowbar_framework/app/models/cmdb_event.rb         |    2 +-
 crowbar_framework/app/models/cmdb_test.rb          |   10 +
 crowbar_framework/app/models/node.rb               |   93 ++++----
 crowbar_framework/app/models/node_attrib.rb        |  138 +++++++++++
 crowbar_framework/app/models/node_attribute.rb     |   26 --
 crowbar_framework/app/views/nodes/_show.html.haml  |   24 +-
 crowbar_framework/config/locales/crowbar/en.yml    |   20 +-
 crowbar_framework/config/routes.rb                 |    3 +-
 .../db/migrate/20120730227000_create_attribs.rb    |   29 +++
 .../db/migrate/20120730227000_create_attributes.rb |   29 ---
 .../migrate/20120731225600_create_node_attribs.rb  |   35 +++
 .../20120731225600_create_node_attributes.rb       |   23 --
 .../20120801172648_create_cmdb_attributes.rb       |   31 ---
 .../db/migrate/20120801190200_scaffold_nav.rb      |    5 +-
 .../doc/default/crowbar/devguide/api/attrib.md     |  124 ++++++++++
 .../doc/default/crowbar/devguide/api/attribute.md  |  122 ----------
 .../default/crowbar/devguide/testing/bdd/dsl.md    |   12 +-
 .../crowbar/devguide/testing/bdd/internals.md      |   20 +-
 .../devguide/testing/bdd/internals/config.md       |   14 +-
 .../default/crowbar/devguide/testing/bdd/steps.md  |   32 ++-
 crowbar_framework/test/unit/attrib_model_test.rb   |   60 +++++
 .../test/unit/attribute_model_test.rb              |   60 -----
 .../test/unit/node_attrib_model_test.rb            |  252 ++++++++++++++++++++
 .../test/unit/node_attribute_model_test.rb         |   92 -------
 crowbar_framework/test/unit/node_model_test.rb     |   38 ++-
 55 files changed, 1382 insertions(+), 929 deletions(-)

Crowbar-Pull-ID: a824356a6f35e463b1ac11699d1d5c552c1f6729

Crowbar-Release: development