Skip to content

Commit

Permalink
Add hypervisor uptime property
Browse files Browse the repository at this point in the history
Add uptime to hypervisor properties
Update Hypervisor Query docs
Update tests
  • Loading branch information
gmatthews20 committed Dec 11, 2024
1 parent 6c2f608 commit 7994dc1
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 1 deletion.
1 change: 1 addition & 0 deletions docs/user_docs/query_docs/HYPERVISORS.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
3 changes: 3 additions & 0 deletions openstackquery/enums/props/hypervisor_properties.py
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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]
Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

setup(
name="openstackquery",
version="0.1.2",
version="0.1.3",
author="Anish Mudaraddi",
author_email="<[email protected]>",
description=DESCRIPTION,
Expand Down
17 changes: 17 additions & 0 deletions tests/enums/props/test_hypervisor_properties.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
)

0 comments on commit 7994dc1

Please sign in to comment.