Skip to content

Commit 1481c78

Browse files
committed
fix change to bytes
1 parent 5f7201a commit 1481c78

File tree

4 files changed

+10
-73
lines changed

4 files changed

+10
-73
lines changed

scaleway-core/scaleway_core/api.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -124,8 +124,10 @@ def _request(
124124

125125
if body is None:
126126
body = {}
127-
128-
raw_body = json.dumps(body) if body is not None else None
127+
if isinstance(body, bytes):
128+
raw_body = body
129+
else:
130+
raw_body = json.dumps(body) if body is not None else None
129131

130132
request_params: List[Tuple[str, Any]] = []
131133
for k, v in params.items():
@@ -155,9 +157,8 @@ def _request(
155157
url=url,
156158
params=request_params,
157159
headers=headers,
158-
body=raw_body,
160+
body=raw_body.decode("utf-8", errors="replace") if isinstance(raw_body, bytes) else raw_body,
159161
)
160-
161162
response = requests.request(
162163
method=method,
163164
url=url,

scaleway/scaleway/instance/v1/custom_api.py

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,8 @@
22
from scaleway_core.bridge import Zone
33
from scaleway_core.utils import validate_path_param
44
from .api import InstanceV1API
5-
from .custom_marshalling import marshal_GetServerUserDataRequest, unmarshal_GetServerUserDataResponse, \
6-
marshal_SetServerUserDataRequest
7-
from .custom_types import GetServerUserDataRequest, SetServerUserDataRequest
5+
from .custom_marshalling import marshal_GetServerUserDataRequest
6+
from .custom_types import GetServerUserDataRequest
87

98

109
class InstanceUtilsV1API(InstanceV1API):
@@ -45,7 +44,7 @@ def get_server_user_data(self, server_id: str, key: str, zone: Optional[Zone] =
4544
),
4645
)
4746
self._throw_on_error(res)
48-
return unmarshal_GetServerUserDataResponse(res.json())
47+
return res
4948

5049
def set_server_user_data(self, server_id: str, key: str, content: bytes, zone: Optional[Zone] = None):
5150
"""
@@ -64,12 +63,7 @@ def set_server_user_data(self, server_id: str, key: str, content: bytes, zone: O
6463
res = self._request(
6564
"PATCH",
6665
f"/instance/v1/zones/{param_zone}/servers/{param_server_id}/user_data/{key}",
67-
body=marshal_SetServerUserDataRequest(SetServerUserDataRequest(
68-
zone=zone,
69-
server_id=server_id,
70-
content=content,
71-
key=key,
72-
), self.client),
66+
body=content,
7367
headers=headers,
7468
)
7569

Lines changed: 1 addition & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
from typing import Dict, Any
22

3-
from scaleway.instance.v1.custom_types import GetServerUserDataRequest, GetServerUserDataResponse, \
4-
SetServerUserDataRequest
3+
from scaleway.instance.v1.custom_types import GetServerUserDataRequest, GetServerUserDataResponse
54
from scaleway_core.profile import ProfileDefaults
65

76

@@ -16,40 +15,3 @@ def marshal_GetServerUserDataRequest(request: GetServerUserDataRequest, defaults
1615
output["zone"] = request.zone
1716

1817
return output
19-
20-
21-
def unmarshal_GetServerUserDataResponse(data: Any) -> GetServerUserDataResponse:
22-
if not isinstance(data, dict):
23-
raise TypeError(
24-
"Unmarshalling the type 'GetServerUserDataResponse' failed as data isn't a dictionary."
25-
)
26-
args: Dict[str, Any] = {}
27-
28-
field = data.get("server_id", None)
29-
if field is not None:
30-
args["server_id"] = field
31-
32-
field = data.get("key", None)
33-
if field is not None:
34-
args["key"] = field
35-
36-
field = data.get("content", None)
37-
if field is not None:
38-
args["content"] = field
39-
40-
return GetServerUserDataResponse(**args)
41-
42-
43-
def marshal_SetServerUserDataRequest(request: SetServerUserDataRequest, defaults: ProfileDefaults) -> Dict[str, Any]:
44-
output: Dict[str, Any] = {}
45-
46-
if request.server_id is not None:
47-
output["server_id"] = request.server_id
48-
if request.key is not None:
49-
output["key"] = request.key
50-
if request.zone is not None:
51-
output["zone"] = request.zone
52-
if request.content is not None:
53-
output["content"] = request.content.decode("utf-8")
54-
55-
return output

scaleway/scaleway/instance/v1/custom_types.py

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -29,23 +29,3 @@ class GetServerUserDataResponse:
2929
"""
3030

3131
content: str
32-
33-
34-
@dataclass
35-
class SetServerUserDataRequest:
36-
zone: Optional[Zone]
37-
"""
38-
Zone of the user data to set
39-
"""
40-
41-
server_id: str
42-
43-
key: str
44-
"""
45-
Key defines the user data key to set
46-
"""
47-
48-
content: bytes
49-
"""
50-
Content defines the data to set as bytes
51-
"""

0 commit comments

Comments
 (0)