Skip to content

Commit 4bde6ef

Browse files
committed
add support get_all_server_data_user
1 parent 7b45a1a commit 4bde6ef

File tree

3 files changed

+47
-3
lines changed

3 files changed

+47
-3
lines changed

scaleway/scaleway/instance/v1/custom_api.py

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
1-
from typing import Optional
1+
from typing import Optional, Dict
22

3+
from mypy.semanal import names_modified_in_lvalue
34
from requests import Response
45

56
from scaleway_core.bridge import Zone
67
from scaleway_core.utils import validate_path_param
78
from .api import InstanceV1API
89
from .custom_marshalling import marshal_GetServerUserDataRequest
9-
from .custom_types import GetServerUserDataRequest
10+
from .custom_types import GetServerUserDataRequest, GetAllServerUserDataResponse
1011

1112

1213
class InstanceUtilsV1API(InstanceV1API):
@@ -76,3 +77,22 @@ def set_server_user_data(
7677

7778
self._throw_on_error(res)
7879
return res
80+
81+
def get_all_server_user_data(self, server_id: str, zone: Optional[Zone] = None) -> GetAllServerUserDataResponse:
82+
param_zone = validate_path_param("zone", zone or self.client.default_zone)
83+
param_server_id = validate_path_param("server_id", server_id)
84+
85+
all_user_data_res = InstanceUtilsV1API.list_server_user_data(self, server_id=param_server_id, zone=param_zone)
86+
87+
user_data: Dict[str,bytes] = {}
88+
for key in all_user_data_res.user_data:
89+
value = InstanceUtilsV1API.get_server_user_data(self, server_id=param_server_id, key=key)
90+
print("value: ", value)
91+
user_data[key] = value.content
92+
93+
res = GetAllServerUserDataResponse(user_data=user_data)
94+
95+
return res
96+
97+
98+

scaleway/scaleway/instance/v1/custom_marshalling.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
from scaleway.instance.v1.custom_types import (
44
GetServerUserDataRequest,
5+
ListServerUserDataRequest,
56
)
67
from scaleway_core.profile import ProfileDefaults
78

@@ -19,3 +20,13 @@ def marshal_GetServerUserDataRequest(
1920
output["zone"] = request.zone
2021

2122
return output
23+
24+
def marshal_ListServerUserDataRequest(request: ListServerUserDataRequest, defaults: ProfileDefaults) -> Dict[str, Any]:
25+
output: Dict[str, Any] = {}
26+
27+
if request.server_id is not None:
28+
output["server_id"] = request.server_id
29+
if request.zone is not None:
30+
output["zone"] = request.zone
31+
32+
return output

scaleway/scaleway/instance/v1/custom_types.py

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from dataclasses import dataclass
2-
from typing import Optional
2+
from typing import Optional, Dict
33

44
from scaleway_core.bridge import Zone
55

@@ -17,3 +17,16 @@ class GetServerUserDataRequest:
1717
"""
1818
Key defines the user data key to get
1919
"""
20+
21+
@dataclass
22+
class ListServerUserDataRequest:
23+
zone: Optional[Zone]
24+
"""
25+
Zone of the user data to get
26+
"""
27+
28+
server_id: str
29+
30+
@dataclass
31+
class GetAllServerUserDataResponse:
32+
user_data: Dict[str, bytes]

0 commit comments

Comments
 (0)