Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions scaleway-async/scaleway_async/baremetal/v1/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -398,6 +398,7 @@ async def install_server(
password: Optional[str] = None,
service_user: Optional[str] = None,
service_password: Optional[str] = None,
partitioning_schema: Optional[Schema] = None,
) -> Server:
"""
Install an Elastic Metal server.
Expand All @@ -411,6 +412,7 @@ async def install_server(
:param password: Password used for the installation.
:param service_user: User used for the service to install.
:param service_password: Password used for the service to install.
:param partitioning_schema: Partitioning schema.
:return: :class:`Server <Server>`

Usage:
Expand Down Expand Up @@ -441,6 +443,7 @@ async def install_server(
password=password,
service_user=service_user,
service_password=service_password,
partitioning_schema=partitioning_schema,
),
self.client,
),
Expand Down
276 changes: 146 additions & 130 deletions scaleway-async/scaleway_async/baremetal/v1/marshalling.py
Original file line number Diff line number Diff line change
Expand Up @@ -894,6 +894,12 @@ def unmarshal_ServerInstall(data: Any) -> ServerInstall:
if field is not None:
args["service_url"] = field

field = data.get("partitioning_schema", None)
if field is not None:
args["partitioning_schema"] = unmarshal_Schema(field)
else:
args["partitioning_schema"] = None

return ServerInstall(**args)


Expand Down Expand Up @@ -1362,6 +1368,136 @@ def marshal_AddOptionServerRequest(
return output


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

if request.label is not None:
output["label"] = str(request.label)

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

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

return output


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

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

if request.type_ is not None:
output["type"] = str(request.type_)

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

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

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

return output


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

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

if request.partitions is not None:
output["partitions"] = [
marshal_SchemaPartition(item, defaults) for item in request.partitions
]

return output


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

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

if request.format is not None:
output["format"] = str(request.format)

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

return output


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

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

if request.level is not None:
output["level"] = str(request.level)

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

return output


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

if request.pools is not None:
output["pools"] = [marshal_SchemaPool(item, defaults) for item in request.pools]

return output


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

if request.disks is not None:
output["disks"] = [marshal_SchemaDisk(item, defaults) for item in request.disks]

if request.raids is not None:
output["raids"] = [marshal_SchemaRAID(item, defaults) for item in request.raids]

if request.filesystems is not None:
output["filesystems"] = [
marshal_SchemaFilesystem(item, defaults) for item in request.filesystems
]

if request.zfs is not None:
output["zfs"] = marshal_SchemaZFS(request.zfs, defaults)

return output


def marshal_CreateServerRequestInstall(
request: CreateServerRequestInstall,
defaults: ProfileDefaults,
Expand Down Expand Up @@ -1389,6 +1525,11 @@ def marshal_CreateServerRequestInstall(
if request.service_password is not None:
output["service_password"] = request.service_password

if request.partitioning_schema is not None:
output["partitioning_schema"] = marshal_Schema(
request.partitioning_schema, defaults
)

return output


Expand Down Expand Up @@ -1462,6 +1603,11 @@ def marshal_InstallServerRequest(
if request.service_password is not None:
output["service_password"] = request.service_password

if request.partitioning_schema is not None:
output["partitioning_schema"] = marshal_Schema(
request.partitioning_schema, defaults
)

return output


Expand Down Expand Up @@ -1567,136 +1713,6 @@ def marshal_UpdateSettingRequest(
return output


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

if request.label is not None:
output["label"] = str(request.label)

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

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

return output


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

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

if request.type_ is not None:
output["type"] = str(request.type_)

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

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

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

return output


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

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

if request.partitions is not None:
output["partitions"] = [
marshal_SchemaPartition(item, defaults) for item in request.partitions
]

return output


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

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

if request.format is not None:
output["format"] = str(request.format)

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

return output


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

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

if request.level is not None:
output["level"] = str(request.level)

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

return output


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

if request.pools is not None:
output["pools"] = [marshal_SchemaPool(item, defaults) for item in request.pools]

return output


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

if request.disks is not None:
output["disks"] = [marshal_SchemaDisk(item, defaults) for item in request.disks]

if request.raids is not None:
output["raids"] = [marshal_SchemaRAID(item, defaults) for item in request.raids]

if request.filesystems is not None:
output["filesystems"] = [
marshal_SchemaFilesystem(item, defaults) for item in request.filesystems
]

if request.zfs is not None:
output["zfs"] = marshal_SchemaZFS(request.zfs, defaults)

return output


def marshal_ValidatePartitioningSchemaRequest(
request: ValidatePartitioningSchemaRequest,
defaults: ProfileDefaults,
Expand Down
16 changes: 16 additions & 0 deletions scaleway-async/scaleway_async/baremetal/v1/types.py
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@ class SchemaFilesystemFormat(str, Enum, metaclass=StrEnumMeta):
EXT4 = "ext4"
SWAP = "swap"
ZFS = "zfs"
XFS = "xfs"

def __str__(self) -> str:
return str(self.value)
Expand Down Expand Up @@ -520,6 +521,11 @@ class ServerInstall:
Address of the installed service.
"""

partitioning_schema: Optional[Schema]
"""
Partitioning schema.
"""


@dataclass
class ServerOption:
Expand Down Expand Up @@ -609,6 +615,11 @@ class CreateServerRequestInstall:
Password used for the service to install.
"""

partitioning_schema: Optional[Schema]
"""
Partitioning schema.
"""


@dataclass
class OS:
Expand Down Expand Up @@ -1281,6 +1292,11 @@ class InstallServerRequest:
Password used for the service to install.
"""

partitioning_schema: Optional[Schema]
"""
Partitioning schema.
"""


@dataclass
class ListOSRequest:
Expand Down
Loading