Author: eevans
Date: Mon Mar 22 23:11:12 2010
New Revision: 926386
URL: http://svn.apache.org/viewvc?rev=926386&view=rev
Log:
regenerated thrift code to include new enum
Patch by eevans and Ted Zlatanov for CASSANDRA-900
Added:
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/AccessLevel.java
Modified:
cassandra/trunk/interface/cassandra.thrift
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java
Modified: cassandra/trunk/interface/cassandra.thrift
URL:
http://svn.apache.org/viewvc/cassandra/trunk/interface/cassandra.thrift?rev=926386&r1=926385&r2=926386&view=diff
==============================================================================
--- cassandra/trunk/interface/cassandra.thrift (original)
+++ cassandra/trunk/interface/cassandra.thrift Mon Mar 22 23:11:12 2010
@@ -281,6 +281,20 @@ struct TokenRange {
3: required list<string> endpoints,
}
+/** The AccessLevel is an enum that expresses the authorized access level
granted to an API user:
+ *
+ * NONE No access permitted.
+ * READONLY Only read access is allowed.
+ * READWRITE Read and write access is allowed.
+ * FULL Read, write, and remove access is allowed.
+*/
+enum AccessLevel {
+ NONE = 0,
+ READONLY = 16,
+ READWRITE = 32,
+ FULL = 64,
+}
+
/**
Authentication requests can contain any data, dependent on the
AuthenticationBackend used
*/
Added:
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/AccessLevel.java
URL:
http://svn.apache.org/viewvc/cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/AccessLevel.java?rev=926386&view=auto
==============================================================================
---
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/AccessLevel.java
(added)
+++
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/AccessLevel.java
Mon Mar 22 23:11:12 2010
@@ -0,0 +1,79 @@
+/**
+ * Autogenerated by Thrift
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ */
+package org.apache.cassandra.thrift;
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+
+
+import java.util.Map;
+import java.util.HashMap;
+import org.apache.thrift.TEnum;
+
+/**
+ * The AccessLevel is an enum that expresses the authorized access level
granted to an API user:
+ *
+ * NONE No access permitted.
+ * READONLY Only read access is allowed.
+ * READWRITE Read and write access is allowed.
+ * FULL Read, write, and remove access is allowed.
+ */
+public enum AccessLevel implements TEnum {
+ NONE(0),
+ READONLY(16),
+ READWRITE(32),
+ FULL(64);
+
+ private final int value;
+
+ private AccessLevel(int value) {
+ this.value = value;
+ }
+
+ /**
+ * Get the integer value of this enum value, as defined in the Thrift IDL.
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * Find a the enum type by its integer value, as defined in the Thrift IDL.
+ * @return null if the value is not found.
+ */
+ public static AccessLevel findByValue(int value) {
+ switch (value) {
+ case 0:
+ return NONE;
+ case 16:
+ return READONLY;
+ case 32:
+ return READWRITE;
+ case 64:
+ return FULL;
+ default:
+ return null;
+ }
+ }
+}
Modified:
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java
URL:
http://svn.apache.org/viewvc/cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java?rev=926386&r1=926385&r2=926386&view=diff
==============================================================================
---
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java
(original)
+++
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java
Mon Mar 22 23:11:12 2010
@@ -48,7 +48,7 @@ public class Cassandra {
public interface Iface {
- public void login(String keyspace, AuthenticationRequest auth_request)
throws AuthenticationException, AuthorizationException, TException;
+ public AccessLevel login(String keyspace, AuthenticationRequest
auth_request) throws AuthenticationException, AuthorizationException,
TException;
/**
* Get the Column or SuperColumn at the given column_path. If no value is
present, NotFoundException is thrown. (This is
@@ -276,10 +276,10 @@ public class Cassandra {
return this.oprot_;
}
- public void login(String keyspace, AuthenticationRequest auth_request)
throws AuthenticationException, AuthorizationException, TException
+ public AccessLevel login(String keyspace, AuthenticationRequest
auth_request) throws AuthenticationException, AuthorizationException, TException
{
send_login(keyspace, auth_request);
- recv_login();
+ return recv_login();
}
public void send_login(String keyspace, AuthenticationRequest
auth_request) throws TException
@@ -293,7 +293,7 @@ public class Cassandra {
oprot_.getTransport().flush();
}
- public void recv_login() throws AuthenticationException,
AuthorizationException, TException
+ public AccessLevel recv_login() throws AuthenticationException,
AuthorizationException, TException
{
TMessage msg = iprot_.readMessageBegin();
if (msg.type == TMessageType.EXCEPTION) {
@@ -304,13 +304,16 @@ public class Cassandra {
login_result result = new login_result();
result.read(iprot_);
iprot_.readMessageEnd();
+ if (result.isSetSuccess()) {
+ return result.success;
+ }
if (result.authnx != null) {
throw result.authnx;
}
if (result.authzx != null) {
throw result.authzx;
}
- return;
+ throw new TApplicationException(TApplicationException.MISSING_RESULT,
"login failed: unknown result");
}
public ColumnOrSuperColumn get(String keyspace, String key, ColumnPath
column_path, ConsistencyLevel consistency_level) throws
InvalidRequestException, NotFoundException, UnavailableException,
TimedOutException, TException
@@ -1144,7 +1147,7 @@ public class Cassandra {
iprot.readMessageEnd();
login_result result = new login_result();
try {
- iface_.login(args.keyspace, args.auth_request);
+ result.success = iface_.login(args.keyspace, args.auth_request);
} catch (AuthenticationException authnx) {
result.authnx = authnx;
} catch (AuthorizationException authzx) {
@@ -2200,14 +2203,25 @@ public class Cassandra {
public static class login_result implements TBase<login_result._Fields>,
java.io.Serializable, Cloneable, Comparable<login_result> {
private static final TStruct STRUCT_DESC = new TStruct("login_result");
+ private static final TField SUCCESS_FIELD_DESC = new TField("success",
TType.I32, (short)0);
private static final TField AUTHNX_FIELD_DESC = new TField("authnx",
TType.STRUCT, (short)1);
private static final TField AUTHZX_FIELD_DESC = new TField("authzx",
TType.STRUCT, (short)2);
+ /**
+ *
+ * @see AccessLevel
+ */
+ public AccessLevel success;
public AuthenticationException authnx;
public AuthorizationException authzx;
/** The set of fields this struct contains, along with convenience methods
for finding and manipulating them. */
public enum _Fields implements TFieldIdEnum {
+ /**
+ *
+ * @see AccessLevel
+ */
+ SUCCESS((short)0, "success"),
AUTHNX((short)1, "authnx"),
AUTHZX((short)2, "authzx");
@@ -2265,6 +2279,8 @@ public class Cassandra {
// isset id assignments
public static final Map<_Fields, FieldMetaData> metaDataMap =
Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class)
{{
+ put(_Fields.SUCCESS, new FieldMetaData("success",
TFieldRequirementType.DEFAULT,
+ new EnumMetaData(TType.ENUM, AccessLevel.class)));
put(_Fields.AUTHNX, new FieldMetaData("authnx",
TFieldRequirementType.DEFAULT,
new FieldValueMetaData(TType.STRUCT)));
put(_Fields.AUTHZX, new FieldMetaData("authzx",
TFieldRequirementType.DEFAULT,
@@ -2279,10 +2295,12 @@ public class Cassandra {
}
public login_result(
+ AccessLevel success,
AuthenticationException authnx,
AuthorizationException authzx)
{
this();
+ this.success = success;
this.authnx = authnx;
this.authzx = authzx;
}
@@ -2291,6 +2309,9 @@ public class Cassandra {
* Performs a deep copy on <i>other</i>.
*/
public login_result(login_result other) {
+ if (other.isSetSuccess()) {
+ this.success = other.success;
+ }
if (other.isSetAuthnx()) {
this.authnx = new AuthenticationException(other.authnx);
}
@@ -2308,6 +2329,38 @@ public class Cassandra {
return new login_result(this);
}
+ /**
+ *
+ * @see AccessLevel
+ */
+ public AccessLevel getSuccess() {
+ return this.success;
+ }
+
+ /**
+ *
+ * @see AccessLevel
+ */
+ public login_result setSuccess(AccessLevel success) {
+ this.success = success;
+ return this;
+ }
+
+ public void unsetSuccess() {
+ this.success = null;
+ }
+
+ /** Returns true if field success is set (has been asigned a value) and
false otherwise */
+ public boolean isSetSuccess() {
+ return this.success != null;
+ }
+
+ public void setSuccessIsSet(boolean value) {
+ if (!value) {
+ this.success = null;
+ }
+ }
+
public AuthenticationException getAuthnx() {
return this.authnx;
}
@@ -2358,6 +2411,14 @@ public class Cassandra {
public void setFieldValue(_Fields field, Object value) {
switch (field) {
+ case SUCCESS:
+ if (value == null) {
+ unsetSuccess();
+ } else {
+ setSuccess((AccessLevel)value);
+ }
+ break;
+
case AUTHNX:
if (value == null) {
unsetAuthnx();
@@ -2383,6 +2444,9 @@ public class Cassandra {
public Object getFieldValue(_Fields field) {
switch (field) {
+ case SUCCESS:
+ return getSuccess();
+
case AUTHNX:
return getAuthnx();
@@ -2400,6 +2464,8 @@ public class Cassandra {
/** Returns true if field corresponding to fieldID is set (has been
asigned a value) and false otherwise */
public boolean isSet(_Fields field) {
switch (field) {
+ case SUCCESS:
+ return isSetSuccess();
case AUTHNX:
return isSetAuthnx();
case AUTHZX:
@@ -2425,6 +2491,15 @@ public class Cassandra {
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;
+ }
+
boolean this_present_authnx = true && this.isSetAuthnx();
boolean that_present_authnx = true && that.isSetAuthnx();
if (this_present_authnx || that_present_authnx) {
@@ -2459,6 +2534,15 @@ public class Cassandra {
int lastComparison = 0;
login_result typedOther = (login_result)other;
+ lastComparison =
Boolean.valueOf(isSetSuccess()).compareTo(typedOther.isSetSuccess());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetSuccess()) { lastComparison =
TBaseHelper.compareTo(success, typedOther.success);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
lastComparison =
Boolean.valueOf(isSetAuthnx()).compareTo(typedOther.isSetAuthnx());
if (lastComparison != 0) {
return lastComparison;
@@ -2490,6 +2574,13 @@ public class Cassandra {
break;
}
switch (field.id) {
+ case 0: // SUCCESS
+ if (field.type == TType.I32) {
+ this.success = AccessLevel.findByValue(iprot.readI32());
+ } else {
+ TProtocolUtil.skip(iprot, field.type);
+ }
+ break;
case 1: // AUTHNX
if (field.type == TType.STRUCT) {
this.authnx = new AuthenticationException();
@@ -2520,7 +2611,11 @@ public class Cassandra {
public void write(TProtocol oprot) throws TException {
oprot.writeStructBegin(STRUCT_DESC);
- if (this.isSetAuthnx()) {
+ if (this.isSetSuccess()) {
+ oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
+ oprot.writeI32(this.success.getValue());
+ oprot.writeFieldEnd();
+ } else if (this.isSetAuthnx()) {
oprot.writeFieldBegin(AUTHNX_FIELD_DESC);
this.authnx.write(oprot);
oprot.writeFieldEnd();
@@ -2538,6 +2633,14 @@ public class Cassandra {
StringBuilder sb = new StringBuilder("login_result(");
boolean first = true;
+ sb.append("success:");
+ if (this.success == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.success);
+ }
+ first = false;
+ if (!first) sb.append(", ");
sb.append("authnx:");
if (this.authnx == null) {
sb.append("null");