HBASE-15315 Remove always set super user call as high priority (Yong Zhang)
This commit is contained in:
parent
7c54525c89
commit
9ad13468a0
|
@ -43,7 +43,6 @@ import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.RequestHeader;
|
||||||
import com.google.common.annotations.VisibleForTesting;
|
import com.google.common.annotations.VisibleForTesting;
|
||||||
import com.google.protobuf.Message;
|
import com.google.protobuf.Message;
|
||||||
import com.google.protobuf.TextFormat;
|
import com.google.protobuf.TextFormat;
|
||||||
import org.apache.hadoop.hbase.security.Superusers;
|
|
||||||
import org.apache.hadoop.hbase.security.User;
|
import org.apache.hadoop.hbase.security.User;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -176,19 +175,6 @@ public class AnnotationReadingPriorityFunction implements PriorityFunction {
|
||||||
if (priorityByAnnotation >= 0) {
|
if (priorityByAnnotation >= 0) {
|
||||||
return priorityByAnnotation;
|
return priorityByAnnotation;
|
||||||
}
|
}
|
||||||
|
|
||||||
// all requests executed by super users have high QoS
|
|
||||||
try {
|
|
||||||
if (Superusers.isSuperUser(user)) {
|
|
||||||
return HConstants.ADMIN_QOS;
|
|
||||||
}
|
|
||||||
} catch (IllegalStateException ex) {
|
|
||||||
// Not good throwing an exception out of here, a runtime anyways. Let the query go into the
|
|
||||||
// server and have it throw the exception if still an issue. Just mark it normal priority.
|
|
||||||
if (LOG.isTraceEnabled()) LOG.trace("Marking normal priority after getting exception=" + ex);
|
|
||||||
return HConstants.NORMAL_QOS;
|
|
||||||
}
|
|
||||||
|
|
||||||
return getBasePriority(header, param);
|
return getBasePriority(header, param);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -115,28 +115,6 @@ public class TestPriorityRpc {
|
||||||
User.createUserForTesting(regionServer.conf, "someuser", new String[]{"somegroup"})));
|
User.createUserForTesting(regionServer.conf, "someuser", new String[]{"somegroup"})));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testQosFunctionForRequestCalledBySuperUser() throws Exception {
|
|
||||||
RequestHeader.Builder headerBuilder = RequestHeader.newBuilder();
|
|
||||||
headerBuilder.setMethodName("foo");
|
|
||||||
RequestHeader header = headerBuilder.build();
|
|
||||||
PriorityFunction qosFunc = regionServer.rpcServices.getPriority();
|
|
||||||
|
|
||||||
//test superusers
|
|
||||||
regionServer.conf.set(Superusers.SUPERUSER_CONF_KEY, "samplesuperuser");
|
|
||||||
Superusers.initialize(regionServer.conf);
|
|
||||||
assertEquals(HConstants.ADMIN_QOS, qosFunc.getPriority(header, null,
|
|
||||||
User.createUserForTesting(regionServer.conf, "samplesuperuser",
|
|
||||||
new String[]{"somegroup"})));
|
|
||||||
|
|
||||||
//test supergroups
|
|
||||||
regionServer.conf.set(Superusers.SUPERUSER_CONF_KEY, "@samplesupergroup");
|
|
||||||
Superusers.initialize(regionServer.conf);
|
|
||||||
assertEquals(HConstants.ADMIN_QOS, qosFunc.getPriority(header, null,
|
|
||||||
User.createUserForTesting(regionServer.conf, "regularuser",
|
|
||||||
new String[]{"samplesupergroup"})));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testQosFunctionForScanMethod() throws IOException {
|
public void testQosFunctionForScanMethod() throws IOException {
|
||||||
RequestHeader.Builder headerBuilder = RequestHeader.newBuilder();
|
RequestHeader.Builder headerBuilder = RequestHeader.newBuilder();
|
||||||
|
|
Loading…
Reference in New Issue