diff --git a/requirements.txt b/requirements.txt index ed4d5ac..5f88e96 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1,3 @@ django >= 1.7, < 1.8 gadjo +requests diff --git a/scrutiny/projects/management/commands/scrutinise.py b/scrutiny/projects/management/commands/scrutinise.py index 7c1c7a5..7e4cb67 100644 --- a/scrutiny/projects/management/commands/scrutinise.py +++ b/scrutiny/projects/management/commands/scrutinise.py @@ -1,6 +1,4 @@ -import json -import urllib2 -import ssl +import requests from django.core.management.base import BaseCommand import django.utils.timezone @@ -8,14 +6,6 @@ import django.utils.timezone from scrutiny.projects.models import InstalledService, Module, Version, InstalledVersion -if hasattr(ssl, 'create_default_context'): - ctx = ssl.create_default_context() - ctx.check_hostname = False - ctx.verify_mode = ssl.CERT_NONE -else: - ctx = None - - class Command(BaseCommand): help = 'Scrutiny services for changes' @@ -27,19 +17,14 @@ class Command(BaseCommand): if self.verbose: print 'Checking', service.url try: - if ctx: - versions = json.load(urllib2.urlopen('%s__version__' % service.url, - timeout=5, context=ctx)) - else: - versions = json.load(urllib2.urlopen('%s__version__' % service.url, - timeout=5)) - except urllib2.HTTPError, e: - print 'Error with', service.url, e - continue - except urllib2.URLError, e: + response = requests.get('%s__version__' % service.url, + timeout=5, verify=False) + response.raise_for_status() + except requests.RequestException as e: print 'Error with', service.url, e continue + versions = response.json() current_modules = set([x for x in service.service.get_modules(platforms=[service.platform])]) seen_modules = set() diff --git a/scrutiny/projects/utils.py b/scrutiny/projects/utils.py index 4f7fe2e..5878f18 100644 --- a/scrutiny/projects/utils.py +++ b/scrutiny/projects/utils.py @@ -1,6 +1,6 @@ import json import re -import urllib2 +import requests from django.conf import settings from django.core.cache import cache @@ -23,11 +23,10 @@ class Issue(object): self.commits = [] def update_content(self): - request = urllib2.Request( + response = requests.get( '%s/issues/%s.json' % (settings.REDMINE_URL, self.id), headers={'X-Redmine-API-Key': settings.REDMINE_API_KEY}) - f = urllib2.urlopen(request) - content = json.loads(f.read()) + content = response.json() cache.set('issue-%s' % self.id, content, CACHE_DURATION) def get_attribute(self, attr): @@ -36,7 +35,7 @@ class Issue(object): return content.get('issue').get(attr) try: self.update_content() - except urllib2.HTTPError: + except requests.RequestException: return '---' return self.get_attribute(attr) diff --git a/setup.py b/setup.py index f197f3b..8048fcc 100755 --- a/setup.py +++ b/setup.py @@ -43,6 +43,7 @@ setup(name='scrutiny', include_package_data = True, install_requires=[ 'django >= 1.7, < 1.8', + 'requests', 'gadjo', ], cmdclass={