Mini Shell
"""
Management of POSIX Quotas
==========================
The quota can be managed for the system:
.. code-block:: yaml
/:
quota.mode:
mode: off
quotatype: user
"""
def __virtual__():
"""
Only load if the quota module is available in __salt__
"""
if "quota.report" in __salt__:
return "quota"
return (False, "quota module could not be loaded")
def mode(name, mode, quotatype):
"""
Set the quota for the system
name
The filesystem to set the quota mode on
mode
Whether the quota system is on or off
quotatype
Must be ``user`` or ``group``
"""
ret = {"name": name, "changes": {}, "result": None, "comment": ""}
fun = "off"
if mode is True:
fun = "on"
if __salt__["quota.get_mode"](name)[name][quotatype] == fun:
ret["result"] = True
ret["comment"] = f"Quota for {name} already set to {fun}"
return ret
if __opts__["test"]:
ret["comment"] = f"Quota for {name} needs to be set to {fun}"
return ret
if __salt__[f"quota.{fun}"](name):
ret["changes"] = {"quota": name}
ret["result"] = True
ret["comment"] = f"Set quota for {name} to {fun}"
return ret
else:
ret["result"] = False
ret["comment"] = f"Failed to set quota for {name} to {fun}"
return ret
Zerion Mini Shell 1.0