Get modules under the self.config['global']['module_dirs'] directories.
        Plugin modules has the two classes of "ConcreteJob" and "Validator".
        Further, "Validator.module" property is used to
        deciding which one to use plugin module.

        This method returns a dictionary as following:
        modules = {
            'redis': <module 'MODULE_NAME' from 'REAL_FILE_NAME'>,
            'memcached': <module 'MODULE_NAME' from 'REAL_FILE_NAME'>
            ...
        }

        At here,
        collect all plugin modules under the self._module_dirs directories.
        Plugins that were collected by this method is used
        in ConfigReader._register_jobs() and ConfigReader._get_raw_specs().

def _get_modules(self):
        """
        Get modules under the self.config['global']['module_dirs'] directories.
        Plugin modules has the two classes of "ConcreteJob" and "Validator".
        Further, "Validator.module" property is used to
        deciding which one to use plugin module.

        This method returns a dictionary as following:
        modules = {
            'redis': <module 'MODULE_NAME' from 'REAL_FILE_NAME'>,
            'memcached': <module 'MODULE_NAME' from 'REAL_FILE_NAME'>
            ...
        }

        At here,
        collect all plugin modules under the self._module_dirs directories.
        Plugins that were collected by this method is used
        in ConfigReader._register_jobs() and ConfigReader._get_raw_specs().
        """

        not_import = set()
        not_import.add('base')
        modules = {}

        for path in self.config['global']['module_dir']:
            sys.path.insert(0, path)
            iter_modules = pkgutil.iter_modules([path])

            for module_info in iter_modules:
                module_name = module_info[1]

                if module_name in not_import:
                    continue

                if helpers.helper_import(module_name, 'Validator'):
                    module = helpers.helper_import(module_name)
                    modules[module.__name__] = module

            sys.path.remove(path)

        return modules