diff --git a/docs/user_docs/query_docs/HYPERVISORS.md b/docs/user_docs/query_docs/HYPERVISORS.md index 04b7322..411e396 100644 --- a/docs/user_docs/query_docs/HYPERVISORS.md +++ b/docs/user_docs/query_docs/HYPERVISORS.md @@ -43,6 +43,7 @@ from enums.query.props.hypervisor_properties import HypervisorProperties | HYPERVISOR_VCPUS | `int` | "vcpus" | The number of vCPUs on this hypervisor. | | HYPERVISOR_VCPUS_USED | `int` | "vcpus_used" | The number of vCPUs currently being used on this hypervisor. | | HYPERVISOR_DISABLED_REASON | `string` | "disabled_reason" | Comment of why the hypervisor is disabled, None if not disabled | +| HYPERVISOR_UPTIME | `string` | "uptime" | The total uptime of the hypervisor and info about average load | Any of these properties can be used for any of the API methods that takes a property - like `select`, `where`, `sort_by` etc diff --git a/openstackquery/enums/props/hypervisor_properties.py b/openstackquery/enums/props/hypervisor_properties.py index 1517a8c..0435def 100644 --- a/openstackquery/enums/props/hypervisor_properties.py +++ b/openstackquery/enums/props/hypervisor_properties.py @@ -28,6 +28,7 @@ class HypervisorProperties(PropEnum): HYPERVISOR_VCPUS = auto() HYPERVISOR_VCPUS_USED = auto() HYPERVISOR_DISABLED_REASON = auto() + HYPERVISOR_UPTIME = auto() @staticmethod def _get_aliases() -> Dict: @@ -63,6 +64,7 @@ def _get_aliases() -> Dict: HypervisorProperties.HYPERVISOR_VCPUS: ["vcpus"], HypervisorProperties.HYPERVISOR_VCPUS_USED: ["vcpus_used"], HypervisorProperties.HYPERVISOR_DISABLED_REASON: ["disabled_reason"], + HypervisorProperties.HYPERVISOR_UPTIME: ["uptime"], } @staticmethod @@ -110,6 +112,7 @@ def get_prop_mapping(prop) -> Optional[PropFunc]: HypervisorProperties.HYPERVISOR_DISABLED_REASON: lambda a: a["service"][ "disabled_reason" ], + HypervisorProperties.HYPERVISOR_UPTIME: lambda a: a["uptime"], } try: return mapping[prop] diff --git a/setup.py b/setup.py index 6ec3370..b74691d 100644 --- a/setup.py +++ b/setup.py @@ -7,7 +7,7 @@ setup( name="openstackquery", - version="0.1.2", + version="0.1.3", author="Anish Mudaraddi", author_email="", description=DESCRIPTION, diff --git a/tests/enums/props/test_hypervisor_properties.py b/tests/enums/props/test_hypervisor_properties.py index 01a7833..21597bc 100644 --- a/tests/enums/props/test_hypervisor_properties.py +++ b/tests/enums/props/test_hypervisor_properties.py @@ -280,3 +280,20 @@ def test_hypervisor_disabled_reason_serialization(val): HypervisorProperties.from_string(val) is HypervisorProperties.HYPERVISOR_DISABLED_REASON ) + + +@pytest.mark.parametrize( + "val", + [ + "hypervisor_uptime", + "Hypervisor_Uptime", + "HyPeRvIsOr_UpTiMe", + ], +) +def test_hypervisor_uptime_serialization(val): + """ + Tests that variants of HYPERVISOR_UPTIME can be serialized + """ + assert ( + HypervisorProperties.from_string(val) is HypervisorProperties.HYPERVISOR_UPTIME + )