Enable serving keystone from apache mod_wsgi

Serving keystone from a wsgi container is recommended for production
setups. SSL is enabled by default.

See the following URLs for explanations:
    http://adam.younglogic.com/2012/03/keystone-should-move-to-apache-httpd/
    https://etherpad.openstack.org/havana-keystone-performance

Documentation in manifests/wsgi/apache.pp

Apache can be configured as a drop in replacement for keystone (using
    ports 5000 & 35357) or with paths using the standard SSL port. See
examples in examples/apache_*.pp

- Also change some 'real_' prefix into '_real' suffix to respect the
coding guide.
- Added the '--insecure' option to keystone client in the provider to
allow using self-signed certificates.
- Fixed parsing the ssl/enable value in the provider.

There is no integer verification done in the manifests
and to get around a bug in rspec, which has been fixed
in https://github.com/rodjek/rspec-puppet/pull/107,
certain parameters that should be integer are treated as
strings

files/httpd/keystone.py updated with lastest from keystone git repo

Change-Id: Ide8c090d105c1ea75a14939f5e8ddb7d24ca3f1c

Conflicts:
	examples/apache_dropin.pp
	examples/apache_with_paths.pp
Updated endpoints to support paths and ssl

- Add {public,admin,internal}_url parameters to override other
  {public,admin,internal}_ parameters.
- Also change some 'real_' prefix into '_real' suffix to respect the
coding guide.
- Fixed parsing the ssl/enable value in the provider.
- Update examples

Change-Id: I78d2695eb5cb1287538afe154668da9fe23e62a3
Update gitignore file

Change-Id: I3834c086cda5a9701e9ce29734c4cdcd4d58c5d5
Introduce public_url, internal_url and admin_url

This change deprecates the following parameters:
- public_protocol (replaced by public_url)
- public_address (replaced by public_url)
- public_port (replaced by public_url)
- internal_address (replaced by internal_url)
- internal_port (replaced by internal_url)
- admin_address (replaced by admin_url)
- admin_port (replaced by admin_url)

Add deprecation warnings if any of those values are provided
while maintaining full backward compatibility.

Closes-bug: #1274979
Change-Id: If5b0ae003726c5a99b3a2e22b2aafe1a178bb170
Allow binding apache to a specific IP address

Add a 'bind_host' parameter to keystone::wsgi::apache to allow binding
to a specific IP address.

Fixes Bug #1273697

Change-Id: I4e94336c15132900dbe42052e46d0c7f2e36f91f
ensure log_file is absent when using syslog

When using syslog, we don't need to write in keystone.log file, so
log_file param should be absent to avoid any write in the file.

Example: run keystone-manage db_sync will write in ~/keystone.log
instead of /var/log/syslog.

Closes-bug #1292619
Signed-off-by: Emilien Macchi <emilien.macchi@enovance.com>
Change-Id: I9b2613294625f3df27a70f45bd964688a425c88e

Conflicts:
	spec/classes/keystone_spec.rb
Add support for puppetlabs-mysql 2.2

Puppetlabs-mysql has been rewritten to be much
cleaner. This patch adds a new parameter for the
keystone mysql and init classes allowing users to
use the new version. Previous behavior will continue
as normal when using the old version (0.9)

Change-Id: Idf7c46d9aab8db7cca7d8377431c60b24ae4c9c6
Closes-bug: #1266241
Add notification related params

This patch is aim to add notification and rabbit related params
in keystone class to manage configuration of notification options in keystone.

Closes-bug: #1280071

Change-Id: I8a999a85666c905571f5d8d2b9262e03d38adff0

Conflicts:
	manifests/init.pp
Full support for Keystone LDAP integration

Adding full support for integrating Keystone via LDAP. Enables
support for managing all LDAP related Keystone options.

 - Add two examples of LDAP configuration, although LDAP environments
   are highly variable, these will help get everyone started
 - Modify the keystone::ldap class to support all LDAP related options
 - Check sane defaults in the keystone::ldap class to hopefully reduce mistakes
 - Add a dependency on the python-ldap package
 - Modify the LDAP test to match the new class
 - Make the default-tenant optional since some LDAP backends do not
   support this

Change-Id: Ie6879eb4816fd2b906f72cac8deb3b62bd4b2430
Fixing several errors in the LDAP module

 - The same attribute was mistakenly written to incorrect fields
 - A few tenant_ attributes were missing
 - The test was incomplete
 - The tenant_mail_attribute was mistakenly included, it doesn't exist

Change-Id: I57a05bce9b9246036f586bc80bc0b0c7f8b4694a
fixed example for native type keystone_service

Change-Id: I8d16dd278a8b3f0327ceaa7b32d7f87fe904c4cb
add template_file parameter to specify catalog

this lets you set the catalog to use when catalog_type
is set to 'template'.
Also added some tests according to catalog settings.

Change-Id: I48c3b903ceafe94f2ec31b49d617e5a9951de7f9

Conflicts:
	manifests/init.pp
fix typo in comment.

Change-Id: Ib29af18fa902faad17e7d1ab690ebb95b0858904
Fixed database service resource

Version 2.2+ of the puppetlabs-mysql moudule starts the MySQL database
with the Service resource name mysqld [1]. The puppet-keystone module
lists a requirement for a Service resource with name mysql. This will
lead to an undefined resource error.

This patch corrects the dependency.

[1] https://github.com/puppetlabs/puppetlabs-mysql/blob/master/manifests/server/service.pp#L15

Change-Id: I2165b2c0529c0ecd9e9ba9853f3d15d5f86b0135