|
@@ -27,14 +27,6 @@ import org.apache.hadoop.ipc.Client;
|
|
import org.apache.hadoop.ipc.ProtobufRpcEngine;
|
|
import org.apache.hadoop.ipc.ProtobufRpcEngine;
|
|
import org.apache.hadoop.ipc.RPC;
|
|
import org.apache.hadoop.ipc.RPC;
|
|
import org.apache.hadoop.hdds.server.ServiceRuntimeInfoImpl;
|
|
import org.apache.hadoop.hdds.server.ServiceRuntimeInfoImpl;
|
|
-import org.apache.hadoop.ipc.Server;
|
|
|
|
-import org.apache.hadoop.ozone.OzoneConsts;
|
|
|
|
-import org.apache.hadoop.ozone.audit.AuditAction;
|
|
|
|
-import org.apache.hadoop.ozone.audit.AuditEventStatus;
|
|
|
|
-import org.apache.hadoop.ozone.audit.AuditLogger;
|
|
|
|
-import org.apache.hadoop.ozone.audit.AuditLoggerType;
|
|
|
|
-import org.apache.hadoop.ozone.audit.AuditMessage;
|
|
|
|
-import org.apache.hadoop.ozone.audit.OMAction;
|
|
|
|
import org.apache.hadoop.ozone.common.Storage.StorageState;
|
|
import org.apache.hadoop.ozone.common.Storage.StorageState;
|
|
import org.apache.hadoop.ozone.om.exceptions.OMException;
|
|
import org.apache.hadoop.ozone.om.exceptions.OMException;
|
|
import org.apache.hadoop.ozone.om.helpers.OmBucketArgs;
|
|
import org.apache.hadoop.ozone.om.helpers.OmBucketArgs;
|
|
@@ -77,8 +69,6 @@ import static org.apache.hadoop.hdds.HddsUtils.isHddsEnabled;
|
|
import static org.apache.hadoop.ozone.OmUtils.getOmAddress;
|
|
import static org.apache.hadoop.ozone.OmUtils.getOmAddress;
|
|
import static org.apache.hadoop.hdds.server.ServerUtils
|
|
import static org.apache.hadoop.hdds.server.ServerUtils
|
|
.updateRPCListenAddress;
|
|
.updateRPCListenAddress;
|
|
-
|
|
|
|
-import org.apache.logging.log4j.Level;
|
|
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
|
|
@@ -88,7 +78,6 @@ import java.io.PrintStream;
|
|
import java.net.InetSocketAddress;
|
|
import java.net.InetSocketAddress;
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
import java.util.HashMap;
|
|
import java.util.HashMap;
|
|
-import java.util.LinkedHashMap;
|
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
|
|
|
|
@@ -115,9 +104,6 @@ public final class OzoneManager extends ServiceRuntimeInfoImpl
|
|
private static final Logger LOG =
|
|
private static final Logger LOG =
|
|
LoggerFactory.getLogger(OzoneManager.class);
|
|
LoggerFactory.getLogger(OzoneManager.class);
|
|
|
|
|
|
- private static final AuditLogger AUDIT =
|
|
|
|
- new AuditLogger(AuditLoggerType.OMLOGGER);
|
|
|
|
-
|
|
|
|
private static final String USAGE =
|
|
private static final String USAGE =
|
|
"Usage: \n ozone om [genericOptions] " + "[ "
|
|
"Usage: \n ozone om [genericOptions] " + "[ "
|
|
+ StartupOption.CREATEOBJECTSTORE.getName() + " ]\n " + "ozone om [ "
|
|
+ StartupOption.CREATEOBJECTSTORE.getName() + " ]\n " + "ozone om [ "
|
|
@@ -349,8 +335,8 @@ public final class OzoneManager extends ServiceRuntimeInfoImpl
|
|
* @throws IOException in case OM instance creation fails.
|
|
* @throws IOException in case OM instance creation fails.
|
|
*/
|
|
*/
|
|
|
|
|
|
- public static OzoneManager createOm(String[] argv, OzoneConfiguration conf)
|
|
|
|
- throws IOException {
|
|
|
|
|
|
+ public static OzoneManager createOm(String[] argv,
|
|
|
|
+ OzoneConfiguration conf) throws IOException {
|
|
if (!isHddsEnabled(conf)) {
|
|
if (!isHddsEnabled(conf)) {
|
|
System.err.println("OM cannot be started in secure mode or when " +
|
|
System.err.println("OM cannot be started in secure mode or when " +
|
|
OZONE_ENABLED + " is set to false");
|
|
OZONE_ENABLED + " is set to false");
|
|
@@ -500,13 +486,8 @@ public final class OzoneManager extends ServiceRuntimeInfoImpl
|
|
try {
|
|
try {
|
|
metrics.incNumVolumeCreates();
|
|
metrics.incNumVolumeCreates();
|
|
volumeManager.createVolume(args);
|
|
volumeManager.createVolume(args);
|
|
- AUDIT.logWriteSuccess(buildAuditMessageForSuccess(OMAction.CREATE_VOLUME,
|
|
|
|
- args.toAuditMap()));
|
|
|
|
} catch (Exception ex) {
|
|
} catch (Exception ex) {
|
|
metrics.incNumVolumeCreateFails();
|
|
metrics.incNumVolumeCreateFails();
|
|
- AUDIT.logWriteFailure(Level.ERROR,
|
|
|
|
- buildAuditMessageForFailure(OMAction.CREATE_VOLUME,
|
|
|
|
- args.toAuditMap()), ex);
|
|
|
|
throw ex;
|
|
throw ex;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -520,17 +501,11 @@ public final class OzoneManager extends ServiceRuntimeInfoImpl
|
|
*/
|
|
*/
|
|
@Override
|
|
@Override
|
|
public void setOwner(String volume, String owner) throws IOException {
|
|
public void setOwner(String volume, String owner) throws IOException {
|
|
- Map<String, String> auditMap = buildAuditMap(volume);
|
|
|
|
- auditMap.put(OzoneConsts.OWNER, owner);
|
|
|
|
try {
|
|
try {
|
|
metrics.incNumVolumeUpdates();
|
|
metrics.incNumVolumeUpdates();
|
|
volumeManager.setOwner(volume, owner);
|
|
volumeManager.setOwner(volume, owner);
|
|
- AUDIT.logWriteSuccess(buildAuditMessageForSuccess(OMAction.SET_OWNER,
|
|
|
|
- auditMap));
|
|
|
|
} catch (Exception ex) {
|
|
} catch (Exception ex) {
|
|
metrics.incNumVolumeUpdateFails();
|
|
metrics.incNumVolumeUpdateFails();
|
|
- AUDIT.logWriteFailure(buildAuditMessageForFailure(OMAction.SET_OWNER,
|
|
|
|
- auditMap), ex);
|
|
|
|
throw ex;
|
|
throw ex;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -544,22 +519,15 @@ public final class OzoneManager extends ServiceRuntimeInfoImpl
|
|
*/
|
|
*/
|
|
@Override
|
|
@Override
|
|
public void setQuota(String volume, long quota) throws IOException {
|
|
public void setQuota(String volume, long quota) throws IOException {
|
|
- Map<String, String> auditMap = buildAuditMap(volume);
|
|
|
|
- auditMap.put(OzoneConsts.QUOTA, String.valueOf(quota));
|
|
|
|
try {
|
|
try {
|
|
metrics.incNumVolumeUpdates();
|
|
metrics.incNumVolumeUpdates();
|
|
volumeManager.setQuota(volume, quota);
|
|
volumeManager.setQuota(volume, quota);
|
|
- AUDIT.logWriteSuccess(buildAuditMessageForSuccess(OMAction.SET_QUOTA,
|
|
|
|
- auditMap));
|
|
|
|
} catch (Exception ex) {
|
|
} catch (Exception ex) {
|
|
metrics.incNumVolumeUpdateFails();
|
|
metrics.incNumVolumeUpdateFails();
|
|
- AUDIT.logWriteFailure(buildAuditMessageForFailure(OMAction.SET_QUOTA,
|
|
|
|
- auditMap), ex);
|
|
|
|
throw ex;
|
|
throw ex;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- //TODO: Should define new OMAction type? How to log OzoneAclInfo ?
|
|
|
|
/**
|
|
/**
|
|
* Checks if the specified user can access this volume.
|
|
* Checks if the specified user can access this volume.
|
|
*
|
|
*
|
|
@@ -572,23 +540,12 @@ public final class OzoneManager extends ServiceRuntimeInfoImpl
|
|
@Override
|
|
@Override
|
|
public boolean checkVolumeAccess(String volume, OzoneAclInfo userAcl)
|
|
public boolean checkVolumeAccess(String volume, OzoneAclInfo userAcl)
|
|
throws IOException {
|
|
throws IOException {
|
|
- boolean auditSuccess = true;
|
|
|
|
- Map<String, String> auditMap = buildAuditMap(volume);
|
|
|
|
- auditMap.put(OzoneConsts.USER_ACL, userAcl.getName());
|
|
|
|
try {
|
|
try {
|
|
metrics.incNumVolumeCheckAccesses();
|
|
metrics.incNumVolumeCheckAccesses();
|
|
return volumeManager.checkVolumeAccess(volume, userAcl);
|
|
return volumeManager.checkVolumeAccess(volume, userAcl);
|
|
} catch (Exception ex) {
|
|
} catch (Exception ex) {
|
|
metrics.incNumVolumeCheckAccessFails();
|
|
metrics.incNumVolumeCheckAccessFails();
|
|
- auditSuccess = false;
|
|
|
|
- AUDIT.logReadFailure(buildAuditMessageForFailure(OMAction.READ_VOLUME,
|
|
|
|
- auditMap), ex);
|
|
|
|
throw ex;
|
|
throw ex;
|
|
- } finally {
|
|
|
|
- if(auditSuccess){
|
|
|
|
- AUDIT.logReadSuccess(buildAuditMessageForSuccess(OMAction.READ_VOLUME,
|
|
|
|
- auditMap));
|
|
|
|
- }
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -601,22 +558,12 @@ public final class OzoneManager extends ServiceRuntimeInfoImpl
|
|
*/
|
|
*/
|
|
@Override
|
|
@Override
|
|
public OmVolumeArgs getVolumeInfo(String volume) throws IOException {
|
|
public OmVolumeArgs getVolumeInfo(String volume) throws IOException {
|
|
- boolean auditSuccess = true;
|
|
|
|
- Map<String, String> auditMap = buildAuditMap(volume);
|
|
|
|
try {
|
|
try {
|
|
metrics.incNumVolumeInfos();
|
|
metrics.incNumVolumeInfos();
|
|
return volumeManager.getVolumeInfo(volume);
|
|
return volumeManager.getVolumeInfo(volume);
|
|
} catch (Exception ex) {
|
|
} catch (Exception ex) {
|
|
metrics.incNumVolumeInfoFails();
|
|
metrics.incNumVolumeInfoFails();
|
|
- auditSuccess = false;
|
|
|
|
- AUDIT.logReadFailure(buildAuditMessageForFailure(OMAction.READ_VOLUME,
|
|
|
|
- auditMap), ex);
|
|
|
|
throw ex;
|
|
throw ex;
|
|
- } finally {
|
|
|
|
- if(auditSuccess){
|
|
|
|
- AUDIT.logReadSuccess(buildAuditMessageForSuccess(OMAction.READ_VOLUME,
|
|
|
|
- auditMap));
|
|
|
|
- }
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -631,12 +578,8 @@ public final class OzoneManager extends ServiceRuntimeInfoImpl
|
|
try {
|
|
try {
|
|
metrics.incNumVolumeDeletes();
|
|
metrics.incNumVolumeDeletes();
|
|
volumeManager.deleteVolume(volume);
|
|
volumeManager.deleteVolume(volume);
|
|
- AUDIT.logWriteSuccess(buildAuditMessageForSuccess(OMAction.DELETE_VOLUME,
|
|
|
|
- buildAuditMap(volume)));
|
|
|
|
} catch (Exception ex) {
|
|
} catch (Exception ex) {
|
|
metrics.incNumVolumeDeleteFails();
|
|
metrics.incNumVolumeDeleteFails();
|
|
- AUDIT.logWriteFailure(buildAuditMessageForFailure(OMAction.DELETE_VOLUME,
|
|
|
|
- buildAuditMap(volume)), ex);
|
|
|
|
throw ex;
|
|
throw ex;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -654,27 +597,13 @@ public final class OzoneManager extends ServiceRuntimeInfoImpl
|
|
*/
|
|
*/
|
|
@Override
|
|
@Override
|
|
public List<OmVolumeArgs> listVolumeByUser(String userName, String prefix,
|
|
public List<OmVolumeArgs> listVolumeByUser(String userName, String prefix,
|
|
- String prevKey, int maxKeys) throws IOException {
|
|
|
|
- boolean auditSuccess = true;
|
|
|
|
- Map<String, String> auditMap = new LinkedHashMap<>();
|
|
|
|
- auditMap.put(OzoneConsts.PREV_KEY, prevKey);
|
|
|
|
- auditMap.put(OzoneConsts.PREFIX, prefix);
|
|
|
|
- auditMap.put(OzoneConsts.MAX_KEYS, String.valueOf(maxKeys));
|
|
|
|
- auditMap.put(OzoneConsts.USERNAME, userName);
|
|
|
|
|
|
+ String prevKey, int maxKeys) throws IOException {
|
|
try {
|
|
try {
|
|
metrics.incNumVolumeLists();
|
|
metrics.incNumVolumeLists();
|
|
return volumeManager.listVolumes(userName, prefix, prevKey, maxKeys);
|
|
return volumeManager.listVolumes(userName, prefix, prevKey, maxKeys);
|
|
} catch (Exception ex) {
|
|
} catch (Exception ex) {
|
|
metrics.incNumVolumeListFails();
|
|
metrics.incNumVolumeListFails();
|
|
- auditSuccess = false;
|
|
|
|
- AUDIT.logReadFailure(buildAuditMessageForFailure(OMAction.LIST_VOLUMES,
|
|
|
|
- auditMap), ex);
|
|
|
|
throw ex;
|
|
throw ex;
|
|
- } finally {
|
|
|
|
- if(auditSuccess){
|
|
|
|
- AUDIT.logReadSuccess(buildAuditMessageForSuccess(OMAction.LIST_VOLUMES,
|
|
|
|
- auditMap));
|
|
|
|
- }
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -691,26 +620,12 @@ public final class OzoneManager extends ServiceRuntimeInfoImpl
|
|
@Override
|
|
@Override
|
|
public List<OmVolumeArgs> listAllVolumes(String prefix, String prevKey, int
|
|
public List<OmVolumeArgs> listAllVolumes(String prefix, String prevKey, int
|
|
maxKeys) throws IOException {
|
|
maxKeys) throws IOException {
|
|
- boolean auditSuccess = true;
|
|
|
|
- Map<String, String> auditMap = new LinkedHashMap<>();
|
|
|
|
- auditMap.put(OzoneConsts.PREV_KEY, prevKey);
|
|
|
|
- auditMap.put(OzoneConsts.PREFIX, prefix);
|
|
|
|
- auditMap.put(OzoneConsts.MAX_KEYS, String.valueOf(maxKeys));
|
|
|
|
- auditMap.put(OzoneConsts.USERNAME, null);
|
|
|
|
try {
|
|
try {
|
|
metrics.incNumVolumeLists();
|
|
metrics.incNumVolumeLists();
|
|
return volumeManager.listVolumes(null, prefix, prevKey, maxKeys);
|
|
return volumeManager.listVolumes(null, prefix, prevKey, maxKeys);
|
|
} catch (Exception ex) {
|
|
} catch (Exception ex) {
|
|
metrics.incNumVolumeListFails();
|
|
metrics.incNumVolumeListFails();
|
|
- auditSuccess = false;
|
|
|
|
- AUDIT.logReadFailure(buildAuditMessageForFailure(OMAction.LIST_VOLUMES,
|
|
|
|
- auditMap), ex);
|
|
|
|
throw ex;
|
|
throw ex;
|
|
- } finally {
|
|
|
|
- if(auditSuccess){
|
|
|
|
- AUDIT.logReadSuccess(buildAuditMessageForSuccess(OMAction.LIST_VOLUMES,
|
|
|
|
- auditMap));
|
|
|
|
- }
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -725,12 +640,8 @@ public final class OzoneManager extends ServiceRuntimeInfoImpl
|
|
try {
|
|
try {
|
|
metrics.incNumBucketCreates();
|
|
metrics.incNumBucketCreates();
|
|
bucketManager.createBucket(bucketInfo);
|
|
bucketManager.createBucket(bucketInfo);
|
|
- AUDIT.logWriteSuccess(buildAuditMessageForSuccess(OMAction.CREATE_BUCKET,
|
|
|
|
- bucketInfo.toAuditMap()));
|
|
|
|
} catch (Exception ex) {
|
|
} catch (Exception ex) {
|
|
metrics.incNumBucketCreateFails();
|
|
metrics.incNumBucketCreateFails();
|
|
- AUDIT.logWriteFailure(buildAuditMessageForFailure(OMAction.CREATE_BUCKET,
|
|
|
|
- bucketInfo.toAuditMap()), ex);
|
|
|
|
throw ex;
|
|
throw ex;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -739,30 +650,16 @@ public final class OzoneManager extends ServiceRuntimeInfoImpl
|
|
* {@inheritDoc}
|
|
* {@inheritDoc}
|
|
*/
|
|
*/
|
|
@Override
|
|
@Override
|
|
- public List<OmBucketInfo> listBuckets(String volumeName, String startKey,
|
|
|
|
- String prefix, int maxNumOfBuckets)
|
|
|
|
|
|
+ public List<OmBucketInfo> listBuckets(String volumeName,
|
|
|
|
+ String startKey, String prefix, int maxNumOfBuckets)
|
|
throws IOException {
|
|
throws IOException {
|
|
- boolean auditSuccess = true;
|
|
|
|
- Map<String, String> auditMap = buildAuditMap(volumeName);
|
|
|
|
- auditMap.put(OzoneConsts.START_KEY, startKey);
|
|
|
|
- auditMap.put(OzoneConsts.PREFIX, prefix);
|
|
|
|
- auditMap.put(OzoneConsts.MAX_NUM_OF_BUCKETS,
|
|
|
|
- String.valueOf(maxNumOfBuckets));
|
|
|
|
try {
|
|
try {
|
|
metrics.incNumBucketLists();
|
|
metrics.incNumBucketLists();
|
|
return bucketManager.listBuckets(volumeName,
|
|
return bucketManager.listBuckets(volumeName,
|
|
startKey, prefix, maxNumOfBuckets);
|
|
startKey, prefix, maxNumOfBuckets);
|
|
} catch (IOException ex) {
|
|
} catch (IOException ex) {
|
|
metrics.incNumBucketListFails();
|
|
metrics.incNumBucketListFails();
|
|
- auditSuccess = false;
|
|
|
|
- AUDIT.logReadFailure(buildAuditMessageForFailure(OMAction.LIST_BUCKETS,
|
|
|
|
- auditMap), ex);
|
|
|
|
throw ex;
|
|
throw ex;
|
|
- } finally {
|
|
|
|
- if(auditSuccess){
|
|
|
|
- AUDIT.logReadSuccess(buildAuditMessageForSuccess(OMAction.LIST_BUCKETS,
|
|
|
|
- auditMap));
|
|
|
|
- }
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -777,23 +674,12 @@ public final class OzoneManager extends ServiceRuntimeInfoImpl
|
|
@Override
|
|
@Override
|
|
public OmBucketInfo getBucketInfo(String volume, String bucket)
|
|
public OmBucketInfo getBucketInfo(String volume, String bucket)
|
|
throws IOException {
|
|
throws IOException {
|
|
- boolean auditSuccess = true;
|
|
|
|
- Map<String, String> auditMap = buildAuditMap(volume);
|
|
|
|
- auditMap.put(OzoneConsts.BUCKET, bucket);
|
|
|
|
try {
|
|
try {
|
|
metrics.incNumBucketInfos();
|
|
metrics.incNumBucketInfos();
|
|
return bucketManager.getBucketInfo(volume, bucket);
|
|
return bucketManager.getBucketInfo(volume, bucket);
|
|
} catch (Exception ex) {
|
|
} catch (Exception ex) {
|
|
metrics.incNumBucketInfoFails();
|
|
metrics.incNumBucketInfoFails();
|
|
- auditSuccess = false;
|
|
|
|
- AUDIT.logReadFailure(buildAuditMessageForFailure(OMAction.READ_BUCKET,
|
|
|
|
- auditMap), ex);
|
|
|
|
throw ex;
|
|
throw ex;
|
|
- } finally {
|
|
|
|
- if(auditSuccess){
|
|
|
|
- AUDIT.logReadSuccess(buildAuditMessageForSuccess(OMAction.READ_BUCKET,
|
|
|
|
- auditMap));
|
|
|
|
- }
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -806,38 +692,23 @@ public final class OzoneManager extends ServiceRuntimeInfoImpl
|
|
*/
|
|
*/
|
|
@Override
|
|
@Override
|
|
public OpenKeySession openKey(OmKeyArgs args) throws IOException {
|
|
public OpenKeySession openKey(OmKeyArgs args) throws IOException {
|
|
- boolean auditSuccess = true;
|
|
|
|
try {
|
|
try {
|
|
metrics.incNumKeyAllocates();
|
|
metrics.incNumKeyAllocates();
|
|
return keyManager.openKey(args);
|
|
return keyManager.openKey(args);
|
|
} catch (Exception ex) {
|
|
} catch (Exception ex) {
|
|
metrics.incNumKeyAllocateFails();
|
|
metrics.incNumKeyAllocateFails();
|
|
- auditSuccess = false;
|
|
|
|
- AUDIT.logWriteFailure(buildAuditMessageForFailure(OMAction.ALLOCATE_KEY,
|
|
|
|
- args.toAuditMap()), ex);
|
|
|
|
throw ex;
|
|
throw ex;
|
|
- } finally {
|
|
|
|
- if(auditSuccess){
|
|
|
|
- AUDIT.logWriteSuccess(buildAuditMessageForSuccess(OMAction.ALLOCATE_KEY,
|
|
|
|
- args.toAuditMap()));
|
|
|
|
- }
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public void commitKey(OmKeyArgs args, int clientID)
|
|
public void commitKey(OmKeyArgs args, int clientID)
|
|
throws IOException {
|
|
throws IOException {
|
|
- Map<String, String> auditMap = args.toAuditMap();
|
|
|
|
- auditMap.put(OzoneConsts.CLIENT_ID, String.valueOf(clientID));
|
|
|
|
try {
|
|
try {
|
|
metrics.incNumKeyCommits();
|
|
metrics.incNumKeyCommits();
|
|
keyManager.commitKey(args, clientID);
|
|
keyManager.commitKey(args, clientID);
|
|
- AUDIT.logWriteSuccess(buildAuditMessageForSuccess(OMAction.COMMIT_KEY,
|
|
|
|
- args.toAuditMap()));
|
|
|
|
} catch (Exception ex) {
|
|
} catch (Exception ex) {
|
|
metrics.incNumKeyCommitFails();
|
|
metrics.incNumKeyCommitFails();
|
|
- AUDIT.logWriteFailure(buildAuditMessageForFailure(OMAction.COMMIT_KEY,
|
|
|
|
- args.toAuditMap()), ex);
|
|
|
|
throw ex;
|
|
throw ex;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -845,24 +716,12 @@ public final class OzoneManager extends ServiceRuntimeInfoImpl
|
|
@Override
|
|
@Override
|
|
public OmKeyLocationInfo allocateBlock(OmKeyArgs args, int clientID)
|
|
public OmKeyLocationInfo allocateBlock(OmKeyArgs args, int clientID)
|
|
throws IOException {
|
|
throws IOException {
|
|
- boolean auditSuccess = true;
|
|
|
|
- Map<String, String> auditMap = args.toAuditMap();
|
|
|
|
- auditMap.put(OzoneConsts.CLIENT_ID, String.valueOf(clientID));
|
|
|
|
try {
|
|
try {
|
|
metrics.incNumBlockAllocateCalls();
|
|
metrics.incNumBlockAllocateCalls();
|
|
return keyManager.allocateBlock(args, clientID);
|
|
return keyManager.allocateBlock(args, clientID);
|
|
} catch (Exception ex) {
|
|
} catch (Exception ex) {
|
|
metrics.incNumBlockAllocateCallFails();
|
|
metrics.incNumBlockAllocateCallFails();
|
|
- auditSuccess = false;
|
|
|
|
- AUDIT.logWriteFailure(buildAuditMessageForFailure(OMAction.ALLOCATE_BLOCK,
|
|
|
|
- args.toAuditMap()), ex);
|
|
|
|
throw ex;
|
|
throw ex;
|
|
- } finally {
|
|
|
|
- if(auditSuccess){
|
|
|
|
- AUDIT.logWriteSuccess(buildAuditMessageForSuccess(
|
|
|
|
- OMAction.ALLOCATE_BLOCK,
|
|
|
|
- args.toAuditMap()));
|
|
|
|
- }
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -875,37 +734,22 @@ public final class OzoneManager extends ServiceRuntimeInfoImpl
|
|
*/
|
|
*/
|
|
@Override
|
|
@Override
|
|
public OmKeyInfo lookupKey(OmKeyArgs args) throws IOException {
|
|
public OmKeyInfo lookupKey(OmKeyArgs args) throws IOException {
|
|
- boolean auditSuccess = true;
|
|
|
|
try {
|
|
try {
|
|
metrics.incNumKeyLookups();
|
|
metrics.incNumKeyLookups();
|
|
return keyManager.lookupKey(args);
|
|
return keyManager.lookupKey(args);
|
|
} catch (Exception ex) {
|
|
} catch (Exception ex) {
|
|
metrics.incNumKeyLookupFails();
|
|
metrics.incNumKeyLookupFails();
|
|
- auditSuccess = false;
|
|
|
|
- AUDIT.logReadFailure(buildAuditMessageForFailure(OMAction.READ_KEY,
|
|
|
|
- args.toAuditMap()), ex);
|
|
|
|
throw ex;
|
|
throw ex;
|
|
- } finally {
|
|
|
|
- if(auditSuccess){
|
|
|
|
- AUDIT.logReadSuccess(buildAuditMessageForSuccess(OMAction.READ_KEY,
|
|
|
|
- args.toAuditMap()));
|
|
|
|
- }
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public void renameKey(OmKeyArgs args, String toKeyName) throws IOException {
|
|
public void renameKey(OmKeyArgs args, String toKeyName) throws IOException {
|
|
- Map<String, String> auditMap = args.toAuditMap();
|
|
|
|
- auditMap.put(OzoneConsts.TO_KEY_NAME, toKeyName);
|
|
|
|
try {
|
|
try {
|
|
metrics.incNumKeyRenames();
|
|
metrics.incNumKeyRenames();
|
|
keyManager.renameKey(args, toKeyName);
|
|
keyManager.renameKey(args, toKeyName);
|
|
- AUDIT.logWriteSuccess(buildAuditMessageForSuccess(OMAction.RENAME_KEY,
|
|
|
|
- args.toAuditMap()));
|
|
|
|
} catch (IOException e) {
|
|
} catch (IOException e) {
|
|
metrics.incNumKeyRenameFails();
|
|
metrics.incNumKeyRenameFails();
|
|
- AUDIT.logWriteFailure(buildAuditMessageForFailure(OMAction.RENAME_KEY,
|
|
|
|
- args.toAuditMap()), e);
|
|
|
|
throw e;
|
|
throw e;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -921,40 +765,22 @@ public final class OzoneManager extends ServiceRuntimeInfoImpl
|
|
try {
|
|
try {
|
|
metrics.incNumKeyDeletes();
|
|
metrics.incNumKeyDeletes();
|
|
keyManager.deleteKey(args);
|
|
keyManager.deleteKey(args);
|
|
- AUDIT.logWriteSuccess(buildAuditMessageForSuccess(OMAction.DELETE_KEY,
|
|
|
|
- args.toAuditMap()));
|
|
|
|
} catch (Exception ex) {
|
|
} catch (Exception ex) {
|
|
metrics.incNumKeyDeleteFails();
|
|
metrics.incNumKeyDeleteFails();
|
|
- AUDIT.logWriteFailure(buildAuditMessageForFailure(OMAction.DELETE_KEY,
|
|
|
|
- args.toAuditMap()), ex);
|
|
|
|
throw ex;
|
|
throw ex;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public List<OmKeyInfo> listKeys(String volumeName, String bucketName,
|
|
public List<OmKeyInfo> listKeys(String volumeName, String bucketName,
|
|
- String startKey, String keyPrefix, int maxKeys) throws IOException {
|
|
|
|
- boolean auditSuccess = true;
|
|
|
|
- Map<String, String> auditMap = buildAuditMap(volumeName);
|
|
|
|
- auditMap.put(OzoneConsts.BUCKET, bucketName);
|
|
|
|
- auditMap.put(OzoneConsts.START_KEY, startKey);
|
|
|
|
- auditMap.put(OzoneConsts.MAX_KEYS, String.valueOf(maxKeys));
|
|
|
|
- auditMap.put(OzoneConsts.KEY_PREFIX, keyPrefix);
|
|
|
|
|
|
+ String startKey, String keyPrefix, int maxKeys) throws IOException {
|
|
try {
|
|
try {
|
|
metrics.incNumKeyLists();
|
|
metrics.incNumKeyLists();
|
|
return keyManager.listKeys(volumeName, bucketName,
|
|
return keyManager.listKeys(volumeName, bucketName,
|
|
startKey, keyPrefix, maxKeys);
|
|
startKey, keyPrefix, maxKeys);
|
|
} catch (IOException ex) {
|
|
} catch (IOException ex) {
|
|
metrics.incNumKeyListFails();
|
|
metrics.incNumKeyListFails();
|
|
- auditSuccess = false;
|
|
|
|
- AUDIT.logReadFailure(buildAuditMessageForFailure(OMAction.LIST_KEYS,
|
|
|
|
- auditMap), ex);
|
|
|
|
throw ex;
|
|
throw ex;
|
|
- } finally {
|
|
|
|
- if(auditSuccess){
|
|
|
|
- AUDIT.logReadSuccess(buildAuditMessageForSuccess(OMAction.LIST_KEYS,
|
|
|
|
- auditMap));
|
|
|
|
- }
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -969,12 +795,8 @@ public final class OzoneManager extends ServiceRuntimeInfoImpl
|
|
try {
|
|
try {
|
|
metrics.incNumBucketUpdates();
|
|
metrics.incNumBucketUpdates();
|
|
bucketManager.setBucketProperty(args);
|
|
bucketManager.setBucketProperty(args);
|
|
- AUDIT.logWriteSuccess(buildAuditMessageForSuccess(OMAction.UPDATE_BUCKET,
|
|
|
|
- args.toAuditMap()));
|
|
|
|
} catch (Exception ex) {
|
|
} catch (Exception ex) {
|
|
metrics.incNumBucketUpdateFails();
|
|
metrics.incNumBucketUpdateFails();
|
|
- AUDIT.logWriteFailure(buildAuditMessageForFailure(OMAction.UPDATE_BUCKET,
|
|
|
|
- args.toAuditMap()), ex);
|
|
|
|
throw ex;
|
|
throw ex;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -987,17 +809,11 @@ public final class OzoneManager extends ServiceRuntimeInfoImpl
|
|
* @throws IOException
|
|
* @throws IOException
|
|
*/
|
|
*/
|
|
public void deleteBucket(String volume, String bucket) throws IOException {
|
|
public void deleteBucket(String volume, String bucket) throws IOException {
|
|
- Map<String, String> auditMap = buildAuditMap(volume);
|
|
|
|
- auditMap.put(OzoneConsts.BUCKET, bucket);
|
|
|
|
try {
|
|
try {
|
|
metrics.incNumBucketDeletes();
|
|
metrics.incNumBucketDeletes();
|
|
bucketManager.deleteBucket(volume, bucket);
|
|
bucketManager.deleteBucket(volume, bucket);
|
|
- AUDIT.logWriteSuccess(buildAuditMessageForSuccess(OMAction.DELETE_BUCKET,
|
|
|
|
- auditMap));
|
|
|
|
} catch (Exception ex) {
|
|
} catch (Exception ex) {
|
|
metrics.incNumBucketDeleteFails();
|
|
metrics.incNumBucketDeleteFails();
|
|
- AUDIT.logWriteFailure(buildAuditMessageForFailure(OMAction.DELETE_BUCKET,
|
|
|
|
- auditMap), ex);
|
|
|
|
throw ex;
|
|
throw ex;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -1092,26 +908,4 @@ public final class OzoneManager extends ServiceRuntimeInfoImpl
|
|
// metrics.incNumGetServiceListFails()
|
|
// metrics.incNumGetServiceListFails()
|
|
return services;
|
|
return services;
|
|
}
|
|
}
|
|
-
|
|
|
|
- private Map<String, String> buildAuditMap(String volume){
|
|
|
|
- Map<String, String> auditMap = new LinkedHashMap<>();
|
|
|
|
- auditMap.put(OzoneConsts.VOLUME, volume);
|
|
|
|
- return auditMap;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- // TODO: Temporary method until AuditMessage is simplified
|
|
|
|
- private AuditMessage buildAuditMessageForSuccess(AuditAction op,
|
|
|
|
- Map<String, String> auditMap) {
|
|
|
|
- return new AuditMessage(Server.getRemoteUser().getUserName(),
|
|
|
|
- Server.getRemoteIp().getHostAddress(), op.toString(), auditMap,
|
|
|
|
- AuditEventStatus.SUCCESS.toString());
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- // TODO: Temporary method until AuditMessage is simplified
|
|
|
|
- private AuditMessage buildAuditMessageForFailure(AuditAction op,
|
|
|
|
- Map<String, String> auditMap) {
|
|
|
|
- return new AuditMessage(Server.getRemoteUser().getUserName(),
|
|
|
|
- Server.getRemoteIp().getHostAddress(), op.toString(), auditMap,
|
|
|
|
- AuditEventStatus.FAILURE.toString());
|
|
|
|
- }
|
|
|
|
}
|
|
}
|