|
@@ -85,6 +85,7 @@ import org.apache.hadoop.hdfs.protocol.ErasureCodingPolicy;
|
|
import org.apache.hadoop.hdfs.protocol.HdfsFileStatus;
|
|
import org.apache.hadoop.hdfs.protocol.HdfsFileStatus;
|
|
import org.apache.hadoop.hdfs.protocol.LocatedBlocks;
|
|
import org.apache.hadoop.hdfs.protocol.LocatedBlocks;
|
|
import org.apache.hadoop.hdfs.protocol.SnapshotDiffReport;
|
|
import org.apache.hadoop.hdfs.protocol.SnapshotDiffReport;
|
|
|
|
+import org.apache.hadoop.hdfs.protocol.SnapshotDiffReportListing;
|
|
import org.apache.hadoop.hdfs.protocol.SnapshottableDirectoryStatus;
|
|
import org.apache.hadoop.hdfs.protocol.SnapshottableDirectoryStatus;
|
|
import org.apache.hadoop.hdfs.protocol.SnapshotStatus;
|
|
import org.apache.hadoop.hdfs.protocol.SnapshotStatus;
|
|
import org.apache.hadoop.hdfs.protocolPB.PBHelperClient;
|
|
import org.apache.hadoop.hdfs.protocolPB.PBHelperClient;
|
|
@@ -1037,6 +1038,10 @@ public class NamenodeWebHdfsMethods {
|
|
final SnapshotNameParam snapshotName,
|
|
final SnapshotNameParam snapshotName,
|
|
@QueryParam(OldSnapshotNameParam.NAME) @DefaultValue(OldSnapshotNameParam.DEFAULT)
|
|
@QueryParam(OldSnapshotNameParam.NAME) @DefaultValue(OldSnapshotNameParam.DEFAULT)
|
|
final OldSnapshotNameParam oldSnapshotName,
|
|
final OldSnapshotNameParam oldSnapshotName,
|
|
|
|
+ @QueryParam(SnapshotDiffStartPathParam.NAME) @DefaultValue(SnapshotDiffStartPathParam.DEFAULT)
|
|
|
|
+ final SnapshotDiffStartPathParam snapshotDiffStartPath,
|
|
|
|
+ @QueryParam(SnapshotDiffIndexParam.NAME) @DefaultValue(SnapshotDiffIndexParam.DEFAULT)
|
|
|
|
+ final SnapshotDiffIndexParam snapshotDiffIndex,
|
|
@QueryParam(TokenKindParam.NAME) @DefaultValue(TokenKindParam.DEFAULT)
|
|
@QueryParam(TokenKindParam.NAME) @DefaultValue(TokenKindParam.DEFAULT)
|
|
final TokenKindParam tokenKind,
|
|
final TokenKindParam tokenKind,
|
|
@QueryParam(TokenServiceParam.NAME) @DefaultValue(TokenServiceParam.DEFAULT)
|
|
@QueryParam(TokenServiceParam.NAME) @DefaultValue(TokenServiceParam.DEFAULT)
|
|
@@ -1048,7 +1053,9 @@ public class NamenodeWebHdfsMethods {
|
|
) throws IOException, InterruptedException {
|
|
) throws IOException, InterruptedException {
|
|
return get(ugi, delegation, username, doAsUser, ROOT, op, offset, length,
|
|
return get(ugi, delegation, username, doAsUser, ROOT, op, offset, length,
|
|
renewer, bufferSize, xattrNames, xattrEncoding, excludeDatanodes,
|
|
renewer, bufferSize, xattrNames, xattrEncoding, excludeDatanodes,
|
|
- fsAction, snapshotName, oldSnapshotName, tokenKind, tokenService,
|
|
|
|
|
|
+ fsAction, snapshotName, oldSnapshotName,
|
|
|
|
+ snapshotDiffStartPath, snapshotDiffIndex,
|
|
|
|
+ tokenKind, tokenService,
|
|
noredirect, startAfter);
|
|
noredirect, startAfter);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1088,6 +1095,10 @@ public class NamenodeWebHdfsMethods {
|
|
final SnapshotNameParam snapshotName,
|
|
final SnapshotNameParam snapshotName,
|
|
@QueryParam(OldSnapshotNameParam.NAME) @DefaultValue(OldSnapshotNameParam.DEFAULT)
|
|
@QueryParam(OldSnapshotNameParam.NAME) @DefaultValue(OldSnapshotNameParam.DEFAULT)
|
|
final OldSnapshotNameParam oldSnapshotName,
|
|
final OldSnapshotNameParam oldSnapshotName,
|
|
|
|
+ @QueryParam(SnapshotDiffStartPathParam.NAME) @DefaultValue(SnapshotDiffStartPathParam.DEFAULT)
|
|
|
|
+ final SnapshotDiffStartPathParam snapshotDiffStartPath,
|
|
|
|
+ @QueryParam(SnapshotDiffIndexParam.NAME) @DefaultValue(SnapshotDiffIndexParam.DEFAULT)
|
|
|
|
+ final SnapshotDiffIndexParam snapshotDiffIndex,
|
|
@QueryParam(TokenKindParam.NAME) @DefaultValue(TokenKindParam.DEFAULT)
|
|
@QueryParam(TokenKindParam.NAME) @DefaultValue(TokenKindParam.DEFAULT)
|
|
final TokenKindParam tokenKind,
|
|
final TokenKindParam tokenKind,
|
|
@QueryParam(TokenServiceParam.NAME) @DefaultValue(TokenServiceParam.DEFAULT)
|
|
@QueryParam(TokenServiceParam.NAME) @DefaultValue(TokenServiceParam.DEFAULT)
|
|
@@ -1108,6 +1119,7 @@ public class NamenodeWebHdfsMethods {
|
|
return get(ugi, delegation, username, doAsUser, path.getAbsolutePath(),
|
|
return get(ugi, delegation, username, doAsUser, path.getAbsolutePath(),
|
|
op, offset, length, renewer, bufferSize, xattrNames, xattrEncoding,
|
|
op, offset, length, renewer, bufferSize, xattrNames, xattrEncoding,
|
|
excludeDatanodes, fsAction, snapshotName, oldSnapshotName,
|
|
excludeDatanodes, fsAction, snapshotName, oldSnapshotName,
|
|
|
|
+ snapshotDiffStartPath, snapshotDiffIndex,
|
|
tokenKind, tokenService, noredirect, startAfter);
|
|
tokenKind, tokenService, noredirect, startAfter);
|
|
}
|
|
}
|
|
});
|
|
});
|
|
@@ -1137,6 +1149,8 @@ public class NamenodeWebHdfsMethods {
|
|
final FsActionParam fsAction,
|
|
final FsActionParam fsAction,
|
|
final SnapshotNameParam snapshotName,
|
|
final SnapshotNameParam snapshotName,
|
|
final OldSnapshotNameParam oldSnapshotName,
|
|
final OldSnapshotNameParam oldSnapshotName,
|
|
|
|
+ final SnapshotDiffStartPathParam snapshotDiffStartPath,
|
|
|
|
+ final SnapshotDiffIndexParam snapshotDiffIndex,
|
|
final TokenKindParam tokenKind,
|
|
final TokenKindParam tokenKind,
|
|
final TokenServiceParam tokenService,
|
|
final TokenServiceParam tokenService,
|
|
final NoRedirectParam noredirectParam,
|
|
final NoRedirectParam noredirectParam,
|
|
@@ -1335,6 +1349,14 @@ public class NamenodeWebHdfsMethods {
|
|
final String js = JsonUtil.toJsonString(diffReport);
|
|
final String js = JsonUtil.toJsonString(diffReport);
|
|
return Response.ok(js).type(MediaType.APPLICATION_JSON).build();
|
|
return Response.ok(js).type(MediaType.APPLICATION_JSON).build();
|
|
}
|
|
}
|
|
|
|
+ case GETSNAPSHOTDIFFLISTING: {
|
|
|
|
+ SnapshotDiffReportListing diffReport = cp.getSnapshotDiffReportListing(
|
|
|
|
+ fullpath, oldSnapshotName.getValue(), snapshotName.getValue(),
|
|
|
|
+ DFSUtilClient.string2Bytes(snapshotDiffStartPath.getValue()),
|
|
|
|
+ snapshotDiffIndex.getValue());
|
|
|
|
+ final String js = JsonUtil.toJsonString(diffReport);
|
|
|
|
+ return Response.ok(js).type(MediaType.APPLICATION_JSON).build();
|
|
|
|
+ }
|
|
case GETSNAPSHOTTABLEDIRECTORYLIST: {
|
|
case GETSNAPSHOTTABLEDIRECTORYLIST: {
|
|
SnapshottableDirectoryStatus[] snapshottableDirectoryList =
|
|
SnapshottableDirectoryStatus[] snapshottableDirectoryList =
|
|
cp.getSnapshottableDirListing();
|
|
cp.getSnapshottableDirListing();
|