当前位置: 首页>>代码示例>>Python>>正文


Python errors.PyMongoError方法代码示例

本文整理汇总了Python中pymongo.errors.PyMongoError方法的典型用法代码示例。如果您正苦于以下问题:Python errors.PyMongoError方法的具体用法?Python errors.PyMongoError怎么用?Python errors.PyMongoError使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在pymongo.errors的用法示例。


在下文中一共展示了errors.PyMongoError方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: connect

# 需要导入模块: from pymongo import errors [as 别名]
# 或者: from pymongo.errors import PyMongoError [as 别名]
def connect(self):
        """Connect to MongoDB"""
        if self.__conn is None:
            if self.mongo_user is None:
                try:
                    self.__conn = MongoClient('mongodb://%s:%s' %
                                              (self.mongo_host,
                                               self.mongo_port))
                except errors.PyMongoError as py_mongo_error:
                    print('Error in MongoDB connection: %s' %
                          str(py_mongo_error))
            else:
                try:
                    self.__conn = MongoClient('mongodb://%s:%s@%s:%s' %
                                              (self.mongo_user,
                                               self.mongo_password,
                                               self.mongo_host,
                                               self.mongo_port))
                except errors.PyMongoError as py_mongo_error:
                    print('Error in MongoDB connection: %s' %
                          str(py_mongo_error)) 
开发者ID:omni-lchen,项目名称:zabbix-mongodb,代码行数:23,代码来源:zabbix-mongodb.py

示例2: with_retry

# 需要导入模块: from pymongo import errors [as 别名]
# 或者: from pymongo.errors import PyMongoError [as 别名]
def with_retry(tries):
    def outer_wrapper(f):
        @wraps(f)
        def inner_wrapper(*args, **kwargs):
            def _retry(t=tries):
                if t <= 0:
                    logger.error("unable to write hit to database")
                    # raise WriteError(f"unable to write to database")
                    return
                try:
                    f(*args, **kwargs)
                except PyMongoError:
                    t -= 1
                    _retry(t)

            return _retry()

        return inner_wrapper

    return outer_wrapper 
开发者ID:clarketm,项目名称:s3recon,代码行数:22,代码来源:mongodb.py

示例3: deprovision_mongo

# 需要导入模块: from pymongo import errors [as 别名]
# 或者: from pymongo.errors import PyMongoError [as 别名]
def deprovision_mongo(self, ignore_errors=False):
        """
        Drop Mongo databases.
        """
        self.logger.info('Deprovisioning Mongo started.')
        database_url = self._get_main_database_url()
        if database_url and self.mongo_provisioned:
            mongo = pymongo.MongoClient(database_url)
            for database in self.mongo_database_names:
                # Dropping a non-existing database is a no-op.  Users are dropped together with the DB.
                self.logger.info('Dropping mongo db: %s.', database)
                try:
                    mongo.drop_database(database)
                except PyMongoError as exc:
                    self.logger.exception('Cannot drop Mongo database: %s. %s', database, exc)
                    if not ignore_errors:
                        raise
            self.mongo_provisioned = False
            self.save()
        self.logger.info('Deprovisioning Mongo finished.') 
开发者ID:open-craft,项目名称:opencraft,代码行数:22,代码来源:database.py

示例4: update_analysis_tags

# 需要导入模块: from pymongo import errors [as 别名]
# 或者: from pymongo.errors import PyMongoError [as 别名]
def update_analysis_tags(self, uid, plugin_name, tag_name, tag):
        firmware_object = self.get_object(uid=uid, analysis_filter=[])
        try:
            tags = update_tags(firmware_object.analysis_tags, plugin_name, tag_name, tag)
        except ValueError as value_error:
            logging.error('Plugin {} tried setting a bad tag {}: {}'.format(plugin_name, tag_name, str(value_error)))
            return None
        except AttributeError:
            logging.error('Firmware not in database yet: {}'.format(uid))
            return None

        if isinstance(firmware_object, Firmware):
            try:
                self.firmwares.update_one({'_id': uid}, {'$set': {'analysis_tags': tags}})
            except (TypeError, ValueError, PyMongoError) as exception:
                logging.error('Could not update firmware: {} - {}'.format(type(exception), str(exception)))
        else:
            logging.warning('Propagating tag only allowed for firmware. Given: {}') 
开发者ID:fkie-cad,项目名称:FACT_core,代码行数:20,代码来源:db_interface_backend.py

示例5: test_authenticate_fails_exception

# 需要导入模块: from pymongo import errors [as 别名]
# 或者: from pymongo.errors import PyMongoError [as 别名]
def test_authenticate_fails_exception():
    db = create_autospec(Database)
    db.authenticate.side_effect = PyMongoError("error")
    with pytest.raises(PyMongoError):
        assert auth.authenticate(db, sentinel.user, sentinel.password) is False 
开发者ID:man-group,项目名称:arctic,代码行数:7,代码来源:test_auth.py

示例6: get_maintenance

# 需要导入模块: from pymongo import errors [as 别名]
# 或者: from pymongo.errors import PyMongoError [as 别名]
def get_maintenance(self):
        """get replica set maintenance info"""
        if self.__conn is None:
            self.connect()
        db_handler = self.__conn

        fsync_locked = int(db_handler.is_locked)
        self.add_metrics('mongodb.fsync-locked', fsync_locked)

        try:
            config = db_handler.admin.command("replSetGetConfig", 1)
            connstring = (self.mongo_host + ':' + str(self.mongo_port))
            connstrings = list()

            for i in range(0, len(config['config']['members'])):
                host = config['config']['members'][i]['host']
                connstrings.append(host)

                if connstring in host:
                    priority = config['config']['members'][i]['priority']
                    hidden = int(config['config']['members'][i]['hidden'])

            self.add_metrics('mongodb.priority', priority)
            self.add_metrics('mongodb.hidden', hidden)
        except errors.PyMongoError:
            print ('Error while fetching replica set configuration.'
                   'Not a member of replica set?')
        except UnboundLocalError:
            print ('Cannot use this mongo host: must be one of ' + ','.join(connstrings))
            exit(1) 
开发者ID:omni-lchen,项目名称:zabbix-mongodb,代码行数:32,代码来源:zabbix-mongodb.py

示例7: mongodb_error_log

# 需要导入模块: from pymongo import errors [as 别名]
# 或者: from pymongo.errors import PyMongoError [as 别名]
def mongodb_error_log(func):
    def wrapper(*args, **kwargs):
        try:
            return func(*args, **kwargs)
        except PyMongoError as err:
            tb_content = ' '.join(traceback.format_exception(*sys.exc_info()))
            msg = (
                '\nOperate Mongodb error! \n Func: {}, args: {}, kwargs: {} '
                '\n Error: {} \n {}'
            ).format(func.__name__, args, kwargs, err, tb_content)
            logger.error(msg)
            raise DBError(msg)
        except InvalidId as err:
            logger.error('Invalid BSON ObjectId: {}'.format(err))
    return wrapper 
开发者ID:momosecurity,项目名称:aswan,代码行数:17,代码来源:permission.py

示例8: get_mongo_client

# 需要导入模块: from pymongo import errors [as 别名]
# 或者: from pymongo.errors import PyMongoError [as 别名]
def get_mongo_client(host, port=27017):
    """
    Returns a ``Deferred`` which fires with a ``MongoClient`` when one has been
    created.

    See http://api.mongodb.org/python/current/api/pymongo/mongo_client.html#
        pymongo.mongo_client.MongoClient
    for more parameter information.

    :param bytes host: Hostname or IP address of the instance to connect to.
    :param int port: Port number on which to connect.

    The tutorial says "If you get a connection refused error try again after a
    few seconds; the application might take some time to fully start up."
    and so here we wait until the client can be created.
    """
    def create_mongo_client():
        try:
            client = MongoClient(host=host, port=port)
            client.areyoualive.posts.insert({"ping": 1})
            return client
        except PyMongoError:
            return False

    d = loop_until(reactor, create_mongo_client)
    return d 
开发者ID:ClusterHQ,项目名称:flocker,代码行数:28,代码来源:testtools.py

示例9: connect

# 需要导入模块: from pymongo import errors [as 别名]
# 或者: from pymongo.errors import PyMongoError [as 别名]
def connect(self):
        """
        Connect to the Mongo database.
        """
        try:
            self.connection = MongoClient(host=self.host, port=self.port)
        except PyMongoError:
            if self.fail_silently:
                return
            else:
                raise

        self.database   = self.connection[self.database_name]
        self.collection = self.database[self.collection_name] 
开发者ID:DistrictDataLabs,项目名称:baleen,代码行数:16,代码来源:mongolog.py

示例10: _get_without_uid

# 需要导入模块: from pymongo import errors [as 别名]
# 或者: from pymongo.errors import PyMongoError [as 别名]
def _get_without_uid(self):
        try:
            query = get_query(request.args)
            offset, limit = get_paging(request.args)
        except ValueError as value_error:
            request_data = {k: request.args.get(k) for k in ['query', 'limit', 'offset']}
            return error_message(str(value_error), self.URL, request_data=request_data)

        parameters = dict(offset=offset, limit=limit, query=query)
        try:
            with ConnectTo(FrontEndDbInterface, self.config) as connection:
                uids = connection.rest_get_file_object_uids(**parameters)
            return success_message(dict(uids=uids), self.URL, parameters)
        except PyMongoError:
            return error_message('Unknown exception on request', self.URL, parameters) 
开发者ID:fkie-cad,项目名称:FACT_core,代码行数:17,代码来源:rest_file_object.py

示例11: _get_without_uid

# 需要导入模块: from pymongo import errors [as 别名]
# 或者: from pymongo.errors import PyMongoError [as 别名]
def _get_without_uid(self):
        try:
            query, recursive, inverted, offset, limit = self._get_parameters_from_request(request.args)
        except ValueError as value_error:
            request_data = {k: request.args.get(k) for k in ['query', 'limit', 'offset', 'recursive', 'inverted']}
            return error_message(str(value_error), self.URL, request_data=request_data)

        parameters = dict(offset=offset, limit=limit, query=query, recursive=recursive, inverted=inverted)
        try:
            with ConnectTo(FrontEndDbInterface, self.config) as connection:
                uids = connection.rest_get_firmware_uids(**parameters)
            return success_message(dict(uids=uids), self.URL, parameters)
        except PyMongoError:
            return error_message('Unknown exception on request', self.URL, parameters) 
开发者ID:fkie-cad,项目名称:FACT_core,代码行数:16,代码来源:rest_firmware.py

示例12: add_compare_result

# 需要导入模块: from pymongo import errors [as 别名]
# 或者: from pymongo.errors import PyMongoError [as 别名]
def add_compare_result(self, compare_result):
        compare_result['_id'] = self._calculate_compare_result_id(compare_result)
        compare_result['submission_date'] = time()
        with suppress(PyMongoError):
            self.compare_results.delete_one({'_id': compare_result['_id']})
        self.compare_results.insert_one(compare_result)
        logging.info('compare result added to db: {}'.format(compare_result['_id'])) 
开发者ID:fkie-cad,项目名称:FACT_core,代码行数:9,代码来源:db_interface_compare.py

示例13: init_users

# 需要导入模块: from pymongo import errors [as 别名]
# 或者: from pymongo.errors import PyMongoError [as 别名]
def init_users(self):
        logging.info('Creating users for MongoDB authentication')
        if self.auth_is_enabled():
            logging.error("The DB seems to be running with authentication. Try terminating the MongoDB process.")
        mongo_server = self.config['data_storage']['mongo_server']
        mongo_port = self.config['data_storage']['mongo_port']
        try:
            client = MongoClient('mongodb://{}:{}'.format(mongo_server, mongo_port), connect=False)
            client.admin.command(
                "createUser",
                self.config['data_storage']['db_admin_user'],
                pwd=self.config['data_storage']['db_admin_pw'],
                roles=[
                    {'role': 'dbOwner', 'db': 'admin'},
                    {'role': 'readWriteAnyDatabase', 'db': 'admin'},
                    {'role': 'root', 'db': "admin"}
                ]
            )
            client.admin.command(
                "createUser",
                self.config['data_storage']['db_readonly_user'],
                pwd=self.config['data_storage']['db_readonly_pw'],
                roles=[{'role': 'readAnyDatabase', 'db': 'admin'}]
            )
        except (AttributeError, ValueError, errors.PyMongoError) as error:
            logging.error('Could not create users:\n{}'.format(error)) 
开发者ID:fkie-cad,项目名称:FACT_core,代码行数:28,代码来源:MongoMgr.py

示例14: _run_consuming_function_with_confirm_and_retry

# 需要导入模块: from pymongo import errors [as 别名]
# 或者: from pymongo.errors import PyMongoError [as 别名]
def _run_consuming_function_with_confirm_and_retry(self, kw: dict, current_retry_times,
                                                       function_result_status: FunctionResultStatus, ):
        function_only_params = _delete_keys_and_return_new_dict(kw['body'])
        if current_retry_times < self.__get_priority_conf(kw, 'max_retry_times'):
            function_result_status.run_times += 1
            # noinspection PyBroadException
            t_start = time.time()
            try:
                function_run = self.consuming_function if self._function_timeout == 0 else self._concurrent_mode_dispatcher.timeout_deco(
                    self.__get_priority_conf(kw, 'function_timeout'))(self.consuming_function)
                if self._is_consuming_function_use_multi_params:  # 消费函数使用传统的多参数形式
                    function_result_status.result = function_run(**function_only_params)
                else:
                    function_result_status.result = function_run(
                        function_only_params)  # 消费函数使用单个参数,参数自身是一个字典,由键值对表示各个参数。
                function_result_status.success = True
                self._confirm_consume(kw)
                if self.__get_priority_conf(kw, 'do_task_filtering'):
                    self._redis_filter.add_a_value(function_only_params)  # 函数执行成功后,添加函数的参数排序后的键值对字符串到set中。
                self.logger.debug(f' 函数 {self.consuming_function.__name__}  '
                                  f'第{current_retry_times + 1}次 运行, 正确了,函数运行时间是 {round(time.time() - t_start, 4)} 秒,入参是 【 {function_only_params} 】。  {ConsumersManager.get_concurrent_info()}')
            except Exception as e:
                if isinstance(e, (PyMongoError,
                                  ExceptionForRequeue)):  # mongo经常维护备份时候插入不了或挂了,或者自己主动抛出一个ExceptionForRequeue类型的错误会重新入队,不受指定重试次数逇约束。
                    self.logger.critical(f'函数 [{self.consuming_function.__name__}] 中发生错误 {type(e)}  {e},消息重新入队')
                    time.sleep(1)  # 防止快速无限出错入队出队,导致cpu和中间件忙
                    return self._requeue(kw)
                self.logger.error(f'函数 {self.consuming_function.__name__}  第{current_retry_times + 1}次发生错误,'
                                  f'函数运行时间是 {round(time.time() - t_start, 4)} 秒,\n  入参是 【 {function_only_params} 】   \n 原因是 {type(e)} {e} ',
                                  exc_info=self.__get_priority_conf(kw, 'is_print_detail_exception'))
                function_result_status.exception = f'{e.__class__.__name__}    {str(e)}'
                return self._run_consuming_function_with_confirm_and_retry(kw, current_retry_times + 1, function_result_status, )
        else:
            self.logger.critical(
                f'函数 {self.consuming_function.__name__} 达到最大重试次数 {self.__get_priority_conf(kw, "max_retry_times")} 后,仍然失败, 入参是 【 {function_only_params} 】')
            self._confirm_consume(kw)  # 错得超过指定的次数了,就确认消费了。
        if self.__get_priority_conf(kw, 'is_using_rpc_mode'):
            # print(function_result_status.get_status_dict(without_datetime_obj=True))
            with RedisMixin().redis_db_frame.pipeline() as p:
                # RedisMixin().redis_db_frame.lpush(kw['body']['extra']['task_id'], json.dumps(function_result_status.get_status_dict(without_datetime_obj=True)))
                # RedisMixin().redis_db_frame.expire(kw['body']['extra']['task_id'], 600)
                p.lpush(kw['body']['extra']['task_id'],
                        json.dumps(function_result_status.get_status_dict(without_datetime_obj=True)))
                p.expire(kw['body']['extra']['task_id'], 600)
                p.execute()
        self._result_persistence_helper.save_function_result_to_mongo(function_result_status) 
开发者ID:ydf0509,项目名称:distributed_framework,代码行数:48,代码来源:base_consumer.py


注:本文中的pymongo.errors.PyMongoError方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。