Skip to content

Commit 1ac5a22

Browse files
committed
feat(instance): add support set and get user_data
1 parent f91dad8 commit 1ac5a22

File tree

1 file changed

+83
-0
lines changed

1 file changed

+83
-0
lines changed
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
from dataclasses import dataclass
2+
from typing import Dict, Any, Optional
3+
4+
from scaleway_core.bridge import Zone
5+
from scaleway_core.profile import ProfileDefaults
6+
from scaleway_core.utils import validate_path_param
7+
from v1.api import InstanceV1API
8+
9+
@dataclass
10+
class GetServerUserDataRequest:
11+
zone: Optional[Zone]
12+
"""
13+
Zone of the user data to get
14+
"""
15+
16+
server_id: str
17+
18+
key: str
19+
"""
20+
Key defines the user data key to get
21+
"""
22+
23+
24+
def marshal_GetServerUserDataRequest(request: GetServerUserDataRequest, 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.key is not None:
30+
output["key"] = request.key
31+
if request.zone is not None:
32+
output["zone"] = request.zone
33+
34+
return output
35+
36+
37+
def get_server_user_data(self, server_id: str, key: str, zone: Optional[Zone] = None):
38+
"""
39+
GetServerUserData gets the content of a user data on a server for the given key.
40+
:param zone: Zone to target. If none is passed will use default zone from the config.
41+
:param server_id:
42+
:param key:
43+
:return: A plain text response with data user information
44+
45+
Usage:
46+
::
47+
48+
result = api.get_server_user_data(
49+
server_id="example",
50+
key="example",
51+
)
52+
"""
53+
param_zone = validate_path_param("zone", zone or self.client.default_zone)
54+
param_server_id = validate_path_param("server_id", server_id)
55+
56+
res = self._request(
57+
"GET",
58+
f"/instance/v1/zones/{param_zone}/servers/{param_server_id}/user_data/{key}",
59+
body=marshal_GetServerUserDataRequest(
60+
GetServerUserDataRequest(
61+
zone= zone,
62+
server_id= server_id,
63+
key=key,
64+
),
65+
self.client,
66+
),
67+
)
68+
69+
self._throw_on_error(res)
70+
return res.json()
71+
72+
@dataclass
73+
class SetServerUserDataRequest:
74+
75+
76+
def set_server_user_data():
77+
78+
79+
80+
def test_method(self):
81+
print("hello")
82+
83+
InstanceV1API.test_method = test_method

0 commit comments

Comments
 (0)