Closed sincerywaing closed 6 years ago
actually underjnpr.junos.facts
there are srx_cluster
, srx_cluster_id
and srx_cluster_redundancy_group
.
This is probably something that is better to have somewhere else as the use is quite niche. Either we find a good fit in the current openconfig/ietf models or we create our own.
@bewing, do you think the platform model could be a good fit for something like this?
It could definitely work -- there could be a virtual component that captured the status of the cluster in its properties, and the individual firewalls could also include cluster status information in their properties.
Property definition was left intentionally vague in order to allow capture of vendor-specific technologies. Not sure if we want to spend effort to try to come up with a standard for virtual chassis (VSS, stacking, et al) or just format each vendor's status ouputs freeform.
format each vendor's status ouputs freeform
I'd personally do that. These are propietary technologies anyway.
We can use a universal way to define a 'get_vc_status' in napalm-base and implement it in various vendor specifics. quite useful function.
@sincerywaing do you have an example of the RPC command and response needed to extract that information?
@dbarrosop
srx:
show chassis cluster summary
<rpc-reply xmlns:junos="http://xml.juniper.net/junos/12.3X48/junos">
<chassis-cluster-status>
<cluster-id>1</cluster-id>
<redundancy-group>
<cluster-id>1</cluster-id>
<redundancy-group-id>0</redundancy-group-id>
<redundancy-group-failover-count>1</redundancy-group-failover-count>
<device-stats>
<device-name>node0</device-name>
<device-priority>254</device-priority>
<redundancy-group-status>primary</redundancy-group-status>
<preempt>no</preempt>
<failover-mode>no</failover-mode>
<monitor-failures>None</monitor-failures>
<device-name>node1</device-name>
<device-priority>1</device-priority>
<redundancy-group-status>secondary</redundancy-group-status>
<preempt>no</preempt>
<failover-mode>no</failover-mode>
<monitor-failures>None</monitor-failures>
</device-stats>
</redundancy-group>
<redundancy-group>
<cluster-id>1</cluster-id>
<redundancy-group-id>1</redundancy-group-id>
<redundancy-group-failover-count>1</redundancy-group-failover-count>
<device-stats>
<device-name>node0</device-name>
<device-priority>254</device-priority>
<redundancy-group-status>primary</redundancy-group-status>
<preempt>no</preempt>
<failover-mode>no</failover-mode>
<monitor-failures>None</monitor-failures>
<device-name>node1</device-name>
<device-priority>1</device-priority>
<redundancy-group-status>secondary</redundancy-group-status>
<preempt>no</preempt>
<failover-mode>no</failover-mode>
<monitor-failures>None</monitor-failures>
</device-stats>
</redundancy-group>
</chassis-cluster-status>
<cli>
<banner>{primary:node0}</banner>
</cli>
</rpc-reply>
ex3300:
show virtual-chassis status
<rpc-reply xmlns:junos="http://xml.juniper.net/junos/12.3R5/junos">
<virtual-chassis-information>
<preprovisioned-virtual-chassis-information>
<virtual-chassis-id>aaaa.bbbb.cccc</virtual-chassis-id>
<virtual-chassis-mode>Enabled</virtual-chassis-mode>
</preprovisioned-virtual-chassis-information>
<member-list junos:style="single-slot">
<member>
<member-status>Prsnt</member-status>
<member-id>0</member-id>
<fpc-slot>(FPC 0)</fpc-slot>
<member-serial-number>RS34241112</member-serial-number>
<member-model>ex3300-48p</member-model>
<member-priority>129</member-priority>
<member-mixed-mode>NA</member-mixed-mode>
<member-role>Backup</member-role>
<neighbor-list>
<neighbor>
<neighbor-id>1</neighbor-id>
<neighbor-interface>vcp-255/1/2</neighbor-interface>
</neighbor>
<neighbor>
<neighbor-id>4</neighbor-id>
<neighbor-interface>vcp-255/1/3</neighbor-interface>
</neighbor>
</neighbor-list>
</member>
<member>
<member-status>Prsnt</member-status>
<member-id>1</member-id>
<fpc-slot>(FPC 1)</fpc-slot>
<member-serial-number>RS342413231</member-serial-number>
<member-model>ex3300-48p</member-model>
<member-priority>129</member-priority>
<member-mixed-mode>NA</member-mixed-mode>
<member-role>Master*</member-role>
<neighbor-list>
<neighbor>
<neighbor-id>2</neighbor-id>
<neighbor-interface>vcp-255/1/2</neighbor-interface>
</neighbor>
<neighbor>
<neighbor-id>0</neighbor-id>
<neighbor-interface>vcp-255/1/3</neighbor-interface>
</neighbor>
</neighbor-list>
</member>
<member>
<member-status>Prsnt</member-status>
<member-id>2</member-id>
<fpc-slot>(FPC 2)</fpc-slot>
<member-serial-number>RS3424133212</member-serial-number>
<member-model>ex3300-48p</member-model>
<member-priority>0</member-priority>
<member-mixed-mode>NA</member-mixed-mode>
<member-role>Linecard</member-role>
<neighbor-list>
<neighbor>
<neighbor-id>3</neighbor-id>
<neighbor-interface>vcp-255/1/2</neighbor-interface>
</neighbor>
<neighbor>
<neighbor-id>1</neighbor-id>
<neighbor-interface>vcp-255/1/3</neighbor-interface>
</neighbor>
</neighbor-list>
</member>
<member>
<member-status>Prsnt</member-status>
<member-id>3</member-id>
<fpc-slot>(FPC 3)</fpc-slot>
<member-serial-number>RS342416676</member-serial-number>
<member-model>ex3300-48p</member-model>
<member-priority>0</member-priority>
<member-mixed-mode>NA</member-mixed-mode>
<member-role>Linecard</member-role>
<neighbor-list>
<neighbor>
<neighbor-id>5</neighbor-id>
<neighbor-interface>vcp-255/1/2</neighbor-interface>
</neighbor>
<neighbor>
<neighbor-id>2</neighbor-id>
<neighbor-interface>vcp-255/1/3</neighbor-interface>
</neighbor>
</neighbor-list>
</member>
<member>
<member-status>Prsnt</member-status>
<member-id>4</member-id>
<fpc-slot>(FPC 4)</fpc-slot>
<member-serial-number>RS34241976</member-serial-number>
<member-model>ex3300-48p</member-model>
<member-priority>0</member-priority>
<member-mixed-mode>NA</member-mixed-mode>
<member-role>Linecard</member-role>
<neighbor-list>
<neighbor>
<neighbor-id>5</neighbor-id>
<neighbor-interface>vcp-255/1/2</neighbor-interface>
</neighbor>
<neighbor>
<neighbor-id>0</neighbor-id>
<neighbor-interface>vcp-255/1/3</neighbor-interface>
</neighbor>
</neighbor-list>
</member>
<member>
<member-status>Prsnt</member-status>
<member-id>5</member-id>
<fpc-slot>(FPC 5)</fpc-slot>
<member-serial-number>RS342419087</member-serial-number>
<member-model>ex3300-48p</member-model>
<member-priority>0</member-priority>
<member-mixed-mode>NA</member-mixed-mode>
<member-role>Linecard</member-role>
<neighbor-list>
<neighbor>
<neighbor-id>4</neighbor-id>
<neighbor-interface>vcp-255/1/2</neighbor-interface>
</neighbor>
<neighbor>
<neighbor-id>3</neighbor-id>
<neighbor-interface>vcp-255/1/3</neighbor-interface>
</neighbor>
</neighbor-list>
</member>
</member-list>
</virtual-chassis-information>
<cli>
<banner>{master:1}</banner>
</cli>
</rpc-reply>
What's the RPC command? You can see it with show whatever | display xml rpc
or something like that. Will look into adding support for this with napalm-yang in a couple of weeks.
<rpc-reply xmlns:junos="http://xml.juniper.net/junos/12.3X48/junos">
<rpc>
<get-chassis-cluster-status>
</get-chassis-cluster-status>
</rpc>
<cli>
<banner>{primary:node0}</banner>
</cli>
</rpc-reply>
<rpc-reply xmlns:junos="http://xml.juniper.net/junos/12.3R5/junos">
<rpc>
<get-virtual-chassis-information>
</get-virtual-chassis-information>
</rpc>
<cli>
<banner>{master:1}</banner>
</cli>
</rpc-reply>
Hi @sincerywaing - I am afraid i need to close this, as we no longer accept PRs and issues to this repository. After the reunification (see https://napalm-automation.net/reunification/) you can submit a PR or discuss this further under the main repo (https://github.com/napalm-automation/napalm). For the time being, I moved this issue to https://github.com/napalm-automation/napalm/issues/432. Thanks for understanding!
Description of Issue/Question
Can we add clustering information to srx get_facts()?
show chassis cluster summary
Did you follow the steps from https://github.com/napalm-automation/napalm#faq
[* ] Yes [ ] No
Setup
napalm-junos version
(Paste verbatim output from
pip freeze | grep napalm-junos
between quotes below)JunOS version
(Paste verbatim output from
show version and haiku
between quotes below)Steps to Reproduce the Issue
N/A
Error Traceback
(Paste the complete traceback of the exception between quotes below)