Skip to content

Commit 729a1ca

Browse files
committed
fix: to inner class
1 parent c1d8145 commit 729a1ca

File tree

2 files changed

+28
-39
lines changed

2 files changed

+28
-39
lines changed

src/openstack_mcp_server/tools/response/compute.py

Lines changed: 18 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,33 @@
11
from pydantic import BaseModel, ConfigDict, Field
22

33

4-
class ServerFlavor(BaseModel):
5-
id: str | None = Field(default=None, exclude=True)
6-
name: str = Field(validation_alias="original_name")
7-
model_config = ConfigDict(validate_by_name=True)
8-
9-
10-
class ServerImage(BaseModel):
11-
id: str
12-
4+
class Server(BaseModel):
5+
class Flavor(BaseModel):
6+
id: str | None = Field(default=None, exclude=True)
7+
name: str = Field(validation_alias="original_name")
8+
model_config = ConfigDict(validate_by_name=True)
139

14-
class ServerIp(BaseModel):
15-
addr: str
16-
version: int
17-
type: str = Field(validation_alias="OS-EXT-IPS:type")
10+
class Image(BaseModel):
11+
id: str
1812

19-
model_config = ConfigDict(validate_by_name=True)
13+
class IPAddress(BaseModel):
14+
addr: str
15+
version: int
16+
type: str = Field(validation_alias="OS-EXT-IPS:type")
2017

18+
model_config = ConfigDict(validate_by_name=True)
2119

22-
class ServerSecurityGroup(BaseModel):
23-
name: str
20+
class SecurityGroup(BaseModel):
21+
name: str
2422

25-
26-
class Server(BaseModel):
2723
id: str
2824
name: str
2925
status: str | None = None
30-
flavor: ServerFlavor | None = None
31-
image: ServerImage | None = None
32-
addresses: dict[str, list[ServerIp]] | None = None
26+
flavor: Flavor | None = None
27+
image: Image | None = None
28+
addresses: dict[str, list[IPAddress]] | None = None
3329
key_name: str | None = None
34-
security_groups: list[ServerSecurityGroup] | None = None
30+
security_groups: list[SecurityGroup] | None = None
3531

3632

3733
class Flavor(BaseModel):

tests/tools/test_compute_tools.py

Lines changed: 10 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,7 @@
11
from unittest.mock import Mock, call
22

33
from openstack_mcp_server.tools.compute_tools import ComputeTools
4-
from openstack_mcp_server.tools.response.compute import (
5-
Flavor,
6-
Server,
7-
ServerFlavor,
8-
ServerImage,
9-
ServerIp,
10-
ServerSecurityGroup,
11-
)
4+
from openstack_mcp_server.tools.response.compute import Flavor, Server
125

136

147
class TestComputeTools:
@@ -80,31 +73,31 @@ def test_get_servers_success(self, mock_get_openstack_conn):
8073
id="434eb822-3fbd-44a1-a000-3b511ac9b516",
8174
name="web-server-01",
8275
status="ACTIVE",
83-
flavor=ServerFlavor(id=None, name="m1.tiny"),
84-
image=ServerImage(id="de527f30-d078-41f4-8f18-a23bf2d39366"),
76+
flavor=Server.Flavor(id=None, name="m1.tiny"),
77+
image=Server.Image(id="de527f30-d078-41f4-8f18-a23bf2d39366"),
8578
addresses={
8679
"private": [
87-
ServerIp(addr="192.168.1.10", version=4, type="fixed"),
80+
Server.IPAddress(addr="192.168.1.10", version=4, type="fixed"),
8881
],
8982
},
9083
key_name="my-key",
91-
security_groups=[ServerSecurityGroup(name="default")],
84+
security_groups=[Server.SecurityGroup(name="default")],
9285
),
9386
Server(
9487
id="ffd071fe-1334-45f6-8894-5b0bcac262a6",
9588
name="db-server-01",
9689
status="SHUTOFF",
97-
flavor=ServerFlavor(id=None, name="m1.small"),
98-
image=ServerImage(id="3d897e0e-4117-46bb-ae77-e734bb16a1ca"),
90+
flavor=Server.Flavor(id=None, name="m1.small"),
91+
image=Server.Image(id="3d897e0e-4117-46bb-ae77-e734bb16a1ca"),
9992
addresses={
10093
"net1": [
101-
ServerIp(addr="192.168.1.11", version=4, type="fixed"),
94+
Server.IPAddress(addr="192.168.1.11", version=4, type="fixed"),
10295
],
10396
},
10497
key_name=None,
10598
security_groups=[
106-
ServerSecurityGroup(name="default"),
107-
ServerSecurityGroup(name="group1"),
99+
Server.SecurityGroup(name="default"),
100+
Server.SecurityGroup(name="group1"),
108101
],
109102
),
110103
]

0 commit comments

Comments
 (0)