glance md-tag-create-multiple overwrites existing tags

Bug #1939169 reported by Abhishek Kekane
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Glance
Fix Released
High
Mridula Joshi
Xena
Won't Fix
High
Mridula Joshi

Bug Description

Our md-tag-create-multiple (/v2/metadefs/namespaces/{namespace_name}/tags) [1] API overwrites existing tags for specified namespace rather than creating new one in addition to the existing tags.
Where as if you try to create different tags using md-tag-create (/v2/metadefs/namespaces/{namespace_name}/tags/{tag_name}) it is working as expected, means adding new tag in addition to existing ones.

Steps to reproduce:
1. source using admin credentials
$ source devstack/openrc admin admin

2. Create new public namespace
$ glance md-namespace-create TagsBugNamespace --visibility public
+------------+----------------------------------+
| Property | Value |
+------------+----------------------------------+
| created_at | 2021-08-06T17:43:03Z |
| namespace | TagsBugNamespace |
| owner | a14a058e2d1540c3a0dc7c397c55174e |
| protected | False |
| schema | /v2/schemas/metadefs/namespace |
| updated_at | 2021-08-06T17:43:03Z |
| visibility | public |
+------------+----------------------------------+

3. Create single tag using md-tag-create command
$ glance md-tag-create TagsBugNamespace --name tag1
+------------+----------------------+
| Property | Value |
+------------+----------------------+
| created_at | 2021-08-06T17:57:37Z |
| name | tag1 |
| updated_at | 2021-08-06T17:57:37Z |
+------------+----------------------+

4. Create another tag
$ glance md-tag-create TagsBugNamespace --name tag2
+------------+----------------------+
| Property | Value |
+------------+----------------------+
| created_at | 2021-08-06T17:57:37Z |
| name | tag2 |
| updated_at | 2021-08-06T17:57:37Z |
+------------+----------------------+

5. Verify that we have two tags in the list
$ glance md-tag-list TagsBugNamespace
+------+
| name |
+------+
| tag2 |
| tag1 |
+------+

6. Add more tags using md-tag-crate-multiple command
$ glance md-tag-create-multiple TagsBugNamespace --names TestTag1141=TestTag2411 --delim =
+-------------+
| name |
+-------------+
| TestTag1141 |
| TestTag2411 |
+-------------+

7. Now run tags list command again
$ glance md-tag-list TagsBugNamespace
+-------------+
| name |
+-------------+
| TestTag2411 |
| TestTag1141 |
+-------------+

Expected result:
These new tags should have been added to existing tags.

Actual result:
Existing tags gets deleted and only newly added tags using md-tag-crate-multiple command remains.

* This is further to show that adding new tag using md-tag-create command now will add a new tag and does not overwrite existing ones.
$ glance md-tag-create TagsBugNamespace --name tag3
+------------+----------------------+
| Property | Value |
+------------+----------------------+
| created_at | 2021-08-06T18:12:14Z |
| name | tag3 |
| updated_at | 2021-08-06T18:12:14Z |
+------------+----------------------+

* Verify that we have not overwritten existing tags now;
$ glance md-tag-list TagsBugNamespace
+-------------+
| name |
+-------------+
| tag3 |
| TestTag2411 |
| TestTag1141 |
+-------------+

[1] https://docs.openstack.org/api-ref/image/v2/metadefs-index.html?expanded=create-tag-definition-detail,create-tags-detail,get-tag-definition-detail,delete-all-tag-definitions-detail#create-tags

Changed in glance:
importance: Undecided → High
description: updated
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to glance (master)

Fix proposed to branch: master
Review: https://review.opendev.org/c/openstack/glance/+/804966

Changed in glance:
status: New → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to glance (master)

Reviewed: https://review.opendev.org/c/openstack/glance/+/804966
Committed: https://opendev.org/openstack/glance/commit/2a9a4c8e0e095f3cd788e2f24b2dce508538e0d5
Submitter: "Zuul (22348)"
Branch: master

commit 2a9a4c8e0e095f3cd788e2f24b2dce508538e0d5
Author: Mridula Joshi <email address hidden>
Date: Wed Aug 18 08:21:53 2021 +0000

    Fix overwriting of existing tags while creating new tags

    It was observed that md-tag-create-multiple
    (/v2/metadefs/namespaces/{namespace_name}/tags) API overwrites
    existing tags for specified namespace rather than creating new one
    in addition to the existing tags.
    This patch resolves the issue by introducing a header 'X-Openstack-Append'
    which on being True will append the new tags to existing ones and
    if False will continue to overwrite the tags.

    Implements: blueprint append-tags
    Closes-Bug: #1939169
    Change-Id: I29448746b14c542e5fbf0283011968ae1516642e

Changed in glance:
status: In Progress → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/glance 24.0.0.0rc1

This issue was fixed in the openstack/glance 24.0.0.0rc1 release candidate.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.