Răsfoiți Sursa

[security] Update Sentry to lates Thrift without a privilege name

Romain Rigaux 11 ani în urmă
părinte
comite
f4b68e4

+ 1 - 2
apps/security/src/security/api/hive.py

@@ -43,7 +43,7 @@ def list_sentry_privileges_by_role(request):
   try:
     roleName = request.POST['roleName']
     sentry_privileges = get_api(request.user).list_sentry_privileges_by_role(roleName)
-    result['sentry_privileges'] = sorted(sentry_privileges, key= lambda privilege: privilege['name'])
+    result['sentry_privileges'] = sorted(sentry_privileges, key= lambda privilege: '%s.%s' % (privilege['database'], privilege['table']))
     result['message'] = ''
     result['status'] = 0
   except Exception, e:
@@ -73,7 +73,6 @@ def _hive_add_privileges(user, role, privileges):
         api.alter_sentry_role_grant_privilege(role['name'], _to_sentry_privilege(privilege))
         # Mocked until Sentry API returns the info!
         _privileges.append({
-            "name": "%s+%s+%s" % (privilege.get('serverName', ''), privilege.get('dbName', ''), privilege.get('tableName', '')),
             "timestamp": 1406160830864, "database": privilege.get('dbName', ''), "action": privilege.get('action', ''),
             "scope": privilege.get('privilegeScope', ''), "table": privilege.get('tableName', ''),
             "URI": privilege.get('URI', ''), "grantor": user.username,

+ 0 - 1
apps/security/src/security/templates/hive.mako

@@ -57,7 +57,6 @@ ${ layout.menubar(section='hive') }
       <i class="fa fa-times" data-bind="click: remove"></i>
     </a>
 
-    <strong data-bind="text: properties.name"></strong><br/>
     <em class="muted" data-bind="text: moment(properties.timestamp()).fromNow()"></em><br/>
     ${_('Database')}: <a data-bind="attr: { href: '/metastore/' + properties.database() }" target="_blank"><span data-bind="text: properties.database"></span></a><br/>
     <span data-bind="text: properties.action"></span>

+ 3 - 1
apps/security/static/js/hive.ko.js

@@ -138,7 +138,9 @@ var Role = function (vm, role) {
     }, function (data) {
       if (data.status == 0) {
         $(document).trigger("info", data.message);
-        vm.roles.unshift(new Role(vm, data.role));
+        var role = new Role(vm, data.role);
+        role.showPrivileges(true);
+        vm.roles.unshift(role);
         self.reset();
         $(document).trigger("created.role");
         vm.showCreateRole(false);

+ 6 - 17
desktop/libs/libsentry/gen-py/sentry_policy_service/ttypes.py

@@ -23,7 +23,6 @@ class TSentryPrivilege(object):
   """
   Attributes:
    - privilegeScope
-   - privilegeName
    - serverName
    - dbName
    - tableName
@@ -36,19 +35,18 @@ class TSentryPrivilege(object):
   thrift_spec = (
     None, # 0
     (1, TType.STRING, 'privilegeScope', None, None, ), # 1
-    (2, TType.STRING, 'privilegeName', None, None, ), # 2
+    None, # 2
     (3, TType.STRING, 'serverName', None, None, ), # 3
-    (4, TType.STRING, 'dbName', None, None, ), # 4
-    (5, TType.STRING, 'tableName', None, None, ), # 5
-    (6, TType.STRING, 'URI', None, None, ), # 6
-    (7, TType.STRING, 'action', None, None, ), # 7
+    (4, TType.STRING, 'dbName', None, "", ), # 4
+    (5, TType.STRING, 'tableName', None, "", ), # 5
+    (6, TType.STRING, 'URI', None, "", ), # 6
+    (7, TType.STRING, 'action', None, "", ), # 7
     (8, TType.I64, 'createTime', None, None, ), # 8
     (9, TType.STRING, 'grantorPrincipal', None, None, ), # 9
   )
 
-  def __init__(self, privilegeScope=None, privilegeName=None, serverName=None, dbName=None, tableName=None, URI=None, action=None, createTime=None, grantorPrincipal=None,):
+  def __init__(self, privilegeScope=None, serverName=None, dbName=thrift_spec[4][4], tableName=thrift_spec[5][4], URI=thrift_spec[6][4], action=thrift_spec[7][4], createTime=None, grantorPrincipal=None,):
     self.privilegeScope = privilegeScope
-    self.privilegeName = privilegeName
     self.serverName = serverName
     self.dbName = dbName
     self.tableName = tableName
@@ -71,11 +69,6 @@ class TSentryPrivilege(object):
           self.privilegeScope = iprot.readString();
         else:
           iprot.skip(ftype)
-      elif fid == 2:
-        if ftype == TType.STRING:
-          self.privilegeName = iprot.readString();
-        else:
-          iprot.skip(ftype)
       elif fid == 3:
         if ftype == TType.STRING:
           self.serverName = iprot.readString();
@@ -125,10 +118,6 @@ class TSentryPrivilege(object):
       oprot.writeFieldBegin('privilegeScope', TType.STRING, 1)
       oprot.writeString(self.privilegeScope)
       oprot.writeFieldEnd()
-    if self.privilegeName is not None:
-      oprot.writeFieldBegin('privilegeName', TType.STRING, 2)
-      oprot.writeString(self.privilegeName)
-      oprot.writeFieldEnd()
     if self.serverName is not None:
       oprot.writeFieldBegin('serverName', TType.STRING, 3)
       oprot.writeString(self.serverName)

+ 0 - 1
desktop/libs/libsentry/src/libsentry/api.py

@@ -150,7 +150,6 @@ class SentryApi(object):
   def _massage_priviledges(self, privilege):
     return {
         'scope': privilege.privilegeScope,
-        'name': privilege.privilegeName,
         'server': privilege.serverName,
         'database': privilege.dbName,
         'table': privilege.tableName,

+ 0 - 1
desktop/libs/libsentry/src/libsentry/client.py

@@ -32,7 +32,6 @@ LOG = logging.getLogger(__name__)
 """
 struct TSentryPrivilege {
 1: required string privilegeScope, # Valid values are SERVER, DATABASE, TABLE
-2: optional string privilegeName, # Generated on server side
 3: required string serverName,
 4: optional string dbName,
 5: optional string tableName,

+ 4 - 5
desktop/libs/libsentry/thrift/sentry_policy_service.thrift

@@ -33,12 +33,11 @@ namespace cpp Apache.Sentry.Provider.Db.Service.Thrift
 # Represents a Privilege in transport from the client to the server
 struct TSentryPrivilege {
 1: required string privilegeScope, # Valid values are SERVER, DATABASE, TABLE
-2: optional string privilegeName, # Generated on server side
 3: required string serverName,
-4: optional string dbName,
-5: optional string tableName,
-6: optional string URI,
-7: required string action,
+4: optional string dbName = "",
+5: optional string tableName = "",
+6: optional string URI = "",
+7: required string action = "",
 8: optional i64 createTime, # Set on server side
 9: optional string grantorPrincipal # Set on server side
 }