Esempio n. 1
0
    def load(self, dependencies):
        api = dependencies['api']
        ari = dependencies['ari']
        bus_consumer = dependencies['bus_consumer']
        bus_publisher = dependencies['bus_publisher']
        collectd = dependencies['collectd']
        token_changed_subscribe = dependencies['token_changed_subscribe']
        config = dependencies['config']

        amid_client = AmidClient(**config['amid'])
        token_changed_subscribe(amid_client.set_token)

        auth_client = AuthClient(**config['auth'])
        confd_client = ConfdClient(**config['confd'])

        token_changed_subscribe(confd_client.set_token)

        dial_echo_manager = DialEchoManager()

        calls_service = CallsService(amid_client, config['ari']['connection'], ari.client, confd_client, dial_echo_manager)

        ari.register_application(DEFAULT_APPLICATION_NAME)
        calls_stasis = CallsStasis(ari.client, collectd, bus_publisher, calls_service, config['uuid'], amid_client)
        calls_stasis.subscribe()

        calls_bus_event_handler = CallsBusEventHandler(amid_client, ari.client, collectd, bus_publisher, calls_service, config['uuid'], dial_echo_manager)
        calls_bus_event_handler.subscribe(bus_consumer)

        api.add_resource(CallsResource, '/calls', resource_class_args=[calls_service])
        api.add_resource(MyCallsResource, '/users/me/calls', resource_class_args=[auth_client, calls_service])
        api.add_resource(CallResource, '/calls/<call_id>', resource_class_args=[calls_service])
        api.add_resource(MyCallResource, '/users/me/calls/<call_id>', resource_class_args=[auth_client, calls_service])
        api.add_resource(ConnectCallToUserResource, '/calls/<call_id>/user/<user_uuid>', resource_class_args=[calls_service])
Esempio n. 2
0
    def load(self, dependencies):
        api = dependencies['api']
        bus_publisher = dependencies['bus_publisher']
        config = dependencies['config']
        token_changed_subscribe = dependencies['token_changed_subscribe']

        auth_client = AuthClient(**config['auth'])
        ctid_client = CtidClient(**config['ctid'])
        websocketd_client = WebsocketdClient(**config['websocketd'])

        token_changed_subscribe(websocketd_client.set_token)
        local_xivo_uuid = config['uuid']

        ctid_ng_client_factory = CtidNgClientFactory(
            config['consul'], config['remote_credentials'])
        user_presences_service = UserPresencesService(
            bus_publisher, websocketd_client, local_xivo_uuid, ctid_ng_client_factory)
        line_presences_service = LinePresencesService(
            ctid_client, config['ctid'], local_xivo_uuid, ctid_ng_client_factory)

        api.add_resource(UserPresencesResource,
                         '/users/<user_uuid>/presences',
                         resource_class_args=[user_presences_service])
        api.add_resource(UserMePresencesResource,
                         '/users/me/presences',
                         resource_class_args=[auth_client, user_presences_service])
        api.add_resource(LinePresencesResource,
                         '/lines/<int:line_id>/presences',
                         resource_class_args=[line_presences_service])
Esempio n. 3
0
def _generate_call_logs():
    parser = argparse.ArgumentParser(description='Call logs generator')
    options = parse_args(parser)
    key_config = load_key_file(DEFAULT_CONFIG)
    config = ChainMap(key_config, DEFAULT_CONFIG)

    auth_client = AuthClient(**config['auth'])
    confd_client = ConfdClient(**config['confd'])
    token_renewer = TokenRenewer(auth_client)
    token_renewer.subscribe_to_token_change(confd_client.set_token)

    cel_fetcher = CELFetcher()
    generator = CallLogsGenerator([
        LocalOriginateCELInterpretor(confd_client),
        DispatchCELInterpretor(CallerCELInterpretor(confd_client),
                               CalleeCELInterpretor(confd_client))
    ])
    writer = CallLogsWriter()
    publisher = BusPublisher(config)
    manager = CallLogsManager(cel_fetcher, generator, writer, publisher)

    options = vars(options)
    with token_renewer:
        if options.get('action') == 'delete':
            if options.get('all'):
                manager.delete_all()
            elif options.get('days'):
                manager.delete_from_days(options['days'])
        else:
            if options.get('days'):
                manager.generate_from_days(days=options['days'])
            else:
                manager.generate_from_count(cel_count=options['cel_count'])
Esempio n. 4
0
    def load(self, dependencies):
        adapter_api = dependencies['adapter_api']
        bus_publisher = dependencies['bus_publisher']
        config = dependencies['config']

        auth_client = AuthClient(**config['auth'])

        message_callback_service = MessageCallbackService(
            bus_publisher, config['uuid'], ChatsContexts)
        adapter_api.add_resource(
            MessageCallbackResource,
            '/mongooseim/message_callback',
            resource_class_args=[message_callback_service])

        presence_callback_service = PresenceCallbackService(
            bus_publisher, config['uuid'])
        adapter_api.add_resource(
            PresenceCallbackResource,
            '/mongooseim/presence_callback',
            resource_class_args=[presence_callback_service])

        adapter_api.add_resource(CheckPasswordResource,
                                 '/mongooseim/authentication/check_password',
                                 resource_class_args=[auth_client])

        adapter_api.add_resource(UserExistsResource,
                                 '/mongooseim/authentication/user_exists')
Esempio n. 5
0
    def load(self, dependencies):
        api = dependencies['api']
        ari = dependencies['ari']
        bus_consumer = dependencies['bus_consumer']
        bus_publisher = dependencies['bus_publisher']
        config = dependencies['config']
        status_aggregator = dependencies['status_aggregator']
        token_changed_subscribe = dependencies['token_changed_subscribe']

        auth_client = AuthClient(**config['auth'])
        confd_client = ConfdClient(**config['confd'])

        token_changed_subscribe(confd_client.set_token)

        voicemail_storage = new_filesystem_storage()
        self._voicemail_cache = new_cache(voicemail_storage)
        try:
            self._voicemail_cache.refresh_cache()
        except Exception:
            logger.exception('fail to refresh voicemail cache')
        voicemails_service = VoicemailsService(ari.client, confd_client,
                                               voicemail_storage)

        voicemails_bus_event_handler = VoicemailsBusEventHandler(
            confd_client, bus_publisher, self._voicemail_cache)
        voicemails_bus_event_handler.subscribe(bus_consumer)

        status_aggregator.add_provider(self._provide_status)

        api.add_resource(VoicemailResource,
                         '/voicemails/<voicemail_id>',
                         resource_class_args=[voicemails_service])
        api.add_resource(VoicemailFolderResource,
                         '/voicemails/<voicemail_id>/folders/<folder_id>',
                         resource_class_args=[voicemails_service])
        api.add_resource(VoicemailMessageResource,
                         '/voicemails/<voicemail_id>/messages/<message_id>',
                         resource_class_args=[voicemails_service])
        api.add_resource(
            VoicemailRecordingResource,
            '/voicemails/<voicemail_id>/messages/<message_id>/recording',
            resource_class_args=[voicemails_service])
        api.add_resource(UserVoicemailResource,
                         '/users/me/voicemails',
                         resource_class_args=[auth_client, voicemails_service])
        api.add_resource(UserVoicemailFolderResource,
                         '/users/me/voicemails/folders/<folder_id>',
                         resource_class_args=[auth_client, voicemails_service])
        api.add_resource(UserVoicemailMessageResource,
                         '/users/me/voicemails/messages/<message_id>',
                         resource_class_args=[auth_client, voicemails_service])
        api.add_resource(
            UserVoicemailRecordingResource,
            '/users/me/voicemails/messages/<message_id>/recording',
            resource_class_args=[auth_client, voicemails_service])
Esempio n. 6
0
 def __init__(self, config):
     auth_config = dict(config['auth'])
     auth_config.pop('key_file', None)
     auth_client = AuthClient(**auth_config)
     self.ari = CoreARI(config['ari'])
     self.bus_publisher = CoreBusPublisher(config)
     self.bus_consumer = CoreBusConsumer(config)
     self.collectd = CoreCollectd(config)
     self.rest_api = CoreRestApi(config)
     self.token_renewer = TokenRenewer(auth_client)
     self._load_plugins(config)
Esempio n. 7
0
 def load_token(token):
     try:
         response = AuthClient(**auth_config).token.get(token)
     except HTTPError:
         return None
     except requests.ConnectionError:
         logger.warning('Wazo authentication server connection error')
         return None
     token = response.get('token')
     if not token:
         return None
     return UserUI(token, response.get('auth_id'))
Esempio n. 8
0
    def _on_login_pass(self, password, cti_connection):
        if cti_connection != self._connection:
            return

        LoginPass.deregister_callback(self._on_login_pass)

        self._auth_client = AuthClient(username=self._username,
                                       password=password,
                                       **self._auth_config)
        self._async_runner.run_with_cb(self._on_auth_success,
                                       self._create_token, self._auth_client,
                                       self._auth_backend, self._username)
Esempio n. 9
0
    def load(self, dependencies):
        api = dependencies['api']
        ari = dependencies['ari']
        bus_publisher = dependencies['bus_publisher']
        config = dependencies['config']
        token_changed_subscribe = dependencies['token_changed_subscribe']

        amid_client = AmidClient(**config['amid'])
        auth_client = AuthClient(**config['auth'])
        confd_client = ConfdClient(**config['confd'])

        token_changed_subscribe(amid_client.set_token)
        token_changed_subscribe(confd_client.set_token)

        state_persistor = StatePersistor(ari.client)
        transfer_lock = TransferLock()

        transfers_service = TransfersService(amid_client, ari.client,
                                             confd_client, state_factory,
                                             state_persistor, transfer_lock)

        ari.register_application(DEFAULT_APPLICATION_NAME)
        transfers_stasis = TransfersStasis(amid_client, ari.client,
                                           transfers_service, state_factory,
                                           state_persistor, config['uuid'])
        transfers_stasis.subscribe()

        notifier = TransferNotifier(bus_publisher)

        state_factory.set_dependencies(amid_client, ari.client, notifier,
                                       transfers_service, state_persistor,
                                       transfer_lock)

        api.add_resource(TransfersResource,
                         '/transfers',
                         resource_class_args=[transfers_service])
        api.add_resource(TransferResource,
                         '/transfers/<transfer_id>',
                         resource_class_args=[transfers_service])
        api.add_resource(TransferCompleteResource,
                         '/transfers/<transfer_id>/complete',
                         resource_class_args=[transfers_service])
        api.add_resource(UserTransfersResource,
                         '/users/me/transfers',
                         resource_class_args=[auth_client, transfers_service])
        api.add_resource(UserTransferResource,
                         '/users/me/transfers/<transfer_id>',
                         resource_class_args=[auth_client, transfers_service])
        api.add_resource(UserTransferCompleteResource,
                         '/users/me/transfers/<transfer_id>/complete',
                         resource_class_args=[auth_client, transfers_service])
Esempio n. 10
0
    def load(self, dependencies):
        api = dependencies['api']
        config = dependencies['config']

        auth_client = AuthClient(**config['auth'])
        dao = CallLogDAO(new_db_session(config['db_uri']))
        service = CDRService(dao)

        api.add_resource(CDRResource, '/cdr', resource_class_args=[service])
        api.add_resource(CDRUserResource,
                         '/users/<uuid:user_uuid>/cdr',
                         resource_class_args=[service])
        api.add_resource(CDRUserMeResource,
                         '/users/me/cdr',
                         resource_class_args=[auth_client, service])
Esempio n. 11
0
    def load(self, dependencies):
        api = dependencies['api']
        bus_publisher = dependencies['bus_publisher']
        config = dependencies['config']

        auth_client = AuthClient(**config['auth'])

        chats_service = ChatsService(bus_publisher, config['uuid'])

        api.add_resource(ChatsResource,
                         '/chats',
                         resource_class_args=[chats_service])
        api.add_resource(UserChatsResource,
                         '/users/me/chats',
                         resource_class_args=[auth_client, chats_service])
Esempio n. 12
0
    def load(self, dependencies):
        api = dependencies['api']
        bus_publisher = dependencies['bus_publisher']
        config = dependencies['config']

        auth_client = AuthClient(**config['auth'])
        mongooseim_client = MongooseIMClient(**config['mongooseim'])

        chats_service = ChatsService(config['uuid'], mongooseim_client,
                                     ChatsContexts, bus_publisher)

        api.add_resource(ChatsResource,
                         '/chats',
                         resource_class_args=[chats_service])
        api.add_resource(UserChatsResource,
                         '/users/me/chats',
                         resource_class_args=[auth_client, chats_service])
Esempio n. 13
0
    def load(self, dependencies):
        api = dependencies['api']
        bus_publisher = dependencies['bus_publisher']
        config = dependencies['config']

        auth_client = AuthClient(**config['auth'])
        ctid_client = CtidClient(**config['ctid'])

        presences_service = PresencesService(bus_publisher, ctid_client,
                                             config['ctid'])

        api.add_resource(PresencesResource,
                         '/users/<user_uuid>/presences',
                         resource_class_args=[presences_service])
        api.add_resource(UserPresencesResource,
                         '/users/me/presences',
                         resource_class_args=[auth_client, presences_service])
Esempio n. 14
0
    def load(self, dependencies):
        api = dependencies['api']
        ari = dependencies['ari']
        bus_publisher = dependencies['bus_publisher']
        config = dependencies['config']
        token_changed_subscribe = dependencies['token_changed_subscribe']

        auth_client = AuthClient(**config['auth'])
        confd_client = ConfdClient(**config['confd'])

        token_changed_subscribe(auth_client.set_token)
        token_changed_subscribe(confd_client.set_token)

        switchboards_notifier = SwitchboardsNotifier(bus_publisher)
        switchboards_service = SwitchboardsService(ari.client, confd_client, switchboards_notifier)

        ari.register_application(DEFAULT_APPLICATION_NAME)
        switchboards_stasis = SwitchboardsStasis(ari.client, confd_client, switchboards_notifier, switchboards_service)
        switchboards_stasis.subscribe()

        api.add_resource(
            SwitchboardCallsQueuedResource,
            '/switchboards/<switchboard_uuid>/calls/queued',
            resource_class_args=[switchboards_service],
        )
        api.add_resource(
            SwitchboardCallQueuedAnswerResource,
            '/switchboards/<switchboard_uuid>/calls/queued/<call_id>/answer',
            resource_class_args=[auth_client, switchboards_service],
        )
        api.add_resource(
            SwitchboardCallsHeldResource,
            '/switchboards/<switchboard_uuid>/calls/held',
            resource_class_args=[switchboards_service],
        )
        api.add_resource(
            SwitchboardCallHeldResource,
            '/switchboards/<switchboard_uuid>/calls/held/<call_id>',
            resource_class_args=[switchboards_service],
        )
        api.add_resource(
            SwitchboardCallHeldAnswerResource,
            '/switchboards/<switchboard_uuid>/calls/held/<call_id>/answer',
            resource_class_args=[auth_client, switchboards_service],
        )
Esempio n. 15
0
 def __init__(self, config):
     xivo_uuid = get_xivo_uuid(logger)
     auth_config = dict(config['auth'])
     auth_config.pop('key_file', None)
     auth_client = AuthClient(**auth_config)
     self.ari = CoreARI(config['ari'])
     self.bus_publisher = CoreBusPublisher(config)
     self.bus_consumer = CoreBusConsumer(config)
     self.collectd = CoreCollectd(config)
     self.rest_api = CoreRestApi(config)
     self.status_aggregator = StatusAggregator()
     self.token_renewer = TokenRenewer(auth_client)
     self.token_status = TokenStatus()
     self._service_registration_params = [
         'xivo-ctid-ng', xivo_uuid, config['consul'],
         config['service_discovery'], config['bus'],
         partial(self_check, config['rest_api']['port'])
     ]
     plugin_helpers.load(
         namespace='xivo_ctid_ng.plugins',
         names=config['enabled_plugins'],
         dependencies={
             'api':
             api,
             'adapter_api':
             adapter_api,
             'ari':
             self.ari,
             'bus_publisher':
             self.bus_publisher,
             'bus_consumer':
             self.bus_consumer,
             'collectd':
             self.collectd,
             'config':
             config,
             'status_aggregator':
             self.status_aggregator,
             'token_changed_subscribe':
             self.token_renewer.subscribe_to_token_change,
             'next_token_changed_subscribe':
             self.token_renewer.subscribe_to_next_token_change,
         })
Esempio n. 16
0
def main():
    auth_client = AuthClient(HOST, username=USERNAME, password=PASSWORD, verify_certificate=False)
    token = auth_client.token.new(AUTH_BACKEND, expiration=TOKEN_EXPIRATION)['token']
    confd_client = ConfdClient(HOST, token=token, verify_certificate=False)
    for i in range(N):
        user_data = dict(
            firstname=' '.join([FIRSTNAME_PREFIX, str(i)]),
        )
        exten_data = dict(
            exten=str(FIRST_EXTEN + i),
            context=CONTEXT,
        )

        print('Creating ', user_data, '...')
        user = confd_client.users.create(user_data)
        exten = confd_client.extensions.create(exten_data)
        line = confd_client.lines_sip.create({'context': CONTEXT})

        confd_client.users(user).add_line(line)
        confd_client.lines(line).add_extension(exten)
Esempio n. 17
0
 def __init__(self, config):
     auth_config = dict(config['auth'])
     auth_config.pop('key_file', None)
     auth_client = AuthClient(**auth_config)
     cel_fetcher = CELFetcher()
     confd_client = ConfdClient(**config['confd'])
     generator = CallLogsGenerator([
         LocalOriginateCELInterpretor(confd_client),
         DispatchCELInterpretor(CallerCELInterpretor(confd_client),
                                CalleeCELInterpretor(confd_client))
     ])
     writer = CallLogsWriter()
     self._publisher = BusPublisher(config)
     self.manager = CallLogsManager(cel_fetcher, generator, writer,
                                    self._publisher)
     self.bus_client = BusClient(config)
     self.rest_api = CoreRestApi(config)
     self.token_renewer = TokenRenewer(auth_client)
     self.token_renewer.subscribe_to_token_change(confd_client.set_token)
     self._load_plugins(config)
Esempio n. 18
0
    def get_token(self, xivo_uuid):
        token = self._auth_tokens.get(xivo_uuid)
        if not self._is_valid(token):
            credentials = self._credentials.get(xivo_uuid)
            if not credentials:
                raise MissingCredentials(xivo_uuid)

            auth_config = self.find_service_config('wazo-auth', xivo_uuid)
            if not auth_config:
                raise WazoAuthUnreachable(xivo_uuid, 'no running service found')

            client = AuthClient(username=credentials['service_id'],
                                password=credentials['service_key'],
                                host=auth_config['Address'],
                                port=auth_config['Port'],
                                verify_certificate=False)
            try:
                self._auth_tokens[xivo_uuid] = token = client.token.new()
            except requests.RequestException:
                raise InvalidCredentials(xivo_uuid)
        return token['token']
Esempio n. 19
0
    def load(self, dependencies):
        api = dependencies['api']
        ari = dependencies['ari']
        bus_publisher = dependencies['bus_publisher']
        config = dependencies['config']
        token_changed_subscribe = dependencies['token_changed_subscribe']

        amid_client = AmidClient(**config['amid'])
        auth_client = AuthClient(**config['auth'])
        confd_client = ConfdClient(**config['confd'])

        token_changed_subscribe(amid_client.set_token)
        token_changed_subscribe(confd_client.set_token)

        relocates = RelocateCollection()
        state_factory = StateFactory(state_index, amid_client, ari.client)

        notifier = RelocatesNotifier(bus_publisher)
        relocates_service = RelocatesService(amid_client, ari.client,
                                             confd_client, notifier, relocates,
                                             state_factory)

        ari.register_application(DEFAULT_APPLICATION_NAME)
        relocates_stasis = RelocatesStasis(ari.client, relocates)
        relocates_stasis.subscribe()

        api.add_resource(UserRelocatesResource,
                         '/users/me/relocates',
                         resource_class_args=[auth_client, relocates_service])
        api.add_resource(UserRelocateResource,
                         '/users/me/relocates/<relocate_uuid>',
                         resource_class_args=[auth_client, relocates_service])
        api.add_resource(UserRelocateCompleteResource,
                         '/users/me/relocates/<relocate_uuid>/complete',
                         resource_class_args=[auth_client, relocates_service])
        api.add_resource(UserRelocateCancelResource,
                         '/users/me/relocates/<relocate_uuid>/cancel',
                         resource_class_args=[auth_client, relocates_service])
Esempio n. 20
0
    def load(self, dependencies):
        api = dependencies['api']
        bus_consumer = dependencies['bus_consumer']
        config = dependencies['config']
        service_manager = dependencies['service_manager']

        auth_client = AuthClient(**config['auth'])
        service = SubscriptionService(config)

        api.add_resource(SubscriptionsResource,
                         '/subscriptions',
                         resource_class_args=[service])
        api.add_resource(SubscriptionResource,
                         '/subscriptions/<subscription_uuid>',
                         resource_class_args=[service])
        api.add_resource(UserSubscriptionsResource,
                         '/users/me/subscriptions',
                         resource_class_args=[auth_client, service])
        api.add_resource(UserSubscriptionResource,
                         '/users/me/subscriptions/<subscription_uuid>',
                         resource_class_args=[auth_client, service])

        SubscriptionBusEventHandler(bus_consumer, service_manager,
                                    service).subscribe(bus_consumer)
Esempio n. 21
0
def _get_auth_client(config):
    client = g.get('auth_client')
    if not client:
        client = g.auth_client = AuthClient(**config)
    return client
Esempio n. 22
0
 def create_auth(cls):
     return AuthClient(host='localhost',
                       port=cls.service_port(9497, 'auth'),
                       verify_certificate=False)
Esempio n. 23
0
    def load(self, dependencies):
        api = dependencies['api']
        ari = dependencies['ari']
        config = dependencies['config']
        bus_publisher = dependencies['bus_publisher']
        config = dependencies['config']
        token_changed_subscribe = dependencies['token_changed_subscribe']
        next_token_changed_subscribe = dependencies[
            'next_token_changed_subscribe']

        auth_client = AuthClient(**config['auth'])
        confd_client = ConfdClient(**config['confd'])
        amid_client = AmidClient(**config['amid'])

        token_changed_subscribe(amid_client.set_token)
        token_changed_subscribe(auth_client.set_token)
        token_changed_subscribe(confd_client.set_token)

        notifier = ApplicationNotifier(bus_publisher)
        service = ApplicationService(ari.client, confd_client, amid_client,
                                     notifier)

        stasis = ApplicationStasis(ari, confd_client, service, notifier)
        next_token_changed_subscribe(stasis.initialize)

        api.add_resource(
            ApplicationItem,
            '/applications/<uuid:application_uuid>',
            resource_class_args=[service],
        )
        api.add_resource(
            ApplicationCallList,
            '/applications/<uuid:application_uuid>/calls',
            resource_class_args=[service],
        )
        api.add_resource(
            ApplicationCallItem,
            '/applications/<uuid:application_uuid>/calls/<call_id>',
            resource_class_args=[service],
        )
        api.add_resource(
            ApplicationCallHoldStartList,
            '/applications/<uuid:application_uuid>/calls/<call_id>/hold/start',
            resource_class_args=[service],
        )
        api.add_resource(
            ApplicationCallHoldStopList,
            '/applications/<uuid:application_uuid>/calls/<call_id>/hold/stop',
            resource_class_args=[service],
        )
        api.add_resource(
            ApplicationCallMohStopList,
            '/applications/<uuid:application_uuid>/calls/<call_id>/moh/stop',
            resource_class_args=[service],
        )
        api.add_resource(
            ApplicationCallMohStartList,
            '/applications/<uuid:application_uuid>/calls/<call_id>/moh/<uuid:moh_uuid>/start',
            resource_class_args=[service],
        )
        api.add_resource(
            ApplicationCallMuteStartList,
            '/applications/<uuid:application_uuid>/calls/<call_id>/mute/start',
            resource_class_args=[service],
        )
        api.add_resource(
            ApplicationCallMuteStopList,
            '/applications/<uuid:application_uuid>/calls/<call_id>/mute/stop',
            resource_class_args=[service],
        )
        api.add_resource(
            ApplicationCallPlaybackList,
            '/applications/<uuid:application_uuid>/calls/<call_id>/playbacks',
            resource_class_args=[service],
        )
        api.add_resource(
            ApplicationCallSnoopList,
            '/applications/<uuid:application_uuid>/calls/<call_id>/snoops',
            resource_class_args=[service],
        )
        api.add_resource(
            ApplicationNodeList,
            '/applications/<uuid:application_uuid>/nodes',
            resource_class_args=[service],
        )
        api.add_resource(
            ApplicationNodeItem,
            '/applications/<uuid:application_uuid>/nodes/<uuid:node_uuid>',
            resource_class_args=[service],
        )
        api.add_resource(
            ApplicationNodeCallList,
            '/applications/<uuid:application_uuid>/nodes/<uuid:node_uuid>/calls',
            resource_class_args=[service],
        )
        api.add_resource(
            ApplicationNodeCallItem,
            '/applications/<uuid:application_uuid>/nodes/<uuid:node_uuid>/calls/<call_id>',
            resource_class_args=[service],
        )
        api.add_resource(
            ApplicationPlaybackItem,
            '/applications/<uuid:application_uuid>/playbacks/<uuid:playback_uuid>',
            resource_class_args=[service],
        )
        api.add_resource(
            ApplicationSnoopList,
            '/applications/<uuid:application_uuid>/snoops',
            resource_class_args=[service],
        )
        api.add_resource(
            ApplicationSnoopItem,
            '/applications/<uuid:application_uuid>/snoops/<uuid:snoop_uuid>',
            resource_class_args=[service],
        )
Esempio n. 24
0
def new_auth_client():
    username = config['auth']['service_id']
    password = config['auth']['service_key']
    return AuthClient(username=username, password=password, **config['auth'])
Esempio n. 25
0
def get_auth_client():
    auth_client = g.get('auth_client')
    if not auth_client:
        auth_client = g.auth_client = AuthClient(**current_app.config['auth'])
    return auth_client