diff options
author | Jan Cholasta <jcholast@redhat.com> | 2014-03-19 12:56:03 +0100 |
---|---|---|
committer | Petr Viktorin <pviktori@redhat.com> | 2014-07-30 16:04:21 +0200 |
commit | baa665fe4043615f3e5a653e6894ce7457855d87 (patch) | |
tree | 6f3bedd764258cb3ff51af92a6b777a1ef3d6683 /ipaserver/install/sysupgrade.py | |
parent | 031096324d384e51921dc73960dd9f7b5372ee65 (diff) | |
download | freeipa-baa665fe4043615f3e5a653e6894ce7457855d87.tar.gz freeipa-baa665fe4043615f3e5a653e6894ce7457855d87.tar.xz freeipa-baa665fe4043615f3e5a653e6894ce7457855d87.zip |
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>
Diffstat (limited to 'ipaserver/install/sysupgrade.py')
-rw-r--r-- | ipaserver/install/sysupgrade.py | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/ipaserver/install/sysupgrade.py b/ipaserver/install/sysupgrade.py index d11d0a979..4ce652ca1 100644 --- a/ipaserver/install/sysupgrade.py +++ b/ipaserver/install/sysupgrade.py @@ -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) |