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