Commit Graph

58 Commits

Author SHA1 Message Date
Dharini Chandrasekar 8140abe639 Remove secure_proxy_ssl_header opt from Glance
Glance uses http-proxy-to-wsgi middleware from oslo.middleware in
its pipeline in order to efficiently forward request headers in case
of load balancer style deployments. Hence, the configuration option
``secure_proxy_ssl_header`` was marked as deprecated.

This patch removes the option and the support for it within Glance
to entirely rely on oslo middleware. This will ensure that the related
headers set by oslo.middleware:HTTPProxyToWSGI is never modified in
Glance.

Change-Id: I11d41bb736bbfd90030d88245c11642823e4c400
Closes-Bug: 1673908
2022-07-13 17:31:36 +00:00
Brian Rosmaita 11989a18f4 Bump Image API version to 2.16
This API version increment is due to change I6a875a38bef5, which
corrected the response code for the admin-only API call:
    PUT /v2/cache/{image_id}
The call now returns 202 upon success (it had been returning 200).

The intent of this version bump is to get the attention of operators
to take note of this change; from now on, the call always returns 202
upon success regardless of what API version you request.

Additionally, cleaned up some version tests that had gotten out of
date and were not thoroughly testing version negotiation.

Also, corrected the version negotiation code around the v2.13 API.
The versions response had been modified by change I6882fd2381e6 to
only include v2.13 when the 'enabled_backends' config option had a
value, but the versions negotiation code was not updated to reflect
that.

Change-Id: I0cf35ed7e21497826cd581e59aa58774f030b9f6
Related-bug: #1971521
2022-05-24 11:45:30 -04:00
Mridula Joshi a34764ecac Added a new API to expose store info
This patch adds a new API to glance ``GET /v2/info/stores/detail``
to expose the stores specific details about the store like store
type and other specific store properties.This operation
will be admin only and validated by the new policy rule
``stores_info_detail`` which defaults to admin only

Implements: blueprint expose-store-specific-info
Change-Id: I6882fd2381e6ae245fd8c61bf9f4d52df2b216f5
2022-02-16 05:46:47 +00:00
Erno Kuvaja 87eae327bf Cache management API endpoints
This change adds the new cache API endpoints and their related
new policies.

Implements-bp: https://blueprints.launchpad.net/glance/+spec/cache-api
Change-Id: I69162e19bf095ef11fbac56a1ea2159d1caefba7
2022-02-14 15:14:17 +00:00
Zuul a42fda92dc Merge "[APIImpact] Quota usage API" 2022-02-08 03:33:58 +00:00
Dan Smith f865b8cac7 [APIImpact] Quota usage API
This adds a /v2/info/usage API endpoint which exposes to the user
their current limits and usage.

The discovery API does not (appear to) have existing tests, so this
adds a module for that, although only usage tests are added currently.

Implements: blueprint quota-api
Change-Id: I50c98bac50f815bdb9baae024e77afd388f74554
2022-02-03 09:55:50 -08:00
Stephen Finucane 9679ffc463 Remove six.moves.http_client usage
This is a rather beefy change due to the number of usages of this
import. The changes are trivial though.

Change-Id: I7badeeaca438b0291f4ed86670e7f217e6372c61
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2022-01-27 14:54:05 +00:00
Abhishek Kekane af3ce1adc9 Bump Images API version to 2.12
Related: blueprint messages-api
Change-Id: Icd56ce4f0fb0b70fdfc649474766b638a707fdd0
2021-02-24 05:58:14 +00:00
Erno Kuvaja 0e3d274915 Bump Images API version to 2.11
Co-authored-by: Brian Rosmaita <rosmaita.fossdev@gmail.com>

Change-Id: I1e200c47f20ec6945981dbd92f859cfec234e42d
related-bug: #1897773
2020-09-29 17:47:45 -04:00
Vlad Gusev 33626369e5 Use application_url in API version document
This handles the possible vhost in Glance API path correctly
(like https://cloud.example.com/image) contrary to host_url.

Change-Id: If86d805ddc46944e3aa2785aa5d775fe15b8468c
Closes-Bug: #1823703
2020-02-06 12:57:56 +00:00
Erno Kuvaja 515412b59f Set API version 2.9 CURRENT
This change removes experimental status from Api versions
>2.7 setting 2.8 (multi-store support) to SUPPORTED and
2.9 (caching) to CURRENT.

NOTE: 2.8 will show up in list only if the glance-api service
is configured with multi-store. The API versions list can be
used to determine if the multi-store functionality is availabe
in the endpoint.

Change-Id: I37350fc46191074d42edc73c2451eae73261957d
2019-10-01 17:45:26 +00:00
Erno Kuvaja d9546dce75 Images API version bump and config sync
This change contains minor version bump to Images API to
indicate latest changes to the API.

Also has config file sync for for M3 release.

These two are combined for saving some gating time due to
busy infra at Train milestone 3 deadline.

Change-Id: I13133c32734751d43cc3afed9b68d015cebd5b6b
2019-09-16 13:25:45 +01:00
Erno Kuvaja 208935af96 Add API version 2.8
This change bumps the API to EXPERIMENTAL 2.8 when multi back-end
is enabled.

Change-Id: Ie0e1ed84db1b227eea1774138b2a83172ff85bec
2018-08-07 16:39:06 +01:00
Erno Kuvaja 8e16e41f4d Bump Imges API version to 2.7
This API version bump contains the extensions for hidden images
and multihash feature support.

Change-Id: I3d394b344492a1f06a4999a3f61cecf5ace30f23
2018-08-01 19:42:11 +01:00
Erno Kuvaja 3dde3204d5 Remove Images API v1 entry points
This change removes option to configure Images API v1
This change removes Images API v1 endpoints from the router
This change removes all v1 tests
This change removes the v1 dependant glance-cache-manage command

This change does not remove all v1 codebase. Further cleanup and
decoupling will be needed.

Change-Id: Ia086230cc8c92f7b7dfd5b001923110d5bc55d4d
2018-07-13 10:21:49 +01:00
Erno Kuvaja 95327964e3 Remove deprecated 'enable_image_import' option
Change-Id: I7752b30f0fabed07282d959e1ad313af072fdea5
2018-06-07 08:16:43 +01:00
Erno Kuvaja 955b917b98 Enable Image Import per default and make current
Makes the EXPERIMENTAL Image Import 2.6 as CURRENT
Enables the Image Import feature per default

Change-Id: Ib6e4f511e1aa1f943977085547f50afee4c996d0
2018-01-24 13:01:55 +00:00
Brian Rosmaita d3871a57b8 Fix Image API 'versions' response
Whether or not the v2.6 EXPERIMENTAL API is exposed at a site
depends on the enable_image_import config value.  If it's False
(the default), then the API a client sees is the CURRENT v2.5
API, and any of the v2.6 calls made against 2.5 return a 404
(same as if you were running Ocata).  This patch adjusts the
'versions' response so that when enable_image_import=False,
the EXPERIMENTAL v2.6 does not appear in the response.

Change-Id: Ibe164f02c99d10f5a5edd0de96c665413a12f700
Closes-bug: #1711829
2017-08-19 13:00:20 -04:00
Brian Rosmaita af8c371a8c Bump Images API to v2.6
The MVP of image import functionality will be introduced as an
EXPERIMENTAL 2.6 version of the Images API.  The current version
will remain at 2.5.

This patch:
* Updates the version response
* Updates version negotiation code
* Updates unit and functional tests
* Updates the api-ref
* Adds a releasenote

Change-Id: Ied573897157e05f7b0438baeb1553326fb06613a
2017-08-06 09:19:13 -04:00
Brian Rosmaita c8028768e6 Bump minor API version
Change-Id I94bc7708b291ce37319539e27b3e88c9a17e1a9f (Community
Images) entails a minor version bump in the v2 API.

Change-Id: I2b7cd5ec9b974ebc738feb89ef22c428fbe3be06
Depends-On: I94bc7708b291ce37319539e27b3e88c9a17e1a9f
2017-01-19 18:16:51 -05:00
Gábor Antal 8a8e5bf56c Extracted HTTP response codes to constants in tests
There are several places in the source code where
HTTP response codes are used as numeric values.

These values are used from six.moves and the
numeric values are replaced by constants.

All of the used status codes were replaced with symbolic constants
from six.moves.http_client.
More about six.moves.http_client can be found at [2],
under the table "Supported renames:".

Also, this change improves code readibility.

This patchset does not extract numeric values from
the code itself, but it can be found at [1].

[1]: Ib9e26dcea927e96e65c626c18421621d3a29a64d
[2]: https://pythonhosted.org/six/#module-six.moves

Change-Id: Idfc7b043552f428f01ac3e47b270ee0639a8f5bc
Closes-Bug: #1520159
2016-10-06 15:17:06 +00:00
Jenkins dbfe9377e1 Merge "Bump up Glance API minor version to 2.4" 2016-09-15 18:12:27 +00:00
Nikhil Komawar a2b329c997 Bump up Glance API minor version to 2.4
This is the minor version bump for Newton after some of the API
impacting changes occur.

APIImpact
UpgradeImpact
DocImpact

Depends-On: Ie463e2f30db94cde7716c83a94ec2fb0c0658c91

Change-Id: I5d1c4380682efa4c15ff0f294f269c800fe6762a
2016-09-07 18:31:37 +00:00
Mike Fedosin 63e6dbb1eb Deprecate the Images (Glance) v1 API
This patch deprecates the Images (Glance) v1 API and sets up a warning
message for the operators if they have enabled it. It also indicates
that we intend to remove the v1 API on or after the Pike release and
operators are encouraged to deploy only the v2 API. The message also
states that after removal of the v1 API, the only option to deploy and
use will be the Images v2 API.

The commit includes:

  * Deprecation warning of the v1 API if it's enabled
  * Deprecation warning for the following configuration options and
    release they have been deprecated since:
      * enable_v1_api
      * enable_v2_api
      * enable_v1_registry
  * Reason why the v1 API has still been kept enabled by default via
    the corresponding configuration option
  * Reason for deprecating the configuration option enable_v2_api, even
    though we are only deprecating the v1 API
  * Necessary test changes to ensure the deprecated API is checked
    accordingly
  * Release notes for this change

DocImpact
UpgradeImpact

Co-Authored-By: Mike Fedosin <mfedosin@mirantis.com>
Co-Authored-By: Nikhil Komawar <nik.komawar@gmail.com>

Implements blueprint deprecate-glance-v1-api

Change-Id: Iab0c4abaea247044fee545342ac450e3415432f7
2016-08-27 03:34:00 +00:00
Nikhil Komawar 8c3560bbf6 Add test class to versions tests
The current versions tests contain a class to test the versions
response, and a class to test version negotiation, but this put us
in a situation where the 'versions' response was correctly updated
for v2.3, but the negotiation to map v2.3 -> v2 was not, thereby
making calls to /v2.3/whatever fail even though all tests in both
classes passed.

This patch adds a new test class that inherits from both of the
current test classes.  It contains tests to verify that all the
versions mentioned in the versions response are mapped correctly
so this kind of partial update situation won't happen again.

Partial-Bug: #1609571
Change-Id: I9e93b0f075eb6129c912dfca0a5d005f71bbc253
Co-Authored-By: Nikhil Komawar <nik.komawar@gmail.com>
Co-Authored-By: Brian Rosmaita <brian.rosmaita@rackspace.com>
2016-08-10 19:10:12 -04:00
Nikhil Komawar 0d1daf44ef Version negotiation api middleware to include v2.3
Glance API is at v2.3 listed to be CURRENT version but the version
negotiation middleware lists only v2, v2.0, v2.1, v2.2.

Version negotiation middleware and related tests must include v2.3

Change-Id: I4018af408fa45f3ac0ad6e9c8229428a9f87089f
Closes-Bug: 1609571
2016-08-03 18:34:32 -04:00
Stuart McLaren 513d717d28 Handle SSL termination proxies for version list
Return correct scheme in version URLs if service
behind an SSL termination proxy.

This is done by adding a new configuration option,
secure_proxy_ssl_header, which, when defined, makes
the wsgi application take the host_url scheme from
that header. By default, when this option is not
specified, there is no difference in behavior.

The intention is to configure any ssl-decrypting
proxy to set that header, so that glance-api knows
which protocol to use in the URLs in response.

This patch is largely based on the equivalent
nova patch: https://review.openstack.org/#/c/206479.

Partial-bug: 1558683

Change-Id: I9a9c0e42a6ad3c18d197f10095958b48d5cb879a
2016-03-21 14:36:13 +00:00
Alexander Tivelkov b974a63660 Move Glance Artifact Repository API to separate endpoint
EXPERIMENTAL Glance v3 API has been removed in favor of standalone API
(EXPERIMENTAL Artifacts API of v0.1).
This patch introduces a new process entry point to run on a different
port (9494 by default), with its own configuration file and a paste
config.

A controller stub for old /v3 api remains in the glnace.api package for
the compatibility with existing paste configuration which may reference
it. This stub returns a 301 redirects to glare endpoint if it is present
or 410 errors otherwise.

To reuse  the existing version_negotiation middleware some refactoring
has been made.

Implements blueprint: move-v3-to-glare

Change-Id: I5b7bd4cdcc5f2a40fc4a5f74bcc422fd700c4fb0
2016-02-10 18:34:55 +03:00
Mike Fedosin 6fe3626bb5 Disable v3 API by default
Since v3 is still unstable and has experimental status it's
better to disable it by default for security reasons. This
commit does it by setting 'enable_v3_api=False'.

Also all required documentation was added to related sections.

DocImpact

Change-Id: I412d0645d667400333532123008a24966aa23880
2015-09-03 23:02:26 +03:00
Mike Fedosin 3cdd5bba7c REST API layer for Artifact Repository
Adds REST API layer for Artifact Repository, binds all other changes
together.

Artifact Repository is run as a part of Glance api.
Requests are routed to /v3/artifacts endpoint on the api port.
API version in version selector is marked as experimental.

Registers artifacts service and a sample Artifact Type in Glance entry
points config.

Implements-blueprint: artifact-repository

FastTrack

Co-Authored-By: Inessa Vasilevskaya <ivasilevskaya@mirantis.com>
Co-Authored-By: Mike Fedosin <mfedosin@mirantis.com>
Co-Authored-By: Alexander Tivelkov <ativelkov@mirantis.com>

Change-Id: Ib6a0d2482208a37aa343a747dfe5f63f9080dd04
2015-06-10 18:49:21 +03:00
Doug Hellmann ae21f4dffa Drop use of 'oslo' namespace package
The Oslo libraries have moved all of their code out of the 'oslo'
namespace package into per-library packages. The namespace package was
retained during kilo for backwards compatibility, but will be removed by
the liberty-2 milestone. This change removes the use of the namespace
package, replacing it with the new package names.

The patches in the libraries will be put on hold until application
patches have landed, or L2, whichever comes first. At that point, new
versions of the libraries without namespace packages will be released as
a major version update.

Please merge this patch, or an equivalent, before L2 to avoid problems
with those library releases.

Blueprint: remove-namespace-packages
https://blueprints.launchpad.net/oslo-incubator/+spec/remove-namespace-packages

Change-Id: Ifa8baab33cdb3e606cf175a8c29c3a4ef6c44480
2015-04-28 18:57:45 +00:00
Fei Long Wang 1bfbcf7cc0 v1 API should be in SUPPORTED status
Fixes Bug: 1447327

Change-Id: I98e182aaee3d3577764ec957dfbbd898a1137ea9
2015-04-22 19:56:32 +00:00
Flavio Percoco 40fe44a3fd Bump API version to 2.3
Some changes have landed in Glance's tree during Kilo that require a
minor bump to the API. The following change is probably the one that had
the biggest impact on the current v2.2 API.

- Allow null fields to be returned: Ieaddd8a686cf7361f18cb1ee83b7887cdca22bd6

ApiImpact
DocImpact

Change-Id: I214ae6466ac85876cc9589069913258e80db29b5
2014-12-19 12:55:26 -05:00
Vishvananda Ishaya fa3b691011 Add config option to override url for versions
The versions url returns the wrong data when glance api is behind
a proxy. This adds a new config option so it can be set properly.

DocImpact

Change-Id: I5ab53d608a6667435a4b03b0c832870716baaeb8
Closes-Bug: #1384379
2014-10-22 14:31:23 -07:00
liyingjun 2365a3fb5f Fix assertEqual arguments order
assertEqual method's arguments should be in ('expected', 'actual')
order.

Change-Id: I88b5b0558720a91236b62b6e4a3590901e817f85
Closes-bug: 1277104
2014-09-19 00:25:18 +08:00
Julien Danjou 581cb4ca43 Switch to oslo.serialization
Change-Id: I983bb5b6e2c7fbbd8556ff0f99212803cb0269e9
2014-10-07 14:58:55 +02:00
Jenkins 2c4bd69565 Merge "Change assertTrue(isinstance()) by optimal assert" 2014-01-19 05:04:52 +00:00
wanghong 3d03291df8 Change assertTrue(isinstance()) by optimal assert
Some of tests use different method of assertTrue(isinstance(A, B)) or
assertEqual(type(A), B). The correct way is to use assertIsInstance(A, B)
provided by testtools.

Change-Id: Ia8d38f73c159c7ef943a8f6cfe72b945cc493947
Closes-bug: #1268480
2014-01-15 19:01:51 +08:00
Noboru arai 8de10b0f34 Remove vim header
No need to set tabstop tons of times, this can be set in your vimrc
file instead.

More disucssion:
http://openstack.10931.n7.nabble.com/Remove-vim-modelines-td21780.html

Change-Id: I3b830a5bb831a63c188109e6fad66ba48884fff3
Partial-Bug: #1229324
2014-01-14 16:03:28 +00:00
Yanis Guenane 16c3a33c0b Migrate json to glance.openstack.common.jsonutils
Every call to json.loads/json.dumps have been changed to
jsonutils.loads/jsonutils.dumps respectively. Import json has been removed
also replaced by import glance.openstack.common.jsonutils

654d80b416dc5f413cb791aa838ec8688bf7da44 Create openstack.common.jsonutils

Change-Id: I8ef580e5eb91526dfaef37050ce1f5c6d88d56b5
Closes-bug: #1257922
2014-01-05 14:38:07 +00:00
Mark J. Washenberger 249f800de1 Publish recent api changes as v2.2
Throughout the Havana development cycle, we have added several
features to the v2 api, without breaking backwards compatibility.
So this change bumps up our minor version number.

Change-Id: If0e5ffe117200fbfb967c8c95a63608f12dbba58
2013-09-04 14:55:08 -07:00
Brian Waldon af832bf75f Publish API version 2.1
Fixes bug 1154317.

Change-Id: I1e044539952f649974c757183e9bb2551264850e
2013-03-12 16:23:03 -07:00
annegentle a2b9bed75d Updates OpenStack LLC with OpenStack Foundation
Patchset addresses reviewer's comments, rebase against master,
and follows new guidance from Foundation:
http://wiki.openstack.org/Documentation/Copyright

Change-Id: I94367461505778973528eb8835d991f4fb796dab
2013-02-17 19:19:43 -08:00
Brian Waldon 9ef42887d6 Update v2.0 API version to CURRENT
The v2.0 API is stable, so we need to communicate this fact to the
consumers of Glance. This updates the status of the v2.0 version
entity in responses from / and those that result in a 300 Multiple
Choices status code from 'EXPERIMENTAL' to 'CURRENT.'

Change-Id: I9e4514025904d7be2e947c6d14ccb90b6b066f8c
2012-09-11 16:07:01 -07:00
Brian Waldon 2fb37ab925 Reveal v2 API as v2.0 in versions response
* Report v2.0 API compatibility, not v2
* Allow users to specify '/v2' or '/v2.0' in their request URI

Related to bp api-2

Change-Id: Ia8d41902a2171aad8f06d3ac329a3e3c097cdc90
2012-08-11 16:14:55 -07:00
Josh Kearney 687604baf6 Make functional tests listen on 127.0.0.1.
Fixes bug 987399.

Change-Id: I2a393d9b01c8ae17f289941530a1d4319b174f87
2012-07-20 11:42:51 -05:00
Brian Waldon dc2f241c11 Match path_info in image cache middleware
The url matching code in the image cache middleware should only look at
the unconsumed path, not the full path. Webob denotes this by using
'path_info' instead of 'path.'

This also adds some tests for the version negotiation middleware to ensure
it is returning a sane path for the image cache middleware to match.

Fixes bug 1026222

Change-Id: I522e2210e2b7272f9bb47602510a2910fa193415
2012-07-18 09:38:44 -07:00
Mark McLoughlin 9d9d225419 Port remaining code to global conf object
Implements blueprint cfg-global-object

This iteration fixes up the remaining places where we're passing a
conf object around.

Change-Id: I3b627d093a6b7afeee129ab66b377a3b0af5439b
2012-06-08 17:36:25 +01:00
Mark McLoughlin 1038a19a32 Add cfg's new global CONF object
Implements blueprint cfg-global-object

Begin adopting cfg's global CONF object pattern rather than passing
a conf object around everywhere.

This iterations does just enough to have each of the glance programs
initialize CONF and get the unit tests working.

Change-Id: Ia34959b3ba52cbe933d5d347f31319271b2e14f9
2012-06-05 21:50:55 +01:00
Brian Waldon 35ed310555 Reorganize pipelines for multiple api versions
* Partially implements bp api-2

Change-Id: Ie942c54e0ba294da661de870a95d685a9b8966de
2012-04-05 08:52:12 -07:00