remove default=None for config options

In the cfg module default=None is set as the default value.

Change-Id: Idb78d3e25c79aba0d74fdd747efe2e17b6faa129
Closes-Bug: #1323975
Check that personality is provided before iterating

Change-Id: I3453dee8ce3ec1fd7fba9de16c82f9a6788a7be2
Closes-Bug: #1324619
Remove optional imports from clients.py

Why:
- These are in the requirements
- Heat is now well down the path of been a part of the integrated release
- All of the above clients are also integrated.
- If someone wants to use heat on an old OpenStack they still can
  as long as they install the required recent client libraries,
  which are backwards compatible with older OpenStack releases.

Change-Id: I39d7dcbd3e5655d3da1c97de5ff7eceb1826d4ea
Fixes-bug: #1174005
Implement caching of resource attributes

The default caching mode cache_local will return the previously
resolved value if it is available.

Whenever any resource changes state, all resource attribute caches
are cleared just in case the state change has side-effects in
other resources.

The caching mode cache_none performs no caching, and is chosen
for attributes which are one of the following:
* Derived from any resource's metadata, resource data or resource_id
* An API call which returns a secret

Caching currently only exists for the duration of the parser.Stack
object, but there is future potential for a caching mode which
caches attributes spanning multiple requests.

Closes-Bug: #1321970

Change-Id: I01bf2983b726f0e81a2b8d5be94627353bdeb406
Use entry points for config generation

This starts using entry points to generate configuration for the
common.config and the common.wsgi modules, as they use entries with the
same name in different groups.
This also removes configuration for sslutils which is unused, and
re-enable the check for up-to-date configuration.

Co-Authored-By: ala.rezmerita@cloudwatt.com
Closes-Bug: #1288586
Change-Id: If48c62bbb2b1fb641791dad56f7f905e483080fa
Move Engine initialization into service start()

Currently we create the ThreadGroupManager and EngineListener
objects in the service constructor, which is not necessarily
going to work if multiple worker processes are specified in
the config file (which fork multiple workers after the constructor).

The ThreadGroupManager appears to work, even when it is created before
the fork, but this is due to some magic in the oslo ProcessLauncher
implementation which decouples parent/child use of the eventlet hub.

So instead, we move all service startup code into the start() method,
which is the entry point for services, triggered via the oslo Services
class run_service method:

- Don't create anything common to the workers in the constructor
- Move ThreadGroup and EngineListener creation into start()
- Create the periodic tasks from bin/heat-engine, which means
  the periodic tasks will only be created by the parent, not
  duplicated in every worker process.

These changes should mean we work correctly with both the ServiceLauncher
(num_engine_workers==1) and ProcessLauncher(num_engine_workers>1) oslo
abstractions, and solves the issues observed when running multiple
workers with the impl_qpid rpc_backend.

Change-Id: If3a11050a03660560a364dec871f85c4b56c1c25
Closes-Bug: #1321303
Include parameter name in error message

Including parameter name in StackValidationFailed exception
message.

Change-Id: I9d8f4e4a1986496d9be96f0e2a272cbc4da92b49
Closes-Bug: #1324968
Adding error message for output description

All caught exceptions should be displayed in output section.

Change-Id: I217bb52e33c3f0d20c3d01e75326687cc713d90a
Related-Bug: #1273490
Fix spelling in a doc string

Change-Id: I7f09cfd7892fce64c99484a36b22ec6a6bada6b1
Don't log entire template

In the engine, we log the entire template at info level
It's probably better, and more secure, to just log a message
saying the create/update is happening.

Change-Id: I6490656e0b6737c34f6a5abb36aa736946a7a44c
Implement resize of Cinder volumes

This patch adds update capabilities to volume size.
The new size must be bigger than old one (as supported by Cinder).
If the volume is attached, it is first detached, then resized and
attached again to the same mount on the same server.

Known limitations:
user has to care for herself about (un)mounting the volume
from within the instance OS and resizing the file system after
resizing the volume.

Change-Id: I7c54b18eb865d0786ec5e3f50c92aeabdaa80a64
Implements: blueprint update-cinder-volume
Fix physical_resource_name for Nova server

This patch fixes the problem caused by the overridden
physical_resource_name() in OS::Nova::Server resource.  If the name
assigned to the Server resource is used for Keystone user creation,
there is a higher possibility of name conflicts.

Change-Id: I5eff496aef8949db9c1f9865e8de33d2b58c7a7f
Closes-Bug: #1324499
Ensure routing key is specified in the address for a direct producer

This change is already merged in oslo-incubator.  Original commit
message body includes:

    Porting this fix from oslo.messaging.  This fixes the impl_qpid.py
    driver to allow it to work with the latest stable upstream QPID broker
    (version 0.28).  See the Apache Qpid Jira bug
    https://issues.apache.org/jira/browse/QPID-5557

Change-Id: If71f78e50f8a9b3acfd1e9d02c8271f17c4ebee7
Related-Bug: #1300318
Add OS::Glance::Image resource

Add OS::Glance::Image resource.
Implements: blueprint glance-image

Change-Id: If0b5f322da758973d6b47f9ca6888fef40f92f45
Use auth_token_info to initialize heat_keystoneclient sessions

Now we have the token info available in the request context, we can
avoid always re-requesting another token every time a client is
created.

This should be better for performance as it avoids one extra request to
keystone, and it also enables trust-scoped tokens to be more easily
used, since these cannot be used to request another token, thus
authentication will fail with the current scheme.

Partial-Bug: #1317293
Change-Id: I18955d79c4c760ff3fdd47176a2a54c931277121
Merge "Use entry points for config generation"
Merge "Adding error message for output description"
Merge "Fix physical_resource_name for Nova server"
Merge "Implement resize of Cinder volumes"
Merge "remove default=None for config options"