浏览代码

HUE-8737 [core] Futurize apps/security for Python 3.5

Ying Chen 6 年之前
父节点
当前提交
c361cd38bc

+ 12 - 10
apps/security/src/security/api/hdfs.py

@@ -15,6 +15,8 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+from __future__ import print_function
+from builtins import str
 import json
 
 from django.utils.translation import ugettext as _
@@ -36,7 +38,7 @@ def _diff_list_dir(user_listing, hdfs_listing):
 
   # Files visible by hdfs only
   hdfs_only = list(set(hdfs_files) - set(user_files))
-  new_hdfs = filter(lambda f: f['stats']['path'] in hdfs_only, hdfs_listing['files'])
+  new_hdfs = [f for f in hdfs_listing['files'] if f['stats']['path'] in hdfs_only]
 
   for f in new_hdfs:
     f['striked'] = True
@@ -56,7 +58,7 @@ def list_hdfs(request, path):
   except IOError:
     # AccessControlException: Permission denied: user=test, access=READ_EXECUTE, inode="/tmp/dir":romain:supergroup:drwxr-xr-x:group::r-x,group:bob:---,group:test:---,default:user::rwx,default:group::r--,default:mask::r--,default:other::rwx (error 403)
     json_response = JsonResponse({'files': [], 'page': {}, 'error': 'FILE_NOT_FOUND'})
-  except Exception, e:
+  except Exception as e:
     # AccessControlException: Permission denied: user=test, access=READ_EXECUTE, inode="/tmp/dir":romain:supergroup:drwxr-xr-x:group::r-x,group:bob:---,group:test:---,default:user::rwx,default:group::r--,default:mask::r--,default:other::rwx (error 403)
     json_response = JsonResponse({'files': [], 'page': {}, 'error': 'ACCESS_DENIED'})
 
@@ -76,8 +78,8 @@ def list_hdfs(request, path):
 def get_acls(request):
   try:
     acls = request.fs.get_acl_status(request.GET.get('path'))
-  except Exception, e:
-    print e
+  except Exception as e:
+    print(e)
     acls = None
 
   return JsonResponse(acls is not None and acls['AclStatus'] or None, safe=False)
@@ -96,8 +98,8 @@ def update_acls(request):
       _remove_acl_names(request.fs, path, list(renamed_acls))
       _remove_acl_entries(request.fs, path, [acl for acl in acls if acl['status'] == 'deleted'])
       _modify_acl_entries(request.fs, path, [acl for acl in acls if acl['status'] in ('new', 'modified')])
-  except Exception, e:
-    raise PopupException(unicode(str(e.message), "utf8"))
+  except Exception as e:
+    raise PopupException(str(e.message))
 
   return JsonResponse({'status': 0})
 
@@ -113,8 +115,8 @@ def bulk_delete_acls(request):
       request.fs.remove_acl(path)
       if recursive:
         request.fs.do_recursively(request.fs.remove_acl, path)
-  except Exception, e:
-    raise PopupException(unicode(str(e.message), "utf8"))
+  except Exception as e:
+    raise PopupException(str(e.message))
 
   return JsonResponse({'status': 0})
 
@@ -129,8 +131,8 @@ def bulk_add_acls(request):
     checked_paths = [path['path'] for path in checked_paths if path['path'] != path] # Don't touch current path
     for path in checked_paths:
       _modify_acl_entries(request.fs, path, [acl for acl in acls if acl['status'] == ''], recursive) # Only saved ones
-  except Exception, e:
-    raise PopupException(unicode(str(e.message), "utf8"))
+  except Exception as e:
+    raise PopupException(str(e.message))
 
   return JsonResponse({'status': 0})
 

+ 28 - 27
apps/security/src/security/api/hive.py

@@ -15,6 +15,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+from builtins import str
 import json
 import logging
 import time
@@ -71,14 +72,14 @@ def list_sentry_roles_by_group(request):
     result['roles'] = sorted(roles, key=lambda role: role['name'])
     result['message'] = ''
     result['status'] = 0
-  except Exception, e:
+  except Exception as e:
     LOG.exception("could not retrieve roles")
 
     if "couldn't be retrieved." in str(e):
       result['roles'] = []
       result['status'] = 0
     else:
-      result['message'] = unicode(str(e), "utf8")
+      result['message'] = str(e)
 
   return JsonResponse(result)
 
@@ -92,10 +93,10 @@ def list_sentry_privileges_by_role(request):
     result['sentry_privileges'] = sorted(sentry_privileges, key=lambda privilege: '%s.%s.%s.%s' % (privilege['server'], privilege['database'], privilege['table'], privilege['URI']))
     result['message'] = ''
     result['status'] = 0
-  except Exception, e:
+  except Exception as e:
     LOG.exception("could not list sentry privileges")
 
-    result['message'] = unicode(str(e), "utf8")
+    result['message'] = str(e)
 
   return JsonResponse(result)
 
@@ -184,10 +185,10 @@ def create_role(request):
 
     result['message'] = _('Role created!')
     result['status'] = 0
-  except Exception, e:
+  except Exception as e:
     LOG.exception("could not create role")
 
-    result['message'] = unicode(str(e), "utf8")
+    result['message'] = str(e)
 
   return JsonResponse(result)
 
@@ -210,10 +211,10 @@ def update_role_groups(request):
 
     result['message'] = ''
     result['status'] = 0
-  except Exception, e:
+  except Exception as e:
     LOG.exception("could not update role groups")
 
-    result['message'] = unicode(str(e), "utf8")
+    result['message'] = str(e)
 
   return JsonResponse(result)
 
@@ -240,10 +241,10 @@ def save_privileges(request):
 
     result['message'] = _('Privileges updated')
     result['status'] = 0
-  except Exception, e:
+  except Exception as e:
     LOG.exception("could not save privileges")
 
-    result['message'] = unicode(str(e), "utf8")
+    result['message'] = str(e)
 
   return JsonResponse(result)
 
@@ -259,10 +260,10 @@ def grant_privilege(request):
 
     result['message'] = _('Privilege granted successfully to %s.') % roleName
     result['status'] = 0
-  except Exception, e:
+  except Exception as e:
     LOG.exception("could not grant privileges")
 
-    result['message'] = unicode(str(e), "utf8")
+    result['message'] = str(e)
 
   return JsonResponse(result)
 
@@ -276,10 +277,10 @@ def create_sentry_role(request):
     get_api(request.user).create_sentry_role(roleName)
     result['message'] = _('Role and privileges created.')
     result['status'] = 0
-  except Exception, e:
+  except Exception as e:
     LOG.exception("could not create role")
 
-    result['message'] = unicode(str(e), "utf8")
+    result['message'] = str(e)
 
   return JsonResponse(result)
 
@@ -293,10 +294,10 @@ def drop_sentry_role(request):
     get_api(request.user).drop_sentry_role(roleName)
     result['message'] = _('Role and privileges deleted.')
     result['status'] = 0
-  except Exception, e:
+  except Exception as e:
     LOG.exception("could not drop role")
 
-    result['message'] = unicode(str(e), "utf8")
+    result['message'] = str(e)
 
   return JsonResponse(result)
 
@@ -311,7 +312,7 @@ def list_sentry_privileges_by_authorizable(request):
     _privileges = []
 
     for authorizable, roles in get_api(request.user).list_sentry_privileges_by_authorizable(authorizableSet=authorizableSet, groups=groups):
-      for role, privileges in roles.iteritems():
+      for role, privileges in roles.items():
         for privilege in privileges:
           privilege['roleName'] = role
           _privileges.append(privilege)
@@ -320,10 +321,10 @@ def list_sentry_privileges_by_authorizable(request):
 
     result['message'] = ''
     result['status'] = 0
-  except Exception, e:
+  except Exception as e:
     LOG.exception("could not list privileges by authorizable")
 
-    result['message'] = unicode(str(e), "utf8")
+    result['message'] = str(e)
 
   return JsonResponse(result)
 
@@ -345,10 +346,10 @@ def bulk_delete_privileges(request):
       get_api(request.user).drop_sentry_privileges(authorizableHierarchy)
     result['message'] = _('Privileges deleted.')
     result['status'] = 0
-  except Exception, e:
+  except Exception as e:
     LOG.exception("could not bulk delete privileges")
 
-    result['message'] = unicode(str(e), "utf8")
+    result['message'] = str(e)
 
   return JsonResponse(result)
 
@@ -382,10 +383,10 @@ def bulk_add_privileges(request):
 
     result['message'] = _('Privileges added.')
     result['status'] = 0
-  except Exception, e:
+  except Exception as e:
     LOG.exception("could not bulk add privileges")
 
-    result['message'] = unicode(str(e), "utf8")
+    result['message'] = str(e)
 
   return JsonResponse(result)
 
@@ -400,10 +401,10 @@ def rename_sentry_privilege(request):
     get_api(request.user).rename_sentry_privilege(oldAuthorizable, newAuthorizable)
     result['message'] = _('Privilege deleted.')
     result['status'] = 0
-  except Exception, e:
+  except Exception as e:
     LOG.exception("could not rename privilege")
 
-    result['message'] = unicode(str(e), "utf8")
+    result['message'] = str(e)
 
   return JsonResponse(result)
 
@@ -420,9 +421,9 @@ def list_sentry_privileges_for_provider(request):
     result['sentry_privileges'] = sentry_privileges
     result['message'] = ''
     result['status'] = 0
-  except Exception, e:
+  except Exception as e:
     LOG.exception("could not list privileges for provider")
 
-    result['message'] = unicode(str(e), "utf8")
+    result['message'] = str(e)
 
   return JsonResponse(result)

+ 28 - 27
apps/security/src/security/api/sentry.py

@@ -15,6 +15,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+from builtins import str
 import json
 import logging
 import time
@@ -111,14 +112,14 @@ def list_sentry_roles_by_group(request):
     result['roles'] = sorted(roles, key=lambda role: role['name'])
     result['message'] = ''
     result['status'] = 0
-  except Exception, e:
+  except Exception as e:
     LOG.exception("could not retrieve roles")
 
     if "couldn't be retrieved." in str(e):
       result['roles'] = []
       result['status'] = 0
     else:
-      result['message'] = unicode(str(e), "utf8")
+      result['message'] = str(e)
 
   return JsonResponse(result)
 
@@ -136,10 +137,10 @@ def list_sentry_privileges_by_role(request):
     result['sentry_privileges'] = sorted(sentry_privileges, key=lambda privilege: '.'.join([auth['name'] for auth in privilege['authorizables']]))
     result['message'] = ''
     result['status'] = 0
-  except Exception, e:
+  except Exception as e:
     LOG.exception("could not list sentry privileges")
 
-    result['message'] = unicode(str(e), "utf8")
+    result['message'] = str(e)
 
   return JsonResponse(result)
 
@@ -227,10 +228,10 @@ def create_role(request):
 
     result['message'] = _('Role created!')
     result['status'] = 0
-  except Exception, e:
+  except Exception as e:
     LOG.exception("could not create role")
 
-    result['message'] = unicode(str(e), "utf8")
+    result['message'] = str(e)
 
   return JsonResponse(result)
 
@@ -254,10 +255,10 @@ def update_role_groups(request):
 
     result['message'] = ''
     result['status'] = 0
-  except Exception, e:
+  except Exception as e:
     LOG.exception("could not update role groups")
 
-    result['message'] = unicode(str(e), "utf8")
+    result['message'] = str(e)
 
   return JsonResponse(result)
 
@@ -285,10 +286,10 @@ def save_privileges(request):
 
     result['message'] = _('Privileges updated')
     result['status'] = 0
-  except Exception, e:
+  except Exception as e:
     LOG.exception("could not save privileges")
 
-    result['message'] = unicode(str(e), "utf8")
+    result['message'] = str(e)
 
   return JsonResponse(result)
 
@@ -305,10 +306,10 @@ def grant_privilege(request):
 
     result['message'] = _('Privilege granted successfully to %s.') % roleName
     result['status'] = 0
-  except Exception, e:
+  except Exception as e:
     LOG.exception("could not grant privileges")
 
-    result['message'] = unicode(str(e), "utf8")
+    result['message'] = str(e)
 
   return JsonResponse(result)
 
@@ -323,10 +324,10 @@ def create_sentry_role(request):
     get_api(request.user, component).create_sentry_role(roleName)
     result['message'] = _('Role and privileges created.')
     result['status'] = 0
-  except Exception, e:
+  except Exception as e:
     LOG.exception("could not create role")
 
-    result['message'] = unicode(str(e), "utf8")
+    result['message'] = str(e)
 
   return JsonResponse(result)
 
@@ -341,10 +342,10 @@ def drop_sentry_role(request):
     get_api(request.user, component).drop_sentry_role(roleName)
     result['message'] = _('Role and privileges deleted.')
     result['status'] = 0
-  except Exception, e:
+  except Exception as e:
     LOG.exception("could not drop role")
 
-    result['message'] = unicode(str(e), "utf8")
+    result['message'] = str(e)
 
   return JsonResponse(result)
 
@@ -361,7 +362,7 @@ def list_sentry_privileges_by_authorizable(request):
     _privileges = []
 
     for authorizable, roles in get_api(request.user, component).list_sentry_privileges_by_authorizable(serviceName=serviceName, authorizableSet=authorizableSet, groups=groups):
-      for role, privileges in roles.iteritems():
+      for role, privileges in roles.items():
         for privilege in privileges:
           privilege['roleName'] = role
           _privileges.append(privilege)
@@ -370,10 +371,10 @@ def list_sentry_privileges_by_authorizable(request):
 
     result['message'] = ''
     result['status'] = 0
-  except Exception, e:
+  except Exception as e:
     LOG.exception("could not list privileges by authorizable")
 
-    result['message'] = unicode(str(e), "utf8")
+    result['message'] = str(e)
 
   return JsonResponse(result)
 
@@ -396,10 +397,10 @@ def bulk_delete_privileges(request):
       get_api(request.user, component).drop_sentry_privileges(authorizableHierarchy)
     result['message'] = _('Privileges deleted.')
     result['status'] = 0
-  except Exception, e:
+  except Exception as e:
     LOG.exception("could not bulk delete privileges")
 
-    result['message'] = unicode(str(e), "utf8")
+    result['message'] = str(e)
 
   return JsonResponse(result)
 
@@ -434,10 +435,10 @@ def bulk_add_privileges(request):
 
     result['message'] = _('Privileges added.')
     result['status'] = 0
-  except Exception, e:
+  except Exception as e:
     LOG.exception("could not bulk add privileges")
 
-    result['message'] = unicode(str(e), "utf8")
+    result['message'] = str(e)
 
   return JsonResponse(result)
 
@@ -453,10 +454,10 @@ def rename_sentry_privilege(request):
     get_api(request.user, component).rename_sentry_privilege(oldAuthorizable, newAuthorizable)
     result['message'] = _('Privilege deleted.')
     result['status'] = 0
-  except Exception, e:
+  except Exception as e:
     LOG.exception("could not rename privilege")
 
-    result['message'] = unicode(str(e), "utf8")
+    result['message'] = str(e)
 
   return JsonResponse(result)
 
@@ -474,9 +475,9 @@ def list_sentry_privileges_for_provider(request):
     result['sentry_privileges'] = sentry_privileges
     result['message'] = ''
     result['status'] = 0
-  except Exception, e:
+  except Exception as e:
     LOG.exception("could not list privileges for provider")
 
-    result['message'] = unicode(str(e), "utf8")
+    result['message'] = str(e)
 
   return JsonResponse(result)

+ 1 - 0
apps/security/src/security/api/test_hive.py

@@ -16,6 +16,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+from builtins import object
 import json
 
 from django.urls import reverse

+ 2 - 2
apps/security/src/security/conf.py

@@ -50,12 +50,12 @@ def config_validator(user):
 
   try:
     get_api(user).list_sentry_roles_by_group('*')
-  except Exception, e:
+  except Exception as e:
     res.append(('%s: Sentry Service' % NICE_NAME, _("Failed to connect to Sentry API (version 1).")))
 
   try:
     get_api2(user).list_sentry_roles_by_group('*')
-  except Exception, e:
+  except Exception as e:
     res.append(('%s: Sentry Service' % NICE_NAME, _("Failed to connect to Sentry API (version 2).")))
 
   return res

+ 2 - 1
apps/security/src/security/tests.py

@@ -16,6 +16,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+from builtins import object
 from nose.tools import assert_true, assert_equal, assert_false
 
 from desktop.lib.django_test_util import make_logged_in_client
@@ -29,7 +30,7 @@ from useradmin.models import HuePermission, GroupPermission
 from security.api.hive import _to_sentry_privilege
 
 
-class TestSecurity():
+class TestSecurity(object):
 
   def test_permissions(self):
     client = make_logged_in_client(username='test_permissions', groupname='test_permissions', is_superuser=False)