見出し画像

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フォルダのファイルを入れて、

画像1

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の運営にも貢献できるのでよろしくお願います。