Add tags to core resources

Registered by Gal Sagie

Neutron resources in current DB model do not contain any tags, and
dont have a generic consistent way to add tags or/and any other data by the user.
Adding tags to resources can be useful for management and orchestration in OpenStack, if its
done in the API level and IS NOT backend specific data.

The following use cases refer to adding tags to networks, but the same can be
applicable to any other Neutron resource (core resource and Router):

1) Ability to map different networks in different OpenStack locations to one logically
   same network (for Multi site OpenStack)

2) Ability to map Id's from different management/orchestration systems to OpenStack networks in mixed
   environments, for example for project Kuryr, map docker network id to neutron network id

3) Leverage tags by deployment tools

Similar to the following nova approved spec:
http://specs.openstack.org/openstack/nova-specs/specs/liberty/approved/tag-instances.html

And in accordance to these guidelines:
http://specs.openstack.org/openstack/api-wg/guidelines/tags.html

This spec propose to support adding tags to Neutron resources which are not meant
to be interpreted by any specific backend implementation.

Blueprint information

Status:
Complete
Approver:
Akihiro Motoki
Priority:
Low
Drafter:
Gal Sagie
Direction:
Approved
Assignee:
Hirofumi Ichihara
Definition:
Approved
Series goal:
Accepted for mitaka
Implementation:
Implemented
Milestone target:
milestone icon mitaka-rc1
Started by
Hirofumi Ichihara
Completed by
Armando Migliaccio

Whiteboard

Mar-24-2016(hichihara): Completed.

Mar-9-2016(armax): doc up for review:https://review.openstack.org/#/c/290342/

Mar-8-2016(armax): needs docs

Mar-3-2016 (armax): code complete as far as as M3 is concerned. Needs docs.

Jan-24-2016(hichihara): I'm implementing the code. I will share the PoC code ASAP.

Jan-24-2016(armax): needs volunteers. If no-one shows up/takes ownership of this one by the next couple of weeks, it will be deferred. I would be happy to be the approver's backup, but I'd have to have some code to look at first :)

Jan-18-2016(armax): no major code nor documentation as of today. Changes of getting in Mitaka are getting slim.

Dec-18-2015(armax): needs new approver/drafter/assignee

We need to identify an approver for this work.

This sets some context:

https://blueprints.launchpad.net/neutron/+spec/core-resource-tags

neutron spec review: https://review.openstack.org/#/c/216021/

Gerrit topic: https://review.openstack.org/#q,topic:bp/add-tags-to-core-resources,n,z

Addressed by: https://review.openstack.org/273881
    [WIP] Add tags for neutron resources

Gerrit topic: https://review.openstack.org/#q,topic:bug/1489291,n,z

Addressed by: https://review.openstack.org/278197
    Add filter for resource tag

Addressed by: https://review.openstack.org/284519
    Make API framework more flexible for various extensions

API manual: https://review.openstack.org/#/c/290314/

Addressed by: https://review.openstack.org/292204
    Add API test for tag

Addressed by: https://review.openstack.org/293839
    Add tag mechanism for resources other than network

Addressed by: https://review.openstack.org/414500
    Add tag mechanism for subnet

Addressed by: https://review.openstack.org/470335
    Add API test for tag

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.