Migrate the OS-EP-FILTER API to flask-native dispatching. This does
not migrate the standard catalog "region", "service" or "endpoint"
APIs.
Change-Id: Ia7c2ab211e2f7fb136e5817390751121f97f4340
Partial-Bug: #1776504
Move the JSON Home Document and Version Discovery Documents out of
the webob-based mapper and into Flask.
This change removes the keystone.version.controller and
keystone.version.router modules as they have been moved into
keystone.api.discovery.
The keystone.api.discovery module is somewhat specialized as there
are no "resources" and it must handle multiple types of responses
based upon the ACCEPTS header (JSON Home or JSON). In lieu of the
flask-RESTful mechanisms, keystone.api.discovery utilizes bare
flask blueprint and functions. Minor scaffolding work has been done
to ensure the discovery blueprint can be loaded via the loader loop
in keystone.server.flask.application (a stub object in
keystone.api.discovery).
Partial-Bug: #1776504
Change-Id: Ib25380cefdbb7147661bb9853de7872a837322e0
Basic conversion of Keystone's core application to flask framework.
This doesn't add much in the way of flask-specific-isms but should
get keystone running directly under flask. This implementation does
not use paste-deploy.
Change-Id: Ib4c1ed3f645dd55fbfb76395263ecdaf605caae7
This commit makes it so all GET APIs within the endpoint filter API
support HEAD as well.
Change-Id: I6dd8b3f7494003bca110623a3b8133c81ff90877
Partial-Bug: 1696574
Remove endpoint_filter as an extension and move it to a core resource,
i.e. consolidate endpoint_filter extension into catalog.
For now we leave the database migrations in the extension directory,
this will address in a separate patch.
DocImpact: Remove the endpoint_filter extension from keystone's
paste pipeline.
Co-Authored-By: Jamie Lennox <jamielennox@redhat.com>
Partially implements: bp move-extensions
Change-Id: Ib8969d584f6be053aaad6e6051fde5e3b7ef7485
These routes are purely based on your current authentication and bridge
the gap between what is available in the standard identity-api for
fetching scope targets based on user_id and what is required for the
federation APIs.
Implement /auth/projects /auth/domains and move /catalog to
/auth/catalog
Change-Id: I464c0ca5cc9f250d593340e9563de45b077dd4cd
Implements: blueprint auth-specific-data
The V3 routes were being added by the append_v3_routers function in
each controller package, so the only way state could be stored is in
a global variable which makes unit testing difficult. With this
change, the append_v3_routers functions are put into a class in each
package. This will eventually be used to store JSON Home data.
bp json-home
Change-Id: I744a4c82dc84bb1a8d29d0314e3c51cc43c077a2
The documentation for the regions/ resource in the v3 API
specified that the user should be able to create a new region
using PUT /regions/{region_id}, however the original regions
patch forgot to include this functionality.
This patch adds that ability, with a custom mapper route to
keystone.catalog.controllers.RegionsV3.create_region_with_id.
When implementing, I also noticed an issue with an unused
region_id parameter in the driver's create_region() call. This
patch cleans up that unused parameter and ensures the region_ref
parameter always contains an ID key.
Change-Id: I36d14d4136efc165528282f1357a74291924502e
Closes-Bug: #1271235
We don't need vim modelines in each source file, it can be set in
user's vimrc.
Change-Id: Ie51ad62946afdf39eadcd59edaf8134ec10265c6
Closes-Bug: #1229324
Adds CRUD implementation in SQL and KVS catalog drivers
for hierarchical regions support. The SQL driver implements
the region hierarchy using a simple adjacency list model
since it is expected that typical deployments will only
have a handful of regions, and the current regions API does
not offer any complex hierarchy querying that would make
a nested set model more appropriate.
Implements: blueprint first-class-regions
Change-Id: I2d4cca19008b92ef5758181b1792726834db7f7a
Uses automatic dependency injection to provide controllers with driver
interfaces (identity_api, token_api, etc).
See tests/test_injection.py for a self-contained example.
Change-Id: I255087de534292fbf57a45b19f97488f831f607c
Distributes the functionality of service.py into the modules.
Moves ComposableRouters into the modules.
The routers and controllers now have short names.
The controllers get their APIs via the base class.
Change-Id: I87404b80ea9800d6792f97a7a3a64fe839065c1c