Skip to content

Commit 8713bd0

Browse files
committed
fix to fit generation pattern
1 parent 804bcf4 commit 8713bd0

File tree

1 file changed

+42
-6
lines changed

1 file changed

+42
-6
lines changed

scaleway/scaleway/instance/v1/custom_api.py

Lines changed: 42 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,16 @@ class GetServerUserDataRequest:
2323
Key defines the user data key to get
2424
"""
2525

26+
@dataclass
27+
class GetServerUserDataResponse:
28+
server_id: str
29+
30+
key: str
31+
"""
32+
Key of the user data
33+
"""
34+
35+
content: str
2636

2737
def marshal_GetServerUserDataRequest(request: GetServerUserDataRequest, defaults: ProfileDefaults) -> Dict[str, Any]:
2838
output: Dict[str, Any] = {}
@@ -36,6 +46,28 @@ def marshal_GetServerUserDataRequest(request: GetServerUserDataRequest, defaults
3646

3747
return output
3848

49+
def unmarshal_GetServerUserDataResponse(data: Any) -> GetServerUserDataResponse:
50+
if not isinstance(data, dict):
51+
raise TypeError(
52+
"Unmarshalling the type 'GetServerUserDataResponse' failed as data isn't a dictionary."
53+
)
54+
args: Dict[str, Any] = {}
55+
56+
field = data.get("server_id", None)
57+
if field is not None:
58+
args["server_id"] = field
59+
60+
field = data.get("key", None)
61+
if field is not None:
62+
args["key"] = field
63+
64+
field = data.get("content", None)
65+
if field is not None:
66+
args["content"] = field
67+
68+
return GetServerUserDataResponse(**args)
69+
70+
3971
@dataclass
4072
class SetServerUserDataRequest:
4173
zone: Optional[Zone]
@@ -50,7 +82,7 @@ class SetServerUserDataRequest:
5082
Key defines the user data key to set
5183
"""
5284

53-
content: str
85+
content: StringIO
5486
"""
5587
Content defines the data to set
5688
"""
@@ -65,7 +97,7 @@ def marshal_SetServerUserDataRequest(request: SetServerUserDataRequest, defaults
6597
if request.zone is not None:
6698
output["zone"] = request.zone
6799
if request.content is not None:
68-
output["content"] = request.content
100+
output["content"] = request.content.getvalue()
69101

70102
return output
71103

@@ -108,7 +140,7 @@ def get_server_user_data(self, server_id: str, key: str, zone: Optional[Zone] =
108140
),
109141
)
110142
self._throw_on_error(res)
111-
return res.json()
143+
return unmarshal_GetServerUserDataResponse(res.json())
112144

113145
def set_server_user_data(self, server_id: str, key: str, content: StringIO, zone: Optional[Zone] = None):
114146
"""
@@ -121,16 +153,20 @@ def set_server_user_data(self, server_id: str, key: str, content: StringIO, zone
121153
"""
122154
param_zone = validate_path_param("zone", zone or self.client.default_zone)
123155
param_server_id = validate_path_param("server_id", server_id)
124-
body = content.read()
125156
headers = {
126157
'Content-Type': 'text/plain',
127158
}
128159
res = self._request(
129160
"PATCH",
130161
f"/instance/v1/zones/{param_zone}/servers/{param_server_id}/user_data/{key}",
131-
body=body,
162+
body=marshal_SetServerUserDataRequest(SetServerUserDataRequest(
163+
zone=zone,
164+
server_id=server_id,
165+
content=content,
166+
key=key,
167+
), self.client),
132168
headers=headers,
133169
)
134170

135171
self._throw_on_error(res)
136-
return res.text
172+
return res

0 commit comments

Comments
 (0)