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

Added counter gpt

This commit is contained in:
Valery Sinelnikov 2022-04-14 18:55:59 +04:00 committed by Evgeny Sinelnikov
parent 5dd3ca17e8
commit 326dc0600b
2 changed files with 24 additions and 3 deletions

View File

@ -146,11 +146,22 @@ def get_merger(preference_type):
return mergers[preference_type]
class gpt:
__policy_num = 0
__sid_gpt = str()
def __init__(self, gpt_path, sid):
self.path = gpt_path
self.sid = sid
self.storage = registry_factory('registry')
self.name = ''
if not gpt.__sid_gpt:
gpt.__sid_gpt = self.sid
else:
if gpt.__sid_gpt == self.sid:
gpt.__policy_num += 1
else:
gpt.__sid_gpt = self.sid
gpt.__policy_num = 0
self.guid = self.path.rpartition('/')[2]
if 'default' == self.guid:
@ -210,7 +221,7 @@ class gpt:
util.preg.merge_polfile(self.settings['machine']['regpol'], policy_name=self.name)
# Merge machine preferences to registry if possible
for preference_name, preference_path in self.settings['machine'].items():
if preference_path:
if preference_path and preference_name != 'scripts':
preference_type = get_preftype(preference_path)
logdata = dict({'pref': preference_type.value, 'sid': self.sid})
log('D28', logdata)
@ -218,6 +229,11 @@ class gpt:
preference_merger = get_merger(preference_type)
preference_objects = preference_parser(preference_path)
preference_merger(self.storage, self.sid, preference_objects, self.name)
if preference_path and preference_name == 'scripts':
logdata = dict({'pref': preference_path, 'sid': self.sid})
log('D28', logdata)
preference_objects = read_scripts(preference_path)
merge_scripts(self.storage, self.sid, preference_objects, self.name, gpt.__policy_num)
except Exception as exc:
logdata = dict()
logdata['gpt'] = self.name
@ -236,7 +252,7 @@ class gpt:
util.preg.merge_polfile(self.settings['user']['regpol'], sid=self.sid, policy_name=self.name)
# Merge user preferences to registry if possible
for preference_name, preference_path in self.settings['user'].items():
if preference_path:
if preference_path and preference_name != 'scripts':
preference_type = get_preftype(preference_path)
logdata = dict({'pref': preference_type.value, 'sid': self.sid})
log('D29', logdata)
@ -244,6 +260,11 @@ class gpt:
preference_merger = get_merger(preference_type)
preference_objects = preference_parser(preference_path)
preference_merger(self.storage, self.sid, preference_objects, self.name)
if preference_path and preference_name == 'scripts':
logdata = dict({'pref': preference_path, 'sid': self.sid})
log('D29', logdata)
preference_objects = read_scripts(preference_path)
merge_scripts(self.storage, self.sid, preference_objects, self.name, gpt.__policy_num)
except Exception as exc:
logdata = dict()
logdata['gpt'] = self.name

View File

@ -45,7 +45,7 @@ def read_scripts(scripts_file):
return list(scripts)
def merge_scripts(storage, sid, scripts_objects, policy_name):
def merge_scripts(storage, sid, scripts_objects, policy_name, policy_num):
for script in scripts_objects:
storage.add_script(sid, script, policy_name)