HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //snap/lxd/29619/lib/python3/dist-packages/ceph/tests/utils.py
from ceph.deployment.inventory import Devices, Device

try:
    from typing import Any, List
except ImportError:
    pass  # for type checking


def _mk_device(rotational=True,
               locked=False,
               size="394.27 GB",
               vendor='Vendor',
               model='Model'):
    return [Device(
        path='??',
        sys_api={
            "rotational": '1' if rotational else '0',
            "vendor": vendor,
            "human_readable_size": size,
            "partitions": {},
            "locked": int(locked),
            "sectorsize": "512",
            "removable": "0",
            "path": "??",
            "support_discard": "",
            "model": model,
            "ro": "0",
            "nr_requests": "128",
            "size": 423347879936  # ignore coversion from human_readable_size
        },
        available=not locked,
        rejected_reasons=['locked'] if locked else [],
        lvs=[],
        device_id="Model-Vendor-foobar"
    )]


def _mk_inventory(devices):
    # type: (Any) -> List[Device]
    devs = []
    for dev_, name in zip(devices, map(chr, range(ord('a'), ord('z')))):
        dev = Device.from_json(dev_.to_json())
        dev.path = '/dev/sd' + name
        dev.sys_api = dict(dev_.sys_api, path='/dev/sd' + name)
        devs.append(dev)
    return Devices(devices=devs).devices