Project

Profile

Help

Refactor #2157

closed

Convert pulp_resource_manager to use a django lock model

Added by mhrivnak over 7 years ago. Updated about 4 years ago.

Status:
CLOSED - CURRENTRELEASE
Priority:
Normal
Assignee:
Category:
-
Sprint/Milestone:
Start date:
Due date:
% Done:

0%

Estimated time:
Platform Release:
Groomed:
Yes
Sprint Candidate:
Yes
Tags:
Sprint:
Sprint 8
Quarter:

Description

pulp_resource_manager currently uses a mongodb collection with a uniqueness constraint to obtain a lock. Multiple processes attempt to insert a document, and the one who succeeds is the active process.

Given the lock model that has already been created in django, convert pulp_resource_manager to use it instead of the mongo model.

It's important to test that these locks are acquired and released as expected. Hand testing this by manually invoking two pulp_resource_managers and testing failover would be good.

NOTE: Work done with issue #2154 removed

  • this codepath[0] from the 3.0-dev branch That codepath and any necessary supporting codepaths should be added to the signal in pulp.tasking.celery_app
  • this codepath[1] from the 3.0-dev branch. That logic needs to be added back to pulp.tasking.base:delete_worker function.

[0]: https://github.com/pulp/pulp/blob/33ce8590f6112c2101930e23f0470c1883ef98a7/server/pulp/server/async/app.py#L84-L87
[1]: https://github.com/pulp/pulp/blob/1331a5846297eb614bfd6fe5ffefb1914d76fad0/server/pulp/server/async/tasks.py#L255-L257


Related issues

Blocked by Pulp - Refactor #2087: create django models for task systemCLOSED - CURRENTRELEASEpcreech

Actions
Blocked by Pulp - Refactor #2154: Convert task system to use django modelsCLOSED - CURRENTRELEASEbmbouter

Actions

Also available in: Atom PDF