selfprivacy-rest-api/selfprivacy_api/graphql/queries/storage.py

37 lines
1,021 B
Python
Raw Permalink Normal View History

2022-07-25 14:08:31 +00:00
"""Storage queries."""
2024-06-10 01:52:26 +00:00
2022-07-25 14:08:31 +00:00
# pylint: disable=too-few-public-methods
import typing
import strawberry
from selfprivacy_api.graphql.common_types.service import (
StorageVolume,
)
from selfprivacy_api.utils.block_devices import BlockDevices
2022-07-25 14:08:31 +00:00
@strawberry.type
class Storage:
"""GraphQL queries to get storage information."""
2022-07-25 14:08:31 +00:00
@strawberry.field
def volumes(self) -> typing.List[StorageVolume]:
"""Get list of volumes"""
return [
StorageVolume(
2024-06-10 01:52:26 +00:00
total_space=(
str(volume.fssize)
if volume.fssize is not None
else str(volume.size)
),
2022-07-25 14:17:57 +00:00
free_space=str(volume.fsavail),
used_space=str(volume.fsused),
root=volume.is_root(),
2022-07-25 14:08:31 +00:00
name=volume.name,
model=volume.model,
serial=volume.serial,
type=volume.type,
2022-07-25 14:08:31 +00:00
)
for volume in BlockDevices().get_block_devices()
]