パルカワ2

最近はFlutterをやっています

Urume/mezasiを読んだ。

@fujiwaraさんが作っているurume/mezasiがどうなってるのか知りたかったので読んだ。libvirtとdnsmasq、知らなかったものを知れたので勉強になった。

https://github.com/fujiwara/Urume

ざっくり読んだメモ

app.psgi

Urume::Web
Urume::Notify
というのがあるのかー
そこにアクセスするクライアントが、bin/mezasi

Urume::Web

Urume::Storageを使って、Redisにデータを送ってvmを立ち上げたりするhttpのインターフェイスがここかー

Urume::Notify

bin/mezasiでwaitオプションをつけるとここで提供しているAPIが叩かれるのかー
例えば、vmを立ち上がるのを待って、それが終わったらレスポンスを返すみたいな感じ

Urume::Storage

Redisにデータを保存したりpublishしてるのかー
dnsmasq.conf作ったりしてる。
dnsmasq_events_ch, host_events_chなどにpublishしたりしてる。

dnsmasqagent

Urume::DnsmasqAgentをrunしてる

Urume::DnsmasqAgent

subscribeしていてdnsmasq_events_chにpublishされたら、設定ファイルを書き換えてrestartしてるのかー

hostagent

Urume::HostAgentをrunしておりますなー

Urume::HostAgent

host_events_chをsubscribeしていて、publishされたらcommandによってvirshを実行する。

standalone_server

Proclet使って、よしなに立ち上げてる。

まとめ

読みやすいのでオススメです。