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/moosefs.py |
""" Module for gathering and managing information about MooseFS """ import salt.utils.path def __virtual__(): """ Only load if the mfs commands are installed """ if salt.utils.path.which("mfsgetgoal"): return "moosefs" return ( False, "The moosefs execution module cannot be loaded: the mfsgetgoal binary is not in" " the path.", ) def dirinfo(path, opts=None): """ Return information on a directory located on the Moose CLI Example: .. code-block:: bash salt '*' moosefs.dirinfo /path/to/dir/ [-[n][h|H]] """ cmd = "mfsdirinfo" ret = {} if opts: cmd += " -" + opts cmd += " " + path out = __salt__["cmd.run_all"](cmd, python_shell=False) output = out["stdout"].splitlines() for line in output: if not line: continue comps = line.split(":") ret[comps[0].strip()] = comps[1].strip() return ret def fileinfo(path): """ Return information on a file located on the Moose CLI Example: .. code-block:: bash salt '*' moosefs.fileinfo /path/to/dir/ """ cmd = "mfsfileinfo " + path ret = {} chunknum = "" out = __salt__["cmd.run_all"](cmd, python_shell=False) output = out["stdout"].splitlines() for line in output: if not line: continue if "/" in line: comps = line.split("/") chunknum = comps[0].strip().split(":") meta = comps[1].strip().split(" ") chunk = chunknum[0].replace("chunk ", "") loc = chunknum[1].strip() id_ = meta[0].replace("(id:", "") ver = meta[1].replace(")", "").replace("ver:", "") ret[chunknum[0]] = { "chunk": chunk, "loc": loc, "id": id_, "ver": ver, } if "copy" in line: copyinfo = line.strip().split(":") ret[chunknum[0]][copyinfo[0]] = { "copy": copyinfo[0].replace("copy ", ""), "ip": copyinfo[1].strip(), "port": copyinfo[2], } return ret def mounts(): """ Return a list of current MooseFS mounts CLI Example: .. code-block:: bash salt '*' moosefs.mounts """ cmd = "mount" ret = {} out = __salt__["cmd.run_all"](cmd) output = out["stdout"].splitlines() for line in output: if not line: continue if "fuse.mfs" in line: comps = line.split(" ") info1 = comps[0].split(":") info2 = info1[1].split("/") ret[comps[2]] = { "remote": { "master": info1[0], "port": info2[0], "subfolder": "/" + info2[1], }, "local": comps[2], "options": (comps[5].replace("(", "").replace(")", "").split(",")), } return ret def getgoal(path, opts=None): """ Return goal(s) for a file or directory CLI Example: .. code-block:: bash salt '*' moosefs.getgoal /path/to/file [-[n][h|H]] salt '*' moosefs.getgoal /path/to/dir/ [-[n][h|H][r]] """ cmd = "mfsgetgoal" ret = {} if opts: cmd += " -" + opts else: opts = "" cmd += " " + path out = __salt__["cmd.run_all"](cmd, python_shell=False) output = out["stdout"].splitlines() if "r" not in opts: goal = output[0].split(": ") ret = { "goal": goal[1], } else: for line in output: if not line: continue if path in line: continue comps = line.split() keytext = comps[0] + " with goal" if keytext not in ret: ret[keytext] = {} ret[keytext][comps[3]] = comps[5] return ret