1
0
mirror of https://github.com/altlinux/gpupdate.git synced 2025-03-21 18:50:38 +03:00

Enable Registry.pol path caching for users

This commit is contained in:
Игорь Чудов 2019-11-15 12:19:40 +04:00
parent 2fc4b4e74b
commit 3bfa3e83e2
Signed by untrusted user: nir
GPG Key ID: 0F3883600CAE7AAC

View File

@ -139,13 +139,32 @@ class samba_backend(applier_backend):
self.policy_files = dict({ 'machine_regpols': [], 'user_regpols': [] })
cache_file = os.path.join(self.cache_dir, 'cache.pkl')
cache = dict()
# Load PReg paths from cache at first
with open(cache_file, 'rb') as f:
cache = pickle.load(f)
try:
gpos = get_gpo_list(dc, self.creds, self.loadparm, 'administrator')
for gpo in gpos:
polfiles = self._gpo_get_gpt_polfiles(gpo)
self.policy_files['machine_regpols'] += polfiles['machine_regpols']
self.policy_files['user_regpols'] += polfiles['user_regpols']
# Cache paths to PReg files
cache[sid] = self.policy_files
except:
print('Error fetching GPOs')
if sid in cache:
self.policy_files = cache[sid]
print('Got cached PReg files')
# Re-cache the retrieved values
with open(cache_file, 'wb') as f:
pickle.dump(cache, f, pickle.HIGHEST_PROTOCOL)
print('Cached PReg files')
gpos = get_gpo_list(dc, self.creds, self.loadparm, 'administrator')
self.policy_files = dict({ 'machine_regpols': [], 'user_regpols': [] })
for gpo in gpos:
polfiles = self._gpo_get_gpt_polfiles(gpo)
self.policy_files['machine_regpols'] += polfiles['machine_regpols']
self.policy_files['user_regpols'] += polfiles['user_regpols']
print('Policy files: {}'.format(self.policy_files))
def _parse_pol_file(self, polfile):