When logging, headers, url, method, etc, were in different lines
making it hard to distinguish what belonged to the same request
or response. This puts everything in the same line.
Change-Id: I9aa8ce64fa98a13d5d26f80f4e690f2a8eda847b
This fixes the case that when a request looking like
http://example.com/resource/volume
and containing a token comes to the proxy, we translate it to
http://cinder.local/volume/<project_id>
This happens because we populate the project_id information of
a request either from the url, or from the token.
Change-Id: Ie83fec4910eff750ba15f5485428c23ec3505e3b
Create a new extension to the proxy, which will allow networks to be
extended across clouds.
Additionally, provide lots of documentation for this new feature.
Change-Id: I9088e3509f71fb363ddc7f504cbb96f94932cc1e
Per RFC2616. Within the codebase itself we represent headers as
uppercase strings, but now they can be passed with any capitalization
style. (Including whatever keystoneauth or requests chooses to send.)
Change-Id: Ia4e932a91dec030b9efeb947759ceebdb7a426fc
Closes-Bug: #1720433
To simplify the writing of extensions, and to reduce reliance on
importing the flask.request global object, store pertinent attributes
of flask.request in the RequestDetails class.
Change-Id: Idff737155a6110d0520a74e36a5b0c23b5b5d93c
This adds a cli for management commands that is run through
`mixmatch-manage`.
Also added `db_sync` which is creates the tables in the database
based on the model. No upgrade functionality exists yet.
Change-Id: I18187967bb62865529712c83ef60482c3d1ed8ca
Now junk in MM-SERVICE-PROVIDER will lead to a client side error,
instead of a server-side one.
Change-Id: Ic930b4093fe005c3abc6c8561ee1114846fb80a6
Closes-Bug: #1705773
This introduces preliminary support for extensions.
Extensions are registered to routes, and if the
request matches the registered route they will be
called to handle the request and the response.
The interface is still not finalized and will
progress as more extensions with their different
requirements are added.
Also included dependency on oslo_serialization for
loading the json response. Follow up patch will
change all instances of json.loads to
jsonutils.loads
Change-Id: I9c573ce1d4ebe85c07c8ff219f384e3c6c67b39a
This tentatively adds support for that API by letting the
microversion header OpenStack-API-Version go through. Also
added a few unit tests just to check that we're properly routing
the messages path.
Change-Id: Ie21b15ee5d33085e0515a129ea4ef89836ca8d57
The get_service function returns ValueError
when the service response is neither cinder
nor glance. Switch this over to abort 404.
Closes-Bug: #1700144
Change-Id: If2cf585dd555eab4771a27fe6f272842a3d498fe
Particularly for client-side errors, we ought to at least return the
actual error status instead of a generic 404.
Enablement of negative Tempest tests.
Change-Id: Ieaf658c9bd202dbb5000c10c43bdd1afa15a2aa1
This splits the configuration module into a package with multiple
modules.
Additionally adds support for oslo-config-generator.
Additionally adds mixmatch.conf to .gitignore
Change-Id: I735c6e852ef3cddb6dff654e1b8777ba239b91ab
Takes into account the differences between volumes details
in volume v1 and v2
Co-Authored-By: Kristi Nikolla <knikolla@bu.edu>
Change-Id: Ied7f6f1cca752eb300a284ca1267ad1ef79e6db5
Closes-bug: 1646520
Tenant_id is old keystone terminology. Replace all instances of
tenant in the model with project. The listener still uses tenant_id
when listening to messages in the message queue. Investigate if
it is safe to rename those too to project_id.
Change-Id: I5126238eb5c4e5ade8effbd9fdc9b73a09b4ea90
If service token passed to the proxy, ignore it and do not
forward it in calls to SPs. Service tokens are not currently used
as part of authentication.
Change-Id: I2b830cb4cc9d3fbb62be93211a630d2a859322e3
This reduces the usage of member variables in favor of a
dictionary containing details. Now almost all the details are set
in a new function get_details.
Though this is a first good step, more work needs to be done in
follow-up patches.
Change-Id: I73552277255cf3cdb52ebc85b89a7f32f4355038
Also some mild refactoring in proxy.py. Now unversioned/unactioned calls
can go through without authentication. Renamed self.detailed to the more
descriptive strip_details.
Co-Authored-By: Kristi Nikolla <knikolla@bu.edu>
Change-Id: I5c3a0ab7c020fba480319f11cd1637d5c1f07e11
Constrcuted volume pagination properly with 'volumes_links' in
services.py aggregate function. Used extra parameters and changed
the tests accordingly. Added a test for volumes pagination.
Change-Id: I3755b11a274aa66fe3096233cb161ca41080464c
Closes-bug: 1646523
Move configuration options listed in the [proxy] configuration
group to the [DEFAULT] configuration group for consistency with
other openstack configuration files. Update references to the
configuration group to match the change, including unit tests.
Change-Id: I0ed5a9210952efb91379dcdab2c078f0923649b0
Closes-bug: 1640232
Change token logging from INFO to DEBUG, so that tokens are not
printed by default, only when the logging level is set to DEBUG.
Change-Id: I4f2e1ee84c82edc41edde93386d6f28f815aa09f
Closes-bug: 1640234
Fixed pep8 issues for E126, H238, E241, H405, H403, E121, H201.
H306 and H301 which relate to the way imports are done is still
unfixed.
Change-Id: Ib2668c0af16a75e33e93ec3d699ce2d3fffade38
This is the initial commit of the code for the project. Previous
development was ongoing in https://github.com/CCI-MOC/k2k-proxy.git
Change-Id: I5cce38e22581e1f0a82c2c76a64e7bbf2cd7490b
Co-Authored-By: George Silvis, III <george.iii.silvis@gmail.com>
Co-Authored-By: Wjdan Alharthi <walharth@bu.edu>