keystone.catalog.backends package

Submodules

keystone.catalog.backends.kvs module

class keystone.catalog.backends.kvs.Catalog(*args, **kwargs)[source]

Bases: keystone.common.kvs.legacy.Base, keystone.catalog.core.Driver

create_endpoint(endpoint_id, endpoint)[source]
create_region(region)[source]
create_service(service_id, service)[source]
delete_endpoint(endpoint_id)[source]
delete_region(region_id)[source]
delete_service(service_id)[source]
get_catalog(user_id, tenant_id, metadata=None)[source]
get_endpoint(endpoint_id)[source]
get_region(region_id)[source]
get_service(service_id)[source]
list_endpoints(hints)[source]
list_regions()[source]
list_services(hints)[source]
update_endpoint(endpoint_id, endpoint)[source]
update_region(region_id, region)[source]
update_service(service_id, service)[source]

keystone.catalog.backends.sql module

class keystone.catalog.backends.sql.Catalog[source]

Bases: keystone.catalog.core.Driver

create_endpoint(endpoint_id, endpoint_ref)[source]
create_region(*args, **kwargs)[source]
create_service(service_id, service_ref)[source]
db_sync(version=None)[source]
delete_endpoint(endpoint_id)[source]
delete_region(region_id)[source]
delete_service(service_id)[source]
get_catalog(user_id, tenant_id, metadata=None)[source]
get_endpoint(endpoint_id)[source]
get_region(region_id)[source]
get_service(service_id)[source]
get_v3_catalog(user_id, tenant_id, metadata=None)[source]
list_endpoints(hints, *args, **kwargs)[source]
list_regions()[source]
list_services(hints, *args, **kwargs)[source]
update_endpoint(endpoint_id, endpoint_ref)[source]
update_region(region_id, region_ref)[source]
update_service(service_id, service_ref)[source]
class keystone.catalog.backends.sql.Endpoint(*args, **kwargs)[source]

Bases: sqlalchemy.ext.declarative.api.Base, keystone.common.sql.core.DictBase

attributes = ['id', 'interface', 'region', 'service_id', 'url', 'legacy_endpoint_id', 'enabled']
enabled
extra
id
interface
legacy_endpoint_id
region
service_id
url
class keystone.catalog.backends.sql.Region(*args, **kwargs)[source]

Bases: sqlalchemy.ext.declarative.api.Base, keystone.common.sql.core.DictBase

attributes = ['id', 'description', 'parent_region_id']
description
extra
id
parent_region_id
class keystone.catalog.backends.sql.Service(*args, **kwargs)[source]

Bases: sqlalchemy.ext.declarative.api.Base, keystone.common.sql.core.DictBase

attributes = ['id', 'type', 'enabled']
enabled
endpoints
extra
id
type

keystone.catalog.backends.templated module

class keystone.catalog.backends.templated.Catalog(templates=None)[source]

Bases: keystone.catalog.backends.kvs.Catalog

A backend that generates endpoints for the Catalog based on templates.

It is usually configured via config entries that look like:

catalog.$REGION.$SERVICE.$key = $value

and is stored in a similar looking hierarchy. Where a value can contain values to be interpolated by standard python string interpolation that look like (the % is replaced by a $ due to paste attempting to interpolate on its own:

When expanding the template it will pass in a dict made up of the conf instance plus a few additional key-values, notably tenant_id and user_id.

It does not care what the keys and values are but it is worth noting that keystone_compat will expect certain keys to be there so that it can munge them into the output format keystone expects. These keys are:

name - the name of the service, most likely repeated for all services of
the same type, across regions.

adminURL - the url of the admin endpoint

publicURL - the url of the public endpoint

internalURL - the url of the internal endpoint

get_catalog(user_id, tenant_id, metadata=None)[source]
keystone.catalog.backends.templated.TemplatedCatalog(*args, **kwargs)[source]
keystone.catalog.backends.templated.parse_templates(template_lines)[source]

Module contents