src/pyams_media/include.py
changeset 32 27d0b4049921
parent 0 fd39db613f8b
child 65 d38220c1116e
equal deleted inserted replaced
31:5d4da6163895 32:27d0b4049921
    21 import sys
    21 import sys
    22 
    22 
    23 # import interfaces
    23 # import interfaces
    24 from pyams_media.interfaces import CONVERTER_HANDLER_KEY, CONVERTER_NAME
    24 from pyams_media.interfaces import CONVERTER_HANDLER_KEY, CONVERTER_NAME
    25 from pyams_utils.interfaces import PYAMS_APPLICATION_SETTINGS_KEY, PYAMS_APPLICATION_DEFAULT_NAME
    25 from pyams_utils.interfaces import PYAMS_APPLICATION_SETTINGS_KEY, PYAMS_APPLICATION_DEFAULT_NAME
       
    26 from pyramid.interfaces import IApplicationCreated
    26 
    27 
    27 # import packages
    28 # import packages
    28 from pyams_media.process import MediaConversionProcess, MediaConversionMessageHandler
    29 from pyams_media.process import MediaConversionProcess, MediaConversionMessageHandler
    29 from pyams_utils.registry import set_local_registry
    30 from pyams_utils.registry import set_local_registry
    30 from pyams_utils.zodb import get_connection_from_settings
    31 from pyams_utils.zodb import get_connection_from_settings
    31 from pyams_zmq.process import process_exit_func
    32 from pyams_zmq.process import process_exit_func
       
    33 from pyramid.events import subscriber
       
    34 from zope.component.globalregistry import getGlobalSiteManager
    32 
    35 
    33 
    36 
    34 def include_package(config):
    37 def include_package(config):
    35     """Pyramid include"""
    38     """Pyramid include"""
    36 
    39 
    43     except ImportError:
    46     except ImportError:
    44         config.scan(ignore='pyams_media.zmi')
    47         config.scan(ignore='pyams_media.zmi')
    45     else:
    48     else:
    46         config.scan()
    49         config.scan()
    47 
    50 
       
    51 
       
    52 @subscriber(IApplicationCreated)
       
    53 def handle_new_application(event):
       
    54     """Start converter process when application created"""
       
    55 
    48     # check for upgrade mode
    56     # check for upgrade mode
    49     if sys.argv[0].endswith('pyams_upgrade'):
    57     if sys.argv[0].endswith('pyams_upgrade'):
    50         return
    58         return
    51 
    59 
    52     settings = config.registry.settings
    60     registry = getGlobalSiteManager()
       
    61     settings = registry.settings
    53     start_handler = settings.get(CONVERTER_HANDLER_KEY, False)
    62     start_handler = settings.get(CONVERTER_HANDLER_KEY, False)
    54     if start_handler:
    63     if start_handler:
    55         # get database connection
    64         # get database connection
    56         connection = get_connection_from_settings(settings)
    65         connection = get_connection_from_settings(settings)
    57         root = connection.root()
    66         root = connection.root()
    64             set_local_registry(sm)
    73             set_local_registry(sm)
    65             try:
    74             try:
    66                 conversion_util = sm.get(CONVERTER_NAME)
    75                 conversion_util = sm.get(CONVERTER_NAME)
    67                 if conversion_util is not None:
    76                 if conversion_util is not None:
    68                     # create medias converter process
    77                     # create medias converter process
    69                     process = MediaConversionProcess(start_handler, MediaConversionMessageHandler, config.registry)
    78                     process = MediaConversionProcess(start_handler, MediaConversionMessageHandler, registry)
    70                     logger.debug('Starting medias conversion process {0!r}...'.format(process))
    79                     logger.debug('Starting medias conversion process {0!r}...'.format(process))
    71                     process.start()
    80                     process.start()
    72                     if process.is_alive():
    81                     if process.is_alive():
    73                         atexit.register(process_exit_func, process=process)
    82                         atexit.register(process_exit_func, process=process)
    74             finally:
    83             finally: