Move the heat_keystoneclient_v2 contrib package

As discussed in the Vancouver summit, the only known user of the
heat_keystoneclient_v2 contrib package is Rackspace, so it was agreed to
merge it with contrib/rackspace package.

Change-Id: I8a069275d5ea3f3913b6f8ae8c6fc48b69861551
This commit is contained in:
Miguel Grinberg 2015-06-09 17:57:28 -07:00
parent 90191ae185
commit e7d9c4dfe2
9 changed files with 33 additions and 90 deletions

View File

@ -1,28 +0,0 @@
# Heat Keystone V2
This plugin is a Keystone V2 compatible client. It can be used to
replace the default client for clouds running older versions of
Keystone.
Some forward compatibility decisions had to be made:
* Stack domain users are created as users on the stack owner's tenant
rather than the stack's domain
* Trusts are not supported
# Installation
1. From this directory run:
sudo python ./setup.py install
2. Set the `keystone_backend` option to
`heat.engine.plugins.heat_keystoneclient_v2.client.KeystoneClientV2`
# How it works
By setting the `keystone_backend` option, the KeystoneBackend class in
`heat/common/heat_keystoneclient.py` will instantiate the plugin
KeystoneClientV2 class and use that instead of the default client in
`heat/common/heat_keystoneclient.py`.

View File

@ -1,27 +0,0 @@
[metadata]
name = heat-contrib-keystone-v2
summary = Keystone V2 compatible client
description-file =
README.md
author = OpenStack
author-email = openstack-dev@lists.openstack.org
home-page = http://www.openstack.org/
classifier =
Environment :: OpenStack
Intended Audience :: Information Technology
Intended Audience :: System Administrators
License :: OSI Approved :: Apache Software License
Operating System :: POSIX :: Linux
Programming Language :: Python
Programming Language :: Python :: 2
Programming Language :: Python :: 2.7
Programming Language :: Python :: 2.6
[files]
# Copy to /usr/lib/heat for plugin loading
data_files =
lib/heat/heat_keystoneclient_v2 = heat_keystoneclient_v2/*
[global]
setup-hooks =
pbr.hooks.setup_hook

View File

@ -1,30 +0,0 @@
#!/usr/bin/env python
# Copyright (c) 2013 Hewlett-Packard Development Company, L.P.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
# implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# THIS FILE IS MANAGED BY THE GLOBAL REQUIREMENTS REPO - DO NOT EDIT
import setuptools
# In python < 2.7.4, a lazy loading of package `pbr` will break
# setuptools if some other modules registered functions in `atexit`.
# solution from: http://bugs.python.org/issue15881#msg170215
try:
import multiprocessing # noqa
except ImportError:
pass
setuptools.setup(
setup_requires=['pbr'],
pbr=True)

View File

@ -1,15 +1,26 @@
# Heat resources for working with the Rackspace Cloud # Heat resources for working with the Rackspace Cloud
The resources and configuration in this module are for using Heat with the Rackspace Cloud. These resources either The resources and configuration in this module are for using Heat with the Rackspace Cloud. These resources either
allow using Rackspace services that don't have equivalent services in OpenStack or account for differences between allow using Rackspace services that don't have equivalent services in OpenStack or account for differences between
a generic OpenStack deployment and Rackspace Cloud. a generic OpenStack deployment and Rackspace Cloud.
This package also includes a Keystone V2 compatible client plugin, that can be used in place of the default client
for clouds running older versions of Keystone.
## Installation
### 1. Install the Rackspace plugins in Heat ### 1. Install the Rackspace plugins in Heat
NOTE: These instructions assume the value of heat.conf plugin_dirs includes the NOTE: These instructions assume the value of heat.conf plugin_dirs includes the
default directory /usr/lib/heat. default directory /usr/lib/heat.
To install the plugin, from this directory run: - To install the plugin, from this directory run:
sudo python ./setup.py install
sudo python ./setup.py install
- (Optional) If you want to enable the Keystone V2 client plugin, set the `keystone_backend` option to
`heat.engine.plugins.heat_keystoneclient_v2.client.KeystoneClientV2`
### 2. Restart heat ### 2. Restart heat
@ -26,6 +37,22 @@ The following resources are provided for compatibility:
* `Rackspace::Cloud::LoadBalancer`: * `Rackspace::Cloud::LoadBalancer`:
>Use the Rackspace Cloud Loadbalancer service; not compatible with `OS::Neutron::LoadBalancer`. >Use the Rackspace Cloud Loadbalancer service; not compatible with `OS::Neutron::LoadBalancer`.
## Usage ### Usage
### Templates #### Templates
### Configuration #### Configuration
## Heat Keystone V2
Note that some forward compatibility decisions had to be made for the Keystone V2 client plugin:
* Stack domain users are created as users on the stack owner's tenant
rather than the stack's domain
* Trusts are not supported
### How it works
By setting the `keystone_backend` option, the KeystoneBackend class in
`heat/common/heat_keystoneclient.py` will instantiate the plugin
KeystoneClientV2 class and use that instead of the default client in
`heat/common/heat_keystoneclient.py`.

View File

@ -24,6 +24,7 @@ packages =
# Copy to /usr/lib/heat for non-stevedore plugin loading # Copy to /usr/lib/heat for non-stevedore plugin loading
data_files = data_files =
lib/heat/rackspace = rackspace/resources/* lib/heat/rackspace = rackspace/resources/*
lib/heat/heat_keystoneclient_v2 = heat_keystoneclient_v2/*
[entry_points] [entry_points]