Skip to content

Commit 9b06876

Browse files
author
Korney Gedert
committed
Initial implementation logging for apt1_runner
1 parent 7e66a6e commit 9b06876

File tree

4 files changed

+57
-15
lines changed

4 files changed

+57
-15
lines changed

gpoa/apt1_runner

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import rpm
2121
from gpoa.storage import registry_factory
2222
from util.util import get_uid_by_username, string_to_literal_eval
2323
import logging
24+
from util.logging import log
2425
import argparse
2526
import gettext
2627
import locale
@@ -59,7 +60,7 @@ class Apt_applier:
5960
dbus_interface = 'org.altlinux.alterator.apt1'
6061
bus_name = 'org.altlinux.alterator'
6162
object_path = '/org/altlinux/alterator/apt'
62-
63+
6364
apt_obj = dbus.SystemBus().get_object(bus_name, object_path)
6465
self.apt_iface = dbus.Interface(apt_obj, dbus_interface)
6566

@@ -87,17 +88,22 @@ class Apt_applier:
8788
Returns:
8889
response
8990
"""
90-
# TODO: add package install/remove logging
91+
log('D235')
92+
93+
log('D148', {'names': self.install_packages})
94+
log('D149', {'names': self.remove_packages})
9195
response = self.apt_iface.ApplyAsync(" ".join(self.remove_packages),
9296
" ".join(map(str, self.install_packages)) + " ".join(
9397
map(remove_suffix, self.remove_packages)))
9498
if response != 0:
9599
remove_packages = filter(is_rpm_installed, self.remove_packages)
96100
install_packages = filter(is_rpm_notinstalled, self.install_packages)
97101
for package in remove_packages:
98-
self.apt_iface.ApplyAsync(package, remove_suffix(package))
102+
if self.apt_iface.ApplyAsync(package, remove_suffix(package)) != 0:
103+
log('E58', {'name': package})
99104
for package in install_packages:
100-
self.apt_iface.ApplyAsync(package, package)
105+
if self.apt_iface.ApplyAsync(package, package) != 0:
106+
log('E57', {'name': package})
101107

102108
print(f"ApplyAsync started with response code: {response}")
103109
return response
@@ -110,8 +116,9 @@ class Apt_applier:
110116
Returns:
111117
response
112118
"""
113-
# TODO: add update logging
114119
response = self.apt_iface.UpdateAsync()
120+
log('D143')
121+
# TODO: Write output into log
115122
print(f"UpdateAsync started with response code: {response}")
116123
return response
117124

gpoa/frontend/package_applier.py

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -57,12 +57,12 @@ def __init__(self, storage):
5757
remove_branch = '{}\\{}%'.format(self.__hklm_branch, self.__remove_key_name)
5858
sync_branch = '{}\\{}%'.format(self.__hklm_branch, self.__sync_key_name)
5959
if check_apt1():
60-
runner = '/usr/libexec/gpupdate/apt1_runner'
60+
self.runner = 'apt1_runner'
6161
else:
62-
runner = '/usr/libexec/gpupdate/pkcon_runner'
62+
self.runner = 'pkcon_runner'
6363

6464
self.fulcmd = []
65-
self.fulcmd.append(runner)
65+
self.fulcmd.append('/usr/libexec/gpupdate/' + self.runner)
6666
self.fulcmd.append('--loglevel')
6767
logger = logging.getLogger()
6868
self.fulcmd.append(str(logger.level))
@@ -86,13 +86,19 @@ def run(self):
8686
subprocess.check_call(self.fulcmd)
8787
except Exception as exc:
8888
logdata = {'msg': str(exc)}
89-
log('E55', logdata)
89+
if self.runner == 'pkcon_runner':
90+
log('E55', logdata)
91+
elif self.runner == 'apt1_runner':
92+
log('E79', logdata)
9093
else:
9194
try:
9295
subprocess.Popen(self.fulcmd,close_fds=False)
9396
except Exception as exc:
9497
logdata = {'msg': str(exc)}
95-
log('E61', logdata)
98+
if self.runner == 'pkcon_runner':
99+
log('E61', logdata)
100+
elif self.runner == 'apt1_runner':
101+
log('E80', logdata)
96102

97103
def apply(self):
98104
if self.__module_enabled:
@@ -112,15 +118,17 @@ class package_applier_user(applier_frontend):
112118
__hkcu_branch = 'Software\\BaseALT\\Policies\\Packages'
113119

114120
def __init__(self, storage, username):
121+
log('D901')
115122
if check_apt1():
116-
runner = '/usr/libexec/gpupdate/apt1_runner'
123+
self.runner = 'apt1_runner'
117124
else:
118-
runner = '/usr/libexec/gpupdate/pkcon_runner'
125+
self.runner = 'pkcon_runner'
126+
log('D902')
119127

120128
self.storage = storage
121129
self.username = username
122130
self.fulcmd = []
123-
self.fulcmd.append(runner)
131+
self.fulcmd.append('/usr/libexec/gpupdate/' + self.runner)
124132
self.fulcmd.append('--user')
125133
self.fulcmd.append(self.username)
126134
self.fulcmd.append('--loglevel')
@@ -155,13 +163,19 @@ def run(self):
155163
subprocess.check_call(self.fulcmd)
156164
except Exception as exc:
157165
logdata = {'msg': str(exc)}
158-
log('E60', logdata)
166+
if self.runner == 'pkcon_runner':
167+
log('E60', logdata)
168+
elif self.runner == 'apt1_runner':
169+
log('E77', logdata)
159170
else:
160171
try:
161172
subprocess.Popen(self.fulcmd,close_fds=False)
162173
except Exception as exc:
163174
logdata = {'msg': str(exc)}
164-
log('E62', logdata)
175+
if self.runner == 'pkcon_runner':
176+
log('E62', logdata)
177+
elif self.runner == 'apt1_runner':
178+
log('E78', logdata)
165179

166180
def admin_context_apply(self):
167181
'''

gpoa/locale/ru_RU/LC_MESSAGES/gpoa.po

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -268,6 +268,18 @@ msgstr "Не удалось обновить LDAP новыми данными п
268268
msgid "Failed to change local user password"
269269
msgstr "Не удалось изменить пароль локального пользователя"
270270

271+
msgid "Error running apt1_runner sync for user"
272+
msgstr "Ошибка при запуске apt1_runner синхронно для пользователя"
273+
274+
msgid "Error running apt1_runner async for user"
275+
msgstr "Ошибка при запуске apt1_runner асинхронно для пользователя"
276+
277+
msgid "Error running apt1_runner sync for machine"
278+
msgstr "Ошибка при запуске apt1_runner синхронно для компьютера"
279+
280+
msgid "Error running apt1_runner async for machine"
281+
msgstr "Ошибка при запуске apt1_runner асинхронно для компьютера"
282+
271283
# Error_end
272284

273285
# Debug
@@ -958,6 +970,9 @@ msgstr "Расчет времени с момента первого входа
958970
msgid "No logins found after password change"
959971
msgstr "Не найдены входы после изменения пароля"
960972

973+
msgid "Running apt1_runner to install and remove packages"
974+
msgstr "Запуск pkcon_runner для установки и удаления пакетов"
975+
961976
msgid "Unknown message type, no message assigned"
962977
msgstr "Неизвестный тип сообщения"
963978

gpoa/messages/__init__.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,11 @@ def error_code(code):
112112
error_ids[74] = 'Autofs restart failed'
113113
error_ids[75] = 'Failed to update LDAP with new password data'
114114
error_ids[76] = 'Failed to change local user password'
115+
error_ids[77] = 'Error running apt1_runner sync for user'
116+
error_ids[78] = 'Error running apt1_runner async for user'
117+
error_ids[79] = 'Error running apt1_runner sync for machine'
118+
error_ids[80] = 'Error running apt1_runner async for machine'
119+
115120
return error_ids.get(code, 'Unknown error code')
116121

117122
def debug_code(code):
@@ -349,6 +354,7 @@ def debug_code(code):
349354
debug_ids[232] = 'No user login records found'
350355
debug_ids[233] = 'Calculating time since the first user login after their password change'
351356
debug_ids[234] = 'No logins found after password change'
357+
debug_ids[235] = 'Running apt1_runner to install and remove packages'
352358

353359
return debug_ids.get(code, 'Unknown debug code')
354360

0 commit comments

Comments
 (0)