mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-14 09:51:22 -06:00
Clean up logging
This commit is contained in:
parent
f6dfd2fa43
commit
e2123f4a9e
@ -1,7 +1,7 @@
|
|||||||
from collections import OrderedDict
|
from collections import OrderedDict
|
||||||
|
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.db.models import Count, F, OuterRef, Subquery
|
from django.db.models import Count, F
|
||||||
from django.shortcuts import render
|
from django.shortcuts import render
|
||||||
from django.views.generic import View
|
from django.views.generic import View
|
||||||
from packaging import version
|
from packaging import version
|
||||||
|
@ -7,7 +7,7 @@ from django_rq import job
|
|||||||
from packaging import version
|
from packaging import version
|
||||||
|
|
||||||
# Get an instance of a logger
|
# Get an instance of a logger
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger('netbox.releases')
|
||||||
|
|
||||||
|
|
||||||
@job
|
@job
|
||||||
@ -27,25 +27,27 @@ def get_releases(pre_releases=False):
|
|||||||
|
|
||||||
releases = []
|
releases = []
|
||||||
|
|
||||||
# noinspection PyBroadException
|
|
||||||
try:
|
try:
|
||||||
|
logger.debug("Fetching new releases from {}".format(url))
|
||||||
response = requests.get(url, headers=headers)
|
response = requests.get(url, headers=headers)
|
||||||
response.raise_for_status()
|
response.raise_for_status()
|
||||||
|
total_releases = len(response.json())
|
||||||
|
|
||||||
for release in response.json():
|
for release in response.json():
|
||||||
if 'tag_name' not in release:
|
if 'tag_name' not in release:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if not pre_releases and (release.get('devrelease') or release.get('prerelease')):
|
if not pre_releases and (release.get('devrelease') or release.get('prerelease')):
|
||||||
continue
|
continue
|
||||||
|
|
||||||
releases.append((version.parse(release['tag_name']), release.get('html_url')))
|
releases.append((version.parse(release['tag_name']), release.get('html_url')))
|
||||||
|
logger.debug("Found {} releases; {} usable".format(total_releases, len(releases)))
|
||||||
|
|
||||||
except Exception:
|
except Exception:
|
||||||
# Don't retry this URL for 15 minutes
|
# Don't retry this URL for 15 minutes
|
||||||
cache.set('netbox_releases_no_retry', url, 900)
|
|
||||||
|
|
||||||
logger.exception("Error while fetching {}".format(url))
|
logger.exception("Error while fetching {}".format(url))
|
||||||
|
cache.set('netbox_releases_no_retry', url, 900)
|
||||||
return []
|
return []
|
||||||
|
|
||||||
|
# Cache the releases list
|
||||||
cache.set('netbox_releases', releases, settings.UPDATE_CACHE_TIMEOUT)
|
cache.set('netbox_releases', releases, settings.UPDATE_CACHE_TIMEOUT)
|
||||||
|
|
||||||
return releases
|
return releases
|
||||||
|
@ -5,20 +5,23 @@ from django.conf import settings
|
|||||||
|
|
||||||
from utilities.background_tasks import get_releases
|
from utilities.background_tasks import get_releases
|
||||||
|
|
||||||
# Get an instance of a logger
|
logger = logging.getLogger('netbox.releases')
|
||||||
logger = logging.getLogger(__name__)
|
|
||||||
|
|
||||||
|
|
||||||
def get_latest_release(pre_releases=False):
|
def get_latest_release(pre_releases=False):
|
||||||
if settings.UPDATE_REPO_URL:
|
if settings.UPDATE_REPO_URL:
|
||||||
|
logger.debug("Checking for most recent release")
|
||||||
try:
|
try:
|
||||||
releases = cache.get('netbox_releases')
|
releases = cache.get('netbox_releases')
|
||||||
if releases:
|
if releases:
|
||||||
|
logger.debug("Found {} cached releases. Latest: {}".format(len(releases), max(releases)))
|
||||||
return max(releases)
|
return max(releases)
|
||||||
except CacheMiss:
|
except CacheMiss:
|
||||||
logger.debug("Starting background task to get releases")
|
|
||||||
|
|
||||||
# Get the releases in the background worker, it will fill the cache
|
# Get the releases in the background worker, it will fill the cache
|
||||||
|
logger.debug("Initiating background task to retrieve updated releases list")
|
||||||
get_releases.delay(pre_releases=pre_releases)
|
get_releases.delay(pre_releases=pre_releases)
|
||||||
|
|
||||||
|
else:
|
||||||
|
logger.debug("Skipping release check; UPDATE_REPO_URL not defined")
|
||||||
|
|
||||||
return 'unknown', None
|
return 'unknown', None
|
||||||
|
Loading…
Reference in New Issue
Block a user