はじめに
NSOで show running-config..等でデバイスコンフィグを確認する際、display service-metadata を付けてサービスメタデータも一緒に確認することができます。本記事では NSO CLI (C-sytle) のデフォルトフォーマットでの Presence container 配下コンフィグのサービスメタデータの表示について説明します。
Demo
以下のような Presence container "svc" のモデルがあります。
container svc {
presence
list clist {
key clist-name;
.....
leaf abcd {
type string {
length "0 .. 255";
}
}
leaf efgh {
type string {
length "0 .. 255";
}
}
leaf ijkl {
type string {
length "0 .. 255";
}
}
show running-config..でコンフィグを表示します。
admin@ncs# show running-config devices device ce0 config svc
devices device ce0
config
svc xxxxx
xxxxxx
!
svc abcd ***
svc efgh ***
svc ijkl ***
svc ...
......省略
!
同じコンフィグをサービスメタデータと一緒に表示します。
admin@ncs# show running-config devices device ce0 config svc | display service-meta-data
devices device ce0
config
.....
! Refcount: 1 (/devices/device{ce0}/config/svc)
! Backpointer: [ /ncs:services/myservice:[name='ce0'] ] (/devices/device{ce0}/config/svc)
svc abcd ****
! Refcount: 1 (/devices/device{ce0}/config/svc)
! Backpointer: [ /ncs:services/myservice:[name='ce0'] ] (/devices/device{ce0}/config/svc)
svc efgh ****
! Refcount: 1 (/devices/device{ce0}/config/svc)
! Backpointer: [ /ncs:services/myservice:[name='ce0'] ] (/devices/device{ce0}/config/svc)
svc ijkl ****
省略
上記デバイスコンフィグにはノード毎に backpointer や refcount が表示されていますが、これらの情報は全て親ノードである svc に対してのメタデータです。C-style の CLI では、Presence-container 配下のサブコンテナを表示する際、1行に短縮しP-container から続く形式で親ノード(svc)と子ノード (abcd,efgh,ijkl) を表示します。
<'parent P-container' 'child' 'value'>の形式に短縮
svc abcd ***
svc efgh ***
svc ijkl ***
同様に service-meta-data を表示する際も、下記ルールに従って backpointer や refcount も表示されます。
P-container のコンフィグをサービスメタデータと一緒に表示する際のルール
1. 子ノードに対する refcount 情報があれば表示
2. 子ノードに対する backpointer 情報があれば表示
3. 親ノードに対する refcount 情報があれば表示
4. 親ノードにに対する backpointer 情報があれば表示
! Refcount: 1 (/devices/device{ce0}/config/svc)
! Backpointer: [ /ncs:services/myservice:[tf_node:name='ce0'] ] (/devices/device{ce0}/config/svc)
svc abcd ****
refcount や backpointer の後ろにある()で囲ったキーパスは、どのノードに対してのメタデータであるかを示しており、上記では、svcを指しています。
上記から読み取れる情報は、
1. 子ノードであるabcdには refcount はない
2. 子ノードであるabcdには backpointer はない
3. refcount 1は親である svc に対するものであることが()内のキーパスからわかる
4. backpointer は一つあるが、それに続く()内のキーパスから、svc に対するものとわかる
子ノードにもメタデータがある例
! Refcount: 1
! Backpointer: [ /ncs:services/myservice:[name='ce0'] ]
! Refcount: 1 (/devices/device{ce0}/config/svc)
! Backpointer: [ /ncs:services/myservice:[name='ce0'] ] (/devices/device{ce0}/config/svc)
svc opqr xxxx
1. 子ノード opqr に対し refcount が1ある
2. 子ノード opqr に対し backpointer が1あり、サービスの情報が表示される
3. 親ノード svc 対し refcount が1ある。()に keypath が表示されどのノードに対するものかわかる
4. 親ノード svc に対し backpointer が1ある。サービスの情報と、どのノードに対するものか()内の keypath が示す