Skip to content

Commit 810d2f5

Browse files
jja6312halucinor
authored andcommitted
feat: Add delete image tool (#74)
* feat(image): Add delete image tool (#20)
1 parent 6c4ddb0 commit 810d2f5

File tree

2 files changed

+24
-0
lines changed

2 files changed

+24
-0
lines changed

src/openstack_mcp_server/tools/image_tools.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ def register_tools(self, mcp: FastMCP):
1919
mcp.tool()(self.get_image)
2020
mcp.tool()(self.get_images)
2121
mcp.tool()(self.create_image)
22+
mcp.tool()(self.delete_image)
2223

2324
def get_image(self, id: str) -> Image:
2425
"""
@@ -121,3 +122,13 @@ def create_image(self, image_data: CreateImage) -> Image:
121122

122123
image = conn.get_image(created_image.id)
123124
return Image(**image)
125+
126+
def delete_image(self, image_id: str) -> None:
127+
"""
128+
Delete an OpenStack image.
129+
130+
:param image_id: The ID of the image to delete.
131+
:return: None
132+
"""
133+
conn = get_openstack_conn()
134+
conn.image.delete_image(image_id)

tests/tools/test_image_tools.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -297,3 +297,16 @@ def test_create_image_success_with_import_options(
297297
assert mock_get_openstack_conn_image.get_image.called_once_with(
298298
mock_image["id"],
299299
)
300+
301+
def test_delete_image_success(self, mock_get_openstack_conn_image):
302+
"""Test deleting an image successfully."""
303+
mock_conn = mock_get_openstack_conn_image
304+
image_id = "img-delete-123-456"
305+
306+
mock_conn.image.delete_image.return_value = None
307+
308+
image_tools = ImageTools()
309+
result = image_tools.delete_image(image_id)
310+
311+
assert result is None
312+
mock_conn.image.delete_image.assert_called_once_with(image_id)

0 commit comments

Comments
 (0)