# Client code for enabling plugin # Copyright (c) 2000--2016 Red Hat, Inc. import os import re import rpm # global variables try: from dnf import __version__ PM_PLUGIN_CONF = '/etc/dnf/plugins/spacewalk.conf' PM_PLUGIN_NAME = 'dnf-plugin-spacewalk' PM_NAME = 'dnf' except ImportError: PM_PLUGIN_CONF = '/etc/yum/pluginconf.d/rhnplugin.conf' PM_PLUGIN_NAME = 'yum-rhn-plugin' PM_NAME = 'yum' def pluginEnable(): """Enables plugin, may throw IOError""" conf_changed = 0 plugin_present = 0 if PluginPackagePresent(): plugin_present = 1 if PluginConfPresent(): if not PluginEnabled(): enablePlugin() conf_changed = 1 else: createDefaultPluginConf() conf_changed = 1 elif os.path.exists("/usr/lib/zypp/plugins/services/spacewalk"): """SUSE zypp plugin is installed""" plugin_present = 1 return plugin_present, conf_changed def PluginPackagePresent(): """ Returns positive number if plugin package is installed, otherwise it return 0 """ ts = rpm.TransactionSet() headers = ts.dbMatch('providename', PM_PLUGIN_NAME) return headers.count() def PluginConfPresent(): """ Returns true if PM_PLUGIN_CONF is presented """ try: os.stat(PM_PLUGIN_CONF) return True except OSError: return False def createDefaultPluginConf(): """ Create file PM_PLUGIN_CONF, with default values """ f = open(PM_PLUGIN_CONF, 'w') f.write("""[main] enabled = 1 gpgcheck = 1""") f.close() def PluginEnabled(): """ Returns True if plugin is enabled Can thrown IOError exception. """ f = open(PM_PLUGIN_CONF, 'r') lines = f.readlines() f.close() main_section = False result = False for line in lines: if re.match("^\[.*]", line): if re.match("^\[main]", line): main_section = True else: main_section = False if main_section: m = re.match('^\s*enabled\s*=\s*([0-9])', line) if m: if int(m.group(1)): result = True else: result = False return result def enablePlugin(): """ enable plugin by setting enabled=1 in file PM_PLUGIN_CONF Can thrown IOError exception. """ f = open(PM_PLUGIN_CONF, 'r') lines = f.readlines() f.close() main_section = False f = open(PM_PLUGIN_CONF, 'w') for line in lines: if re.match("^\[.*]", line): if re.match("^\[main]", line): main_section = True else: main_section = False if main_section: line = re.sub('^(\s*)enabled\s*=.+', r'\1enabled = 1', line) f.write(line) f.close()
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
__pycache__ | Folder | 0755 |
|
|
__init__.py | File | 0 B | 0644 |
|
capabilities.py | File | 7.28 KB | 0644 |
|
cldetect.py | File | 2.97 KB | 0644 |
|
clientCaps.py | File | 2.16 KB | 0644 |
|
clpwd.py | File | 3.56 KB | 0644 |
|
config.py | File | 12.5 KB | 0644 |
|
debUtils.py | File | 2.73 KB | 0644 |
|
getMethod.py | File | 4.2 KB | 0644 |
|
haltree.py | File | 4.53 KB | 0644 |
|
hardware.py | File | 31.91 KB | 0644 |
|
hardware_gudev.py | File | 12.89 KB | 0644 |
|
hardware_hal.py | File | 11.32 KB | 0644 |
|
hardware_udev.py | File | 12.99 KB | 0644 |
|
pkgUtils.py | File | 295 B | 0644 |
|
pkgplatform.py | File | 309 B | 0644 |
|
pmPlugin.py | File | 2.79 KB | 0644 |
|
rhnChannel.py | File | 4.4 KB | 0644 |
|
rhnHardware.py | File | 328 B | 0644 |
|
rhnPackageInfo.py | File | 2.21 KB | 0644 |
|
rhncli.py | File | 9.12 KB | 0644 |
|
rhnreg.py | File | 32.72 KB | 0644 |
|
rhnreg_constants.py | File | 18.13 KB | 0644 |
|
rhnserver.py | File | 8.66 KB | 0644 |
|
rpcServer.py | File | 10.96 KB | 0644 |
|
rpmUtils.py | File | 5.2 KB | 0644 |
|
transaction.py | File | 4.09 KB | 0644 |
|
tui.py | File | 43.7 KB | 0644 |
|
up2dateAuth.py | File | 9.29 KB | 0644 |
|
up2dateErrors.py | File | 10.26 KB | 0644 |
|
up2dateLog.py | File | 2.06 KB | 0644 |
|
up2dateUtils.py | File | 5.06 KB | 0644 |
|