Skip to content

Commit

Permalink
add support get_all_server_data_user
Browse files Browse the repository at this point in the history
  • Loading branch information
Laure-di committed Jan 14, 2025
1 parent 7b45a1a commit 4bde6ef
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 3 deletions.
24 changes: 22 additions & 2 deletions scaleway/scaleway/instance/v1/custom_api.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
from typing import Optional
from typing import Optional, Dict

from mypy.semanal import names_modified_in_lvalue
from requests import Response

from scaleway_core.bridge import Zone
from scaleway_core.utils import validate_path_param
from .api import InstanceV1API
from .custom_marshalling import marshal_GetServerUserDataRequest
from .custom_types import GetServerUserDataRequest
from .custom_types import GetServerUserDataRequest, GetAllServerUserDataResponse


class InstanceUtilsV1API(InstanceV1API):
Expand Down Expand Up @@ -76,3 +77,22 @@ def set_server_user_data(

self._throw_on_error(res)
return res

def get_all_server_user_data(self, server_id: str, zone: Optional[Zone] = None) -> GetAllServerUserDataResponse:
param_zone = validate_path_param("zone", zone or self.client.default_zone)
param_server_id = validate_path_param("server_id", server_id)

all_user_data_res = InstanceUtilsV1API.list_server_user_data(self, server_id=param_server_id, zone=param_zone)

user_data: Dict[str,bytes] = {}
for key in all_user_data_res.user_data:
value = InstanceUtilsV1API.get_server_user_data(self, server_id=param_server_id, key=key)
print("value: ", value)
user_data[key] = value.content

res = GetAllServerUserDataResponse(user_data=user_data)

return res



11 changes: 11 additions & 0 deletions scaleway/scaleway/instance/v1/custom_marshalling.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

from scaleway.instance.v1.custom_types import (
GetServerUserDataRequest,
ListServerUserDataRequest,
)
from scaleway_core.profile import ProfileDefaults

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

return output

def marshal_ListServerUserDataRequest(request: ListServerUserDataRequest, defaults: ProfileDefaults) -> Dict[str, Any]:
output: Dict[str, Any] = {}

if request.server_id is not None:
output["server_id"] = request.server_id
if request.zone is not None:
output["zone"] = request.zone

return output
15 changes: 14 additions & 1 deletion scaleway/scaleway/instance/v1/custom_types.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from dataclasses import dataclass
from typing import Optional
from typing import Optional, Dict

from scaleway_core.bridge import Zone

Expand All @@ -17,3 +17,16 @@ class GetServerUserDataRequest:
"""
Key defines the user data key to get
"""

@dataclass
class ListServerUserDataRequest:
zone: Optional[Zone]
"""
Zone of the user data to get
"""

server_id: str

@dataclass
class GetAllServerUserDataResponse:
user_data: Dict[str, bytes]

0 comments on commit 4bde6ef

Please sign in to comment.