mirror of
https://github.com/altlinux/gpupdate.git
synced 2025-03-21 18:50:38 +03:00
Merge pull request #102 from altlinux/extra_error_handling
Extra error handling
This commit is contained in:
commit
84b7977351
@ -68,7 +68,12 @@ class samba_backend(applier_backend):
|
||||
self.storage.wipe_hklm()
|
||||
self.storage.wipe_user(self.storage.get_info('machine_sid'))
|
||||
for gptobj in machine_gpts:
|
||||
gptobj.merge()
|
||||
try:
|
||||
gptobj.merge()
|
||||
except Exception as exc:
|
||||
logdata = dict()
|
||||
logdata['msg'] = str(exc)
|
||||
log('E26', logdata)
|
||||
|
||||
# Load user GPT values in case user's name specified
|
||||
# This is a buggy implementation and should be tested more
|
||||
@ -76,7 +81,12 @@ class samba_backend(applier_backend):
|
||||
user_gpts = self._get_gpts(self.username, self.sid)
|
||||
self.storage.wipe_user(self.sid)
|
||||
for gptobj in user_gpts:
|
||||
gptobj.merge()
|
||||
try:
|
||||
gptobj.merge()
|
||||
except Exception as exc:
|
||||
logdata = dict()
|
||||
logdata['msg'] = str(exc)
|
||||
log('E27', logdata)
|
||||
|
||||
def _check_sysvol_present(self, gpo):
|
||||
'''
|
||||
|
@ -207,38 +207,50 @@ class gpt:
|
||||
Merge machine and user (if sid provided) settings to storage.
|
||||
'''
|
||||
if self.sid == self.storage.get_info('machine_sid'):
|
||||
# Merge machine settings to registry if possible
|
||||
for preference_name, preference_path in self.settings['machine'].items():
|
||||
if preference_path:
|
||||
preference_type = get_preftype(preference_path)
|
||||
logdata = dict({'pref': preference_type.value, 'sid': self.sid})
|
||||
log('D28', logdata)
|
||||
preference_parser = get_parser(preference_type)
|
||||
preference_merger = get_merger(preference_type)
|
||||
preference_objects = preference_parser(preference_path)
|
||||
preference_merger(self.storage, self.sid, preference_objects, self.name)
|
||||
if self.settings['user']['regpol']:
|
||||
mulogdata = dict({'polfile': self.settings['machine']['regpol']})
|
||||
log('D35', mulogdata)
|
||||
util.preg.merge_polfile(self.settings['user']['regpol'], sid=self.sid, policy_name=self.name)
|
||||
if self.settings['machine']['regpol']:
|
||||
mlogdata = dict({'polfile': self.settings['machine']['regpol']})
|
||||
log('D34', mlogdata)
|
||||
util.preg.merge_polfile(self.settings['machine']['regpol'], policy_name=self.name)
|
||||
try:
|
||||
# Merge machine settings to registry if possible
|
||||
for preference_name, preference_path in self.settings['machine'].items():
|
||||
if preference_path:
|
||||
preference_type = get_preftype(preference_path)
|
||||
logdata = dict({'pref': preference_type.value, 'sid': self.sid})
|
||||
log('D28', logdata)
|
||||
preference_parser = get_parser(preference_type)
|
||||
preference_merger = get_merger(preference_type)
|
||||
preference_objects = preference_parser(preference_path)
|
||||
preference_merger(self.storage, self.sid, preference_objects, self.name)
|
||||
if self.settings['user']['regpol']:
|
||||
mulogdata = dict({'polfile': self.settings['machine']['regpol']})
|
||||
log('D35', mulogdata)
|
||||
util.preg.merge_polfile(self.settings['user']['regpol'], sid=self.sid, policy_name=self.name)
|
||||
if self.settings['machine']['regpol']:
|
||||
mlogdata = dict({'polfile': self.settings['machine']['regpol']})
|
||||
log('D34', mlogdata)
|
||||
util.preg.merge_polfile(self.settings['machine']['regpol'], policy_name=self.name)
|
||||
except Exception as exc:
|
||||
logdata = dict()
|
||||
logdata['gpt'] = self.name
|
||||
logdata['msg'] = str(exc)
|
||||
log('E28', logdata)
|
||||
else:
|
||||
# Merge user settings if UserPolicyMode set accordingly
|
||||
# and user settings (for HKCU) are exist.
|
||||
policy_mode = upm2str(self.get_policy_mode())
|
||||
if 'Merge' == policy_mode or 'Not configured' == policy_mode:
|
||||
for preference_name, preference_path in self.settings['user'].items():
|
||||
if preference_path:
|
||||
preference_type = get_preftype(preference_path)
|
||||
logdata = dict({'pref': preference_type.value, 'sid': self.sid})
|
||||
log('D29', logdata)
|
||||
preference_parser = get_parser(preference_type)
|
||||
preference_merger = get_merger(preference_type)
|
||||
preference_objects = preference_parser(preference_path)
|
||||
preference_merger(self.storage, self.sid, preference_objects, self.name)
|
||||
try:
|
||||
for preference_name, preference_path in self.settings['user'].items():
|
||||
if preference_path:
|
||||
preference_type = get_preftype(preference_path)
|
||||
logdata = dict({'pref': preference_type.value, 'sid': self.sid})
|
||||
log('D29', logdata)
|
||||
preference_parser = get_parser(preference_type)
|
||||
preference_merger = get_merger(preference_type)
|
||||
preference_objects = preference_parser(preference_path)
|
||||
preference_merger(self.storage, self.sid, preference_objects, self.name)
|
||||
except Exception as exc:
|
||||
logdata = dict()
|
||||
logdata['gpt'] = self.name
|
||||
logdata['msg'] = str(exc)
|
||||
log('E29', logdata)
|
||||
|
||||
def find_dir(search_path, name):
|
||||
'''
|
||||
|
@ -117,6 +117,18 @@ msgstr "Ошибка во время работы applier для машины"
|
||||
msgid "Error occured while initializing user applier"
|
||||
msgstr "Ошибка инициализации пользовательского applier"
|
||||
|
||||
msgid "Error merging machine GPT"
|
||||
msgstr "Ошибка слияния машинной групповой политики"
|
||||
|
||||
msgid "Error merging user GPT"
|
||||
msgstr "Ошибка слияния пользовательской групповой политики"
|
||||
|
||||
msgid "Error merging machine part of GPT"
|
||||
msgstr "Ошибка слияния машинной части групповой политики"
|
||||
|
||||
msgid "Error merging user part of GPT"
|
||||
msgstr "Ошибка слияния пользовательской части групповой политики"
|
||||
|
||||
msgid "Unknown error code"
|
||||
msgstr "Неизвестный код ошибки"
|
||||
|
||||
|
@ -53,6 +53,10 @@ def error_code(code):
|
||||
error_ids[23] = 'No reply from oddjobd GPOA runner via D-Bus for user'
|
||||
error_ids[24] = 'Error occured while running machine applier'
|
||||
error_ids[25] = 'Error occured while initializing user applier'
|
||||
error_ids[26] = 'Error merging machine GPT'
|
||||
error_ids[27] = 'Error merging user GPT'
|
||||
error_ids[28] = 'Error merging machine part of GPT'
|
||||
error_ids[29] = 'Error merging user part of GPT'
|
||||
|
||||
return error_ids.get(code, 'Unknown error code')
|
||||
|
||||
|
@ -67,7 +67,9 @@ class smbcreds (smbopts):
|
||||
else:
|
||||
self.selected_dc = samba_dc
|
||||
except Exception as exc:
|
||||
log('E10')
|
||||
logdata = dict()
|
||||
logdata['msg'] = str(exc)
|
||||
log('E10', logdata)
|
||||
raise exc
|
||||
|
||||
return self.selected_dc
|
||||
|
Loading…
x
Reference in New Issue
Block a user