Follow-on patch on project-tags spec

This patch set addresses outstanding comments in patch set [0].

[0] https://review.openstack.org/#/c/431785/

Co-Authored-By: Gage Hugo <gagehugo@gmail.com>
Change-Id: Ib31a57d9620a14e807270a02dd44573e0bbd04d4
This commit is contained in:
Tin Lam 2017-05-24 22:39:46 -05:00 committed by Samuel de Medeiros Queiroz
parent 9cdd9456ce
commit e9f4da1961
1 changed files with 21 additions and 18 deletions

View File

@ -57,13 +57,20 @@ Proposed Changes
)
* There is a limit of 50 tags on a project and each tag cannot exceed 60
characters.
characters. See [2]_.
* Add tags field as part of default response when listing projects.
* Add tags field as part of default response when listing projects and
showing a single project.
* Add new API calls to interact with both project tags for basic CRUD
functionality.
* Tags are URL-safe and should match the following regular expression:
.. code:: bash
[\w\@\!\#\$\%\^\&\*\(\)\;\<\>\:\.\"\'\|\+\-\?\=]+
Tags will have the following restrictions as set by the API Working
Group [1]_:
@ -74,12 +81,6 @@ Group [1]_:
* Commas are not allowed to be in a tag name in order to simplify
requests that specify lists of tags
Regex that matches any VALID tag would be:
.. code-block:: bash
\w+|\@|\!|\#|\$|\%|\^|\&|\*|\(|\)|\;|\<|\>|\:|\.|\"|\'|\||\+|\-|\?|\=
The schema for project tags would be:
@ -289,8 +290,8 @@ and "bar" tags:
GET /v3/projects?tags=foo,bar
To request the list of projects that have one OR more of a list of given
tags, the `tags-any` argument should be set to the list of tags, separated
To request the list of projects that have at least one tag from a given list,
the ``tags-any`` argument should be set to the list of tags, separated
by commas. In this situation as long as one of the given tags is present,
the project will be included in the query result. Example that returns the
projects that have the “foo” OR “bar” tag:
@ -299,10 +300,10 @@ projects that have the “foo” OR “bar” tag:
GET /v3/projects?tags-any=foo,bar
To request the list of projects that do not have one or more tags, the
`not-tags` argument should be set to the list of tags, separated by commas.
In this situation, only the projects that do not have any of the given tags
will be included in the query results. Example that returns the projects that
To request the list of projects that do not have a list of tags, the
``not-tags`` argument should be set to the list of tags, separated by commas.
In this situation, the tags given must all be absent for a project to be
included in the query result. Example that returns the projects that
do not have the “foo” nor the “bar” tag:
.. code-block:: bash
@ -310,9 +311,9 @@ do not have the “foo” nor the “bar” tag:
GET /v3/projects?not-tags=foo,bar
To request the list of projects that do not have at least one of a list of
tags, the `not-tags-any` argument should be set to the list of tags,
separated by commas. In this situation, only the projects that do not have
at least one of the given tags will be included in the query result. Example
tags, the ``not-tags-any`` argument should be set to the list of tags,
separated by commas. In this situation, as long as one of the given tags
is absent, the project will be included in the query result. Example
that returns the projects that do not have the “foo” tag, or do not have
the “bar” tag:
@ -320,7 +321,7 @@ the “bar” tag:
GET /v3/projects?not-tags-any=foo,bar
The `tags`, `tags-any`, `not-tags` and `not-tags-any` arguments can
The ``tags``, ``tags-any``, ``not-tags`` and ``not-tags-any`` arguments can
be combined to build more complex queries. Example that returns any projects
that have the “foo” and “bar” tags, plus at least one of “red” and “blue”.
@ -439,3 +440,5 @@ References
.. [0] `<http://docs.openstack.org/newton/networking-guide/ops-resource-tags.html>`_
.. [1] `<https://specs.openstack.org/openstack/api-wg/guidelines/tags.html>`_
.. [2] `<https://specs.openstack.org/openstack/nova-specs/specs/kilo/approved/tag-instances.html#rest-api-impact>`_