Add the ability to consume FakeKeystoneClient class as a client
module. This avoids extra dependencies on the Python mox/mox3
libraries at runtime and allows the end user to wire in the
custom class by simply making the following config setting:
keystone_backend = heat.engine.clients.os.keystone.fake_keystoneclient.FakeKeystoneClient
This use case for this is the TripleO undercloud installer which
uses a heat-all process to transform heat templates into Ansible
playbooks. Previously we leveraged a "fake_keystone" service
as multiple applications and binaries required keystone dependencies.
(Both Heat, os-collect-config, and some openstackclients wanted
a fully version of keystone running)
Now that we've streamlined these dependencies allowing heat to use
a fake KeystoneClient library shim instead of the full fake_keystone
process is much lighter and avoids the security concerns of the extra
socket. This patch allows us to do all of this without installing extra
test time dependencies on mox/mox3.
Adds property 'domain' for keystone role
1. the default value of the property is 'default'
2. the property is non-updatalbe
It seems we've missed to override client() methods for some
keystone resource plugins.
This also fixes the tests for all keystone resources.
Each resource in Heat has resource_mapping fucntion for loading his type
in environment for futher using.
This method should be callable and should return dictionary, where
key is resource type and value is corresponding resource class.
More over resource_type should have format:
"Platform Type"/"Service type"/.../"Resource Name"
This patch adds common test for this method and check all modules in
Duplicate useless tests were removed.