You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-commits@hadoop.apache.org by el...@apache.org on 2012/02/10 01:46:17 UTC
svn commit: r1242626 - in
/hadoop/common/branches/HDFS-1623/hadoop-hdfs-project/hadoop-hdfs: ./
src/main/java/org/apache/hadoop/hdfs/server/namenode/
Author: eli
Date: Fri Feb 10 00:46:17 2012
New Revision: 1242626
URL: http://svn.apache.org/viewvc?rev=1242626&view=rev
Log:
HDFS-2917. HA: haadmin should not work if run by regular user. Contributed by Eli Collins
Modified:
hadoop/common/branches/HDFS-1623/hadoop-hdfs-project/hadoop-hdfs/CHANGES.HDFS-1623.txt
hadoop/common/branches/HDFS-1623/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNode.java
hadoop/common/branches/HDFS-1623/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNodeRpcServer.java
Modified: hadoop/common/branches/HDFS-1623/hadoop-hdfs-project/hadoop-hdfs/CHANGES.HDFS-1623.txt
URL: http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-1623/hadoop-hdfs-project/hadoop-hdfs/CHANGES.HDFS-1623.txt?rev=1242626&r1=1242625&r2=1242626&view=diff
==============================================================================
--- hadoop/common/branches/HDFS-1623/hadoop-hdfs-project/hadoop-hdfs/CHANGES.HDFS-1623.txt (original)
+++ hadoop/common/branches/HDFS-1623/hadoop-hdfs-project/hadoop-hdfs/CHANGES.HDFS-1623.txt Fri Feb 10 00:46:17 2012
@@ -194,3 +194,5 @@ HDFS-2915. HA: TestFailureOfSharedDir.te
HDFS-2912. Namenode not shutting down when shared edits dir is inaccessible. (Bikas Saha via atm)
HDFS-2922. HA: close out operation categories. (eli)
+
+HDFS-2917. HA: haadmin should not work if run by regular user (eli)
Modified: hadoop/common/branches/HDFS-1623/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNode.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-1623/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNode.java?rev=1242626&r1=1242625&r2=1242626&view=diff
==============================================================================
--- hadoop/common/branches/HDFS-1623/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNode.java (original)
+++ hadoop/common/branches/HDFS-1623/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNode.java Fri Feb 10 00:46:17 2012
@@ -58,6 +58,7 @@ import org.apache.hadoop.hdfs.server.pro
import org.apache.hadoop.ipc.StandbyException;
import org.apache.hadoop.metrics2.lib.DefaultMetricsSystem;
import org.apache.hadoop.net.NetUtils;
+import org.apache.hadoop.security.AccessControlException;
import org.apache.hadoop.security.RefreshUserMappingsProtocol;
import org.apache.hadoop.security.SecurityUtil;
import org.apache.hadoop.security.UserGroupInformation;
@@ -900,36 +901,45 @@ public class NameNode {
}
}
- synchronized void monitorHealth() throws HealthCheckFailedException {
+ synchronized void monitorHealth()
+ throws HealthCheckFailedException, AccessControlException {
+ namesystem.checkSuperuserPrivilege();
if (!haEnabled) {
- return; // no-op, if HA is not eanbled
+ return; // no-op, if HA is not enabled
}
// TODO:HA implement health check
return;
}
- synchronized void transitionToActive() throws ServiceFailedException {
+ synchronized void transitionToActive()
+ throws ServiceFailedException, AccessControlException {
+ namesystem.checkSuperuserPrivilege();
if (!haEnabled) {
throw new ServiceFailedException("HA for namenode is not enabled");
}
state.setState(haContext, ACTIVE_STATE);
}
- synchronized void transitionToStandby() throws ServiceFailedException {
+ synchronized void transitionToStandby()
+ throws ServiceFailedException, AccessControlException {
+ namesystem.checkSuperuserPrivilege();
if (!haEnabled) {
throw new ServiceFailedException("HA for namenode is not enabled");
}
state.setState(haContext, STANDBY_STATE);
}
- synchronized HAServiceState getServiceState() {
+ synchronized HAServiceState getServiceState() throws AccessControlException {
+ namesystem.checkSuperuserPrivilege();
if (state == null) {
return HAServiceState.INITIALIZING;
}
return state.getServiceState();
}
- synchronized boolean readyToBecomeActive() throws ServiceFailedException {
+ synchronized boolean readyToBecomeActive()
+ throws ServiceFailedException, AccessControlException {
+ namesystem.checkSuperuserPrivilege();
if (!haEnabled) {
throw new ServiceFailedException("HA for namenode is not enabled");
}
Modified: hadoop/common/branches/HDFS-1623/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNodeRpcServer.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-1623/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNodeRpcServer.java?rev=1242626&r1=1242625&r2=1242626&view=diff
==============================================================================
--- hadoop/common/branches/HDFS-1623/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNodeRpcServer.java (original)
+++ hadoop/common/branches/HDFS-1623/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNodeRpcServer.java Fri Feb 10 00:46:17 2012
@@ -988,27 +988,32 @@ class NameNodeRpcServer implements Namen
}
@Override // HAServiceProtocol
- public synchronized void monitorHealth() throws HealthCheckFailedException {
+ public synchronized void monitorHealth()
+ throws HealthCheckFailedException, AccessControlException {
nn.monitorHealth();
}
@Override // HAServiceProtocol
- public synchronized void transitionToActive() throws ServiceFailedException {
+ public synchronized void transitionToActive()
+ throws ServiceFailedException, AccessControlException {
nn.transitionToActive();
}
@Override // HAServiceProtocol
- public synchronized void transitionToStandby() throws ServiceFailedException {
+ public synchronized void transitionToStandby()
+ throws ServiceFailedException, AccessControlException {
nn.transitionToStandby();
}
@Override // HAServiceProtocol
- public synchronized HAServiceState getServiceState() {
+ public synchronized HAServiceState getServiceState()
+ throws AccessControlException {
return nn.getServiceState();
}
@Override // HAServiceProtocol
- public synchronized boolean readyToBecomeActive() throws ServiceFailedException {
+ public synchronized boolean readyToBecomeActive()
+ throws ServiceFailedException, AccessControlException {
return nn.readyToBecomeActive();
}