Load sysupgrade.state on demand.

This prevents SELinux denials when the sysupgrade module is imported in a
confined process.

Reviewed-By: Rob Crittenden <rcritten@redhat.com>
This commit is contained in:
Jan Cholasta 2014-03-19 12:56:03 +01:00 committed by Petr Viktorin
parent 031096324d
commit baa665fe40

View File

@ -27,17 +27,25 @@ from ipapython.ipa_log_manager import *
STATEFILE_DIR = paths.STATEFILE_DIR
STATEFILE_FILE = 'sysupgrade.state'
_sstore = sysrestore.StateFile(STATEFILE_DIR, STATEFILE_FILE)
_sstore = None
def _load_sstore():
global _sstore
if _sstore is None:
_sstore = sysrestore.StateFile(STATEFILE_DIR, STATEFILE_FILE)
def get_upgrade_state(module, state):
_load_sstore()
global _sstore
return _sstore.get_state(module, state)
def set_upgrade_state(module, state, value):
_load_sstore()
global _sstore
_sstore.backup_state(module, state, value)
def remove_upgrade_state(module, state):
_load_sstore()
global _sstore
_sstore.delete_state(module, state)