|
30 | 30 | # isort: THIRDPARTY |
31 | 31 | from justbytes import Range |
32 | 32 |
|
| 33 | +# isort: FIRSTPARTY |
| 34 | +from dbus_client_gen import DbusClientMissingPropertyError |
| 35 | + |
33 | 36 | from .._alerts import ( |
34 | 37 | PoolAllocSpaceAlert, |
35 | 38 | PoolDeviceSizeChangeAlert, |
@@ -307,23 +310,36 @@ def size_triple(mopool: Any) -> SizeTriple: |
307 | 310 | """ |
308 | 311 | Calculate SizeTriple from size information. |
309 | 312 | """ |
310 | | - return SizeTriple( |
311 | | - Range(mopool.TotalPhysicalSize()), |
312 | | - get_property(mopool.TotalPhysicalUsed(), Range, None), |
313 | | - ) |
| 313 | + try: |
| 314 | + size = Range(mopool.TotalPhysicalSize()) |
| 315 | + except DbusClientMissingPropertyError: # pragma: no cover |
| 316 | + size = None |
| 317 | + |
| 318 | + try: |
| 319 | + used = get_property(mopool.TotalPhysicalUsed(), Range, None) |
| 320 | + except DbusClientMissingPropertyError: # pragma: no cover |
| 321 | + used = None |
| 322 | + |
| 323 | + return SizeTriple(size, used) |
314 | 324 |
|
315 | 325 | def uuid_str(self, mopool: Any) -> str: |
316 | 326 | """ |
317 | 327 | Return a string representation of UUID, correctly formatted. |
318 | 328 | """ |
319 | | - return self.uuid_formatter(mopool.Uuid()) |
| 329 | + try: |
| 330 | + return self.uuid_formatter(mopool.Uuid()) |
| 331 | + except DbusClientMissingPropertyError: # pragma: no cover |
| 332 | + return TABLE_UNKNOWN_STRING |
320 | 333 |
|
321 | 334 | @staticmethod |
322 | 335 | def name_str(mopool: Any) -> str: |
323 | 336 | """ |
324 | 337 | Return a string representation of the pool name. |
325 | 338 | """ |
326 | | - return mopool.Name() |
| 339 | + try: |
| 340 | + return mopool.Name() |
| 341 | + except DbusClientMissingPropertyError: # pragma: no cover |
| 342 | + return TABLE_UNKNOWN_STRING |
327 | 343 |
|
328 | 344 |
|
329 | 345 | class DefaultDetail(Default): # pylint: disable=too-few-public-methods |
@@ -425,13 +441,13 @@ def _print_detail_view( |
425 | 441 |
|
426 | 442 | size_triple = Default.size_triple(mopool) |
427 | 443 |
|
| 444 | + def size_str(value: Range | None) -> str: |
| 445 | + return TABLE_UNKNOWN_STRING if value is None else str(value) |
| 446 | + |
428 | 447 | print(f"Fully Allocated: {'Yes' if mopool.NoAllocSpace() else 'No'}") |
429 | | - print(f" Size: {size_triple.total()}") |
| 448 | + print(f" Size: {size_str(size_triple.total())}") |
430 | 449 | print(f" Allocated: {Range(mopool.AllocatedSize())}") |
431 | | - print( |
432 | | - " Used: " |
433 | | - f"{TABLE_UNKNOWN_STRING if size_triple.used() is None else size_triple.used()}" |
434 | | - ) |
| 450 | + print(f" Used: {size_str(size_triple.used())}") |
435 | 451 |
|
436 | 452 | def display(self): |
437 | 453 | """ |
|
0 commit comments