File: //proc/thread-self/root/opt/saltstack/salt/lib/python3.10/site-packages/salt/states/tuned.py
"""
Interface to Red Hat tuned-adm module
:maintainer: Syed Ali <alicsyed@gmail.com>
:maturity: new
:depends: cmd.run
:platform: Linux
"""
import salt.exceptions
def profile(name):
"""
This state module allows you to modify system tuned parameters
Example tuned.sls file to set profile to virtual-guest
tuned:
tuned:
- profile
- name: virtual-guest
name
tuned profile name to set the system to
To see a valid list of states call execution module:
:py:func:`tuned.list <salt.modules.tuned.list_>`
"""
# create data-structure to return with default value
ret = {"name": "", "changes": {}, "result": False, "comment": ""}
ret[name] = name
profile = name
# get the current state of tuned-adm
current_state = __salt__["tuned.active"]()
valid_profiles = __salt__["tuned.list"]()
# check valid profiles, and return error if profile name is not valid
if profile not in valid_profiles:
raise salt.exceptions.SaltInvocationError("Invalid Profile Name")
# if current state is same as requested state, return without doing much
if profile in current_state:
ret["result"] = True
ret["comment"] = "System already in the correct state"
return ret
# test mode
if __opts__["test"] is True:
ret["comment"] = f'The state of "{current_state}" will be changed.'
ret["changes"] = {
"old": current_state,
"new": f"Profile will be set to {profile}",
}
# return None when testing
ret["result"] = None
return ret
# we come to this stage if current state is different that requested state
# we there have to set the new state request
new_state = __salt__["tuned.profile"](profile)
# create the comment data structure
ret["comment"] = f'The state of "{profile}" was changed!'
# fill in the ret data structure
ret["changes"] = {
"old": current_state,
"new": new_state,
}
ret["result"] = True
# return with the dictionary data structure
return ret
def off(name=None):
"""
Turns 'tuned' off.
Example tuned.sls file for turning tuned off:
tuned:
tuned.off: []
To see a valid list of states call execution module:
:py:func:`tuned.list <salt.modules.tuned.list_>`
"""
# create data-structure to return with default value
ret = {"name": "off", "changes": {}, "result": False, "comment": "off"}
# check the current state of tuned
current_state = __salt__["tuned.active"]()
# if profile is already off, then don't do anything
if current_state == "off":
ret["result"] = True
ret["comment"] = "System already in the correct state"
return ret
# test mode
if __opts__["test"] is True:
ret["comment"] = f'The state of "{current_state}" will be changed.'
ret["changes"] = {
"old": current_state,
"new": "Profile will be set to off",
}
# return None when testing
ret["result"] = None
return ret
# actually execute the off statement
if __salt__["tuned.off"]():
ret["result"] = True
ret["changes"] = {
"old": current_state,
"new": "off",
}
return ret