private TSentryPrivilege grantPrivilege(String requestorUserName,
String roleName, PrivilegeScope scope, String serverName, String uri, String db, String table,
String column, String action, Boolean grantOption)
throws SentryUserException {
TAlterSentryRoleGrantPrivilegeRequest request = new TAlterSentryRoleGrantPrivilegeRequest();
request.setProtocol_version(ThriftConstants.TSENTRY_SERVICE_VERSION_CURRENT);
request.setRequestorUserName(requestorUserName);
request.setRoleName(roleName);
Set<TSentryPrivilege> privileges = convertColumnPrivilege(scope,
serverName, uri, db, table, column, action, grantOption);
request.setPrivileges(privileges);
try {
TAlterSentryRoleGrantPrivilegeResponse response = client.alter_sentry_role_grant_privilege(request);
Status.throwIfNotOk(response.getStatus());
if (response.isSetPrivileges()
&& response.getPrivilegesSize()>0 ) {
return response.getPrivileges().iterator().next();
} else {
return new TSentryPrivilege();
}
} catch (TException e) {
throw new SentryUserException(THRIFT_EXCEPTION_MESSAGE, e);
}
}