%PDF- %PDF-
Direktori : /usr/lib/python2.7/site-packages/salt/states/ |
Current File : //usr/lib/python2.7/site-packages/salt/states/vbox_guest.py |
# -*- coding: utf-8 -*- ''' VirtualBox Guest Additions installer state ''' from __future__ import absolute_import, print_function, unicode_literals # Import python libs 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 it's 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