Mercurial > hg > Members > anatofuz > ie-virsh
comparison src/command.rs @ 28:1c3b6b6ee0b1
add show template
author | AnaTofuZ <anatofuz@gmail.com> |
---|---|
date | Sat, 21 Nov 2020 16:37:58 +0900 |
parents | afec42bdd5ab |
children | f4b655fae2a3 |
comparison
equal
deleted
inserted
replaced
27:c0f0181ee91a | 28:1c3b6b6ee0b1 |
---|---|
1 use super::user; | 1 use super::user; |
2 use super::virsh; | 2 use super::virsh; |
3 use super::xml; | 3 use super::xml; |
4 | |
5 use std::{fs, io}; | |
6 | |
7 const TEMPLATE_DIR: &str = "/ie-ryukyu/kvm/images/templates/"; | |
8 const TEMPLATE_SUFFIX: &str = "template-"; | |
9 const TEMPLATE_FILE_EXTENSION: &str = ".qcow2"; | |
4 | 10 |
5 pub fn list(user_name: &str) { | 11 pub fn list(user_name: &str) { |
6 let (ldump_msg, vm_list_strs) = virsh::get_vm_list(user_name); | 12 let (ldump_msg, vm_list_strs) = virsh::get_vm_list(user_name); |
7 println!("{}", ldump_msg.info_msg); | 13 println!("{}", ldump_msg.info_msg); |
8 println!("{}", ldump_msg.border_line); | 14 println!("{}", ldump_msg.border_line); |
9 for vm_info in vm_list_strs { | 15 for vm_info in vm_list_strs { |
10 println!("{}", vm_info); | 16 println!("{}", vm_info); |
11 } | 17 } |
18 } | |
19 | |
20 pub fn templates() -> io::Result<()> { | |
21 let mut entries = fs::read_dir(TEMPLATE_DIR)? | |
22 .map(|res| res.map(|e| e.path())) | |
23 .collect::<Result<Vec<_>, io::Error>>()?; | |
24 | |
25 entries.sort(); | |
26 | |
27 for entry in entries { | |
28 let template_vm = entry | |
29 .display() | |
30 .to_string() | |
31 .replace(TEMPLATE_DIR, "") | |
32 .replace(TEMPLATE_SUFFIX, "") | |
33 .replace(TEMPLATE_FILE_EXTENSION, ""); | |
34 println!("{}", template_vm); | |
35 } | |
36 | |
37 Ok(()) | |
12 } | 38 } |
13 | 39 |
14 pub fn define(user: &user::User, vm_name: String) { | 40 pub fn define(user: &user::User, vm_name: String) { |
15 let vm_name = generate_vm_name(&user.name, &vm_name); | 41 let vm_name = generate_vm_name(&user.name, &vm_name); |
16 let vm_arg = xml::GenerateVMArg::new(&user.name, &vm_name, false); | 42 let vm_arg = xml::GenerateVMArg::new(&user.name, &vm_name, false); |