summaryrefslogtreecommitdiffstats
path: root/ipaserver
diff options
context:
space:
mode:
authorJan Cholasta <jcholast@redhat.com>2014-03-19 12:56:03 +0100
committerPetr Viktorin <pviktori@redhat.com>2014-07-30 16:04:21 +0200
commitbaa665fe4043615f3e5a653e6894ce7457855d87 (patch)
tree6f3bedd764258cb3ff51af92a6b777a1ef3d6683 /ipaserver
parent031096324d384e51921dc73960dd9f7b5372ee65 (diff)
downloadfreeipa-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')
-rw-r--r--ipaserver/install/sysupgrade.py10
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)