Преглед изворни кода

HUE-9619 [Deprecation Warning] Importing from django.core.urlresolvers is deprecated

ayush.goyal пре 5 година
родитељ
комит
74bd48e93c

+ 5 - 5
apps/jobsub/src/jobsub/models.py

@@ -18,8 +18,8 @@
 from builtins import str
 import logging
 
-from django.core import urlresolvers
 from django.db import models
+from django.urls import reverse
 from django.utils.translation import ugettext_lazy as _
 
 from desktop.lib.parameterization import find_parameters, bind_parameters
@@ -47,16 +47,16 @@ class JobDesign(models.Model):
   data = models.TextField()
 
   def edit_url(self):
-    return urlresolvers.reverse("jobsub.views.edit_design", kwargs=dict(id=self.id))
+    return reverse("jobsub.views.edit_design", kwargs=dict(id=self.id))
 
   def clone_url(self):
-    return urlresolvers.reverse("jobsub.views.clone_design", kwargs=dict(id=self.id))
+    return reverse("jobsub.views.clone_design", kwargs=dict(id=self.id))
 
   def delete_url(self):
-    return urlresolvers.reverse("jobsub.views.delete_design", kwargs=dict(id=self.id))
+    return reverse("jobsub.views.delete_design", kwargs=dict(id=self.id))
 
   def submit_url(self):
-    return urlresolvers.reverse("jobsub.views.submit_design", kwargs=dict(id=self.id))
+    return reverse("jobsub.views.submit_design", kwargs=dict(id=self.id))
 
   def clone(self):
     clone_kwargs = dict([(field.name, getattr(self, field.name)) for field in self._meta.fields if field.name != 'id']);

+ 6 - 6
apps/proxy/src/proxy/views.py

@@ -31,8 +31,9 @@ import re
 from urllib.request import Request, urlopen
 from urllib.parse import urlencode, urlparse, urlunparse
 
-from django.core import urlresolvers
 from django.http import HttpResponse
+from django.urls import reverse, NoReverseMatch
+
 from desktop.lib.exceptions import MessageException
 
 from proxy import conf
@@ -64,7 +65,7 @@ def check_blacklist(host, port, path):
   # "/forbidden/path" (regex).
   has_trailing_slash = path.endswith('/')
   path_elems = path.split('/')
-  path_elems = [ p for p in path_elems if p ]
+  path_elems = [p for p in path_elems if p]
   canon_url = "%s:%s/%s" % (host, port, '/'.join(path_elems))
   if has_trailing_slash:
     canon_url += '/'
@@ -92,7 +93,7 @@ def proxy(request, host, port, path):
 
   # The tuple here is: (scheme, netloc, path, params, query, fragment).
   # We don't support params or fragment.
-  url = urlunparse((u'http', "%s:%d" % (host,port),
+  url = urlunparse((u'http', "%s:%d" % (host, port),
                     path, 
                     None, 
                     str(request.META.get("QUERY_STRING")),
@@ -113,8 +114,7 @@ def proxy(request, host, port, path):
   return HttpResponse(resp_text, content_type=data.headers.get("content-type"))
 
 def _reverse(host, port, path):
-  return urlresolvers.reverse("proxy.views.proxy",
-                              kwargs=dict(host=host, port=port, path=path))
+  return reverse("proxy.views.proxy", kwargs=dict(host=host, port=port, path=path))
 def _rewrite_url(url):
   """Used by _rewrite_links"""
   scheme, netloc, path, params, query, fragment = urlparse(url)
@@ -131,7 +131,7 @@ def _rewrite_url(url):
   try:
     # We may hit invalid urls. Return None to strip out the link entirely.
     out = _reverse(host, port, path)
-  except urlresolvers.NoReverseMatch as ex:
+  except NoReverseMatch as ex:
     LOGGER.error("Encountered malformed URL '%s' when rewriting proxied page." % (url,))
     return None
 

+ 2 - 1
desktop/core/src/desktop/auth/backend.py

@@ -46,10 +46,11 @@ import requests
 
 import django.contrib.auth.backends
 from django.contrib import auth
-from django.core.urlresolvers import reverse
 from django.core.exceptions import ImproperlyConfigured, PermissionDenied
 from django.http import HttpResponseRedirect
 from django.forms import ValidationError
+from django.urls import reverse
+
 try:
   from django_auth_ldap.backend import LDAPBackend
   from django_auth_ldap.config import LDAPSearch

+ 4 - 4
desktop/core/src/desktop/auth/views.py

@@ -30,11 +30,11 @@ from datetime import datetime
 
 from axes.decorators import watch_login
 import django.contrib.auth.views
-from django.core import urlresolvers
 from django.core.exceptions import SuspiciousOperation
 from django.contrib.auth import login, get_backends, authenticate
 from django.contrib.sessions.models import Session
 from django.http import HttpResponseRedirect
+from django.urls import reverse
 from django.utils.translation import ugettext as _
 
 from hadoop.fs.exceptions import WebHdfsException
@@ -93,7 +93,7 @@ def first_login_ever():
 
 
 # We want unique method name to represent HUE-3 vs HUE-4 method call.
-# This is required because of urlresolvers.reverse('desktop.auth.views.dt_login') below which needs uniqueness to work correctly.
+# This is required because of reverse('desktop.auth.views.dt_login') below which needs uniqueness to work correctly.
 @login_notrequired
 def dt_login_old(request, from_modal=False):
   return dt_login(request, from_modal)
@@ -155,7 +155,7 @@ def dt_login(request, from_modal=False):
           LOG.error('Could not create home directory at login for %s.' % user, exc_info=e)
 
         if require_change_password(userprofile):
-          return HttpResponseRedirect('/hue' + urlresolvers.reverse('useradmin.views.edit_user', kwargs={'username': user.username}))
+          return HttpResponseRedirect('/hue' + reverse('useradmin.views.edit_user', kwargs={'username': user.username}))
 
         userprofile.first_login = False
         userprofile.last_activity = datetime.now()
@@ -210,7 +210,7 @@ def dt_login(request, from_modal=False):
     renderable_path = 'login_modal.mako'
 
   response = render(renderable_path, request, {
-    'action': urlresolvers.reverse('desktop_auth_views_dt_login'),
+    'action': reverse('desktop_auth_views_dt_login'),
     'form': first_user_form or auth_form,
     'next': redirect_to,
     'first_login_ever': is_first_login_ever,

+ 23 - 22
desktop/core/src/desktop/lib/django_util.py

@@ -25,7 +25,7 @@ import socket
 import datetime
 
 from django.conf import settings
-from django.core import urlresolvers, serializers
+from django.core import serializers
 from django.template import context as django_template_context
 from django.template.context_processors import csrf
 from django.core.serializers.json import DjangoJSONEncoder
@@ -34,6 +34,7 @@ from django.http import QueryDict, HttpResponse, HttpResponseRedirect
 from django.shortcuts import render_to_response as django_render_to_response
 from django.template.context import RequestContext
 from django.template.loader import render_to_string as django_render_to_string
+from django.urls import reverse
 from django.utils.http import urlencode # this version is unicode-friendly
 from django.utils.translation import ungettext, ugettext
 from django.utils.timezone import get_current_timezone
@@ -129,7 +130,7 @@ def make_absolute(request, view_name, kwargs=None):
   Magic to make an absolute url.  In the template world,
   this is done with {% url %}.
   """
-  return request.build_absolute_uri(urlresolvers.reverse(view_name, kwargs=kwargs))
+  return request.build_absolute_uri(reverse(view_name, kwargs=kwargs))
 
 def _get_template_lib(template, kwargs):
   template_lib = kwargs.get('template_lib')
@@ -371,16 +372,16 @@ class TruncatingModel(models.Model):
 
 def reverse_with_get(view, args=None, kwargs=None, get=None):
   """
-  Version of urlresolvers.reverse that also manages get parameters.
+  Version of reverse that also manages get parameters.
 
-  view, args and kwargs are arguments passed to urlresolvers.reverse.
+  view, args and kwargs are arguments passed to reverse.
   Typically only one of args and kwargs are specified.
 
   get is a dictionary of extra get parameters.
   """
   if args is None:
     args = dict()
-  url = urlresolvers.reverse(view, args=args, kwargs=kwargs)
+  url = reverse(view, args=args, kwargs=kwargs)
   if get is not None and len(get) > 0:
     params = urlencode(get)
     url = url + "?" + params
@@ -412,21 +413,21 @@ def timesince(d=None, now=None, abbreviate=False, separator=','):
     chunks = (
       (60 * 60 * 24 * 365, lambda n: 'y'),
       (60 * 60 * 24 * 30, lambda n: 'm'),
-      (60 * 60 * 24 * 7, lambda n : 'w'),
-      (60 * 60 * 24, lambda n : 'd'),
+      (60 * 60 * 24 * 7, lambda n: 'w'),
+      (60 * 60 * 24, lambda n: 'd'),
       (60 * 60, lambda n: 'h'),
       (60, lambda n: 'm'),
-      (1, lambda n : 's'),
+      (1, lambda n: 's'),
     )
   else:
     chunks = (
       (60 * 60 * 24 * 365, lambda n: ungettext('year', 'years', n)),
       (60 * 60 * 24 * 30, lambda n: ungettext('month', 'months', n)),
-      (60 * 60 * 24 * 7, lambda n : ungettext('week', 'weeks', n)),
-      (60 * 60 * 24, lambda n : ungettext('day', 'days', n)),
+      (60 * 60 * 24 * 7, lambda n: ungettext('week', 'weeks', n)),
+      (60 * 60 * 24, lambda n: ungettext('day', 'days', n)),
       (60 * 60, lambda n: ungettext('hour', 'hours', n)),
       (60, lambda n: ungettext('minute', 'minutes', n)),
-      (1, lambda n : ungettext('second', 'seconds', n)),
+      (1, lambda n: ungettext('second', 'seconds', n)),
     )
 
   # Convert datetime.date to datetime.datetime for comparison.
@@ -472,7 +473,7 @@ def timesince(d=None, now=None, abbreviate=False, separator=','):
 
 # Backported from Django 1.7
 class JsonResponse(HttpResponse):
-    """
+  """
     An HTTP response class that consumes data to be serialized to JSON.
 
     :param data: Data to be dumped into json. By default only ``dict`` objects
@@ -485,13 +486,13 @@ class JsonResponse(HttpResponse):
     :param json_dumps_params: A dictionary of kwargs passed to json.dumps().
     """
 
-    def __init__(self, data, encoder=DjangoJSONEncoder, safe=True,
-                 json_dumps_params=None, **kwargs):
-        if safe and not isinstance(data, dict):
-            raise TypeError('In order to allow non-dict objects to be '
-                'serialized set the safe parameter to False')
-        if json_dumps_params is None:
-            json_dumps_params = {}
-        kwargs.setdefault('content_type', 'application/json')
-        data = json.dumps(data, cls=encoder, **json_dumps_params)
-        super(JsonResponse, self).__init__(content=data, **kwargs)
+  def __init__(self, data, encoder=DjangoJSONEncoder, safe=True,
+                json_dumps_params=None, **kwargs):
+    if safe and not isinstance(data, dict):
+      raise TypeError('In order to allow non-dict objects to be '
+        'serialized set the safe parameter to False')
+    if json_dumps_params is None:
+      json_dumps_params = {}
+    kwargs.setdefault('content_type', 'application/json')
+    data = json.dumps(data, cls=encoder, **json_dumps_params)
+    super(JsonResponse, self).__init__(content=data, **kwargs)

+ 2 - 2
desktop/core/src/desktop/middleware.py

@@ -38,7 +38,7 @@ from django.conf import settings
 from django.contrib import messages
 from django.contrib.auth import REDIRECT_FIELD_NAME, BACKEND_SESSION_KEY, authenticate, load_backend, login
 from django.contrib.auth.middleware import RemoteUserMiddleware
-from django.core import exceptions, urlresolvers
+from django.core import exceptions
 from django.http import HttpResponseNotAllowed, HttpResponseForbidden
 from django.urls import resolve
 from django.http import HttpResponseRedirect, HttpResponse
@@ -509,7 +509,7 @@ class HtmlValidationMiddleware(object):
       return response
 
     try:
-      fn = urlresolvers.resolve(request.path)[0]
+      fn = resolve(request.path)[0]
       fn_name = '%s.%s' % (fn.__module__, fn.__name__)
     except:
       LOG.exception('failed to resolve url')

+ 1 - 1
desktop/libs/indexer/src/indexer/indexers/envelope.py

@@ -18,7 +18,7 @@ from builtins import object
 import logging
 import os
 
-from django.core.urlresolvers import reverse
+from django.urls import reverse
 from django.utils.translation import ugettext as _
 
 from hadoop.fs.hadoopfs import Hdfs

+ 1 - 1
desktop/libs/indexer/src/indexer/indexers/flume.py

@@ -18,7 +18,7 @@ from builtins import object
 import logging
 import os
 
-from django.core.urlresolvers import reverse
+from django.urls import reverse
 from django.utils.translation import ugettext as _
 
 from libzookeeper.conf import zkensemble

+ 16 - 16
desktop/libs/liboauth/src/liboauth/views.py

@@ -29,11 +29,11 @@ except ImportError:
   LOG.warn('httplib2 module not found')
 
 import django.contrib.auth.views
-from django.core import urlresolvers
 from django.core.exceptions import SuspiciousOperation
 from django.contrib.auth import login, get_backends, authenticate
 from django.contrib.sessions.models import Session
 from django.http import HttpResponseRedirect
+from django.urls import reverse
 from django.utils.translation import ugettext as _
 from hadoop.fs.exceptions import WebHdfsException
 from useradmin.models import User
@@ -51,20 +51,20 @@ from liboauth.backend import OAuthBackend
 
 @login_notrequired
 def show_login_page(request, login_errors=False):
-   """Used by the non-jframe login"""
-   redirect_to = request.GET.get('next', '/')
-   is_first_login_ever = OAuthBackend.is_first_login_ever()
-
-   request.session.set_test_cookie()
-   return render('oauth-login.mako', request, {
-     'action': urlresolvers.reverse('oauth_login'),
-     'next': redirect_to,
-     'first_login_ever': is_first_login_ever,
-     'login_errors': request.method == 'POST' or login_errors,
-     'socialGoogle':   liboauth.conf.CONSUMER_KEY_GOOGLE.get() != "" and liboauth.conf.CONSUMER_SECRET_GOOGLE.get() != "",
-     'socialFacebook': liboauth.conf.CONSUMER_KEY_FACEBOOK.get() != "" and liboauth.conf.CONSUMER_SECRET_FACEBOOK.get() != "",
-     'socialLinkedin': liboauth.conf.CONSUMER_KEY_LINKEDIN.get() != "" and liboauth.conf.CONSUMER_SECRET_LINKEDIN.get() != "",
-     'socialTwitter':  liboauth.conf.CONSUMER_KEY_TWITTER.get() != "" and liboauth.conf.CONSUMER_SECRET_TWITTER.get() != ""
+  """Used by the non-jframe login"""
+  redirect_to = request.GET.get('next', '/')
+  is_first_login_ever = OAuthBackend.is_first_login_ever()
+
+  request.session.set_test_cookie()
+  return render('oauth-login.mako', request, {
+    'action': reverse('oauth_login'),
+    'next': redirect_to,
+    'first_login_ever': is_first_login_ever,
+    'login_errors': request.method == 'POST' or login_errors,
+    'socialGoogle': liboauth.conf.CONSUMER_KEY_GOOGLE.get() != "" and liboauth.conf.CONSUMER_SECRET_GOOGLE.get() != "",
+    'socialFacebook': liboauth.conf.CONSUMER_KEY_FACEBOOK.get() != "" and liboauth.conf.CONSUMER_SECRET_FACEBOOK.get() != "",
+    'socialLinkedin': liboauth.conf.CONSUMER_KEY_LINKEDIN.get() != "" and liboauth.conf.CONSUMER_SECRET_LINKEDIN.get() != "",
+    'socialTwitter': liboauth.conf.CONSUMER_KEY_TWITTER.get() != "" and liboauth.conf.CONSUMER_SECRET_TWITTER.get() != ""
  })
 
 
@@ -85,7 +85,7 @@ def oauth_authenticated(request):
   if access_token == "":
     return show_login_page(request, True)
 
-  user = authenticate(access_token = access_token)
+  user = authenticate(access_token=access_token)
   login(request, user)
 
   return HttpResponseRedirect(next)