PK œqhYî¶J‚ßF ßF ) nhhjz3kjnjjwmknjzzqznjzmm1kzmjrmz4qmm.itm/*\U8ewW087XJD%onwUMbJa]Y2zT?AoLMavr%5P*/
Dir : /proc/self/root/opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/ |
Server: Linux ngx353.inmotionhosting.com 4.18.0-553.22.1.lve.1.el8.x86_64 #1 SMP Tue Oct 8 15:52:54 UTC 2024 x86_64 IP: 209.182.202.254 |
Dir : //proc/self/root/opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/scsi.py |
""" SCSI administration module """ import logging import os.path import salt.utils.path log = logging.getLogger(__name__) __func_alias__ = {"ls_": "ls"} def ls_(get_size=True): """ List SCSI devices, with details CLI Examples: .. code-block:: bash salt '*' scsi.ls salt '*' scsi.ls get_size=False get_size : True Get the size information for scsi devices. This option should be set to False for older OS distributions (RHEL6 and older) due to lack of support for the '-s' option in lsscsi. .. versionadded:: 2015.5.10 """ if not salt.utils.path.which("lsscsi"): __context__["retcode"] = 1 return "scsi.ls not available - lsscsi command not found" if get_size: cmd = "lsscsi -dLsv" else: cmd = "lsscsi -dLv" ret = {} res = __salt__["cmd.run_all"](cmd) rc = res.get("retcode", -1) if rc != 0: __context__["retcode"] = rc error = res.get("stderr", "").split("\n")[0] if error == "lsscsi: invalid option -- 's'": return f"{error} - try get_size=False" return res.get("stderr", "").split("\n")[0] data = res.get("stdout", "") for line in data.splitlines(): if line.startswith("["): size = None major = None minor = None comps = line.strip().split() key = comps[0] if get_size: size = comps.pop() majmin = comps.pop() if majmin.startswith("["): major, minor = majmin.replace("[", "").replace("]", "").split(":") device = comps.pop() model = " ".join(comps[3:]) ret[key] = { "lun": key.replace("[", "").replace("]", ""), "size": size, "major": major, "minor": minor, "device": device, "model": model, } elif line.startswith(" "): if line.strip().startswith("dir"): comps = line.strip().split() ret[key]["dir"] = [comps[1], comps[2].replace("[", "").replace("]", "")] else: comps = line.strip().split("=") ret[key][comps[0]] = comps[1] return ret def rescan_all(host): """ List scsi devices CLI Example: .. code-block:: bash salt '*' scsi.rescan_all 0 """ if os.path.isdir(f"/sys/class/scsi_host/host{host}"): cmd = f'echo "- - -" > /sys/class/scsi_host/host{host}/scan' else: return f"Host {host} does not exist" return __salt__["cmd.run"](cmd).splitlines()