summaryrefslogtreecommitdiffstats
path: root/src/lib/Bcfg2/Server/Plugins/Cfg/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/Bcfg2/Server/Plugins/Cfg/__init__.py')
-rw-r--r--src/lib/Bcfg2/Server/Plugins/Cfg/__init__.py27
1 files changed, 7 insertions, 20 deletions
diff --git a/src/lib/Bcfg2/Server/Plugins/Cfg/__init__.py b/src/lib/Bcfg2/Server/Plugins/Cfg/__init__.py
index 1cce36f4b..08b873948 100644
--- a/src/lib/Bcfg2/Server/Plugins/Cfg/__init__.py
+++ b/src/lib/Bcfg2/Server/Plugins/Cfg/__init__.py
@@ -4,12 +4,11 @@ import re
import os
import sys
import stat
-import pkgutil
import logging
import lxml.etree
import Bcfg2.Options
import Bcfg2.Server.Plugin
-from Bcfg2.Compat import u_str, unicode, b64encode
+from Bcfg2.Compat import u_str, unicode, b64encode, walk_packages
import Bcfg2.Server.Lint
logger = logging.getLogger(__name__)
@@ -153,24 +152,12 @@ class CfgEntrySet(Bcfg2.Server.Plugin.EntrySet):
global PROCESSORS
if PROCESSORS is None:
PROCESSORS = []
- if hasattr(pkgutil, 'walk_packages'):
- submodules = pkgutil.walk_packages(path=__path__)
- else:
- #python 2.4
- import glob
- submodules = []
- for path in __path__:
- for submodule in glob.glob(os.path.join(path, "*.py")):
- mod = '.'.join(submodule.split("/")[-1].split('.')[:-1])
- if mod != '__init__':
- submodules.append((None, mod, True))
-
- for submodule in submodules:
- module = getattr(__import__("%s.%s" %
- (__name__,
- submodule[1])).Server.Plugins.Cfg,
- submodule[1])
- proc = getattr(module, submodule[1])
+ for submodule in walk_packages(path=__path__,
+ prefix=__name__ + "."):
+ mname = submodule[1].rsplit('.', 1)[-1]
+ module = getattr(__import__(submodule[1]).Server.Plugins.Cfg,
+ mname)
+ proc = getattr(module, mname)
if set(proc.__mro__).intersection([CfgInfo, CfgFilter,
CfgGenerator, CfgVerifier]):
PROCESSORS.append(proc)