Exemple #1
0
    async def get(self):
        data = {'services': []}

        service = self.http_server.definition.services[self.service_id]
        data['services'].append(
            dict((k, getattr(service, k)) for k in UNHANDLED_SERVICE_KEYS
                 if getattr(service, k) is not None))
        data['services'][0]['endpoints'] = self.build_unhandled_requests(
            self.service_id)

        imaginary_config = copy.deepcopy(self.http_server.definition.data)
        imaginary_config['services'] = data['services']

        unhandled_data_enabled = False
        service = self.http_server.definition.services[self.service_id]
        for rule in self.http_server._apps.apps[
                service.
                internal_http_service_id].default_router.rules[0].target.rules:
            if rule.target == GenericHandler:
                if rule.target_kwargs['unhandled_data']:
                    unhandled_data_enabled = True
                break

        self.set_header('x-%s-unhandled-data' % PROGRAM.lower(),
                        'true' if unhandled_data_enabled else 'false')

        if not self.validate(imaginary_config):  # pragma: no cover
            return

        self.dump(data)
Exemple #2
0
    async def get(self):
        data = {'services': []}

        for i, service in enumerate(HttpService.services):
            endpoints = self.build_unhandled_requests(i)
            if not endpoints:
                continue
            new_service = dict((k, getattr(service, k))
                               for k in UNHANDLED_SERVICE_KEYS
                               if getattr(service, k) is not None)
            new_service['endpoints'] = endpoints
            data['services'].append(new_service)

        if data['services'] and not self.validate(data):  # pragma: no cover
            return

        unhandled_data_enabled = False
        break_parent = False
        for app in self.http_server._apps.apps:
            if break_parent:
                break
            for rule in app.default_router.rules[0].target.rules:
                if rule.target == GenericHandler:
                    if rule.target_kwargs['unhandled_data']:
                        unhandled_data_enabled = True
                    if unhandled_data_enabled:
                        break_parent = True
                        break

        self.set_header('x-%s-unhandled-data' % PROGRAM.lower(),
                        'true' if unhandled_data_enabled else 'false')

        self.dump(data)