mirror of
https://github.com/ansible/awx.git
synced 2026-05-09 10:27:37 -02:30
Use advisory_lock from DAB (#15676)
* Use advisory_lock from DAB * Remove the django-pglocks dep * Re-run updater script * Move the import in new location
This commit is contained in:
@@ -16,10 +16,12 @@ from rest_framework.exceptions import PermissionDenied
|
|||||||
import requests
|
import requests
|
||||||
|
|
||||||
from awx.conf.license import get_license
|
from awx.conf.license import get_license
|
||||||
|
|
||||||
|
from ansible_base.lib.utils.db import advisory_lock
|
||||||
|
|
||||||
from awx.main.models import Job
|
from awx.main.models import Job
|
||||||
from awx.main.access import access_registry
|
from awx.main.access import access_registry
|
||||||
from awx.main.utils import get_awx_http_client_headers, set_environ, datetime_hook
|
from awx.main.utils import get_awx_http_client_headers, set_environ, datetime_hook
|
||||||
from awx.main.utils.pglock import advisory_lock
|
|
||||||
|
|
||||||
__all__ = ['register', 'gather', 'ship']
|
__all__ = ['register', 'gather', 'ship']
|
||||||
|
|
||||||
|
|||||||
@@ -4,8 +4,9 @@
|
|||||||
from django.db import transaction
|
from django.db import transaction
|
||||||
from django.core.management.base import BaseCommand, CommandError
|
from django.core.management.base import BaseCommand, CommandError
|
||||||
|
|
||||||
|
from ansible_base.lib.utils.db import advisory_lock
|
||||||
|
|
||||||
from awx.main.models import Instance
|
from awx.main.models import Instance
|
||||||
from awx.main.utils.pglock import advisory_lock
|
|
||||||
|
|
||||||
|
|
||||||
class Command(BaseCommand):
|
class Command(BaseCommand):
|
||||||
|
|||||||
@@ -21,6 +21,9 @@ from django.utils.encoding import smart_str
|
|||||||
# DRF error class to distinguish license exceptions
|
# DRF error class to distinguish license exceptions
|
||||||
from rest_framework.exceptions import PermissionDenied
|
from rest_framework.exceptions import PermissionDenied
|
||||||
|
|
||||||
|
# django-ansible-base
|
||||||
|
from ansible_base.lib.utils.db import advisory_lock
|
||||||
|
|
||||||
# AWX inventory imports
|
# AWX inventory imports
|
||||||
from awx.main.models.inventory import Inventory, InventorySource, InventoryUpdate, Host
|
from awx.main.models.inventory import Inventory, InventorySource, InventoryUpdate, Host
|
||||||
from awx.main.utils.mem_inventory import MemInventory, dict_to_mem_data
|
from awx.main.utils.mem_inventory import MemInventory, dict_to_mem_data
|
||||||
@@ -32,7 +35,6 @@ from awx.main.utils import ignore_inventory_computed_fields, get_licenser
|
|||||||
from awx.main.utils.execution_environments import get_default_execution_environment
|
from awx.main.utils.execution_environments import get_default_execution_environment
|
||||||
from awx.main.signals import disable_activity_stream
|
from awx.main.signals import disable_activity_stream
|
||||||
from awx.main.constants import STANDARD_INVENTORY_UPDATE_ENV
|
from awx.main.constants import STANDARD_INVENTORY_UPDATE_ENV
|
||||||
from awx.main.utils.pglock import advisory_lock
|
|
||||||
|
|
||||||
logger = logging.getLogger('awx.main.commands.inventory_import')
|
logger = logging.getLogger('awx.main.commands.inventory_import')
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,8 @@
|
|||||||
# All Rights Reserved.
|
# All Rights Reserved.
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
from awx.main.utils.pglock import advisory_lock
|
from ansible_base.lib.utils.db import advisory_lock
|
||||||
|
|
||||||
from awx.main.models import Instance, InstanceGroup
|
from awx.main.models import Instance, InstanceGroup
|
||||||
|
|
||||||
from django.core.management.base import BaseCommand, CommandError
|
from django.core.management.base import BaseCommand, CommandError
|
||||||
|
|||||||
@@ -2,7 +2,8 @@
|
|||||||
# All Rights Reserved.
|
# All Rights Reserved.
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
from awx.main.utils.pglock import advisory_lock
|
from ansible_base.lib.utils.db import advisory_lock
|
||||||
|
|
||||||
from awx.main.models import InstanceGroup
|
from awx.main.models import InstanceGroup
|
||||||
|
|
||||||
from django.db import transaction
|
from django.db import transaction
|
||||||
|
|||||||
@@ -6,8 +6,10 @@ import uuid
|
|||||||
from django.db import models
|
from django.db import models
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.db.models.functions import Lower
|
from django.db.models.functions import Lower
|
||||||
|
|
||||||
|
from ansible_base.lib.utils.db import advisory_lock
|
||||||
|
|
||||||
from awx.main.utils.filters import SmartFilter
|
from awx.main.utils.filters import SmartFilter
|
||||||
from awx.main.utils.pglock import advisory_lock
|
|
||||||
from awx.main.constants import RECEPTOR_PENDING
|
from awx.main.constants import RECEPTOR_PENDING
|
||||||
|
|
||||||
___all__ = ['HostManager', 'InstanceManager', 'DeferJobCreatedManager', 'UUID_DEFAULT']
|
___all__ = ['HostManager', 'InstanceManager', 'DeferJobCreatedManager', 'UUID_DEFAULT']
|
||||||
|
|||||||
@@ -23,9 +23,11 @@ from django.contrib.auth.models import User
|
|||||||
|
|
||||||
|
|
||||||
# DRF
|
# DRF
|
||||||
from awx.main.utils.pglock import advisory_lock
|
|
||||||
from rest_framework.serializers import ValidationError as DRFValidationError
|
from rest_framework.serializers import ValidationError as DRFValidationError
|
||||||
|
|
||||||
|
# django-ansible-base
|
||||||
|
from ansible_base.lib.utils.db import advisory_lock
|
||||||
|
|
||||||
# AWX
|
# AWX
|
||||||
from awx.api.versioning import reverse
|
from awx.api.versioning import reverse
|
||||||
from awx.main.fields import (
|
from awx.main.fields import (
|
||||||
|
|||||||
@@ -19,6 +19,9 @@ from django.contrib.contenttypes.models import ContentType
|
|||||||
|
|
||||||
from ansible_base.lib.utils.models import get_type_for_model
|
from ansible_base.lib.utils.models import get_type_for_model
|
||||||
|
|
||||||
|
# django-ansible-base
|
||||||
|
from ansible_base.lib.utils.db import advisory_lock
|
||||||
|
|
||||||
# AWX
|
# AWX
|
||||||
from awx.main.dispatch.reaper import reap_job
|
from awx.main.dispatch.reaper import reap_job
|
||||||
from awx.main.models import (
|
from awx.main.models import (
|
||||||
@@ -34,7 +37,6 @@ from awx.main.models import (
|
|||||||
WorkflowJobTemplate,
|
WorkflowJobTemplate,
|
||||||
)
|
)
|
||||||
from awx.main.scheduler.dag_workflow import WorkflowDAG
|
from awx.main.scheduler.dag_workflow import WorkflowDAG
|
||||||
from awx.main.utils.pglock import advisory_lock
|
|
||||||
from awx.main.utils import (
|
from awx.main.utils import (
|
||||||
ScheduleTaskManager,
|
ScheduleTaskManager,
|
||||||
ScheduleWorkflowManager,
|
ScheduleWorkflowManager,
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ from awx.main.dispatch.publish import task
|
|||||||
from awx.main.models.inventory import HostMetric, HostMetricSummaryMonthly
|
from awx.main.models.inventory import HostMetric, HostMetricSummaryMonthly
|
||||||
from awx.main.tasks.helpers import is_run_threshold_reached
|
from awx.main.tasks.helpers import is_run_threshold_reached
|
||||||
from awx.conf.license import get_license
|
from awx.conf.license import get_license
|
||||||
from awx.main.utils.pglock import advisory_lock
|
from ansible_base.lib.utils.db import advisory_lock
|
||||||
|
|
||||||
|
|
||||||
logger = logging.getLogger('awx.main.tasks.host_metrics')
|
logger = logging.getLogger('awx.main.tasks.host_metrics')
|
||||||
|
|||||||
@@ -17,6 +17,9 @@ from django.db import connections
|
|||||||
# Runner
|
# Runner
|
||||||
import ansible_runner
|
import ansible_runner
|
||||||
|
|
||||||
|
# django-ansible-base
|
||||||
|
from ansible_base.lib.utils.db import advisory_lock
|
||||||
|
|
||||||
# AWX
|
# AWX
|
||||||
from awx.main.utils.execution_environments import get_default_pod_spec
|
from awx.main.utils.execution_environments import get_default_pod_spec
|
||||||
from awx.main.exceptions import ReceptorNodeNotFound
|
from awx.main.exceptions import ReceptorNodeNotFound
|
||||||
@@ -30,7 +33,6 @@ from awx.main.tasks.signals import signal_state, signal_callback, SignalExit
|
|||||||
from awx.main.models import Instance, InstanceLink, UnifiedJob, ReceptorAddress
|
from awx.main.models import Instance, InstanceLink, UnifiedJob, ReceptorAddress
|
||||||
from awx.main.dispatch import get_task_queuename
|
from awx.main.dispatch import get_task_queuename
|
||||||
from awx.main.dispatch.publish import task
|
from awx.main.dispatch.publish import task
|
||||||
from awx.main.utils.pglock import advisory_lock
|
|
||||||
|
|
||||||
# Receptorctl
|
# Receptorctl
|
||||||
from receptorctl.socket_interface import ReceptorControl
|
from receptorctl.socket_interface import ReceptorControl
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ from dateutil.parser import parse as parse_date
|
|||||||
|
|
||||||
# django-ansible-base
|
# django-ansible-base
|
||||||
from ansible_base.resource_registry.tasks.sync import SyncExecutor
|
from ansible_base.resource_registry.tasks.sync import SyncExecutor
|
||||||
|
from ansible_base.lib.utils.db import advisory_lock
|
||||||
|
|
||||||
# AWX
|
# AWX
|
||||||
from awx import __version__ as awx_application_version
|
from awx import __version__ as awx_application_version
|
||||||
@@ -60,7 +61,6 @@ from awx.main.dispatch import get_task_queuename, reaper
|
|||||||
from awx.main.utils.common import ignore_inventory_computed_fields, ignore_inventory_group_removal
|
from awx.main.utils.common import ignore_inventory_computed_fields, ignore_inventory_group_removal
|
||||||
|
|
||||||
from awx.main.utils.reload import stop_local_services
|
from awx.main.utils.reload import stop_local_services
|
||||||
from awx.main.utils.pglock import advisory_lock
|
|
||||||
from awx.main.tasks.helpers import is_run_threshold_reached
|
from awx.main.tasks.helpers import is_run_threshold_reached
|
||||||
from awx.main.tasks.receptor import get_receptor_ctl, worker_info, worker_cleanup, administrative_workunit_reaper, write_receptor_config
|
from awx.main.tasks.receptor import get_receptor_ctl, worker_info, worker_cleanup, administrative_workunit_reaper, write_receptor_config
|
||||||
from awx.main.consumers import emit_channel_notification
|
from awx.main.consumers import emit_channel_notification
|
||||||
|
|||||||
@@ -1,29 +0,0 @@
|
|||||||
# Copyright (c) 2017 Ansible by Red Hat
|
|
||||||
# All Rights Reserved.
|
|
||||||
|
|
||||||
from contextlib import contextmanager
|
|
||||||
|
|
||||||
from django_pglocks import advisory_lock as django_pglocks_advisory_lock
|
|
||||||
from django.db import connection
|
|
||||||
|
|
||||||
|
|
||||||
@contextmanager
|
|
||||||
def advisory_lock(*args, lock_session_timeout_milliseconds=0, **kwargs):
|
|
||||||
if connection.vendor == 'postgresql':
|
|
||||||
cur = None
|
|
||||||
idle_in_transaction_session_timeout = None
|
|
||||||
idle_session_timeout = None
|
|
||||||
if lock_session_timeout_milliseconds > 0:
|
|
||||||
with connection.cursor() as cur:
|
|
||||||
idle_in_transaction_session_timeout = cur.execute('SHOW idle_in_transaction_session_timeout').fetchone()[0]
|
|
||||||
idle_session_timeout = cur.execute('SHOW idle_session_timeout').fetchone()[0]
|
|
||||||
cur.execute(f"SET idle_in_transaction_session_timeout = '{lock_session_timeout_milliseconds}'")
|
|
||||||
cur.execute(f"SET idle_session_timeout = '{lock_session_timeout_milliseconds}'")
|
|
||||||
with django_pglocks_advisory_lock(*args, **kwargs) as internal_lock:
|
|
||||||
yield internal_lock
|
|
||||||
if lock_session_timeout_milliseconds > 0:
|
|
||||||
with connection.cursor() as cur:
|
|
||||||
cur.execute(f"SET idle_in_transaction_session_timeout = '{idle_in_transaction_session_timeout}'")
|
|
||||||
cur.execute(f"SET idle_session_timeout = '{idle_session_timeout}'")
|
|
||||||
else:
|
|
||||||
yield True
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
Copyright (c) 2013 Christophe Pettus
|
|
||||||
|
|
||||||
Licensed under the MIT License.
|
|
||||||
@@ -19,7 +19,6 @@ django-extensions
|
|||||||
django-guid
|
django-guid
|
||||||
django-oauth-toolkit<2.0.0 # Version 2.0.0 has breaking changes that will need to be worked out before upgrading
|
django-oauth-toolkit<2.0.0 # Version 2.0.0 has breaking changes that will need to be worked out before upgrading
|
||||||
django-polymorphic
|
django-polymorphic
|
||||||
django-pglocks
|
|
||||||
django-solo
|
django-solo
|
||||||
django-split-settings
|
django-split-settings
|
||||||
djangorestframework>=3.15.0
|
djangorestframework>=3.15.0
|
||||||
|
|||||||
@@ -147,8 +147,6 @@ django-guid==3.5.0
|
|||||||
# via -r /awx_devel/requirements/requirements.in
|
# via -r /awx_devel/requirements/requirements.in
|
||||||
django-oauth-toolkit==1.7.1
|
django-oauth-toolkit==1.7.1
|
||||||
# via -r /awx_devel/requirements/requirements.in
|
# via -r /awx_devel/requirements/requirements.in
|
||||||
django-pglocks==1.0.4
|
|
||||||
# via -r /awx_devel/requirements/requirements.in
|
|
||||||
django-polymorphic==3.1.0
|
django-polymorphic==3.1.0
|
||||||
# via -r /awx_devel/requirements/requirements.in
|
# via -r /awx_devel/requirements/requirements.in
|
||||||
django-solo==2.4.0
|
django-solo==2.4.0
|
||||||
@@ -456,7 +454,6 @@ setuptools-scm[toml]==8.1.0
|
|||||||
six==1.17.0
|
six==1.17.0
|
||||||
# via
|
# via
|
||||||
# azure-core
|
# azure-core
|
||||||
# django-pglocks
|
|
||||||
# kubernetes
|
# kubernetes
|
||||||
# msrestazure
|
# msrestazure
|
||||||
# openshift
|
# openshift
|
||||||
|
|||||||
Reference in New Issue
Block a user