|
@@ -3606,6 +3606,9 @@ public abstract class FSEditLogOp {
|
|
String snapshotRoot;
|
|
String snapshotRoot;
|
|
String snapshotOldName;
|
|
String snapshotOldName;
|
|
String snapshotNewName;
|
|
String snapshotNewName;
|
|
|
|
+ /** Modification time of the edit set by Time.now(). */
|
|
|
|
+ long mtime;
|
|
|
|
+
|
|
|
|
|
|
RenameSnapshotOp() {
|
|
RenameSnapshotOp() {
|
|
super(OP_RENAME_SNAPSHOT);
|
|
super(OP_RENAME_SNAPSHOT);
|
|
@@ -3620,13 +3623,16 @@ public abstract class FSEditLogOp {
|
|
snapshotRoot = null;
|
|
snapshotRoot = null;
|
|
snapshotOldName = null;
|
|
snapshotOldName = null;
|
|
snapshotNewName = null;
|
|
snapshotNewName = null;
|
|
|
|
+ mtime = 0L;
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
|
|
+ /* set the old name of the snapshot. */
|
|
RenameSnapshotOp setSnapshotOldName(String snapshotOldName) {
|
|
RenameSnapshotOp setSnapshotOldName(String snapshotOldName) {
|
|
this.snapshotOldName = snapshotOldName;
|
|
this.snapshotOldName = snapshotOldName;
|
|
return this;
|
|
return this;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /* set the new name of the snapshot. */
|
|
RenameSnapshotOp setSnapshotNewName(String snapshotNewName) {
|
|
RenameSnapshotOp setSnapshotNewName(String snapshotNewName) {
|
|
this.snapshotNewName = snapshotNewName;
|
|
this.snapshotNewName = snapshotNewName;
|
|
return this;
|
|
return this;
|
|
@@ -3637,11 +3643,18 @@ public abstract class FSEditLogOp {
|
|
return this;
|
|
return this;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /* The snapshot rename time set by Time.now(). */
|
|
|
|
+ RenameSnapshotOp setSnapshotMTime(long mTime) {
|
|
|
|
+ this.mtime = mTime;
|
|
|
|
+ return this;
|
|
|
|
+ }
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
void readFields(DataInputStream in, int logVersion) throws IOException {
|
|
void readFields(DataInputStream in, int logVersion) throws IOException {
|
|
snapshotRoot = FSImageSerialization.readString(in);
|
|
snapshotRoot = FSImageSerialization.readString(in);
|
|
snapshotOldName = FSImageSerialization.readString(in);
|
|
snapshotOldName = FSImageSerialization.readString(in);
|
|
snapshotNewName = FSImageSerialization.readString(in);
|
|
snapshotNewName = FSImageSerialization.readString(in);
|
|
|
|
+ mtime = FSImageSerialization.readLong(in);
|
|
|
|
|
|
// read RPC ids if necessary
|
|
// read RPC ids if necessary
|
|
readRpcIds(in, logVersion);
|
|
readRpcIds(in, logVersion);
|
|
@@ -3652,6 +3665,7 @@ public abstract class FSEditLogOp {
|
|
FSImageSerialization.writeString(snapshotRoot, out);
|
|
FSImageSerialization.writeString(snapshotRoot, out);
|
|
FSImageSerialization.writeString(snapshotOldName, out);
|
|
FSImageSerialization.writeString(snapshotOldName, out);
|
|
FSImageSerialization.writeString(snapshotNewName, out);
|
|
FSImageSerialization.writeString(snapshotNewName, out);
|
|
|
|
+ FSImageSerialization.writeLong(mtime, out);
|
|
|
|
|
|
writeRpcIds(rpcClientId, rpcCallId, out);
|
|
writeRpcIds(rpcClientId, rpcCallId, out);
|
|
}
|
|
}
|
|
@@ -3661,6 +3675,7 @@ public abstract class FSEditLogOp {
|
|
XMLUtils.addSaxString(contentHandler, "SNAPSHOTROOT", snapshotRoot);
|
|
XMLUtils.addSaxString(contentHandler, "SNAPSHOTROOT", snapshotRoot);
|
|
XMLUtils.addSaxString(contentHandler, "SNAPSHOTOLDNAME", snapshotOldName);
|
|
XMLUtils.addSaxString(contentHandler, "SNAPSHOTOLDNAME", snapshotOldName);
|
|
XMLUtils.addSaxString(contentHandler, "SNAPSHOTNEWNAME", snapshotNewName);
|
|
XMLUtils.addSaxString(contentHandler, "SNAPSHOTNEWNAME", snapshotNewName);
|
|
|
|
+ XMLUtils.addSaxString(contentHandler, "MTIME", Long.toString(mtime));
|
|
appendRpcIdsToXml(contentHandler, rpcClientId, rpcCallId);
|
|
appendRpcIdsToXml(contentHandler, rpcClientId, rpcCallId);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -3669,6 +3684,7 @@ public abstract class FSEditLogOp {
|
|
snapshotRoot = st.getValue("SNAPSHOTROOT");
|
|
snapshotRoot = st.getValue("SNAPSHOTROOT");
|
|
snapshotOldName = st.getValue("SNAPSHOTOLDNAME");
|
|
snapshotOldName = st.getValue("SNAPSHOTOLDNAME");
|
|
snapshotNewName = st.getValue("SNAPSHOTNEWNAME");
|
|
snapshotNewName = st.getValue("SNAPSHOTNEWNAME");
|
|
|
|
+ this.mtime = Long.parseLong(st.getValue("MTIME"));
|
|
|
|
|
|
readRpcIdsFromXml(st);
|
|
readRpcIdsFromXml(st);
|
|
}
|
|
}
|
|
@@ -3681,7 +3697,9 @@ public abstract class FSEditLogOp {
|
|
.append(", snapshotOldName=")
|
|
.append(", snapshotOldName=")
|
|
.append(snapshotOldName)
|
|
.append(snapshotOldName)
|
|
.append(", snapshotNewName=")
|
|
.append(", snapshotNewName=")
|
|
- .append(snapshotNewName);
|
|
|
|
|
|
+ .append(snapshotNewName)
|
|
|
|
+ .append(", mtime=")
|
|
|
|
+ .append(mtime);
|
|
appendRpcIdsToString(builder, rpcClientId, rpcCallId);
|
|
appendRpcIdsToString(builder, rpcClientId, rpcCallId);
|
|
builder.append("]");
|
|
builder.append("]");
|
|
return builder.toString();
|
|
return builder.toString();
|