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/mac_power.py |
""" Module for editing power settings on macOS .. versionadded:: 2016.3.0 """ import salt.utils.mac_utils import salt.utils.platform from salt.exceptions import SaltInvocationError __virtualname__ = "power" def __virtual__(): """ Only for macOS """ if not salt.utils.platform.is_darwin(): return ( False, "The mac_power module could not be loaded: " "module only works on macOS systems.", ) return __virtualname__ def _validate_sleep(minutes): """ Helper function that validates the minutes parameter. Can be any number between 1 and 180. Can also be the string values "Never" and "Off". Because "On" and "Off" get converted to boolean values on the command line it will error if "On" is passed Returns: The value to be passed to the command """ # Must be a value between 1 and 180 or Never/Off if isinstance(minutes, str): if minutes.lower() in ["never", "off"]: return "Never" else: msg = ( "Invalid String Value for Minutes.\n" 'String values must be "Never" or "Off".\n' "Passed: {}".format(minutes) ) raise SaltInvocationError(msg) elif isinstance(minutes, bool): if minutes: msg = ( "Invalid Boolean Value for Minutes.\n" 'Boolean value "On" or "True" is not allowed.\n' 'Salt CLI converts "On" to boolean True.\n' "Passed: {}".format(minutes) ) raise SaltInvocationError(msg) else: return "Never" elif isinstance(minutes, int): if minutes in range(1, 181): return minutes else: msg = ( "Invalid Integer Value for Minutes.\n" "Integer values must be between 1 and 180.\n" "Passed: {}".format(minutes) ) raise SaltInvocationError(msg) else: msg = f"Unknown Variable Type Passed for Minutes.\nPassed: {minutes}" raise SaltInvocationError(msg) def get_sleep(): """ Displays the amount of idle time until the machine sleeps. Settings for Computer, Display, and Hard Disk are displayed. :return: A dictionary containing the sleep status for Computer, Display, and Hard Disk :rtype: dict CLI Example: .. code-block:: bash salt '*' power.get_sleep """ return { "Computer": get_computer_sleep(), "Display": get_display_sleep(), "Hard Disk": get_harddisk_sleep(), } def set_sleep(minutes): """ Sets the amount of idle time until the machine sleeps. Sets the same value for Computer, Display, and Hard Disk. Pass "Never" or "Off" for computers that should never sleep. :param minutes: Can be an integer between 1 and 180 or "Never" or "Off" :ptype: int, str :return: True if successful, False if not :rtype: bool CLI Example: .. code-block:: bash salt '*' power.set_sleep 120 salt '*' power.set_sleep never """ value = _validate_sleep(minutes) cmd = f"systemsetup -setsleep {value}" salt.utils.mac_utils.execute_return_success(cmd) state = [] for check in (get_computer_sleep, get_display_sleep, get_harddisk_sleep): state.append( salt.utils.mac_utils.confirm_updated( value, check, ) ) return all(state) def get_computer_sleep(): """ Display the amount of idle time until the computer sleeps. :return: A string representing the sleep settings for the computer :rtype: str CLI Example: .. code-block:: bash salt '*' power.get_computer_sleep """ ret = salt.utils.mac_utils.execute_return_result("systemsetup -getcomputersleep") return salt.utils.mac_utils.parse_return(ret) def set_computer_sleep(minutes): """ Set the amount of idle time until the computer sleeps. Pass "Never" of "Off" to never sleep. :param minutes: Can be an integer between 1 and 180 or "Never" or "Off" :ptype: int, str :return: True if successful, False if not :rtype: bool CLI Example: .. code-block:: bash salt '*' power.set_computer_sleep 120 salt '*' power.set_computer_sleep off """ value = _validate_sleep(minutes) cmd = f"systemsetup -setcomputersleep {value}" salt.utils.mac_utils.execute_return_success(cmd) return salt.utils.mac_utils.confirm_updated( str(value), get_computer_sleep, ) def get_display_sleep(): """ Display the amount of idle time until the display sleeps. :return: A string representing the sleep settings for the displey :rtype: str CLI Example: .. code-block:: bash salt '*' power.get_display_sleep """ ret = salt.utils.mac_utils.execute_return_result("systemsetup -getdisplaysleep") return salt.utils.mac_utils.parse_return(ret) def set_display_sleep(minutes): """ Set the amount of idle time until the display sleeps. Pass "Never" of "Off" to never sleep. :param minutes: Can be an integer between 1 and 180 or "Never" or "Off" :ptype: int, str :return: True if successful, False if not :rtype: bool CLI Example: .. code-block:: bash salt '*' power.set_display_sleep 120 salt '*' power.set_display_sleep off """ value = _validate_sleep(minutes) cmd = f"systemsetup -setdisplaysleep {value}" salt.utils.mac_utils.execute_return_success(cmd) return salt.utils.mac_utils.confirm_updated( str(value), get_display_sleep, ) def get_harddisk_sleep(): """ Display the amount of idle time until the hard disk sleeps. :return: A string representing the sleep settings for the hard disk :rtype: str CLI Example: .. code-block:: bash salt '*' power.get_harddisk_sleep """ ret = salt.utils.mac_utils.execute_return_result("systemsetup -getharddisksleep") return salt.utils.mac_utils.parse_return(ret) def set_harddisk_sleep(minutes): """ Set the amount of idle time until the harddisk sleeps. Pass "Never" of "Off" to never sleep. :param minutes: Can be an integer between 1 and 180 or "Never" or "Off" :ptype: int, str :return: True if successful, False if not :rtype: bool CLI Example: .. code-block:: bash salt '*' power.set_harddisk_sleep 120 salt '*' power.set_harddisk_sleep off """ value = _validate_sleep(minutes) cmd = f"systemsetup -setharddisksleep {value}" salt.utils.mac_utils.execute_return_success(cmd) return salt.utils.mac_utils.confirm_updated( str(value), get_harddisk_sleep, ) def get_wake_on_modem(): """ Displays whether 'wake on modem' is on or off if supported :return: A string value representing the "wake on modem" settings :rtype: str CLI Example: .. code-block:: bash salt '*' power.get_wake_on_modem """ ret = salt.utils.mac_utils.execute_return_result("systemsetup -getwakeonmodem") return ( salt.utils.mac_utils.validate_enabled(salt.utils.mac_utils.parse_return(ret)) == "on" ) def set_wake_on_modem(enabled): """ Set whether or not the computer will wake from sleep when modem activity is detected. :param bool enabled: True to enable, False to disable. "On" and "Off" are also acceptable values. Additionally you can pass 1 and 0 to represent True and False respectively :return: True if successful, False if not :rtype: bool CLI Example: .. code-block:: bash salt '*' power.set_wake_on_modem True """ state = salt.utils.mac_utils.validate_enabled(enabled) cmd = f"systemsetup -setwakeonmodem {state}" salt.utils.mac_utils.execute_return_success(cmd) return salt.utils.mac_utils.confirm_updated( state, get_wake_on_modem, True, ) def get_wake_on_network(): """ Displays whether 'wake on network' is on or off if supported :return: A string value representing the "wake on network" settings :rtype: string CLI Example: .. code-block:: bash salt '*' power.get_wake_on_network """ ret = salt.utils.mac_utils.execute_return_result( "systemsetup -getwakeonnetworkaccess" ) return ( salt.utils.mac_utils.validate_enabled(salt.utils.mac_utils.parse_return(ret)) == "on" ) def set_wake_on_network(enabled): """ Set whether or not the computer will wake from sleep when network activity is detected. :param bool enabled: True to enable, False to disable. "On" and "Off" are also acceptable values. Additionally you can pass 1 and 0 to represent True and False respectively :return: True if successful, False if not :rtype: bool CLI Example: .. code-block:: bash salt '*' power.set_wake_on_network True """ state = salt.utils.mac_utils.validate_enabled(enabled) cmd = f"systemsetup -setwakeonnetworkaccess {state}" salt.utils.mac_utils.execute_return_success(cmd) return salt.utils.mac_utils.confirm_updated( state, get_wake_on_network, True, ) def get_restart_power_failure(): """ Displays whether 'restart on power failure' is on or off if supported :return: A string value representing the "restart on power failure" settings :rtype: string CLI Example: .. code-block:: bash salt '*' power.get_restart_power_failure """ ret = salt.utils.mac_utils.execute_return_result( "systemsetup -getrestartpowerfailure" ) return ( salt.utils.mac_utils.validate_enabled(salt.utils.mac_utils.parse_return(ret)) == "on" ) def set_restart_power_failure(enabled): """ Set whether or not the computer will automatically restart after a power failure. :param bool enabled: True to enable, False to disable. "On" and "Off" are also acceptable values. Additionally you can pass 1 and 0 to represent True and False respectively :return: True if successful, False if not :rtype: bool CLI Example: .. code-block:: bash salt '*' power.set_restart_power_failure True """ state = salt.utils.mac_utils.validate_enabled(enabled) cmd = f"systemsetup -setrestartpowerfailure {state}" salt.utils.mac_utils.execute_return_success(cmd) return salt.utils.mac_utils.confirm_updated( state, get_restart_power_failure, True, ) def get_restart_freeze(): """ Displays whether 'restart on freeze' is on or off if supported :return: A string value representing the "restart on freeze" settings :rtype: string CLI Example: .. code-block:: bash salt '*' power.get_restart_freeze """ ret = salt.utils.mac_utils.execute_return_result("systemsetup -getrestartfreeze") return ( salt.utils.mac_utils.validate_enabled(salt.utils.mac_utils.parse_return(ret)) == "on" ) def set_restart_freeze(enabled): """ Specifies whether the server restarts automatically after a system freeze. This setting doesn't seem to be editable. The command completes successfully but the setting isn't actually updated. This is probably a macOS. The functions remains in case they ever fix the bug. :param bool enabled: True to enable, False to disable. "On" and "Off" are also acceptable values. Additionally you can pass 1 and 0 to represent True and False respectively :return: True if successful, False if not :rtype: bool CLI Example: .. code-block:: bash salt '*' power.set_restart_freeze True """ state = salt.utils.mac_utils.validate_enabled(enabled) cmd = f"systemsetup -setrestartfreeze {state}" salt.utils.mac_utils.execute_return_success(cmd) return salt.utils.mac_utils.confirm_updated(state, get_restart_freeze, True) def get_sleep_on_power_button(): """ Displays whether 'allow power button to sleep computer' is on or off if supported :return: A string value representing the "allow power button to sleep computer" settings :rtype: string CLI Example: .. code-block:: bash salt '*' power.get_sleep_on_power_button """ ret = salt.utils.mac_utils.execute_return_result( "systemsetup -getallowpowerbuttontosleepcomputer" ) return ( salt.utils.mac_utils.validate_enabled(salt.utils.mac_utils.parse_return(ret)) == "on" ) def set_sleep_on_power_button(enabled): """ Set whether or not the power button can sleep the computer. :param bool enabled: True to enable, False to disable. "On" and "Off" are also acceptable values. Additionally you can pass 1 and 0 to represent True and False respectively :return: True if successful, False if not :rtype: bool CLI Example: .. code-block:: bash salt '*' power.set_sleep_on_power_button True """ state = salt.utils.mac_utils.validate_enabled(enabled) cmd = f"systemsetup -setallowpowerbuttontosleepcomputer {state}" salt.utils.mac_utils.execute_return_success(cmd) return salt.utils.mac_utils.confirm_updated( state, get_sleep_on_power_button, True, )