NTT TECH CONFERENCE#3 2018.08.31 20
RENATのアーキテクチャー
COMMON
VCHANNEL
ROUTER
TESTER
LOGGER
WEBAPP
JUNIPER
CISCO
GR
SAMURAI
ARBOR
IX
NETWORK
IX LOAD
RENAT
RENATの特徴
RENAT モジュール構成
マインモジュール
拡張MOD
‣ 可読性の高いシナリオーによりNW検証の自動化可能
‣ データ・ロジックが分離され、簡単に管理
‣ NW検証のフローを忠実に再現可能
‣ プラグインで簡単に新プラットホームの追加
‣ ルータ・スイッチ・テスターを簡単に操作可能
OPTIC
SWITCH
CALIENT
BREAKING
POINT
21.
NTT TECH CONFERENCE#3 2018.08.31 21
色々レベルでプログラミング可能
# command 1
show version | no-more
# command 2
show system user
show interface xe-0/0/0
# sample commands with jinja2 template
show interface {{ LOCAL['extra']['line1'] }}
show interface {{ LOCAL['extra']['line2'] }}
{% for i in range(2) %}
show interface et-0/0/{{ i }}
{% endfor %}
Lab Setup
[Documentation] initial setup for all test cases
Create Directory tmp
Change Mod tmp 0775
Create Directory ${WORKING_FOLDER}
Change Mod ${RESULT_FOLDER} 0755
Set Library Search Order Common
① コマンドリスト(JINJA2 TEMPLATE)
② ROBOT キーワドの組みあわせ・拡張
③ PYTHON LIBRARY : 高度なキワードの実装
Number Of OSPF Neighbor
Number Of BGP Neighbor
Create Best Path Select Data
22.
NTT TECH CONFERENCE#3 2018.08.31 22
プログラミング言語の複雑を隠す
defを追加するだけで、新しいキワードを作れる
def get_version(self):
""" return router version information
"""
result = self._vchannel.cmd('show version')
return result
ファイル名を用い簡易な継承を実現
cisco.py
cisco_asr.py
②get_version()
→
①get_user()
③get_version()→
juniper.py ④get_version()→
呼び
キーワード
デバイス
タイプ
実行された
関数
Get Version juniper ④
Get Version cisco_asr ③
Get Version cisco ②
Get User cisco_asr ①
Get User cisco ①
ソースコード