Assign attributes for rabbit/qpid image mq notification_topic

- Add default['openstack']['mq']['image']['notification_topic'] to
  messaging attributes.
- Add default['openstack']['mq']['image']['rabbit']['notification_topic'] to
  messaging attributes.
- Add default['openstack']['mq']['image']['qpid']['notification_topic'] to
  messaging attributes.

Change-Id: If410076d2d869831dfcb68c01e05c762f9d0b073
Partial-Bug: #1274879
Assign attributes for rabbit/qpid image mq notification_topic

- Add default['openstack']['mq']['block-storage']['notification_topic'] to
  messaging attributes.
- Add default['openstack']['mq']['block-storage']['rabbit']['notification_topic']
  to messaging attributes.
- Add default['openstack']['mq']['block-storage']['qpid']['notification_topic']
  to messaging attributes.

Change-Id: I7f7262abeb09171ab2bcaee67b70928b2a37c2d0
Partial-Bug: #1276099
Merge "Assign attributes for rabbit/qpid image mq notification_topic"
Add ceph_client recipe

To use RBD as a block-storage backend, both the compute workers and the
cinder-api service need to be able to talk to the Ceph cluster.

Nova-compute makes use of the `rbd` CLI tool, cinder-api and libvirt use
librbd's Python binding.  Therefore, it might make sense to have this
"common" recipe provide the necessary infrastructure to a) reach the
ceph cluster and b) install ceph packages if need be.

Besides block storage, RBD can also be used for storing images, so
that's another reason to put this into openstack-common.

This commit also introduces a template, "ceph.client.keyring.erb", to
allow the creation of client keys from other recipes in a DRY way:

    template '/etc/ceph/client.cinder.keyring' do
      template 'ceph.client.keyring.erb'
      cookbook 'openstack-common'
      owner node['openstack']['block-storage']['user']
      group node['openstack']['block-storage']['group']
      mode '600'
      variables(
        name: rbd_user,
        key: rbd_key
      )
    end

A LWRP for this would be an improvement, but this should do for now.

Implements: blueprint rbd-for-block-storage

Change-Id: Icd046830c9542bd71fa3a1857c1f4d1bb3c41cec
Merge "Assign attributes for rabbit/qpid image mq notification_topic"
Fix metering service endpoint path

After installing ceilometer with the metering cookbook, invoking the
ceilometer CLI fails because the API base URL used is
http://127.0.0.1:8777/v1/v2 which means that the base endpoint path of
/v1 is incorrect and it should be simply /.

Change-Id: Id65a17a888175c7b2fe2d3171147cedb66921cc9
Partial-Bug: #1277742
allow overriding all endpoint hosts with a single attribute

similar to the pattern in the messaging and database attributes, this is
a convenience change that allows you to set all endpoint host values to
something other than the default of 127.0.0.1, by only overriding a
single attribute in your environment.

Quite often one will want to set all endpoints to the same IP, for
example in the case where you are deploying a 'controller' node, and at
the moment every endpoint host attribute has to be overridden
individually.

All endpoint host attributes can still be overridden individually if
desired.

Change-Id: I7dd96f69c3eaa9156513663f08dafbddf1c1ffd8
Merge "Fix metering service endpoint path"
Merge "allow overriding all endpoint hosts with a single attribute"
Merge "Add ceph_client recipe"
Add default region inherited by other cookbooks.

- Allow all regions to be set by 1 attribute (but still be able to be
  overridden)
- Set default['openstack']['region'] to RegionOne

Change-Id: I15254d22bde3e2ae1291e8b37ce61f2b1d002440
Addresses: blueprint uniform-region
Adding ChefSpec::Coverage to spec_helper.rb

Addresses: blueprint lint-and-unit-testing-for-havana
Change-Id: I506ea5811950b5e445ba2eb7d1dc48fead847d0e
tighter control of mq attribute defaults

remove repetitive copy/paste blocks that are developing drift (eg., qpid
'reconnect' missing for compute, rabbit 'ha' missing for image, and
rabbit 'use_ssl' missing for network).

this provides more reliable assignment of defaults and better visibility
of the one-off tweaks (eg., notification_topics).

Change-Id: Iba6fd99de86ea5ce5afab1654c4bc7e7d32f3e51
Merge "Add default region inherited by other cookbooks."
Merge "Adding ChefSpec::Coverage to spec_helper.rb"
Changing to qpid does not set qpid attributes

The case statement needs to check the node's service_type, not the
default.  Checking the default will always result in the rabbitmq
attributes being set.

Change-Id: Iaa83d07c12b21037b60d938e7eb1b5f548777d2a
Closes-Bug: #1282528