This is an automated email from the ASF dual-hosted git repository. dill0wn pushed a commit to branch dw/8565 in repository https://gitbox.apache.org/repos/asf/allura.git
commit 5d951c155bd04f60f26953abb6c96a9352ebc66d Author: Dillon Walls <[email protected]> AuthorDate: Tue Jun 18 18:21:38 2024 -0400 update ming calls from find_and_modify to find_one_and_update --- Allura/allura/lib/custom_middleware.py | 5 +++-- Allura/allura/model/auth.py | 6 +++--- Allura/allura/model/monq_model.py | 6 +++--- Allura/allura/model/notification.py | 13 ++++++------- Allura/allura/model/repository.py | 6 +++--- ForgeImporters/forgeimporters/base.py | 12 ++++++------ ForgeTracker/forgetracker/model/ticket.py | 6 +++--- 7 files changed, 27 insertions(+), 27 deletions(-) diff --git a/Allura/allura/lib/custom_middleware.py b/Allura/allura/lib/custom_middleware.py index 4b2e5e1f5..c81c5a11d 100644 --- a/Allura/allura/lib/custom_middleware.py +++ b/Allura/allura/lib/custom_middleware.py @@ -326,7 +326,8 @@ class AlluraTimerMiddleware(TimerMiddleware): debug_each_call=False), Timer('ming', ming.odm.odmsession.ODMSession, 'insert_now', 'update_now', 'delete_now', - 'find', 'find_and_modify', 'remove', 'update', 'update_if_not_modified', + 'find', 'find_one_and_update', 'find_one_and_replace', 'find_one_and_delete', + 'remove', 'update', 'update_if_not_modified', 'aggregate', 'group', 'map_reduce', 'inline_map_reduce', 'distinct', ), # Timer('ming', ming.schema.Document, 'validate', @@ -336,7 +337,7 @@ class AlluraTimerMiddleware(TimerMiddleware): # debug_each_call=False), Timer('mongo', pymongo.collection.Collection, 'count', 'find', 'find_one', 'aggregate', 'group', 'map_reduce', - 'inline_map_reduce', 'find_and_modify', + 'inline_map_reduce', 'find_one_and_update', 'find_one_and_replace', 'find_one_and_delete', 'insert', 'save', 'update', 'remove', 'drop'), Timer('mongo', pymongo.cursor.Cursor, 'count', 'distinct', '_refresh'), diff --git a/Allura/allura/model/auth.py b/Allura/allura/model/auth.py index 0b73f1b34..17818c829 100644 --- a/Allura/allura/model/auth.py +++ b/Allura/allura/model/auth.py @@ -217,9 +217,9 @@ class AuthGlobals(MappedClass): @classmethod def get_next_uid(cls): cls.upsert() - g = cls.query.find_and_modify( - query={}, update={'$inc': {'next_uid': 1}}, - new=True) + g = cls.query.find_one_and_update( + {}, update={'$inc': {'next_uid': 1}}, + return_document=True) return g.next_uid diff --git a/Allura/allura/model/monq_model.py b/Allura/allura/model/monq_model.py index 61ea3d863..4dbc532dc 100644 --- a/Allura/allura/model/monq_model.py +++ b/Allura/allura/model/monq_model.py @@ -199,14 +199,14 @@ class MonQTask(MappedClass): query['time_queue'] = {'$lte': datetime.utcnow()} if only: query['task_name'] = {'$in': only} - obj = cls.query.find_and_modify( - query=query, + obj = cls.query.find_one_and_update( + query, update={ '$set': dict( state='busy', process=process) }, - new=True, + return_document=True, sort=cls.sort) if obj is not None: return obj diff --git a/Allura/allura/model/notification.py b/Allura/allura/model/notification.py index 2bd205d35..5b08cf1e8 100644 --- a/Allura/allura/model/notification.py +++ b/Allura/allura/model/notification.py @@ -592,13 +592,12 @@ class Mailbox(MappedClass): next_scheduled={'$lt': now}) def find_and_modify_direct_mbox(): - return cls.query.find_and_modify( - query=q_direct, + return cls.query.find_one_and_update( + q_direct, update={'$set': dict( queue=[], queue_empty=True, - )}, - new=False) + )}) for mbox in take_while_true(find_and_modify_direct_mbox): try: @@ -618,14 +617,14 @@ class Mailbox(MappedClass): next_scheduled += timedelta(days=7 * mbox.frequency.n) elif mbox.frequency.unit == 'month': next_scheduled += timedelta(days=30 * mbox.frequency.n) - mbox = cls.query.find_and_modify( - query=dict(_id=mbox._id), + mbox = cls.query.find_one_and_update( + dict(_id=mbox._id), update={'$set': dict( next_scheduled=next_scheduled, queue=[], queue_empty=True, )}, - new=False) + ) mbox.fire(now) def fire(self, now): diff --git a/Allura/allura/model/repository.py b/Allura/allura/model/repository.py index c947ec1b3..e51cdcd60 100644 --- a/Allura/allura/model/repository.py +++ b/Allura/allura/model/repository.py @@ -1072,10 +1072,10 @@ class CommitStatus(MappedClass): @classmethod def upsert(cls, **kw): - obj = cls.query.find_and_modify( - query=dict(commit_id=kw.get('commit_id'), context=kw.get('context')), + obj = cls.query.find_one_and_update( + dict(commit_id=kw.get('commit_id'), context=kw.get('context')), update={'$set': kw}, - new=True, + return_document=True, upsert=True, ) return obj diff --git a/ForgeImporters/forgeimporters/base.py b/ForgeImporters/forgeimporters/base.py index 1087bdc40..db14405df 100644 --- a/ForgeImporters/forgeimporters/base.py +++ b/ForgeImporters/forgeimporters/base.py @@ -466,8 +466,8 @@ class ToolImporter(metaclass=ToolImporterMeta): """ limit = config.get('tool_import.rate_limit', 1) pending_key = 'tool_data.%s.pending' % self.classname - modified_project = M.Project.query.find_and_modify( - query={ + modified_project = M.Project.query.find_one_and_update( + { '_id': project._id, '$or': [ {pending_key: None}, @@ -475,7 +475,7 @@ class ToolImporter(metaclass=ToolImporterMeta): ], }, update={'$inc': {pending_key: 1}}, - new=True, + return_document=True, ) return modified_project is not None @@ -485,10 +485,10 @@ class ToolImporter(metaclass=ToolImporterMeta): to indicate that an import is complete. """ pending_key = 'tool_data.%s.pending' % self.classname - M.Project.query.find_and_modify( - query={'_id': project._id}, + M.Project.query.find_one_and_update( + {'_id': project._id}, update={'$inc': {pending_key: -1}}, - new=True, + return_document=True, ) def import_tool(self, project, user, project_name=None, diff --git a/ForgeTracker/forgetracker/model/ticket.py b/ForgeTracker/forgetracker/model/ticket.py index de099a372..1b80511d8 100644 --- a/ForgeTracker/forgetracker/model/ticket.py +++ b/ForgeTracker/forgetracker/model/ticket.py @@ -139,10 +139,10 @@ class Globals(MappedClass): }) def next_ticket_num(self): - gbl = Globals.query.find_and_modify( - query=dict(app_config_id=self.app_config_id), + gbl = Globals.query.find_one_and_update( + dict(app_config_id=self.app_config_id), update={'$inc': {'last_ticket_num': 1}}, - new=True) + return_document=True) session(gbl).expunge(gbl) return gbl.last_ticket_num
