mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-21 11:37:21 -06:00
Cache only the most recent NetBox release
This commit is contained in:
parent
356de985d2
commit
3ace83c5aa
@ -83,7 +83,7 @@ class GetReleasesTestCase(SimpleTestCase):
|
|||||||
|
|
||||||
# Check if result is put in cache
|
# Check if result is put in cache
|
||||||
dummy_cache_set.assert_called_once()
|
dummy_cache_set.assert_called_once()
|
||||||
dummy_cache_set.assert_called_with('netbox_releases', releases, 160876)
|
dummy_cache_set.assert_called_with('latest_release', releases, 160876)
|
||||||
|
|
||||||
@patch.object(requests, 'get')
|
@patch.object(requests, 'get')
|
||||||
@patch.object(RedisCache, 'set')
|
@patch.object(RedisCache, 'set')
|
||||||
@ -109,7 +109,7 @@ class GetReleasesTestCase(SimpleTestCase):
|
|||||||
|
|
||||||
# Check if result is put in cache
|
# Check if result is put in cache
|
||||||
dummy_cache_set.assert_called_once()
|
dummy_cache_set.assert_called_once()
|
||||||
dummy_cache_set.assert_called_with('netbox_releases', releases, 160876)
|
dummy_cache_set.assert_called_with('latest_release', releases, 160876)
|
||||||
|
|
||||||
@patch.object(requests, 'get')
|
@patch.object(requests, 'get')
|
||||||
@patch.object(RedisCache, 'set')
|
@patch.object(RedisCache, 'set')
|
||||||
@ -139,7 +139,7 @@ class GetReleasesTestCase(SimpleTestCase):
|
|||||||
|
|
||||||
# Check if failure is put in cache
|
# Check if failure is put in cache
|
||||||
dummy_cache_set.assert_called_once()
|
dummy_cache_set.assert_called_once()
|
||||||
dummy_cache_set.assert_called_with('netbox_releases_no_retry', 'https://localhost/unittest/releases', 900)
|
dummy_cache_set.assert_called_with('latest_release_no_retry', 'https://localhost/unittest/releases', 900)
|
||||||
|
|
||||||
@patch.object(requests, 'get')
|
@patch.object(requests, 'get')
|
||||||
@patch.object(RedisCache, 'set')
|
@patch.object(RedisCache, 'set')
|
||||||
|
@ -19,7 +19,7 @@ def get_releases(pre_releases=False):
|
|||||||
|
|
||||||
# Check whether this URL has failed and shouldn't be retried yet
|
# Check whether this URL has failed and shouldn't be retried yet
|
||||||
try:
|
try:
|
||||||
failed_url = cache.get('netbox_releases_no_retry')
|
failed_url = cache.get('latest_release_no_retry')
|
||||||
if url == failed_url:
|
if url == failed_url:
|
||||||
return []
|
return []
|
||||||
except CacheMiss:
|
except CacheMiss:
|
||||||
@ -44,10 +44,10 @@ def get_releases(pre_releases=False):
|
|||||||
except Exception:
|
except Exception:
|
||||||
# Don't retry this URL for 15 minutes
|
# Don't retry this URL for 15 minutes
|
||||||
logger.exception("Error while fetching {}".format(url))
|
logger.exception("Error while fetching {}".format(url))
|
||||||
cache.set('netbox_releases_no_retry', url, 900)
|
cache.set('latest_release_no_retry', url, 900)
|
||||||
return []
|
return []
|
||||||
|
|
||||||
# Cache the releases list
|
# Cache the most recent release
|
||||||
cache.set('netbox_releases', releases, settings.UPDATE_CACHE_TIMEOUT)
|
cache.set('latest_release', max(releases), settings.UPDATE_CACHE_TIMEOUT)
|
||||||
|
|
||||||
return releases
|
return releases
|
||||||
|
@ -13,10 +13,10 @@ def get_latest_release(pre_releases=False):
|
|||||||
if settings.UPDATE_REPO_URL:
|
if settings.UPDATE_REPO_URL:
|
||||||
logger.debug("Checking for most recent release")
|
logger.debug("Checking for most recent release")
|
||||||
try:
|
try:
|
||||||
releases = cache.get('netbox_releases')
|
latest_release = cache.get('latest_release')
|
||||||
if releases:
|
if latest_release:
|
||||||
logger.debug("Found {} cached releases. Latest: {}".format(len(releases), max(releases)))
|
logger.debug("Found cached release: {}".format(latest_release))
|
||||||
return max(releases)
|
return latest_release
|
||||||
except CacheMiss:
|
except CacheMiss:
|
||||||
# Check for an existing job. This can happen if the RQ worker process is not running.
|
# Check for an existing job. This can happen if the RQ worker process is not running.
|
||||||
queue = get_queue('check_releases')
|
queue = get_queue('check_releases')
|
||||||
|
Loading…
Reference in New Issue
Block a user