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

Plugin management facility added

This commit is contained in:
Игорь Чудов 2019-12-19 16:46:30 +04:00
parent eb1a462721
commit 5bbb481629
Signed by untrusted user: nir
GPG Key ID: 0F3883600CAE7AAC
4 changed files with 48 additions and 0 deletions

2
gpoa/plugin/__init__.py Normal file
View File

@ -0,0 +1,2 @@
from .plugin_manager import plugin_manager

19
gpoa/plugin/adp.py Normal file
View File

@ -0,0 +1,19 @@
import logging
import subprocess
from util.rpm import is_rpm_installed
from .exceptions import PluginInitError
class adp:
def __init__(self):
if not is_rpm_installed('adp'):
raise PluginInitError('adp is not installed - plugin cannot be initialized')
logging.info('ADP plugin initialized')
def run(self):
try:
loggging.info('Running ADP plugin')
subprocess.call(['/usr/sbin/adp-fetch'])
except Exception as exc:
logging.error('Error running ADP')

View File

@ -0,0 +1,7 @@
class PluginInitError(Exception):
def __init__(self, message):
self.message = message
def __str__(self):
return self.message

View File

@ -0,0 +1,20 @@
import logging
from .adp import adp
from .exceptions import PluginInitError
class plugin_manager:
def __init__(self):
self.plugins = dict()
logging.info('Starting plugin manager')
try:
self.plugins['adp'] = adp()
logging.info('ADP plugin initialized')
except PluginInitError as exc:
self.plugins['adp'] = None
logging.error(exc)
def run(self):
if self.plugins['adp']:
self.plugins['adp'].run()