ext: Switch to validate_extension(extension, config)
This commit is contained in:
parent
ec939d707c
commit
992b293174
@ -56,27 +56,24 @@ def main():
|
|||||||
logging_config, options.verbosity_level, options.save_debug_log)
|
logging_config, options.verbosity_level, options.save_debug_log)
|
||||||
|
|
||||||
installed_extensions = ext.load_extensions()
|
installed_extensions = ext.load_extensions()
|
||||||
all_extensions = ext.validate_extensions(installed_extensions)
|
|
||||||
|
|
||||||
# TODO: wrap config in RO proxy.
|
# TODO: wrap config in RO proxy.
|
||||||
config, config_errors = get_config(
|
config, config_errors = get_config(
|
||||||
config_files, all_extensions, config_overrides)
|
config_files, installed_extensions, config_overrides)
|
||||||
|
|
||||||
# Filter out disabled extensions and remove any config errors for them.
|
# Filter out disabled extensions and remove any config errors for them.
|
||||||
# TODO: extension.should_install(config)
|
for extension in installed_extensions:
|
||||||
for extension in all_extensions:
|
if ext.validate_extension(extension, config):
|
||||||
if config[extension.ext_name]['enabled']:
|
|
||||||
enabled_extensions.append(extension)
|
enabled_extensions.append(extension)
|
||||||
elif extension.ext_name in config_errors:
|
elif extension.ext_name in config_errors:
|
||||||
del config_errors[extension.ext_name]
|
del config_errors[extension.ext_name]
|
||||||
|
|
||||||
log_extension_info(all_extensions, enabled_extensions)
|
log_extension_info(installed_extensions, enabled_extensions)
|
||||||
check_config_errors(config_errors)
|
check_config_errors(config_errors)
|
||||||
|
|
||||||
log.setup_log_levels(config)
|
log.setup_log_levels(config)
|
||||||
create_file_structures()
|
create_file_structures()
|
||||||
check_old_locations()
|
check_old_locations()
|
||||||
|
|
||||||
ext.register_gstreamer_elements(enabled_extensions)
|
ext.register_gstreamer_elements(enabled_extensions)
|
||||||
|
|
||||||
# Anything that wants to exit after this point must use
|
# Anything that wants to exit after this point must use
|
||||||
@ -99,6 +96,7 @@ def main():
|
|||||||
process.stop_remaining_actors()
|
process.stop_remaining_actors()
|
||||||
|
|
||||||
|
|
||||||
|
# TODO: move to config
|
||||||
def get_config(files, extensions, overrides):
|
def get_config(files, extensions, overrides):
|
||||||
# Helper to get configs, as our config system should not need to know about
|
# Helper to get configs, as our config system should not need to know about
|
||||||
# extensions.
|
# extensions.
|
||||||
|
|||||||
@ -112,45 +112,39 @@ def load_extensions():
|
|||||||
return installed_extensions
|
return installed_extensions
|
||||||
|
|
||||||
|
|
||||||
def validate_extensions(installed_extensions):
|
def validate_extension(extension, config):
|
||||||
"""Verify extension's dependencies and environment.
|
"""Verify extension's dependencies and environment.
|
||||||
|
|
||||||
:param installed_extensions: list of installed extensions
|
:param extensions: and extension to check
|
||||||
:returns: list of valid extensions
|
:param config: config to check enabled status in
|
||||||
|
:returns: if extensions should be run
|
||||||
"""
|
"""
|
||||||
|
|
||||||
valid_extensions = []
|
logger.debug('Validating extension: %s', extension.ext_name)
|
||||||
|
|
||||||
for extension in installed_extensions:
|
if extension.ext_name != extension.entry_point.name:
|
||||||
logger.debug('Validating extension: %s', extension.ext_name)
|
logger.warning(
|
||||||
|
'Disabled extension %(ep)s: entry point name (%(ep)s) '
|
||||||
|
'does not match extension name (%(ext)s)',
|
||||||
|
{'ep': extension.entry_point.name, 'ext': extension.ext_name})
|
||||||
|
return False
|
||||||
|
|
||||||
if extension.ext_name != extension.entry_point.name:
|
try:
|
||||||
logger.warning(
|
extension.entry_point.require()
|
||||||
'Disabled extension %(ep)s: entry point name (%(ep)s) '
|
except pkg_resources.DistributionNotFound as ex:
|
||||||
'does not match extension name (%(ext)s)',
|
logger.info(
|
||||||
{'ep': extension.entry_point.name, 'ext': extension.ext_name})
|
'Disabled extension %s: Dependency %s not found',
|
||||||
continue
|
extension.ext_name, ex)
|
||||||
|
return False
|
||||||
|
|
||||||
try:
|
try:
|
||||||
extension.entry_point.require()
|
extension.validate_environment()
|
||||||
except pkg_resources.DistributionNotFound as ex:
|
except exceptions.ExtensionError as ex:
|
||||||
logger.info(
|
logger.info(
|
||||||
'Disabled extension %s: Dependency %s not found',
|
'Disabled extension %s: %s', extension.ext_name, ex.message)
|
||||||
extension.ext_name, ex)
|
return False
|
||||||
continue
|
|
||||||
|
|
||||||
try:
|
return config[extension.ext_name]['enabled']
|
||||||
extension.validate_environment()
|
|
||||||
except exceptions.ExtensionError as ex:
|
|
||||||
logger.info(
|
|
||||||
'Disabled extension %s: %s', extension.ext_name, ex.message)
|
|
||||||
continue
|
|
||||||
|
|
||||||
valid_extensions.append(extension)
|
|
||||||
|
|
||||||
names = (e.ext_name for e in valid_extensions)
|
|
||||||
logger.debug('Valid extensions: %s', ', '.join(names))
|
|
||||||
return valid_extensions
|
|
||||||
|
|
||||||
|
|
||||||
def register_gstreamer_elements(enabled_extensions):
|
def register_gstreamer_elements(enabled_extensions):
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user