Skip to content

Commit 9f55b25

Browse files
Mridula JoshiCyrilRoelandteNovance
authored andcommitted
Adds CLI support for glance md-namespace-objects-delete
This patch adds operation which delete all metadef object inside a namespace. This can be implemented by `image metadef object delete` Change-Id: Ib196e295aad1921d8bc0c451522e0ad530389134 Depends-on: https://review.opendev.org/c/openstack/openstacksdk/+/901671 Signed-off-by: Cyril Roelandt <cyril@redhat.com>
1 parent 46b25c7 commit 9f55b25

File tree

4 files changed

+35
-3
lines changed

4 files changed

+35
-3
lines changed

doc/source/cli/data/glance.csv

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ md-namespace-create,image metadef namespace create,Create a new metadata definit
2626
md-namespace-delete,image metadef namespace delete,Delete specified metadata definitions namespace with its contents.
2727
md-namespace-import,,Import a metadata definitions namespace from file or standard input.
2828
md-namespace-list,image metadef namespace list,List metadata definitions namespaces.
29-
md-namespace-objects-delete,,Delete all metadata definitions objects inside a specific namespace.
29+
md-namespace-objects-delete,image metadef object delete,Delete all metadata definitions objects inside a specific namespace.
3030
md-namespace-properties-delete,,Delete all metadata definitions property inside a specific namespace.
3131
md-namespace-resource-type-list,image metadef resource type association list,List resource types associated to specific namespace.
3232
md-namespace-show,image metadef namespace show,Describe a specific metadata definitions namespace.

openstackclient/image/v2/metadef_objects.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,8 +123,11 @@ def get_parser(self, prog_name):
123123
parser.add_argument(
124124
"objects",
125125
metavar="<object>",
126-
nargs="+",
127-
help=_("Metadef object(s) to delete (name)"),
126+
nargs="*",
127+
help=_(
128+
"Metadef object(s) to delete (name) "
129+
"(omit this argument to delete all objects in the namespace)"
130+
),
128131
)
129132
return parser
130133

@@ -133,6 +136,9 @@ def take_action(self, parsed_args):
133136

134137
namespace = parsed_args.namespace
135138

139+
if not parsed_args.objects:
140+
return image_client.delete_all_metadef_objects(namespace)
141+
136142
result = 0
137143
for obj in parsed_args.objects:
138144
try:

openstackclient/tests/unit/image/v2/test_metadef_objects.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@ def setUp(self):
113113
super().setUp()
114114

115115
self.image_client.delete_metadef_object.return_value = None
116+
self.image_client.delete_all_metadef_objects.return_value = None
116117
self.cmd = metadef_objects.DeleteMetadefObject(self.app, None)
117118

118119
def test_object_delete(self):
@@ -126,8 +127,29 @@ def test_object_delete(self):
126127

127128
result = self.cmd.take_action(parsed_args)
128129

130+
self.image_client.delete_metadef_object.assert_called_once_with(
131+
self.image_client.get_metadef_object(),
132+
self._metadef_namespace.namespace,
133+
)
134+
self.image_client.delete_all_metadef_objects.assert_not_called()
129135
self.assertIsNone(result)
130136

137+
def test_object_delete_all(self):
138+
arglist = [
139+
self._metadef_namespace.namespace,
140+
]
141+
142+
verifylist = []
143+
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
144+
145+
result = self.cmd.take_action(parsed_args)
146+
147+
self.assertIsNone(result)
148+
self.image_client.delete_all_metadef_objects.assert_called_with(
149+
self._metadef_namespace.namespace,
150+
)
151+
self.image_client.delete_metadef_object.assert_not_called()
152+
131153

132154
class TestMetadefObjectList(fakes.TestImagev2):
133155
_metadef_namespace = fakes.create_one_metadef_namespace()
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
---
2+
features:
3+
- |
4+
Adds operation which deletes all metadef object inside a namespace.

0 commit comments

Comments
 (0)