Beispiel #1
0
    def clients_initialize(self):
        self.client = TendersClient(
            self.config_get('api_token'),
            host_url=self.api_server, api_version=self.api_version,
        )

        self.contracting_client_init()

        self.tenders_sync_client = TendersClientSync('',
            host_url=self.ro_api_server, api_version=self.api_version,
        )
    def __init__(self, config):
        super(EdgeDataBridge, self).__init__()
        self.config = config
        self.api_host = self.config_get('tenders_api_server')
        self.api_version = self.config_get('tenders_api_version')

        self.client = TendersClient(host_url=self.api_host,
                                    api_version=self.api_version,
                                    key='')

        self.couch_url = urljoin(self.config_get('couch_url'),
                                 self.config_get('public_db'))
        self.db = Database(self.couch_url,
                           session=Session(retry_delays=range(10)))
Beispiel #3
0
    def __init__(self, config):
        super(Oracle, self).__init__()
        self.config = config
        self.api_host = self.config_get('tenders_api_server')
        self.api_version = self.config_get('tenders_api_version')
        self.retrievers_params = self.config_get('retrievers_params')

        self.db = DB

        try:
            self.client = TendersClient(host_url=self.api_host,
                                        api_version=self.api_version,
                                        key='')
        except MissingSchema:
            raise ConfigError(
                'In config dictionary empty or missing \'tenders_api_server\'')
        except ConnectionError as e:
            raise e
def validate_credentials_generate(request):
    try:
        token = get_access_token(request)
    except ValueError:
        raise_operation_error(request, 'No access token was provided.')

    try:
        response = TendersClient(
            request.registry.api_token,
            host_url=request.registry.api_server,
            api_version=request.registry.api_version,
        ).extract_credentials(request.validated['monitoring'].tender_id)
    except ResourceNotFound:
        raise_operation_error(
            request, 'Tender {} not found'.format(
                request.validated['monitoring'].tender_id))
    else:
        if sha512(token).hexdigest() != response['data']['tender_token']:
            raise forbidden(request)
Beispiel #5
0
    def __init__(self, config):
        super(EdgeDataBridge, self).__init__()
        self.config = config
        self.api_host = self.config_get('tenders_api_server')
        self.api_version = self.config_get('tenders_api_version')
        self.retrievers_params = self.config_get('retrievers_params')

        try:
            self.client = TendersClient(host_url=self.api_host,
                                        api_version=self.api_version,
                                        key='')
        except MissingSchema:
            raise DataBridgeConfigError(
                'In config dictionary empty or missing \'tenders_api_server\'')
        except ConnectionError as e:
            raise e

        self.couch_url = urljoin(self.config_get('couch_url'),
                                 self.config_get('public_db'))
        self.db = Database(self.couch_url,
                           session=Session(retry_delays=range(10)))
        try:
            self.db.info()
        except ResourceNotFound:
            error_message = "Database with name '" + self.config_get(
                'public_db') + "' doesn\'t exist"
            raise DataBridgeConfigError(error_message)
        except error as e:
            if e.errno == errno.ECONNREFUSED:
                raise DataBridgeConfigError(
                    "Connection refused: 'couch_url' is invalid in config dictionary"
                )
        except AttributeError as e:
            raise DataBridgeConfigError(
                '\'couch_url\' is missed or empty in config dictionary.')
        except KeyError as e:
            if e.message == 'db_name':
                raise DataBridgeConfigError(
                    '\'public_db\' name is missed or empty in config dictionary'
                )
    def __init__(self, config):
        super(ContractingDataBridge, self).__init__()
        self.config = config

        self.cache_db = Db(self.config.get('main'))

        self._backend = "redis"
        self._host = self.config.get('cache_host')
        self._port = self.config.get('cache_port') or 6379
        self._db_name = self.config.get('cache_db_name') or 0

        logger.info(
            "Caching backend: '{}', db name: '{}', host: '{}', port: '{}'".
            format(self.cache_db._backend, self.cache_db._db_name,
                   self.cache_db._host, self.cache_db._port),
            extra=journal_context({"MESSAGE_ID": DATABRIDGE_INFO}, {}))

        self.on_error_delay = self.config_get('on_error_sleep_delay') or 5
        self.jobs_watcher_delay = self.config_get('jobs_watcher_delay') or 15
        queue_size = self.config_get('buffers_size') or 500
        self.full_stack_sync_delay = self.config_get(
            'full_stack_sync_delay') or 15
        self.empty_stack_sync_delay = self.config_get(
            'empty_stack_sync_delay') or 101

        api_server = self.config_get('tenders_api_server')
        api_version = self.config_get('tenders_api_version')
        ro_api_server = self.config_get(
            'public_tenders_api_server') or api_server

        contracting_api_server = self.config_get('contracting_api_server')
        contracting_api_version = self.config_get('contracting_api_version')

        self.tenders_sync_client = TendersClientSync(
            '',
            host_url=ro_api_server,
            api_version=api_version,
        )

        self.client = TendersClient(
            self.config_get('api_token'),
            host_url=api_server,
            api_version=api_version,
        )

        self.contracting_client = ContractingClient(
            self.config_get('api_token'),
            host_url=contracting_api_server,
            api_version=contracting_api_version)

        self.contracting_client_ro = self.contracting_client
        if self.config_get('public_tenders_api_server'):
            if api_server == contracting_api_server and api_version == contracting_api_version:
                self.contracting_client_ro = ContractingClient(
                    self.config_get('api_token'),
                    host_url=ro_api_server,
                    api_version=api_version)

        self.initial_sync_point = {}
        self.initialization_event = gevent.event.Event()
        self.tenders_queue = Queue(maxsize=queue_size)
        self.handicap_contracts_queue = Queue(maxsize=queue_size)
        self.contracts_put_queue = Queue(maxsize=queue_size)
        self.contracts_retry_put_queue = Queue(maxsize=queue_size)
        self.basket = {}