Browse Source

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

ayush.goyal 5 years ago
parent
commit
74bd48e93c

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

@@ -18,8 +18,8 @@
 from builtins import str
 from builtins import str
 import logging
 import logging
 
 
-from django.core import urlresolvers
 from django.db import models
 from django.db import models
+from django.urls import reverse
 from django.utils.translation import ugettext_lazy as _
 from django.utils.translation import ugettext_lazy as _
 
 
 from desktop.lib.parameterization import find_parameters, bind_parameters
 from desktop.lib.parameterization import find_parameters, bind_parameters
@@ -47,16 +47,16 @@ class JobDesign(models.Model):
   data = models.TextField()
   data = models.TextField()
 
 
   def edit_url(self):
   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):
   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):
   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):
   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):
   def clone(self):
     clone_kwargs = dict([(field.name, getattr(self, field.name)) for field in self._meta.fields if field.name != 'id']);
     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.request import Request, urlopen
 from urllib.parse import urlencode, urlparse, urlunparse
 from urllib.parse import urlencode, urlparse, urlunparse
 
 
-from django.core import urlresolvers
 from django.http import HttpResponse
 from django.http import HttpResponse
+from django.urls import reverse, NoReverseMatch
+
 from desktop.lib.exceptions import MessageException
 from desktop.lib.exceptions import MessageException
 
 
 from proxy import conf
 from proxy import conf
@@ -64,7 +65,7 @@ def check_blacklist(host, port, path):
   # "/forbidden/path" (regex).
   # "/forbidden/path" (regex).
   has_trailing_slash = path.endswith('/')
   has_trailing_slash = path.endswith('/')
   path_elems = path.split('/')
   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))
   canon_url = "%s:%s/%s" % (host, port, '/'.join(path_elems))
   if has_trailing_slash:
   if has_trailing_slash:
     canon_url += '/'
     canon_url += '/'
@@ -92,7 +93,7 @@ def proxy(request, host, port, path):
 
 
   # The tuple here is: (scheme, netloc, path, params, query, fragment).
   # The tuple here is: (scheme, netloc, path, params, query, fragment).
   # We don't support params or 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, 
                     path, 
                     None, 
                     None, 
                     str(request.META.get("QUERY_STRING")),
                     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"))
   return HttpResponse(resp_text, content_type=data.headers.get("content-type"))
 
 
 def _reverse(host, port, path):
 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):
 def _rewrite_url(url):
   """Used by _rewrite_links"""
   """Used by _rewrite_links"""
   scheme, netloc, path, params, query, fragment = urlparse(url)
   scheme, netloc, path, params, query, fragment = urlparse(url)
@@ -131,7 +131,7 @@ def _rewrite_url(url):
   try:
   try:
     # We may hit invalid urls. Return None to strip out the link entirely.
     # We may hit invalid urls. Return None to strip out the link entirely.
     out = _reverse(host, port, path)
     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,))
     LOGGER.error("Encountered malformed URL '%s' when rewriting proxied page." % (url,))
     return None
     return None
 
 

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

@@ -46,10 +46,11 @@ import requests
 
 
 import django.contrib.auth.backends
 import django.contrib.auth.backends
 from django.contrib import auth
 from django.contrib import auth
-from django.core.urlresolvers import reverse
 from django.core.exceptions import ImproperlyConfigured, PermissionDenied
 from django.core.exceptions import ImproperlyConfigured, PermissionDenied
 from django.http import HttpResponseRedirect
 from django.http import HttpResponseRedirect
 from django.forms import ValidationError
 from django.forms import ValidationError
+from django.urls import reverse
+
 try:
 try:
   from django_auth_ldap.backend import LDAPBackend
   from django_auth_ldap.backend import LDAPBackend
   from django_auth_ldap.config import LDAPSearch
   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
 from axes.decorators import watch_login
 import django.contrib.auth.views
 import django.contrib.auth.views
-from django.core import urlresolvers
 from django.core.exceptions import SuspiciousOperation
 from django.core.exceptions import SuspiciousOperation
 from django.contrib.auth import login, get_backends, authenticate
 from django.contrib.auth import login, get_backends, authenticate
 from django.contrib.sessions.models import Session
 from django.contrib.sessions.models import Session
 from django.http import HttpResponseRedirect
 from django.http import HttpResponseRedirect
+from django.urls import reverse
 from django.utils.translation import ugettext as _
 from django.utils.translation import ugettext as _
 
 
 from hadoop.fs.exceptions import WebHdfsException
 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.
 # 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
 @login_notrequired
 def dt_login_old(request, from_modal=False):
 def dt_login_old(request, from_modal=False):
   return dt_login(request, from_modal)
   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)
           LOG.error('Could not create home directory at login for %s.' % user, exc_info=e)
 
 
         if require_change_password(userprofile):
         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.first_login = False
         userprofile.last_activity = datetime.now()
         userprofile.last_activity = datetime.now()
@@ -210,7 +210,7 @@ def dt_login(request, from_modal=False):
     renderable_path = 'login_modal.mako'
     renderable_path = 'login_modal.mako'
 
 
   response = render(renderable_path, request, {
   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,
     'form': first_user_form or auth_form,
     'next': redirect_to,
     'next': redirect_to,
     'first_login_ever': is_first_login_ever,
     '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
 import datetime
 
 
 from django.conf import settings
 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 import context as django_template_context
 from django.template.context_processors import csrf
 from django.template.context_processors import csrf
 from django.core.serializers.json import DjangoJSONEncoder
 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.shortcuts import render_to_response as django_render_to_response
 from django.template.context import RequestContext
 from django.template.context import RequestContext
 from django.template.loader import render_to_string as django_render_to_string
 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.http import urlencode # this version is unicode-friendly
 from django.utils.translation import ungettext, ugettext
 from django.utils.translation import ungettext, ugettext
 from django.utils.timezone import get_current_timezone
 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,
   Magic to make an absolute url.  In the template world,
   this is done with {% url %}.
   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):
 def _get_template_lib(template, kwargs):
   template_lib = kwargs.get('template_lib')
   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):
 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.
   Typically only one of args and kwargs are specified.
 
 
   get is a dictionary of extra get parameters.
   get is a dictionary of extra get parameters.
   """
   """
   if args is None:
   if args is None:
     args = dict()
     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:
   if get is not None and len(get) > 0:
     params = urlencode(get)
     params = urlencode(get)
     url = url + "?" + params
     url = url + "?" + params
@@ -412,21 +413,21 @@ def timesince(d=None, now=None, abbreviate=False, separator=','):
     chunks = (
     chunks = (
       (60 * 60 * 24 * 365, lambda n: 'y'),
       (60 * 60 * 24 * 365, lambda n: 'y'),
       (60 * 60 * 24 * 30, lambda n: 'm'),
       (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 * 60, lambda n: 'h'),
       (60, lambda n: 'm'),
       (60, lambda n: 'm'),
-      (1, lambda n : 's'),
+      (1, lambda n: 's'),
     )
     )
   else:
   else:
     chunks = (
     chunks = (
       (60 * 60 * 24 * 365, lambda n: ungettext('year', 'years', n)),
       (60 * 60 * 24 * 365, lambda n: ungettext('year', 'years', n)),
       (60 * 60 * 24 * 30, lambda n: ungettext('month', 'months', 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 * 60, lambda n: ungettext('hour', 'hours', n)),
       (60, lambda n: ungettext('minute', 'minutes', 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.
   # 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
 # Backported from Django 1.7
 class JsonResponse(HttpResponse):
 class JsonResponse(HttpResponse):
-    """
+  """
     An HTTP response class that consumes data to be serialized to JSON.
     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
     :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().
     :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 import messages
 from django.contrib.auth import REDIRECT_FIELD_NAME, BACKEND_SESSION_KEY, authenticate, load_backend, login
 from django.contrib.auth import REDIRECT_FIELD_NAME, BACKEND_SESSION_KEY, authenticate, load_backend, login
 from django.contrib.auth.middleware import RemoteUserMiddleware
 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.http import HttpResponseNotAllowed, HttpResponseForbidden
 from django.urls import resolve
 from django.urls import resolve
 from django.http import HttpResponseRedirect, HttpResponse
 from django.http import HttpResponseRedirect, HttpResponse
@@ -509,7 +509,7 @@ class HtmlValidationMiddleware(object):
       return response
       return response
 
 
     try:
     try:
-      fn = urlresolvers.resolve(request.path)[0]
+      fn = resolve(request.path)[0]
       fn_name = '%s.%s' % (fn.__module__, fn.__name__)
       fn_name = '%s.%s' % (fn.__module__, fn.__name__)
     except:
     except:
       LOG.exception('failed to resolve url')
       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 logging
 import os
 import os
 
 
-from django.core.urlresolvers import reverse
+from django.urls import reverse
 from django.utils.translation import ugettext as _
 from django.utils.translation import ugettext as _
 
 
 from hadoop.fs.hadoopfs import Hdfs
 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 logging
 import os
 import os
 
 
-from django.core.urlresolvers import reverse
+from django.urls import reverse
 from django.utils.translation import ugettext as _
 from django.utils.translation import ugettext as _
 
 
 from libzookeeper.conf import zkensemble
 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')
   LOG.warn('httplib2 module not found')
 
 
 import django.contrib.auth.views
 import django.contrib.auth.views
-from django.core import urlresolvers
 from django.core.exceptions import SuspiciousOperation
 from django.core.exceptions import SuspiciousOperation
 from django.contrib.auth import login, get_backends, authenticate
 from django.contrib.auth import login, get_backends, authenticate
 from django.contrib.sessions.models import Session
 from django.contrib.sessions.models import Session
 from django.http import HttpResponseRedirect
 from django.http import HttpResponseRedirect
+from django.urls import reverse
 from django.utils.translation import ugettext as _
 from django.utils.translation import ugettext as _
 from hadoop.fs.exceptions import WebHdfsException
 from hadoop.fs.exceptions import WebHdfsException
 from useradmin.models import User
 from useradmin.models import User
@@ -51,20 +51,20 @@ from liboauth.backend import OAuthBackend
 
 
 @login_notrequired
 @login_notrequired
 def show_login_page(request, login_errors=False):
 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 == "":
   if access_token == "":
     return show_login_page(request, True)
     return show_login_page(request, True)
 
 
-  user = authenticate(access_token = access_token)
+  user = authenticate(access_token=access_token)
   login(request, user)
   login(request, user)
 
 
   return HttpResponseRedirect(next)
   return HttpResponseRedirect(next)