mirror of
https://github.com/ansible/awx.git
synced 2026-03-27 22:05:07 -02:30
Do not rely on unreliable dir output and use exists query
This commit is contained in:
@@ -5,6 +5,7 @@ import logging
|
|||||||
import threading
|
import threading
|
||||||
import time
|
import time
|
||||||
import urllib.parse
|
import urllib.parse
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.contrib.auth import logout
|
from django.contrib.auth import logout
|
||||||
@@ -202,16 +203,17 @@ class URLModificationMiddleware(MiddlewareMixin):
|
|||||||
|
|
||||||
@memoize(ttl=20)
|
@memoize(ttl=20)
|
||||||
def is_migrating():
|
def is_migrating():
|
||||||
last_applied = MigrationRecorder(connection).migration_qs.order_by('-applied').only('name').first().name
|
latest_number = 0
|
||||||
last_number = int(last_applied.split('_', 1)[0])
|
latest_name = ''
|
||||||
for migration_name in dir(migrations):
|
for migration_path in Path(migrations.__path__[0]).glob('[0-9]*.py'):
|
||||||
try:
|
try:
|
||||||
migration_number = int(migration_name.split('_', 1)[0])
|
migration_number = int(migration_path.name.split('_', 1)[0])
|
||||||
except ValueError:
|
except ValueError:
|
||||||
continue
|
continue
|
||||||
if migration_number > last_number:
|
if migration_number > latest_number:
|
||||||
return True
|
latest_number = migration_number
|
||||||
return False
|
latest_name = migration_path.name[: -len('.py')]
|
||||||
|
return not MigrationRecorder(connection).migration_qs.filter(app='main', name=latest_name).exists()
|
||||||
|
|
||||||
|
|
||||||
class MigrationRanCheckMiddleware(MiddlewareMixin):
|
class MigrationRanCheckMiddleware(MiddlewareMixin):
|
||||||
|
|||||||
Reference in New Issue
Block a user