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

package_applier: Check if module is enabled via policy

This commit is contained in:
Игорь Чудов 2020-06-26 18:08:11 +04:00
parent a74e29d335
commit db200e2668
Signed by untrusted user: nir
GPG Key ID: 0F3883600CAE7AAC

View File

@ -24,9 +24,15 @@ from util.rpm import (
, remove_rpm
)
from .applier_frontend import applier_frontend
from .applier_frontend import (
applier_frontend
, check_module_enabled
)
class package_applier(applier_frontend):
__module_name = 'package_applier'
__module_experimental = True
__module_enabled = False
__install_key_name = 'Install'
__remove_key_name = 'Remove'
__hklm_branch = 'Software\\BaseALT\\Policies\\Packages'
@ -40,22 +46,29 @@ class package_applier(applier_frontend):
self.install_packages_setting = self.storage.filter_hklm_entries(install_branch)
self.remove_packages_setting = self.storage.filter_hklm_entries(remove_branch)
def apply(self):
update()
for package in self.install_packages_setting:
try:
install_rpm(package.data)
except Exception as exc:
logging.error(exc)
self.__module_enabled = check_module_enabled(self.storage, self.__module_name, self.__module_enabled)
for package in self.remove_packages_setting:
try:
remove_rpm(package.data)
except Exception as exc:
logging.error(exc)
def apply(self):
if self.__module_enabled:
if 0 < len(self.install_packages_setting) or 0 < len(self.remove_packages_setting):
update()
for package in self.install_packages_setting:
try:
install_rpm(package.data)
except Exception as exc:
logging.error(exc)
for package in self.remove_packages_setting:
try:
remove_rpm(package.data)
except Exception as exc:
logging.error(exc)
class package_applier_user(applier_frontend):
__module_name = 'package_applier_user'
__module_experimental = True
__module_enabled = False
__install_key_name = 'Install'
__remove_key_name = 'Remove'
__hkcu_branch = 'Software\\BaseALT\\Policies\\Packages'
@ -71,6 +84,8 @@ class package_applier_user(applier_frontend):
self.install_packages_setting = self.storage.filter_hkcu_entries(self.sid, install_branch)
self.remove_packages_setting = self.storage.filter_hkcu_entries(self.sid, remove_branch)
self.__module_enabled = check_module_enabled(self.storage, self.__module_name, self.__module_enabled)
def user_context_apply(self):
'''
There is no point to implement this behavior.
@ -82,16 +97,18 @@ class package_applier_user(applier_frontend):
Install software assigned to specified username regardless
which computer he uses to log into system.
'''
update()
for package in self.install_packages_setting:
try:
install_rpm(package.data)
except Exception as exc:
logging.debug(exc)
if self.__module_enabled:
if 0 < len(self.install_packages_setting) or 0 < len(self.remove_packages_setting):
update()
for package in self.install_packages_setting:
try:
install_rpm(package.data)
except Exception as exc:
logging.debug(exc)
for package in self.remove_packages_setting:
try:
remove_rpm(package.data)
except Exception as exc:
logging.debug(exc)
for package in self.remove_packages_setting:
try:
remove_rpm(package.data)
except Exception as exc:
logging.debug(exc)