in hadoop-ozone/httpfsgateway/src/main/java/org/apache/ozone/fs/http/server/HttpFSServer.java [236:331]
public Response get(@PathParam("path") String path,
@Context UriInfo uriInfo,
@QueryParam(OperationParam.NAME) OperationParam op,
@Context HttpServletRequest request)
throws IOException, FileSystemAccessException,
UnsupportedOperationException {
// Restrict access to only GETFILESTATUS and LISTSTATUS in write-only mode
if ((op.value() != HttpFSConstants.Operation.GETFILESTATUS) &&
(op.value() != HttpFSConstants.Operation.LISTSTATUS) &&
accessMode == AccessMode.WRITEONLY) {
return Response.status(Response.Status.FORBIDDEN).build();
}
UserGroupInformation user = HttpUserGroupInformation.get();
final Parameters params = getParams(request);
Response response;
path = makeAbsolute(path);
MDC.put(HttpFSConstants.OP_PARAM, op.value().name());
MDC.put("hostname", request.getRemoteAddr());
switch (op.value()) {
case OPEN:
response = handleOpen(path, uriInfo, params, user);
break;
case GETFILESTATUS:
response = handleGetFileStatus(path, user);
break;
case LISTSTATUS:
response = handleListStatus(path, params, user);
break;
case GETHOMEDIRECTORY:
throw new UnsupportedOperationException(getClass().getSimpleName()
+ " doesn't support GETHOMEDIRECTORY");
//response = handleGetHomeDir(path, op, user);
//break;
case INSTRUMENTATION:
response = handleInstrumentation(path, op, user);
break;
case GETCONTENTSUMMARY:
response = handleGetContentSummary(path, user);
break;
case GETQUOTAUSAGE:
response = handleGetQuotaUsage(path, user);
break;
case GETFILECHECKSUM:
throw new UnsupportedOperationException(getClass().getSimpleName()
+ " doesn't support GETFILECHECKSUM");
// response = handleGetFileCheckSum(path, uriInfo, params, user);
// break;
case GETFILEBLOCKLOCATIONS:
response = Response.status(Response.Status.BAD_REQUEST).build();
break;
case GETACLSTATUS:
response = handleGetACLStatus(path, user);
break;
case GETXATTRS:
response = handleGetXAttrs(path, params, user);
break;
case LISTXATTRS:
response = handleListXAttrs(path, user);
break;
case LISTSTATUS_BATCH:
throw new UnsupportedOperationException(getClass().getSimpleName()
+ " doesn't support LISTSTATUS_BATCH");
//response = handleListStatusBatch(path, params, user);
//break;
case GETTRASHROOT:
throw new UnsupportedOperationException(getClass().getSimpleName()
+ " doesn't support GETTRASHROOT");
//response = handleGetTrashRoot(path, user);
//break;
case GETALLSTORAGEPOLICY:
response = handleGetAllStoragePolicy(path, user);
break;
case GETSTORAGEPOLICY:
response = handleGetStoragePolicy(path, user);
break;
case GETSNAPSHOTDIFF:
response = handleGetSnapshotDiff(path, params, user);
break;
case GETSNAPSHOTTABLEDIRECTORYLIST:
response = handleGetSnaphotTableDirectoryList(user);
break;
case GETSERVERDEFAULTS:
response = handleGetServerDefaults(user);
break;
case CHECKACCESS:
response = handleCheckAccess(path, params, user);
break;
case GETECPOLICY:
response = handleGetECPolicy(path, user);
break;
default:
throw new IOException(
MessageFormat.format("Invalid HTTP GET operation [{0}]", op.value()));
}
return response;
}