C# 6 の新機能でプロパティの初期化をシンプルに書く
C# 6 の新機能 のひとつに『自動プロパティの初期化を書けるようになった』というものがあります。従来 〜 新機能を簡単にまとめると以下の通りです。
- 従来のプロパティ実装ではコードが長くなりがち
- 自動プロパティを使うとコードは短くなるが、初期値を指定出来ない
- C# 6 の拡張を使うと、自動プロパティに初期値を指定出来るようになった
C# 6 の新機能 のひとつに『自動プロパティの初期化を書けるようになった』というものがあります。従来 〜 新機能を簡単にまとめると以下の通りです。
C# 6 の新機能 のひとつに『インデックスを指定してコレクションの初期化が出来るようになった』というものがあります。従来と比べてコードが短くなるわけではありませんが、より直感的にコレクションの初期化を書けるようになりました。
C# 6 で追加された新機能 は川俣晶さんの著作「C# 6 実践的プログラミング[入門]講座」によくまとまっています。
新機能のひとつに『直接、文字列を埋め込めるようになった』というものがあります。この新機能を使うと string.Format や「+ による文字列の連結」を多用することなく、シンプルに記述することが出来るようになります。
Cisco ACI 標準の Web 管理画面では Bridge Domain ごとに設定した Subnet 情報を一覧で見ることが出来ません。同一 Tenant 内であれば下図のように Bridge Domain 配下の Subnet をひとつひとつ展開し、アドレスを表示させる… ということも不可能ではありません。
ただし Bridge Domain の数が多くなれば「ひとつひとつ展開する」のは現実的ではありません。また、そもそも複数 Tenant の Bridge Domain / Subnet 情報を一度に表示させることは出来ません。そこで acitoolkit を使って「全 Tenant の Subnet 情報を一覧表示するスクリプト」を書いてみました。今回のスクリプトには以下のような特徴があります。
MikroTik の CCR1009 に BGP のフルルートを持たせるテストを実施してみました。対向側は GoBGP を使いました。残念ながら、結果は以下の通りです。
CCR 側が悪いのか、GoBGP 側が悪いのか、切り分けはこれからです。
VRF を設定している環境で show コマンド実行する場合、都度、VRF を指定するのは煩わしいものです。IOS や IOS-XE には実装されていないようなのですが、ASR9000 で使われている IOS-XR では「明示的に指定しなかった場合の VRF」を set default-vrf で指定しておくことが出来ます。今回はこのコマンドの動作を確認します。尚、set default-vrf は 1 セッションでのみ、有効です。例えば SSH セッションを切断して再ログインしなおすと初期状態(= set default-vrf の指定が無い状態)に戻ります。
プロセスを停止したい場合、プロセス ID を指定して kill を実行します。しかし、pkill を使えばプロセス名だけでプロセスを停止することが出来ます。今回は Ubuntu 14.04.3 環境で pkill を試します。
sudo の実行結果をリダイレクトしようとするとエラーになります。
1 2 |
|
このような場合は sudo sh -c の引数として一連のコマンドを実行します。
1 |
|
参考までに、「-c」オプションは man によると以下のように書かれています。
-c Read commands from the command_string operand instead of from the standard input. Special parameter 0 will be set from the command_name operand and the positional parameters ($1, $2, etc.) set from the remaining argument operands.
CoreLinux 環境で Open vSwitch(以下、OvS)を使えるようにビルドしてみました。手間を考慮し、スクリプト化してあります。
Tiny Core Linux はフットプリントが非常に小さい Linux ディストリビューションで、Cisco VIRL のような仮想化された検証環境内で複数インスタンスを立ち上げても軽快に動作する、という特徴があります。用途に応じて幾つかの種類があります。参考として記載したサイズは 6.3 用 ISO イメージのサイズです。
追加パッケージも数多く提供されているので Core をベースにパッケージを追加し、カスタマイズしていくのも簡単です。今回は Core を VIRL に登録してみます。