Return-Path: X-Original-To: apmail-sentry-commits-archive@minotaur.apache.org Delivered-To: apmail-sentry-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 9B3091117D for ; Wed, 17 Sep 2014 23:01:45 +0000 (UTC) Received: (qmail 28950 invoked by uid 500); 17 Sep 2014 23:01:45 -0000 Delivered-To: apmail-sentry-commits-archive@sentry.apache.org Received: (qmail 28901 invoked by uid 500); 17 Sep 2014 23:01:45 -0000 Mailing-List: contact commits-help@sentry.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@sentry.incubator.apache.org Delivered-To: mailing list commits@sentry.incubator.apache.org Received: (qmail 28892 invoked by uid 99); 17 Sep 2014 23:01:45 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 17 Sep 2014 23:01:45 +0000 X-ASF-Spam-Status: No, hits=-2000.7 required=5.0 tests=ALL_TRUSTED,RP_MATCHES_RCVD X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO mail.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with SMTP; Wed, 17 Sep 2014 23:01:15 +0000 Received: (qmail 28342 invoked by uid 99); 17 Sep 2014 23:01:11 -0000 Received: from tyr.zones.apache.org (HELO tyr.zones.apache.org) (140.211.11.114) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 17 Sep 2014 23:01:11 +0000 Received: by tyr.zones.apache.org (Postfix, from userid 65534) id 2F76EA19D16; Wed, 17 Sep 2014 23:01:11 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: sravya@apache.org To: commits@sentry.incubator.apache.org Date: Wed, 17 Sep 2014 23:01:12 -0000 Message-Id: <5d34206f68054401af44ad93324dd9d9@git.apache.org> In-Reply-To: References: X-Mailer: ASF-Git Admin Mailer Subject: [2/2] git commit: SENTRY-359: Support Sentry service API to retrieve applicable privileges for a given authorizable object (Prasad Mujumdar via Arun and Sravya) X-Virus-Checked: Checked by ClamAV on apache.org SENTRY-359: Support Sentry service API to retrieve applicable privileges for a given authorizable object (Prasad Mujumdar via Arun and Sravya) Project: http://git-wip-us.apache.org/repos/asf/incubator-sentry/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-sentry/commit/fa5f81c7 Tree: http://git-wip-us.apache.org/repos/asf/incubator-sentry/tree/fa5f81c7 Diff: http://git-wip-us.apache.org/repos/asf/incubator-sentry/diff/fa5f81c7 Branch: refs/heads/master Commit: fa5f81c7734f8af8e1bdc669d6cbe2e5951e2bac Parents: d1d2fd3 Author: Sravya Tirukkovalur Authored: Wed Sep 17 16:00:24 2014 -0700 Committer: Sravya Tirukkovalur Committed: Wed Sep 17 16:00:24 2014 -0700 ---------------------------------------------------------------------- .../db/service/thrift/SentryPolicyService.java | 806 ++++++++++++++++++ .../TAlterSentryRoleGrantPrivilegeResponse.java | 117 ++- .../TListSentryPrivilegesByAuthRequest.java | 813 +++++++++++++++++++ .../TListSentryPrivilegesByAuthResponse.java | 558 +++++++++++++ .../db/service/thrift/TSentryPrivilegeMap.java | 486 +++++++++++ .../db/service/persistent/SentryStore.java | 115 ++- .../thrift/SentryPolicyServiceClient.java | 71 +- .../thrift/SentryPolicyStoreProcessor.java | 25 + .../main/resources/sentry_policy_service.thrift | 19 + .../thrift/TestSentryServiceIntegration.java | 223 +++++ 10 files changed, 3204 insertions(+), 29 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-sentry/blob/fa5f81c7/sentry-provider/sentry-provider-db/src/gen/thrift/gen-javabean/org/apache/sentry/provider/db/service/thrift/SentryPolicyService.java ---------------------------------------------------------------------- diff --git a/sentry-provider/sentry-provider-db/src/gen/thrift/gen-javabean/org/apache/sentry/provider/db/service/thrift/SentryPolicyService.java b/sentry-provider/sentry-provider-db/src/gen/thrift/gen-javabean/org/apache/sentry/provider/db/service/thrift/SentryPolicyService.java index 8a006aa..d112871 100644 --- a/sentry-provider/sentry-provider-db/src/gen/thrift/gen-javabean/org/apache/sentry/provider/db/service/thrift/SentryPolicyService.java +++ b/sentry-provider/sentry-provider-db/src/gen/thrift/gen-javabean/org/apache/sentry/provider/db/service/thrift/SentryPolicyService.java @@ -57,6 +57,8 @@ public class SentryPolicyService { public TRenamePrivilegesResponse rename_sentry_privilege(TRenamePrivilegesRequest request) throws org.apache.thrift.TException; + public TListSentryPrivilegesByAuthResponse list_sentry_privileges_by_authorizable(TListSentryPrivilegesByAuthRequest request) throws org.apache.thrift.TException; + } public interface AsyncIface { @@ -83,6 +85,8 @@ public class SentryPolicyService { public void rename_sentry_privilege(TRenamePrivilegesRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException; + public void list_sentry_privileges_by_authorizable(TListSentryPrivilegesByAuthRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException; + } public static class Client extends org.apache.thrift.TServiceClient implements Iface { @@ -358,6 +362,29 @@ public class SentryPolicyService { throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "rename_sentry_privilege failed: unknown result"); } + public TListSentryPrivilegesByAuthResponse list_sentry_privileges_by_authorizable(TListSentryPrivilegesByAuthRequest request) throws org.apache.thrift.TException + { + send_list_sentry_privileges_by_authorizable(request); + return recv_list_sentry_privileges_by_authorizable(); + } + + public void send_list_sentry_privileges_by_authorizable(TListSentryPrivilegesByAuthRequest request) throws org.apache.thrift.TException + { + list_sentry_privileges_by_authorizable_args args = new list_sentry_privileges_by_authorizable_args(); + args.setRequest(request); + sendBase("list_sentry_privileges_by_authorizable", args); + } + + public TListSentryPrivilegesByAuthResponse recv_list_sentry_privileges_by_authorizable() throws org.apache.thrift.TException + { + list_sentry_privileges_by_authorizable_result result = new list_sentry_privileges_by_authorizable_result(); + receiveBase(result, "list_sentry_privileges_by_authorizable"); + if (result.isSetSuccess()) { + return result.success; + } + throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "list_sentry_privileges_by_authorizable failed: unknown result"); + } + } public static class AsyncClient extends org.apache.thrift.async.TAsyncClient implements AsyncIface { public static class Factory implements org.apache.thrift.async.TAsyncClientFactory { @@ -728,6 +755,38 @@ public class SentryPolicyService { } } + public void list_sentry_privileges_by_authorizable(TListSentryPrivilegesByAuthRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException { + checkReady(); + list_sentry_privileges_by_authorizable_call method_call = new list_sentry_privileges_by_authorizable_call(request, resultHandler, this, ___protocolFactory, ___transport); + this.___currentMethod = method_call; + ___manager.call(method_call); + } + + public static class list_sentry_privileges_by_authorizable_call extends org.apache.thrift.async.TAsyncMethodCall { + private TListSentryPrivilegesByAuthRequest request; + public list_sentry_privileges_by_authorizable_call(TListSentryPrivilegesByAuthRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException { + super(client, protocolFactory, transport, resultHandler, false); + this.request = request; + } + + public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException { + prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("list_sentry_privileges_by_authorizable", org.apache.thrift.protocol.TMessageType.CALL, 0)); + list_sentry_privileges_by_authorizable_args args = new list_sentry_privileges_by_authorizable_args(); + args.setRequest(request); + args.write(prot); + prot.writeMessageEnd(); + } + + public TListSentryPrivilegesByAuthResponse getResult() throws org.apache.thrift.TException { + if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) { + throw new IllegalStateException("Method call not finished!"); + } + org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array()); + org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport); + return (new Client(prot)).recv_list_sentry_privileges_by_authorizable(); + } + } + } public static class Processor extends org.apache.thrift.TBaseProcessor implements org.apache.thrift.TProcessor { @@ -752,6 +811,7 @@ public class SentryPolicyService { processMap.put("list_sentry_privileges_for_provider", new list_sentry_privileges_for_provider()); processMap.put("drop_sentry_privilege", new drop_sentry_privilege()); processMap.put("rename_sentry_privilege", new rename_sentry_privilege()); + processMap.put("list_sentry_privileges_by_authorizable", new list_sentry_privileges_by_authorizable()); return processMap; } @@ -975,6 +1035,26 @@ public class SentryPolicyService { } } + public static class list_sentry_privileges_by_authorizable extends org.apache.thrift.ProcessFunction { + public list_sentry_privileges_by_authorizable() { + super("list_sentry_privileges_by_authorizable"); + } + + public list_sentry_privileges_by_authorizable_args getEmptyArgsInstance() { + return new list_sentry_privileges_by_authorizable_args(); + } + + protected boolean isOneway() { + return false; + } + + public list_sentry_privileges_by_authorizable_result getResult(I iface, list_sentry_privileges_by_authorizable_args args) throws org.apache.thrift.TException { + list_sentry_privileges_by_authorizable_result result = new list_sentry_privileges_by_authorizable_result(); + result.success = iface.list_sentry_privileges_by_authorizable(args.request); + return result; + } + } + } public static class create_sentry_role_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { @@ -8963,4 +9043,730 @@ public class SentryPolicyService { } + public static class list_sentry_privileges_by_authorizable_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { + private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("list_sentry_privileges_by_authorizable_args"); + + private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1); + + private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); + static { + schemes.put(StandardScheme.class, new list_sentry_privileges_by_authorizable_argsStandardSchemeFactory()); + schemes.put(TupleScheme.class, new list_sentry_privileges_by_authorizable_argsTupleSchemeFactory()); + } + + private TListSentryPrivilegesByAuthRequest request; // required + + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements org.apache.thrift.TFieldIdEnum { + REQUEST((short)1, "request"); + + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + switch(fieldId) { + case 1: // REQUEST + return REQUEST; + default: + return null; + } + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; + static { + Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); + tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TListSentryPrivilegesByAuthRequest.class))); + metaDataMap = Collections.unmodifiableMap(tmpMap); + org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(list_sentry_privileges_by_authorizable_args.class, metaDataMap); + } + + public list_sentry_privileges_by_authorizable_args() { + } + + public list_sentry_privileges_by_authorizable_args( + TListSentryPrivilegesByAuthRequest request) + { + this(); + this.request = request; + } + + /** + * Performs a deep copy on other. + */ + public list_sentry_privileges_by_authorizable_args(list_sentry_privileges_by_authorizable_args other) { + if (other.isSetRequest()) { + this.request = new TListSentryPrivilegesByAuthRequest(other.request); + } + } + + public list_sentry_privileges_by_authorizable_args deepCopy() { + return new list_sentry_privileges_by_authorizable_args(this); + } + + @Override + public void clear() { + this.request = null; + } + + public TListSentryPrivilegesByAuthRequest getRequest() { + return this.request; + } + + public void setRequest(TListSentryPrivilegesByAuthRequest request) { + this.request = request; + } + + public void unsetRequest() { + this.request = null; + } + + /** Returns true if field request is set (has been assigned a value) and false otherwise */ + public boolean isSetRequest() { + return this.request != null; + } + + public void setRequestIsSet(boolean value) { + if (!value) { + this.request = null; + } + } + + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case REQUEST: + if (value == null) { + unsetRequest(); + } else { + setRequest((TListSentryPrivilegesByAuthRequest)value); + } + break; + + } + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case REQUEST: + return getRequest(); + + } + throw new IllegalStateException(); + } + + /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + if (field == null) { + throw new IllegalArgumentException(); + } + + switch (field) { + case REQUEST: + return isSetRequest(); + } + throw new IllegalStateException(); + } + + @Override + public boolean equals(Object that) { + if (that == null) + return false; + if (that instanceof list_sentry_privileges_by_authorizable_args) + return this.equals((list_sentry_privileges_by_authorizable_args)that); + return false; + } + + public boolean equals(list_sentry_privileges_by_authorizable_args that) { + if (that == null) + return false; + + boolean this_present_request = true && this.isSetRequest(); + boolean that_present_request = true && that.isSetRequest(); + if (this_present_request || that_present_request) { + if (!(this_present_request && that_present_request)) + return false; + if (!this.request.equals(that.request)) + return false; + } + + return true; + } + + @Override + public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_request = true && (isSetRequest()); + builder.append(present_request); + if (present_request) + builder.append(request); + + return builder.toHashCode(); + } + + public int compareTo(list_sentry_privileges_by_authorizable_args other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + list_sentry_privileges_by_authorizable_args typedOther = (list_sentry_privileges_by_authorizable_args)other; + + lastComparison = Boolean.valueOf(isSetRequest()).compareTo(typedOther.isSetRequest()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetRequest()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, typedOther.request); + if (lastComparison != 0) { + return lastComparison; + } + } + return 0; + } + + public _Fields fieldForId(int fieldId) { + return _Fields.findByThriftId(fieldId); + } + + public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { + schemes.get(iprot.getScheme()).getScheme().read(iprot, this); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { + schemes.get(oprot.getScheme()).getScheme().write(oprot, this); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder("list_sentry_privileges_by_authorizable_args("); + boolean first = true; + + sb.append("request:"); + if (this.request == null) { + sb.append("null"); + } else { + sb.append(this.request); + } + first = false; + sb.append(")"); + return sb.toString(); + } + + public void validate() throws org.apache.thrift.TException { + // check for required fields + // check for sub-struct validity + if (request != null) { + request.validate(); + } + } + + private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { + try { + write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { + try { + read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private static class list_sentry_privileges_by_authorizable_argsStandardSchemeFactory implements SchemeFactory { + public list_sentry_privileges_by_authorizable_argsStandardScheme getScheme() { + return new list_sentry_privileges_by_authorizable_argsStandardScheme(); + } + } + + private static class list_sentry_privileges_by_authorizable_argsStandardScheme extends StandardScheme { + + public void read(org.apache.thrift.protocol.TProtocol iprot, list_sentry_privileges_by_authorizable_args struct) throws org.apache.thrift.TException { + org.apache.thrift.protocol.TField schemeField; + iprot.readStructBegin(); + while (true) + { + schemeField = iprot.readFieldBegin(); + if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { + break; + } + switch (schemeField.id) { + case 1: // REQUEST + if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { + struct.request = new TListSentryPrivilegesByAuthRequest(); + struct.request.read(iprot); + struct.setRequestIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + default: + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + iprot.readFieldEnd(); + } + iprot.readStructEnd(); + struct.validate(); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot, list_sentry_privileges_by_authorizable_args struct) throws org.apache.thrift.TException { + struct.validate(); + + oprot.writeStructBegin(STRUCT_DESC); + if (struct.request != null) { + oprot.writeFieldBegin(REQUEST_FIELD_DESC); + struct.request.write(oprot); + oprot.writeFieldEnd(); + } + oprot.writeFieldStop(); + oprot.writeStructEnd(); + } + + } + + private static class list_sentry_privileges_by_authorizable_argsTupleSchemeFactory implements SchemeFactory { + public list_sentry_privileges_by_authorizable_argsTupleScheme getScheme() { + return new list_sentry_privileges_by_authorizable_argsTupleScheme(); + } + } + + private static class list_sentry_privileges_by_authorizable_argsTupleScheme extends TupleScheme { + + @Override + public void write(org.apache.thrift.protocol.TProtocol prot, list_sentry_privileges_by_authorizable_args struct) throws org.apache.thrift.TException { + TTupleProtocol oprot = (TTupleProtocol) prot; + BitSet optionals = new BitSet(); + if (struct.isSetRequest()) { + optionals.set(0); + } + oprot.writeBitSet(optionals, 1); + if (struct.isSetRequest()) { + struct.request.write(oprot); + } + } + + @Override + public void read(org.apache.thrift.protocol.TProtocol prot, list_sentry_privileges_by_authorizable_args struct) throws org.apache.thrift.TException { + TTupleProtocol iprot = (TTupleProtocol) prot; + BitSet incoming = iprot.readBitSet(1); + if (incoming.get(0)) { + struct.request = new TListSentryPrivilegesByAuthRequest(); + struct.request.read(iprot); + struct.setRequestIsSet(true); + } + } + } + + } + + public static class list_sentry_privileges_by_authorizable_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { + private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("list_sentry_privileges_by_authorizable_result"); + + private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0); + + private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); + static { + schemes.put(StandardScheme.class, new list_sentry_privileges_by_authorizable_resultStandardSchemeFactory()); + schemes.put(TupleScheme.class, new list_sentry_privileges_by_authorizable_resultTupleSchemeFactory()); + } + + private TListSentryPrivilegesByAuthResponse success; // required + + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements org.apache.thrift.TFieldIdEnum { + SUCCESS((short)0, "success"); + + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + switch(fieldId) { + case 0: // SUCCESS + return SUCCESS; + default: + return null; + } + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; + static { + Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); + tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TListSentryPrivilegesByAuthResponse.class))); + metaDataMap = Collections.unmodifiableMap(tmpMap); + org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(list_sentry_privileges_by_authorizable_result.class, metaDataMap); + } + + public list_sentry_privileges_by_authorizable_result() { + } + + public list_sentry_privileges_by_authorizable_result( + TListSentryPrivilegesByAuthResponse success) + { + this(); + this.success = success; + } + + /** + * Performs a deep copy on other. + */ + public list_sentry_privileges_by_authorizable_result(list_sentry_privileges_by_authorizable_result other) { + if (other.isSetSuccess()) { + this.success = new TListSentryPrivilegesByAuthResponse(other.success); + } + } + + public list_sentry_privileges_by_authorizable_result deepCopy() { + return new list_sentry_privileges_by_authorizable_result(this); + } + + @Override + public void clear() { + this.success = null; + } + + public TListSentryPrivilegesByAuthResponse getSuccess() { + return this.success; + } + + public void setSuccess(TListSentryPrivilegesByAuthResponse success) { + this.success = success; + } + + public void unsetSuccess() { + this.success = null; + } + + /** Returns true if field success is set (has been assigned a value) and false otherwise */ + public boolean isSetSuccess() { + return this.success != null; + } + + public void setSuccessIsSet(boolean value) { + if (!value) { + this.success = null; + } + } + + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case SUCCESS: + if (value == null) { + unsetSuccess(); + } else { + setSuccess((TListSentryPrivilegesByAuthResponse)value); + } + break; + + } + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case SUCCESS: + return getSuccess(); + + } + throw new IllegalStateException(); + } + + /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + if (field == null) { + throw new IllegalArgumentException(); + } + + switch (field) { + case SUCCESS: + return isSetSuccess(); + } + throw new IllegalStateException(); + } + + @Override + public boolean equals(Object that) { + if (that == null) + return false; + if (that instanceof list_sentry_privileges_by_authorizable_result) + return this.equals((list_sentry_privileges_by_authorizable_result)that); + return false; + } + + public boolean equals(list_sentry_privileges_by_authorizable_result that) { + if (that == null) + return false; + + boolean this_present_success = true && this.isSetSuccess(); + boolean that_present_success = true && that.isSetSuccess(); + if (this_present_success || that_present_success) { + if (!(this_present_success && that_present_success)) + return false; + if (!this.success.equals(that.success)) + return false; + } + + return true; + } + + @Override + public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_success = true && (isSetSuccess()); + builder.append(present_success); + if (present_success) + builder.append(success); + + return builder.toHashCode(); + } + + public int compareTo(list_sentry_privileges_by_authorizable_result other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + list_sentry_privileges_by_authorizable_result typedOther = (list_sentry_privileges_by_authorizable_result)other; + + lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(typedOther.isSetSuccess()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetSuccess()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, typedOther.success); + if (lastComparison != 0) { + return lastComparison; + } + } + return 0; + } + + public _Fields fieldForId(int fieldId) { + return _Fields.findByThriftId(fieldId); + } + + public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { + schemes.get(iprot.getScheme()).getScheme().read(iprot, this); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { + schemes.get(oprot.getScheme()).getScheme().write(oprot, this); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder("list_sentry_privileges_by_authorizable_result("); + boolean first = true; + + sb.append("success:"); + if (this.success == null) { + sb.append("null"); + } else { + sb.append(this.success); + } + first = false; + sb.append(")"); + return sb.toString(); + } + + public void validate() throws org.apache.thrift.TException { + // check for required fields + // check for sub-struct validity + if (success != null) { + success.validate(); + } + } + + private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { + try { + write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { + try { + read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private static class list_sentry_privileges_by_authorizable_resultStandardSchemeFactory implements SchemeFactory { + public list_sentry_privileges_by_authorizable_resultStandardScheme getScheme() { + return new list_sentry_privileges_by_authorizable_resultStandardScheme(); + } + } + + private static class list_sentry_privileges_by_authorizable_resultStandardScheme extends StandardScheme { + + public void read(org.apache.thrift.protocol.TProtocol iprot, list_sentry_privileges_by_authorizable_result struct) throws org.apache.thrift.TException { + org.apache.thrift.protocol.TField schemeField; + iprot.readStructBegin(); + while (true) + { + schemeField = iprot.readFieldBegin(); + if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { + break; + } + switch (schemeField.id) { + case 0: // SUCCESS + if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { + struct.success = new TListSentryPrivilegesByAuthResponse(); + struct.success.read(iprot); + struct.setSuccessIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + default: + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + iprot.readFieldEnd(); + } + iprot.readStructEnd(); + struct.validate(); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot, list_sentry_privileges_by_authorizable_result struct) throws org.apache.thrift.TException { + struct.validate(); + + oprot.writeStructBegin(STRUCT_DESC); + if (struct.success != null) { + oprot.writeFieldBegin(SUCCESS_FIELD_DESC); + struct.success.write(oprot); + oprot.writeFieldEnd(); + } + oprot.writeFieldStop(); + oprot.writeStructEnd(); + } + + } + + private static class list_sentry_privileges_by_authorizable_resultTupleSchemeFactory implements SchemeFactory { + public list_sentry_privileges_by_authorizable_resultTupleScheme getScheme() { + return new list_sentry_privileges_by_authorizable_resultTupleScheme(); + } + } + + private static class list_sentry_privileges_by_authorizable_resultTupleScheme extends TupleScheme { + + @Override + public void write(org.apache.thrift.protocol.TProtocol prot, list_sentry_privileges_by_authorizable_result struct) throws org.apache.thrift.TException { + TTupleProtocol oprot = (TTupleProtocol) prot; + BitSet optionals = new BitSet(); + if (struct.isSetSuccess()) { + optionals.set(0); + } + oprot.writeBitSet(optionals, 1); + if (struct.isSetSuccess()) { + struct.success.write(oprot); + } + } + + @Override + public void read(org.apache.thrift.protocol.TProtocol prot, list_sentry_privileges_by_authorizable_result struct) throws org.apache.thrift.TException { + TTupleProtocol iprot = (TTupleProtocol) prot; + BitSet incoming = iprot.readBitSet(1); + if (incoming.get(0)) { + struct.success = new TListSentryPrivilegesByAuthResponse(); + struct.success.read(iprot); + struct.setSuccessIsSet(true); + } + } + } + + } + } http://git-wip-us.apache.org/repos/asf/incubator-sentry/blob/fa5f81c7/sentry-provider/sentry-provider-db/src/gen/thrift/gen-javabean/org/apache/sentry/provider/db/service/thrift/TAlterSentryRoleGrantPrivilegeResponse.java ---------------------------------------------------------------------- diff --git a/sentry-provider/sentry-provider-db/src/gen/thrift/gen-javabean/org/apache/sentry/provider/db/service/thrift/TAlterSentryRoleGrantPrivilegeResponse.java b/sentry-provider/sentry-provider-db/src/gen/thrift/gen-javabean/org/apache/sentry/provider/db/service/thrift/TAlterSentryRoleGrantPrivilegeResponse.java index 05e9f95..5246889 100644 --- a/sentry-provider/sentry-provider-db/src/gen/thrift/gen-javabean/org/apache/sentry/provider/db/service/thrift/TAlterSentryRoleGrantPrivilegeResponse.java +++ b/sentry-provider/sentry-provider-db/src/gen/thrift/gen-javabean/org/apache/sentry/provider/db/service/thrift/TAlterSentryRoleGrantPrivilegeResponse.java @@ -35,6 +35,7 @@ public class TAlterSentryRoleGrantPrivilegeResponse implements org.apache.thrift private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TAlterSentryRoleGrantPrivilegeResponse"); private static final org.apache.thrift.protocol.TField STATUS_FIELD_DESC = new org.apache.thrift.protocol.TField("status", org.apache.thrift.protocol.TType.STRUCT, (short)1); + private static final org.apache.thrift.protocol.TField PRIVILEGE_FIELD_DESC = new org.apache.thrift.protocol.TField("privilege", org.apache.thrift.protocol.TType.STRUCT, (short)2); private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); static { @@ -43,10 +44,12 @@ public class TAlterSentryRoleGrantPrivilegeResponse implements org.apache.thrift } private org.apache.sentry.service.thrift.TSentryResponseStatus status; // required + private TSentryPrivilege privilege; // optional /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ public enum _Fields implements org.apache.thrift.TFieldIdEnum { - STATUS((short)1, "status"); + STATUS((short)1, "status"), + PRIVILEGE((short)2, "privilege"); private static final Map byName = new HashMap(); @@ -63,6 +66,8 @@ public class TAlterSentryRoleGrantPrivilegeResponse implements org.apache.thrift switch(fieldId) { case 1: // STATUS return STATUS; + case 2: // PRIVILEGE + return PRIVILEGE; default: return null; } @@ -103,11 +108,14 @@ public class TAlterSentryRoleGrantPrivilegeResponse implements org.apache.thrift } // isset id assignments + private _Fields optionals[] = {_Fields.PRIVILEGE}; public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; static { Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); tmpMap.put(_Fields.STATUS, new org.apache.thrift.meta_data.FieldMetaData("status", org.apache.thrift.TFieldRequirementType.REQUIRED, new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.sentry.service.thrift.TSentryResponseStatus.class))); + tmpMap.put(_Fields.PRIVILEGE, new org.apache.thrift.meta_data.FieldMetaData("privilege", org.apache.thrift.TFieldRequirementType.OPTIONAL, + new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TSentryPrivilege.class))); metaDataMap = Collections.unmodifiableMap(tmpMap); org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TAlterSentryRoleGrantPrivilegeResponse.class, metaDataMap); } @@ -129,6 +137,9 @@ public class TAlterSentryRoleGrantPrivilegeResponse implements org.apache.thrift if (other.isSetStatus()) { this.status = new org.apache.sentry.service.thrift.TSentryResponseStatus(other.status); } + if (other.isSetPrivilege()) { + this.privilege = new TSentryPrivilege(other.privilege); + } } public TAlterSentryRoleGrantPrivilegeResponse deepCopy() { @@ -138,6 +149,7 @@ public class TAlterSentryRoleGrantPrivilegeResponse implements org.apache.thrift @Override public void clear() { this.status = null; + this.privilege = null; } public org.apache.sentry.service.thrift.TSentryResponseStatus getStatus() { @@ -163,6 +175,29 @@ public class TAlterSentryRoleGrantPrivilegeResponse implements org.apache.thrift } } + public TSentryPrivilege getPrivilege() { + return this.privilege; + } + + public void setPrivilege(TSentryPrivilege privilege) { + this.privilege = privilege; + } + + public void unsetPrivilege() { + this.privilege = null; + } + + /** Returns true if field privilege is set (has been assigned a value) and false otherwise */ + public boolean isSetPrivilege() { + return this.privilege != null; + } + + public void setPrivilegeIsSet(boolean value) { + if (!value) { + this.privilege = null; + } + } + public void setFieldValue(_Fields field, Object value) { switch (field) { case STATUS: @@ -173,6 +208,14 @@ public class TAlterSentryRoleGrantPrivilegeResponse implements org.apache.thrift } break; + case PRIVILEGE: + if (value == null) { + unsetPrivilege(); + } else { + setPrivilege((TSentryPrivilege)value); + } + break; + } } @@ -181,6 +224,9 @@ public class TAlterSentryRoleGrantPrivilegeResponse implements org.apache.thrift case STATUS: return getStatus(); + case PRIVILEGE: + return getPrivilege(); + } throw new IllegalStateException(); } @@ -194,6 +240,8 @@ public class TAlterSentryRoleGrantPrivilegeResponse implements org.apache.thrift switch (field) { case STATUS: return isSetStatus(); + case PRIVILEGE: + return isSetPrivilege(); } throw new IllegalStateException(); } @@ -220,6 +268,15 @@ public class TAlterSentryRoleGrantPrivilegeResponse implements org.apache.thrift return false; } + boolean this_present_privilege = true && this.isSetPrivilege(); + boolean that_present_privilege = true && that.isSetPrivilege(); + if (this_present_privilege || that_present_privilege) { + if (!(this_present_privilege && that_present_privilege)) + return false; + if (!this.privilege.equals(that.privilege)) + return false; + } + return true; } @@ -232,6 +289,11 @@ public class TAlterSentryRoleGrantPrivilegeResponse implements org.apache.thrift if (present_status) builder.append(status); + boolean present_privilege = true && (isSetPrivilege()); + builder.append(present_privilege); + if (present_privilege) + builder.append(privilege); + return builder.toHashCode(); } @@ -253,6 +315,16 @@ public class TAlterSentryRoleGrantPrivilegeResponse implements org.apache.thrift return lastComparison; } } + lastComparison = Boolean.valueOf(isSetPrivilege()).compareTo(typedOther.isSetPrivilege()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetPrivilege()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.privilege, typedOther.privilege); + if (lastComparison != 0) { + return lastComparison; + } + } return 0; } @@ -280,6 +352,16 @@ public class TAlterSentryRoleGrantPrivilegeResponse implements org.apache.thrift sb.append(this.status); } first = false; + if (isSetPrivilege()) { + if (!first) sb.append(", "); + sb.append("privilege:"); + if (this.privilege == null) { + sb.append("null"); + } else { + sb.append(this.privilege); + } + first = false; + } sb.append(")"); return sb.toString(); } @@ -294,6 +376,9 @@ public class TAlterSentryRoleGrantPrivilegeResponse implements org.apache.thrift if (status != null) { status.validate(); } + if (privilege != null) { + privilege.validate(); + } } private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { @@ -339,6 +424,15 @@ public class TAlterSentryRoleGrantPrivilegeResponse implements org.apache.thrift org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); } break; + case 2: // PRIVILEGE + if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { + struct.privilege = new TSentryPrivilege(); + struct.privilege.read(iprot); + struct.setPrivilegeIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; default: org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); } @@ -357,6 +451,13 @@ public class TAlterSentryRoleGrantPrivilegeResponse implements org.apache.thrift struct.status.write(oprot); oprot.writeFieldEnd(); } + if (struct.privilege != null) { + if (struct.isSetPrivilege()) { + oprot.writeFieldBegin(PRIVILEGE_FIELD_DESC); + struct.privilege.write(oprot); + oprot.writeFieldEnd(); + } + } oprot.writeFieldStop(); oprot.writeStructEnd(); } @@ -375,6 +476,14 @@ public class TAlterSentryRoleGrantPrivilegeResponse implements org.apache.thrift public void write(org.apache.thrift.protocol.TProtocol prot, TAlterSentryRoleGrantPrivilegeResponse struct) throws org.apache.thrift.TException { TTupleProtocol oprot = (TTupleProtocol) prot; struct.status.write(oprot); + BitSet optionals = new BitSet(); + if (struct.isSetPrivilege()) { + optionals.set(0); + } + oprot.writeBitSet(optionals, 1); + if (struct.isSetPrivilege()) { + struct.privilege.write(oprot); + } } @Override @@ -383,6 +492,12 @@ public class TAlterSentryRoleGrantPrivilegeResponse implements org.apache.thrift struct.status = new org.apache.sentry.service.thrift.TSentryResponseStatus(); struct.status.read(iprot); struct.setStatusIsSet(true); + BitSet incoming = iprot.readBitSet(1); + if (incoming.get(0)) { + struct.privilege = new TSentryPrivilege(); + struct.privilege.read(iprot); + struct.setPrivilegeIsSet(true); + } } } http://git-wip-us.apache.org/repos/asf/incubator-sentry/blob/fa5f81c7/sentry-provider/sentry-provider-db/src/gen/thrift/gen-javabean/org/apache/sentry/provider/db/service/thrift/TListSentryPrivilegesByAuthRequest.java ---------------------------------------------------------------------- diff --git a/sentry-provider/sentry-provider-db/src/gen/thrift/gen-javabean/org/apache/sentry/provider/db/service/thrift/TListSentryPrivilegesByAuthRequest.java b/sentry-provider/sentry-provider-db/src/gen/thrift/gen-javabean/org/apache/sentry/provider/db/service/thrift/TListSentryPrivilegesByAuthRequest.java new file mode 100644 index 0000000..6f78641 --- /dev/null +++ b/sentry-provider/sentry-provider-db/src/gen/thrift/gen-javabean/org/apache/sentry/provider/db/service/thrift/TListSentryPrivilegesByAuthRequest.java @@ -0,0 +1,813 @@ +/** + * Autogenerated by Thrift Compiler (0.9.0) + * + * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING + * @generated + */ +package org.apache.sentry.provider.db.service.thrift; + +import org.apache.commons.lang.builder.HashCodeBuilder; +import org.apache.thrift.scheme.IScheme; +import org.apache.thrift.scheme.SchemeFactory; +import org.apache.thrift.scheme.StandardScheme; + +import org.apache.thrift.scheme.TupleScheme; +import org.apache.thrift.protocol.TTupleProtocol; +import org.apache.thrift.protocol.TProtocolException; +import org.apache.thrift.EncodingUtils; +import org.apache.thrift.TException; +import java.util.List; +import java.util.ArrayList; +import java.util.Map; +import java.util.HashMap; +import java.util.EnumMap; +import java.util.Set; +import java.util.HashSet; +import java.util.EnumSet; +import java.util.Collections; +import java.util.BitSet; +import java.nio.ByteBuffer; +import java.util.Arrays; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class TListSentryPrivilegesByAuthRequest implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { + private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TListSentryPrivilegesByAuthRequest"); + + private static final org.apache.thrift.protocol.TField PROTOCOL_VERSION_FIELD_DESC = new org.apache.thrift.protocol.TField("protocol_version", org.apache.thrift.protocol.TType.I32, (short)1); + private static final org.apache.thrift.protocol.TField AUTHORIZABLE_SET_FIELD_DESC = new org.apache.thrift.protocol.TField("authorizableSet", org.apache.thrift.protocol.TType.SET, (short)2); + private static final org.apache.thrift.protocol.TField GROUPS_FIELD_DESC = new org.apache.thrift.protocol.TField("groups", org.apache.thrift.protocol.TType.SET, (short)3); + private static final org.apache.thrift.protocol.TField ROLE_SET_FIELD_DESC = new org.apache.thrift.protocol.TField("roleSet", org.apache.thrift.protocol.TType.STRUCT, (short)4); + + private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); + static { + schemes.put(StandardScheme.class, new TListSentryPrivilegesByAuthRequestStandardSchemeFactory()); + schemes.put(TupleScheme.class, new TListSentryPrivilegesByAuthRequestTupleSchemeFactory()); + } + + private int protocol_version; // required + private Set authorizableSet; // required + private Set groups; // optional + private TSentryActiveRoleSet roleSet; // optional + + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements org.apache.thrift.TFieldIdEnum { + PROTOCOL_VERSION((short)1, "protocol_version"), + AUTHORIZABLE_SET((short)2, "authorizableSet"), + GROUPS((short)3, "groups"), + ROLE_SET((short)4, "roleSet"); + + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + switch(fieldId) { + case 1: // PROTOCOL_VERSION + return PROTOCOL_VERSION; + case 2: // AUTHORIZABLE_SET + return AUTHORIZABLE_SET; + case 3: // GROUPS + return GROUPS; + case 4: // ROLE_SET + return ROLE_SET; + default: + return null; + } + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + private static final int __PROTOCOL_VERSION_ISSET_ID = 0; + private byte __isset_bitfield = 0; + private _Fields optionals[] = {_Fields.GROUPS,_Fields.ROLE_SET}; + public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; + static { + Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); + tmpMap.put(_Fields.PROTOCOL_VERSION, new org.apache.thrift.meta_data.FieldMetaData("protocol_version", org.apache.thrift.TFieldRequirementType.REQUIRED, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32))); + tmpMap.put(_Fields.AUTHORIZABLE_SET, new org.apache.thrift.meta_data.FieldMetaData("authorizableSet", org.apache.thrift.TFieldRequirementType.REQUIRED, + new org.apache.thrift.meta_data.SetMetaData(org.apache.thrift.protocol.TType.SET, + new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TSentryAuthorizable.class)))); + tmpMap.put(_Fields.GROUPS, new org.apache.thrift.meta_data.FieldMetaData("groups", org.apache.thrift.TFieldRequirementType.OPTIONAL, + new org.apache.thrift.meta_data.SetMetaData(org.apache.thrift.protocol.TType.SET, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)))); + tmpMap.put(_Fields.ROLE_SET, new org.apache.thrift.meta_data.FieldMetaData("roleSet", org.apache.thrift.TFieldRequirementType.OPTIONAL, + new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TSentryActiveRoleSet.class))); + metaDataMap = Collections.unmodifiableMap(tmpMap); + org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TListSentryPrivilegesByAuthRequest.class, metaDataMap); + } + + public TListSentryPrivilegesByAuthRequest() { + this.protocol_version = 1; + + } + + public TListSentryPrivilegesByAuthRequest( + int protocol_version, + Set authorizableSet) + { + this(); + this.protocol_version = protocol_version; + setProtocol_versionIsSet(true); + this.authorizableSet = authorizableSet; + } + + /** + * Performs a deep copy on other. + */ + public TListSentryPrivilegesByAuthRequest(TListSentryPrivilegesByAuthRequest other) { + __isset_bitfield = other.__isset_bitfield; + this.protocol_version = other.protocol_version; + if (other.isSetAuthorizableSet()) { + Set __this__authorizableSet = new HashSet(); + for (TSentryAuthorizable other_element : other.authorizableSet) { + __this__authorizableSet.add(new TSentryAuthorizable(other_element)); + } + this.authorizableSet = __this__authorizableSet; + } + if (other.isSetGroups()) { + Set __this__groups = new HashSet(); + for (String other_element : other.groups) { + __this__groups.add(other_element); + } + this.groups = __this__groups; + } + if (other.isSetRoleSet()) { + this.roleSet = new TSentryActiveRoleSet(other.roleSet); + } + } + + public TListSentryPrivilegesByAuthRequest deepCopy() { + return new TListSentryPrivilegesByAuthRequest(this); + } + + @Override + public void clear() { + this.protocol_version = 1; + + this.authorizableSet = null; + this.groups = null; + this.roleSet = null; + } + + public int getProtocol_version() { + return this.protocol_version; + } + + public void setProtocol_version(int protocol_version) { + this.protocol_version = protocol_version; + setProtocol_versionIsSet(true); + } + + public void unsetProtocol_version() { + __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __PROTOCOL_VERSION_ISSET_ID); + } + + /** Returns true if field protocol_version is set (has been assigned a value) and false otherwise */ + public boolean isSetProtocol_version() { + return EncodingUtils.testBit(__isset_bitfield, __PROTOCOL_VERSION_ISSET_ID); + } + + public void setProtocol_versionIsSet(boolean value) { + __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __PROTOCOL_VERSION_ISSET_ID, value); + } + + public int getAuthorizableSetSize() { + return (this.authorizableSet == null) ? 0 : this.authorizableSet.size(); + } + + public java.util.Iterator getAuthorizableSetIterator() { + return (this.authorizableSet == null) ? null : this.authorizableSet.iterator(); + } + + public void addToAuthorizableSet(TSentryAuthorizable elem) { + if (this.authorizableSet == null) { + this.authorizableSet = new HashSet(); + } + this.authorizableSet.add(elem); + } + + public Set getAuthorizableSet() { + return this.authorizableSet; + } + + public void setAuthorizableSet(Set authorizableSet) { + this.authorizableSet = authorizableSet; + } + + public void unsetAuthorizableSet() { + this.authorizableSet = null; + } + + /** Returns true if field authorizableSet is set (has been assigned a value) and false otherwise */ + public boolean isSetAuthorizableSet() { + return this.authorizableSet != null; + } + + public void setAuthorizableSetIsSet(boolean value) { + if (!value) { + this.authorizableSet = null; + } + } + + public int getGroupsSize() { + return (this.groups == null) ? 0 : this.groups.size(); + } + + public java.util.Iterator getGroupsIterator() { + return (this.groups == null) ? null : this.groups.iterator(); + } + + public void addToGroups(String elem) { + if (this.groups == null) { + this.groups = new HashSet(); + } + this.groups.add(elem); + } + + public Set getGroups() { + return this.groups; + } + + public void setGroups(Set groups) { + this.groups = groups; + } + + public void unsetGroups() { + this.groups = null; + } + + /** Returns true if field groups is set (has been assigned a value) and false otherwise */ + public boolean isSetGroups() { + return this.groups != null; + } + + public void setGroupsIsSet(boolean value) { + if (!value) { + this.groups = null; + } + } + + public TSentryActiveRoleSet getRoleSet() { + return this.roleSet; + } + + public void setRoleSet(TSentryActiveRoleSet roleSet) { + this.roleSet = roleSet; + } + + public void unsetRoleSet() { + this.roleSet = null; + } + + /** Returns true if field roleSet is set (has been assigned a value) and false otherwise */ + public boolean isSetRoleSet() { + return this.roleSet != null; + } + + public void setRoleSetIsSet(boolean value) { + if (!value) { + this.roleSet = null; + } + } + + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case PROTOCOL_VERSION: + if (value == null) { + unsetProtocol_version(); + } else { + setProtocol_version((Integer)value); + } + break; + + case AUTHORIZABLE_SET: + if (value == null) { + unsetAuthorizableSet(); + } else { + setAuthorizableSet((Set)value); + } + break; + + case GROUPS: + if (value == null) { + unsetGroups(); + } else { + setGroups((Set)value); + } + break; + + case ROLE_SET: + if (value == null) { + unsetRoleSet(); + } else { + setRoleSet((TSentryActiveRoleSet)value); + } + break; + + } + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case PROTOCOL_VERSION: + return Integer.valueOf(getProtocol_version()); + + case AUTHORIZABLE_SET: + return getAuthorizableSet(); + + case GROUPS: + return getGroups(); + + case ROLE_SET: + return getRoleSet(); + + } + throw new IllegalStateException(); + } + + /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + if (field == null) { + throw new IllegalArgumentException(); + } + + switch (field) { + case PROTOCOL_VERSION: + return isSetProtocol_version(); + case AUTHORIZABLE_SET: + return isSetAuthorizableSet(); + case GROUPS: + return isSetGroups(); + case ROLE_SET: + return isSetRoleSet(); + } + throw new IllegalStateException(); + } + + @Override + public boolean equals(Object that) { + if (that == null) + return false; + if (that instanceof TListSentryPrivilegesByAuthRequest) + return this.equals((TListSentryPrivilegesByAuthRequest)that); + return false; + } + + public boolean equals(TListSentryPrivilegesByAuthRequest that) { + if (that == null) + return false; + + boolean this_present_protocol_version = true; + boolean that_present_protocol_version = true; + if (this_present_protocol_version || that_present_protocol_version) { + if (!(this_present_protocol_version && that_present_protocol_version)) + return false; + if (this.protocol_version != that.protocol_version) + return false; + } + + boolean this_present_authorizableSet = true && this.isSetAuthorizableSet(); + boolean that_present_authorizableSet = true && that.isSetAuthorizableSet(); + if (this_present_authorizableSet || that_present_authorizableSet) { + if (!(this_present_authorizableSet && that_present_authorizableSet)) + return false; + if (!this.authorizableSet.equals(that.authorizableSet)) + return false; + } + + boolean this_present_groups = true && this.isSetGroups(); + boolean that_present_groups = true && that.isSetGroups(); + if (this_present_groups || that_present_groups) { + if (!(this_present_groups && that_present_groups)) + return false; + if (!this.groups.equals(that.groups)) + return false; + } + + boolean this_present_roleSet = true && this.isSetRoleSet(); + boolean that_present_roleSet = true && that.isSetRoleSet(); + if (this_present_roleSet || that_present_roleSet) { + if (!(this_present_roleSet && that_present_roleSet)) + return false; + if (!this.roleSet.equals(that.roleSet)) + return false; + } + + return true; + } + + @Override + public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_protocol_version = true; + builder.append(present_protocol_version); + if (present_protocol_version) + builder.append(protocol_version); + + boolean present_authorizableSet = true && (isSetAuthorizableSet()); + builder.append(present_authorizableSet); + if (present_authorizableSet) + builder.append(authorizableSet); + + boolean present_groups = true && (isSetGroups()); + builder.append(present_groups); + if (present_groups) + builder.append(groups); + + boolean present_roleSet = true && (isSetRoleSet()); + builder.append(present_roleSet); + if (present_roleSet) + builder.append(roleSet); + + return builder.toHashCode(); + } + + public int compareTo(TListSentryPrivilegesByAuthRequest other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + TListSentryPrivilegesByAuthRequest typedOther = (TListSentryPrivilegesByAuthRequest)other; + + lastComparison = Boolean.valueOf(isSetProtocol_version()).compareTo(typedOther.isSetProtocol_version()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetProtocol_version()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.protocol_version, typedOther.protocol_version); + if (lastComparison != 0) { + return lastComparison; + } + } + lastComparison = Boolean.valueOf(isSetAuthorizableSet()).compareTo(typedOther.isSetAuthorizableSet()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetAuthorizableSet()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.authorizableSet, typedOther.authorizableSet); + if (lastComparison != 0) { + return lastComparison; + } + } + lastComparison = Boolean.valueOf(isSetGroups()).compareTo(typedOther.isSetGroups()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetGroups()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.groups, typedOther.groups); + if (lastComparison != 0) { + return lastComparison; + } + } + lastComparison = Boolean.valueOf(isSetRoleSet()).compareTo(typedOther.isSetRoleSet()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetRoleSet()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.roleSet, typedOther.roleSet); + if (lastComparison != 0) { + return lastComparison; + } + } + return 0; + } + + public _Fields fieldForId(int fieldId) { + return _Fields.findByThriftId(fieldId); + } + + public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { + schemes.get(iprot.getScheme()).getScheme().read(iprot, this); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { + schemes.get(oprot.getScheme()).getScheme().write(oprot, this); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder("TListSentryPrivilegesByAuthRequest("); + boolean first = true; + + sb.append("protocol_version:"); + sb.append(this.protocol_version); + first = false; + if (!first) sb.append(", "); + sb.append("authorizableSet:"); + if (this.authorizableSet == null) { + sb.append("null"); + } else { + sb.append(this.authorizableSet); + } + first = false; + if (isSetGroups()) { + if (!first) sb.append(", "); + sb.append("groups:"); + if (this.groups == null) { + sb.append("null"); + } else { + sb.append(this.groups); + } + first = false; + } + if (isSetRoleSet()) { + if (!first) sb.append(", "); + sb.append("roleSet:"); + if (this.roleSet == null) { + sb.append("null"); + } else { + sb.append(this.roleSet); + } + first = false; + } + sb.append(")"); + return sb.toString(); + } + + public void validate() throws org.apache.thrift.TException { + // check for required fields + if (!isSetProtocol_version()) { + throw new org.apache.thrift.protocol.TProtocolException("Required field 'protocol_version' is unset! Struct:" + toString()); + } + + if (!isSetAuthorizableSet()) { + throw new org.apache.thrift.protocol.TProtocolException("Required field 'authorizableSet' is unset! Struct:" + toString()); + } + + // check for sub-struct validity + if (roleSet != null) { + roleSet.validate(); + } + } + + private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { + try { + write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { + try { + // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor. + __isset_bitfield = 0; + read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private static class TListSentryPrivilegesByAuthRequestStandardSchemeFactory implements SchemeFactory { + public TListSentryPrivilegesByAuthRequestStandardScheme getScheme() { + return new TListSentryPrivilegesByAuthRequestStandardScheme(); + } + } + + private static class TListSentryPrivilegesByAuthRequestStandardScheme extends StandardScheme { + + public void read(org.apache.thrift.protocol.TProtocol iprot, TListSentryPrivilegesByAuthRequest struct) throws org.apache.thrift.TException { + org.apache.thrift.protocol.TField schemeField; + iprot.readStructBegin(); + while (true) + { + schemeField = iprot.readFieldBegin(); + if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { + break; + } + switch (schemeField.id) { + case 1: // PROTOCOL_VERSION + if (schemeField.type == org.apache.thrift.protocol.TType.I32) { + struct.protocol_version = iprot.readI32(); + struct.setProtocol_versionIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + case 2: // AUTHORIZABLE_SET + if (schemeField.type == org.apache.thrift.protocol.TType.SET) { + { + org.apache.thrift.protocol.TSet _set82 = iprot.readSetBegin(); + struct.authorizableSet = new HashSet(2*_set82.size); + for (int _i83 = 0; _i83 < _set82.size; ++_i83) + { + TSentryAuthorizable _elem84; // required + _elem84 = new TSentryAuthorizable(); + _elem84.read(iprot); + struct.authorizableSet.add(_elem84); + } + iprot.readSetEnd(); + } + struct.setAuthorizableSetIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + case 3: // GROUPS + if (schemeField.type == org.apache.thrift.protocol.TType.SET) { + { + org.apache.thrift.protocol.TSet _set85 = iprot.readSetBegin(); + struct.groups = new HashSet(2*_set85.size); + for (int _i86 = 0; _i86 < _set85.size; ++_i86) + { + String _elem87; // required + _elem87 = iprot.readString(); + struct.groups.add(_elem87); + } + iprot.readSetEnd(); + } + struct.setGroupsIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + case 4: // ROLE_SET + if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { + struct.roleSet = new TSentryActiveRoleSet(); + struct.roleSet.read(iprot); + struct.setRoleSetIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + default: + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + iprot.readFieldEnd(); + } + iprot.readStructEnd(); + struct.validate(); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot, TListSentryPrivilegesByAuthRequest struct) throws org.apache.thrift.TException { + struct.validate(); + + oprot.writeStructBegin(STRUCT_DESC); + oprot.writeFieldBegin(PROTOCOL_VERSION_FIELD_DESC); + oprot.writeI32(struct.protocol_version); + oprot.writeFieldEnd(); + if (struct.authorizableSet != null) { + oprot.writeFieldBegin(AUTHORIZABLE_SET_FIELD_DESC); + { + oprot.writeSetBegin(new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRUCT, struct.authorizableSet.size())); + for (TSentryAuthorizable _iter88 : struct.authorizableSet) + { + _iter88.write(oprot); + } + oprot.writeSetEnd(); + } + oprot.writeFieldEnd(); + } + if (struct.groups != null) { + if (struct.isSetGroups()) { + oprot.writeFieldBegin(GROUPS_FIELD_DESC); + { + oprot.writeSetBegin(new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRING, struct.groups.size())); + for (String _iter89 : struct.groups) + { + oprot.writeString(_iter89); + } + oprot.writeSetEnd(); + } + oprot.writeFieldEnd(); + } + } + if (struct.roleSet != null) { + if (struct.isSetRoleSet()) { + oprot.writeFieldBegin(ROLE_SET_FIELD_DESC); + struct.roleSet.write(oprot); + oprot.writeFieldEnd(); + } + } + oprot.writeFieldStop(); + oprot.writeStructEnd(); + } + + } + + private static class TListSentryPrivilegesByAuthRequestTupleSchemeFactory implements SchemeFactory { + public TListSentryPrivilegesByAuthRequestTupleScheme getScheme() { + return new TListSentryPrivilegesByAuthRequestTupleScheme(); + } + } + + private static class TListSentryPrivilegesByAuthRequestTupleScheme extends TupleScheme { + + @Override + public void write(org.apache.thrift.protocol.TProtocol prot, TListSentryPrivilegesByAuthRequest struct) throws org.apache.thrift.TException { + TTupleProtocol oprot = (TTupleProtocol) prot; + oprot.writeI32(struct.protocol_version); + { + oprot.writeI32(struct.authorizableSet.size()); + for (TSentryAuthorizable _iter90 : struct.authorizableSet) + { + _iter90.write(oprot); + } + } + BitSet optionals = new BitSet(); + if (struct.isSetGroups()) { + optionals.set(0); + } + if (struct.isSetRoleSet()) { + optionals.set(1); + } + oprot.writeBitSet(optionals, 2); + if (struct.isSetGroups()) { + { + oprot.writeI32(struct.groups.size()); + for (String _iter91 : struct.groups) + { + oprot.writeString(_iter91); + } + } + } + if (struct.isSetRoleSet()) { + struct.roleSet.write(oprot); + } + } + + @Override + public void read(org.apache.thrift.protocol.TProtocol prot, TListSentryPrivilegesByAuthRequest struct) throws org.apache.thrift.TException { + TTupleProtocol iprot = (TTupleProtocol) prot; + struct.protocol_version = iprot.readI32(); + struct.setProtocol_versionIsSet(true); + { + org.apache.thrift.protocol.TSet _set92 = new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32()); + struct.authorizableSet = new HashSet(2*_set92.size); + for (int _i93 = 0; _i93 < _set92.size; ++_i93) + { + TSentryAuthorizable _elem94; // required + _elem94 = new TSentryAuthorizable(); + _elem94.read(iprot); + struct.authorizableSet.add(_elem94); + } + } + struct.setAuthorizableSetIsSet(true); + BitSet incoming = iprot.readBitSet(2); + if (incoming.get(0)) { + { + org.apache.thrift.protocol.TSet _set95 = new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); + struct.groups = new HashSet(2*_set95.size); + for (int _i96 = 0; _i96 < _set95.size; ++_i96) + { + String _elem97; // required + _elem97 = iprot.readString(); + struct.groups.add(_elem97); + } + } + struct.setGroupsIsSet(true); + } + if (incoming.get(1)) { + struct.roleSet = new TSentryActiveRoleSet(); + struct.roleSet.read(iprot); + struct.setRoleSetIsSet(true); + } + } + } + +} +