1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2026-02-04 07:51:50 +00:00
community.general/plugins/module_utils/storage/hpe3par/hpe3par.py
Felix Fontein ef632145e9
Add more module_utils typing (#11283)
Add more module_utils typing.
2025-12-15 19:46:51 +01:00

59 lines
2 KiB
Python

# Copyright (c) 2018, Hewlett Packard Enterprise Development LP
# Simplified BSD License (see LICENSES/BSD-2-Clause.txt or https://opensource.org/licenses/BSD-2-Clause)
# SPDX-License-Identifier: BSD-2-Clause
from __future__ import annotations
import typing as t
from ansible.module_utils import basic
def convert_to_binary_multiple(size_with_unit: str | None) -> int:
if size_with_unit is None:
return -1
valid_units = ["MiB", "GiB", "TiB"]
valid_unit = False
for unit in valid_units:
if size_with_unit.strip().endswith(unit):
valid_unit = True
size = size_with_unit.split(unit)[0]
if float(size) < 0:
return -1
if not valid_unit:
raise ValueError(f"{size_with_unit} does not have a valid unit. The unit must be one of {valid_units}")
size = size_with_unit.replace(" ", "").split("iB")[0]
size_kib = basic.human_to_bytes(size)
return int(size_kib / (1024 * 1024))
storage_system_spec = {
"storage_system_ip": {"required": True, "type": "str"},
"storage_system_username": {"required": True, "type": "str", "no_log": True},
"storage_system_password": {"required": True, "type": "str", "no_log": True},
"secure": {"type": "bool", "default": False},
}
def cpg_argument_spec() -> dict[str, t.Any]:
spec = {
"state": {"required": True, "choices": ["present", "absent"], "type": "str"},
"cpg_name": {"required": True, "type": "str"},
"domain": {"type": "str"},
"growth_increment": {
"type": "str",
},
"growth_limit": {
"type": "str",
},
"growth_warning": {
"type": "str",
},
"raid_type": {"required": False, "type": "str", "choices": ["R0", "R1", "R5", "R6"]},
"set_size": {"required": False, "type": "int"},
"high_availability": {"type": "str", "choices": ["PORT", "CAGE", "MAG"]},
"disk_type": {"type": "str", "choices": ["FC", "NL", "SSD"]},
}
spec.update(storage_system_spec)
return spec