D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
proc
/
self
/
root
/
opt
/
saltstack
/
salt
/
lib
/
python3.10
/
site-packages
/
salt
/
states
/
Filename :
vbox_guest.py
back
Copy
""" VirtualBox Guest Additions installer state """ import logging log = logging.getLogger(__name__) def additions_installed(name, reboot=False, upgrade_os=False): """ Ensure that the VirtualBox Guest Additions are installed. Uses the CD, connected by VirtualBox. name The name has no functional value and is only used as a tracking reference. reboot : False Restart OS to complete installation. upgrade_os : False Upgrade OS (to ensure the latests version of kernel and developer tools installed). """ ret = {"name": name, "changes": {}, "result": False, "comment": ""} current_state = __salt__["vbox_guest.additions_version"]() if current_state: ret["result"] = True ret["comment"] = "System already in the correct state" return ret if __opts__["test"]: ret["comment"] = "The state of VirtualBox Guest Additions will be changed." ret["changes"] = { "old": current_state, "new": True, } ret["result"] = None return ret new_state = __salt__["vbox_guest.additions_install"]( reboot=reboot, upgrade_os=upgrade_os ) ret["comment"] = "The state of VirtualBox Guest Additions was changed!" ret["changes"] = { "old": current_state, "new": new_state, } ret["result"] = bool(new_state) return ret def additions_removed(name, force=False): """ Ensure that the VirtualBox Guest Additions are removed. Uses the CD, connected by VirtualBox. To connect VirtualBox Guest Additions via VirtualBox graphical interface press 'Host+D' ('Host' is usually 'Right Ctrl'). name The name has no functional value and is only used as a tracking reference. force Force VirtualBox Guest Additions removing. """ ret = {"name": name, "changes": {}, "result": False, "comment": ""} current_state = __salt__["vbox_guest.additions_version"]() if not current_state: ret["result"] = True ret["comment"] = "System already in the correct state" return ret if __opts__["test"]: ret["comment"] = "The state of VirtualBox Guest Additions will be changed." ret["changes"] = { "old": current_state, "new": True, } ret["result"] = None return ret new_state = __salt__["vbox_guest.additions_remove"](force=force) ret["comment"] = "The state of VirtualBox Guest Additions was changed!" ret["changes"] = { "old": current_state, "new": new_state, } ret["result"] = bool(new_state) return ret def grant_access_to_shared_folders_to(name, users=None): """ Grant access to auto-mounted shared folders to the users. User is specified by its name. To grant access for several users use argument `users`. name Name of the user to grant access to auto-mounted shared folders to. users List of names of users to grant access to auto-mounted shared folders to. If specified, `name` will not be taken into account. """ ret = {"name": name, "changes": {}, "result": False, "comment": ""} current_state = __salt__["vbox_guest.list_shared_folders_users"]() if users is None: users = [name] if current_state == users: ret["result"] = True ret["comment"] = "System already in the correct state" return ret if __opts__["test"]: ret["comment"] = ( "List of users who have access to auto-mounted " "shared folders will be changed" ) ret["changes"] = { "old": current_state, "new": users, } ret["result"] = None return ret new_state = __salt__["vbox_guest.grant_access_to_shared_folders_to"]( name=name, users=users ) ret[ "comment" ] = "List of users who have access to auto-mounted shared folders was changed" ret["changes"] = { "old": current_state, "new": new_state, } ret["result"] = True return ret