33from mypy .semanal import names_modified_in_lvalue
44from requests import Response
55
6- from scaleway_core .bridge import Zone
6+ from scaleway_core .bridge import Zone as ScwZone
77from scaleway_core .utils import validate_path_param
88from .api import InstanceV1API
99from .custom_marshalling import marshal_GetServerUserDataRequest
@@ -17,7 +17,7 @@ class InstanceUtilsV1API(InstanceV1API):
1717 """
1818
1919 def get_server_user_data (
20- self , server_id : str , key : str , zone : Optional [Zone ] = None
20+ self , server_id : str , key : str , zone : Optional [ScwZone ] = None
2121 ) -> Response :
2222 """
2323 GetServerUserData gets the content of a user data on a server for the given key.
@@ -53,7 +53,7 @@ def get_server_user_data(
5353 return res
5454
5555 def set_server_user_data (
56- self , server_id : str , key : str , content : bytes , zone : Optional [Zone ] = None
56+ self , server_id : str , key : str , content : bytes , zone : Optional [ScwZone ] = None
5757 ) -> Response :
5858 """
5959 Sets the content of a user data on a server for the given key.
@@ -78,7 +78,7 @@ def set_server_user_data(
7878 self ._throw_on_error (res )
7979 return res
8080
81- def get_all_server_user_data (self , server_id : str , zone : Optional [Zone ] = None ) -> GetAllServerUserDataResponse :
81+ def get_all_server_user_data (self , server_id : str , zone : Optional [ScwZone ] = None ) -> GetAllServerUserDataResponse :
8282 param_zone = validate_path_param ("zone" , zone or self .client .default_zone )
8383 param_server_id = validate_path_param ("server_id" , server_id )
8484
@@ -94,5 +94,20 @@ def get_all_server_user_data(self, server_id: str, zone: Optional[Zone] = None)
9494
9595 return res
9696
97+ def set_all_server_user_data (self , server_id : str , user_data : Dict [str , bytes ], zone : Optional [ScwZone ] = None ):
98+ param_zone = validate_path_param ("zone" , zone or self .client .default_zone )
99+ param_server_id = validate_path_param ("server_id" , server_id )
100+
101+ all_user_data_res = InstanceUtilsV1API .list_server_user_data (self , server_id = param_server_id , zone = param_zone )
102+ for key in all_user_data_res .user_data :
103+ if user_data .get (key ) is not None :
104+ continue
105+ InstanceUtilsV1API .delete_server_user_data (self , server_id = param_server_id , key = key )
106+
107+ for key in user_data :
108+ InstanceUtilsV1API .set_server_user_data (self , server_id = param_server_id , zone = param_zone , key = key , content = user_data [key ])
109+
110+
111+
97112
98113
0 commit comments