Add safe file-root apply
This commit is contained in:
parent
bab13cc0a1
commit
5c91635ea2
8 changed files with 394 additions and 14 deletions
|
|
@ -86,6 +86,11 @@ pub enum ControlRequest {
|
|||
name: String,
|
||||
bearer_secret: Option<String>,
|
||||
},
|
||||
CasRootApply {
|
||||
source: String,
|
||||
target: PathBuf,
|
||||
dry_run: bool,
|
||||
},
|
||||
CasConflictRecord {
|
||||
root: String,
|
||||
path: String,
|
||||
|
|
@ -403,6 +408,15 @@ pub enum ControlResponse {
|
|||
reason: String,
|
||||
note: String,
|
||||
},
|
||||
CasRootApplied {
|
||||
source: String,
|
||||
target: PathBuf,
|
||||
files_written: usize,
|
||||
dirs_created: usize,
|
||||
conflicts: Vec<FileConflict>,
|
||||
dry_run: bool,
|
||||
note: String,
|
||||
},
|
||||
CasConflictRecorded {
|
||||
conflict: FileConflict,
|
||||
},
|
||||
|
|
@ -1444,6 +1458,30 @@ mod tests {
|
|||
response
|
||||
);
|
||||
|
||||
let request = ControlRequest::CasRootApply {
|
||||
source: "remote-node-peer-notes".to_owned(),
|
||||
target: PathBuf::from("/tmp/notes"),
|
||||
dry_run: true,
|
||||
};
|
||||
assert_eq!(
|
||||
decode_request(&encode_request(&request).expect("encode")).expect("decode"),
|
||||
request
|
||||
);
|
||||
|
||||
let response = ControlResponse::CasRootApplied {
|
||||
source: "remote-node-peer-notes".to_owned(),
|
||||
target: PathBuf::from("/tmp/notes"),
|
||||
files_written: 1,
|
||||
dirs_created: 1,
|
||||
conflicts: Vec::new(),
|
||||
dry_run: true,
|
||||
note: "safe apply".to_owned(),
|
||||
};
|
||||
assert_eq!(
|
||||
decode_response(&encode_response(&response).expect("encode")).expect("decode"),
|
||||
response
|
||||
);
|
||||
|
||||
let request = ControlRequest::CasConflictResolve {
|
||||
conflict_id: "file-conflict:notes:1".to_owned(),
|
||||
resolution: "keep-local".to_owned(),
|
||||
|
|
|
|||
Loading…
Reference in a new issue