いろいろあった昨日の続き。OSの課題は、KVM / virsh でやってもらうんですが...
virsh の権限の制御が大雑把すぎる
問題があって、結局、virsh のwrapper を書いたんですが、シス管の一人が
Rust で書き直す
という技を。「え、それ誰がメンテするの」ってことなんですが、
KVMで UEFI で起動するには、vvram の項目をKVMのVM定義xmlに追加する必要がある
ってことなので、泣きながら書き直す羽目に。こんな感じ。
let elem = String::from_utf8_lossy(e.escaped()).replace("ie-virsh-template",&self.vm_name) ;
writer.write_event(Event::Text(BytesText::from_plain_str(&*elem))).unwrap();
いや、単に xml の一部の文字列を置き換えてるだけですけどね。
とりあえず、&str と &[u8] と String を ad-hoc に変換しながら書く必要があるのはわかりました。
quick-xml がそういう書き方らしい。いや、Rust ってのはそんなもん。OptionとResultをnestさせたり。
僕の Rust の評価はそんなわけでかなり低いです。
XMLのparseとか無駄なことするな
単純な文字列置換でやれ
とは思いました。汎用じゃないんだから。
まぁ、一応、動いたっぽい。KVMは image を共有すると
error: internal error: child reported (status=125): Requested operation is not valid:
Setting different DAC user or group on /mnt/ie-virsh/teacher/kono/kono-02.qcow2 which is already in use
と文句をいうらしい。ついでに、
OSの課題用の Fedora OSの install を ie-virsh でできるようにする
ってのをやりたいんだが、少し工夫(cdromの接続とBoot順)がいるので、しばらく放置か?
No comments:
Post a Comment