def get_layer_options(layer): """Return the available options for a transport layer. Options are specific to the transport layers. They are facultative and are useful to provide configuration parameters to the selected layer. """ try: module = tools.import_recursively('duo.transport.' + layer) return module.OPTIONS except Exception as e: logger.error('getLayerOptions %s: %s' % (layer, e))
def create_ui(ui, options): """Instantiate the UI with the given name.""" module = tools.import_recursively('duo.ui.' + ui) return module.UserInterface(options)
def create_endpoint(layer, layer_options, id): try: module = tools.import_recursively('duo.transport.' + layer) return module.CLASS(id, layer_options) except Exception as e: logger.error('createEndpoint %s: %s' % ((layer, layer_options), e))