diff src/command.rs @ 41:63e77a9de3ab

...
author AnaTofuZ <anatofuz@gmail.com>
date Sun, 22 Nov 2020 16:48:05 +0900
parents d3055f6c6fb7
children 2787ada7650b
line wrap: on
line diff
--- a/src/command.rs	Sun Nov 22 15:57:31 2020 +0900
+++ b/src/command.rs	Sun Nov 22 16:48:05 2020 +0900
@@ -23,32 +23,36 @@
     Ok(())
 }
 
-pub fn define(user: &user::User, vm_name: &str) {
-    let vm_name = generate_vm_name(&user.name, &vm_name);
-    let builder = xml::Builder::new(&user.name, &vm_name).finalize();
+pub fn define(user_detail: &user::UserDetail, vm_name: &str) {
+    let vm_name = generate_vm_name(&user_detail.user.name, &vm_name);
+    let builder = xml::Builder::new(&user_detail, &vm_name).finalize();
     if let Ok(xml_path) = builder.generate() {
         virsh::command_require_vm_name(&xml_path, "define")
     }
 }
 
-pub fn define_from_template(user: &user::User, vm_name: &str, template: &str) {
-    let vm_name = generate_vm_name(&user.name, &vm_name);
+pub fn define_from_template(user_detail: &user::UserDetail, vm_name: &str, template: &str) {
+    let vm_name = generate_vm_name(&user_detail.user.name, &vm_name);
     println!("{}", vm_name);
-    let template_path = match virsh::get_template_path(template) {
+    let backing_path = match virsh::get_backing_path(template) {
         Some(path) => path,
         None => {
             println!("not found {}", template);
             return;
         }
     };
-    let builder = xml::Builder::new(&user.name, &vm_name)
-        .backing(&template_path)
+    let builder = xml::Builder::new(&user_detail, &vm_name)
+        .backing(&backing_path)
         .finalize();
     let xml_path = match builder.generate() {
-        Ok(xml_path) => xml_path, 
-        Err(e) => { println!("{}", e); return;}
+        Ok(xml_path) => xml_path,
+        Err(e) => {
+            println!("failed generate xml: {}", e);
+            return;
+        }
     };
-    virsh::command_require_vm_name(&xml_path, "define")
+    virsh::command_require_vm_name(&xml_path, "define");
+    virsh::generate_qemu_from_template(&vm_name, "hoge");
 }
 
 pub fn start(user_name: &str, vm_name: &str) {