mirror of
https://github.com/ansible-collections/community.general.git
synced 2026-05-02 16:32:56 +00:00
Make all doc fragments, module utils, and plugin utils private (#11896)
* Make all doc fragments private. * Make all plugin utils private. * Make all module utils private. * Reformat. * Changelog fragment. * Update configs and ignores. * Adjust unit test names.
This commit is contained in:
parent
9ef1dbb6d5
commit
4fa82b9617
807 changed files with 2041 additions and 1702 deletions
|
|
@ -1,94 +0,0 @@
|
|||
#
|
||||
# Copyright (c) 2019, Sandeep Kasargod <sandeep@vexata.com>
|
||||
# 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
|
||||
|
||||
HAS_VEXATAPI = True
|
||||
try:
|
||||
from vexatapi.vexata_api_proxy import VexataAPIProxy
|
||||
except ImportError:
|
||||
HAS_VEXATAPI = False
|
||||
|
||||
from ansible.module_utils.basic import env_fallback
|
||||
|
||||
if t.TYPE_CHECKING:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
|
||||
|
||||
VXOS_VERSION = None
|
||||
|
||||
|
||||
def get_version(iocs_json) -> tuple[int, ...]:
|
||||
if not iocs_json:
|
||||
raise Exception("Invalid IOC json")
|
||||
active = next((x for x in iocs_json if x["mgmtRole"]), None)
|
||||
if active is None:
|
||||
raise Exception("Unable to detect active IOC")
|
||||
ver = active["swVersion"]
|
||||
if ver[0] != "v":
|
||||
raise Exception("Illegal version string")
|
||||
ver = ver[1 : ver.find("-")]
|
||||
ver = map(int, ver.split("."))
|
||||
return tuple(ver)
|
||||
|
||||
|
||||
def get_array(module: AnsibleModule):
|
||||
"""Return storage array object or fail"""
|
||||
global VXOS_VERSION
|
||||
array = module.params["array"]
|
||||
user = module.params.get("user", None)
|
||||
password = module.params.get("password", None)
|
||||
validate = module.params.get("validate_certs")
|
||||
|
||||
if not HAS_VEXATAPI:
|
||||
module.fail_json(msg="vexatapi library is required for this module. To install, use `pip install vexatapi`")
|
||||
|
||||
if user and password:
|
||||
system = VexataAPIProxy(array, user, password, verify_cert=validate)
|
||||
else:
|
||||
module.fail_json(
|
||||
msg="The user/password are required to be passed in to "
|
||||
"the module as arguments or by setting the "
|
||||
"VEXATA_USER and VEXATA_PASSWORD environment variables."
|
||||
)
|
||||
try:
|
||||
if system.test_connection():
|
||||
VXOS_VERSION = get_version(system.iocs())
|
||||
return system
|
||||
else:
|
||||
module.fail_json(msg="Test connection to array failed.")
|
||||
except Exception as e:
|
||||
module.fail_json(msg=f"Vexata API access failed: {e}")
|
||||
|
||||
|
||||
def argument_spec() -> dict[str, t.Any]:
|
||||
"""Return standard base dictionary used for the argument_spec argument in AnsibleModule"""
|
||||
return dict(
|
||||
array=dict(type="str", required=True),
|
||||
user=dict(type="str", fallback=(env_fallback, ["VEXATA_USER"])),
|
||||
password=dict(type="str", no_log=True, fallback=(env_fallback, ["VEXATA_PASSWORD"])),
|
||||
validate_certs=dict(type="bool", required=False, default=False),
|
||||
)
|
||||
|
||||
|
||||
def required_together() -> list[list[str]]:
|
||||
"""Return the default list used for the required_together argument to AnsibleModule"""
|
||||
return [["user", "password"]]
|
||||
|
||||
|
||||
def size_to_MiB(size: str) -> int:
|
||||
"""Convert a '<integer>[MGT]' string to MiB, return -1 on error."""
|
||||
quant = size[:-1]
|
||||
exponent = size[-1]
|
||||
if not quant.isdigit() or exponent not in "MGT":
|
||||
return -1
|
||||
quant_int = int(quant)
|
||||
if exponent == "G":
|
||||
quant_int <<= 10
|
||||
elif exponent == "T":
|
||||
quant_int <<= 20
|
||||
return quant_int
|
||||
Loading…
Add table
Add a link
Reference in a new issue