Add support to inspect volume for backup config

main
Felix Stupp 2 years ago
parent 505248a495
commit f49635f548
Signed by: zocker
GPG Key ID: 93E1BD26F6B02FB7

@ -37,6 +37,7 @@ from typing import (
Sequence, Sequence,
TypeAlias, TypeAlias,
TypedDict, TypedDict,
cast,
) )
from attrs import define, field from attrs import define, field
@ -90,6 +91,16 @@ class ComposeVolumeDef(TypedDict, total=False):
name: PublicVolumeName name: PublicVolumeName
class VolumeInspectDef(TypedDict):
Name: PublicVolumeName
Driver: str
Mountpoint: str
CreatedAt: str # ISO
Labels: LabelDict
Scope: str
Options: Mapping
# === constants # === constants
@ -321,6 +332,25 @@ class ComposeVolume:
"name", PublicVolumeName(f"{self.compose.project_name}_{self.name}") "name", PublicVolumeName(f"{self.compose.project_name}_{self.name}")
) )
@cached_property
def backup_config(self) -> VolumeBackupConfig:
return VolumeBackupConfig.from_labels(self.inspect()["Labels"])
def inspect(self) -> VolumeInspectDef:
return cast(
VolumeInspectDef,
self.compose.podman.exec.exec_cmd(
command=CommandArgs(
[
"volume",
"inspect",
self.public_name,
]
),
check=True,
).to_json(),
)
def parse_labels(labels: LabelDict) -> LabelDict: def parse_labels(labels: LabelDict) -> LabelDict:
ret = dict[str, str]() ret = dict[str, str]()

Loading…
Cancel
Save