TWSNMP FC:ポーリング処理の移植
今朝も猫に4時に起こされました。4時に起きると夜8時には眠さで頭がいたくなります。猫は、作業量が多いのを察知しているようです。
今朝はポーリングの処理を移植しています。コードが膨大にあるのでまだ半分も終わっていません。なので今日はgitのコミットはなしです。
移植作業でコード見直していると修正したいところがいろいろでてきます。ポーリングの共通処理を整理したり、grokのデータやinfluxdbとの連携の処理をデータストアのパッケージにまとめたり、何となく良くなっている気がします。でも、後から見直すと、また整理したくなるのかもしれませんが。
内部で使うデータを実行ファイルに組み込む
昨日、作ったMIBデータベースで使ったテクニックを書いて起きます。WEB画面のためのHTMLやJavaScriptはstatik
を使って実行ファイルに組み込でいますが、MIBデータベース
.1.3
.iso.org
.1.3.6
.iso.org.dod
.1.3.6.1
.iso.org.dod.internet
.1.3.6.1.1
.iso.org.dod.internet.directory
.1.3.6.1.2
.iso.org.dod.internet.mgmt
.1.3.6.1.2.1
.iso.org.dod.internet.mgmt.mib-2
やMACアドレスの
F4-BD-9E (hex) Cisco Systems, Inc
F4BD9E (base 16) Cisco Systems, Inc
80 West Tasman Drive
San Jose CA 94568
US
のようなファイルもstaikを使って実行ファイルに組み込むことにしました。
confフォルダのファイルを入れて、
Makefileに
statik/statik.go: spa/dist/index.html conf/mib.txt
cp -a conf spa/dist
statik -src spa/dist
を追加しました。プログラム内で使う時は、
statikFS, err := fs.New()
if err != nil {
t.Fatal(err)
}
r, err := statikFS.Open("/conf/mib.txt")
if err != nil {
t.Fatal(err)
}
defer r.Close()
s, err := ioutil.ReadAll(r)
if err != nil {
t.Fatal(err)
}
mib, err := mibdb.NewMIBDBFromStr(string(s), "")
if err != nil {
t.Fatal(err)
}
のように使えます。他の設定ファイルを同じようにするつもりです。
明日もポーリングの移植作業になると思います。
開発のための諸経費(機材、Appleの開発者、サーバー運用)に利用します。 ソフトウェアのマニュアルをnoteの記事で提供しています。 サポートによりnoteの運営にも貢献できるのでよろしくお願います。