summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/lib/Client/Tools/APT.py3
-rw-r--r--src/lib/Client/Tools/Portage.py2
-rw-r--r--src/lib/Client/Tools/YUMng.py3
-rw-r--r--src/lib/Client/Tools/__init__.py3
-rw-r--r--src/lib/Options.py13
-rw-r--r--src/lib/Server/Plugin.py11
6 files changed, 24 insertions, 11 deletions
diff --git a/src/lib/Client/Tools/APT.py b/src/lib/Client/Tools/APT.py
index 8157d9e6c..1c035f956 100644
--- a/src/lib/Client/Tools/APT.py
+++ b/src/lib/Client/Tools/APT.py
@@ -47,7 +47,8 @@ class APT(Bcfg2.Client.Tools.Tool):
def __init__(self, logger, setup, config):
Bcfg2.Client.Tools.Tool.__init__(self, logger, setup, config)
- self.__important__ = ["%s/cache/debconf/config.dat" % var_path,
+ self.__important__ = self.__important__ + \
+ ["%s/cache/debconf/config.dat" % var_path,
"%s/cache/debconf/templates.dat" % var_path,
'/etc/passwd', '/etc/group',
'%s/apt/apt.conf' % etc_path,
diff --git a/src/lib/Client/Tools/Portage.py b/src/lib/Client/Tools/Portage.py
index dad9c4f3a..765e981fe 100644
--- a/src/lib/Client/Tools/Portage.py
+++ b/src/lib/Client/Tools/Portage.py
@@ -9,7 +9,6 @@ class Portage(Bcfg2.Client.Tools.PkgTool):
the rest from Toolset.Toolset."""
name = 'Portage'
__execs__ = ['/usr/bin/emerge', '/usr/bin/equery']
- __important__ = ['/etc/make.conf']
__handles__ = [('Package', 'ebuild')]
__req__ = {'Package': ['name', 'version']}
pkgtype = 'ebuild'
@@ -18,6 +17,7 @@ class Portage(Bcfg2.Client.Tools.PkgTool):
def __init__(self, logger, cfg, setup):
Bcfg2.Client.Tools.PkgTool.__init__(self, logger, cfg, setup)
+ self.__important__ = self.__important__ + ['/etc/make.conf']
self.cfg = cfg
self.installed = {}
self.RefreshPackages()
diff --git a/src/lib/Client/Tools/YUMng.py b/src/lib/Client/Tools/YUMng.py
index de5b221c1..a203b6961 100644
--- a/src/lib/Client/Tools/YUMng.py
+++ b/src/lib/Client/Tools/YUMng.py
@@ -75,7 +75,8 @@ class YUMng(Bcfg2.Client.Tools.RPMng.RPMng):
def __init__(self, logger, setup, config):
Bcfg2.Client.Tools.RPMng.RPMng.__init__(self, logger, setup, config)
- self.__important__ = [entry.get('name') for struct in config \
+ self.__important__ = self.__important__ + \
+ [entry.get('name') for struct in config \
for entry in struct \
if entry.tag in ['Path', 'ConfigFile'] and \
(entry.get('name').startswith('/etc/yum.d') \
diff --git a/src/lib/Client/Tools/__init__.py b/src/lib/Client/Tools/__init__.py
index 8ab815022..59f66612d 100644
--- a/src/lib/Client/Tools/__init__.py
+++ b/src/lib/Client/Tools/__init__.py
@@ -102,6 +102,9 @@ class Tool:
__important__ = []
def __init__(self, logger, setup, config):
+ self.__important__ = [entry.get('name') for struct in config for entry in struct \
+ if entry.tag == 'Path' and \
+ entry.get('important') in ['true', 'True']]
self.setup = setup
self.logger = logger
if not hasattr(self, '__ireq__'):
diff --git a/src/lib/Options.py b/src/lib/Options.py
index abdfedc51..11dd41205 100644
--- a/src/lib/Options.py
+++ b/src/lib/Options.py
@@ -181,18 +181,21 @@ DEBUG = Option("Enable debugging output", False, cmd='-d')
VERBOSE = Option("Enable verbose output", False, cmd='-v')
DAEMON = Option("Daemonize process, storing pid", False,
cmd='-D', odesc="<pidfile>")
-MDATA_OWNER = Option('Default ConfigFile owner',
+MDATA_OWNER = Option('Default Path owner',
default='root', cf=('mdata', 'owner'),
odesc='owner permissions')
-MDATA_GROUP = Option('Default ConfigFile group',
+MDATA_GROUP = Option('Default Path group',
default='root', cf=('mdata', 'group'),
odesc='group permissions')
-MDATA_PERMS = Option('Default ConfigFile permissions',
+MDATA_IMPORTANT = Option('Default Path priority (importance)',
+ default='False', cf=('mdata', 'important'),
+ odesc='Important entries are installed first')
+MDATA_PERMS = Option('Default Path permissions',
'644', cf=('mdata', 'perms'),
odesc='octal permissions')
-MDATA_PARANOID = Option('Default ConfigFile paranoid setting',
+MDATA_PARANOID = Option('Default Path paranoid setting',
'false', cf=('mdata', 'paranoid'),
- odesc='ConfigFile paranoid setting')
+ odesc='Path paranoid setting')
SERVER_REPOSITORY = Option('Server repository path', '/var/lib/bcfg2',
cf=('server', 'repository'), cmd='-Q',
diff --git a/src/lib/Server/Plugin.py b/src/lib/Server/Plugin.py
index 765d908dc..2c2f0a21d 100644
--- a/src/lib/Server/Plugin.py
+++ b/src/lib/Server/Plugin.py
@@ -18,6 +18,7 @@ import Bcfg2.Options
# grab default metadata info from bcfg2.conf
opts = {'owner': Bcfg2.Options.MDATA_OWNER,
'group': Bcfg2.Options.MDATA_GROUP,
+ 'important': Bcfg2.Options.MDATA_IMPORTANT,
'perms': Bcfg2.Options.MDATA_PERMS,
'paranoid': Bcfg2.Options.MDATA_PARANOID}
mdata_setup = Bcfg2.Options.OptionParser(opts)
@@ -29,9 +30,13 @@ logger = logging.getLogger('Bcfg2.Plugin')
default_file_metadata = mdata_setup
info_regex = re.compile( \
- '^owner:(\s)*(?P<owner>\S+)|group:(\s)*(?P<group>\S+)|' +
- 'perms:(\s)*(?P<perms>\w+)|encoding:(\s)*(?P<encoding>\w+)|' +
- 'paranoid:(\s)*(?P<paranoid>\S+)|mtime:(\s)*(?P<mtime>\w+)$')
+ 'encoding:(\s)*(?P<encoding>\w+)|' +
+ 'group:(\s)*(?P<group>\S+)|' +
+ 'important:(\s)*(?P<important>\S+)|' +
+ 'mtime:(\s)*(?P<mtime>\w+)$' +
+ '^owner:(\s)*(?P<owner>\S+)|' +
+ 'paranoid:(\s)*(?P<paranoid>\S+)|' +
+ 'perms:(\s)*(?P<perms>\w+)|')
class PluginInitError(Exception):
"""Error raised in cases of Plugin initialization errors."""