comparison src/command.rs @ 41:63e77a9de3ab

...
author AnaTofuZ <anatofuz@gmail.com>
date Sun, 22 Nov 2020 16:48:05 +0900
parents d3055f6c6fb7
children 2787ada7650b
comparison
equal deleted inserted replaced
40:d3055f6c6fb7 41:63e77a9de3ab
21 } 21 }
22 22
23 Ok(()) 23 Ok(())
24 } 24 }
25 25
26 pub fn define(user: &user::User, vm_name: &str) { 26 pub fn define(user_detail: &user::UserDetail, vm_name: &str) {
27 let vm_name = generate_vm_name(&user.name, &vm_name); 27 let vm_name = generate_vm_name(&user_detail.user.name, &vm_name);
28 let builder = xml::Builder::new(&user.name, &vm_name).finalize(); 28 let builder = xml::Builder::new(&user_detail, &vm_name).finalize();
29 if let Ok(xml_path) = builder.generate() { 29 if let Ok(xml_path) = builder.generate() {
30 virsh::command_require_vm_name(&xml_path, "define") 30 virsh::command_require_vm_name(&xml_path, "define")
31 } 31 }
32 } 32 }
33 33
34 pub fn define_from_template(user: &user::User, vm_name: &str, template: &str) { 34 pub fn define_from_template(user_detail: &user::UserDetail, vm_name: &str, template: &str) {
35 let vm_name = generate_vm_name(&user.name, &vm_name); 35 let vm_name = generate_vm_name(&user_detail.user.name, &vm_name);
36 println!("{}", vm_name); 36 println!("{}", vm_name);
37 let template_path = match virsh::get_template_path(template) { 37 let backing_path = match virsh::get_backing_path(template) {
38 Some(path) => path, 38 Some(path) => path,
39 None => { 39 None => {
40 println!("not found {}", template); 40 println!("not found {}", template);
41 return; 41 return;
42 } 42 }
43 }; 43 };
44 let builder = xml::Builder::new(&user.name, &vm_name) 44 let builder = xml::Builder::new(&user_detail, &vm_name)
45 .backing(&template_path) 45 .backing(&backing_path)
46 .finalize(); 46 .finalize();
47 let xml_path = match builder.generate() { 47 let xml_path = match builder.generate() {
48 Ok(xml_path) => xml_path, 48 Ok(xml_path) => xml_path,
49 Err(e) => { println!("{}", e); return;} 49 Err(e) => {
50 println!("failed generate xml: {}", e);
51 return;
52 }
50 }; 53 };
51 virsh::command_require_vm_name(&xml_path, "define") 54 virsh::command_require_vm_name(&xml_path, "define");
55 virsh::generate_qemu_from_template(&vm_name, "hoge");
52 } 56 }
53 57
54 pub fn start(user_name: &str, vm_name: &str) { 58 pub fn start(user_name: &str, vm_name: &str) {
55 virsh::command_require_vm_name(&get_vm_name(user_name, vm_name), "start"); 59 virsh::command_require_vm_name(&get_vm_name(user_name, vm_name), "start");
56 } 60 }