pax_global_header00006660000000000000000000000064147536111240014516gustar00rootroot0000000000000052 comment=aa30d61411acd98d943f1e0da1a079fb5124ba6b py-junos-eznc-2.7.3/000077500000000000000000000000001475361112400142505ustar00rootroot00000000000000py-junos-eznc-2.7.3/.coveragerc000066400000000000000000000001431475361112400163670ustar00rootroot00000000000000[run] omit = lib/jnpr/junos/cfg/* lib/jnpr/junos/_version.py [report] show_missing = True py-junos-eznc-2.7.3/.dockerignore000066400000000000000000000002211475361112400167170ustar00rootroot00000000000000/docs /tests /vagrant /static INSTALL* COPYRIGHT LICENSE *.md *.txt !requirements.txt .coveragerc .gitignore .travis.yml MANIFEST.in env-setup.shpy-junos-eznc-2.7.3/.gitattributes000066400000000000000000000000501475361112400171360ustar00rootroot00000000000000lib/jnpr/junos/_version.py export-subst py-junos-eznc-2.7.3/.github/000077500000000000000000000000001475361112400156105ustar00rootroot00000000000000py-junos-eznc-2.7.3/.github/workflows/000077500000000000000000000000001475361112400176455ustar00rootroot00000000000000py-junos-eznc-2.7.3/.github/workflows/pylint.yml000066400000000000000000000021311475361112400217040ustar00rootroot00000000000000name: Pylint on: push: branches: [ master ] pull_request: branches: [ master ] jobs: build: runs-on: ${{ matrix.os }} strategy: matrix: os: [ ubuntu-latest, windows-latest ] python-version: [ 3.9, '3.10', 3.11, 3.12 ] exclude: - os: windows-latest python-version: 3.9 steps: - uses: actions/checkout@v2 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v2 with: python-version: ${{ matrix.python-version }} - name: Install dependencies run: | python -m pip install --upgrade pip pip install pylint pip install -r requirements.txt pip install -r development.txt pip install ntc_templates==1.4.1 pip install textfsm==0.4.1 pip install . - name: Run black tool run: | pip install -U black; black --check --diff --exclude="docs|build|tests|samples" . - name: Run unit tests run: | nose2 --with-coverage -vvv tests.unit py-junos-eznc-2.7.3/.gitignore000066400000000000000000000010721475361112400162400ustar00rootroot00000000000000*.py[cod] # C extensions *.so # Packages *.egg *.egg-info dist build README eggs parts var sdist develop-eggs .installed.cfg lib64 env .venv # Documentation docs/_build # Installer logs pip-log.txt # # Unit test / coverage reports .coverage .tox nosetests.xml tests/unit/cover # Translations *.mo # Mr Developer .mr.developer.cfg .project .pydevproject MANIFEST # Testing .tox foo_* testfile # Vagrant .vagrant vagrant_ansible* # Chef vagrant/chef # Puppet vagrant/puppet/*.sh # Window File Explorer desktop.ini # Mac OS X Finder .DS_Store # PyCharm .idea py-junos-eznc-2.7.3/COPYRIGHT000066400000000000000000000015441475361112400155470ustar00rootroot00000000000000 Copyright (c) 1999-2021, Juniper Networks Inc. 2013, Jeremy Schulman All rights reserved. License: Apache 2.0 THIS SOFTWARE IS PROVIDED BY Juniper Networks Inc. ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Juniper Networks Inc. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. py-junos-eznc-2.7.3/DOCKER-EXAMPLES.md000066400000000000000000000040551475361112400167610ustar00rootroot00000000000000# Examples of using the Docker image ## To run interactive PyEZ (aka Junos power shell): `docker run -it juniper/pyez python` ``` $ docker run -it juniper/pyez python Python 2.7.12 (default, Jun 29 2016, 08:57:23) [GCC 5.3.0] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> from jnpr.junos import Device >>> import sys >>> dev = Device('vmx', user='user',passwd='pass') >>> dev.open() >>> print dev.facts {'2RE': False, 'model': 'VMX'} >>> quit() $ ``` ## As an executable package: `docker run -it -v /some/dir:/scripts juniper/pyez python some_script.py options arguments` ``` $ cd fetcher/ $ docker run -it -v $PWD:/scripts juniper/pyez python fetcher.py Enter filename: hosts.csv Username: user Password: ==================================================================================================== Inventory Report ---------------------------------------------------------------------------------------------------- All done. Please see errors.txt for any errors. ``` In this way, we can use the combination of Docker image + pyez script as an executable. Pretty neat huh? Oh, and in case you were wondering about the error logs (in this case exceptions are logged to a file, not just to stdout), they are written to the file and accessible from the host. ``` $ cat fetcher/errors.txt Cannot connect to device: ConnectTimeoutError(vmx.local) ``` ## As a PyEZ terminal `docker run -it juniper/pyez sh` ``` $ cd fetcher/ $ docker run -it -v $PWD:/scripts juniper/pyez /scripts # ls README.md errors.txt fetcher.py hosts.csv /scripts # python fetcher.py Enter filename: hosts.csv Username: user Password: ==================================================================================================== Inventory Report ---------------------------------------------------------------------------------------------------- All done. Please see errors.txt for any errors. ``` ## Make a bash alias to use it as an executable: ``` $ alias pyez="docker run -it --rm -v $PWD:/scripts juniper/pyez python" $ pyez some_script.py ```py-junos-eznc-2.7.3/Dockerfile000066400000000000000000000015501475361112400162430ustar00rootroot00000000000000FROM python:3.12-alpine LABEL net.juniper.description="Junos PyEZ library for Python in a lightweight container." \ net.juniper.maintainer="jnpr-community-netdev@juniper.net" WORKDIR /source ## Copy project inside the containers ADD setup.* ./ ADD versioneer.py . ADD requirements.txt . ADD lib lib ADD entrypoint.sh /usr/local/bin/. ## Install dependancies and PyEZ RUN apk add --no-cache build-base python3-dev \ libxslt-dev libxml2-dev libffi-dev openssl-dev curl \ ca-certificates py3-pip bash RUN pip install --upgrade pip \ && pip install pipdeptree \ && python3 -m pip install -r requirements.txt \ && pip install . ## Clean up and start init RUN apk del -r --purge gcc make g++ \ && rm -rf /source/* \ && chmod +x /usr/local/bin/entrypoint.sh WORKDIR /scripts VOLUME /scripts ENTRYPOINT ["/usr/local/bin/entrypoint.sh"] py-junos-eznc-2.7.3/INSTALL-FEDORA-CENTOS.md000066400000000000000000000037041475361112400176330ustar00rootroot00000000000000### Installation on stock Fedora The following are instructions for setting up a system starting from a stock system images. These instructions were tested on a 64-bit systems from https://github.com/opscode/bento, and using the _Junos PyEZ_ library version 2.1.0. Operating Systems --------------- - Fedora 25 - Fedora 24 - CentOS 7.3 - CentOS 6.8 #### Step 1: Install Python and PIP ##### For Python 2.x: ###### For Fedora: sudo yum install python-pip python-devel ###### For CentOS: sudo yum install python-devel wget https://bootstrap.pypa.io/get-pip.py -O - | sudo python ##### For Python 3.x: ###### For Fedora: sudo yum install python3-devel ###### For CentOS: (Python 3 packages for CentOS are not provided.) #### Step 1: Install packages for Junos PyEZ sudo yum install libxml2-devel libxslt-devel gcc openssl-devel libffi-devel redhat-rpm-config #### Step 2: Install Junos PyEZ ##### For Python 2.x: sudo pip install junos-eznc ##### For Python 3.x: sudo pip3 install junos-eznc #### Step 3: Verify Once you've completed the above step, you should be able to create a `Device` instance, connect to a Junos system, and display the "facts", as illustrated in the README.md file. Enjoy! #### Installing from GitHub Development code can be installed directly from GitHub based on any branch, commit, or tag. ***Steps 1 -3 are still required.*** #### Alternate Step 4: Install Junos PyEZ from GitHub #### Step 4a: Install Git from OS packages sudo yum install git #### Step 4b: Install Junos PyEZ from GitHub ##### For Python 2.x: sudo pip install git+https://github.com/Juniper/py-junos-eznc.git or sudo pip install git+https://github.com/Juniper/py-junos-eznc.git@ ##### For Python 3.x: sudo pip3 install git+https://github.com/Juniper/py-junos-eznc.git or sudo pip3 install git+https://github.com/Juniper/py-junos-eznc.git@ py-junos-eznc-2.7.3/INSTALL-FREEBSD.md000066400000000000000000000024201475361112400167460ustar00rootroot00000000000000### Installation on stock FreeBSD The following are instructions for setting up a system starting from a stock system image. Operating Systems --------------- - FreeBSD 10.4 - FreeBSD 11.1 FreeBSD contains py-junos-eznc in its official repositories. It could be installed from binary packages using pkg package manager or built from sources using ports collection. ## Installing from binary packages. ##### For Python 2.7 sudo pkg install py27-junos-eznc ##### For Python 3.6 sudo pkg install py36-junos-eznc ## Installing from ports collection #### For Python 2.7 sudo make -C /usr/ports/net-mgmt/py-junos-eznc install clean FLAVOR=py27 #### For Python 3.6 sudo make -C /usr/ports/net-mgmt/py-junos-eznc install clean FLAVOR=py36 ## Verify Once you've completed the above step, you should be able to create a `Device` instance, connect to a Junos system, and display the "facts", as illustrated in the README.md file. Enjoy! ## Installing from GitHub Development code can be installed directly from GitHub based on any branch, commit, or tag. ***Packages from Steps 1 and 2 are required.*** sudo pkg install git sudo pip install git+https://github.com/Juniper/py-junos-eznc.git or sudo pip install git+https://github.com/Juniper/py-junos-eznc.git@ py-junos-eznc-2.7.3/INSTALL-OSX.md000066400000000000000000000044501475361112400163520ustar00rootroot00000000000000Installation on OS X Mavericks --------------- These instructions are community provided, tested with Python 2.7.5 and using the _Junos PyEZ_ library version 0.1.2. ### Operating Systems - OS X Mavericks When you upgrade your Mac to OS X Mavericks, Apple deletes your X11 and any addons under /Library/Python/2.7/site-packages. There are plenty of posts on the Internet that describe how to restore your Python development environment, but this post will focus on the Juniper Junos PyEZ framework. Github has Mac client available that includes command line tools and a native GUI app. - https://help.github.com/articles/set-up-git. Install Homebrew - http://brew.sh. #### Installation: If you have never used Python on your Mac, you will want to install X11 & Xcode. Some Python packages have dependencies that rely on these packages. 1. Install X11 – The latest image can be found here. 2. Install Xcode - https://developer.apple.com/xcode/ - you may have to register as a developer, but there is no charge to get access to Xcode. 3. After Xcode is installed, install the command line tools. 1. Open a Terminal window. 2. Type: ```xcode-select –install``` 4. Install Git or the GitHub client. 5. Create a symbolic link so that the tools we are about to install will compile without issues. 1. Open a Terminal Window. 2. Type: ```sudo ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/libxml2/libxml/ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/libxml``` 3. NOTE: this is a single, long string. 6. Install lxml with easy_install 1. In a terminal window, type: ```sudo easy_install lxml``` 2. Easy_install works the best to install lxml 7. Download the ncclient repository from Github. 1. From a terminal window, navigate to the ncclient download directory. I save to a GitHub directory under ~/Documents. ``` cd Documents/GitHub/ncclient sudo python setup.py install ``` 8. Download the py-junos-eznc repository from Github 1. In the same terminal window, navigate to the py-junos-eznc directory ``` cd ../py-junos-eznc/ sudo python setup.py install ``` 9. Finally, I would install getpass, which is used in some scripts, using easy_install. 1. sudo easy_install getpasspy-junos-eznc-2.7.3/INSTALL-RHEL.md000066400000000000000000000022051475361112400164270ustar00rootroot00000000000000### Installation on RHEL The following are instructions for setting up a system starting from a stock system images. These instructions were tested on a 64-bit systems from https://github.com/opscode/bento, and using the _Junos PyEZ_ library version 2.6.4. Operating Systems --------------- - Red hat Enterprise Linux 8.1 (Ootpa) #### Step 1: Install Python and PIP ##### For Python 3.x: dnf install python3-pip python3-wheel #### Step 2: Install Junos PyEZ ##### For Python 3.x: sudo pip3 install junos-eznc #### Step 3: Verify Once you've completed the above step, you should be able to create a `Device` instance, connect to a Junos system, and display the "facts", as illustrated in the README.md file. Enjoy! #### Installing from GitHub Development code can be installed directly from GitHub based on any branch, commit, or tag. ***Step 1 and 3 still required.*** #### Alternate Step 4: Install Junos PyEZ from GitHub #### Step 4a: Install Git from OS packages pip3 install git #### Step 4b: Install Junos PyEZ from GitHub ##### For Python 3.x: pip3 install git+https://github.com/Juniper/py-junos-eznc.git py-junos-eznc-2.7.3/INSTALL-UBUNTU-DEBIAN.md000066400000000000000000000032261475361112400176430ustar00rootroot00000000000000### Installation on stock Ubuntu and Debian The following are instructions for setting up a system starting from stock system images. These instructions were tested on a 64-bit systems from https://github.com/opscode/bento, and using the _Junos PyEZ_ library version 2.1.0. Operating Systems --------------- - Ubuntu 16.10 - Ubuntu 16.04 - Ubuntu 15.10 - Ubuntu 15.04 - Debian 8.7 - Debian 8.6 #### Step 1: Update package list sudo apt-get update #### Step 2: Install Python and PIP ##### For Python 2.x: sudo apt-get install python-dev wget https://bootstrap.pypa.io/get-pip.py -O - | sudo python ##### For Python 3.x: sudo apt-get install python3-dev wget https://bootstrap.pypa.io/get-pip.py -O - | sudo python3 #### Step 3: Install OS packages required by Junos PyEZ and it's pre-requisite Python packages sudo apt-get install libxslt1-dev libssl-dev libffi-dev #### Step 4: Install Junos PyEZ sudo pip install junos-eznc #### Step 5: Verify Once you've completed the above step, you should be able to create a `Device` instance, connect to a Junos system, and display the "facts", as illustrated in the README.md file. Enjoy! #### Installing from GitHub Development code can be installed directly from GitHub based on any branch, commit, or tag. ***Steps 1 -3 are still required.*** #### Alternate Step 4: Install Junos PyEZ from GitHub #### Step 4a: Install Git from OS packages sudo apt-get install git #### Step 4b: Install Junos PyEZ from GitHub sudo pip install git+https://github.com/Juniper/py-junos-eznc.git or sudo pip install git+https://github.com/Juniper/py-junos-eznc.git@ py-junos-eznc-2.7.3/LICENSE000066400000000000000000000261271475361112400152650ustar00rootroot00000000000000 Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright 2015 Juniper Networks Inc. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. py-junos-eznc-2.7.3/MANIFEST.in000066400000000000000000000001561475361112400160100ustar00rootroot00000000000000include requirements.txt recursive-include lib *.yml include versioneer.py include lib/jnpr/junos/_version.py py-junos-eznc-2.7.3/README.md000066400000000000000000000262051475361112400155340ustar00rootroot00000000000000[![PyPi Version](https://img.shields.io/pypi/v/junos-eznc.svg)](https://pypi.python.org/pypi/junos-eznc/) [![Documentation Status](https://readthedocs.org/projects/junos-pyez/badge/?version=stable)](https://junos-pyez.readthedocs.io/en/latest/) [![Coverage Status](https://img.shields.io/coveralls/Juniper/py-junos-eznc.svg)](https://coveralls.io/r/Juniper/py-junos-eznc) [![UnitTest Status](https://travis-ci.org/Juniper/py-junos-eznc.svg?branch=master)](https://travis-ci.org/Juniper/py-junos-eznc) [![](https://images.microbadger.com/badges/image/juniper/pyez.svg)](https://microbadger.com/images/juniper/pyez) The repo is under active development. If you take a clone, you are getting the latest, and perhaps not entirely stable code. # DOCUMENTATION Official Documentation with examples, [here](http://www.juniper.net/techpubs/en_US/release-independent/junos-pyez/information-products/pathway-pages/index.html) API Documentation hosted by [readthedocs](http://junos-pyez.readthedocs.org) _Junos PyEZ_ wiki page, [here](http://forums.juniper.net/t5/Automation/Where-can-I-learn-more-about-Junos-PyEZ/ta-p/280496). # ABOUT ![PyEZ logo](static/PyEZ.png?raw=true "PyEZ logo") _Junos PyEZ_ is a Python library to remotely manage/automate Junos devices. The user is ***NOT*** required: (a) to be a "Software Programmer™", (b) have sophisticated knowledge of Junos, or (b) have a complex understanding of the Junos XML API. This library was built for two types of users: ## For "Non-Programmers" - Python as a Power Shell This means that "non-programmers", for example the _Network Engineer_, can use the native Python shell on their management server (laptop, tablet, phone, etc.) as their point-of-control for remotely managing Junos devices. The Python shell is an interactive environment that provides the necessary means to perform common automation tasks, such as conditional testing, for-loops, macros, and templates. These building blocks are similar enough to other "shell" environments, like Bash, to enable the non-programmer to use the Python shell as a power-tool, rather than a programming language. From the Python shell a user can manage Junos devices using native hash tables, arrays, etc. rather than device-specific Junos XML or resorting to 'screen scraping' the actual Junos CLI. ## For "Programmers" - Open and Extensible There is a growing interest and need to automate the network infrastructure into larger IT systems. To do so, traditional software programmers, DevOps, "hackers", etc. need an abstraction library of code to further those activities. _Junos PyEZ_ is designed for extensibility so that the programmer can quickly and easily add new widgets to the library in support of their specific project requirements. There is no need to "wait on the vendor" to provide new functionality. _Junos PyEZ_ is not specifically tied to any version of Junos (or Junos Evolved) or any Junos (or Junos Evolved) product family. # SUPPORT For documentation and more usage examples, please visit the _Junos PyEZ_ project page, [here](http://www.juniper.net/techpubs/en_US/release-independent/junos-pyez/information-products/pathway-pages/index.html). Issues and bugs can be opened in the repository. # FEATURES _Junos PyEZ_ is designed to provide the same capabilities as a user would have on the Junos CLI, but in an environment built for automation tasks. These capabilities include, but are not limited to: * Remote connectivity and management of Junos devices via NETCONF * Provide "facts" about the device such as software-version, serial-number, etc. * Retrieve "operational" or "run-state" information as Tables/Views * Retrieve configuration information as Tables/Views * Make configuration changes in unstructured and structured ways * Provide common utilities for tasks such as secure copy of files and software updates # NOTICES - As of release 2.7.1, _Junos PyEZ_ requires [ncclient](https://pypi.python.org/pypi/ncclient) version 0.6.15 or later. - When using the `ssh_private_key_file` argument of the Device constructor on MacOS Mojave and higher, ensure that the SSH keys are in the RSA format, and not the newer OPENSSH format. - New key: `ssh-keygen -p -m PEM -f ~/.ssh/id_rsa` - Convert an existing OPENSSH key: ``ssh-keygen -p -m PEM -f ~/.ssh/private_key` - Check if a given key is RSA or OPENSSH format: `head -n1 ~/.ssh/private_key` - RSA: `-----BEGIN RSA PRIVATE KEY-----` - OPENSSH: `-----BEGIN OPENSSH PRIVATE KEY-----` # INSTALLATION ## PIP Installation requires Python >=3.8 and associated `pip` tool pip install junos-eznc Installing from Git is also supported (OS must have git installed). To install the latest MASTER code pip install git+https://github.com/Juniper/py-junos-eznc.git -or- To install a specific version, branch, tag, etc. pip install git+https://github.com/Juniper/py-junos-eznc.git@ ## Docker ### Interactive Docker Usage Move to the local directory which contains your script(s) and run the container. Running the container in this manner will put you into an interactive Bash session. `docker run -it [ --rm ] [ --name pyez ] -v $PWD:/scripts juniper/pyez` Your local scripts will be mounted to /scripts in the container. As per PEP 668, use Virtual Env in the container (after you enter the container). The docker container has virtual environment installed in the /scripts folder. Use `source .venv/bin/activate` to activate the virtual environment. ### Microservice Usage This image can also be used as a Python "executable" with the required Python PyEZ libraries pre-installed. To use the image in this way, mount the volume which contains the Python script and pass the script name as an argument to `docker run`. Optionally, you may also pass in a `requirements.txt` file to install additional python packages via `pip`. To add OS packages (Alpine Linux), provide a file with a list of packages --one per line-- and either reference it as an env var (`$APK`) or mount it to the container `/extras/apk.txt`. To add additional Python packages (via pip), provide a `requirements.txt` file and pass it in as an env var (`$REQ`) or mount it to the container at `/extras/requirements.txt`. Usage: `docker run -it [ --rm ] -v some/dir:/scripts juniper/pyez [ myscript.py ]` Example: ```bash $ docker run -it --rm -v $PWD:/scripts juniper/pyez tmp.py tmp.py {'2RE': False, 'HOME': '/var/home/lab', 'RE0': {'mastership_state': 'master', 'status': 'OK', 'model': 'RE-SRX210H-POE', 'last_reboot_reason': '0x1:power cycle/failure', 'up_time': '36 days, 11 hours, 49 minutes, 59 seconds'}, 'RE1': None, 'RE_hw_mi': False, 'current_re': ['master', 'node', 'fwdd', 'member', 'pfem', 'backup', 're0', 'fpc0.pic0'], 'domain': None, 'fqdn': 'fw1.localdomain', 'hostname': 'fw1.localdomain', 'hostname_info': {'re0': 'fw1.localdomain'}, 'ifd_style': 'CLASSIC', 'junos_info': {'re0': {'text': '12.1X44-D40.2', 'object': junos.version_info(major=(12, 1), type=X, minor=(44, 'D', 40), build=2)}}, 'master': 'RE0', 'model': 'SRX210H-POE', 'model_info': {'re0': 'SRX210H-POE'}, 'personality': 'SRX_BRANCH', 're_info': {'default': {'0': {'mastership_state': 'master', 'status': 'OK', 'model': 'RE-SRX210H-POE', 'last_reboot_reason': '0x1:power cycle/failure'}, 'default': {'mastership_state': 'master', 'status': 'OK', 'model': 'RE-SRX210H-POE', 'last_reboot_reason': '0x1:power cycle/failure'}}}, 're_master': {'default': '0'}, 'serialnumber': 'AE3009AA0101', 'srx_cluster': False, 'srx_cluster_id': None, 'srx_cluster_redundancy_group': None, 'switch_style': 'VLAN', 'vc_capable': False, 'vc_fabric': None, 'vc_master': None, 'vc_mode': None, 'version': '12.1X44-D40.2', 'version_RE0': '12.1X44-D40.2', 'version_RE1': None, 'version_info': junos.version_info(major=(12, 1), type=X, minor=(44, 'D', 40), build=2), 'virtual': False} done ``` See [DOCKER-EXAMPLES.md](https://github.com/Juniper/py-junos-eznc/blob/master/DOCKER-EXAMPLES.md) for some example usage. ## Upgrade Upgrading has the same requirements as installation and has the same format with the addition of -UPGRADE pip install -U junos-eznc ## HELLO, WORLD The following is a quick "hello, world" example to ensure that the software was installed correctly. This code will simply connect to a device and display the known facts of the device, like serial-number, model, etc. ````python from pprint import pprint from jnpr.junos import Device with Device(host='my_host_or_ipaddr', user='jeremy', password='jeremy123' ) as dev: pprint( dev.facts ) ```` Example output for an SRX-210 device: ````python >>> pprint(dev.facts) {'2RE': False, 'RE0': {'last_reboot_reason': '0x20:power-button soft power off', 'model': 'RE-SRX210H', 'status': 'OK', 'up_time': '10 minutes, 3 seconds'}, 'domain': 'workflowsherpas.com' 'fqdn': 'srx210.workflowsherpas.com', 'hostname': 'srx210', 'ifd_style': 'CLASSIC', 'model': 'SRX210H', 'personality': 'SRX_BRANCH', 'serialnumber': 'AD2909AA0096', 'switch_style': 'VLAN', 'version': '12.1X44-D10.4', 'version_info': junos.versino_info(major=(12, 1), type=X, minor=(44, 'D', 10), build=4)} ```` # LICENSE Apache 2.0 # CONTRIBUTORS Juniper Networks is actively contributing to and maintaining this repo. Please contact jnpr-community-netdev@juniper.net for any queries. *Contributors:* * v2.7.2: [Dinesh Babu](https://github.com/dineshbaburam91), [Chidanand Pujar](https://github.com/chidanandpujar) * v2.7.1: [Dinesh Babu](https://github.com/dineshbaburam91) * v2.6.4: [Chidanand Pujar](https://github.com/chidanandpujar) * v2.6.3: [Rahul Kumar](https://github.com/rahkumar651991) * v2.5.0: [Rahul Kumar](https://github.com/rahkumar651991) * v2.4.1: [Nitin Kumar](https://github.com/vnitinv) * v2.4.0: [Nitin Kumar](https://github.com/vnitinv) * v2.3.0: [Nitin Kumar](https://github.com/vnitinv), [Raja Shekar Mekala](https://github.com/rsmekala), [Dinesh Babu](https://github.com/dineshbaburam91), [Chris Jenn](https://github.com/ipmonk), [Shigechika](https://github.com/shigechika) * v2.2.1: [Nitin Kumar](https://github.com/vnitinv), [Raja Shekar Mekala](https://github.com/rsmekala), [Dinesh Babu](https://github.com/dineshbaburam91), [Marcel Wiget](https://github.com/mwiget), [John Tishey](https://github.com/jtishey), [Alex Carp](https://github.com/carpalex), [Cory Councilman](https://github.com/dragonballbw3) * v2.2.0: [Nitin Kumar](https://github.com/vnitinv), [Raja Shekar Mekala](https://github.com/rsmekala), [Marek](https://github.com/mzbroch), [Marcel Wiget](https://github.com/mwiget) * v2.1.9: [Dinesh Babu](https://github.com/dineshbaburam91), [Nitin Kumar](https://github.com/vnitinv), [Jacob Neil Taylor](https://github.com/jacobneiltaylor), [Raja Shekar Mekala](https://github.com/rsmekala) * v2.1.8: [Dinesh Babu](https://github.com/dineshbaburam91), [Stephen Steiner](https://github.com/ntwrkguru) * v2.1.7: [Stacy Smith](https://github.com/stacywsmith) * v2.0.0: [Ganesh Nalawade](https://github.com/ganeshrn), [Jainpriyal](https://github.com/Jainpriyal) *Former Contributors:* [Jeremy Schulman](https://github.com/jeremyschulman), [Rick Sherman](https://github.com/shermdog), [Edward Arcuri](https://github.com/sdndude), [Nitin Kumar](https://github.com/vnitinv), [Stacy Smith](https://github.com/stacywsmith), [Stephen Steiner](https://github.com/ntwrkguru) py-junos-eznc-2.7.3/README.txt000066400000000000000000000000411475361112400157410ustar00rootroot00000000000000========== junos-eznc ========== py-junos-eznc-2.7.3/RELEASE-NOTES.md000077500000000000000000000442671475361112400165600ustar00rootroot00000000000000## Release 2.7.3 - 14 Feb 2025 ## Features Added - Introduced vmhost paramater for show vmhost version in dev.facts #1355 ## Bugs Fixed - Fixed napalm get_interfaces returns empty list #1354 - Fixed sw.reboot to handle when member_id is not set #1351 ## Release 2.7.2 - 23 OCT 2024 ## Features Added - Introduced bind_addr parameter in Device() API #1279 - Introduced vmhost paramater in dev.facts #1333 - Introduced hostkey_verify paramater in Device() API #1321 - Updated Docker file to use the latest Alpine #1316 ## Bugs Fixed - Fixed the missing key to EthernetSwitchingTable #1228 - Fixed error handling on HelloHandler #1339 - Fixed the version check #1338 - Removed Google and Stackflow link from the ReadME #1337 - Fixed SystemStorageTable tables and views to handles multiple routing-engine file system storage information.#1244 - Fixed Console' object has no attribute '_use_filter' error when executed Table/View script #1335 - Fixed cli function to get full RPC response #1315 - Fixed sw.install to set no_validate option when validate=False for NSSU and ISSU upgrade #1323 - Fixed UT framework mock to use built-in unittest.mock #1311 - Fixed specific VC member reboot handling #1308 #1310 - Supported latest paramiko version which supports aes128-gcm and aes256-gcm cipher ## Release 2.7.1 - 12 APR 2024 ## Features Added - Added customer juniper paramiko module as a dependency which supported aes128 and aes257 cipher #1299 ## Bugs Fixed ## Release 2.7.0 - 12 JAN 2024 ## Features Added - Support added for Python 3.10 and above version ## Release 2.6.8 - 3 OCT 2023 ## Features Added - Introduced optional argument routing instance for fs.cp() API - Intoduced optional argument member_id for installation of pkg on specific member id of EX-VC ## Bugs fixed - Changed the VlanTable field name to vlan-name and BfdSessionTable field name to client-bame #423 - Fixed the port details in StartShell to use the port from Device object instead of default Port 22 #573 - Fixed the sw.install to use Windows file path for package copy #1206 - Fixed the sw.install to install the vc_master after the other vc_members gets installed for EX-3400 where unlink is set by default #1247 - Removed Unused Dependency: Netaddr #1257 - Fixed "object": version_info(re_version) emits ValueError: invalid literal for int() with base 10: '17-EVO' for EVO version X50.17-EVO#1264 ## Release 2.6.6 - 9 DEC 2022 ## Bugs fixed - Fixed reboot failing on other RE #1199 - Fixed passing 'sleep' arg to StartShell run() #1202 - Fixed PyEZ get-facts support for ACX model #1209 - Fixed EthPortTable regex pattern #1215 - Fixed StartShell UnboundLocalError #1203 #1211 - ## Release 2.6.5 - 29 JULY 2022 ## Features Added - Supported multi-gig ports for EthPortTable.yml #1177 ## Bugs fixed - Fixed on-box support for start shell types #1190 #1186 - Fixed conn_open_timeout value was getting set to None , changed to default 30 seconds #1184 ## Release 2.6.4 - 9 JUNE 2022 ### Features Added - Supported start_shell options to choose the shell types (sh or csh) #995 - Supported for python 3.9 ### Bugs fixed: - Fixed Device facts current_re returns the SRX cluster node0 and node1 details with cluster ID 16 #1135 - Fixed upgrade ncclient version 0.6.13, updated requirements.txt to install ncclient==0.6.13 #1153 - Fixed deprecation warning due to invalid escape sequences #1034 - Fixed Unit tests test_sw_put_ftp failure #1165 ## Release 2.4.2.dev0 - 29 APRIL 2020 ## Features Added ## Bugs fixed ### Features Added - None ### Bugs fixed: - Latest `textfsm` doesn’t support in windows. Hence, supporting `textfsm 0.4.1` for windows user #1019 - Convert `port` argument when passed as `str` to `int` data type #1020 - Return type of `sw.install` function going to change in the upcoming major release. So, added a deprecation warning in `sw.install` #1025 ## Release 2.4.0 - 1 APRIL 2020 ### Features Added - Added TableView Null Key support #983 - Added timeout support for commit_check() #998 - Added Win serial COM support #1000 - Added load patch support #1001 - Added textfsm support for table/view #1009 ### Bugs fixed: - Fixed table/view issue w.r.t to get() call #981 - Fixed documentation typo #986 - Handled sax parser input for nested fields #997 - Fixed outbound ssh issue #1007 - Fixed xpath issue when defined with a string function #1008 ## Release 2.3.1 - 10 December 2019 ### Features Added - None ### Bugs fixed: - Handled a check for pending Junos OS or package installation #966 - Fixed MetaPathLoader support only for jnpr.junos* modules #977 - Fixed huge tree XML support #975 - Fixed Junos sax parser issue for filter_xml broken #969 ## Release 2.3.0 - 27 September 2019 ### Features Added - TableView extended for vty/cli unstructured command #950 - Added junos SAX parser feature #942 #955 #951 - Added TableView Null Key support #910 - Added command tables #958. - Added reboot support for junos vmhost platform #952 - Added ElsEthernetSwitchingTable TableView #939 - Added callback functionality to ftp get #932 - Extended start shell support for Bourne shell #934 - Added `at` option support for `sw.reboot()` and `sw.poweroff()` #916 - Added generalized function for ssh-client #957 ### Bugs Fixed - Updated fact collection for srx platform #935 - Supports new ssh private key format #945 - Handled exception in dev.close() #956 - Updated file transfers to use context manager to open files #885 - Fixed reboot and poweroff behavior #916 ## Release 2.2.1 - 22 April 2019 ### Features Added - None ### Bugs Fixed - Handle multiple package-result values from sw.install #864 - Extended support to WR-Based Linux H/W #882 #883 #889 - Fixed issues in Console over SSH #877 - Optimized PyEZ docker image size and minor bug fixes #894 #911 - Fixed JSON serialization for Junos facts #902 - Updated securityzone.yml. Added item `zone-security` #909 - Fixed runtime error while using Outbound-SSH #915 - Fixed Pyyaml bugs #914 #917 #918 ## Release 2.2.0 - 27 August 2018 ### Features Added: - Support for Node virt based platforms #856 - Support Linux based Junos devices #862 - Connection through console server (having login credentials) using SSH #861 #870 - outbound ssh #732 ### Bugs Fixed: ## Release 2.1.9 - 8 August 2018 ### Features Added: - None ### Bugs Fixed: - Added op tables and views for SRX security zones #855 - Changed facts for DVATIA platform #856 - Fixed issue in gathering facts when other RE is rebooting/off #852 - Added and fixed existing unit test cases in PyEZ #838 #854 #840 - Fixed RpcTimeoutError for pdiff() #839 - Handled newer junos device #853 ## Release 2.1.8 - 31 May 2018 ### Features Added: -None ### Bugs Fixed: - Correct PyEZ TechWiki link #813 - Support active and inactive configuration options in config table/view #826 - Upgraded alpine 3.6 to support docker in PyEZ #789 #828 #827 - Support configuration table/view in telnet mode #829 - Added new unit test cases in PyEZ #831 - Detect set config format with all keywords like insert, activate, copy etc #791 #792 ## Release 2.1.7 - 30 September 2017 ### Features Added: - None ### Bugs Fixed: - Correct PyEZ TechWiki link. #781/#783 - SRX Branch cluster fails SW.install(). #782 ## Release 2.1.6 - 31 August 2017 ### Features Added: - PyEZ fact gathering support for JDM of Junos Node Slicing. #761 - Enhanced support for GNFs in Junos Node Slicing. #761 - Add vmhost parameter to SW.install() to support upgrading the VM Host. #773 ### Bugs Fixed: - Fix typo in docker run example. #771 - Aadding ietf-softwire get_config() example. #772 - Fix for python3 remove_ns issue. #767 - Fix python2/3 compatibility. #776 ## Release 2.1.5 - 31 July 2017 ### Features Added: - Single-RE sw install on multi-RE device using all_re argument to SW.install() #746 - Support platforms which have single-RE ISSU. #740 - Support Config.load() loading a configuration from a URL. #749 - SW.install() enhanced to install from a URL. #751 - Implement uptime property for Device instances. #752/#750 - Facts gathering support for Junos Node Slicing. #760 ### Bugs Fixed: - Refactor _exec_rpc() and handle boolean RPC arguments with a value of False. #739 - Add the _j2ldr instance variable to the Console class. #753 - Properly handle normalize argument to the open() Device method. #758/#757 - Setting no-resolve to true for faster ARP Table lookups. #762 ## Release 2.1.4 - 23 June 2017 ### Features Added: - Optimize image copying in SW.safe_copy() #728 ### Bugs Fixed: - unnecessary import cleanup #730 - Explicitly initialize jnpr.junos.facts sub-modules. #723/#731 - socket.error handling for console->close() #734 - Ensure dev.timeout is an integer value. Addresses #735/#736 - Socket error fix #737 ## Release 2.1.3 - 30 May 2017 ### Features Added: - Ephemeral config support #707 - Add a srx_cluster_redundancy_group fact. #711 ### Bugs Fixed: - ignore_warning fails when single that is first child of . #712 - mode='telnet' did not logout non-cli user #713 - JSONLoadError was thrown when load valid JSON config #717/#718 - Fix XML normalization feature when using NETCONF over console. #719/#720 - Handle differences in |display xml rpc #722 ## Release 2.1.2 - 2 May 2017 ### Bugs Fixed: - Doc badge was pointing to older version #694 - Fix new-style fact gathering for SRX clusters. #697/#698 - Properly handle SW upgrades on multi-RE and/or multi-chassis systems when using new-style fact gathering. #700 - Raise JSONLoadError if json config is malformed #706 - Handle ConnectClosedError exception for lock() and unlock() #708 - Return None when the RPC equiv is either str or unicode #721 ## Release 2.1.1 - 28 Mar 2017 ### Bugs Fixed: - Fix regressions caused by `ignore_warning`. #691 ## Release 2.1.0 - 22 Mar 2017 ### Features Added: - Enhanced fact gathering. Facts are now gathered "on demand." Additional facts are added. The definition of facts and return values are properly documented. #638 - Support for YANG get RPCs. #672 - Add an `ignore_warning` argument to suppress `RpcError` exceptions for warnings. #672/#685 - Enhanced the `sw.install()` method with basic ISSU and NSSU support using the issu and nssu boolean arguments. #606/#630/#632 ** NSSU support has not yet been tested and should currently be considered experimental. - Provide a master property and a re_name property for Device. #682 - Enhanced `reboot()` method to take an `all_re` boolean parameter which controls if only the connected Routing Engine, or all Routing Engines, are rebooted. #613 - Enhanced the warning message produced by the `cli()` method to recommend the corresponding `dev.rpc.()` call. #603 - Add support for `update` parameter to configuration `load()` method. #681 - Added `directory_usage` to utils #629/#631/#636 - Adding support for NFX/JDM fact gathering. #652/#659 - Connected property. #664 ### Bugs Fixed: - Updated the interface-name glob pattern to correctly match `et-//` interfaces in several tables and views. #609 - Take care of special chars on screen during console connection. #610 - Address issue with fact gathering stopping when it encounters a problem. #615 - Minor typos fixed in `RuntimeError` exception message and in comments. #621 - Added `console_has_banner` parameter. #622 - Add CentOS Support to install instructions #623 - Key value is needed in `_IsisAdjacencyLogTable` #627 - Improved functionality and documentation of Docker build. #637/#673/#674/#677 - added remote port ID to lldp.yml (OP) #645 - Fix documentation for `rollback()` #647 - Fix for fact gathering pprint. #660/#661 - update ospf view, add bgp/inventory #665 - Updated doc string for close function #686 - Add Travis builds for Python 3.5 and 3.6 #687 - StartShell.run to take this as None for non returning commands #680 - Modify ignore_warning return value to mimic normal RPC return value. #688 ## Release 2.0.1 ### Bugs Fixed: - StartShell to take timeout (30 second by default) as paramter - Proper exception handling in case of Console connection #595 - Fix: Config.lock() return exception when normalize is on - Added microbadge badge for the Docker image #593 - Fix: print dev for Console conn was printing object not Device(....) #591 - Fix: To take care of special chars with StartShell->run function call #589 - Fix: ssh private key file to be considered for scp util #586 - Added Dockerfile to enable automated image builds on project commits #585 ## Release 2.0.0 ### Features Added: - Console connection using PyEZ - Python >=3.4 support - Configuration Tables to Define and Configure Structured Resources - JSON Config load - FTP Utility ### Bugs Fixed: - Multi RPC error - various bug fixes Refer below link for more details: https://github.com/Juniper/py-junos-eznc/releases/tag/2.0.0 ## Release 1.0 # Junos PyEZ Overview The Junos PyEZ project is an open-source Apache 2.0 library for the Python programming language. The purpose of this "micro-framework" library is to enable the networking professional community to effectively utilize the Junos OS NETCONF and XML APIs. The Junos PyEZ library can be used on any number of server environments supporting Python 2.6 and 2.7. At the time of this writing, Junos PyEZ is not distributed on devices running Junos OS. For feature documentation and community support, refer to the following URLs: * Project Page hosted on the Juniper Networks TechWiki: http://techwiki.juniper.net/Automation_Scripting/Junos_PyEZ * Source code hosted on Github: https://github.com/Juniper/py-junos-eznc * Support forum hosted using Google Groups: https://groups.google.com/forum/#!forum/junos-python-ez # Installing Junos PyEZ Junos PyEZ can be installed directly from the PyPi repository by typing `pip install junos-eznc` at the system command line. The "pip" installation process also installs any related dependent Python modules and libraries. Depending on your specific system, you might need to have the prerequisite build tools installed as well. For the complete set of installation instructions for various platforms, see the Junos PyEZ project documentation at https://techwiki.juniper.net/Automation_Scripting/Junos_PyEZ/Installation. # Recommended Junos Release Junos PyEZ can be used with any device running Junos OS, because they all support the NETCONF and Junos XML APIs. To take full advantage of the Junos PyEZ features, we recommend using Junos OS Release 11.4 or later release - see "Known Limitations and Restrictions" section for details. For more information about Junos OS releases, refer to the Juniper Networks technical documentation site at https://www.juniper.net/techpubs/en_US/release-independent/junos/information-products/pathway-pages/junos/product/index.html . # Supported Python Releases The Junos PyEZ library has been tested with Python versions 2.6 and 2.7. At the time of this writing PyEZ is not supported in Python 3.x environments. This restriction is due to dependencies on other Python modules, such as ncclient, that do not support Python 3.x. # Known Limitations and Restrictions ## General * Junos PyEZ maintains a "timeout" mechanism for each executed command and response pair. The default timeout is 30 seconds. You can override the default by using the Device.timeout property. If a timeout does occur, a timeout exception is raised. * Some devices running Junos OS might disconnect the NETCONF session due to inactivity. This behavior has been observed on SRX Series Services Gateways. In such cases, an exception is raised upon execution of the next command. The Junos PyEZ library does not reconnect to the device in these inactivity scenarios. However, you can call Device.open() to reconnect. * Command execution is synchronous and blocking. The underlying NETCONF transport library is the ncclient module. If your application requires asynchronous or nonblocking execution logic, you should investigate other libraries to wrap around the PyEZ framework such as Twisted or Python Threads. * The `Device.cli()` method is intended to be used with interactive python, and as a means to facilitate the interactive experience as needed. Please do not use this for "screen-scraping" the CLI output for automation purposes. ## Version-Specific Limitations A couple software version-dependent limitations that must be noted: * 11.4 - This is the first release where the Junos XML API supports the ability to retrieve the command output in text (CLI) format. Prior to Junos OS Release 11.4, the response output was in XML. If you use the Device.cli() feature, note that this only works with Junos OS Release 11.4 and later releases. * 11.4 - This is the first release where the Junos XML API supports the ability to load configuration changes using Junos OS set commands. ## Restrictions ### Primary Routing Engine For devices with multiple Routing Engines, you can only connect to the primary Routing Engine. If you attempt to connect to the backup Routing Engine, the Device.open() method fails with an exception. ### Junos OS Software Upgrade The primary restriction is on software-install functionality provided by the jnpr.junos.utils.sw module. The software-install process is currently designed to support simple deployment scenarios. The expected use case for this software is deploying new equipment. The following scenarios are supported: * Standalone devices with a single Routing Engine, for example EX4200 switches * Standalone devices equipped with dual Routing Engines, for example MX960 routers * EX Series Virtual Chassis in non-mixed-mode configurations (all devices use the same Junos OS software package) * Deployment configurations that do not have any form of "in-service" features enabled, such as unified ISSU and NSSU. The following scenarios are known not to be supported: * SRX Series chassis clusters * EX Series Virtual Chassis in mixed-mode configurations (devices use different Junos OS software packages) * Virtual Chassis Fabric (VCF) * MX Series Virtual Chassis * Any deployments with "in-service" configurations enabled (such as unified ISSU or NSSU) py-junos-eznc-2.7.3/development.txt000066400000000000000000000004731475361112400173370ustar00rootroot00000000000000-r requirements.txt coverage # http://nedbatchelder.com/code/coverage/ nose2 # https://docs.nose2.io/en/latest/ pep8 # https://github.com/jcrocholl/pep8 pyflakes # https://launchpad.net/pyflakes coveralls # https://coveralls.io/ ntc_templates # user needs to explicitly install this cryptography py-junos-eznc-2.7.3/docs/000077500000000000000000000000001475361112400152005ustar00rootroot00000000000000py-junos-eznc-2.7.3/docs/.readthedocs.yaml000066400000000000000000000010641475361112400204300ustar00rootroot00000000000000# .readthedocs.yaml # Read the Docs configuration file # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details # Required version: 2 # Set the version of Python and other tools you might need build: os: ubuntu-22.04 tools: python: "3.8" # Build documentation in the docs/ directory with Sphinx sphinx: configuration: docs/conf.py # We recommend specifying your dependencies to enable reproducible builds: # https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html python: install: - requirements: docs/docreq.txt py-junos-eznc-2.7.3/docs/Makefile000066400000000000000000000156101475361112400166430ustar00rootroot00000000000000# Makefile for Sphinx documentation # # You can set these variables from the command line. SPHINXOPTS = SPHINXBUILD = sphinx-build PAPER = BUILDDIR = _build # User-friendly check for sphinx-build ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) $(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/) endif # Internal variables. PAPEROPT_a4 = -D latex_paper_size=a4 PAPEROPT_letter = -D latex_paper_size=letter ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . # the i18n builder cannot share the environment and doctrees with the others I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . .PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest coverage gettext help: @echo "Please use \`make ' where is one of" @echo " html to make standalone HTML files" @echo " dirhtml to make HTML files named index.html in directories" @echo " singlehtml to make a single large HTML file" @echo " pickle to make pickle files" @echo " json to make JSON files" @echo " htmlhelp to make HTML files and a HTML help project" @echo " qthelp to make HTML files and a qthelp project" @echo " devhelp to make HTML files and a Devhelp project" @echo " epub to make an epub" @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" @echo " latexpdf to make LaTeX files and run them through pdflatex" @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx" @echo " text to make text files" @echo " man to make manual pages" @echo " texinfo to make Texinfo files" @echo " info to make Texinfo files and run them through makeinfo" @echo " gettext to make PO message catalogs" @echo " changes to make an overview of all changed/added/deprecated items" @echo " xml to make Docutils-native XML files" @echo " pseudoxml to make pseudoxml-XML files for display purposes" @echo " linkcheck to check all external links for integrity" @echo " doctest to run all doctests embedded in the documentation (if enabled)" @echo " coverage to check coverage of the documentation if enabled" clean: rm -rf $(BUILDDIR)/* html: $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html @echo @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." dirhtml: $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml @echo @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." singlehtml: $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml @echo @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." pickle: $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle @echo @echo "Build finished; now you can process the pickle files." json: $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json @echo @echo "Build finished; now you can process the JSON files." htmlhelp: $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp @echo @echo "Build finished; now you can run HTML Help Workshop with the" \ ".hhp project file in $(BUILDDIR)/htmlhelp." qthelp: $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp @echo @echo "Build finished; now you can run "qcollectiongenerator" with the" \ ".qhcp project file in $(BUILDDIR)/qthelp, like this:" @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/JunosPyEZ.qhcp" @echo "To view the help file:" @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/JunosPyEZ.qhc" devhelp: $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp @echo @echo "Build finished." @echo "To view the help file:" @echo "# mkdir -p $$HOME/.local/share/devhelp/JunosPyEZ" @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/JunosPyEZ" @echo "# devhelp" epub: $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub @echo @echo "Build finished. The epub file is in $(BUILDDIR)/epub." latex: $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex @echo @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." @echo "Run \`make' in that directory to run these through (pdf)latex" \ "(use \`make latexpdf' here to do that automatically)." latexpdf: $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex @echo "Running LaTeX files through pdflatex..." $(MAKE) -C $(BUILDDIR)/latex all-pdf @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." latexpdfja: $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex @echo "Running LaTeX files through platex and dvipdfmx..." $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." text: $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text @echo @echo "Build finished. The text files are in $(BUILDDIR)/text." man: $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man @echo @echo "Build finished. The manual pages are in $(BUILDDIR)/man." texinfo: $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo @echo @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." @echo "Run \`make' in that directory to run these through makeinfo" \ "(use \`make info' here to do that automatically)." info: $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo @echo "Running Texinfo files through makeinfo..." make -C $(BUILDDIR)/texinfo info @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." gettext: $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale @echo @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." changes: $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes @echo @echo "The overview file is in $(BUILDDIR)/changes." linkcheck: $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck @echo @echo "Link check complete; look for any errors in the above output " \ "or in $(BUILDDIR)/linkcheck/output.txt." doctest: $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest @echo "Testing of doctests in the sources finished, look at the " \ "results in $(BUILDDIR)/doctest/output.txt." coverage: $(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage @echo "Documentation coverage is finished, look at the " \ "results in $(BUILDDIR)/coverage/python.txt." xml: $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml @echo @echo "Build finished. The XML files are in $(BUILDDIR)/xml." pseudoxml: $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml @echo @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml." py-junos-eznc-2.7.3/docs/TableView.rst000066400000000000000000001170471475361112400176260ustar00rootroot00000000000000:Author: Nitin Kumar ************ Table & View ************ Tutorial page for PyEZ table and view | Table & View for Structured output ################################## `Understanding Junos PyEZ Tables and Views for structured (xml) output `_ | Table & View for UnStructured output #################################### PyEZ table/view is extended to parse unstructured data. for example VTY commands and CLI output for which we don't have structured (xml) output and convert them to JSON. Table Keywords ============== .. table:: YAML definition to fetch command output from Junos device. :widths: auto ====================== ============================================================= Parameter Description ====================== ============================================================= :ref:`table-name` User-defined Table identifier. :ref:`table-command` CLI/VTY command to be executed. :ref:`table-target` (Optional) If the command is vty, provide the targeted fpc. :ref:`table-args` (Optional) Commmand can be a jinja template. args takes key/value pair, value associated with a given key is used to render command template. :ref:`table-key` (Optional) Defines key to be used while forming JSON. :ref:`table-key-items` (Optional) Only get the data for given keys in this list. :ref:`table-item` (Optional) This is used to split whole data in different sections which become the iterable reference for the associated View. If item is '*', parsing is done on whole string blob and not on each line. Item can also be regular expression, where regular expression is used to get key. :ref:`table-title` (Optional) Title help in defining from which section the data should be parsed. :ref:`table-delimiter` (Optional) delimiter to be used to split data of each line and store them as key value pair in the dictionary. :ref:`table-eval` (Optional) Mathematical expression which can be evaluated using python eval function. This can be used on `data` dictionary which is returned by table view. :ref:`table-view` (Optional) View that is used to extract field data from the Table items. ====================== ============================================================= .. _table-name: Table name ^^^^^^^^^^ The Table name is a user-defined identifier for the Table. The YAML file or string can contain one or more Tables. The start of the YAML document must be left justified. For example:: --- FPCMemory: command: show memory .. _table-command: command ^^^^^^^ Command to be executed on CLI or VTY:: # CLI command --- EthernetSwitchStatistics: command: show chassis ethernet-switch statistics # VTY command to be exectued on target FPC1 --- CMErrorTable: command: show cmerror module brief target: fpc1 .. _table-target: target ^^^^^^ Target FPC on which given command is to get executed:: # VTY command to be exectued on target FPC1 --- FPCMemory: command: show memory target: fpc1 Given FPC target in Table can be overridden through get API:: from jnpr.junos.command.fpcmemory import FPCMemory stats = FPCMemory(dev) stats = stats.get(target='fpc2') .. _table-args: args ^^^^ CLI/VTY command can take parameter(s). Variable parameters in the command can be Jinja template, dictionary under args is used to render command template:: --- XMChipIfdListTable: command: show xmchip {{ XM_instance }} ifd list {{ direction }} target: fpc1 args: XM_instance: 0 direction: 0 .. _table-key: key ^^^^ The optional key property is a tag or tags that are used to uniquely identify a Table:: # Value of task_name key will be taken from the dictionary created from view --- TaskIOTable: command: show task io key: task_name view: TaskIOView TaskIOView: columns: task_name: Task Name reads: Reads writes: Writes rcvd: Rcvd sent: Sent dropped: Dropped # Key can be a list also --- FPCIPV4AddressTable: command: show ipv4 address target: fpc1 key: - name - addr view: FPCIPV4AddressView FPCIPV4AddressView: columns: index: Index addr: Address name: Name .. _table-key-items: key_items ^^^^^^^^^ The optional key_items property is used to select only certain key data in JSON:: --- FPCMemory: command: show memory target: fpc1 key: ID key_items: - 1 - 2 view: FPCMemoryView FPCMemoryView: columns: id: ID base: Base total: Total(b) free: Free(b) used: Used(b) perc: "%" name: Name Output for **show memory** is:: ID Base Total(b) Free(b) Used(b) % Name -- ---------- ----------- ----------- ----------- --- ----------- 0 4d9ad8e8 1726292636 1514622708 211669928 12 Kernel 1 b47ffb88 67108860 53057404 14051456 20 LAN buffer 2 bcdfffe0 52428784 52428784 0 0 Blob 3 b87ffb88 73400316 73400316 0 0 ISSU scratch Even though we have four ID row here, data returned will be for just 1 & 2 as provided in key_items:: {1: {'base': 'b47ffb88', 'free': 53057404, 'id': 1, 'name': 'LAN buffer', 'perc': 20, 'total': 67108860, 'used': 14051456}, 2: {'base': 'bcdfffe0', 'free': 52428784, 'id': 2, 'name': 'Blob', 'perc': 0, 'total': 52428784, 'used': 0}} .. _table-item: item ^^^^ The item value is a string or regular expression to split the output in sections. Say the out of the command **show devices local** is:: TSEC Ethernet Device Driver: .le1, Control 0x4296c218, (1000Mbit) HW reg base 0xff724000 [0]: TxBD base 0x7853ce20, RxBD Base 0x7853d640 [1]: TxBD base 0x7853d860, RxBD Base 0x7853e080 [2]: TxBD base 0x7853e2a0, RxBD Base 0x785422c0 [3]: TxBD base 0x785426e0, RxBD Base 0x78544700 Receive: 185584608 bytes, 2250212 packets, 0 FCS errors, 0 multicast packets 107271 broadcast packets, 0 control frame packets 0 PAUSE frame packets, 0 unknown OP codes 0 alignment errors, 0 frame length errors 0 code errors, 0 carrier sense errors 0 undersize packets, 0 oversize packets 0 fragments, 0 jabbers, 0 drops Receive per queue: [0]: 0 bytes, 0 packets, 0 dropped 0 jumbo, 0 truncated jumbo [1]: 0 bytes, 0 packets, 0 dropped 0 jumbo, 0 truncated jumbo [2]: 0 bytes, 0 packets, 0 dropped 0 jumbo, 0 truncated jumbo [3]: 203586808 bytes, 2250219 packets, 0 dropped 0 jumbo, 0 truncated jumbo Transmit: 288184646 bytes, 2038370 packets, 0 multicast packets 106531 broadcast packets, 0 PAUSE control frames 0 deferral packets, 0 excessive deferral packets 0 single collision packets, 0 multiple collision packets 0 late collision packets, 0 excessive collision packets 0 total collisions, 0 drop frames, 0 jabber frames 0 FCS errors, 0 control frames, 0 oversize frames 0 undersize frames, 0 fragments frames Transmit per queue: [0]: 10300254 bytes, 72537 packets 0 dropped, 0 fifo errors [1]: 4474302 bytes, 106531 packets 0 dropped, 0 fifo errors [2]: 260203538 bytes, 1857137 packets 0 dropped, 0 fifo errors [3]: 199334 bytes, 2179 packets 0 dropped, 0 fifo errors TSEC status counters: kernel_dropped:0, rx_large:0 rx_short: 0 rx_nonoctet: 0, rx_crcerr: 0, rx_overrun: 0 rx_bsy: 0,rx_babr:0, rx_trunc: 0 rx_length_errors: 0, rx_frame_errors: 0 rx_crc_errors: 0 rx_errors: 0, rx_ints: 2250110, collisions: 0 eberr:0, tx_babt: 0, tx_underrun: 0 tx_timeout: 0, tx_timeout: 0,tx_window_errors: 0 tx_aborted_errors: 0, tx_ints: 2038385, resets: 1 TSEC Ethernet Device Driver: .le3, Control 0x42979220, (1000Mbit) HW reg base 0xff726000 [0]: TxBD base 0x78545720, RxBD Base 0x78545f40 [1]: TxBD base 0x78546160, RxBD Base 0x78546980 [2]: TxBD base 0x78546ba0, RxBD Base 0x7854abc0 [3]: TxBD base 0x7854afe0, RxBD Base 0x7854d000 Receive: 0 bytes, 0 packets, 0 FCS errors, 0 multicast packets 0 broadcast packets, 0 control frame packets 0 PAUSE frame packets, 0 unknown OP codes 0 alignment errors, 0 frame length errors 0 code errors, 0 carrier sense errors 0 undersize packets, 0 oversize packets 0 fragments, 0 jabbers, 0 drops Receive per queue: [0]: 0 bytes, 0 packets, 0 dropped 0 jumbo, 0 truncated jumbo [1]: 0 bytes, 0 packets, 0 dropped 0 jumbo, 0 truncated jumbo [2]: 0 bytes, 0 packets, 0 dropped 0 jumbo, 0 truncated jumbo [3]: 0 bytes, 0 packets, 0 dropped 0 jumbo, 0 truncated jumbo Transmit: 6817984 bytes, 106531 packets, 0 multicast packets 106531 broadcast packets, 0 PAUSE control frames 0 deferral packets, 0 excessive deferral packets 0 single collision packets, 0 multiple collision packets 0 late collision packets, 0 excessive collision packets 0 total collisions, 0 drop frames, 0 jabber frames 0 FCS errors, 0 control frames, 0 oversize frames 0 undersize frames, 0 fragments frames Transmit per queue: [0]: 0 bytes, 0 packets 0 dropped, 0 fifo errors [1]: 4474302 bytes, 106531 packets 0 dropped, 0 fifo errors [2]: 0 bytes, 0 packets 0 dropped, 0 fifo errors [3]: 0 bytes, 0 packets 0 dropped, 0 fifo errors TSEC status counters: kernel_dropped:0, rx_large:0 rx_short: 0 rx_nonoctet: 0, rx_crcerr: 0, rx_overrun: 0 rx_bsy: 0,rx_babr:0, rx_trunc: 0 rx_length_errors: 0, rx_frame_errors: 0 rx_crc_errors: 0 rx_errors: 0, rx_ints: 0, collisions: 0 eberr:0, tx_babt: 0, tx_underrun: 0 tx_timeout: 0, tx_timeout: 0,tx_window_errors: 0 tx_aborted_errors: 0, tx_ints: 106531, resets: 1 And the table to parse above output, item is used to split them into sections.:: --- DevicesLocalTable: command: show devices local target: fpc1 item: 'TSEC Ethernet Device Driver: (\.?\w+),' key: name view: DevicesLocalView DevicesLocalView: fields: TSEC_status_counters: _TSECStatusCountersTable receive_counters: _ReceiveTable transmit_per_queue: _TransmitQueueTable `key` in above table is fetched from the regex group used in item. **item** Can also be provided as '*' if we dont want each line matching but from whole output.:: _ReceiveTable: item: '*' title: 'Receive:' view: _ReceiveView _ReceiveView: regex: bytes: '(\d+) bytes' packets: '(\d+) packets' FCS_errors: '(\d+) FCS errors' broadcast_packets: '(\d+) broadcast packets' .. _table-title: title ^^^^^ Title helps in deciding the data to be parsed starting point.:: _TSECStatusCountersTable: item: '*' title: 'TSEC status counters:' view: _TSECStatusCountersView _TSECStatusCountersView: regex: kernel_dropped: 'kernel_dropped:(\d+)' rx_large: 'rx_large:(\d+)' helps to parse data from:: TSEC status counters: kernel_dropped:0, rx_large:0 rx_short: 0 rx_nonoctet: 0, rx_crcerr: 0, rx_overrun: 0 rx_bsy: 0,rx_babr:0, rx_trunc: 0 rx_length_errors: 0, rx_frame_errors: 0 rx_crc_errors: 0 rx_errors: 0, rx_ints: 2250110, collisions: 0 eberr:0, tx_babt: 0, tx_underrun: 0 tx_timeout: 0, tx_timeout: 0,tx_window_errors: 0 tx_aborted_errors: 0, tx_ints: 2038385, resets: 1 .. note:: In above table '*' consider whole data as one paragraph. .. _table-delimiter: delimiter ^^^^^^^^^ There are some command output which are just key value pairs. They can be split using given delimiter and converted to JSON. Consider below table:: --- FPCLinkStatTable: command: show link stats target: fpc1 delimiter: ":" Output for command **show links stats**:: PPP LCP/NCP: 0 HDLC keepalives: 0 RSVP: 0 ISIS: 0 OSPF Hello: 539156 OAM: 0 BFD: 15 UBFD: 0 LMI: 0 LACP: 0 ETHOAM: 0 SYNCE: 0 PTP: 0 L2TP: 0 LNS-PPP: 0 ARP: 4292 ELMI: 0 VXLAN MRESOLVE: 0 Unknown protocol: 42 Using given delimiter ":" output is parsed to get:: {'ARP': 4292, 'ELMI': 0, 'SYNCE': 0, 'ISIS': 0, 'BFD': 15, 'PPP LCP/NCP': 0, 'OAM': 0, 'ETHOAM': 0, 'LACP': 0, 'LMI': 0, 'Unknown protocol': 42, 'UBFD': 0, 'L2TP': 0, 'HDLC keepalives': 0, 'LNS-PPP': 0, 'OSPF Hello': 539156, 'RSVP': 0, 'VXLAN MRESOLVE': 0, 'PTP': 0} .. _table-eval: eval ^^^^ Using eval keyword, we can add extra key/value to the final data returned from Table/View. value is evaluated from the Mathematical expression provided by the user. eval expression can use **data** which can be considered as the dictionary returned from table/view. data should be kept under Jinja template so that PyEZ can replace data with dictonary. .. note:: For more details about python eval function. check this `Link `_ Examples:: --- CChipLiInterruptStatsTable: command: show mqss {{ chip_instance }} li interrupt-stats target: NULL args: chip_instance: 0 key: - li_block - name view: CChipLiInterruptStatsView eval: cchip_errors_from_lkup_chip: "reduce(lambda x,y: x+y, [v['interrupts'] for k,v in {{ data }}.items()])" CChipLiInterruptStatsView: columns: li_block: LI Block name: Interrupt Name interrupts: Number of Interrupts last_occurance: Last Occurrence | :: --- CChipLiInterruptStatsTable: command: show xmchip {{ chip_instance }} li interrupt-stats target: NULL args: chip_instance: 0 key: - li_block - name eval: cchip_errors_from_lkup_chip: "reduce(lambda x,y: x+y, [v['interrupts'] for k,v in {{ data }}.items()])" view: CChipLiInterruptStatsView CChipLiInterruptStatsView: columns: li_block: LI Block name: Interrupt Name interrupts: Number of Interrupts last_occurance: Last Occurrence eval can be used to calculate multile values:: --- CChipDRDErrTable: command: show mqss {{ instance }} drd error-stats args: instance: 0 target: NULL key: Interrupt Name item: '*' view: CChipDRDErrView eval: cchip_drd_wan_errors: sum([v['interrupt_count_wan'] for k, v in {{ data }}.items() if isinstance(v, dict)]) cchip_drd_fab_errors: sum([v['interrupt_count_fab'] for k, v in {{ data }}.items() if isinstance(v, dict)]) CChipDRDErrView: regex: cchip_drd_wan_timeouts: 'Total WAN reorder ID timeout errors:\s+(\d+)' cchip_drd_fab_timeouts: 'Total fabric reorder ID timeout errors:\s+(\d+)' columns: interrupt_name: Interrupt Name interrupt_count_wan: - Number of - Reorder Engine 0 interrupt_count_fab: - Interrupts - Reorder Engine 1 | :: --- CChipDRDErrTable: command: show xmchip {{ instance }} drd error-stats args: instance: 0 target: NULL key: Interrupt Name item: '*' view: CChipDRDErrView eval: cchip_drd_wan_errors: sum([v['interrupt_count'] for k, v in {{ data }}.items() if k.endswith('_0')]) cchip_drd_fab_errors: sum([v['interrupt_count'] for k, v in {{ data }}.items() if k.endswith('_1')]) CChipDRDErrView: regex: cchip_drd_wan_timeouts: 'Total WAN reorder ID timeout errors:\s+(\d+)' cchip_drd_fab_timeouts: 'Total fabric reorder ID timeout errors:\s+(\d+)' columns: interrupt_name: Interrupt Name interrupt_count: Number of Interrupts filters: - interrupt_count .. _table-view: view ^^^^^ View is defined how the output from the table to be parsed. Different keyword which can be used with view is defined in next section. Every view will be associated with a table. Example:: --- CMErrorTable: command: show cmerror module brief target: fpc1 key: module view: CMErrorView CMErrorView: columns: module: Module name: Name errors: Active Errors View Keywords ============= Junos PyEZ Tables select specific data from the command reply from devices running Junos OS. A Table is associated with a View, which is used to access fields in the Table items. You associate a Table with a particular View by including the view property in the Table definition, which takes the View name as its argument. A View maps your user-defined field names to string elements in the selected Table items. A View enables you to access specific fields in the output as variables with properties that can be manipulated in Python. Junos PyEZ handles the extraction of the data into JSON for unstructured command output. .. table:: YAML definition to parse command output :widths: auto ==================== ============================================================= Parameter Description ==================== ============================================================= :ref:`view-columns` (Optional) List of column title as seen in command output :ref:`view-regex` (Optional) List of regular expression to match desired content :ref:`view-fields` (Optional) List of nested tables. :ref:`view-exists` (Optional) If the given statement exists, sets True else False :ref:`view-filters` (Optional) list of column item which should only go to dictionary data ==================== ============================================================= .. _view-columns: columns ^^^^^^^ Consider the case where the output of the command is in row/column format. For Example **show lkup-asic wedge-client**:: Wedge poll thread state : 'Started' Total registered clients : 4 CID Name PfeInst AscIdx PPEMask ZoneMask RordChk Mode ---------------------------------------------------------------------------------- 0 LUCHIP(0) 0 0 0x0000000000000000 0x000000000000ffff 0x0000f000 Disabled NORMAL 1 LUCHIP(4) 0 1 0x0000000000000000 0x000000000000ffff 0x0000f000 Disabled NORMAL 2 LUCHIP(8) 0 2 0x0000000000000000 0x000000000000ffff 0x0000f000 Disabled NORMAL 3 LUCHIP(12) 0 3 0x0000000000000000 0x000000000000ffff 0x0000f000 Disabled NORMAL Client ID Curr State Prev State Last read ------------------------------------------------------ 0 NORMAL NORMAL 6294337620 1 DISABLED NORMAL 6294337620 2 DISABLED NORMAL 6294337620 3 DISABLED NORMAL 6294337620 And we want to parse the data of second section consisting of client id, curr state, previous state and last read. We will define table/view with view declares all columns:: --- LUChipStatusTable: command: show lkup-asic wedge-client target: fpc1 key: Client ID view: LUChipStatusView LUChipStatusView: columns: client_id: Client ID curr_state: Curr State prev_state: Prev State last_read: Last read Output received will be:: {0: {'client_id': 0, 'curr_state': 'NORMAL', 'last_read': 6294337620, 'prev_state': 'NORMAL'}, 1: {'client_id': 1, 'curr_state': 'DISABLED', 'last_read': 6294337620, 'prev_state': 'NORMAL'}, 2: {'client_id': 2, 'curr_state': 'DISABLED', 'last_read': 6294337620, 'prev_state': 'NORMAL'}, 3: {'client_id': 3, 'curr_state': 'DISABLED', 'last_read': 6294337620, 'prev_state': 'NORMAL'}} .. note:: In columns we need to provide all column title to help parse the data. There are situation when column title are spread across multiple line. In such cases columns keys element should be list of words corresponding to their columns. For command ``show cmerror module brief`` with cli output:: ------------------------------------------------------------------------- Module Name Active Errors PFE Callback ModuleData Specific Function ------------------------------------------------------------------------- 1 PQ3 Chip 0 Yes 0x00000000 0x00000000 2 Host Loopback 0 No 0x00000000 0x464295b0 3 CM[0] 0 No 0x41f550f0 0x462f767c Table/View to parse above output:: --- CMErrorTable: command: show cmerror module brief dummy multiline target: Null key: module view: CMErrorView CMErrorView: columns: module: Module name: Name errors: Active Errors pfe: - PFE - Specific callback: - Callback - Function data: ModuleData Similarly for command ``show mqss 0 fi interrupt-stats`` with cli output:: FI interrupt statistics ----------------------- -------------------------------------------------------------------------------------- Stream Total RLIM Total Cell timeout Total Reorder Total cell Total number request PT/MALLOC Ignored cell timeout drops in of times counter Usemeter errors secure mode entered into saturation Drops secure mode -------------------------------------------------------------------------------------- 36 0 0 1 1 0 0 128 0 0 1 49 0 0 142 0 0 1 53 0 0 -------------------------------------------------------------------------------------- -------------------------------------------------------------------------- Stream Stream reconfiguration Total Error Total Late Total CRC Errored count due to pointers Cells Cells Packets stalled in secure mode -------------------------------------------------------------------------- 36 0 0 1 0 -------------------------------------------------------------------------- Table/View to parse above output:: CChipFiStatsTable: command: show mqss {{ chip_instance }} fi interrupt-stats target: fpc8 args: chip_instance: 0 key: Stream view: CChipFiStatsView CChipFiStatsView: columns: stream: Stream req_sat: - Total RLIM - request - counter - saturation cchip_fi_malloc_drops: - Total - PT/MALLOC - Usemeter - Drops cell_timeout_ignored: - Cell timeout - Ignored cchip_fi_cell_timeout: - Total Reorder - cell timeout - errors drops_in_secure: - Total cell - drops in - secure mode times_in_secure: - Total number - of times - entered into - secure mode .. _view-regex: regex ^^^^^ list of regular expression which combined together should match one line. consider command output for ``show icmp statistics`` :: ICMP Statistics: 0 requests 0 throttled 0 network unreachables 0 ttl expired 0 redirects 0 mtu exceeded 0 source route denials 0 filter prohibited 0 other unreachables 0 parameter problems 0 ttl captured 0 icmp/option handoffs 0 igmp v1 handoffs 0 tag te requests 0 tag te to RE ICMP Errors: 0 unknown unreachables 0 unsupported ICMP type 0 unprocessed redirects 0 invalid ICMP type 0 invalid protocol 0 bad input interface 0 bad route lookup 0 bad nh lookup 0 bad cf mtu 0 runts ICMP Discards: 0 multicasts 0 bad source addresses 0 bad dest addresses 0 IP fragments 0 ICMP errors 0 unknown originators ICMP Debug Messages: 0 throttled ICMP Rate Limit Settings: 500 pps per iff 1000 pps total Here datas are under different title and data is numbers + word(s). Hence the below table/view use regular expression to parse key (numbers) and value (words). Table/View:: --- ICMPStatsTable: command: show icmp statistics target: fpc1 view: ICMPStatsView ICMPStatsView: fields: discards: _ICMPDiscardsTable errors: _ICMPErrorsTable rate: _ICMPRateTable _ICMPDiscardsTable: title: ICMP Discards key: name view: _ICMPDiscardsView _ICMPDiscardsView: regex: value: \d+ name: '(\w+(\s\w+)*)' _ICMPErrorsTable: title: ICMP Errors key: name view: _ICMPErrorsView _ICMPErrorsView: regex: error: numbers name: words _ICMPRateTable: title: ICMP Rate Limit Settings key: name view: _ICMPRateView _ICMPRateView: regex: rate: numbers name: words Check _ICMPDiscardsTable and _ICMPDiscardsView. *title* (ICMP Discards) under _ICMPDiscardsTable is used to get to the starting point for parsing. value and name are the keys and corresponding regex value is combined to parse each line. Also in such data key cannot be value, so we can select right hand side data *name* as the key. We also define some inbuilt keywords which can be used in place of regular expression. Check _ICMPErrorsView. Below are the list of inbuilt keywords and corresponding expression used. * **numbers** = (pp.Word(pp.nums) + pp.Optional(pp.Literal('.') + pp.Word(pp.nums))).setParseAction(lambda i: ''.join(i)) * **hex_numbers** = pp.OneOrMore(pp.Word(pp.nums, min=1)) & pp.OneOrMore(pp.Word('abcdefABCDEF', min=1)) * **word** = pp.Word(pp.alphanums) | pp.Word(pp.alphas) * **words** = (pp.OneOrMore(word)).setParseAction(lambda i: ' '.join(i)) * **percentage** = pp.Word(pp.nums) + pp.Literal('%') * **printables** = pp.OneOrMore(pp.Word(pp.printables)) Here **pp** is coming from (import pyparsing as pp) When table :ref:`table-item` is proved, regex is used on the splitted items. Say when item is * regex is used on whole string blob and not combined to parse each line. For example check the output of command ``show ithrottle id 0``:: SENT: Ukern command: show ithrottle id 0 ID Usage % Cfg State Oper State Name -- ------- --------- ---------- -------- 0 50.0 1 1 TOE ithrottle Throttle Times: In hptime ticks In ms --------------- ------ Timer Interval 333333 5.000 Allowed time 166666 2.500 Allowed excess 8333 0.125 Start time 488655082 n/a Run time this interval 0 0.000 Deficit 0 0.000 Run time max 17712 0.266 Run time total 144154525761 2162317 Min Usage Perc: 25.0 Max Usage Perc: 50.0 AdjustUsageEnable: 1 Throttle Stats: Starts : 65708652 Stops : 65708652 Checks : 124149442 Enables : 0 Disables : 0 AdjUp : 6 AdjDown : 4 Table/View used for parsing above output:: IthrottleIDTable: command: show ithrottle id {{ id }} args: id: 0 item: '*' target: fpc1 view: IthrottleIDView IthrottleIDView: regex: min_usage: 'Min Usage Perc: (\d+\.\d+)' max_usage: 'Max Usage Perc: (\d+\.\d+)' usg_enable: 'AdjustUsageEnable: (\d)' fields: throttle_stats: _ThrottleStatsTable _ThrottleStatsTable: title: Throttle Stats delimiter: ":" Here item is \*, hence whole string blob is used to search for given regular expressions. output:: {'max_usage': 50.0, 'min_usage': 25.0, 'throttle_stats': {'AdjDown': 4, 'AdjUp': 6, 'Checks': 124149442, 'Disables': 0, 'Enables': 0, 'Starts': 65708652, 'Stops': 65708652}, 'usg_enable': 1} .. note:: grouping is used to get specific data from regex expression. For example. (\d+\.\d+) is used to get the float value from string search expression. if we change expression to **Max Usage Perc: (\d+)\.\d+** we will get integer part only. .. _view-fields: fields ^^^^^^ Where the command output has different sections of data which need different logic to parse those subset of data, we can define nested tables under fields section. For command ``show xmchip 0 pt stats`` we have 2 section of data:: SENT: Ukern command: show xmchip 0 pt stats WAN PT statistics (Index 0) --------------------------- PCT entries used by all WI-1 streams : 0 PCT entries used by all WI-0 streams : 0 PCT entries used by all LI streams : 0 CPT entries used by all multicast packets : 0 CPT entries used by all WI-1 streams : 0 CPT entries used by all WI-0 streams : 0 CPT entries used by all LI streams : 0 Fabric PT statistics (Index 1) ------------------------------ PCT entries used by all FI streams : 0 PCT entries used by all WI (Unused) streams : 0 PCT entries used by all LI streams : 0 CPT entries used by all multicast packets : 0 CPT entries used by all FI streams : 0 CPT entries used by all WI (Unused) streams : 0 CPT entries used by all LI streams : 0 So we defined fields with two nested table each used to parse different subset of data:: --- XMChipStatsTable: command: show xmchip 0 pt stats target: fpc1 view: XMChipStatsView XMChipStatsView: fields: wan_pt_stats: _WANPTStatTable fabric_pt_stats: _FabricPTStatTable _WANPTStatTable: title: WAN PT statistics (Index 0) delimiter: ":" _FabricPTStatTable: title: Fabric PT statistics (Index 1) delimiter: ":" Output:: {'fabric_pt_stats': {'CPT entries used by all FI streams': 0, 'CPT entries used by all LI streams': 0, 'CPT entries used by all WI (Unused) streams': 0, 'CPT entries used by all multicast packets': 0, 'PCT entries used by all FI streams': 0, 'PCT entries used by all LI streams': 0, 'PCT entries used by all WI (Unused) streams': 0}, 'wan_pt_stats': {'CPT entries used by all LI streams': 0, 'CPT entries used by all WI-0 streams': 0, 'CPT entries used by all WI-1 streams': 0, 'CPT entries used by all multicast packets': 0, 'PCT entries used by all LI streams': 0, 'PCT entries used by all WI-0 streams': 0, 'PCT entries used by all WI-1 streams': 0}} Another example using command output for ``show ttp statistics``:: SENT: Ukern command: show ttp statistics TTP Statistics: Receive Transmit ---------- ---------- L2 Packets 4292 1093544 L3 Packets 542638 0 Drops 0 0 Netwk Fail 0 0 Queue Drops 0 0 Unknown 0 0 Coalesce 0 0 Coalesce Fail 0 0 TTP Transmit Statistics: Queue 0 Queue 1 Queue 2 Queue 3 ---------- ---------- ---------- ---------- L2 Packets 1093544 0 0 0 L3 Packets 0 0 0 0 TTP Receive Statistics: Control High Medium Low Discard ---------- ---------- ---------- ---------- ---------- L2 Packets 0 0 4292 0 0 L3 Packets 0 539172 3466 0 0 Drops 0 0 0 0 0 Queue Drops 0 0 0 0 0 Unknown 0 0 0 0 0 Coalesce 0 0 0 0 0 Coalesce Fail 0 0 0 0 0 TTP Receive Queue Sizes: Control Plane : 0 (max is 4473) High : 0 (max is 4473) Medium : 0 (max is 4473) Low : 0 (max is 2236) TTP Transmit Queue Size: 0 (max is 6710) Table/View used to parse above output using nested table/view under fields:: --- FPCTTPStatsTable: command: show ttp statistics target: fpc2 view: FPCTTPStatsView FPCTTPStatsView: fields: TTPStatistics: _FPCTTPStatisticsTable TTPTransmitStatistics: _FPCTTPTransmitStatisticsTable TTPReceiveStatistics: _FPCTTPReceiveStatisticsTable TTPQueueSizes: _FPCTTPQueueSizesTable _FPCTTPStatisticsTable: title: TTP Statistics view: _FPCTTPStatisticsView _FPCTTPStatisticsView: columns: rcvd: Receive tras: Transmit _FPCTTPTransmitStatisticsTable: title: TTP Transmit Statistics view: _FPCTTPTransmitStatisticsView _FPCTTPTransmitStatisticsView: columns: queue0: Queue 0 queue1: Queue 1 queue2: Queue 2 queue3: Queue 3 filters: - queue2 _FPCTTPReceiveStatisticsTable: title: TTP Receive Statistics key: name key_items: - Coalesce view: _FPCTTPReceiveStatisticsView _FPCTTPReceiveStatisticsView: columns: control: Control high: High medium: Medium low: Low discard: Discard _FPCTTPQueueSizesTable: title: TTP Receive Queue Sizes delimiter: ":" Output:: {'TTPQueueSizes': {'Control Plane': '0 (max is 4473)', 'High': '0 (max is 4473)', 'Low': '0 (max is 2236)', 'Medium': '0 (max is 4473)'}, 'TTPReceiveStatistics': {'Coalesce': {'control': 0, 'discard': 0, 'high': 0, 'low': 0, 'medium': 0, 'name': 'Coalesce'}}, 'TTPStatistics': {'Coalesce': {'name': 'Coalesce', 'rcvd': 0, 'tras': 0}, 'Coalesce Fail': {'name': 'Coalesce Fail', 'rcvd': 0, 'tras': 0}, 'Drops': {'name': 'Drops', 'rcvd': 0, 'tras': 0}, 'L2 Packets': {'name': 'L2 Packets', 'rcvd': 0, 'tras': 7468}, 'L3 Packets': {'name': 'L3 Packets', 'rcvd': 0, 'tras': 0}, 'Netwk Fail': {'name': 'Netwk Fail', 'rcvd': 0, 'tras': 173}, 'Queue Drops': {'name': 'Queue Drops', 'rcvd': 0, 'tras': 0}, 'Unknown': {'name': 'Unknown', 'rcvd': 0, 'tras': 0}}, 'TTPTransmitStatistics': {'L2 Packets': {'queue2': 0}, 'L3 Packets': {'queue2': 0}}} .. note:: fields in unstructured table/view is different compared to rpc based table/view. For RPC, fields are xpath tags. .. _view-exists: exists ^^^^^^ If we just need to check if the given string statement is present or not in the command output. we can use ``exists`` option. For example For command output of ``show host_loopback status-summary``:: SENT: Ukern command: show host_loopback status-summary Host Loopback Toolkit Status Summary: No detected wedges No toolkit errors Table/View defined:: --- HostlbStatusSummaryTable: command: show host_loopback status-summary target: fpc1 view: HostlbStatusSummaryView HostlbStatusSummaryView: exists: no_detected_wedges: No detected wedges no_toolkit_errors: No toolkit errors Output:: {'no_detected_wedges': True, 'no_toolkit_errors': True} .. _view-filters: filters ^^^^^^^ When we are interested in only few keys from the parsed output, we can filter filter out the desired key/value using filters. Filters takes a list of keys from columns items. Final output dictionary should only consist of items listed in filters per iteration of view output. Consider below table/view:: --- CMErrorTable: command: show cmerror module brief target: fpc1 key: - module view: CMErrorView CMErrorView: columns: module: Module name: Name errors: Active Errors filters: - errors Output from command ``show cmerror module brief``:: --------------------------------------- Module Name Active Errors --------------------------------------- 1 PQ3 Chip 0 2 Host Loopback 0 3 CM[0] 0 4 LUCHIP(0) 0 5 TOE-LU-0:0:0 0 6 LUCHIP(4) 0 7 TOE-LU-0:1:0 0 8 LUCHIP(8) 0 9 TOE-LU-0:2:0 0 10 LUCHIP(12) 0 11 TOE-LU-0:3:0 0 12 XMCHIP(0) 0 13 TOE-XM-0:0:0 0 14 MPC 0 15 GE Switch 0 16 PMB 0 17 JNH 0 18 PRECL:0:XM:0 0 19 PRECL:1:XM:0 0 Output:: {1: {'errors': 0}, 2: {'errors': 0}, 3: {'errors': 0}, 4: {'errors': 0}, 5: {'errors': 0}, 6: {'errors': 0}, 7: {'errors': 0}, 8: {'errors': 0}, 9: {'errors': 0}, 10: {'errors': 0}, 11: {'errors': 0}, 12: {'errors': 0}, 13: {'errors': 0}, 14: {'errors': 0}, 15: {'errors': 0}, 16: {'errors': 0}, 17: {'errors': 0}, 18: {'errors': 0}, 19: {'errors': 0}}py-junos-eznc-2.7.3/docs/conf.py000066400000000000000000000261621475361112400165060ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Junos PyEZ documentation build configuration file, created by # sphinx-quickstart on Thu May 8 10:38:09 2014. # # This file is execfile()d with the current directory set to its # containing dir. # # Note that not all possible configuration values are present in this # autogenerated file. # # All configuration values have a default; values that are commented out # serve to show the default. import sys import os import sphinx_bootstrap_theme # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. sys.path.insert(0, os.path.abspath("../lib")) # -- General configuration ------------------------------------------------ # If your documentation needs a minimal Sphinx version, state it here. # needs_sphinx = '1.0' # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ "sphinx.ext.autodoc", "sphinx.ext.viewcode", "sphinx.ext.coverage", "sphinx.ext.todo", "sphinx.ext.intersphinx", ] def skip(app, what, name, obj, skip, options): if name == "__init__": return False return skip def setup(app): app.connect("autodoc-skip-member", skip) # Add any paths that contain templates here, relative to this directory. templates_path = ["_templates"] # The suffix of source filenames. source_suffix = ".rst" # The encoding of source files. # source_encoding = 'utf-8-sig' # The master toctree document. master_doc = "index" # General information about the project. import jnpr.junos project = "Junos PyEZ" copyright = "2017, Juniper Networks, Inc." # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. # # The short X.Y version. version = jnpr.junos.__version__ # The full version, including alpha/beta/rc tags. release = version # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. # language = None # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: # today = '' # Else, today_fmt is used as the format for a strftime call. # today_fmt = '%B %d, %Y' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. exclude_patterns = ["_build"] # The reST default role (used for this markup: `text`) to use for all # documents. # default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. # add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). # add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. # show_authors = False # The name of the Pygments (syntax highlighting) style to use. pygments_style = "sphinx" # A list of ignored prefixes for module index sorting. # modindex_common_prefix = [] # If true, keep warnings as "system message" paragraphs in the built documents. # keep_warnings = False # Produce todo output todo_include_todos = True # -- Options for HTML output ---------------------------------------------- # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. html_theme = "bootstrap" # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. html_theme_options = { "bootswatch_theme": "spacelab", "navbar_sidebarrel": False, "navbar_site_name": "Module", "navbar_pagenav_name": "Classes", "source_link_position": "footer", "navbar_links": [ ("Wiki", "https://techwiki.juniper.net/Automation_Scripting/Junos_PyEZ", True), ("Forum", "http://groups.google.com/group/junos-python-ez", True), ], } # Add any paths that contain custom themes here, relative to this directory. html_theme_path = sphinx_bootstrap_theme.get_html_theme_path() # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". # html_title = None # A shorter title for the navigation bar. Default is the same as html_title. # html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. html_logo = "juniper.png" # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. # html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ["_static"] # Add any extra paths that contain custom files (such as robots.txt or # .htaccess) here, relative to this directory. These files are copied # directly to the root of the documentation. # html_extra_path = [] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. # html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. # html_use_smartypants = True # Custom sidebar templates, maps document names to template names. html_sidebars = { "**": [ "globaltoc.html", "localtoc.html", ] } # Additional templates that should be rendered to pages, maps page names to # template names. # html_additional_pages = {} # If false, no module index is generated. # html_domain_indices = True # If false, no index is generated. # html_use_index = True # If true, the index is split into individual pages for each letter. # html_split_index = False # If true, links to the reST sources are added to the pages. # html_show_sourcelink = True # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. # html_show_sphinx = True # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. # html_show_copyright = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. # html_use_opensearch = '' # This is the file name suffix for HTML files (e.g. ".xhtml"). # html_file_suffix = None # Output file base name for HTML help builder. htmlhelp_basename = "JunosPyEZdoc" # -- Options for LaTeX output --------------------------------------------- latex_elements = { # The paper size ('letterpaper' or 'a4paper'). #'papersize': 'letterpaper', # The font size ('10pt', '11pt' or '12pt'). #'pointsize': '10pt', # Additional stuff for the LaTeX preamble. #'preamble': '', } # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, # author, documentclass [howto, manual, or own class]). latex_documents = [ ( "index", "JunosPyEZ.tex", "Junos PyEZ Documentation", "Juniper Networks, Inc.", "manual", ), ] # The name of an image file (relative to this directory) to place at the top of # the title page. # latex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. # latex_use_parts = False # If true, show page references after internal links. # latex_show_pagerefs = False # If true, show URL addresses after external links. # latex_show_urls = False # Documents to append as an appendix to all manuals. # latex_appendices = [] # If false, no module index is generated. # latex_domain_indices = True # -- Options for manual page output --------------------------------------- # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). man_pages = [ ("index", "junospyez", "Junos PyEZ Documentation", ["Juniper Networks, Inc."], 1) ] # If true, show URL addresses after external links. # man_show_urls = False # -- Options for Texinfo output ------------------------------------------- # Grouping the document tree into Texinfo files. List of tuples # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [ ( "index", "JunosPyEZ", "Junos PyEZ Documentation", "Juniper Networks, Inc.", "JunosPyEZ", "One line description of project.", "Miscellaneous", ), ] # Documents to append as an appendix to all manuals. # texinfo_appendices = [] # If false, no module index is generated. # texinfo_domain_indices = True # How to display URL addresses: 'footnote', 'no', or 'inline'. # texinfo_show_urls = 'footnote' # If true, do not generate a @detailmenu in the "Top" node's menu. # texinfo_no_detailmenu = False # -- Options for Epub output ---------------------------------------------- # Bibliographic Dublin Core info. epub_title = "Junos PyEZ" epub_author = "Juniper Networks, Inc." epub_publisher = "Juniper Networks, Inc." epub_copyright = "2014, Juniper Networks, Inc." # The basename for the epub file. It defaults to the project name. # epub_basename = u'Junos PyEZ' # The HTML theme for the epub output. Since the default themes are not # optimized for small screen space, using the same theme for HTML and epub # output is usually not wise. This defaults to 'epub', a theme designed to # save visual space. # epub_theme = 'epub' # The language of the text. It defaults to the language option # or en if the language is not set. # epub_language = '' # The scheme of the identifier. Typical schemes are ISBN or URL. # epub_scheme = '' # The unique identifier of the text. This can be a ISBN number # or the project homepage. # epub_identifier = '' # A unique identification for the text. # epub_uid = '' # A tuple containing the cover image and cover page html template filenames. # epub_cover = () # A sequence of (type, uri, title) tuples for the guide element of content.opf. # epub_guide = () # HTML files that should be inserted before the pages created by sphinx. # The format is a list of tuples containing the path and title. # epub_pre_files = [] # HTML files shat should be inserted after the pages created by sphinx. # The format is a list of tuples containing the path and title. # epub_post_files = [] # A list of files that should not be packed into the epub file. epub_exclude_files = ["search.html"] # The depth of the table of contents in toc.ncx. # epub_tocdepth = 3 # Allow duplicate toc entries. # epub_tocdup = True # Choose between 'default' and 'includehidden'. # epub_tocscope = 'default' # Fix unsupported image types using the PIL. # epub_fix_images = False # Scale large images. # epub_max_image_width = 0 # How to display URL addresses: 'footnote', 'no', or 'inline'. # epub_show_urls = 'inline' # If false, no index is generated. # epub_use_index = True py-junos-eznc-2.7.3/docs/docreq.txt000066400000000000000000000003441475361112400172170ustar00rootroot00000000000000git+https://github.com/ryan-roemer/sphinx-bootstrap-theme.git#egg=sphinx-bootstrap-theme lxml>=3.2.4 ncclient==0.6.15 scp>=0.7.0 jinja2>=2.7.1 PyYAML>=5.1 paramiko>=3.5.0 six pyserial yamlordereddictloader pyparsing transitions py-junos-eznc-2.7.3/docs/index.rst000066400000000000000000000010321475361112400170350ustar00rootroot00000000000000.. Junos PyEZ documentation master file, created by sphinx-quickstart on Thu May 8 10:38:09 2014. You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. Welcome to Junos PyEZ's documentation! ====================================== *Junos PyEZ* is a Python library to remotely manage/automate Junos devices Contents: .. toctree:: :maxdepth: 2 jnpr.junos TableView Indices and tables ================== * :ref:`genindex` * :ref:`modindex` * :ref:`search` py-junos-eznc-2.7.3/docs/jnpr.junos.factory.rst000066400000000000000000000025041475361112400215070ustar00rootroot00000000000000jnpr.junos.factory ========================== jnpr.junos.factory.cfgtable ---------------------------------- .. automodule:: jnpr.junos.factory.cfgtable :members: :undoc-members: :show-inheritance: jnpr.junos.factory.factory_cls ------------------------------------- .. automodule:: jnpr.junos.factory.factory_cls :members: :undoc-members: :show-inheritance: jnpr.junos.factory.factory_loader ---------------------------------------- .. automodule:: jnpr.junos.factory.factory_loader :members: :undoc-members: :show-inheritance: jnpr.junos.factory.optable --------------------------------- .. automodule:: jnpr.junos.factory.optable :members: :undoc-members: :show-inheritance: jnpr.junos.factory.table ------------------------------- .. automodule:: jnpr.junos.factory.table :members: :undoc-members: :show-inheritance: jnpr.junos.factory.view ------------------------------ .. automodule:: jnpr.junos.factory.view :members: :undoc-members: :show-inheritance: jnpr.junos.factory.viewfields ------------------------------------ .. automodule:: jnpr.junos.factory.viewfields :members: :undoc-members: :show-inheritance: Module contents --------------- .. automodule:: jnpr.junos.factory :members: :undoc-members: :show-inheritance: py-junos-eznc-2.7.3/docs/jnpr.junos.facts.rst000066400000000000000000000001331475361112400211340ustar00rootroot00000000000000jnpr.junos.facts ======================== .. automodule:: jnpr.junos.facts :synopsis: py-junos-eznc-2.7.3/docs/jnpr.junos.rst000066400000000000000000000013201475361112400200340ustar00rootroot00000000000000jnpr.junos ================== .. toctree:: :maxdepth: 1 jnpr.junos.factory jnpr.junos.facts jnpr.junos.utils jnpr.junos.device ------------------------ .. automodule:: jnpr.junos.device :members: :undoc-members: :show-inheritance: jnpr.junos.exception --------------------------- .. automodule:: jnpr.junos.exception :members: :undoc-members: :show-inheritance: jnpr.junos.jxml ---------------------- .. automodule:: jnpr.junos.jxml :members: :undoc-members: :show-inheritance: jnpr.junos.rpcmeta ------------------------- .. automodule:: jnpr.junos.rpcmeta .. autoclass:: jnpr.junos.rpcmeta._RpcMetaExec :members: :undoc-members: :show-inheritance: py-junos-eznc-2.7.3/docs/jnpr.junos.utils.rst000077500000000000000000000021001475361112400211730ustar00rootroot00000000000000jnpr.junos.utils ======================== jnpr.junos.utils.config ------------------------------ .. automodule:: jnpr.junos.utils.config :members: :undoc-members: :show-inheritance: jnpr.junos.utils.fs -------------------------- .. automodule:: jnpr.junos.utils.fs :members: :undoc-members: :show-inheritance: jnpr.junos.utils.scp --------------------------- .. automodule:: jnpr.junos.utils.scp :members: :undoc-members: :show-inheritance: jnpr.junos.utils.start_shell ----------------------------------- .. automodule:: jnpr.junos.utils.start_shell :members: :undoc-members: :show-inheritance: jnpr.junos.utils.sw -------------------------- .. automodule:: jnpr.junos.utils.sw :members: :undoc-members: :show-inheritance: jnpr.junos.utils.util ---------------------------- .. automodule:: jnpr.junos.utils.util :members: :undoc-members: :show-inheritance: jnpr.junos.utils.ftp ---------------------------- .. automodule:: jnpr.junos.utils.ftp :members: :undoc-members: :show-inheritance: py-junos-eznc-2.7.3/docs/juniper.png000066400000000000000000000116641475361112400173720ustar00rootroot00000000000000PNG  IHDRhg[}gAMA|Q cHRMR@}y<s,٩<9SbL!GĈ 3,F0+7T3IlpX"61"H _qW,d ėrIKst.ښAdp&+g]RәY2EE44432PuoJEzg`̉j- -b8o׿M]9La.+-%Mȧg3YះuAxEK i<:ŹPcu*@~(  ]o0 ~y*s7g%9%(3H*@C`-pn VH@ A1 jPA3hA'8΃Kn`Lg` a!2D!H҇ dAP B Byf*z: @]h ~L CUp΅ p%;56< ?" GxG iE>&2 oQEGlQP UFFuzQ7QcYG4G۠t]nB/o'Я1 xb"1I>Lf3bX} *QYvGĩp( &q x)&gsF|7:~@&h!$&B%pH$D.q#xx8F|K!\H$!i.%L";r3EHK-AFCbH$^RSIrdd 3Rx)-))zR#RsiSiT#Wd2Z2n2l2d)EBaQ6S))T UEMSPgeedɆfȞ!4--VJ;N g%K-sɵݖ{'OwO%)P_RRۥEK/+))U<د8䡔TtAiF쨜\|FyZbU)W9.Kw+YUEUOUjꂚZZZCu:C=^\G}VCEO#OE&^WOs^K[+\kV֔vv[]n>z^^u}XROm`m3h01$:fь|:kG23hbabhrT4ߴw3=3Y-s.q_vǂbgբ⃥%߲rJ*֪jAe0JOY6rvvtXLǎl&I']$NϝM.6.\ι"En2nnn[g=,=t٪E2}4\j5loDŽǞ~q=''Z^utv&vvEv >mяN9-{ LOgsΝK?7s>xOL n\x }N}g/]>uɫ,u[dS@u]7ot.<30tKn]p;;SwSyoEVc˷j?? ^̦8aF0<j̼Z\-˲NE0v#o+?v e%J'ھ ivQ ׅ6˕RLuBmHč2?-!P>)15(gYBM5 :$NYLkXӦL9鲰|Ni.}IϜ!ALi@Xdhhh&|"8!xW+SXaS qW| *t;601R@~$ ./X*۩Li@/J-'=2U)&b\>GAVS=v01!$kx*|_{Z{O-O+ڗbJc B'"/LA }am_T4T)Zh7y\" W ]mh4>Pmq, [?,W:aW'Vvn@b\"^ /0ƎH$2]h x?aTu!9W1UZfWقvX-ďӹi ߠdj TE Au;`k> @(TC{Ɣ@KtLUQ^A2߹zmW7$g?3wqA1~0e83A |?tӃ~f(!'0="`Kϩ?Aalzֶ0S T c ۦ(kft$1zLOb X(bD&gX_ۊ:!,\*I,Rc3(rzmL !Gf.S8l>q7_C}_k"1 ܍c+?Q;A6'ә8 UC7!Q1_b &:/gQ{t<`N3U sLi14ꈁo@_JG)f),?}`Jʡ*KnQ:@-mK{l)7 ,RJ noo&fcnEIsJx4/Q8nCnⴤdE:Bқ>}F4}I$7=8zYڒ.woh{Mk~-:O=8Me{o QK se;6Gq| @ b TOiXg$*jCn'ȔA+~Mm}Kic kI)ٝtJlul$n{BZM 'k0JaSX[(IOmn\# UꞋA~x,_ PtMV>&QhPq ZAtmȠ$66M$I lnWd-`  Dг@]G%־u!AdnKP\Bᭊrvoq-8< LwػeOb[v O z?} lbmO њxơC5H B7'mFl]iۻkHY_:K殦[-:}, 7ӧƷ;IENDB`py-junos-eznc-2.7.3/docs/make.bat000066400000000000000000000145011475361112400166060ustar00rootroot00000000000000@ECHO OFF REM Command file for Sphinx documentation if "%SPHINXBUILD%" == "" ( set SPHINXBUILD=sphinx-build ) set BUILDDIR=_build set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% . set I18NSPHINXOPTS=%SPHINXOPTS% . if NOT "%PAPER%" == "" ( set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS% set I18NSPHINXOPTS=-D latex_paper_size=%PAPER% %I18NSPHINXOPTS% ) if "%1" == "" goto help if "%1" == "help" ( :help echo.Please use `make ^` where ^ is one of echo. html to make standalone HTML files echo. dirhtml to make HTML files named index.html in directories echo. singlehtml to make a single large HTML file echo. pickle to make pickle files echo. json to make JSON files echo. htmlhelp to make HTML files and a HTML help project echo. qthelp to make HTML files and a qthelp project echo. devhelp to make HTML files and a Devhelp project echo. epub to make an epub echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter echo. text to make text files echo. man to make manual pages echo. texinfo to make Texinfo files echo. gettext to make PO message catalogs echo. changes to make an overview over all changed/added/deprecated items echo. xml to make Docutils-native XML files echo. pseudoxml to make pseudoxml-XML files for display purposes echo. linkcheck to check all external links for integrity echo. doctest to run all doctests embedded in the documentation if enabled goto end ) if "%1" == "clean" ( for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i del /q /s %BUILDDIR%\* goto end ) %SPHINXBUILD% 2> nul if errorlevel 9009 ( echo. echo.The 'sphinx-build' command was not found. Make sure you have Sphinx echo.installed, then set the SPHINXBUILD environment variable to point echo.to the full path of the 'sphinx-build' executable. Alternatively you echo.may add the Sphinx directory to PATH. echo. echo.If you don't have Sphinx installed, grab it from echo.http://sphinx-doc.org/ exit /b 1 ) if "%1" == "html" ( %SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html if errorlevel 1 exit /b 1 echo. echo.Build finished. The HTML pages are in %BUILDDIR%/html. goto end ) if "%1" == "dirhtml" ( %SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml if errorlevel 1 exit /b 1 echo. echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml. goto end ) if "%1" == "singlehtml" ( %SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml if errorlevel 1 exit /b 1 echo. echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml. goto end ) if "%1" == "pickle" ( %SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle if errorlevel 1 exit /b 1 echo. echo.Build finished; now you can process the pickle files. goto end ) if "%1" == "json" ( %SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json if errorlevel 1 exit /b 1 echo. echo.Build finished; now you can process the JSON files. goto end ) if "%1" == "htmlhelp" ( %SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp if errorlevel 1 exit /b 1 echo. echo.Build finished; now you can run HTML Help Workshop with the ^ .hhp project file in %BUILDDIR%/htmlhelp. goto end ) if "%1" == "qthelp" ( %SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp if errorlevel 1 exit /b 1 echo. echo.Build finished; now you can run "qcollectiongenerator" with the ^ .qhcp project file in %BUILDDIR%/qthelp, like this: echo.^> qcollectiongenerator %BUILDDIR%\qthelp\JunosPyEZ.qhcp echo.To view the help file: echo.^> assistant -collectionFile %BUILDDIR%\qthelp\JunosPyEZ.ghc goto end ) if "%1" == "devhelp" ( %SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp if errorlevel 1 exit /b 1 echo. echo.Build finished. goto end ) if "%1" == "epub" ( %SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub if errorlevel 1 exit /b 1 echo. echo.Build finished. The epub file is in %BUILDDIR%/epub. goto end ) if "%1" == "latex" ( %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex if errorlevel 1 exit /b 1 echo. echo.Build finished; the LaTeX files are in %BUILDDIR%/latex. goto end ) if "%1" == "latexpdf" ( %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex cd %BUILDDIR%/latex make all-pdf cd %BUILDDIR%/.. echo. echo.Build finished; the PDF files are in %BUILDDIR%/latex. goto end ) if "%1" == "latexpdfja" ( %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex cd %BUILDDIR%/latex make all-pdf-ja cd %BUILDDIR%/.. echo. echo.Build finished; the PDF files are in %BUILDDIR%/latex. goto end ) if "%1" == "text" ( %SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text if errorlevel 1 exit /b 1 echo. echo.Build finished. The text files are in %BUILDDIR%/text. goto end ) if "%1" == "man" ( %SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man if errorlevel 1 exit /b 1 echo. echo.Build finished. The manual pages are in %BUILDDIR%/man. goto end ) if "%1" == "texinfo" ( %SPHINXBUILD% -b texinfo %ALLSPHINXOPTS% %BUILDDIR%/texinfo if errorlevel 1 exit /b 1 echo. echo.Build finished. The Texinfo files are in %BUILDDIR%/texinfo. goto end ) if "%1" == "gettext" ( %SPHINXBUILD% -b gettext %I18NSPHINXOPTS% %BUILDDIR%/locale if errorlevel 1 exit /b 1 echo. echo.Build finished. The message catalogs are in %BUILDDIR%/locale. goto end ) if "%1" == "changes" ( %SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes if errorlevel 1 exit /b 1 echo. echo.The overview file is in %BUILDDIR%/changes. goto end ) if "%1" == "linkcheck" ( %SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck if errorlevel 1 exit /b 1 echo. echo.Link check complete; look for any errors in the above output ^ or in %BUILDDIR%/linkcheck/output.txt. goto end ) if "%1" == "doctest" ( %SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest if errorlevel 1 exit /b 1 echo. echo.Testing of doctests in the sources finished, look at the ^ results in %BUILDDIR%/doctest/output.txt. goto end ) if "%1" == "xml" ( %SPHINXBUILD% -b xml %ALLSPHINXOPTS% %BUILDDIR%/xml if errorlevel 1 exit /b 1 echo. echo.Build finished. The XML files are in %BUILDDIR%/xml. goto end ) if "%1" == "pseudoxml" ( %SPHINXBUILD% -b pseudoxml %ALLSPHINXOPTS% %BUILDDIR%/pseudoxml if errorlevel 1 exit /b 1 echo. echo.Build finished. The pseudo-XML files are in %BUILDDIR%/pseudoxml. goto end ) :end py-junos-eznc-2.7.3/entrypoint.sh000077500000000000000000000017441475361112400170300ustar00rootroot00000000000000#!/bin/bash set +e ## Functions function apk_add { echo "Installing additional OS packages" while IFS= read -r pkg do echo "Installing ${pkg}" apk add --no-cache -q "${pkg}" done < "$1" } function pip_install { echo "Installing Python packages" pip install -r $1 } function run_scripts { if [ "$1" = "python3" ] || [ "$1" = "python" ]; then python3 else echo "Executing defined script" $1 ${@:2} fi } ## Manually defined variables will take precedence if [ "$APK" ]; then APK=$APK elif [ -f "/extras/apk.txt" ]; then APK="/extras/apk.txt" else APK='' fi if [ "$REQ" ]; then REQ=$REQ elif [ -f "/extras/requirements.txt" ];then REQ="/extras/requirements.txt" else REQ='' fi if [ "$#" ]; then SCRIPT=$@ else SCRIPT='' fi ## Install extras, run scripts, or start a shell session [[ -z "$APK" ]] || apk_add "$APK" [[ -z "$REQ" ]] || pip_install "$REQ" [[ -z "$SCRIPT" ]] && /bin/bash || run_scripts "$SCRIPT" py-junos-eznc-2.7.3/env-setup.sh000077500000000000000000000011251475361112400165340ustar00rootroot00000000000000#!/bin/bash # usage: source env-setup # When run using source as directed, $0 gets set to bash, so we must use $BASH_SOURCE if [ -n "$BASH_SOURCE" ] ; then HACKING_DIR=`dirname $BASH_SOURCE` elif [ $(basename $0) = "env-setup" ]; then HACKING_DIR=`dirname $0` else HACKING_DIR="$PWD" fi # The below is an alternative to readlink -fn which doesn't exist on OS X # Source: http://stackoverflow.com/a/1678636 FULL_PATH=`python -c "import os; print(os.path.realpath('$HACKING_DIR'))"` PRJ_LIB="$FULL_PATH/lib" [[ $PYTHONPATH != ${PRJ_LIB}* ]] && export PYTHONPATH=$PRJ_LIB:$PYTHONPATH py-junos-eznc-2.7.3/lib/000077500000000000000000000000001475361112400150165ustar00rootroot00000000000000py-junos-eznc-2.7.3/lib/jnpr/000077500000000000000000000000001475361112400157675ustar00rootroot00000000000000py-junos-eznc-2.7.3/lib/jnpr/__init__.py000066400000000000000000000000701475361112400200750ustar00rootroot00000000000000__import__("pkg_resources").declare_namespace(__name__) py-junos-eznc-2.7.3/lib/jnpr/junos/000077500000000000000000000000001475361112400171255ustar00rootroot00000000000000py-junos-eznc-2.7.3/lib/jnpr/junos/__init__.py000066400000000000000000000024171475361112400212420ustar00rootroot00000000000000from jnpr.junos.device import Device from jnpr.junos.console import Console from jnpr.junos.factory.to_json import PyEzJSONEncoder from jnpr.junos.facts.swver import version_info from jnpr.junos.facts.swver import version_yaml_representer from . import jxml from . import jxml as JXML from . import version from . import exception import json import yaml import logging __date__ = version.DATE # import time # __date__ = time.strftime("%Y-%b-%d") # Set default JSON encoder json._default_encoder = PyEzJSONEncoder() # Disable ignore_aliases for YAML dumper # To support version_info yaml.dumper.SafeDumper.ignore_aliases = lambda self, data: True yaml.dumper.Dumper.ignore_aliases = lambda self, data: True # Add YAML representer for version_info yaml.Dumper.add_multi_representer(version_info, version_yaml_representer) yaml.SafeDumper.add_multi_representer(version_info, version_yaml_representer) # Suppress Paramiko logger warnings plog = logging.getLogger("paramiko") if not plog.handlers: class NullHandler(logging.Handler): def emit(self, record): pass plog.addHandler(NullHandler()) from ._version import get_versions __version__ = get_versions()["version"] del get_versions from . import _version __version__ = _version.get_versions()["version"] py-junos-eznc-2.7.3/lib/jnpr/junos/_version.py000066400000000000000000000601301475361112400213230ustar00rootroot00000000000000# This file helps to compute a version number in source trees obtained from # git-archive tarball (such as those provided by githubs download-from-tag # feature). Distribution tarballs (built by setup.py sdist) and build # directories (produced by setup.py build) will contain a much shorter file # that just contains the computed version number. # This file is released into the public domain. # Generated by versioneer-0.29 # https://github.com/python-versioneer/python-versioneer """Git implementation of _version.py.""" import errno import os import re import subprocess import sys from typing import Any, Callable, Dict, List, Optional, Tuple import functools def get_keywords() -> Dict[str, str]: """Get the keywords needed to look up the version information.""" # these strings will be replaced by git during git-archive. # setup.py/versioneer.py will grep for the variable names, so they must # each be defined on a line of their own. _version.py will just call # get_keywords(). git_refnames = " (HEAD -> master, tag: 2.7.3)" git_full = "aa30d61411acd98d943f1e0da1a079fb5124ba6b" git_date = "2025-02-14 15:22:20 +0530" keywords = {"refnames": git_refnames, "full": git_full, "date": git_date} return keywords class VersioneerConfig: """Container for Versioneer configuration parameters.""" VCS: str style: str tag_prefix: str parentdir_prefix: str versionfile_source: str verbose: bool def get_config() -> VersioneerConfig: """Create, populate and return the VersioneerConfig() object.""" # these strings are filled in when 'setup.py versioneer' creates # _version.py cfg = VersioneerConfig() cfg.VCS = "git" cfg.style = "pep440" cfg.tag_prefix = "" cfg.parentdir_prefix = "None" cfg.versionfile_source = "lib/jnpr/junos/_version.py" cfg.verbose = False return cfg class NotThisMethod(Exception): """Exception raised if a method is not valid for the current scenario.""" LONG_VERSION_PY: Dict[str, str] = {} HANDLERS: Dict[str, Dict[str, Callable]] = {} def register_vcs_handler(vcs: str, method: str) -> Callable: # decorator """Create decorator to mark a method as the handler of a VCS.""" def decorate(f: Callable) -> Callable: """Store f in HANDLERS[vcs][method].""" if vcs not in HANDLERS: HANDLERS[vcs] = {} HANDLERS[vcs][method] = f return f return decorate def run_command( commands: List[str], args: List[str], cwd: Optional[str] = None, verbose: bool = False, hide_stderr: bool = False, env: Optional[Dict[str, str]] = None, ) -> Tuple[Optional[str], Optional[int]]: """Call the given command(s).""" assert isinstance(commands, list) process = None popen_kwargs: Dict[str, Any] = {} if sys.platform == "win32": # This hides the console window if pythonw.exe is used startupinfo = subprocess.STARTUPINFO() startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW popen_kwargs["startupinfo"] = startupinfo for command in commands: try: dispcmd = str([command] + args) # remember shell=False, so use git.cmd on windows, not just git process = subprocess.Popen( [command] + args, cwd=cwd, env=env, stdout=subprocess.PIPE, stderr=(subprocess.PIPE if hide_stderr else None), **popen_kwargs, ) break except OSError as e: if e.errno == errno.ENOENT: continue if verbose: print("unable to run %s" % dispcmd) print(e) return None, None else: if verbose: print("unable to find command, tried %s" % (commands,)) return None, None stdout = process.communicate()[0].strip().decode() if process.returncode != 0: if verbose: print("unable to run %s (error)" % dispcmd) print("stdout was %s" % stdout) return None, process.returncode return stdout, process.returncode def versions_from_parentdir( parentdir_prefix: str, root: str, verbose: bool, ) -> Dict[str, Any]: """Try to determine the version from the parent directory name. Source tarballs conventionally unpack into a directory that includes both the project name and a version string. We will also support searching up two directory levels for an appropriately named parent directory """ rootdirs = [] for _ in range(3): dirname = os.path.basename(root) if dirname.startswith(parentdir_prefix): return { "version": dirname[len(parentdir_prefix) :], "full-revisionid": None, "dirty": False, "error": None, "date": None, } rootdirs.append(root) root = os.path.dirname(root) # up a level if verbose: print( "Tried directories %s but none started with prefix %s" % (str(rootdirs), parentdir_prefix) ) raise NotThisMethod("rootdir doesn't start with parentdir_prefix") @register_vcs_handler("git", "get_keywords") def git_get_keywords(versionfile_abs: str) -> Dict[str, str]: """Extract version information from the given file.""" # the code embedded in _version.py can just fetch the value of these # keywords. When used from setup.py, we don't want to import _version.py, # so we do it with a regexp instead. This function is not used from # _version.py. keywords: Dict[str, str] = {} try: with open(versionfile_abs, "r") as fobj: for line in fobj: if line.strip().startswith("git_refnames ="): mo = re.search(r'=\s*"(.*)"', line) if mo: keywords["refnames"] = mo.group(1) if line.strip().startswith("git_full ="): mo = re.search(r'=\s*"(.*)"', line) if mo: keywords["full"] = mo.group(1) if line.strip().startswith("git_date ="): mo = re.search(r'=\s*"(.*)"', line) if mo: keywords["date"] = mo.group(1) except OSError: pass return keywords @register_vcs_handler("git", "keywords") def git_versions_from_keywords( keywords: Dict[str, str], tag_prefix: str, verbose: bool, ) -> Dict[str, Any]: """Get version information from git keywords.""" if "refnames" not in keywords: raise NotThisMethod("Short version file found") date = keywords.get("date") if date is not None: # Use only the last line. Previous lines may contain GPG signature # information. date = date.splitlines()[-1] # git-2.2.0 added "%cI", which expands to an ISO-8601 -compliant # datestamp. However we prefer "%ci" (which expands to an "ISO-8601 # -like" string, which we must then edit to make compliant), because # it's been around since git-1.5.3, and it's too difficult to # discover which version we're using, or to work around using an # older one. date = date.strip().replace(" ", "T", 1).replace(" ", "", 1) refnames = keywords["refnames"].strip() if refnames.startswith("$Format"): if verbose: print("keywords are unexpanded, not using") raise NotThisMethod("unexpanded keywords, not a git-archive tarball") refs = {r.strip() for r in refnames.strip("()").split(",")} # starting in git-1.8.3, tags are listed as "tag: foo-1.0" instead of # just "foo-1.0". If we see a "tag: " prefix, prefer those. TAG = "tag: " tags = {r[len(TAG) :] for r in refs if r.startswith(TAG)} if not tags: # Either we're using git < 1.8.3, or there really are no tags. We use # a heuristic: assume all version tags have a digit. The old git %d # expansion behaves like git log --decorate=short and strips out the # refs/heads/ and refs/tags/ prefixes that would let us distinguish # between branches and tags. By ignoring refnames without digits, we # filter out many common branch names like "release" and # "stabilization", as well as "HEAD" and "master". tags = {r for r in refs if re.search(r"\d", r)} if verbose: print("discarding '%s', no digits" % ",".join(refs - tags)) if verbose: print("likely tags: %s" % ",".join(sorted(tags))) for ref in sorted(tags): # sorting will prefer e.g. "2.0" over "2.0rc1" if ref.startswith(tag_prefix): r = ref[len(tag_prefix) :] # Filter out refs that exactly match prefix or that don't start # with a number once the prefix is stripped (mostly a concern # when prefix is '') if not re.match(r"\d", r): continue if verbose: print("picking %s" % r) return { "version": r, "full-revisionid": keywords["full"].strip(), "dirty": False, "error": None, "date": date, } # no suitable tags, so version is "0+unknown", but full hex is still there if verbose: print("no suitable tags, using unknown + full revision id") return { "version": "0+unknown", "full-revisionid": keywords["full"].strip(), "dirty": False, "error": "no suitable tags", "date": None, } @register_vcs_handler("git", "pieces_from_vcs") def git_pieces_from_vcs( tag_prefix: str, root: str, verbose: bool, runner: Callable = run_command ) -> Dict[str, Any]: """Get version from 'git describe' in the root of the source tree. This only gets called if the git-archive 'subst' keywords were *not* expanded, and _version.py hasn't already been rewritten with a short version string, meaning we're inside a checked out source tree. """ GITS = ["git"] if sys.platform == "win32": GITS = ["git.cmd", "git.exe"] # GIT_DIR can interfere with correct operation of Versioneer. # It may be intended to be passed to the Versioneer-versioned project, # but that should not change where we get our version from. env = os.environ.copy() env.pop("GIT_DIR", None) runner = functools.partial(runner, env=env) _, rc = runner(GITS, ["rev-parse", "--git-dir"], cwd=root, hide_stderr=not verbose) if rc != 0: if verbose: print("Directory %s not under git control" % root) raise NotThisMethod("'git rev-parse --git-dir' returned error") # if there is a tag matching tag_prefix, this yields TAG-NUM-gHEX[-dirty] # if there isn't one, this yields HEX[-dirty] (no NUM) describe_out, rc = runner( GITS, [ "describe", "--tags", "--dirty", "--always", "--long", "--match", f"{tag_prefix}[[:digit:]]*", ], cwd=root, ) # --long was added in git-1.5.5 if describe_out is None: raise NotThisMethod("'git describe' failed") describe_out = describe_out.strip() full_out, rc = runner(GITS, ["rev-parse", "HEAD"], cwd=root) if full_out is None: raise NotThisMethod("'git rev-parse' failed") full_out = full_out.strip() pieces: Dict[str, Any] = {} pieces["long"] = full_out pieces["short"] = full_out[:7] # maybe improved later pieces["error"] = None branch_name, rc = runner(GITS, ["rev-parse", "--abbrev-ref", "HEAD"], cwd=root) # --abbrev-ref was added in git-1.6.3 if rc != 0 or branch_name is None: raise NotThisMethod("'git rev-parse --abbrev-ref' returned error") branch_name = branch_name.strip() if branch_name == "HEAD": # If we aren't exactly on a branch, pick a branch which represents # the current commit. If all else fails, we are on a branchless # commit. branches, rc = runner(GITS, ["branch", "--contains"], cwd=root) # --contains was added in git-1.5.4 if rc != 0 or branches is None: raise NotThisMethod("'git branch --contains' returned error") branches = branches.split("\n") # Remove the first line if we're running detached if "(" in branches[0]: branches.pop(0) # Strip off the leading "* " from the list of branches. branches = [branch[2:] for branch in branches] if "master" in branches: branch_name = "master" elif not branches: branch_name = None else: # Pick the first branch that is returned. Good or bad. branch_name = branches[0] pieces["branch"] = branch_name # parse describe_out. It will be like TAG-NUM-gHEX[-dirty] or HEX[-dirty] # TAG might have hyphens. git_describe = describe_out # look for -dirty suffix dirty = git_describe.endswith("-dirty") pieces["dirty"] = dirty if dirty: git_describe = git_describe[: git_describe.rindex("-dirty")] # now we have TAG-NUM-gHEX or HEX if "-" in git_describe: # TAG-NUM-gHEX mo = re.search(r"^(.+)-(\d+)-g([0-9a-f]+)$", git_describe) if not mo: # unparsable. Maybe git-describe is misbehaving? pieces["error"] = "unable to parse git-describe output: '%s'" % describe_out return pieces # tag full_tag = mo.group(1) if not full_tag.startswith(tag_prefix): if verbose: fmt = "tag '%s' doesn't start with prefix '%s'" print(fmt % (full_tag, tag_prefix)) pieces["error"] = "tag '%s' doesn't start with prefix '%s'" % ( full_tag, tag_prefix, ) return pieces pieces["closest-tag"] = full_tag[len(tag_prefix) :] # distance: number of commits since tag pieces["distance"] = int(mo.group(2)) # commit: short hex revision ID pieces["short"] = mo.group(3) else: # HEX: no tags pieces["closest-tag"] = None out, rc = runner(GITS, ["rev-list", "HEAD", "--left-right"], cwd=root) pieces["distance"] = len(out.split()) # total number of commits # commit date: see ISO-8601 comment in git_versions_from_keywords() date = runner(GITS, ["show", "-s", "--format=%ci", "HEAD"], cwd=root)[0].strip() # Use only the last line. Previous lines may contain GPG signature # information. date = date.splitlines()[-1] pieces["date"] = date.strip().replace(" ", "T", 1).replace(" ", "", 1) return pieces def plus_or_dot(pieces: Dict[str, Any]) -> str: """Return a + if we don't already have one, else return a .""" if "+" in pieces.get("closest-tag", ""): return "." return "+" def render_pep440(pieces: Dict[str, Any]) -> str: """Build up version string, with post-release "local version identifier". Our goal: TAG[+DISTANCE.gHEX[.dirty]] . Note that if you get a tagged build and then dirty it, you'll get TAG+0.gHEX.dirty Exceptions: 1: no tags. git_describe was just HEX. 0+untagged.DISTANCE.gHEX[.dirty] """ if pieces["closest-tag"]: rendered = pieces["closest-tag"] if pieces["distance"] or pieces["dirty"]: rendered += plus_or_dot(pieces) rendered += "%d.g%s" % (pieces["distance"], pieces["short"]) if pieces["dirty"]: rendered += ".dirty" else: # exception #1 rendered = "0+untagged.%d.g%s" % (pieces["distance"], pieces["short"]) if pieces["dirty"]: rendered += ".dirty" return rendered def render_pep440_branch(pieces: Dict[str, Any]) -> str: """TAG[[.dev0]+DISTANCE.gHEX[.dirty]] . The ".dev0" means not master branch. Note that .dev0 sorts backwards (a feature branch will appear "older" than the master branch). Exceptions: 1: no tags. 0[.dev0]+untagged.DISTANCE.gHEX[.dirty] """ if pieces["closest-tag"]: rendered = pieces["closest-tag"] if pieces["distance"] or pieces["dirty"]: if pieces["branch"] != "master": rendered += ".dev0" rendered += plus_or_dot(pieces) rendered += "%d.g%s" % (pieces["distance"], pieces["short"]) if pieces["dirty"]: rendered += ".dirty" else: # exception #1 rendered = "0" if pieces["branch"] != "master": rendered += ".dev0" rendered += "+untagged.%d.g%s" % (pieces["distance"], pieces["short"]) if pieces["dirty"]: rendered += ".dirty" return rendered def pep440_split_post(ver: str) -> Tuple[str, Optional[int]]: """Split pep440 version string at the post-release segment. Returns the release segments before the post-release and the post-release version number (or -1 if no post-release segment is present). """ vc = str.split(ver, ".post") return vc[0], int(vc[1] or 0) if len(vc) == 2 else None def render_pep440_pre(pieces: Dict[str, Any]) -> str: """TAG[.postN.devDISTANCE] -- No -dirty. Exceptions: 1: no tags. 0.post0.devDISTANCE """ if pieces["closest-tag"]: if pieces["distance"]: # update the post release segment tag_version, post_version = pep440_split_post(pieces["closest-tag"]) rendered = tag_version if post_version is not None: rendered += ".post%d.dev%d" % (post_version + 1, pieces["distance"]) else: rendered += ".post0.dev%d" % (pieces["distance"]) else: # no commits, use the tag as the version rendered = pieces["closest-tag"] else: # exception #1 rendered = "0.post0.dev%d" % pieces["distance"] return rendered def render_pep440_post(pieces: Dict[str, Any]) -> str: """TAG[.postDISTANCE[.dev0]+gHEX] . The ".dev0" means dirty. Note that .dev0 sorts backwards (a dirty tree will appear "older" than the corresponding clean one), but you shouldn't be releasing software with -dirty anyways. Exceptions: 1: no tags. 0.postDISTANCE[.dev0] """ if pieces["closest-tag"]: rendered = pieces["closest-tag"] if pieces["distance"] or pieces["dirty"]: rendered += ".post%d" % pieces["distance"] if pieces["dirty"]: rendered += ".dev0" rendered += plus_or_dot(pieces) rendered += "g%s" % pieces["short"] else: # exception #1 rendered = "0.post%d" % pieces["distance"] if pieces["dirty"]: rendered += ".dev0" rendered += "+g%s" % pieces["short"] return rendered def render_pep440_post_branch(pieces: Dict[str, Any]) -> str: """TAG[.postDISTANCE[.dev0]+gHEX[.dirty]] . The ".dev0" means not master branch. Exceptions: 1: no tags. 0.postDISTANCE[.dev0]+gHEX[.dirty] """ if pieces["closest-tag"]: rendered = pieces["closest-tag"] if pieces["distance"] or pieces["dirty"]: rendered += ".post%d" % pieces["distance"] if pieces["branch"] != "master": rendered += ".dev0" rendered += plus_or_dot(pieces) rendered += "g%s" % pieces["short"] if pieces["dirty"]: rendered += ".dirty" else: # exception #1 rendered = "0.post%d" % pieces["distance"] if pieces["branch"] != "master": rendered += ".dev0" rendered += "+g%s" % pieces["short"] if pieces["dirty"]: rendered += ".dirty" return rendered def render_pep440_old(pieces: Dict[str, Any]) -> str: """TAG[.postDISTANCE[.dev0]] . The ".dev0" means dirty. Exceptions: 1: no tags. 0.postDISTANCE[.dev0] """ if pieces["closest-tag"]: rendered = pieces["closest-tag"] if pieces["distance"] or pieces["dirty"]: rendered += ".post%d" % pieces["distance"] if pieces["dirty"]: rendered += ".dev0" else: # exception #1 rendered = "0.post%d" % pieces["distance"] if pieces["dirty"]: rendered += ".dev0" return rendered def render_git_describe(pieces: Dict[str, Any]) -> str: """TAG[-DISTANCE-gHEX][-dirty]. Like 'git describe --tags --dirty --always'. Exceptions: 1: no tags. HEX[-dirty] (note: no 'g' prefix) """ if pieces["closest-tag"]: rendered = pieces["closest-tag"] if pieces["distance"]: rendered += "-%d-g%s" % (pieces["distance"], pieces["short"]) else: # exception #1 rendered = pieces["short"] if pieces["dirty"]: rendered += "-dirty" return rendered def render_git_describe_long(pieces: Dict[str, Any]) -> str: """TAG-DISTANCE-gHEX[-dirty]. Like 'git describe --tags --dirty --always -long'. The distance/hash is unconditional. Exceptions: 1: no tags. HEX[-dirty] (note: no 'g' prefix) """ if pieces["closest-tag"]: rendered = pieces["closest-tag"] rendered += "-%d-g%s" % (pieces["distance"], pieces["short"]) else: # exception #1 rendered = pieces["short"] if pieces["dirty"]: rendered += "-dirty" return rendered def render(pieces: Dict[str, Any], style: str) -> Dict[str, Any]: """Render the given version pieces into the requested style.""" if pieces["error"]: return { "version": "unknown", "full-revisionid": pieces.get("long"), "dirty": None, "error": pieces["error"], "date": None, } if not style or style == "default": style = "pep440" # the default if style == "pep440": rendered = render_pep440(pieces) elif style == "pep440-branch": rendered = render_pep440_branch(pieces) elif style == "pep440-pre": rendered = render_pep440_pre(pieces) elif style == "pep440-post": rendered = render_pep440_post(pieces) elif style == "pep440-post-branch": rendered = render_pep440_post_branch(pieces) elif style == "pep440-old": rendered = render_pep440_old(pieces) elif style == "git-describe": rendered = render_git_describe(pieces) elif style == "git-describe-long": rendered = render_git_describe_long(pieces) else: raise ValueError("unknown style '%s'" % style) return { "version": rendered, "full-revisionid": pieces["long"], "dirty": pieces["dirty"], "error": None, "date": pieces.get("date"), } def get_versions() -> Dict[str, Any]: """Get version information or return default if unable to do so.""" # I am in _version.py, which lives at ROOT/VERSIONFILE_SOURCE. If we have # __file__, we can work backwards from there to the root. Some # py2exe/bbfreeze/non-CPython implementations don't do __file__, in which # case we can only use expanded keywords. cfg = get_config() verbose = cfg.verbose try: return git_versions_from_keywords(get_keywords(), cfg.tag_prefix, verbose) except NotThisMethod: pass try: root = os.path.realpath(__file__) # versionfile_source is the relative path from the top of the source # tree (where the .git directory might live) to this file. Invert # this to find the root from __file__. for _ in cfg.versionfile_source.split("/"): root = os.path.dirname(root) except NameError: return { "version": "0+unknown", "full-revisionid": None, "dirty": None, "error": "unable to find root of source tree", "date": None, } try: pieces = git_pieces_from_vcs(cfg.tag_prefix, root, verbose) return render(pieces, cfg.style) except NotThisMethod: pass try: if cfg.parentdir_prefix: return versions_from_parentdir(cfg.parentdir_prefix, root, verbose) except NotThisMethod: pass return { "version": "0+unknown", "full-revisionid": None, "dirty": None, "error": "unable to compute version", "date": None, } py-junos-eznc-2.7.3/lib/jnpr/junos/cfg/000077500000000000000000000000001475361112400176645ustar00rootroot00000000000000py-junos-eznc-2.7.3/lib/jnpr/junos/cfg/__init__.py000066400000000000000000000000551475361112400217750ustar00rootroot00000000000000from jnpr.junos.cfg.resource import Resource py-junos-eznc-2.7.3/lib/jnpr/junos/cfg/phyport/000077500000000000000000000000001475361112400213715ustar00rootroot00000000000000py-junos-eznc-2.7.3/lib/jnpr/junos/cfg/phyport/__init__.py000066400000000000000000000007111475361112400235010ustar00rootroot00000000000000from jnpr.junos.cfg import Resource from jnpr.junos.cfg.phyport.classic import PhyPortClassic from jnpr.junos.cfg.phyport.switch import PhyPortSwitch __all__ = ["PhyPort"] class PhyPort(object): def __new__(cls, dev, name=None): supercls = { "CLASSIC": PhyPortClassic, "SWITCH": PhyPortSwitch, }.get(dev.facts["ifd_style"]) newcls = type(cls.__name__, (supercls,), {}) return newcls(dev, name) py-junos-eznc-2.7.3/lib/jnpr/junos/cfg/phyport/base.py000066400000000000000000000045211475361112400226570ustar00rootroot00000000000000# 3rd-party from lxml.builder import E # local module from jnpr.junos.cfg.resource import Resource class PhyPortBase(Resource): """ [edit interfaces ] Resource name: str is the interface-name (IFD), e.g. 'ge-0/0/0' """ PROPERTIES = [ "admin", # True "description", # str "speed", # ['10m','100m','1g','10g'] "duplex", # ['full','half'] "mtu", # int "loopback", # True "$unit_count", # number of units defined ] PORT_DUPLEX = {"full": "full-duplex", "half": "half-duplex"} @classmethod def _set_invert(cls, in_this, item, from_this): from_item = in_this[item] in_this[item] = [_k for _k, _v in from_this.items() if _v == from_item][0] # ----------------------------------------------------------------------- # XML readers # ----------------------------------------------------------------------- def _xml_at_top(self): return E.interfaces(E.interface(E.name(self._name))) def _xml_at_res(self, xml): return xml.find(".//interface") def _xml_to_py(self, has_xml, has_py): # common to all subclasses Resource._r_has_xml_status(has_xml, has_py) has_py["admin"] = bool(has_xml.find("disable") is None) Resource.copyifexists(has_xml, "description", has_py) Resource.copyifexists(has_xml, "mtu", has_py) has_py["$unit_count"] = len(has_xml.findall("unit")) # ----------------------------------------------------------------------- # XML writers # ----------------------------------------------------------------------- # description handed by Resource def _xml_change_admin(self, xml): xml.append(Resource.xmltag_set_or_del("disable", (self.admin is False))) return True def _xml_change_mtu(self, xml): Resource.xml_set_or_delete(xml, "mtu", self.mtu) return True # ----------------------------------------------------------------------- # Manager List, Catalog # ----------------------------------------------------------------------- def _r_list(self): got = self.R.get_interface_information( media=True, interface_name="[efgx][et]-*" ) self._rlist = [ name.text.strip() for name in got.xpath("physical-interface/name") ] py-junos-eznc-2.7.3/lib/jnpr/junos/cfg/phyport/classic.py000066400000000000000000000030341475361112400233640ustar00rootroot00000000000000# 3rd-party from lxml.builder import E # local from jnpr.junos.cfg.resource import Resource from jnpr.junos import JXML from jnpr.junos.cfg.phyport.base import PhyPortBase class PhyPortClassic(PhyPortBase): # ----------------------------------------------------------------------- # XML readers # ----------------------------------------------------------------------- def _xml_to_py(self, has_xml, has_py): PhyPortBase._xml_to_py(self, has_xml, has_py) Resource.copyifexists(has_xml, "speed", has_py) Resource.copyifexists(has_xml, "link-mode", has_py, "duplex") if has_xml.find("gigether-options/loopback") is not None: has_py["loopback"] = True has_py["$unit_count"] = len(has_xml.findall("unit")) # normalizers if "duplex" in has_py: PhyPortBase._set_invert(has_py, "duplex", self.PORT_DUPLEX) # ----------------------------------------------------------------------- # XML writers # ----------------------------------------------------------------------- def _xml_change_speed(self, xml): Resource.xml_set_or_delete(xml, "speed", self.speed) return True def _xml_change_duplex(self, xml): value = self.PORT_DUPLEX.get(self.duplex) Resource.xml_set_or_delete(xml, "link-mode", value) return True def _xml_change_loopback(self, xml): opts = E("gigether-options") opts.append(Resource.xmltag_set_or_del("loopback", self.loopback)) xml.append(opts) return True py-junos-eznc-2.7.3/lib/jnpr/junos/cfg/phyport/switch.py000066400000000000000000000042641475361112400232520ustar00rootroot00000000000000# 3rd-party from lxml.builder import E # local from jnpr.junos.cfg import Resource from jnpr.junos import JXML from jnpr.junos.cfg.phyport.base import PhyPortBase class PhyPortSwitch(PhyPortBase): PORT_SPEED = { "auto": "auto-negotiation", "10m": "ethernet-10m", "100m": "ethernet-100m", "1g": "ethernet-1g", } # ----------------------------------------------------------------------- # XML readers # ----------------------------------------------------------------------- def _xml_to_py(self, has_xml, has_py): PhyPortBase._xml_to_py(self, has_xml, has_py) # speed, duplex, loopback are all under 'ether-options' ethopts = has_xml.find("ether-options") if ethopts is None: return if ethopts.find("loopback") is not None: has_py["loopback"] = True speed = ethopts.find("speed") if speed is not None: # take the first child element has_py["speed"] = speed[0].tag PhyPortBase._set_invert(has_py, "speed", self.PORT_SPEED) Resource.copyifexists(ethopts, "link-mode", has_py, "duplex") if "duplex" in has_py: PhyPortBase._set_invert(has_py, "duplex", self.PORT_DUPLEX) # ----------------------------------------------------------------------- # XML writers # ----------------------------------------------------------------------- def _xml_hook_build_change_begin(self, xml): if any([this in self.should for this in ["speed", "duplex", "loopback"]]): self._ethopts = E("ether-options") xml.append(self._ethopts) def _xml_change_speed(self, xml): speed_tag = self.PORT_SPEED.get(self.speed) add_this = E.speed(JXML.DEL) if speed_tag is None else E.speed(E(speed_tag)) self._ethopts.append(add_this) return True def _xml_change_duplex(self, xml): value = self.PORT_DUPLEX.get(self.duplex) Resource.xml_set_or_delete(self._ethopts, "link-mode", value) return True def _xml_change_loopback(self, xml): self._ethopts.append(Resource.xmltag_set_or_del("loopback", self.loopback)) return True py-junos-eznc-2.7.3/lib/jnpr/junos/cfg/resource.py000066400000000000000000000640161475361112400220740ustar00rootroot00000000000000# stdlib from pprint import pformat from copy import deepcopy # 3rd-party from lxml.builder import E # package modules from jnpr.junos import jxml as JXML P_JUNOS_EXISTS = "_exists" P_JUNOS_ACTIVE = "_active" class Resource(object): PROPERTIES = [P_JUNOS_EXISTS, P_JUNOS_ACTIVE] def __init__(self, junos, namevar=None, **kvargs): """ Resource or Resource-Manager constructor. All managed resources and resource-managers inherit from this class. junos Instance of Device, this is bound to the Resource for device access namevar If not None, identifies a specific resource by 'name'. The format of the name is resource dependent. Most resources take a single string name, while others use tuples for compound names. refer to each resource for the 'namevar' definition If namevar is None, then the instance is a Resource-Manager (RM). The RM is then used to select specific resources by name using the __getitem__ overload. kvargs['P'] or kvargs['parent'] Instance to the resource parent. This is set when resources have hierarchical relationships, like rules within rulesets kvargs['M'] Instance to the resource manager. """ self._junos = junos self._name = namevar self._parent = kvargs.get("parent") or kvargs.get("P") self._opts = kvargs self._manager = kvargs.get("M") if not namevar: # then this is a resource-manager instance. setup the list and # catalog attributes, but do not load them now. when the caller # invokes the properties, they will auto-load when empty. self._rlist = [] self._rcatalog = {} return # otherwise, a resource includes public attributes: self.properties = [] self.properties.extend(Resource.PROPERTIES) if self.__class__ != Resource: self.properties.extend(self.__class__.PROPERTIES) # if this resource manages others, then hook that # into the :manages: list if hasattr(self, "MANAGES"): self._manages = self.MANAGES.keys() for k, v in self.MANAGES.items(): self.__dict__[k] = v(junos, parent=self) # setup resource cache-attributes self.has = {} self.should = {} self._is_new = False # now load the properties from the device. self.read() # ----------------------------------------------------------------------- # PROPERTIES # ----------------------------------------------------------------------- @property def active(self): """ is this resource configuration active on the Junos device? :RuntimeError: if invoked on a manager object """ if self.is_mgr: raise RuntimeError("Not on a manager!") return self.has[P_JUNOS_ACTIVE] @property def exists(self): """ does this resource configuration exist on the Junos device? :RuntimError: if invoked on a manager """ if self.is_mgr: raise RuntimeError("Not on a manager!") return self.has[P_JUNOS_EXISTS] @property def is_mgr(self): """ is this a resource manager? """ return self._name is None @property def is_new(self): """ is this a new resource? that is, it does not exist on the Junos device when it was initally retrieved :RuntimeError: if invoked on a manager """ if self.is_mgr: raise RuntimeError("Not on a manager!") return self._is_new @property def name(self): """ the name of the resource :RuntimeError: if invoked on a manager """ if self.is_mgr: raise RuntimeError("Not on a manager!") return self._name @name.setter def name(self, value): if self.is_mgr: raise RuntimeError("Not on a manager!") raise AttributeError("name is currently read-only") @property def manages(self): """ a resource may contain sub-managers for hierarchical oriented resources. this method will return a list of manager names attached to this resource, or :None: if there are not any """ if hasattr(self, "_manages"): return self._manages return None @manages.setter def manages(self): raise AttributeError("read-only") @property def xml(self): """ for debugging the resource XML configuration that was read from the Junos device """ if self.is_mgr: raise RuntimeError("Not on a manager!") return self._has_xml @property def list(self): """ returns a list of named resources """ if not self.is_mgr: raise RuntimeError("Must be a manager!") if not len(self._rlist): self.list_refresh() return self._rlist @property def catalog(self): """ returns a dictionary of resources """ if not self.is_mgr: raise RuntimeError("Must be a manager!") if not len(self._rcatalog): self.catalog_refresh() return self._rcatalog # ------------------------------------------------------------------------- # shortcuts # ------------------------------------------------------------------------- @property def D(self): """returns the Device object bound to this resource/manager""" return self._junos @property def R(self): """returns the Device RPC meta object""" return self._junos.rpc @property def M(self): """returns the :Resource: manager associated to this resource""" return self._manager @property def P(self): """returns the parent of the associated Junos object""" return self._parent # ----------------------------------------------------------------------- # PUBLIC METHODS # ----------------------------------------------------------------------- # ------------------------------------------------------------------------- # read # ------------------------------------------------------------------------- def read(self): """ read resource configuration from device """ self._r_has_init() self._has_xml = self._r_config_read_xml() if self._has_xml is None or not len(self._has_xml): self._is_new = True self._r_when_new() return None # the xml_read_parser *MUST* be implement by the # resource subclass. it is used to parse the XML # into native python structures. self._xml_to_py(self._has_xml, self.has) # return the python structure represntation return True # ------------------------------------------------------------------------- # write # ------------------------------------------------------------------------- def write(self, **kvargs): """ write resource configuration stored in :should: back to device kvargs['touch'] if True, then write() will skip the check to see if any items exist in :should: """ if self.is_mgr: raise RuntimeError("Not on a manager!") if not len(self.should) and "touch" not in kvargs: return False # if this resource did not previously exist, # then mark it now into :should: if P_JUNOS_EXISTS not in self.should: self._r_set_exists(self.should, True) if self.is_new: self._r_set_active(self.should, True) # construct the XML change structure xml_change = self._xml_build_change() if xml_change is None: return False # write these changes to the device self._r_config_write_xml(xml_change) # copy :should: into :has: and then clear :should: self.has.update(self.should) self.should.clear() return True # ------------------------------------------------------------------------- # activate # ------------------------------------------------------------------------- def activate(self): """ activate resource in Junos config the same as the Junos config-mode "activate" command """ # no action needed if it's already active if self.active: return False self._r_set_active(self.should, True) return self.write() # ------------------------------------------------------------------------- # deactivate # ------------------------------------------------------------------------- def deactivate(self): """ activate resource in Junos config the same as the Junos config-mode "deactivate" command """ # no action needed if it's already deactive if not self.active: return False self._r_set_active(self.should, False) return self.write() # ------------------------------------------------------------------------- # delete # ------------------------------------------------------------------------- def delete(self): """ remove configuration from Junos device the same as the Junos config-mode "delete" command """ # cannot delete something that doesn't exist # @@@ should raise? if not self.exists: return False # remove the config from Junos xml = self._xml_edit_at_res() xml.attrib.update(JXML.DEL) self._xml_hook_on_delete(xml) self._r_config_write_xml(xml) # reset the :has: attribute self._r_has_init() return True # ------------------------------------------------------------------------- # rename # ------------------------------------------------------------------------- def rename(self, new_name): """ rename resource in Junos configuration the same as the Junos config-mode "rename" command """ # cannot rename something that doesn't exist # @@@ should raise? if not self.exists: return False xml = self._xml_edit_at_res() xml.attrib.update(JXML.REN) xml.attrib.update(JXML.NAME(new_name)) self._r_config_write_xml(xml) self._name = new_name return True # ------------------------------------------------------------------------- # reorder # ------------------------------------------------------------------------- def reorder(self, **kvargs): """ move the configuration within the Junos hierarcy the same as the Junos config-mode "insert" command :kvargs: after="" before="" """ cmd, name = next(kvargs.iteritems()) if cmd != "before" and cmd != "after": raise ValueError("Must be either 'before' or 'after'") xml = self._xml_edit_at_res() xml.attrib.update(JXML.INSERT(cmd)) xml.attrib.update(JXML.NAME(name)) self._r_config_write_xml(xml) return True def list_refresh(self): """ reloads the managed resource list from the Junos device """ if not self.is_mgr: raise RuntimeError("Only on a manager!") del self._rlist[:] self._r_list() # invoke the specific resource method def catalog_refresh(self): """ reloads the resource catalog from the Junos device """ if not self.is_mgr: raise RuntimeError("Only on a manager!") self._rcatalog.clear() self._r_catalog() # invoke the specific resource method def _r_catalog(self): """ provide a 'default' catalog creator method that simply uses the manager list and runs through each resource making a refcopy to the :has: properties """ zone_list = self.list for name in zone_list: r = self[name] self._rcatalog[name] = r.has def refresh(self): if not self.is_mgr: raise RuntimeError("Only on a manager!") self.list_refresh() self.catalog_refresh() def propcopy(self, p_name): """ proptery from :has: to :should: performs a 'deepcopy' of the property; used to make changes to list, dict type properties """ self.should[p_name] = deepcopy(self.has[p_name]) return self.should[p_name] # ----------------------------------------------------------------------- # OVERLOADS # ----------------------------------------------------------------------- # --------------------------------------------------------------------- # ITEMS: for read/write of resource managed properties # --------------------------------------------------------------------- def __getitem__(self, namekey): """ implements [] to obtain property value. value will come from :should: if set or from :has: otherwise. """ if self.is_mgr: # --------------------------------------------------------------- # use is resource-manager accessing specific index/name # to return resource instance # --------------------------------------------------------------- self._opts["M"] = self if isinstance(namekey, int): # index, not name namekey = self.list[namekey] res = self.__class__(self._junos, namekey, **self._opts) return res # --------------------------------------------------------------- # use-case is resource instance for read property # --------------------------------------------------------------- if namekey in self.should: return self.should[namekey] if namekey in self.has: return self.has[namekey] if namekey in self.properties: # it's a valid property, just not set in the resource return None raise ValueError("Unknown property request: %s" % namekey) def __setitem__(self, r_prop, value): """ implements []= to set property value into :should: """ if self.is_mgr: raise RuntimeError("Not on a manager!") if r_prop in self.properties: self.should[r_prop] = value else: raise ValueError("Uknown property request: %s" % r_prop) def __call__(self, **kvargs): """ alternative way to set property values as aggregation of key/value pairs. this will automatically call :write(): when completed. """ if self.is_mgr: raise RuntimeError("Not on a manager!") if not kvargs: return False # validate property names first! for p_name, p_val in kvargs.items(): if p_name not in self.properties: raise ValueError("Unknown property: %s" % p_name) # now cleared to add all the values self.should.update(kvargs) return self.write() # --------------------------------------------------------------------- # ATTRIBUTE: for read/write of resource managed properties # --------------------------------------------------------------------- def __getattr__(self, namekey): """ returns property value, accessed as attribute . only for resource instance """ if self.is_mgr: raise RuntimeError("not on a resource-manager") return self[namekey] def __setattr__(self, name, value): if hasattr(self, "properties") and name in self.properties: # we can set this name/value in the resource property self[name] = value else: # pass 'up' to standard setattr method object.__setattr__(self, name, value) # --------------------------------------------------------------------- # PRINT/DEBUG # --------------------------------------------------------------------- def __repr__(self): """ stringify for debug/printing this will show the resource manager (class) name, the resource (Junos) name, and the contents of the :has: dict and the contents of the :should: dict """ mgr_name = self.__class__.__name__ return ( "NAME: %s: %s\nHAS: %s\nSHOULD:%s" % (mgr_name, self._name, pformat(self.has), pformat(self.should)) if not self.is_mgr else "Resource Manager: %s" % mgr_name ) # --------------------------------------------------------------------- # ITERATOR # --------------------------------------------------------------------- def __iter__(self): """iterate through each Resource in the Manager list""" for name in self.list: yield self[name] # ----------------------------------------------------------------------- # XML reading # ----------------------------------------------------------------------- def _r_config_read_xml(self): """ read the resource config from the Junos device """ get = self._xml_at_top() self._xml_hook_read_begin(get) got = self._junos.rpc.get_config(get) return self._xml_at_res(got) def _xml_at_top(self): """ ~| WARNING |~ resource subclass *MUST* implement this! Create an XML structure that will be used to retrieve the resource configuration from the device. """ raise RuntimeError("Resource missing method: %s" % self.__class__.__name__) def _xml_at_res(self, xml): """ ~| WARNING |~ resource subclass *MUST* implement this! Return the XML element of the specific resource from the :xml: structure. The :xml: will be the configuration starting at the top of the Junos config, i.e. , and the resource needs to "cursor" at the specific resource within that structure """ raise RuntimeError("Resource missing method: %s" % self.__class__.__name__) # ----------------------------------------------------------------------- # XML writing # ----------------------------------------------------------------------- def _xml_build_change(self): """ iterate through the :should: properties creating the necessary configuration change structure. if there are no changes, then return :None: """ edit_xml = self._xml_edit_at_res() # if there is resource hook to do something # before we build up the xml configuration, # then do that now self._xml_hook_build_change_begin(edit_xml) # if this resource should be deleted then # handle that case and return if not self.should[P_JUNOS_EXISTS]: self._xml_change__exists(edit_xml) return edit_xml # otherwise, this is an update, and we need to # construct the XML for change changed = False for r_prop in self.properties: if r_prop in self.should: edit_fn = "_xml_change_" + r_prop changed |= getattr(self, edit_fn)(edit_xml) # if there is a resource hook to do something # after we've run through all the property methods # then invoke that now changed |= self._xml_hook_build_change_end(edit_xml) return edit_xml if changed else None def _r_config_write_xml(self, xml): """ write the xml change to the Junos device, trapping on exceptions. """ top_xml = xml.getroottree().getroot() try: result = self._junos.rpc.load_config(top_xml, action="replace") except Exception as err: # see if this is OK or just a warning if len(err.rsp.xpath('.//error-severity[. = "error"]')): raise err return err.rsp return result # ------------------------------------------------------------------------ # XML edit cursor methods # ------------------------------------------------------------------------ def _xml_edit_at_res(self): return self._xml_at_res(self._xml_at_top()) # ------------------------------------------------------------------------ # XML standard properties "writers" # ------------------------------------------------------------------------ def _xml_change_description(self, xml): Resource.xml_set_or_delete(xml, "description", self.should["description"]) return True def _xml_change__active(self, xml): if self.should[P_JUNOS_ACTIVE] == self.has[P_JUNOS_ACTIVE]: return False value = "active" if self.should[P_JUNOS_ACTIVE] else "inactive" xml.attrib[value] = value return True def _xml_change__exists(self, xml): # if this is a change to create something new, # then invoke the 'on-create' hook and return # the results if self.should[P_JUNOS_EXISTS]: return self._xml_hook_on_new(xml) # otherwise, we are deleting this resource xml.attrib.update(JXML.DEL) # now call the 'on-delete' hook and return # the results return self._xml_hook_on_delete(xml) # ----------------------------------------------------------------------- # XML HOOK methods # ----------------------------------------------------------------------- def _xml_hook_read_begin(self, xml): """ called from :_r_config_read_xml(): after call to :_xml_at_top(): and before the config request is made to the Junos device. This hook allows the subclass to munge the XML get-request with additional items if necessary Returns: :True: when :xml: is changed :False: otherwise """ return False def _xml_hook_build_change_begin(self, xml): """ called from :_xml_build_change(): before the individual property methods are invoked. allows the resource to do anything, like pruning stub elements that were generated as part of :_xml_at_top(): Returns: :True: when :xml: is changed :False: otherwise """ return False def _xml_hook_build_change_end(self, xml): """ called from :_xml_build_change(): after all of the properties methods have been processed. Returns: :True: when :xml: is changed :False: otherwise """ return False def _xml_hook_on_delete(self, xml): """ called when an XML write operation is going to delete the resource. Returns: :True: when :xml: is changed :False: otherwise """ return False def _xml_hook_on_new(self, xml): """ called when an XML write operation is going to create a new resource. Returns: :True: when :xml: is changed :False: otherwise """ return False # ----------------------------------------------------------------------- # Resource HOOK methods # ----------------------------------------------------------------------- def _r_when_new(self): """ called by :read(): when the resource is new; i.e. there is no existing Junos configuration """ pass def _r_when_delete(self): """ ~| not used yet |~ """ pass # ----------------------------------------------------------------------- # ~private~ resource methods # ----------------------------------------------------------------------- def _r_set_active(self, my_props, value): my_props[P_JUNOS_ACTIVE] = value def _r_set_exists(self, my_props, value): my_props[P_JUNOS_EXISTS] = value def _r_has_init(self): self.has.clear() self.has[P_JUNOS_EXISTS] = False self.has[P_JUNOS_ACTIVE] = False @classmethod def _r_has_xml_status(klass, as_xml, as_py): """ set the 'exists' and 'active' :has: values """ as_py[P_JUNOS_ACTIVE] = False if as_xml.attrib.get("inactive") else True as_py[P_JUNOS_EXISTS] = True @classmethod def xml_set_or_delete(klass, xml, ele_name, value): """ HELPER function to either set a value or remove the element """ if value is not None and not isinstance(value, str): value = str(value) xml.append(E(ele_name, (value if value else JXML.DEL))) @classmethod def xmltag_set_or_del(klass, ele_name, value): """ HELPER function creates an XML element tag read-only that includes the DEL attribute depending on :value: """ return E(ele_name, ({} if value else JXML.DEL)) @classmethod def copyifexists(klass, xml, ele_name, to_py, py_name=None): ele_val = xml.find(ele_name) if ele_val is not None: to_py[(py_name if py_name else ele_name)] = ele_val.text.strip() @classmethod def diff_list(klass, has_list, should_list): # covert lists to perform differencing should = set(should_list) has = set(has_list) # return lists (added, removed) return (list(should - has), list(has - should)) def _xml_list_property_add_del_names(self, xml, prop_name, element_name): """ utility method use to process :list: properties. this will add/delete items give the propery type and associated XML element name """ (adds, dels) = Resource.diff_list( self.has.get(prop_name, []), self.should[prop_name] ) for this in adds: xml.append(E(element_name, E.name(this))) for this in dels: xml.append(E(element_name, JXML.DEL, E.name(this))) py-junos-eznc-2.7.3/lib/jnpr/junos/cfg/user.py000066400000000000000000000055021475361112400212160ustar00rootroot00000000000000# 3rd-party modules from lxml.builder import E # module packages from jnpr.junos.cfg import Resource from jnpr.junos import jxml as JXML from jnpr.junos.cfg.user_ssh_key import UserSSHKey class User(Resource): """ [edit system login user ] Resource name: str is the user login name Manages resources: sshkey, UserSSHKey """ PROPERTIES = [ "uid", "fullname", # the full-name field "userclass", # user class "password", # write-only clear-text password, will get crypt'd "$password", # read-only crypt'd password "$sshkeys", # read-only names of ssh-keys ] MANAGES = {"sshkey": UserSSHKey} # ----------------------------------------------------------------------- # XML readers # ----------------------------------------------------------------------- def _xml_at_top(self): return E.system(E.login(E.user(E.name(self._name)))) def _xml_at_res(self, xml): return xml.find(".//user") def _xml_to_py(self, has_xml, has_py): Resource._r_has_xml_status(has_xml, has_py) has_py["userclass"] = has_xml.findtext("class") Resource.copyifexists(has_xml, "full-name", has_py, "fullname") Resource.copyifexists(has_xml, "uid", has_py) if "uid" in has_py: has_py["uid"] = int(has_py["uid"]) auth = has_xml.find("authentication") if auth is not None: # plain-text password Resource.copyifexists(auth, "encrypted-password", has_py, "$password") # ssh-keys sshkeys = auth.xpath("ssh-rsa | ssh-dsa") if sshkeys is not None: has_py["$sshkeys"] = [ (sshkey.tag, sshkey.findtext("name").strip()) for sshkey in sshkeys ] # ----------------------------------------------------------------------- # XML property writers # ----------------------------------------------------------------------- def _xml_change_fullname(self, xml): xml.append(E("full-name", self["fullname"])) return True def _xml_change_userclass(self, xml): xml.append(E("class", self["userclass"])) return True def _xml_change_password(self, xml): xml.append(E.authentication(E("plain-text-password-value", self["password"]))) return True def _xml_change_uid(self, xml): xml.append(E.uid(str(self["uid"]))) return True # ----------------------------------------------------------------------- # Manager List, Catalog # ----------------------------------------------------------------------- def _r_list(self): get = E.system(E.login(E.user(JXML.NAMES_ONLY))) got = self.R.get_config(get) self._rlist = [name.text for name in got.xpath(".//user/name")] py-junos-eznc-2.7.3/lib/jnpr/junos/cfg/user_ssh_key.py000066400000000000000000000064531475361112400227510ustar00rootroot00000000000000# 3rd-party modules from lxml.builder import E # local module from jnpr.junos.cfg import Resource from jnpr.junos import jxml as JXML class UserSSHKey(Resource): """ [edit system login user authentication ] Resource name: tuple(, ) : ['ssh-dsa', 'ssh-rsa'] : SSH public key string (usually something very long) Resource manager utilities: load_key - allows you to load an ssh-key from a file or str """ # there are no properties, since the name constitutes the # actual ssk key data, yo! PROPERTIES = [] # ----------------------------------------------------------------------- # XML readers # ----------------------------------------------------------------------- def _xml_at_top(self): key_t, key_v = self._name return E.system( E.login( E.user(E.name(self.P.name), E.authentication(E(key_t, E.name(key_v)))) ) ) def _xml_at_res(self, xml): return xml.find(".//authentication/%s" % self._name[0]) def _xml_to_py(self, has_xml, has_py): Resource._r_has_xml_status(has_xml, has_py) # ----------------------------------------------------------------------- # UTILITY FUNCTIONS # ----------------------------------------------------------------------- def load_key(self, path=None, key_value=None): """ Adds a new ssh-key to the user authentication. You can provide either the path to the ssh-key file, or the contents of they key (useful for loading the same key on many devices) :path: (optional) path to public ssh-key file on the local server, :key_value: (optional) the contents of the ssh public key """ if not self.is_mgr: raise RuntimeError("must be a resource-manager!") if path is None and key_value is None: raise RuntimeError("You must provide either path or key_value") if path is not None: # snarf the file into key_value, yo! with open(path, "r") as f: key_value = f.read().strip() # extract some data from the key value, this will either # be 'ssh-rsa' or 'ssh-dss'. we need to decode this to set # the type correctly in the RPC. vt = key_value[0:7] key_map = {"ssh-rsa": "ssh-rsa", "ssh-dss": "ssh-dsa"} key_type = key_map.get(vt) if key_type is None: raise RuntimeError("Unknown ssh public key file type: %s" % vt) # at this point we are going to add a new key, so really what we are # doing is accessing a new instance of this class and # doing a write, but just a touch since there are no properties, yo! new_key = self[(key_type, key_value)] return new_key.write(touch=True) # ----------------------------------------------------------------------- # Manager List, Catalog # ----------------------------------------------------------------------- def _r_list(self): # the key list comes from the parent object. self._rlist = self.P["$sshkeys"] def _r_catalog(self): # no catalog but the keys self._rcatalog = dict((k, None) for k in self.list) py-junos-eznc-2.7.3/lib/jnpr/junos/cfgro/000077500000000000000000000000001475361112400202255ustar00rootroot00000000000000py-junos-eznc-2.7.3/lib/jnpr/junos/cfgro/__init__.py000066400000000000000000000000001475361112400223240ustar00rootroot00000000000000py-junos-eznc-2.7.3/lib/jnpr/junos/cfgro/srx.yml000066400000000000000000000036371475361112400215750ustar00rootroot00000000000000--- ##### ========================================================================= ##### SAMPLE SRX config-read-only tables/views ##### ========================================================================= ### --------------------------------------------------------------------------- ### SRX zones and interfaces ### --------------------------------------------------------------------------- ZoneTable: get: security/zones/security-zone ZoneIfsTable: get: security/zones/security-zone/interfaces required_keys: security_zone: name ### --------------------------------------------------------------------------- ### SRX zone address book item table ### --------------------------------------------------------------------------- ABitemTable: get: security/zones/security-zone/address-book/address required_keys: security_zone: name view: abitemView abitemView: fields: ip_prefix: ip-prefix ### --------------------------------------------------------------------------- ### SRX zone-to-zone security policy ### --------------------------------------------------------------------------- PolicyContextTable: get: security/policies/policy key: - from-zone-name - to-zone-name view: policyContextView policyContextView: fields: from_zone: from-zone-name to_zone: to-zone-name ### --------------------------------------------------------------------------- ### SRX zone-to-zone security policy rules ### --------------------------------------------------------------------------- PolicyRuleTable: get: security/policies/policy/policy required_keys: policy: - from-zone-name - to-zone-name view: policyRuleView policyRuleView: groups: match: match then: then fields_match: match_src: source-address match_dst: destination-address match_app: application fields_then: log_init : { log/session-init: flag } action : deny | permit py-junos-eznc-2.7.3/lib/jnpr/junos/command/000077500000000000000000000000001475361112400205435ustar00rootroot00000000000000py-junos-eznc-2.7.3/lib/jnpr/junos/command/__init__.py000066400000000000000000000025311475361112400226550ustar00rootroot00000000000000import os import sys from importlib.abc import Loader, MetaPathFinder from importlib.util import spec_from_loader import yaml import yamlordereddictloader from jnpr.junos.factory.factory_loader import FactoryLoader __all__ = [] class MetaPathFinder(MetaPathFinder): def find_module(self, fullname, path=None): mod = fullname.split(".")[-1] if mod in [ os.path.splitext(i)[0] for i in os.listdir(os.path.dirname(__file__)) ]: return spec_from_loader(fullname, MetaPathLoader(fullname)) class MetaPathLoader(Loader): def __init__(self, fullname): self.fullname = fullname self.modules = {} def exec_module(self, module): if self.fullname in self.modules: return self.modules[self.fullname] mod = self.fullname.split(".")[-1] with open(os.path.join(os.path.dirname(__file__), mod + ".yml"), "r") as stream: try: modules = FactoryLoader().load( yaml.load(stream, Loader=yamlordereddictloader.Loader) ) except yaml.YAMLError as exc: raise ImportError("%s is not loaded" % mod) for k, v in modules.items(): setattr(module, k, v) self.modules[self.fullname] = module return module sys.meta_path.insert(0, MetaPathFinder()) py-junos-eznc-2.7.3/lib/jnpr/junos/command/chassis_fan.yml000066400000000000000000000003431475361112400235470ustar00rootroot00000000000000ChassisFanTable: command: show chassis fan key: fan-name view: ChassisFanView ChassisFanView: columns: fan-name: Item fan-status: Status fan-rpm: RPM fan-measurement: Measurement py-junos-eznc-2.7.3/lib/jnpr/junos/command/cm_error.yml000066400000000000000000000005411475361112400230760ustar00rootroot00000000000000--- CMErrorTable: command: show cmerror module brief target: Null key: - module view: CMErrorView CMErrorView: columns: module: Module name: Name errors: Active Errors pfe-specific: - PFE - Specific callback: - Callback - Function module-data: ModuleData filters: - errors - name py-junos-eznc-2.7.3/lib/jnpr/junos/command/ea_drd_error.yml000066400000000000000000000014421475361112400237160ustar00rootroot00000000000000--- CChipDRDErrTable: command: show mqss {{ instance }} drd error-stats args: instance: 0 target: Null key: Interrupt Name item: '*' view: CChipDRDErrView eval: cchip-drd-wan-errors: > sum([v['interrupt-count-wan'] for k, v in {{ data }}.items() if isinstance(v, dict)]) cchip-drd-fab-errors: > sum([v['interrupt-count-fab'] for k, v in {{ data }}.items() if isinstance(v, dict)]) CChipDRDErrView: regex: cchip-drd-wan-timeouts: 'Total WAN reorder ID timeout errors:\s+(\d+)' cchip-drd-fab-timeouts: 'Total fabric reorder ID timeout errors:\s+(\d+)' columns: interrupt-name: Interrupt Name interrupt-count-wan: - Number of - Reorder Engine 0 interrupt-count-fab: - Interrupts - Reorder Engine 1 py-junos-eznc-2.7.3/lib/jnpr/junos/command/ea_fi_error.yml000066400000000000000000000023361475361112400235460ustar00rootroot00000000000000--- CChipFiErrTable: command: show mqss {{ instance }} fi interrupt-stats target: Null args: instance: 0 key: Stream view: CChipFiErrView CChipFiErrView: fields: _counter_group_0: _table_0 _counter_group_1: _table_1 _table_0: item: '*' key: stream view: _table_0_view _table_0_view: columns: stream: Stream req-sat: - Total RLIM - request - counter - saturation cchip-fi-malloc-drops: - Total - PT/MALLOC - Usemeter - Drops cell-timeout-ignored: - Cell timeout - Ignored cchip-fi-cell-timeout: - Total Reorder - cell timeout - errors drops-in-secure: - Total cell - drops in - secure mode times-in-secure: - Total number - of times - entered into - secure mode _table_1: item: '*' key: stream view: _table_1_view _table_1_view: columns: stream: Stream stalled: - Stream reconfiguration - count due to pointers - stalled in secure mode cchip-fi-error-cells: - Total Error - Cells cchip-fi-late-cells: - Total Late - Cells cchip-fi-crc-error-packets: - Total CRC Errored - Packets py-junos-eznc-2.7.3/lib/jnpr/junos/command/ea_fi_statistics.yml000066400000000000000000000007671475361112400246150ustar00rootroot00000000000000--- CChipFiStatsTable: command: show mqss {{ instance }} fi stats args: instance: 0 target: Null item: '*' view: CenterChipFabricInStatsView CenterChipFabricInStatsView: regex: cchip-fi-packets-received: 'Received packets in input block for enabled streams\s+(\d+)' cchip-fi-packets-dropped: 'Packets dropped in FI memory interface\s+(\d+)' cchip-fi-packets-sent-ok: 'Packets sent out of PSV\s+(\d+)' cchip-fi-packets-with-error: 'Error packets sent out of PSV\s+(\d+)' py-junos-eznc-2.7.3/lib/jnpr/junos/command/ea_fo_statistics.yml000066400000000000000000000004741475361112400246160ustar00rootroot00000000000000--- CChipFOStatsTable: command: show mqss {{ chip_instance }} fo stats target: Null args: chip_instance: 0 title: Counter group 0 key: set view: MQSSFOStatsView MQSSFOStatsView: regex: set: (\d+)\s+Stream\s+\d+x\d+\s+\d+x\d+ total-packets-sent: (\d+).* filters: - total-packets-sent py-junos-eznc-2.7.3/lib/jnpr/junos/command/ea_host_drop.yml000066400000000000000000000003521475361112400237340ustar00rootroot00000000000000--- CChipHostDropTable: command: show xqss {{ instance }} sched queue 1008 local-stats target: Null args: instance: 0 view: CChipHostDropView CChipHostDropView: regex: cchip-host-path-drops: Dropped pkts\s+:\s+(\d+) py-junos-eznc-2.7.3/lib/jnpr/junos/command/ea_li_error.yml000066400000000000000000000010251475361112400235460ustar00rootroot00000000000000--- CChipLiInterruptStatsTable: command: show mqss {{ chip_instance }} li interrupt-stats target: Null args: chip_instance: 0 title: 'LI Block Interrupt Name Number of Interrupts' key: - li-block - name view: CChipLiInterruptStatsView eval: cchip-errors-from-lookup-chip: > sum([v['interrupts'] for k,v in {{ data }}.items()]) CChipLiInterruptStatsView: columns: li-block: LI Block name: Interrupt Name interrupts: Number of Interrupts last-occurance: Last Occurrence py-junos-eznc-2.7.3/lib/jnpr/junos/command/ea_lo_statistics.yml000066400000000000000000000006761475361112400246300ustar00rootroot00000000000000--- CChipLoStatsTable: command: show mqss {{ chip_instance }} lo stats target: Null args: chip_instance: 0 title: 'LO Block Parcel Name Counter Name' key: block eval: cchip-lookup-out-errors: > sum([v['total'] for k,v in {{ data }}.items()]) view: CChipLoStatsView CChipLoStatsView: regex: block: \d+ parcel: Error Parcels counter: Error parcels sent to LUSS total: \d+ rate: \d+ pps py-junos-eznc-2.7.3/lib/jnpr/junos/command/ea_pt_statistics.yml000066400000000000000000000005311475361112400246270ustar00rootroot00000000000000--- CChipPTStatTable: command: show mqss {{ instance }} drd stats args: instance: 0 target: Null item: '*' view: CChipPTStatView CChipPTStatView: fields: cchip-free-internal-packet-table-wan: _wan_view cchip-free-internal-packet-table-fabric: _fab_view _wan_view: title: free_rid[0] _fab_view: title: free_rid[1] py-junos-eznc-2.7.3/lib/jnpr/junos/command/ea_wi_statistics.yml000066400000000000000000000015741475361112400246330ustar00rootroot00000000000000--- CChipWiStatsTable: command: show mqss {{ chip_instance }} wi stats target: Null args: chip_instance: 0 key: mac view: CChipWiStatsView eval: total-drop: > sum([v['total_drop_packet'] for k, v in {{ data }}.items() if isinstance(v, dict) and 'total_drop_packet' in v]) CChipWiStatsView: fields: cchip-wi-stall: _CchipWiStallTable columns: mac: - MAC - Port total_drop_packet: Total Dropped Packets drop_packet: - Dropped Packets - Rate (pps) total_drop_byte: Total Dropped Bytes drop_byte: - Dropped Bytes Rate - (bps) _CchipWiStallTable: title: WI debug statistics item: '*' view: _CchipWiStallView _CchipWiStallView: regex: cchip-wi-stall-0: wsch_stall_hi\s+:\s+(\d+) cchip-wi-stall-1: wsch_stall_lo\s+:\s+(\d+) cchip-wi-received-packets: Received Packets\s+(\d+) py-junos-eznc-2.7.3/lib/jnpr/junos/command/ea_wo_statistics.yml000066400000000000000000000012601475361112400246310ustar00rootroot00000000000000--- CChipWoStatsTable: command: show mqss {{ chip_instance }} wo stats target: Null args: chip_instance: 0 eval: cchip-wo-packets-sent: > {{ data }}['counter_0']['total_packets_0'] + {{ data }}['counter_1']['total_packets_1'] view: CChipWoStatsView CChipWoStatsView: fields: counter_0: _counter0_table counter_1: _counter1_table _counter0_table: title: Counter set 0 item: "*" view: _counter_0_view _counter_0_view: regex: total_packets_0: 'Transmitted packets\s+:\s+(\d+)' _counter1_table: title: Counter set 1 item: "*" view: _counter_1_view _counter_1_view: regex: total_packets_1: 'Transmitted packets\s+:\s+(\d+)' py-junos-eznc-2.7.3/lib/jnpr/junos/command/fpc_link_stats.yml000066400000000000000000000001231475361112400242650ustar00rootroot00000000000000--- FPCLinkStats: command: show link stats target: Null delimiter: ":" py-junos-eznc-2.7.3/lib/jnpr/junos/command/fpc_memory.yml000066400000000000000000000004541475361112400234310ustar00rootroot00000000000000--- FpcMemory: command: show memory target: Null key: ID key_items: - 0 - 1 view: FPCMemoryView FPCMemoryView: columns: id: ID base: Base total: Total(b) free: Free(b) used: Used(b) perc: "%" name: Name py-junos-eznc-2.7.3/lib/jnpr/junos/command/fpc_threads.yml000066400000000000000000000004141475361112400235470ustar00rootroot00000000000000--- FPCThread: command: show threads target: Null key: Name view: FPCThreadView FPCThreadView: columns: pid-pr: PID PR state: State name: Name stack: Stack Use time: Time (Last/Max/Total) cpu: cpu eval: cpu: "'{{ cpu }}'[:-1]" py-junos-eznc-2.7.3/lib/jnpr/junos/command/host_loopback_status.yml000066400000000000000000000003621475361112400255210ustar00rootroot00000000000000--- HostlbStatusSummaryTable: command: show host_loopback status-summary target: Null view: HostlbStatusSummaryView HostlbStatusSummaryView: exists: no-detected-wedges: No detected wedges no-toolkit-errors: No toolkit errors py-junos-eznc-2.7.3/lib/jnpr/junos/command/ithrottle.yml000066400000000000000000000012121475361112400233000ustar00rootroot00000000000000--- IthrottleTable: command: show ithrottle target: Null key: - Name view: IthrottleView IthrottleView: columns: id: ID usage: "Usage %" configuration-state: "Cfg State" operating-state: "Oper State" name: Name IthrottleIDTable: command: show ithrottle id {{ id }} args: id: 0 item: '*' target: Null view: IthrottleIDView IthrottleIDView: regex: min-usage: 'Min Usage Perc: (\d+\.\d+)' max-usage: 'Max Usage Perc: (\d+\.\d+)' usage-enable: 'AdjustUsageEnable: (\d)' fields: throttle-stats: _ThrottleStatsTable _ThrottleStatsTable: title: Throttle Stats delimiter: ":" py-junos-eznc-2.7.3/lib/jnpr/junos/command/jnh_exceptions.yml000066400000000000000000000004761475361112400243150ustar00rootroot00000000000000--- ShowJnhExceptions: command: show jnh {{ jnh_instance }} exceptions terse args: jnh_instance: 0 target: Null key: reason view: ShowJnhExceptionsView ShowJnhExceptionsView: regex: reason: '(\w+(\s\w+)*)' type: '((DISC|PUNT)\(\s*\d+\)|M2L ERROR|TRAP\(\))' packets: '\d+' bytes: '\d*' py-junos-eznc-2.7.3/lib/jnpr/junos/command/jnh_ifd_stream.yml000066400000000000000000000004361475361112400242450ustar00rootroot00000000000000--- ShowJnhIfdStream: command: show jnh ifd {{ ifd }} stream args: ifd: 343 target: Null title: Detail Statistics key: counter view: ShowJnhIfdStreamView ShowJnhIfdStreamView: regex: counter: '([a-zA-Z0-9-]+):' packets: '(\d+) pkts,' bytes: '(\d+) bytes' py-junos-eznc-2.7.3/lib/jnpr/junos/command/jnhexceptionpkt.yml000066400000000000000000000007471475361112400245130ustar00rootroot00000000000000--- ShowJnhExceptions: command: show jnh exceptions-trace target: Null item: '\[(\d+)\].*###############' key: name view: ShowJnhExceptionsPacketView ShowJnhExceptionsPacketView: fields: packets: _PacketTable _PacketTable: item: '*' title: 'token' view: _PacketView _PacketView: regex: reason: '.*token=\d+ \]' packets_00: '0x00: (.*)' packets_10: '0x10: (.*)' packets_20: '0x20: (.*)' packets_30: '0x30: (.*)' packets_40: '0x40: (.*)' py-junos-eznc-2.7.3/lib/jnpr/junos/command/linecard_ethernet_statistics.yml000066400000000000000000000065211475361112400272230ustar00rootroot00000000000000--- EthernetDevicesStatistics: command: show devices local target: Null item: 'TSEC Ethernet Device Driver: (\.?\w+),' key: name view: DevicesLocalView DevicesLocalView: fields: rx_counters: _ReceiveTable tx_counters: _TransmitTable tsec_status_counters: _TSECStatusTable _ReceiveTable: item: '*' title: 'Receive:' view: _ReceiveView _ReceiveView: regex: rx_bytes: '(\d+) bytes' rx_pkts: '(\d+) packets' rx_err_fcs: '(\d+) FCS errors' rx_mcast_pkts: '(\d+) multicast packets' rx_bcast_pkts: '(\d+) broadcast packets' rx_err_ctrl_frames: '(\d+) control frame packets' rx_err_pause_frames: '(\d+) PAUSE frame packets' rx_err_unkn_opcodes: '(\d+) unknown OP codes' rx_err_allign: '(\d+) alignment errors' rx_err_frame_len: '(\d+) frame length errors' rx_err_code: '(\d+) code errors' rx_err_carrier_sense: '(\d+) carrier sense errors' rx_err_undersize_pkts: '(\d+) undersize packets' rx_err_oversize_pkts: '(\d+) oversize packets' rx_err_frags: '(\d+) fragments' rx_err_jabbers: '(\d+) jabbers' rx_err_drops: '(\d+) drops' _TransmitTable: item: '*' title: 'Transmit:' view: _TransmitView _TransmitView: regex: tx_bytes: '(\d+) bytes' tx_pkts: '(\d+) packets' tx_mcast_pkts: '(\d+) multicast packets' tx_bcast_pkts: '(\d+) broadcast packets' tx_err_pause_frames: '(\d+) PAUSE control frames' tx_err_deferral_pkts: '(\d+) deferral packets' tx_err_excessive_deferral_pkts: '(\d+) excessive deferral packets' tx_err_singel_coll_pkts: '(\d+) single collision packets' tx_err_multiple_coll_pkts: '(\d+) multiple collision packets' tx_err_late_coll_pkts: '(\d+) late collision packets' tx_err_excessive_coll_pkts: '(\d+) excessive collision packets' tx_err_total_coll_pkts: '(\d+) total collisions' tx_err_drop_frames: '(\d+) drop frames' tx_err_jabber_frames: '(\d+) jabber frames' tx_err_fcs: '(\d+) FCS errors' tx_err_ctrl_frames: '(\d+) control frames' tx_err_oversize_frames: '(\d+) oversize frames' tx_err_undersize_frames: '(\d+) undersize frames' tx_err_frag_frames: '(\d+) fragments frames' _TSECStatusTable: item: '*' title: 'TSEC status counters:' view: _TSECStatusView _TSECStatusView: regex: status_err_kernel_dropped: 'kernel_dropped:\s*(\d+)' status_err_rx_large: 'rx_large:\s*(\d+)' status_err_rx_short: 'rx_short:\s*(\d+)' status_err_rx_nonoctet: 'rx_nonoctet:\s*(\d+)' status_err_rx_crcerr: 'rx_crcerr:\s*(\d+)' status_err_rx_overrun: 'rx_overrun:\s*(\d+)' status_err_rx_bsy: 'rx_bsy:\s*(\d+)' status_err_rx_babr: 'rx_babr:\s*(\d+)' status_err_rx_trunc: 'rx_trunc:\s*(\d+)' status_err_rx_length_errors: 'rx_length_errors:\s*(\d+)' status_err_rx_frame_errors: 'rx_frame_errors:\s*(\d+)' status_err_rx_crc_errors: 'rx_crc_errors:\s*(\d+)' status_err_rx_errors: 'rx_errors:\s*(\d+)' status_rx_ints: 'rx_ints:\s*(\d+)' status_err_collisions: 'collisions:\s*(\d+)' status_err_eberr: 'eberr:\s*(\d+)' status_err_tx_babt: 'tx_babt:\s*(\d+)' status_err_tx_underrun: 'tx_underrun:\s*(\d+)' status_err_tx_timeout: 'tx_timeout:\s*(\d+)' status_err_tx_window_errors: 'tx_window_errors:\s*(\d+)' status_err_tx_aborted_errors: 'tx_aborted_errors:\s*(\d+)' status_tx_ints: 'tx_ints:\s*(\d+)' status_resets: 'resets:\s*(\d+)' py-junos-eznc-2.7.3/lib/jnpr/junos/command/ospf_neighbor.yml000066400000000000000000000004631475361112400241150ustar00rootroot00000000000000--- OspfNeighborTable: command: show ospf neighbor key: Address view: OspfNeighborView OspfNeighborView: columns: neighbor_address: Address interface: Interface neighbor_state: State neighbor_id: ID neighbor_priority: Pri activity_timer: Dead py-junos-eznc-2.7.3/lib/jnpr/junos/command/pci_error.yml000066400000000000000000000005471475361112400232600ustar00rootroot00000000000000--- ShowPciErrorsTable: command: show pci errors {{ pci_controller_number }} target: Null args: pci_controller_number: 0 key: - pci-address - status-type view: ShowPciErrorsView ShowPciErrorsView: regex: pci-address: 'PCI ERROR: (\d+:\d+:\d+:\d+) \(0x[a-f0-9]+\)' status-type: '(Slot|Link) status :' status: '0x[a-f0-9]+' py-junos-eznc-2.7.3/lib/jnpr/junos/command/pfe_ddos_policer.yml000066400000000000000000000005441475361112400245710ustar00rootroot00000000000000--- DdosPolicerStatsTable: command: show ddos policer stats {{ protocol }} args: protocol: ospf target: Null title: "DDOS Policer Statistics:" key: location view: DdosPolicerStatsView DdosPolicerStatsView: regex: location: '(UKERN|PFE-[0-9]:[0-9])' pass: \d+ drop: \d+ arrival_rate: \d+ pass_rate: \d+ flows: \d+ py-junos-eznc-2.7.3/lib/jnpr/junos/command/pre_classifier.yml000066400000000000000000000011371475361112400242620ustar00rootroot00000000000000--- PreClStatsTable: command: show precl-eng {{ precl_index }} statistics target: Null args: precl_index: 2 key: - port - id view: PreClStatsView PreClStatsView: columns: port: port id: ID class: Class transmitted-packets: TX pkts recieved-packets: RX pkts dropped-packets: Dropped pkts PreclSummTable: command: show precl-eng summary target: Null key: id view: PreclSummView PreclSummView: regex: id: "[0-9]+" engine_name: "[A-Za-z_.0-9]+" fpc: "[0-9]+" pic: "[0-9]+" ptr: "[0-9a-f]+" filters: - id - fpc - pic py-junos-eznc-2.7.3/lib/jnpr/junos/command/scheduler_info.yml000066400000000000000000000011641475361112400242610ustar00rootroot00000000000000--- SchedulerTable: command: show sched target: Null key: name view: SchedulerView SchedulerView: fields: thread: _TopThreadTable columns: cpu: CPU name: Name time-ms: Time(ms) regex: interrupt-time: 'Total interrupt time (\d+)' _TopThreadTable: title: Top Thread delimiter: "=" SchedulerCpuTable: command: show sched target: Null item: '*' view: SchedulerCpuView SchedulerCpuView: regex: cpu-1-second: 'CPU load is (\d+)% \(1 second\),\s+' cpu-5-seconds: '(\d+)% \(5 second\)' cpu-10-seconds: '\s+(\d+)% \(10 second\),\s+' cpu-1-minute: '(\d+)% \(1 minute\)' py-junos-eznc-2.7.3/lib/jnpr/junos/command/system_proc_ext.yml000066400000000000000000000004211475361112400245120ustar00rootroot00000000000000--- SystemProcExtTable: command: show system processes extensive key: cmd title: ' PID' view: SystemProcExtView SystemProcExtView: regex: size: '.* \S +(\d+(K|M))\s+' res: '(\d+(K|M))' wcpu: '.* (\d+\.\d+)%' cmd: '\w+' py-junos-eznc-2.7.3/lib/jnpr/junos/command/system_queues.yml000066400000000000000000000010161475361112400241770ustar00rootroot00000000000000--- SystemQueuesOutTable: command: show system queues key: output interface view: SystemQueuesOutView SystemQueuesOutView: columns: interface: output interface bytes: bytes max-bytes: max packets: packets max-packets: max drops: drops SystemQueuesINTable: command: show system queues key: input protocol view: SystemQueuesINView SystemQueuesINView: columns: interface: input protocol bytes: bytes max-bytes: max packets: packets max-packets: max drops: drops py-junos-eznc-2.7.3/lib/jnpr/junos/command/task_io.yml000066400000000000000000000003311475361112400227140ustar00rootroot00000000000000--- TaskIOTable: command: show task io key: task-name view: TaskIOView TaskIOView: columns: task-name: Task Name reads: Reads writes: Writes received: Rcvd sent: Sent dropped: Dropped py-junos-eznc-2.7.3/lib/jnpr/junos/command/toe_pfe.yml000066400000000000000000000012731475361112400227120ustar00rootroot00000000000000--- ShowToePfeTable: command: > show toe pfe {{ pfe_instance }} {{ asic_type }} {{ asic_instance }} toe-inst {{ toe_instance }} wedge-stats stream {{ stream_id }} args: pfe_instance: 0 asic_type: xm asic_instance: 0 toe_instance: 0 stream_id: 0 target: Null view: ShowToePfeView ShowToePfeView: exists: wedge-not-declared: 'Declared Wedge: NO' wedge-window-size-0: 'Wedge window size: 0' toe-ucode-not-halted: 'TOE ucode halted..................NO' to-asic-not-blocked: 'Suspected to-asic blockage........NO' toe-driver-host-path-app-running: 'TOE driver host path app halted...NO' toe-packets-received: 'RX packets received...YES' py-junos-eznc-2.7.3/lib/jnpr/junos/command/veriexec.yml000066400000000000000000000003561475361112400231040ustar00rootroot00000000000000veriexecTable: command: request routing-engine execute command "sysctl security.mac.veriexec.state" key: veriexec-name view: veriexecView veriexecView: regex: veriexec-name: '(.*):' veriexec-state: '(.*)' py-junos-eznc-2.7.3/lib/jnpr/junos/command/vmcores.yml000066400000000000000000000002721475361112400227450ustar00rootroot00000000000000vmcoreTable: command: request routing-engine execute command "ls /var/crash/ | grep vmcore | wc -l" key: . view: vmcoreView vmcoreView: regex: num_cores: '(\d+)' py-junos-eznc-2.7.3/lib/jnpr/junos/command/xm_drd_error.yml000066400000000000000000000013301475361112400237510ustar00rootroot00000000000000--- CChipDRDErrTable: command: show xmchip {{ instance }} drd error-stats args: instance: 0 target: Null key: Interrupt Name item: '*' view: CChipDRDErrView eval: cchip-drd-wan-errors: > sum([v['interrupt-count'] for k, v in {{ data }}.items() if k.endswith('_0')]) cchip-drd-fab-errors: > sum([v['interrupt-count'] for k, v in {{ data }}.items() if k.endswith('_1')]) CChipDRDErrView: regex: cchip-drd-wan-timeouts: 'Total WAN reorder ID timeout errors:\s+(\d+)' cchip-drd-fab-timeouts: 'Total fabric reorder ID timeout errors:\s+(\d+)' columns: interrupt-name: Interrupt Name interrupt-count: Number of Interrupts filters: - interrupt-count py-junos-eznc-2.7.3/lib/jnpr/junos/command/xm_fi_error.yml000066400000000000000000000006651475361112400236100ustar00rootroot00000000000000--- CChipFiErrTable: command: show xmchip {{ instance }} fi error-stats args: instance: 0 target: Null item: '*' view: CChipFiErrView CChipFiErrView: regex: cchip-fi-cell-timeout: 'cell_timeout\s+:\s?(\d+)' cchip-fi-error-cells: 'err_cell\s+:\s?(\d+)' cchip-fi-late-cells: 'late_cell\s+:\s?(\d+)' cchip-fi-crc-error-packets: 'pkt_crc_err\s+:\s?(\d+)' cchip-fi-malloc-drops: 'ptuse_drops\s+:\s?(\d+)' py-junos-eznc-2.7.3/lib/jnpr/junos/command/xm_fi_statistics.yml000066400000000000000000000007001475361112400246370ustar00rootroot00000000000000--- CChipFiStatsTable: command: show xmchip {{ instance }} fi stats args: instance: 0 target: Null item: '*' view: CenterChipFabricInStatsView CenterChipFabricInStatsView: regex: cchip-fi-packets-received: 'MIF packet received\s+(\d+)' cchip-fi-packets-dropped: 'MIF packet drops \s+(\d+)' cchip-fi-packets-sent-ok: 'Packets sent to PT\s+(\d+)' cchip-fi-packets-with-error: 'Packets with errors sent to PT\s+(\d+)' py-junos-eznc-2.7.3/lib/jnpr/junos/command/xm_fo_statistics.yml000066400000000000000000000003541475361112400246520ustar00rootroot00000000000000--- CChipFOStatsTable: command: show xmchip {{ instance }} fo stats args: instance: 0 target: Null item: '*' view: XMChipFoStatsView XMChipFoStatsView: regex: cchip-fo-packets-sent: 'Transmitted packets\s+:\s(\d+)' py-junos-eznc-2.7.3/lib/jnpr/junos/command/xm_host_drop.yml000066400000000000000000000007201475361112400237720ustar00rootroot00000000000000--- CChipHostDropTable: command: show xmchip {{ instance }} phy-stream q-node-stats 1151 0 target: Null args: instance: 0 key: - color - counter-id - counter-name eval: cchip-host-path-drops: sum([i['total_error'] for i in {{ data }}.values()]) view: CChipHostDropView CChipHostDropView: regex: color: word outcome: \w+ drops counter-id: numbers counter-name: Packets total_error: numbers rate: (\d+) pps py-junos-eznc-2.7.3/lib/jnpr/junos/command/xm_li_error.yml000066400000000000000000000010171475361112400236060ustar00rootroot00000000000000--- CChipLiInterruptStatsTable: command: show xmchip {{ chip_instance }} li interrupt-stats target: Null args: chip_instance: 0 title: 'LI Block Interrupt Name Number of Interrupts' key: - li-block - name view: CChipLiInterruptStatsView eval: cchip-errors-from-lookup-chip: > sum([v['interrupts'] for k,v in {{ data }}.items()]) CChipLiInterruptStatsView: columns: li-block: LI Block name: Interrupt Name interrupts: Number of Interrupts last-occurance: Last Occurrence py-junos-eznc-2.7.3/lib/jnpr/junos/command/xm_lo_statistics.yml000066400000000000000000000006661475361112400246660ustar00rootroot00000000000000--- CChipLoStatsTable: command: show xmchip {{ chip_instance }} lo stats 0 target: Null args: chip_instance: 0 title: 'LU Parcel Name Counter Name' key: block eval: cchip-lookup-out-errors: > sum([v['total'] for k,v in {{ data }}.items()]) view: CChipLoStatsView CChipLoStatsView: regex: # data: '.*' block: '\d+' counter: 'Error parcels sent to LU' total: '\d+' rate: '\d+ pps' py-junos-eznc-2.7.3/lib/jnpr/junos/command/xm_pt_statistics.yml000066400000000000000000000010101475361112400246570ustar00rootroot00000000000000--- CChipPTStatTable: command: show xmchip {{ instance }} pt stats args: instance: 0 target: Null item: '*' view: CChipPTStatView CChipPTStatView: regex: pct_wi_1: 'PCT entries used by all WI-1 streams\s+:\s?(\d+)' pct_wi_0: 'PCT entries used by all WI-0 streams\s+:\s?(\d+)' pct_fab: 'PCT entries used by all FI streams\s+:\s?(\d+)' eval: cchip-free-internal-packet-table-wan: '4096 - {{ pct_wi_1 }} + {{ pct_wi_0 }}' cchip-free-internal-packet-table-fabric: '4096 - {{pct_fab}}' py-junos-eznc-2.7.3/lib/jnpr/junos/command/xm_wi_statistics.yml000066400000000000000000000016771475361112400246760ustar00rootroot00000000000000--- CChipWiStatsTable: command: show xmchip {{ chip_instance }} wi stats 0 target: Null args: chip_instance: 0 key: mac view: CChipWiStatsView eval: cchip-total-oversubscription-drop: > sum([v['total_drop_packet'] for k, v in {{ data }}.items() if isinstance(v, dict) and 'total_drop_packet' in v]) CChipWiStatsView: exists: cchip_wi_stall_0: WIOCM STALL 0x0000000000000000_0000000000000000 cchip_wi_stall_1: WICPQ STALL 0x0000000000000000_0000000000000000 regex: cchip-wi-received-packets: Received Packets\s+(\d+) columns: mac: - MAC - Port total_drop_packet: Total Dropped Packets drop_packet: - Dropped Packets - Rate (pps) total_drop_byte: Total Dropped Bytes drop_byte: - Dropped Bytes Rate - (bps) total_preclassifier: - Total Preclassifier - Discards preclassifier: - Preclassifier - Discards Rate (pps) py-junos-eznc-2.7.3/lib/jnpr/junos/command/xm_wo_statistics.yml000066400000000000000000000012701475361112400246710ustar00rootroot00000000000000--- CChipWoStatsTable: command: show xmchip {{ chip_instance }} wo stats 0 target: Null args: chip_instance: 0 eval: cchip-wo-packets-sent: > {{ data }}['counter_0']['total_packets_0'] + {{ data }}['counter_1']['total_packets_1'] view: CChipWoStatsView CChipWoStatsView: fields: counter_0: _counter0_table counter_1: _counter1_table _counter0_table: title: Counter set 0 item: "*" view: _counter_0_view _counter_0_view: regex: total_packets_0: 'Transmitted packets\s+:\s+(\d+)' _counter1_table: title: Counter set 1 item: "*" view: _counter_1_view _counter_1_view: regex: total_packets_1: 'Transmitted packets\s+:\s+(\d+)' py-junos-eznc-2.7.3/lib/jnpr/junos/console.py000066400000000000000000000306171475361112400211500ustar00rootroot00000000000000import traceback import sys import logging import warnings import socket # 3rd-party packages from ncclient.devices.junos import JunosDeviceHandler from lxml import etree from jnpr.junos.transport.tty_telnet import Telnet from jnpr.junos.transport.tty_serial import Serial from jnpr.junos.transport.tty_ssh import SSH from ncclient.xml_ import NCElement from jnpr.junos.device import _Connection # local modules from jnpr.junos.rpcmeta import _RpcMetaExec from jnpr.junos.factcache import _FactCache from jnpr.junos import jxml as JXML from jnpr.junos.ofacts import * from jnpr.junos.decorators import ignoreWarnDecorator from jnpr.junos.device import _Jinja2ldr logger = logging.getLogger("jnpr.junos.console") class Console(_Connection): def __init__(self, **kvargs): """ NoobDevice object constructor. :param str host: **REQUIRED** host-name or ipaddress of target device :param str user: *OPTIONAL* login user-name, uses root if not provided :param str passwd: *OPTIONAL* in console connection for device at zeroized state password is not required :param int port: *OPTIONAL* port, defaults to '23' for telnet mode and '/dev/ttyUSB0' for serial. :param int baud: *OPTIONAL* baud, default baud rate is 9600 :param str mode: *OPTIONAL* mode, mode of connection (telnet/serial) default is telnet :param int timeout: *OPTIONAL* timeout, default is 0.5 :param int attempts: *OPTIONAL* attempts, default is 10 :param str ssh_config: *OPTIONAL* The path to the SSH configuration file. This can be used to load SSH information from a configuration file. By default ~/.ssh/config is queried it will be used by SCP class. So its assumed ssh is enabled by the time we use SCP functionality. :param bool gather_facts: *OPTIONAL* Defaults to ``False``. If ``False`` and old-style fact gathering is in use then facts are not gathered on call to :meth:`open`. This argument is a no-op when new-style fact gathering is in use (the default.) :param str fact_style: *OPTIONAL* The style of fact gathering to use. Valid values are: 'new', 'old', or 'both'. The default is 'new'. The value 'both' is only present for debugging purposes. It will be removed in a future release. The value 'old' is only present to workaround bugs in new-style fact gathering. It will be removed in a future release. :param bool console_has_banner: *OPTIONAL* default is ``False``. If ``False`` then in case of a hung state, rpc is sent to the console. If ``True``, after sleep(5), a new-line is sent """ # ---------------------------------------- # setup instance connection/open variables # ---------------------------------------- self._tty = None self._ofacts = {} self.connected = False self._skip_logout = False self.results = dict(changed=False, failed=False, errmsg=None) # hostname is not required in serial mode connection self._hostname = kvargs.get("host") self._auth_user = kvargs.get("user", "root") self._conf_auth_user = None self._conf_ssh_private_key_file = None self._auth_password = kvargs.get("password", "") or kvargs.get("passwd", "") self.cs_user = kvargs.get("cs_user") self.cs_passwd = kvargs.get("cs_passwd") self._port = kvargs.get("port", "22" if self.cs_user else "23") self._mode = kvargs.get("mode", None if self.cs_user else "telnet") self._baud = kvargs.get("baud", "9600") if self._hostname: self._ssh_config = kvargs.get("ssh_config") self._sshconf_lkup() self._ssh_private_key_file = ( kvargs.get("ssh_private_key_file") or self._conf_ssh_private_key_file ) self._timeout = kvargs.get("timeout", "0.5") self._normalize = kvargs.get("normalize", False) self._attempts = kvargs.get("attempts", 10) self._gather_facts = kvargs.get("gather_facts", False) self._fact_style = kvargs.get("fact_style", "new") self._use_filter = False self._huge_tree = kvargs.get("huge_tree", False) if self._fact_style != "new": warnings.warn( "fact-style %s will be removed in " "a future release." % (self._fact_style), RuntimeWarning, ) self.console_has_banner = kvargs.get("console_has_banner", False) self.rpc = _RpcMetaExec(self) self._manages = [] self.junos_dev_handler = JunosDeviceHandler( device_params={"name": "junos", "local": False} ) self._conn = None self._j2ldr = _Jinja2ldr if self._fact_style == "old": self.facts = self.ofacts else: self.facts = _FactCache(self) @property def timeout(self): """ :returns: current console connection timeout value (int) in seconds. """ return self._timeout @timeout.setter def timeout(self, value): """ Used to change the console connection timeout value (default=0.5 sec). :param int value: New timeout value in seconds """ self._timeout = value @property def transform(self): """ :returns: the current RPC XML Transformation. """ return self.junos_dev_handler.transform_reply @transform.setter def transform(self, func): """ Used to change the RPC XML Transformation. :param lambda value: New transform lambda """ self.junos_dev_handler.transform_reply = func def open(self, *vargs, **kvargs): """ Opens a connection to the device using existing login/auth information. :param bool gather_facts: If set to ``True``/``False`` will override the device instance value for only this open process """ # --------------------------------------------------------------- # validate device hostname or IP address # --------------------------------------------------------------- if ( (self._mode and self._mode.upper() == "TELNET") or self.cs_user is not None ) and self._hostname is None: self.results["failed"] = True self.results["errmsg"] = "ERROR: Device hostname/IP not specified !!!" return self.results # --------------------------------------------------------------- # validate console server and password. Password-less connection # is not supported # --------------------------------------------------------------- if self.cs_user is not None and self.cs_passwd is None: self.results["failed"] = True self.results["errmsg"] = ( "ERROR: Console SSH, Password-less connection is " "not supported !!!" ) logger.error(self.results["errmsg"]) return self.results # -------------------- # login to the CONSOLE # -------------------- try: self._tty_login() except RuntimeError as err: logger.error("ERROR: {}:{}\n".format("login", str(err))) logger.error( "\nComplete traceback message: {}".format(traceback.format_exc()) ) raise err except Exception as ex: logger.error("Exception occurred: {}:{}\n".format("login", str(ex))) raise ex self.connected = True self._nc_transform = self.transform self._norm_transform = lambda: JXML.normalize_xslt.encode("UTF-8") # normalize argument to open() overrides normalize argument value # to __init__(). Save value to self._normalize where it is used by # normalizeDecorator() self._normalize = kvargs.get("normalize", self._normalize) if self._normalize is True: self.transform = self._norm_transform gather_facts = kvargs.get("gather_facts", self._gather_facts) if gather_facts is True: logger.info("facts: retrieving device facts...") self.facts_refresh() self.results["facts"] = self.facts self._conn = self._tty return self def close(self, skip_logout=False): """ Closes the connection to the device. """ if skip_logout is False and self.connected is True: try: self._tty_logout() except socket.error as err: # if err contains "Connection reset by peer" connection to the # device got closed if "Connection reset by peer" not in str(err): raise err except EOFError as err: if "telnet connection closed" not in str(err): raise err except Exception as err: logger.error("ERROR {}:{}\n".format("logout", str(err))) raise err self.connected = False elif self.connected is True: try: self._tty._tty_close() except Exception as err: logger.error("ERROR {}:{}\n".format("close", str(err))) logger.error( "\nComplete traceback message: {}".format(traceback.format_exc()) ) raise err self.connected = False @ignoreWarnDecorator def _rpc_reply(self, rpc_cmd_e, *args, **kwargs): encode = None if sys.version < "3" else "unicode" rpc_cmd = ( etree.tostring(rpc_cmd_e, encoding=encode) if isinstance(rpc_cmd_e, etree._Element) else rpc_cmd_e ) reply = self._tty.nc.rpc(rpc_cmd) rpc_rsp_e = NCElement( reply, self.junos_dev_handler.transform_reply(), self._huge_tree )._NCElement__doc return rpc_rsp_e # ------------------------------------------------------------------------- # LOGIN/LOGOUT # ------------------------------------------------------------------------- def _tty_login(self): tty_args = dict() tty_args["user"] = self._auth_user tty_args["passwd"] = self._auth_password tty_args["timeout"] = float(self._timeout) tty_args["attempts"] = int(self._attempts) tty_args["baud"] = self._baud tty_args["huge_tree"] = self._huge_tree if self._mode and self._mode.upper() == "TELNET": tty_args["host"] = self._hostname tty_args["port"] = self._port tty_args["console_has_banner"] = self.console_has_banner self.console = ("telnet", self._hostname, self.port) self._tty = Telnet(**tty_args) elif self.cs_user is not None: tty_args["cs_user"] = self.cs_user tty_args["cs_passwd"] = self.cs_passwd tty_args["host"] = self._hostname tty_args["port"] = self._port tty_args["console_has_banner"] = self.console_has_banner tty_args["ssh_private_key_file"] = self._ssh_private_key_file self.console = ("ssh", self._hostname, self.port) self._tty = SSH(**tty_args) elif self._mode.upper() == "SERIAL": tty_args["port"] = self._port self.console = ("serial", self._port) self._tty = Serial(**tty_args) else: logger.error("Mode should be either telnet or serial") raise AttributeError("Mode to be telnet/serial") self._tty.login() def _tty_logout(self): self._tty.logout() def zeroize(self): """perform device ZEROIZE actions""" logger.info("zeroize : ZEROIZE device, rebooting") self._tty.nc.zeroize() self._skip_logout = True self.results["changed"] = True # ----------------------------------------------------------------------- # Context Manager # ----------------------------------------------------------------------- def __enter__(self): self.open() return self def __exit__(self, exc_type, exc_val, exc_tb): if self.connected: self.close() py-junos-eznc-2.7.3/lib/jnpr/junos/decorators.py000066400000000000000000000162171475361112400216530ustar00rootroot00000000000000# stdlib from functools import wraps import re import sys from lxml import etree from ncclient.operations.rpc import RPCError from ncclient.xml_ import NCElement from jnpr.junos import jxml as JXML def timeoutDecorator(function): @wraps(function) def wrapper(*args, **kwargs): if "dev_timeout" in kwargs: try: dev = args[0].dev except: dev = args[0] restore_timeout = dev.timeout dev.timeout = kwargs.pop("dev_timeout", None) try: result = function(*args, **kwargs) dev.timeout = restore_timeout return result except Exception: dev.timeout = restore_timeout raise else: try: return function(*args, **kwargs) except Exception: raise return wrapper def normalizeDecorator(function): @wraps(function) def wrapper(*args, **kwargs): if "normalize" in kwargs: normalize = kwargs.pop("normalize", None) try: dev = args[0].dev except: dev = args[0] if dev._normalize != normalize: restore_transform = dev.transform if normalize is False: try: dev.transform = dev._nc_transform result = function(*args, **kwargs) dev.transform = restore_transform return result except Exception: dev.transform = restore_transform raise else: try: dev.transform = dev._norm_transform result = function(*args, **kwargs) dev.transform = restore_transform return result except Exception: dev.transform = restore_transform raise else: try: return function(*args, **kwargs) except Exception: raise else: try: return function(*args, **kwargs) except Exception: raise return wrapper def ignoreWarnDecorator(function): """ Ignore warnings if all elements are at severity 'warning' and match one of the values of the ignore_warning argument. For example:: dev.rpc.get(ignore_warning=True) dev.rpc.get(ignore_warning='vrrp subsystem not running') dev.rpc.get(ignore_warning=['vrrp subsystem not running', 'statement not found']) cu.load(cnf, ignore_warning='statement not found') :ignore_warning: A boolean, string or list of string. If the value is True, it will ignore all warnings regarldess of the warning message. If the value is a string, it will ignore warning(s) if the message of each warning matches the string. If the value is a list of strings, ignore warning(s) if the message of each warning matches at least one of the strings in the list. .. note:: When the value of ignore_warning is a string, or list of strings, the string is actually used as a case-insensitive regular expression pattern. If the string contains only alpha-numeric characters, as shown in the above examples, this results in a case-insensitive substring match. However, any regular expression pattern supported by the re library may be used for more complicated match conditions. """ @wraps(function) def wrapper(self, *args, **kwargs): ignore_warning = kwargs.pop("ignore_warning", False) rsp = None try: rsp = function(self, *args, **kwargs) except RPCError as ex: if hasattr(ex, "xml") and ignore_warning: if hasattr(ex, "errors"): errors = ex.errors else: errors = [ex] for err in errors: if err.severity == "warning": if ( sys.version < "3" and isinstance(ignore_warning, (str, unicode)) ) or (sys.version >= "3" and isinstance(ignore_warning, str)): if not re.search(ignore_warning, err.message, re.I): # Message did not match. raise ex elif isinstance(ignore_warning, list): for warn_msg in ignore_warning: if re.search(warn_msg, err.message, re.I): # Warning matches. # Break skips else. break else: # Message didn't match any of the # ignore_warn pattern values. raise ex else: # Not a warning (probably an error). raise ex # Every err was a warning that matched ignore_warning. # Prepare the response which will get returned. # ex.xml contains the raw xml response which was # received, but might be rooted at an element. # Set rsp to the root element. rsp = ex.xml.getroottree().getroot() # 1) A normal response has been run through the XSLT # transformation, but ex.xml has not. Do that now. encode = None if sys.version < "3" else "unicode" rsp = NCElement( etree.tostring(rsp, encoding=encode), self.transform() )._NCElement__doc # 2) Now remove all of the elements from # the response. We've already confirmed they are # all warnings rsp = etree.fromstring(str(JXML.strip_rpc_error_transform(rsp))) else: # ignore_warning was false, or an RPCError which doesn't have # an XML attribute. Raise it up for the caller to deal with. raise ex return rsp return wrapper def checkSAXParserDecorator(function): @wraps(function) def wrapper(*args, **kwargs): # args[0] is self use_filter = kwargs.pop("use_filter", args[0]._use_filter) restore_value = args[0]._use_filter args[0]._use_filter = use_filter try: if args[0].D != None: func = args[0].D.transform result = function(*args, **kwargs) args[0]._use_filter = restore_value if args[0].D != None: args[0].D.transform = func return result except Exception: args[0]._use_filter = restore_value raise return wrapper py-junos-eznc-2.7.3/lib/jnpr/junos/device.py000066400000000000000000001607121475361112400207450ustar00rootroot00000000000000# stdlib import os import six import types import platform import warnings import logging # stdlib, in support of the the 'probe' method import socket import datetime import time import sys import json import re # 3rd-party packages from lxml import etree from ncclient import manager as netconf_ssh import ncclient.transport.errors as NcErrors from ncclient.transport.session import SessionListener import ncclient.operations.errors as NcOpErrors from ncclient.operations import RPCError import paramiko import jinja2 # local modules from jnpr.junos.rpcmeta import _RpcMetaExec from jnpr.junos import exception as EzErrors from jnpr.junos.factcache import _FactCache from jnpr.junos.ofacts import * from jnpr.junos import jxml as JXML from jnpr.junos.decorators import ( timeoutDecorator, normalizeDecorator, ignoreWarnDecorator, ) from jnpr.junos.exception import JSONLoadError, ConnectError # check for ncclient support for filter_xml. Remove these changes once ncclient # release filter_xml/SAX parsing feature # https://github.com/ncclient/ncclient/pull/324 from ncclient.operations.third_party.juniper.rpc import ExecuteRpc import inspect if sys.version_info[0] >= 3: NCCLIENT_FILTER_XML = len(inspect.signature(ExecuteRpc.request).parameters) == 3 else: NCCLIENT_FILTER_XML = len(inspect.getargspec(ExecuteRpc.request).args) == 3 _MODULEPATH = os.path.dirname(__file__) logger = logging.getLogger("jnpr.junos.device") class _MyTemplateLoader(jinja2.BaseLoader): """ Create a jinja2 template loader class that can be used to load templates from all over the filesystem, but defaults to the CWD and the 'templates' directory of the module """ def __init__(self): self.paths = [".", os.path.join(_MODULEPATH, "templates")] def get_source(self, environment, template): def _in_path(dir): return os.path.exists(os.path.join(dir, template)) path = list(filter(_in_path, self.paths)) if not path: raise jinja2.TemplateNotFound(template) path = os.path.join(path[0], template) mtime = os.path.getmtime(path) with open(path) as f: # You are trying to decode an object that is already decoded. # You have a str, there is no need to decode from UTF-8 anymore. # open already decodes to Unicode in Python 3 if you open in text # mode. If you want to open it as bytes, so that you can then # decode, you need to open with mode 'rb'. source = f.read() return source, path, lambda: mtime == os.path.getmtime(path) _Jinja2ldr = jinja2.Environment(loader=_MyTemplateLoader()) class _Connection(object): ON_JUNOS = ( platform.system().upper() == "JUNOS" or platform.release().startswith("JNPR") or os.path.isfile("/usr/share/cevo/cevo_version") ) # for juniper specific containers likes crpd, cmgd, cbng # and similar entities, we will need to check the product.conf # file for on-box implementation if ON_JUNOS is False: if os.path.isfile("/etc/product.conf") is True: model_dict = {} with open("/etc/product.conf") as f: for line in f: if "=" in line: (key, val) = line.strip().split("=") model_dict[key] = val if "model" in model_dict and model_dict["model"] in [ "crpd", "cbng", "cmgd", ]: ON_JUNOS = True auto_probe = 0 # default is no auto-probe # ------------------------------------------------------------------------ # property: hostname # ------------------------------------------------------------------------ @property def hostname(self): """ :returns: the host-name of the Junos device. """ return ( self._hostname if (self._hostname != "localhost") else self.facts.get("hostname") ) # ------------------------------------------------------------------------ # property: user # ------------------------------------------------------------------------ @property def user(self): """ :returns: the login user (str) accessing the Junos device """ return self._auth_user # ------------------------------------------------------------------------ # property: password # ------------------------------------------------------------------------ @property def password(self): """ :returns: ``None`` - do not provide the password """ return None # read-only @password.setter def password(self, value): """ Change the authentication password value. This is handy in case the calling program needs to attempt different passwords. """ self._auth_password = value # ------------------------------------------------------------------------ # property: logfile # ------------------------------------------------------------------------ @property def logfile(self): """ :returns: exsiting logfile ``file`` object. """ return self._logfile @logfile.setter def logfile(self, value): """ Assigns an opened file object to the device for logging If there is an open logfile, and 'value' is ``None`` or ``False`` then close the existing file. :param file value: An open ``file`` object. :returns: the new logfile ``file`` object :raises ValueError: When **value** is not a ``file`` object """ # got an existing file that we need to close if (not value) and (self._logfile is not None): rc = self._logfile.close() self._logfile = False return rc if sys.version < "3": if not isinstance(value, file): raise ValueError("value must be a file object") else: import io if not isinstance(value, io.TextIOWrapper): raise ValueError("value must be a file object") self._logfile = value return self._logfile # ------------------------------------------------------------------------ # property: timeout # ------------------------------------------------------------------------ @property def timeout(self): """ :returns: the current RPC timeout value (int) in seconds. """ return self._conn.timeout @timeout.setter def timeout(self, value): """ Used to change the RPC timeout value (default=30 sec). :param int value: New timeout value in seconds """ try: self._conn.timeout = int(value) except (ValueError, TypeError): raise RuntimeError( "could not convert timeout value of %s to an " "integer" % (value) ) # ------------------------------------------------------------------------ # property: facts # ------------------------------------------------------------------------ @property def ofacts(self): """ :returns: Device fact dictionary """ if self._fact_style != "old" and self._fact_style != "both": raise RuntimeError("Old-style facts gathering is not in use!") if self._ofacts == {} and self.connected: self.facts_refresh() return self._ofacts @ofacts.setter def ofacts(self, value): """read-only property""" raise RuntimeError("facts is read-only!") # ------------------------------------------------------------------------ # property: port # ------------------------------------------------------------------------ @property def port(self): """ :returns: the port (str) to connect to the Junos device """ return self._port # ------------------------------------------------------------------------ # property: master # ------------------------------------------------------------------------ @property def master(self): """ The mastership state of the current Routing Engine. The current Routing Engine is the RE to which the NETCONF session is connected. .. note:: This property is based on new-style fact gathering and the value of currently cached facts. If there is a chance the mastership state may have changed since the facts were cached, then dev.facts_refresh() should be invoked prior to checking this property. If old-style fact gathering is in use, this property will return None. :returns: True if the current RE is the master Routing Engine. False if the current RE is not the master Routing Engine. None if unable to determine the state of the current Routing Engine. """ master = None # Make sure the 'current_re' fact has a value if self.facts.get("current_re") is not None: # Typical master case if "master" in self.facts["current_re"]: master = True # Typical backup case elif "backup" in self.facts["current_re"]: master = False # Some single chassis and single RE platforms don't have # 'master' in the 'current_re' fact. It's best to check if it's a # single chassis and single RE platform based on the # 'RE_hw_mi' and '2RE' facts, not the 'current_re' fact. elif ( self.facts.get("2RE") is False and self.facts.get("RE_hw_mi") is False and "re0" in self.facts["current_re"] ): master = True # Is it an SRX cluster? # If so, the cluster's "primary" is the "master" elif self.facts.get("srx_cluster") is True: if "primary" in self.facts["current_re"]: master = True else: master = False else: # Might be a GNF case. if ( self.re_name is not None and "gnf" in self.re_name and "-re" in self.re_name ): # Get the name of the GNF from re_name/ # re_name will be in the format gnfX-reY (gnf, _) = self.re_name.split("-re", 1) if gnf + "-master" in self.facts.get("current_re"): master = True elif gnf + "-backup" in self.facts.get("current_re"): master = False else: # Might be a multi-chassis case where this RE is neither # the master or the backup for the entire system. In that # case, it's either a chassis master or a chassis backup. for re_state in self.facts["current_re"]: # Multi-chassis case. A chassis master/backup, but # not the system master/backup. if "-backup" in re_state or "-master" in re_state: master = False break return master @master.setter def master(self, value): """read-only property""" raise RuntimeError("master is read-only!") # ------------------------------------------------------------------------ # property: uptime # ------------------------------------------------------------------------ @property def uptime(self): """ The uptime of the current Routing Engine. The current Routing Engine is the RE to which the NETCONF session is connected. :returns: The number of seconds (int) since the current Routing Engine was booted. If there is a problem gathering or parsing the uptime information, None is returned. :raises: May raise a specific jnpr.junos.RpcError or jnpr.junos.ConnectError subclass if there is a problem communicating with the device. """ uptime = None rsp = self.rpc.get_system_uptime_information(normalize=True) if rsp is not None: element = rsp.find(".//system-booted-time/time-length") if element is not None: uptime_string = element.get("seconds") if uptime_string is not None: uptime = int(uptime_string) return uptime @uptime.setter def uptime(self, value): """read-only property""" raise RuntimeError("uptime is read-only!") # ------------------------------------------------------------------------ # property: re_name # ------------------------------------------------------------------------ @property def re_name(self): """ The name of the current Routing Engine. The current Routing Engine is the RE to which the NETCONF session is connected. .. note:: This property is based on new-style fact gathering. If old-style fact gathering is in use, this property will return None. :returns: A string containing the name of the current Routing Engine or None if unable to determine the state of the current Routing Engine. """ re_name = None # Make sure the 'current_re' and 'hostname_info' facts have values if ( self.facts.get("current_re") is not None and self.facts.get("hostname_info") is not None ): # re_name should be the intersection of the values in the # 'current_re' fact and the keys in the 'hostname_info' fact. intersect = set(self.facts["current_re"]) & set( self.facts["hostname_info"].keys() ) # intersect should usually contain a single element (the RE's # name) if things worked correctly. if len(intersect) == 1: re_name = list(intersect)[0] # If intersect contains no elements elif len(intersect) == 0: # Look for the first value # in 'current_re' which contains '-re'. for re_state in self.facts["current_re"]: if "-re" in re_state: re_name = re_state break if re_name is None: # Still haven't figured it out, if there's only one key # in 'hostname_info', assume that. all_re_names = list(self.facts["hostname_info"].keys()) if len(all_re_names) == 1: re_name = all_re_names[0] if re_name is None: # Still haven't figured it out. Is this a bsys? for re_state in self.facts["current_re"]: match = re.search(r"^re\d+$", re_state) if match: re_string = "bsys-" + match.group(0) if re_string in self.facts["hostname_info"].keys(): re_name = re_string return re_name @re_name.setter def re_name(self, value): """read-only property""" raise RuntimeError("re_name is read-only!") def _sshconf_lkup(self): """Controls the ssh connection: If using ssh_private_key_file on MacOS Mojave or greater (specifically > OpenSSH_7.4p1) ensure that the keys are generated in PEM format or convert existing 'new' keys to the PEM format: Check format: `head -n1 ~/.ssh/some_key` Correct RSA fomat: -----BEGIN RSA PRIVATE KEY----- Incorrect OPENSSH format: -----BEGIN OPENSSH PRIVATE KEY----- Convert an OPENSSH key to an RSA key: `ssh-keygen -p -m PEM -f ~/.ssh/some_key` """ if self.__class__.__name__ == "Device" and self._sock_fd is not None: return None if self._ssh_config: sshconf_path = os.path.expanduser(self._ssh_config) else: sshconf_path = os.path.join(os.path.expanduser("~"), ".ssh", "config") if not os.path.exists(sshconf_path): return None else: sshconf = paramiko.SSHConfig() with open(sshconf_path, "r") as fp: sshconf.parse(fp) found = sshconf.lookup(self._hostname) self._port = found.get("port", self._port) self._conf_auth_user = found.get("user") self._conf_ssh_private_key_file = found.get("identityfile") return sshconf_path def display_xml_rpc(self, command, format="xml"): """ Executes the CLI command and returns the CLI xml object by default. For example:: print dev.display_xml_rpc('show version').tag or print dev.display_xml_rpc('show version', format='text') :param str command: The CLI command to retrieve XML RPC for, e.g. "show version" :param str format: The return format, by default is XML. You can optionally select "text" to return the XML structure as a string. """ try: command = command + "| display xml rpc" rsp = self.rpc.cli(command, format="xml") rsp = rsp.getparent().find(".//rpc") if format == "text": encode = None if sys.version < "3" else "unicode" return etree.tostring(rsp[0], encoding=encode) return rsp[0] except TypeError: return "No RPC equivalent found for: " + command except: return "invalid command: " + command # ------------------------------------------------------------------------ # Template: retrieves a Jinja2 template # ------------------------------------------------------------------------ def Template(self, filename, parent=None, gvars=None): """ Used to return a Jinja2 :class:`Template`. :param str filename: file-path to Jinja2 template file on local device :returns: Jinja2 :class:`Template` give **filename**. """ return self._j2ldr.get_template(filename, parent, gvars) # ------------------------------------------------------------------------ # property: manages # ------------------------------------------------------------------------ @property def manages(self): """ :returns: ``list`` of Resource Managers/Utilities attached to this instance using the :meth:`bind` method. """ return self._manages # ------------------------------------------------------------------------ # dealing with bind aspects # ------------------------------------------------------------------------ def bind(self, *vargs, **kvargs): """ Used to attach things to this Device instance and make them a property of the :class:Device instance. The most common use for bind is attaching Utility instances to a :class:Device. For example:: from jnpr.junos.utils.config import Config dev.bind( cu=Config ) dev.cu.lock() # ... load some changes dev.cu.commit() dev.cu.unlock() :param list vargs: A list of functions that will get bound as instance methods to this Device instance. .. warning:: Experimental. :param new_property: name/class pairs that will create resource-managers bound as instance attributes to this Device instance. See code example above """ if len(vargs): for fn in vargs: # check for name clashes before binding if hasattr(self, fn.__name__): raise ValueError( "request attribute name %s already exists" % fn.__name__ ) for fn in vargs: # bind as instance method, majik. if sys.version < "3": self.__dict__[fn.__name__] = types.MethodType( fn, self, self.__class__ ) else: self.__dict__[fn.__name__] = types.MethodType(fn, self.__class__) return # first verify that the names do not conflict with # existing object attribute names for name in kvargs.keys(): # check for name-clashes before binding if hasattr(self, name): raise ValueError("requested attribute name %s already exists" % name) # now instantiate items and bind to this :Device: for name, thing in kvargs.items(): new_inst = thing(self) self.__dict__[name] = new_inst self._manages.append(name) @property def _sshconf_path(self): return self._sshconf_lkup() # ------------------------------------------------------------------------ # probe # ------------------------------------------------------------------------ def probe(self, timeout=5, intvtimeout=1): """ Probe the device to determine if the Device can accept a remote connection. This method is meant to be called *prior* to :open(): This method will not work with ssh-jumphost environments. :param int timeout: The probe will report ``True``/``False`` if the device report connectivity within this timeout (seconds) :param int intvtimeout: Timeout interval on the socket connection. Generally you should not change this value, but you can if you want to twiddle the frequency of the socket attempts on the connection :returns: ``True`` if probe is successful, ``False`` otherwise """ start = datetime.datetime.now() end = start + datetime.timedelta(seconds=timeout) probe_ok = True while datetime.datetime.now() < end: s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.settimeout(intvtimeout) try: s.connect((self.hostname, int(self._port))) s.shutdown(socket.SHUT_RDWR) s.close() break except: time.sleep(1) pass else: probe_ok = False return probe_ok def cli_to_rpc_string(self, command): """ Translate a CLI command string into the equivalent RPC method call. Translates a CLI command string into a string which represents the equivalent line of code using an RPC instead of a CLI command. Handles RPCs with arguments. .. note:: This method does NOT actually invoke the RPC equivalent. :param str command: The CLI command to translate, e.g. "show version" :returns: (str) representing the RPC meta-method (including attributes and arguments) which could be invoked instead of cli(command). Returns None if there is no equivalent RPC for command or if command is not a valid CLI command. """ # Strip off any pipe modifiers (command, _, _) = command.partition("|") # Strip any leading or trailing whitespace command = command.strip() # Get the equivalent RPC rpc = self.display_xml_rpc(command) if isinstance(rpc, six.string_types): # No RPC is available. return None rpc_string = "rpc.%s(" % (rpc.tag.replace("-", "_")) arguments = [] for child in rpc: key = child.tag.replace("-", "_") if child.text: value = "'" + child.text + "'" else: value = "True" arguments.append("%s=%s" % (key, value)) if arguments: rpc_string += ", ".join(arguments) rpc_string += ")" return rpc_string # ------------------------------------------------------------------------ # cli - for cheating commands :-) # ------------------------------------------------------------------------ def cli(self, command, format="text", warning=True): """ Executes the CLI command and returns the CLI text output by default. :param str command: The CLI command to execute, e.g. "show version" :param str format: The return format, by default is text. You can optionally select "xml" to return the XML structure. .. note:: You can also use this method to obtain the XML RPC command for a given CLI command by using the pipe filter ``| display xml rpc``. When you do this, the return value is the XML RPC command. For example if you provide as the command ``show version | display xml rpc``, you will get back the XML Element ````. .. warning:: This function is provided for **DEBUG** purposes only! **DO NOT** use this method for general automation purposes as that puts you in the realm of "screen-scraping the CLI". The purpose of the PyEZ framework is to migrate away from that tooling pattern. Interaction with the device should be done via the RPC function. .. warning:: You cannot use "pipe" filters with **command** such as ``| match`` or ``| count``, etc. The only value use of the "pipe" is for the ``| display xml rpc`` as noted above. """ if "display xml rpc" not in command and warning is True: # Get the equivalent rpc metamethod rpc_string = self.cli_to_rpc_string(command) if rpc_string is not None: warning_string = "\nCLI command is for debug use only!\n" warning_string += "Instead of:\ncli('%s')\n" % (command) warning_string += "Use:\n%s\n" % (rpc_string) warnings.simplefilter("always") warnings.warn(warning_string, RuntimeWarning) warnings.resetwarnings() try: rsp = self.rpc.cli(command=command, format=format) if isinstance(rsp, dict) and format.lower() == "json": return rsp # rsp returned True means is empty, hence return # empty str as would be the case on cli # ex: # # if rsp is True: return "" if rsp.tag in ["output", "rpc-reply"]: if rsp.tag == "output" and rsp.getparent() is not None: rsp = rsp.getparent() encode = None if sys.version < "3" else "unicode" return etree.tostring( rsp, method="text", with_tail=False, encoding=encode ) if rsp.tag == "configuration-information": return rsp.findtext("configuration-output") if rsp.tag == "rpc": return rsp[0] return rsp except ( EzErrors.ConnectClosedError, EzErrors.RpcError, EzErrors.RpcTimeoutError, ) as ex: raise ex except Exception as ex: warnings.warn( "An unknown exception occurred : %s - please report." % ex, RuntimeWarning, ) raise ex # ------------------------------------------------------------------------ # execute # ------------------------------------------------------------------------ @normalizeDecorator @timeoutDecorator def execute(self, rpc_cmd, ignore_warning=False, **kvargs): """ Executes an XML RPC and returns results as either XML or native python :param rpc_cmd: can either be an XML Element or xml-as-string. In either case the command starts with the specific command element, i.e., not the element itself :param ignore_warning: A boolean, string or list of string. If the value is True, it will ignore all warnings regardless of the warning message. If the value is a string, it will ignore warning(s) if the message of each warning matches the string. If the value is a list of strings, ignore warning(s) if the message of each warning matches at least one of the strings in the list. .. note:: When the value of ignore_warning is a string, or list of strings, the string is actually used as a case-insensitive regular expression pattern. If the string contains only alpha-numeric characters, as shown in the above examples, this results in a case-insensitive substring match. However, any regular expression pattern supported by the re library may be used for more complicated match conditions. :param func to_py: Is a caller provided function that takes the response and will convert the results to native python types. all kvargs will be passed to this function as well in the form:: to_py( self, rpc_rsp, **kvargs ) :raises ValueError: When the **rpc_cmd** is of unknown origin :raises PermissionError: When the requested RPC command is not allowed due to user-auth class privilege controls on Junos :raises RpcError: When an ``rpc-error`` element is contained in the RPC-reply and the ``rpc-error`` element does not match the **ignore_warning** value. :returns: RPC-reply as XML object. If **to_py** is provided, then that function is called, and return of that function is provided back to the caller; presumably to convert the XML to native python data-types (e.g. ``dict``). """ if self.connected is not True: raise EzErrors.ConnectClosedError(self) if isinstance(rpc_cmd, str): rpc_cmd_e = etree.XML(rpc_cmd) elif isinstance(rpc_cmd, etree._Element): rpc_cmd_e = rpc_cmd else: raise ValueError( "Dont know what to do with rpc of type %s" % rpc_cmd.__class__.__name__ ) # invoking a bad RPC will cause a connection object exception # will will be raised directly to the caller ... for now ... # @@@ need to trap this and re-raise accordingly. try: rpc_rsp_e = self._rpc_reply( rpc_cmd_e, ignore_warning=ignore_warning, filter_xml=kvargs.get("filter_xml"), ) except NcOpErrors.TimeoutExpiredError: # err is a TimeoutExpiredError from ncclient, # which has no such attribute as xml. raise EzErrors.RpcTimeoutError(self, rpc_cmd_e.tag, self.timeout) except NcErrors.TransportError: raise EzErrors.ConnectClosedError(self) except RPCError as ex: if hasattr(ex, "xml"): rsp = JXML.remove_namespaces(ex.xml) message = rsp.findtext("error-message") # see if this is a permission error if message and message == "permission denied": raise EzErrors.PermissionError(cmd=rpc_cmd_e, rsp=rsp, errs=ex) else: rsp = None raise EzErrors.RpcError(cmd=rpc_cmd_e, rsp=rsp, errs=ex) # Something unexpected happened - raise it up except Exception as err: warnings.warn( "An unknown exception occurred - please report.", RuntimeWarning ) raise # From 14.2 onward, junos supports JSON, so now code can be written as # dev.rpc.get_route_engine_information({'format': 'json'}) # should not convert rpc response to json when loading json config # as response should be rpc-reply xml object. if rpc_cmd_e.tag != "load-configuration" and rpc_cmd_e.attrib.get("format") in [ "json", "JSON", ]: ver_info = self.facts.get("version_info") if ver_info and ( ver_info.major[0] >= 15 or (ver_info.major[0] == 14 and ver_info.major[1] >= 2) ): try: return json.loads(rpc_rsp_e.text, strict=False) except ValueError as ex: # when data is {}{.*} types if str(ex).startswith("Extra data"): return json.loads(re.sub(r"\s?{\s?}\s?", "", rpc_rsp_e.text)) else: raise JSONLoadError(ex, rpc_rsp_e.text) else: warnings.warn( "Native JSON support is only from 14.2 onwards", RuntimeWarning ) # This section is here for the possible use of something other than # ncclient for RPCs that have embedded rpc-errors, need to check for # those now. # rpc_errs = rpc_rsp_e.xpath('.//rpc-error') # if len(rpc_errs): # raise EzErrors.RpcError(cmd=rpc_cmd_e, rsp=rpc_errs[0]) # skip the element and pass the caller first child element # generally speaking this is what they really want. If they want to # uplevel they can always call the getparent() method on it. try: ret_rpc_rsp = rpc_rsp_e[0] except IndexError: # For cases where reply are like # # protocol: operation-failed # error: device asdf not found # if rpc_rsp_e.text is not None and rpc_rsp_e.text.strip() != "": return rpc_rsp_e # no children, so assume it means we are OK return True # if the caller provided a "to Python" conversion function, then invoke # that now and return the results of that function. otherwise just # return the RPC results as XML if kvargs.get("to_py"): return kvargs["to_py"](self, ret_rpc_rsp, **kvargs) else: return ret_rpc_rsp # ------------------------------------------------------------------------ # facts # ------------------------------------------------------------------------ def facts_refresh( self, exception_on_failure=False, warnings_on_failure=None, keys=None ): """ Refresh the facts from the Junos device into :attr:`facts` property. See :module:`jnpr.junos.facts` for a complete list of available facts. For old-style facts, this causes all facts to be immediately reloaded. For new-style facts, the current fact value(s) are deleted, and the fact is reloaded on demand. :param bool exception_on_failure: To raise exception when facts gathering errors out. If True when new-style fact gathering is in use, causes all facts to be reloaded rather than being loaded on demand. :param bool warnings_on_failure: To print a warning when fact gathering errors out. The default for old-style facts gathering is warnings_on_failure=True. The default for new-style facts gathering is warnings_on_failure=False. If True when new-style fact gathering is in use, causes all facts to be reloaded rather than being loaded on demand. :param str, set, list, or tuple keys: The set of keys in facts to refresh. Note: Old-style facts gathering does not support gathering individual facts, so this argument can only be specified when new-style fact gathering is in use. In addition, setting exception_on_failure or warnings_on_failure to True causes all facts to be immediately refreshed, rather than being refreshed on demand. For this reason, the keys argument can not be specified if exception_on_failure or warnings_on_failure are True. An example of specifying the keys argument as a string: ``` dev.facts_refresh(keys='hostname') ``` An example of specifying the keys argument as a tuple: ``` dev.facts_refresh(keys=('hostname', 'hostname_info', 'domain', 'fqdn')) ``` or as a list: ``` dev.facts_refresh(keys=['hostname', 'hostname_info', 'domain', 'fqdn']) ``` or as a set: ``` dev.facts_refresh(keys={'hostname', 'hostname_info', 'domain', 'fqdn'}) ``` :raises RuntimeError: If old-style fact gathering is in use and a keys argument is specified. """ if self._fact_style not in ["old", "new", "both"]: raise RuntimeError("Unknown fact_style: %s" % (self._fact_style)) if self._fact_style == "old" or self._fact_style == "both": if warnings_on_failure is None: warnings_on_failure = True if keys is not None: raise RuntimeError( "The keys argument can not be specified " "when old-style fact gathering is in use!" ) should_warn = False for gather in FACT_LIST: try: gather(self, self._ofacts) except: if exception_on_failure: raise should_warn = True if ( warnings_on_failure is True and should_warn is True and self._fact_style != "both" ): warnings.warn( "Facts gathering is incomplete. " "To know the reason call " '"dev.facts_refresh(exception_on_failure=True)"', RuntimeWarning, ) if self._fact_style == "new" or self._fact_style == "both": if warnings_on_failure is None: warnings_on_failure = False self.facts._refresh( exception_on_failure=exception_on_failure, warnings_on_failure=warnings_on_failure, keys=keys, ) return # ----------------------------------------------------------------------- # OVERLOADS # ----------------------------------------------------------------------- def __repr__(self): return "Device(%s)" % self.hostname class DeviceSessionListener(SessionListener): """ Listens to Session class of Netconf Transport and detects errors in the transport. """ def __init__(self, device): self._device = device def callback(self, root, raw): """Required by implementation but not used here.""" pass def errback(self, ex): """Called when an error occurs. Set the device's connected status to False. :type ex: :exc:`Exception` """ self._device.connected = False class Device(_Connection): """ Junos Device class. :attr:`ON_JUNOS`: **READ-ONLY** - Auto-set to ``True`` when this code is running on a Junos device, vs. running on a local-server remotely connecting to a device. :attr:`auto_probe`: When non-zero the call to :meth:`open` will probe for NETCONF reachability before proceeding with the NETCONF session establishment. If you want to enable this behavior by default, you could do the following in your code:: from jnpr.junos import Device # set all device open to auto-probe with timeout of 10 sec Device.auto_probe = 10 dev = Device( ... ) dev.open() # this will probe before attempting NETCONF connect """ # ------------------------------------------------------------------------- # PROPERTIES # ------------------------------------------------------------------------- # ------------------------------------------------------------------------ # property: transform # ------------------------------------------------------------------------ @property def transform(self): """ :returns: the current RPC XML Transformation. """ try: return self._conn._device_handler.transform_reply except AttributeError: if self._conn is None: raise ConnectError(self, "Not connected to the Device") @transform.setter def transform(self, func): """ Used to change the RPC XML Transformation. :param lambda value: New transform lambda """ self._conn._device_handler.transform_reply = func # ----------------------------------------------------------------------- # CONSTRUCTOR # ----------------------------------------------------------------------- def __new__(cls, *args, **kwargs): if ( kwargs.get("port") in [23, "23"] or kwargs.get("mode") or kwargs.get("cs_user") is not None ): from jnpr.junos.console import Console if kwargs.get("conn_open_timeout", None): # Console already supports timeout while opening connections # via `timeout` parameter. Refer `Console` documentation # for more details. # Note: The actual timeout may appear higher than set timeout as # the actual timeout is 3*(timeout+2) kwargs["timeout"] = kwargs.pop("conn_open_timeout") instance = object.__new__(Console, *args, **kwargs) # Python only calls __init__() if the object returned from # __new__() is an instance of the class in which the __new__() # method is contained (here Device class). Hence calling __init__ # explicitly. kwargs["host"] = args[0] if len(args) else kwargs.get("host") instance.__init__(**kwargs) return instance else: if sys.version < "3": return super(Device, cls).__new__(cls, *args, **kwargs) else: return super().__new__(cls) def __init__(self, *vargs, **kvargs): """ Device object constructor. :param str vargs[0]: host-name or ipaddress. This is an alternative for **host** :param str host: **REQUIRED** host-name or ipaddress of target device, unless sock_fd is provided :param str sock_fd: **REQUIRED** file descriptor of an existing socket instead of providing a host. Used for outbound ssh. :param str user: *OPTIONAL* login user-name, uses $USER if not provided :param str passwd: *OPTIONAL* if not provided, assumed ssh-keys are enforced :param int port: *OPTIONAL* NETCONF port (defaults to 830) :param bool gather_facts: *OPTIONAL* For ssh mode default is ``True``. In case of console connection over telnet/serial it defaults to ``False``. If ``False`` and old-style fact gathering is in use then facts are not gathered on call to :meth:`open`. This argument is a no-op when new-style fact gathering is in use (the default.) :param str fact_style: *OPTIONAL* The style of fact gathering to use. Valid values are: 'new', 'old', or 'both'. The default is 'new'. The value 'both' is only present for debugging purposes. It will be removed in a future release. The value 'old' is only present to workaround bugs in new-style fact gathering. It will be removed in a future release. :param str mode: *OPTIONAL* mode, mode for console connection (telnet/serial) :param int baud: *OPTIONAL* baud, Used during serial console mode, default baud rate is 9600 :param int attempts: *OPTIONAL* attempts, for console connection. default is 10 :param bool auto_probe: *OPTIONAL* if non-zero then this enables auto_probe at time of :meth:`open` and defines the amount of time(sec) for the probe timeout :param str ssh_private_key_file: *OPTIONAL* The path to the SSH private key file. This can be used if you need to provide a private key rather than loading the key into the ssh-key-ring/environment. if your ssh-key requires a password, then you must provide it via **passwd** :param str ssh_config: *OPTIONAL* The path to the SSH configuration file. This can be used to load SSH information from a configuration file. By default ~/.ssh/config is queried. :param bool normalize: *OPTIONAL* default is ``False``. If ``True`` then the XML returned by :meth:`execute` will have whitespace normalized :param bool use_filter: *OPTIONAL* To choose between SAX and DOM parsing. default is ``False`` to use DOM. Select ``True`` to use SAX (if SAX input is provided). :param int conn_open_timeout: *OPTIONAL* To specify the timeout in seconds, which will be used while opening SSH connection to the device :param bool huge_tree: *OPTIONAL* parse XML with very deep trees and long text content. default is ``False``. :param bool look_for_keys: *OPTIONAL* To disable public key authentication. default is ``None``. :param str bind_addr: *OPTIONAL* To use (local) source IP address. default is ``None``. :param bool hostkey_verify: *OPTIONAL* To enable ssh_known hostkey verify default is ``False``. """ # ---------------------------------------- # setup instance connection/open variables # ---------------------------------------- hostname = vargs[0] if len(vargs) else kvargs.get("host") self._port = kvargs.get("port", 830) self._sock_fd = kvargs.get("sock_fd", None) self._gather_facts = kvargs.get("gather_facts", True) self._normalize = kvargs.get("normalize", False) self._auto_probe = kvargs.get("auto_probe", self.__class__.auto_probe) self._fact_style = kvargs.get("fact_style", "new") self._use_filter = kvargs.get("use_filter", False) self._huge_tree = kvargs.get("huge_tree", False) self._conn_open_timeout = kvargs.get("conn_open_timeout", 30) self._look_for_keys = kvargs.get("look_for_keys", None) self._bind_addr = kvargs.get("bind_addr", None) self._hostkey_verify = kvargs.get("hostkey_verify", False) if self._fact_style != "new": warnings.warn( "fact-style %s will be removed in a future " "release." % (self._fact_style), RuntimeWarning, ) if self.__class__.ON_JUNOS is True and hostname is None: # --------------------------------- # running on a Junos device locally # --------------------------------- self._auth_user = None self._auth_password = None self._hostname = "localhost" self._ssh_private_key_file = None self._ssh_config = None else: # -------------------------- # making a remote connection # if hostname is None, this is an 'outbound-ssh' connection # which uses the established TCP connection from sock_fd # -------------------------- if hostname is None and self._sock_fd is None: raise ValueError("You must provide either 'host' or 'sock_fd' value") self._hostname = hostname # user will default to $USER self._auth_user = os.getenv("USER") self._conf_auth_user = None self._conf_ssh_private_key_file = None # user can get updated by ssh_config self._ssh_config = kvargs.get("ssh_config") self._sshconf_lkup() # but if user or private key is explicit from call, then use it. self._auth_user = ( kvargs.get("user") or self._conf_auth_user or self._auth_user ) self._ssh_private_key_file = ( kvargs.get("ssh_private_key_file") or self._conf_ssh_private_key_file ) self._auth_password = kvargs.get("password") or kvargs.get("passwd") # ----------------------------- # initialize instance variables # ------------------------------ self._conn = None self._j2ldr = _Jinja2ldr self._manages = [] self._ofacts = {} # public attributes self.connected = False self.rpc = _RpcMetaExec(self) if self._fact_style == "old": self.facts = self.ofacts else: self.facts = _FactCache(self) # ----------------------------------------------------------------------- # Basic device methods # ----------------------------------------------------------------------- @property def connected(self): return self._connected @connected.setter def connected(self, value): if value in [True, False]: self._connected = value def open(self, *vargs, **kvargs): """ Opens a connection to the device using existing login/auth information. :param bool gather_facts: If set to ``True``/``False`` will override the device instance value for only this open process :param bool auto_probe: If non-zero then this enables auto_probe and defines the amount of time/seconds for the probe timeout :param bool normalize: If set to ``True``/``False`` will override the device instance value for only this open process :returns Device: Device instance (*self*). :raises ProbeError: When **auto_probe** is ``True`` and the probe activity exceeds the timeout :raises ConnectAuthError: When provided authentication credentials fail to login :raises ConnectRefusedError: When the device does not have NETCONF enabled :raises ConnectTimeoutError: When the the :meth:`Device.timeout` value is exceeded during the attempt to connect to the remote device :raises ConnectError: When an error, other than the above, occurs. The originating ``Exception`` is assigned as ``err._orig`` and re-raised to the caller. """ auto_probe = kvargs.get("auto_probe", self._auto_probe) if auto_probe != 0: if not self.probe(auto_probe): raise EzErrors.ProbeError(self) try: ts_start = datetime.datetime.now() # we want to enable the ssh-agent if-and-only-if we are # not given a password or an ssh key file. # in this condition it means we want to query the agent # for available ssh keys allow_agent = bool( (self._auth_password is None) and (self._ssh_private_key_file is None) ) # option to disable ncclient transport ssh authentication # using public keys look_for_keys=False if self._look_for_keys is None: look_for_keys = True else: look_for_keys = self._look_for_keys # option to enable ssh_known hosts key verification # using hostkey_verify=True # Default is disabled with hostkey_verify=False if self._hostkey_verify is None: hostkey_verify = False else: hostkey_verify = self._hostkey_verify # open connection using ncclient transport self._conn = netconf_ssh.connect( host=self._hostname, port=self._port, sock_fd=self._sock_fd, username=self._auth_user, password=self._auth_password, hostkey_verify=hostkey_verify, key_filename=self._ssh_private_key_file, allow_agent=allow_agent, look_for_keys=look_for_keys, ssh_config=self._sshconf_lkup(), bind_addr=self._bind_addr, timeout=self._conn_open_timeout, device_params={ "name": "junos", "local": self.__class__.ON_JUNOS, "use_filter": self._use_filter, }, ) self._conn._session.add_listener(DeviceSessionListener(self)) except NcErrors.AuthenticationError as err: # bad authentication credentials raise EzErrors.ConnectAuthError(self) except NcErrors.SSHError as err: # this is a bit of a hack for now, since we want to # know if the connection was refused or we simply could # not open a connection due to reachability. so using # a timestamp to differentiate the two conditions for now # if the diff is < 3 sec, then assume the host is # reachable, but NETCONF connection is refused. ts_err = datetime.datetime.now() diff_ts = ts_err - ts_start if diff_ts.seconds < 3: raise EzErrors.ConnectRefusedError(self) # at this point, we assume that the connection # has timed out due to ip-reachability issues if str(err).find("not open") > 0: raise EzErrors.ConnectTimeoutError(self) else: # otherwise raise a generic connection # error for now. tag the new exception # with the original for debug cnx = EzErrors.ConnectError(self) cnx._orig = err raise cnx except socket.gaierror: # invalid DNS name, so unreachable raise EzErrors.ConnectUnknownHostError(self) except Exception as err: # anything else, we will re-raise as a # generic ConnectError cnx_err = EzErrors.ConnectError(self) cnx_err._orig = err raise cnx_err if self._huge_tree: self._conn.huge_tree = True self.connected = True self._nc_transform = self.transform self._norm_transform = lambda: JXML.normalize_xslt.encode("UTF-8") # normalize argument to open() overrides normalize argument value # to __init__(). Save value to self._normalize where it is used by # normalizeDecorator() self._normalize = kvargs.get("normalize", self._normalize) if self._normalize is True: self.transform = self._norm_transform gather_facts = kvargs.get("gather_facts", self._gather_facts) if gather_facts is True: self.facts_refresh() return self def close(self): """ Closes the connection to the device only if connected. """ if self.connected is True: self.connected = False try: self._conn.close_session() except NcOpErrors.TimeoutExpiredError: raise EzErrors.RpcTimeoutError(self, "close", self.timeout) except NcErrors.SessionCloseError: pass @ignoreWarnDecorator def _rpc_reply(self, rpc_cmd_e, filter_xml=None): if NCCLIENT_FILTER_XML: return self._conn.rpc(rpc_cmd_e, filter_xml)._NCElement__doc else: return self._conn.rpc(rpc_cmd_e)._NCElement__doc # ----------------------------------------------------------------------- # Context Manager # ----------------------------------------------------------------------- def __enter__(self): self.open() return self def __exit__(self, exc_type, exc_val, exc_tb): if self._conn.connected and not isinstance(exc_val, EzErrors.ConnectError): try: self.close() except Exception as ex: # exit should not raise any exception logger.error("Close in context manager hit exception: {}".format(ex)) py-junos-eznc-2.7.3/lib/jnpr/junos/exception.py000066400000000000000000000214741475361112400215050ustar00rootroot00000000000000import re from jnpr.junos import jxml from jnpr.junos import jxml as JXML from lxml.etree import _Element from ncclient.operations.rpc import RPCError class FactLoopError(RuntimeError): """ Generated when there is a loop in fact gathering. """ pass class RpcError(Exception): """ Parent class for all junos-pyez RPC Exceptions """ def __init__(self, cmd=None, rsp=None, errs=None, dev=None, timeout=None, re=None): """ :cmd: is the rpc command :rsp: is the rpc response (after ) :errs: is a list of dictionaries of extracted elements. :dev: is the device rpc was executed on :timeout: is the timeout value of the device :re: is the RE or member exception occured on """ self.cmd = cmd self.rsp = rsp self.dev = dev self.timeout = timeout self.re = re self.rpc_error = None self.xml = rsp # To handle errors coming from ncclient, Here errs is list of RPCError if isinstance(errs, RPCError) and hasattr(errs, "errors"): self.errs = [JXML.rpc_error(error.xml) for error in errs.errors] for error in errs.errors: if error.severity == "error": self.rsp = JXML.remove_namespaces(error.xml) break else: if errs.severity == "warning": for error in errs.errors: if error.severity == "warning": self.rsp = JXML.remove_namespaces(error.xml) break self.message = errs.message else: self.errs = errs self.message = ( "\n".join( [ "%s: %s" % (err["severity"].strip(), err["message"].strip()) for err in errs if err["message"] is not None and err["severity"] is not None ] ) if isinstance(errs, list) else "" ) if isinstance(self.rsp, _Element): self.rpc_error = jxml.rpc_error(self.rsp) self.message = self.message or self.rpc_error["message"] if self.errs is None or not isinstance(self.errs, list): self.errs = [self.rpc_error] def __repr__(self): """ pprints the response XML attribute """ if self.rpc_error is not None: return "{}(severity: {}, bad_element: {}, message: {})".format( self.__class__.__name__, self.rpc_error["severity"], self.rpc_error["bad_element"], self.message, ) else: return self.__class__.__name__ __str__ = __repr__ class CommitError(RpcError): """ Generated in response to a commit-check or a commit action. """ def __init__(self, rsp, cmd=None, errs=None): RpcError.__init__(self, cmd, rsp, errs) def __repr__(self): return "{}(edit_path: {}, bad_element: {}, message: {})".format( self.__class__.__name__, self.rpc_error["edit_path"], self.rpc_error["bad_element"], self.message, ) __str__ = __repr__ class ConfigLoadError(RpcError): """ Generated in response to a failure when loading a configuration. """ def __init__(self, rsp, cmd=None, errs=None): RpcError.__init__(self, cmd, rsp, errs) def __repr__(self): return "{}(severity: {}, bad_element: {}, message: {})".format( self.__class__.__name__, self.rpc_error["severity"], self.rpc_error["bad_element"], self.message, ) __str__ = __repr__ class LockError(RpcError): """ Generated in response to attempting to take an exclusive lock on the configuration database. """ def __init__(self, rsp): RpcError.__init__(self, rsp=rsp) class UnlockError(RpcError): """ Generated in response to attempting to unlock the configuration database. """ def __init__(self, rsp): RpcError.__init__(self, rsp=rsp) class PermissionError(RpcError): """ Generated in response to invoking an RPC for which the auth user does not have user-class permissions. PermissionError.message gives you the specific RPC that cause the exceptions """ def __init__(self, rsp, cmd=None, errs=None): RpcError.__init__(self, cmd=cmd, rsp=rsp, errs=errs) self.message = rsp.findtext(".//bad-element") class RpcTimeoutError(RpcError): """ Generated in response to a RPC execution timeout. """ def __init__(self, dev, cmd, timeout): RpcError.__init__(self, dev=dev, cmd=cmd, timeout=timeout) def __repr__(self): return "{}(host: {}, cmd: {}, timeout: {})".format( self.__class__.__name__, self.dev.hostname, self.cmd, self.timeout ) __str__ = __repr__ class SwRollbackError(RpcError): """ Generated in response to a SW rollback error. """ def __init__(self, rsp, re=None): RpcError.__init__(self, re=re, rsp=rsp) def __repr__(self): if self.re: return "{}(re: {}, output: {})".format( self.__class__.__name__, self.re, self.rsp ) else: return "{}(output: {})".format(self.__class__.__name__, self.rsp) __str__ = __repr__ # ================================================================ # ================================================================ # Connection Exceptions # ================================================================ # ================================================================ class ConnectError(Exception): """ Parent class for all connection related exceptions """ def __init__(self, dev, msg=None): self.dev = dev self._orig = msg @property def user(self): """login user-name""" return self.dev.user @property def host(self): """login host name/ipaddr""" return self.dev.hostname @property def port(self): """login SSH port""" return self.dev._port @property def msg(self): """login SSH port""" return self._orig def __repr__(self): if self._orig: return "{}(host: {}, msg: {})".format( self.__class__.__name__, self.dev.hostname, self._orig ) else: return "{}({})".format(self.__class__.__name__, self.dev.hostname) __str__ = __repr__ class ProbeError(ConnectError): """ Generated if auto_probe is enabled and the probe action fails """ pass class ConnectAuthError(ConnectError): """ Generated if the user-name, password is invalid """ pass class ConnectTimeoutError(ConnectError): """ Generated if the NETCONF session fails to connect, could be due to the fact the device is not ip reachable; bad ipaddr or just due to routing """ pass class ConnectUnknownHostError(ConnectError): """ Generated if the specific hostname does not DNS resolve """ pass class ConnectRefusedError(ConnectError): """ Generated if the specified host denies the NETCONF; could be that the services is not enabled, or the host has too many connections already. """ pass class ConnectNotMasterError(ConnectError): """ Generated if the connection is made to a non-master routing-engine. This could be a backup RE on an MX device, or a virtual-chassis member (linecard), for example """ pass class ConnectClosedError(ConnectError): """ Generated if connection unexpectedly closed """ def __init__(self, dev): ConnectError.__init__(self, dev=dev) dev.connected = False class JSONLoadError(Exception): """ Generated if json content of rpc reply fails to load """ def __init__(self, exception, rpc_content): self.ex_msg = str(exception) self.rpc_content = rpc_content self.offending_line = "" obj = re.search(r"line (\d+)", self.ex_msg) if obj: line_no = int(obj.group(1)) rpc_lines = rpc_content.splitlines() for line in range(line_no - 3, line_no + 2): self.offending_line += "%s: %s\n" % (line + 1, rpc_lines[line]) def __repr__(self): if self.offending_line: return ( "{}(reason: {}, \nThe offending config appears " "to be: \n{})".format( self.__class__.__name__, self.ex_msg, self.offending_line ) ) else: return "{}(reason: {})".format(self.__class__.__name__, self.ex_msg) __str__ = __repr__ py-junos-eznc-2.7.3/lib/jnpr/junos/factcache.py000066400000000000000000000310301475361112400213750ustar00rootroot00000000000000import warnings from pprint import pformat try: from collections.abc import MutableMapping except ImportError: from collections import MutableMapping import jnpr.junos.facts from jnpr.junos.facts import __doc__ as facts_doc import jnpr.junos.exception class _FactCache(MutableMapping): """ A dictionary-like object which performs on-demand fact gathering. This class should not be used directly. An instance of this class is available as the :attr:`facts` attribute of a Device object. **Dictionary magic methods:** * :meth:`__getitem__`: Gets the value of a given key in the dict. * :meth:`__delitem__`: Called when a key is deleted from the dict. * :meth:`__setitem__`: Called when a key is set on the dict. * :meth:`__iter__`: Called when iterating over the keys of the dict. * :meth:`__len__`: Called when getting the length of the dict. * :meth:`__repr__`: Called when representing the dict as a string. **Additional methods:** * :meth:`_refresh`: Refreshes the fact cache. """ def __init__(self, device): """ _FactCache object constructor. :param device: The device object for which fact gathering will be performed. """ self._device = device self._cache = dict() self._call_stack = list() self._callbacks = jnpr.junos.facts._callbacks self._exception_on_failure = False self._warnings_on_failure = False self._should_warn = False def __getitem__(self, key): """ Return the value of a particular key in the dictionary. If the fact has already been cached, the value is simply returned from the cache. If the value has not been cached, then the appropriate callback function is invoked to gather the fact from the device. The value is cached, and then returned. If _warnings_on_failure is True, then a warning is logged if there is an error gathering a fact from the device. :param key: The key who's value is returned. :returns value: The value of the key fact. If key is a known fact, but there is an error gathering the fact, then the value None is returned. :raises KeyError: When key is not a known fact (there is no callback present to gather the fact.) :raises jnpr.junos.exception.FactLoopError: When there is a loop attempting to gather the fact. :raises other exceptions as defined by the fact gathering modules: When an error is encountered and _exception_on_failure is True. """ if key not in self._callbacks: # Not a fact that we know how to provide. raise KeyError( "%s: There is no function to gather the %s fact" % (key, key) ) if key not in self._cache: # A known fact, but not yet cached. Go get it and cache it. if self._callbacks[key] in self._call_stack: raise jnpr.junos.exception.FactLoopError( "A loop was detected while gathering the %s fact. The %s " "module has already been called. Please report this error." % (key, self._callbacks[key].__module__) ) else: # Add the callback we are about to invoke to the _call_stack in # order to detect loops in fact gathering. self._call_stack.append(self._callbacks[key]) try: # Invoke the callback new_facts = self._callbacks[key](self._device) except jnpr.junos.exception.FactLoopError: raise except Exception: # An exception was raised. No facts were returned. # Raise the exception to the user? if self._exception_on_failure: raise # Warn the user? if self._warnings_on_failure: self._should_warn = True # Set all of the facts which should have been returned # by this callback to the default value of None. for new_key in self._callbacks: if self._callbacks[key] is self._callbacks[new_key]: self._cache[new_key] = None else: # No exception for new_key in new_facts: if ( new_key not in self._callbacks or self._callbacks[key] is not self._callbacks[new_key] ): # The callback returned a fact it didn't advertise raise RuntimeError( "The %s module returned the %s " "fact, but does not list %s as a " "provided fact. Please report this " "error." % (self._callbacks[key].__module__, new_key, new_key) ) else: # Cache the returned fact self._cache[new_key] = new_facts[new_key] finally: # Always pop the current callback from _call_stack, # regardless of whether or not an exception was raised. self._call_stack.pop() if key in self._cache: # key fact is cached. Return it. if self._device._fact_style == "both": # Compare old and new-style values. if key in self._device._ofacts: # Skip key comparisons for certain keys. # # The old facts gathering code has an up_time key. # The new facts gathering code maintains this key for RE0 # and RE1 facts, but it's not comparable (because it # depends on when the fact was gathered and is therefore # not really a "fact".) The new re_info fact omits the # up_time field for this reason. # # The old facts gathering code didn't return a correct # value for the master fact when the system was a VC. # The new fact gathering code still returns the master fact # but returns a correct value for VCs. It also returns a # new re_master fact which is much more useful. if key not in ["RE0", "RE1", "master"]: if self._cache[key] != self._device._ofacts[key]: warnings.warn( "New and old-style facts do not " "match for the %s fact.\n" " New-style value: %s\n" " Old-style value: %s\n" % (key, self._cache[key], self._device._ofacts[key]), RuntimeWarning, ) return self._cache[key] else: # key fact was not returned by callback raise RuntimeError( "The %s module claims to provide the %s " "fact, but failed to return it. Please report " "this error." % (self._callbacks[key].__module__, key) ) def __delitem__(self, key): """ Facts are read-only. Don't allow deleting an item. """ raise RuntimeError("facts are read-only!") def __setitem__(self, key, value): """ Facts are read-only. Don't allow setting an item. """ raise RuntimeError("facts are read-only!") def __iter__(self): """ An iterator of known facts. :returns iterator: of all of the 'non-hidden' facts we know how to gather, regardless of whether or not they've already been cached. Fact names which are hidden start with an underscore and are not returned. """ callbacks = {} for key in self._callbacks: if not key.startswith("_"): callbacks[key] = self._callbacks[key] return iter(callbacks) def __len__(self): """ The length of all known facts. :returns length: of all of the facts we know how to gather, regardless of whether or not they've already been cached. """ return len(self._callbacks) def __str__(self): """ A string representation of the facts dictionary. :returns string: a string representation of the dictionary. Because this returns the value of every fact, it has the side-effect of causing any ungathered facts to be gathered and then cached. """ string = "" for key in sorted(self): if not key.startswith("_"): current = "'%s': %s" % (key, repr(self.get(key))) if string: string = ", ".join([string, current]) else: string = current return "{" + string + "}" def __repr__(self): """ A formated string representation of the facts dictionary. :returns string: a formated string representation of the dictionary. Because this returns the value of every fact, it has the side-effect of causing any ungathered facts to be gathered and then cached. """ return pformat(dict(self)) def _refresh( self, exception_on_failure=False, warnings_on_failure=False, keys=None ): """ Empty the cache to force a refresh of one or more facts. Empties the fact gathering cache for all keys (if keys == None) or a set of keys. This causes the fact to be gathered and cached upon next access. If either eception_on_failure or warnings_on_failure is true, then all facts are accessed by getting the string representation of the facts. This causes all facts to immediately be populated so that any exceptions or warnings are generated during the call to _refresh(). :param exception_on_failure: A boolean which indicates if an exception should be raised upon a failure gathering facts. :param warnings_on_failure: A boolean which indicates if an warning should be logged upon a failure gathering facts. :param keys: A single key as a string, or an iterable of keys (such as a list, set, or or tuple.) The specified keys are emptied from the cache. If None, all keys are emptied from the cache. :raises RuntimeError: When keys contains an unknown fact. """ refresh_keys = None if keys is not None: if isinstance("str", type(keys)): refresh_keys = (keys,) else: refresh_keys = keys if refresh_keys is not None: for key in refresh_keys: if key in self._callbacks: if key in self._cache: del self._cache[key] else: raise RuntimeError( "The %s fact can not be refreshed. %s " "is not a known fact." % (key, key) ) else: self._cache = dict() if exception_on_failure or warnings_on_failure: self._exception_on_failure = exception_on_failure self._warnings_on_failure = warnings_on_failure try: str(self._device.facts) except Exception: if exception_on_failure: raise finally: if warnings_on_failure and self._should_warn: warnings.warn( "Facts gathering is incomplete. " "To know the reason call " '"dev.facts_refresh(' 'exception_on_failure=True)"', RuntimeWarning, ) self._exception_on_failure = False self._warnings_on_failure = False self._should_warn = False # In case optimization flag is enabled, it strips of docstring and __doc__ becomes None if __doc__ is None: __doc__ = "" # Precede the class's documentation with the documentation on the specific # facts from the jnpr.junos.facts package. __doc__ = facts_doc + "Implementation details on the _FactCache class:" + __doc__ py-junos-eznc-2.7.3/lib/jnpr/junos/factory/000077500000000000000000000000001475361112400205745ustar00rootroot00000000000000py-junos-eznc-2.7.3/lib/jnpr/junos/factory/__init__.py000066400000000000000000000017521475361112400227120ustar00rootroot00000000000000import yaml import os.path from jnpr.junos.factory.factory_loader import FactoryLoader __all__ = ["loadyaml", "FactoryLoader"] def loadyaml(path): """ Load a YAML file at :path: that contains Table and View definitions. Returns a of item-name anditem-class definition. If you want to import these definitions directly into your namespace, (like a module) you would do the following: globals().update( loadyaml( )) If you did not want to do this, you can access the items as the . For example, if your YAML file contained a Table called MyTable, then you could do something like: catalog = loadyaml( ) MyTable = catalog['MyTable'] table = MyTable(dev) table.get() ... """ # if no extension is given, default to '.yml' if os.path.splitext(path)[1] == "": path += ".yml" return FactoryLoader().load(yaml.load(open(path, "r"), Loader=yaml.FullLoader)) py-junos-eznc-2.7.3/lib/jnpr/junos/factory/cfgtable.py000066400000000000000000000645031475361112400227250ustar00rootroot00000000000000from copy import deepcopy import re from lxml import etree from lxml.builder import E from jnpr.junos.factory.table import Table from jnpr.junos import jxml from jnpr.junos.utils.config import Config class CfgTable(Table): __isfrozen = False # ----------------------------------------------------------------------- # CONSTRUCTOR # ----------------------------------------------------------------------- def __init__(self, dev=None, xml=None, path=None, mode=None): Table.__init__(self, dev, xml, path) # call parent constructor self._init_get() self._data_dict = self.DEFINE # crutch self.ITEM_NAME_XPATH = self._data_dict.get("key", "name") self.view = self._data_dict.get("view") self._options = self._data_dict.get("options") self.mode = mode if "set" in self._data_dict: Config.__init__(self, dev, mode) # call parent constructor self._init_set() if self._view: self.fields = self._view.FIELDS.copy() else: raise ValueError( "%s set table view is not defined.\n" % (self.__class__.__name__) ) if "key-field" in self._data_dict: key_name = self._data_dict.get("key-field", None) if isinstance(key_name, list): self.key_field = key_name elif isinstance(key_name, str): self.key_field = [key_name] else: raise TypeError( "Key-field %s is of invalid type %s.\n" % (key_name, type(key_name)) ) else: raise ValueError("Table should have key-field attribute defined\n") self._type = "set" self._init_field() else: self._type = "get" self.ITEM_XPATH = self._data_dict[self._type] # no new attributes. self._freeze() # ----------------------------------------------------------------------- # PROPERTIES # ----------------------------------------------------------------------- @property def required_keys(self): """ return a list of the keys required when invoking :get(): and :get_keys(): """ return self._data_dict.get("required_keys") @property def keys_required(self): """True/False - if this Table requires keys""" return self.required_keys is not None # ----------------------------------------------------------------------- # PRIVATE METHODS # ----------------------------------------------------------------------- def _init_get(self): self._get_xpath = None # for debug purposes self._get_cmd = None self._get_opt = None def _init_set(self): self._insert_node = None # lxml object of configuration xml self._config_xml_req = None # To check if field value is set. self._is_field_set = False # for debug purposes self._load_rsp = None self._commit_rsp = None def _buildxml(self, namesonly=False): """ Return an lxml Element starting with and comprised of the elements specified in the xpath expression. For example, and xpath = 'interfaces/interface' would produce: If :namesonly: is True, then the XML will be encoded only to retrieve the XML name keys at the 'end' of the XPath expression. This return value can then be passed to dev.rpc.get_config() to retrieve the specifc data """ xpath = self._data_dict[self._type] self._get_xpath = "//configuration/" + xpath top = E("configuration") dot = top for name in xpath.split("/"): dot.append(E(name)) dot = dot[0] if namesonly is True: dot.attrib["recurse"] = "false" return top def _build_config_xml(self, top): """ used to encode the field values into the configuration XML for set table,each of the field= pairs are defined by user: """ for field_name, opt in self.fields.items(): dot = top # create an XML element with the key/value field_value = getattr(self, field_name, None) # If field value is not set ignore it if field_value is None: continue if isinstance(field_value, (list, tuple, set)): [self._validate_value(field_name, v, opt) for v in field_value] else: self._validate_value(field_name, field_value, opt) field_dict = self.fields[field_name] if "group" in field_dict: group_xpath = self._view.GROUPS[field_dict["group"]] dot = self._encode_xpath(top, group_xpath.split("/")) lxpath = field_dict["xpath"].split("/") if len(lxpath) > 1: dot = self._encode_xpath(top, lxpath[0 : len(lxpath) - 1]) add_field = self._grindfield(lxpath[-1], field_value) for _add in add_field: if len(_add.attrib) > 0: for i in dot.iter(): if i.tag == _add.tag: i.attrib.update(_add.attrib) break else: dot.append(_add) elif field_name in self.key_field: dot.insert(0, _add) else: dot.append(_add) def _validate_value(self, field_name, value, opt): """ Validate value set for field against the constraints and data type check define in yml table/view defination. :param field_name: Name of field as mentioned in yaml table/view :param value: Value set by user for field_name. :param opt: Dictionary of data type and constraint check. :return: """ def _get_field_type(ftype): ft = { "str": str, "int": int, "float": float, "bool": bool, }.get(ftype, None) if ft is None: raise TypeError("Unsupported type %s\n" % (ftype)) return ft def _validate_enum_value(field_name, value, enum_value): if isinstance(enum_value, list): if value not in enum_value: raise ValueError( "Invalid value %s assigned " "to field %s" % (value, field_name) ) elif isinstance(enum_value, str): if not value == enum_value: raise ValueError( "Invalid value %s assigned " "to field %s" % (value, field_name) ) else: raise TypeError( "Value of enum should " "be either a string or list of strings.\n" ) def _validate_type(field_name, value, opt): if isinstance(opt["type"], dict): if "enum" in opt["type"]: _validate_enum_value(field_name, value, opt["type"]["enum"]) else: # More user defined type check can be added in future. # raise execption for now. raise TypeError("Unsupported type %s\n" % (opt["type"])) elif isinstance(opt["type"], str): field_type = _get_field_type(opt["type"]) if not isinstance(value, field_type): raise TypeError( "Invalid value %s asigned to field %s," " value should be of type %s\n" % (value, field_name, field_type) ) else: raise TypeError( "Invalid value %s, should be either of" " type string or dictionary.\n" % (opt["type"]) ) def _validate_min_max_value(field_name, value, opt): if isinstance(value, (int, float)): if value < opt["minValue"] or value > opt["maxValue"]: raise ValueError( "Invalid value %s assigned " "to field %s.\n" % (value, field_name) ) elif isinstance(value, str): if len(value) < opt["minValue"] or len(value) > opt["maxValue"]: raise ValueError( "Invalid value %s assigned " "to field %s.\n" % (value, field_name) ) if isinstance(value, dict): # in case user want to pass operation attr for ex: # pass elif isinstance(value, (list, tuple, dict, set)): raise ValueError("%s value is invalid %s\n" % (field_name, value)) else: if "type" in opt: _validate_type(field_name, value, opt) if ("minValue" or "maxValue") in opt: _validate_min_max_value(field_name, value, opt) def _grindkey(self, key_xpath, key_value): """returns list of XML elements for key values""" simple = lambda: [E(key_xpath.replace("_", "-"), key_value)] composite = lambda: [ E(xp.replace("_", "-"), xv) for xp, xv in zip(key_xpath, key_value) ] return simple() if isinstance(key_xpath, str) else composite() def _grindxpath(self, key_xpath, key_value): """returns xpath elements for key values""" simple = lambda: "[{}='{}']".format(key_xpath.replace("_", "-"), key_value) composite = lambda: "[{}]".format( " and ".join( [ "{}='{}'".format(xp.replace("_", "-"), xv) for xp, xv in zip(key_xpath, key_value) ] ) ) return simple() if isinstance(key_xpath, str) else composite() def _grindfield(self, xpath, value): """returns list of xml elements for field name-value pairs""" lst = [] if isinstance(value, (list, tuple, set)): for v in value: lst.append(E(xpath.replace("_", "-"), str(v))) elif isinstance(value, bool): if value is True: lst.append(E(xpath.replace("_", "-"))) elif value is False: lst.append(E(xpath.replace("_", "-"), {"operation": "delete"})) elif isinstance(value, dict): lst.append(E(xpath.replace("_", "-"), value)) else: lst.append(E(xpath.replace("_", "-"), str(value))) return lst def _encode_requiredkeys(self, get_cmd, kvargs): """ used to encode the required_keys values into the XML get-command. each of the required_key= pairs are defined in :kvargs: """ rqkeys = self._data_dict["required_keys"] for key_name in self.required_keys: # create an XML element with the key/value key_value = kvargs.get(key_name) if key_value is None: raise ValueError("Missing required-key: '%s'" % (key_name)) key_xpath = rqkeys[key_name] add_keylist_xml = self._grindkey(key_xpath, key_value) # now link this item into the XML command, where key_name # designates the XML parent element key_name = key_name.replace("_", "-") dot = get_cmd.find(".//" + key_name) if dot is None: raise RuntimeError( "Unable to find parent XML for key: '%s'" % (key_name) ) for _at, _add in enumerate(add_keylist_xml): dot.insert(_at, _add) # Add required key values to _get_xpath xid = re.search(r"\b{}\b".format(key_name), self._get_xpath).start() + len( key_name ) self._get_xpath = ( self._get_xpath[:xid] + self._grindxpath(key_xpath, key_value) + self._get_xpath[xid:] ) def _encode_namekey(self, get_cmd, dot, namekey_value): """ encodes the specific namekey_value into the get command so that the returned XML configuration is the complete hierarchy of data. """ namekey_xpath = self._data_dict.get("key", "name") keylist_xml = self._grindkey(namekey_xpath, namekey_value) for _add in keylist_xml: dot.append(_add) def _encode_getfields(self, get_cmd, dot): for field_xpath in self._data_dict["get_fields"]: dot.append(E(field_xpath)) def _encode_xpath(self, top, lst): """ Create xml element hierarchy for given field. Return container node to which field and its value will appended as child elements. """ dot = top for index in range(1, len(lst) + 1): xp = "/".join(lst[0:index]) if not len(top.xpath(xp)): dot.append(E(lst[index - 1])) dot = dot.find(lst[index - 1]) return dot def _keyspec(self): """returns tuple (keyname-xpath, item-xpath)""" return (self._data_dict.get("key", "name"), self._data_dict[self._type]) def _init_field(self): """ Initialize fields of set table to it's default value (if mentioned in yml Table/View) else set to None. """ for fname, opt in self.fields.items(): self.__dict__[fname] = opt["default"] if "default" in opt else None def _mandatory_check(self): """Mandatory checks for set table/view""" for key in self.key_field: value = getattr(self, key) if value is None: raise ValueError("%s key-field value is not set.\n" % (key)) def _freeze(self): """ Freeze class object so that user cannot add new attributes (fields). """ self.__isfrozen = True def _unfreeze(self): """ Unfreeze class object, should be called from within class only. """ self.__isfrozen = False # ---------------------------------------------------------------------- # reset - Assign 'set' Table field values to default or None # ---------------------------------------------------------------------- def reset(self): """ Initialize fields of set table to it's default value (if mentioned in Table/View) else set to None. """ return self._init_field() # ---------------------------------------------------------------------- # get_table_xml - retrieve lxml configuration object for set table # ---------------------------------------------------------------------- def get_table_xml(self): """ It returns lxml object of configuration xml that is generated from table data (field=value) pairs. To get a valid xml this method should be used after append() is called. """ return self._config_xml_req # ---------------------------------------------------------------------- # append - append Table data to lxml configuration object # ---------------------------------------------------------------------- def append(self): """ It creates lxml nodes with field name as xml tag and its value given by user as text of xml node. The generated xml nodes are appended to configuration xml at appropriate hierarchy. .. warning:: xml node that are appended cannot be changed later hence care should be taken to assign correct value to table fields before calling append. """ # mandatory check for 'set' table fields self._mandatory_check() set_cmd = self._buildxml() top = set_cmd.find(self._data_dict[self._type]) self._build_config_xml(top) if self._config_xml_req is None: self._config_xml_req = set_cmd self._insert_node = top.getparent() else: self._insert_node.extend(top.getparent()) self.reset() # Reset field values self._is_field_set = False # ---------------------------------------------------------------------- # get - retrieve Table data # ---------------------------------------------------------------------- def get(self, *vargs, **kvargs): """ Retrieve configuration data for this table. By default all child keys of the table are loaded. This behavior can be overridden by with kvargs['nameonly']=True :param str vargs[0]: identifies a unique item in the table, same as calling with :kvargs['key']: value :param str namesonly: *OPTIONAL* True/False*, when set to True will cause only the the name-keys to be retrieved. :param str key: *OPTIONAL* identifies a unique item in the table :param dict options: *OPTIONAL* options to pass to get-configuration. By default {'inherit': 'inherit', 'groups': 'groups'} is sent. """ if self._lxml is not None: return self if self._path is not None: # for loading from local file-path self.xml = etree.parse(self._path).getroot() return self if self.keys_required is True and not len(kvargs): raise ValueError("This table has required-keys\n", self.required_keys) self._clearkeys() # determine if we need to get only the names of keys, or all of the # hierarchical data from the config. The caller can explicitly set # :namesonly: in the call. if "namesonly" in kvargs: namesonly = kvargs.get("namesonly") else: namesonly = False get_cmd = self._buildxml(namesonly=namesonly) # if this table requires additional keys, for the hierarchical # use-cases then make sure these are provided by the caller. Then # encode them into the 'get-cmd' XML if self.keys_required is True: self._encode_requiredkeys(get_cmd, kvargs) try: # see if the caller provided a named item. this must # be an actual name of a thing, and not an index number. # ... at least for now ... named_item = kvargs.get("key") or vargs[0] dot = get_cmd.find(self._data_dict[self._type]) self._encode_namekey(get_cmd, dot, named_item) if "get_fields" in self._data_dict: self._encode_getfields(get_cmd, dot) except: # caller not requesting a specific table item pass # Check for options in get if "options" in kvargs: options = kvargs.get("options") or {} else: if self._options is not None: options = self._options else: options = jxml.INHERIT_GROUPS # for debug purposes self._get_cmd = get_cmd self._get_opt = options # retrieve the XML configuration # Check to see if running on box if self._dev.ON_JUNOS: try: from junos import Junos_Configuration # If part of commit script use the context if Junos_Configuration is not None: # Convert the onbox XML to ncclient reply config = jxml.conf_transform( deepcopy(jxml.cscript_conf(Junos_Configuration)), subSelectionXPath=self._get_xpath, ) self.xml = config.getroot() else: self.xml = self.RPC.get_config(get_cmd, options=options) # If onbox import missing fallback to RPC - possibly raise # exception in future except ImportError: self.xml = self.RPC.get_config(get_cmd, options=options) else: self.xml = self.RPC.get_config(get_cmd, options=options) # return self for call-chaining, yo! return self # ----------------------------------------------------------------------- # set - configure Table data in running configuration. # ----------------------------------------------------------------------- def set(self, **kvargs): """ Load configuration data in running db. It performs following operation in sequence. * lock(): Locks candidate configuration db. * load(): Load structured configuration xml in candidate db. * commit(): Commit configuration to runnning db. * unlock(): Unlock candidate db. This method should be used after append() is called to get the desired results. :param bool overwrite: Determines if the contents completely replace the existing configuration. Default is ``False``. :param bool merge: If set to ``True`` will set the load-config action to merge. the default load-config action is 'replace' :param str comment: If provided logs this comment with the commit. :param int confirm: If provided activates confirm safeguard with provided value as timeout (minutes). :param int timeout: If provided the command will wait for completion using the provided value as timeout (seconds). By default the device timeout is used. :param bool sync: On dual control plane systems, requests that the candidate configuration on one control plane be copied to the other control plane, checked for correct syntax, and committed on both Routing Engines. :param bool force_sync: On dual control plane systems, forces the candidate configuration on one control plane to be copied to the other control plane. :param bool full: When true requires all the daemons to check and evaluate the new configuration. :param bool detail: When true return commit detail as XML :returns: Class object: :raises: ConfigLoadError: When errors detected while loading configuration. You can use the Exception errs variable to identify the specific problems CommitError: When errors detected in candidate configuration. You can use the Exception errs variable to identify the specific problems RuntimeError: If field value is set and append() is not invoked before calling this method, it will raise an exception with appropriate error message. .. warning:: If the function does not receive a reply prior to the timeout a RpcTimeoutError will be raised. It is possible the commit was successful. Manual verification may be required. """ if self._is_field_set: raise RuntimeError( "Field value is changed, append() " "must be called before set()" ) self.lock() try: # Invoke config class load() api, with xml object. self._load_rsp = super(CfgTable, self).load(self._config_xml_req, **kvargs) self._commit_rsp = self.commit(**kvargs) finally: self.unlock() return self # ----------------------------------------------------------------------- # OVERLOADS # ----------------------------------------------------------------------- def __setitem__(self, t_field, value): """ implements []= to set Field value """ if t_field in self.fields: # pass 'up' to standard setattr method self.__setattr__(t_field, value) else: raise ValueError("Unknown field: %s" % (t_field)) def __setattr__(self, attribute, value): if self.__isfrozen and not hasattr(self, attribute): raise ValueError("Unknown field: %s" % (attribute)) else: # pass 'up' to standard setattr method object.__setattr__(self, attribute, value) if hasattr(self, "fields") and attribute in self.fields: object.__setattr__(self, "_is_field_set", True) def __enter__(self): return super(CfgTable, self).__enter__() def __exit__(self, exc_type, exc_val, exc_tb): return super(CfgTable, self).__exit__(exc_type, exc_val, exc_tb) # ----------------------------------------------------------------------- # load - configure Table data in candidate configuration. # ----------------------------------------------------------------------- def load(self, **kvargs): """ Load configuration xml having table data (field=value) in candidate db. This method should be used after append() is called to get the desired results. :param bool overwrite: Determines if the contents completely replace the existing configuration. Default is ``False``. :param bool merge: If set to ``True`` will set the load-config action to merge. the default load-config action is 'replace' :returns: Class object. :raises: ConfigLoadError: When errors detected while loading configuration. You can use the Exception errs variable to identify the specific problems RuntimeError: If field value is set and append() is not invoked before calling this method, it will raise an exception with appropriate error message. """ if self._is_field_set: raise RuntimeError( "Field value is changed, append() " "must be called before load()" ) # pass up to config class load() api, with xml object as vargs[0]. self._load_rsp = super(CfgTable, self).load(self._config_xml_req, **kvargs) return self py-junos-eznc-2.7.3/lib/jnpr/junos/factory/cmdtable.py000066400000000000000000000365401475361112400227310ustar00rootroot00000000000000import re import copy # https://stackoverflow.com/questions/5121931/in-python-how-can-you-load-yaml-mappings-as-ordereddicts # stdlib import os from inspect import isclass from lxml import etree import json # local from jnpr.junos.exception import RpcError from jnpr.junos.utils.start_shell import StartShell from jnpr.junos.factory.state_machine import StateMachine from jnpr.junos.factory.to_json import TableJSONEncoder from jinja2 import Template HAS_NTC_TEMPLATE = False try: from ntc_templates import parse as ntc_parse HAS_NTC_TEMPLATE = True except: pass import logging logger = logging.getLogger("jnpr.junos.factory.cmdtable") class CMDTable(object): def __init__(self, dev=None, raw=None, path=None, template_dir=None): """ :dev: Device instance :raw: string blob of the command output :path: file path to XML, to be used rather than :dev: :template_dir: To look for textfsm templates in this folder first """ self._dev = dev self.xml = None self.view = None self.ITEM_FILTER = "name" self._key_list = [] self._path = path self._parser = None self.output = None self.data = raw self.template_dir = template_dir # ------------------------------------------------------------------------- # PUBLIC METHODS # ------------------------------------------------------------------------- def get(self, *vargs, **kvargs): r""" Retrieve the XML (string blob under tag of table data from the Device instance and returns back the Table instance - for call-chaining purposes. If the Table was created with a :path: rather than a Device, then this method will load the string blob from that file. In this case, the \*vargs, and \**kvargs are not used. ALIAS: __call__ :vargs: [0] is the table :arg_key: value. This is used so that the caller can retrieve just one item from the table without having to know the Junos RPC argument. :kvargs: these are the name/value pairs relating to the specific Junos command attached to the table. For example, if the command is 'show ithrottle id {{ id }}', there is a parameter 'id'. Any valid command argument can be passed to :kvargs: to further filter the results of the :get(): operation. neato! NOTES: If you need to create a 'stub' for unit-testing purposes, you want to create a subclass of your table and overload this methods. """ self._clearkeys() if self._path and self.data: raise AttributeError("path and data are mutually exclusive") if self._path is not None: # for loading from local file-path with open(self._path, "r") as fp: self.data = fp.read().strip() if self.data.startswith("") and self.data.endswith(""): self.data = etree.fromstring(self.data).text if "target" in kvargs: self.TARGET = kvargs["target"] if "key" in kvargs: self.KEY = kvargs["key"] if "key_items" in kvargs: self.KEY_ITEMS = kvargs["key_items"] if "filters" in kvargs: self.VIEW.FILTERS = ( [kvargs["filters"]] if isinstance(kvargs["filters"], str) else kvargs["filters"] ) cmd_args = self.CMD_ARGS.copy() if "args" in kvargs and isinstance(kvargs["args"], dict): cmd_args.update(kvargs["args"]) if len(cmd_args) > 0: self.GET_CMD = Template(self.GET_CMD).render(**cmd_args) if self.data is None: # execute the Junos RPC to retrieve the table if hasattr(self, "TARGET"): if self.TARGET is None: raise ValueError('"target" value not provided') rpc_args = { "target": self.TARGET, "command": self.GET_CMD, "timeout": "0", } try: self.xml = getattr(self.RPC, "request_pfe_execute")(**rpc_args) self.data = self.xml.text ver_info = self._dev.facts.get("version_info") if ver_info and ver_info.major[0] <= 15: # Junos <=15.x output has output something like below # # # # SENT: Ukern command: show memory # GOT: # GOT: ID Base Total(b) Free(b) Used(b) # GOT: -- -------- --------- --------- --------- # GOT: 0 44e72078 1882774284 1689527364 193246920 # GOT: 1 b51ffb88 67108860 57651900 9456960 # GOT: 2 bcdfffe0 52428784 52428784 0 # GOT: 3 b91ffb88 62914556 62914556 0 # LOCAL: End of file # # # hence need to do cleanup self.data = self.data.replace("GOT: ", "") except RpcError: with StartShell(self.D) as ss: ret = ss.run( 'cprod -A %s -c "%s"' % (self.TARGET, self.GET_CMD) ) if ret[0]: self.data = ret[1] else: self.xml = self.RPC.cli(self.GET_CMD) self.data = self.xml.text if self.USE_TEXTFSM: if HAS_NTC_TEMPLATE: self.output = self._parse_textfsm( platform=self.PLATFORM, command=self.GET_CMD, raw=self.data ) else: raise ImportError( "ntc_template is missing. Need to be installed explicitly." ) else: # state machine sm = StateMachine(self) self.output = sm.parse(self.data.splitlines()) # returning self for call-chaining purposes, yo! return self # ------------------------------------------------------------------------- # PROPERTIES # ------------------------------------------------------------------------- @property def D(self): """the Device instance""" return self._dev @property def CLI(self): """the Device.cli instance""" return self.D.cli @property def RPC(self): """the Device.rpc instance""" return self.D.rpc @property def view(self): """returns the current view assigned to this table""" return self._view @view.setter def view(self, cls): """assigns a new view to the table""" if cls is None: self._view = None return if not isclass(cls): raise ValueError("Must be given RunstatView class") self._view = cls @property def hostname(self): return self.D.hostname @property def key_list(self): """the list of keys, as property for caching""" return self._key_list # ------------------------------------------------------------------------- # PRIVATE METHODS # ------------------------------------------------------------------------- def _assert_data(self): if self.data is None: raise RuntimeError("Table is empty, use get()") def _clearkeys(self): self._key_list = [] # ------------------------------------------------------------------------- # PUBLIC METHODS # ------------------------------------------------------------------------- # ------------------------------------------------------------------------ # keys # ------------------------------------------------------------------------ def _keys(self): """return a list of data item keys from the data string""" return self.output.keys() def keys(self): # if the key_list has been cached, then use it if len(self.key_list): return self.key_list # otherwise, build the list of keys into the cache self._key_list = self._keys() return self._key_list # ------------------------------------------------------------------------ # values # ------------------------------------------------------------------------ def values(self): """returns list of table entry items()""" self._assert_data() return self.output.values() # ------------------------------------------------------------------------ # items # ------------------------------------------------------------------------ def items(self): """returns list of tuple(name,values) for each table entry""" return self.output.items() def to_json(self): """ :returns: JSON encoded string of entire Table contents """ return json.dumps(self, cls=TableJSONEncoder) # ------------------------------------------------------------------------- # OVERLOADS # ------------------------------------------------------------------------- __call__ = get def __repr__(self): cls_name = self.__class__.__name__ source = self.D.hostname if self.D is not None else self._path if self.data is None: return "%s:%s - Table empty" % (cls_name, source) else: n_items = len(self.keys()) return "%s:%s: %s items" % (cls_name, source, n_items) def __len__(self): self._assert_data() return len(self.keys()) def __iter__(self): """iterate over each time in the table""" self._assert_data() for key, value in self.output.items(): yield key, value def __getitem__(self, value): """ returns a table item. If a table view is set (should be by default) then the item will be converted to the view upon return. if there is no table view, then the XML object will be returned. :value: for , this will perform a select based on key-name for , this will perform a select based on compsite key-name for , this will perform a select based by position, like [0] is the first item [-1] is the last item when it is a then this will return a of View widgets """ self._assert_data() return self.output[value] def __contains__(self, key): """membership for use with 'in'""" return bool(key in self.keys()) # ------------------------------------------------------------------------ # textfsm # ------------------------------------------------------------------------ def _parse_textfsm(self, platform=None, command=None, raw=None): """ textfsm returns list of dict, make it JSON/dict :param platform: vendor platform, for ex cisco_xr :param command: cli command to be parsed :param raw: string blob output from the cli command execution :return: dict of parsed data. """ command = command.replace("/", "-") attrs = dict(Command=command, Platform=platform) template = None template_dir = None if self.template_dir is not None: # we dont need index file for lookup index = None template_path = os.path.join( self.template_dir, "{}_{}.textfsm".format(platform, "_".join(command.split())), ) if not os.path.exists(template_path): msg = "Template file %s missing" % template_path logger.error(msg) raise FileNotFoundError(msg) else: template = template_path template_dir = self.template_dir if template_dir is None: index = "index" template_dir = ntc_parse._get_template_dir() cli_table = ntc_parse.clitable.CliTable(index, template_dir) try: cli_table.ParseCmd(raw, attrs, template) except ntc_parse.clitable.CliTableError as ex: logger.error( 'Unable to parse command "%s" on platform %s' % (command, platform) ) raise ex return self._filter_output(cli_table) def _filter_output(self, cli_table): """ textfsm return list of list, covert it into more consumable format :param cli_table: CLiTable object from textfsm :return: dict of key, fields and its values, list of dict when key is None """ self._set_key(cli_table) fields = self.VIEW.FIELDS if self.VIEW is not None else {} reverse_fields = {val: key for key, val in fields.items()} if self.KEY is None: cli_table_size = cli_table.size if cli_table_size > 1: raise KeyError( "Key is Mandatory for parsed o/p of %s " "length" % cli_table_size ) elif cli_table_size == 1: temp_dict = self._parse_row(cli_table[1], cli_table, reverse_fields) logger.debug("For Null Key, data returned: {}".format(temp_dict)) return temp_dict output = {} for row in cli_table: temp_dict = self._parse_row(row, cli_table, reverse_fields) logger.debug("data at index {} is {}".format(row.row, temp_dict)) if isinstance(self.KEY, list): key_list = [] for key in self.KEY: if key not in fields: key_list.append(temp_dict.pop(key)) else: key_list.append(temp_dict[key]) output[tuple(key_list)] = temp_dict elif self.KEY in temp_dict: if self.KEY not in fields: output[temp_dict.pop(self.KEY)] = temp_dict else: output[temp_dict[self.KEY]] = temp_dict else: logger.debug("Key {} not present in {}".format(self.KEY, temp_dict)) return output def _parse_row(self, row, cli_table, reverse_fields): temp_dict = {} for index, element in enumerate(row): key = cli_table.header[index] if self.KEY and key in self.KEY: temp_dict[key] = element if reverse_fields: if key in reverse_fields: temp_dict[reverse_fields[key]] = element else: temp_dict[key] = element return temp_dict def _set_key(self, cli_table): """ Preference to user provided key, then template and at last default Checks and update if we need KEY from template file :param cli_table: CLiTable object from textfsm :return: """ if self.KEY == "name" and len(cli_table._keys) > 0: template_keys = list(cli_table._keys) self.KEY = template_keys[0] if len(template_keys) == 1 else template_keys logger.debug("KEY being used: {}".format(self.KEY)) py-junos-eznc-2.7.3/lib/jnpr/junos/factory/cmdview.py000066400000000000000000000037401475361112400226100ustar00rootroot00000000000000class CMDView(object): """ View is the base-class that makes extracting values from XML data appear as objects with attributes. """ KEY = "name" KEY_ITEMS = [] COLUMNS = {} FILTERS = None FIELDS = {} REGEX = {} EXISTS = {} GROUPS = None TITLE = None EVAL = {} # ------------------------------------------------------------------------- # PROPERTIES # ------------------------------------------------------------------------- @property def T(self): """return the Table instance for the View""" return self._table @property def D(self): """return the Device instance for this View""" return self.T.D @property def xml(self): """returns the XML associated to the item""" return self._xml # ------------------------------------------------------------------------- # METHODS # ------------------------------------------------------------------------- def keys(self): """list of view keys, i.e. field names""" return self.FIELDS.keys() def values(self): """list of view values""" return [getattr(self, field) for field in self.keys()] def items(self): """list of tuple(key,value)""" return zip(self.keys(), self.values()) def asview(self, view_cls): """create a new View object for this item""" return view_cls(self._table, self._xml) # ------------------------------------------------------------------------- # OVERLOADS # ------------------------------------------------------------------------- def __repr__(self): """returns the name of the View with the associate item name""" return "%s:%s" % (self.__class__.__name__, self.name) def __getitem__(self, name): """ allow the caller to extract field values using :obj['name']: the same way they would do :obj.name: """ return getattr(self, name) py-junos-eznc-2.7.3/lib/jnpr/junos/factory/factory_cls.py000066400000000000000000000136501475361112400234630ustar00rootroot00000000000000# stdlib from copy import deepcopy # local from jnpr.junos.factory.cfgtable import CfgTable from jnpr.junos.factory.optable import OpTable from jnpr.junos.factory.cmdtable import CMDTable from jnpr.junos.factory.table import Table from jnpr.junos.factory.view import View from jnpr.junos.factory.cmdview import CMDView from jnpr.junos.utils.config import Config def FactoryCfgTable(table_name=None, data_dict={}): if table_name is None: table_name = "CfgTable" if "set" in data_dict.keys(): new_cls = type(table_name, (CfgTable, Config), {}) else: new_cls = type(table_name, (CfgTable,), {}) new_cls.DEFINE = deepcopy(data_dict) new_cls.__module__ = __name__.replace("factory_cls", "CfgTable") return new_cls def FactoryOpTable( cmd, args=None, args_key=None, item=None, key=OpTable.ITEM_NAME_XPATH, view=None, table_name=None, use_filter=True, ): if table_name is None: table_name = "OpTable." + cmd new_cls = type(table_name, (OpTable,), {}) new_cls.GET_RPC = cmd new_cls.GET_ARGS = args or {} if args_key is not None: new_cls.GET_KEY = args_key new_cls.ITEM_XPATH = item new_cls.ITEM_NAME_XPATH = key new_cls.VIEW = view new_cls.USE_FILTER = use_filter new_cls.__module__ = __name__.replace("factory_cls", "OpTable") return new_cls def FactoryCMDTable( cmd, args=None, item=None, key_items=None, key="name", view=None, table_name=None, title=None, delimiter=None, eval=None, platform="juniper_junos", use_textfsm=False, **kwargs ): new_cls = type(table_name, (CMDTable,), {}) new_cls.GET_CMD = cmd if "target" in kwargs: new_cls.TARGET = kwargs["target"] new_cls.KEY_ITEMS = key_items new_cls.CMD_ARGS = args or {} new_cls.ITEM = item new_cls.KEY = key new_cls.VIEW = view new_cls.TITLE = title new_cls.DELIMITER = delimiter new_cls.EVAL = eval new_cls.PLATFORM = platform new_cls.USE_TEXTFSM = use_textfsm new_cls.__module__ = __name__.replace("factory_cls", "CMDTable") return new_cls def FactoryCMDChildTable( title=None, regex=None, key="name", delimiter=None, table_name=None, view=None, key_items=None, item=None, eval=None, ): new_cls = type(table_name, (CMDTable,), {}) new_cls.DELIMITER = delimiter new_cls.KEY = key new_cls.REGEX = regex new_cls.TITLE = title new_cls.VIEW = view new_cls.KEY_ITEMS = key_items new_cls.ITEM = item new_cls.EVAL = eval new_cls.__module__ = __name__.replace("factory_cls", "CMDTable") return new_cls def FactoryTable( item, key=Table.ITEM_NAME_XPATH, view=None, table_name=None, use_filter=True ): if table_name is None: table_name = "Table." + item new_cls = type(table_name, (Table,), {}) new_cls.ITEM_XPATH = item new_cls.ITEM_NAME_XPATH = key new_cls.VIEW = view new_cls.USE_FILTER = use_filter new_cls.__module__ = __name__.replace("factory_cls", "Table") return new_cls def FactoryView(fields, **kvargs): """ :fields: dictionary of fields, structure of which is ~internal~ and should not be defined explicitly. use the RunstatMaker.Fields() mechanism to create theserather than hardcoding the dictionary structures; since they might change over time. :kvargs: 'view_name' to name the class. this could be useful for debug or eventual callback mechanisms. 'groups' is a dict of name/xpath assocaited to fields this technique would be used to extract fields from node-set elements like port . 'extends' names the base View class to extend. using this technique you can add to existing defined Views. """ view_name = kvargs.get("view_name", "RunstatView") new_cls = type(view_name, (View,), {}) if "extends" in kvargs: base_cls = kvargs["extends"] new_cls.FIELDS = deepcopy(base_cls.FIELDS) new_cls.FIELDS.update(fields) if "groups" in kvargs: new_cls.GROUPS = deepcopy(base_cls.GROUPS) new_cls.GROUPS.update(kvargs["groups"]) else: new_cls.FIELDS = fields new_cls.GROUPS = kvargs["groups"] if "groups" in kvargs else None if "eval" in kvargs: new_cls.EVAL = kvargs["eval"] new_cls.FIELDS.update(kvargs["eval"]) new_cls.__module__ = __name__.replace("factory_cls", "View") return new_cls def FactoryCMDView(fields, **kvargs): """ :fields: dictionary of fields, structure of which is ~internal~ and should not be defined explicitly. use the RunstatMaker.Fields() mechanism to create theserather than hardcoding the dictionary structures; since they might change over time. :kvargs: 'view_name' to name the class. this could be useful for debug or eventual callback mechanisms. 'groups' is a dict of name/xpath assocaited to fields this technique would be used to extract fields from node-set elements like port . 'extends' names the base View class to extend. using this technique you can add to existing defined Views. """ view_name = kvargs.get("view_name", "RunstatView") new_cls = type(view_name, (CMDView,), {}) if "columns" in kvargs: new_cls.COLUMNS = deepcopy(kvargs["columns"]) elif "title" in kvargs: new_cls.TITLE = deepcopy(kvargs["title"]) if "regex" in kvargs: new_cls.REGEX = deepcopy(kvargs["regex"]) if "exists" in kvargs: new_cls.EXISTS = deepcopy(kvargs["exists"]) if "filters" in kvargs: new_cls.FILTERS = deepcopy(kvargs["filters"]) if fields is not None: new_cls.FIELDS = fields if "eval" in kvargs: new_cls.EVAL = kvargs["eval"] # new_cls.FIELDS.update(kvargs['eval']) new_cls.__module__ = __name__.replace("factory_cls", "CMDView") return new_cls py-junos-eznc-2.7.3/lib/jnpr/junos/factory/factory_loader.py000066400000000000000000000344041475361112400241500ustar00rootroot00000000000000""" This file contains the FactoryLoader class that is used to dynamically create Runstat Table and View objects from a of data. The can originate from any kind of source: YAML, JSON, program. For examples of YAML refer to the .yml files in this jnpr.junos.op directory. """ # stdlib from copy import deepcopy import re from jinja2 import Environment # locally from jnpr.junos.factory.factory_cls import * from jnpr.junos.factory.viewfields import * __all__ = ["FactoryLoader"] # internally used shortcuts _VIEW = FactoryView _CMDVIEW = FactoryCMDView _FIELDS = ViewFields _GET = FactoryOpTable _TABLE = FactoryTable _CFGTBL = FactoryCfgTable _CMDTBL = FactoryCMDTable _CMDCHILDTBL = FactoryCMDChildTable class FactoryLoader(object): """ Used to load a of data that contains Table and View definitions. The primary method is :load(): which will return a of item-name and item-class definitions. If you want to import these definitions directly into your namespace, (like a module) you would do the following: loader = FactoryLoader() catalog = loader.load( ) globals().update( catalog ) If you did not want to do this, you can access the items as the catalog. For example, if your contained a Table called MyTable, then you could do something like: MyTable = catalog['MyTable'] table = MyTable(dev) table.get() ... """ def __init__(self): self._catalog_dict = None # YAML data self._item_optables = [] # list of the get/op-tables self._item_cfgtables = [] # list of get/cfg-tables self._item_cmdtables = [] # list of commands with unstructured data o/p self._item_views = [] # list of views to build self._item_tables = [] # list of tables to build self.catalog = {} # catalog of built classes # ----------------------------------------------------------------------- # Create a View class from YAML definition # ----------------------------------------------------------------------- def _fieldfunc_True(self, value_rhs): def true_test(x): if value_rhs.startswith("regex("): return True if bool(re.search(value_rhs.strip("regex()"), x)) else False return x == value_rhs return true_test def _fieldfunc_False(self, value_rhs): def false_test(x): if value_rhs.startswith("regex("): return False if bool(re.search(value_rhs.strip("regex()"), x)) else True return x != value_rhs return false_test def _fieldfunc_Search(self, regex_pattern): def search_field(field_text): """Returns the first occurrence of regex_pattern within given field_text.""" match = re.search(regex_pattern, field_text) if match: return match.groups()[0] else: return None return search_field def _add_dictfield(self, fields, f_name, f_dict, kvargs): """add a field based on its associated dictionary""" # at present if a field is a then there is **one # item** - { the xpath value : the option control }. typically # the option would be a bultin class type like 'int' # however, as this framework expands in capability, this # will be enhaced, yo! xpath, opt = list(f_dict.items())[0] # get first/only key,value if opt == "group": fields.group(f_name, xpath) return if "flag" == opt: opt = "bool" # flag is alias for bool # first check to see if the option is a built-in Python # type, most commonly would be 'int' for numbers, like counters if isinstance(opt, dict): kvargs.update(opt) fields.str(f_name, xpath, **kvargs) return astype = __builtins__.get(opt) or globals().get(opt) if astype is not None: kvargs["astype"] = astype fields.astype(f_name, xpath, **kvargs) return # next check to see if this is a "field-function" # operator in the form "func=value", like "True=enabled" if isinstance(opt, str) and opt.find("=") > 0: field_cmd, value_rhs = opt.split("=") fn_field = "_fieldfunc_" + field_cmd if not hasattr(self, fn_field): raise ValueError("Unknown field-func: '%'" % field_cmd) kvargs["astype"] = getattr(self, fn_field)(value_rhs) fields.astype(f_name, xpath, **kvargs) return raise RuntimeError("Dont know what to do with field: '%s'" % f_name) # ---[ END: _add_dictfield ] --------------------------------------------- def _add_view_fields(self, view_dict, fields_name, fields): """add a group of fields to the view""" fields_dict = view_dict[fields_name] try: # see if this is a 'fields_' collection, and if so # then we automatically setup using the group mechanism mark = fields_name.index("_") group = {"group": fields_name[mark + 1 :]} except: # otherwise, no group, just standard 'fields' group = {} for f_name, f_data in fields_dict.items(): # each field could have its own unique set of properties # so create a kvargs each time. but copy in the # groups (single item) generically. kvargs = {} kvargs.update(group) if isinstance(f_data, dict): self._add_dictfield(fields, f_name, f_data, kvargs) continue if f_data in self._catalog_dict: # f_data is the table name cls_tbl = self.catalog.get(f_data, self._build_table(f_data)) fields.table(f_name, cls_tbl) continue # if we are here, then it means that the field is a string value xpath = f_name if f_data is True else f_data fields.str(f_name, xpath, **kvargs) def _add_cmd_view_fields(self, view_dict, fields_name, fields): """add a group of fields to the view""" fields_dict = view_dict[fields_name] for f_name, f_data in fields_dict.items(): if f_data in self._catalog_dict: cls_tbl = self.catalog.get(f_data, self._build_cmdtable(f_data)) fields.table(f_name, cls_tbl) continue # if we are here, it means we need to filter fields from textfsm fields._fields.update({f_name: f_data}) # ------------------------------------------------------------------------- def _build_view(self, view_name): """build a new View definition""" if view_name in self.catalog: return self.catalog[view_name] view_dict = self._catalog_dict[view_name] kvargs = {"view_name": view_name} # if there are field groups, then get that now. if "groups" in view_dict: kvargs["groups"] = view_dict["groups"] # if there are eval, then get that now. if "eval" in view_dict: kvargs["eval"] = {} for key, exp in view_dict["eval"].items(): env = Environment() kvargs["eval"][key] = env.parse(exp) # if this view extends another ... if "extends" in view_dict: base_cls = self.catalog.get(view_dict["extends"]) # @@@ should check for base_cls is None! kvargs["extends"] = base_cls fields = _FIELDS() fg_list = [name for name in view_dict if name.startswith("fields")] for fg_name in fg_list: self._add_view_fields(view_dict, fg_name, fields) cls = _VIEW(fields.end, **kvargs) self.catalog[view_name] = cls return cls # ------------------------------------------------------------------------- def _build_cmdview(self, view_name): """build a new View definition""" if view_name in self.catalog: return self.catalog[view_name] view_dict = self._catalog_dict[view_name] kvargs = {"view_name": view_name} if "columns" in view_dict: kvargs["columns"] = view_dict["columns"] elif "title" in view_dict: kvargs["title"] = view_dict["title"] if "regex" in view_dict: kvargs["regex"] = view_dict["regex"] if "exists" in view_dict: kvargs["exists"] = view_dict["exists"] if "filters" in view_dict: kvargs["filters"] = view_dict["filters"] if "eval" in view_dict: kvargs["eval"] = {} for key, exp in view_dict["eval"].items(): env = Environment() kvargs["eval"][key] = env.parse(exp) fields = _FIELDS() fg_list = [name for name in view_dict if name.startswith("fields")] for fg_name in fg_list: self._add_cmd_view_fields(view_dict, fg_name, fields) cls = _CMDVIEW(fields.end, **kvargs) self.catalog[view_name] = cls return cls # ----------------------------------------------------------------------- # Create a Get-Table from YAML definition # ----------------------------------------------------------------------- def _build_optable(self, table_name): """build a new Get-Table definition""" if table_name in self.catalog: return self.catalog[table_name] tbl_dict = self._catalog_dict[table_name] kvargs = deepcopy(tbl_dict) rpc = kvargs.pop("rpc") kvargs["table_name"] = table_name if "view" in tbl_dict: view_name = tbl_dict["view"] cls_view = self.catalog.get(view_name, self._build_view(view_name)) kvargs["view"] = cls_view cls = _GET(rpc, **kvargs) self.catalog[table_name] = cls return cls # ----------------------------------------------------------------------- # Create a Get-Table from YAML definition # ----------------------------------------------------------------------- def _build_cmdtable(self, table_name): """build a new command-Table definition""" if table_name in self.catalog: return self.catalog[table_name] tbl_dict = self._catalog_dict[table_name] kvargs = deepcopy(tbl_dict) if "command" in kvargs: cmd = kvargs.pop("command") kvargs["table_name"] = table_name if "view" in tbl_dict: view_name = tbl_dict["view"] cls_view = self.catalog.get(view_name, self._build_cmdview(view_name)) kvargs["view"] = cls_view cls = _CMDTBL(cmd, **kvargs) self.catalog[table_name] = cls return cls elif "title" in kvargs: cmd = kvargs.pop("title") kvargs["table_name"] = table_name if "view" in tbl_dict: view_name = tbl_dict["view"] cls_view = self.catalog.get(view_name, self._build_cmdview(view_name)) kvargs["view"] = cls_view cls = _CMDCHILDTBL(cmd, **kvargs) self.catalog[table_name] = cls return cls else: kvargs["table_name"] = table_name if "view" in tbl_dict: view_name = tbl_dict["view"] cls_view = self.catalog.get(view_name, self._build_cmdview(view_name)) kvargs["view"] = cls_view cls = _CMDCHILDTBL(**kvargs) self.catalog[table_name] = cls return cls # ----------------------------------------------------------------------- # Create a Table class from YAML definition # ----------------------------------------------------------------------- def _build_table(self, table_name): """build a new Table definition""" if table_name in self.catalog: return self.catalog[table_name] tbl_dict = self._catalog_dict[table_name] table_item = tbl_dict.pop("item") kvargs = deepcopy(tbl_dict) kvargs["table_name"] = table_name if "view" in tbl_dict: view_name = tbl_dict["view"] cls_view = self.catalog.get(view_name, self._build_view(view_name)) kvargs["view"] = cls_view cls = _TABLE(table_item, **kvargs) self.catalog[table_name] = cls return cls def _build_cfgtable(self, table_name): """build a new Config-Table definition""" if table_name in self.catalog: return self.catalog[table_name] tbl_dict = deepcopy(self._catalog_dict[table_name]) if "view" in tbl_dict: # transpose name to class view_name = tbl_dict["view"] tbl_dict["view"] = self.catalog.get(view_name, self._build_view(view_name)) cls = _CFGTBL(table_name, tbl_dict) self.catalog[table_name] = cls return cls # ----------------------------------------------------------------------- # Primary builders ... # ----------------------------------------------------------------------- def _sortitems(self): for k, v in self._catalog_dict.items(): if "rpc" in v: self._item_optables.append(k) elif "get" in v: self._item_cfgtables.append(k) elif "set" in v: self._item_cfgtables.append(k) elif "command" in v or "title" in v: self._item_cmdtables.append(k) elif "view" in v and "item" in v and v["item"] == "*": self._item_cmdtables.append(k) elif "view" in v: self._item_tables.append(k) else: self._item_views.append(k) def load(self, catalog_dict, envrion={}): # load the yaml data and extract the item names. these names will # become the new class definitions self._catalog_dict = catalog_dict self._sortitems() list(map(self._build_optable, self._item_optables)) list(map(self._build_cfgtable, self._item_cfgtables)) list(map(self._build_cmdtable, self._item_cmdtables)) list(map(self._build_table, self._item_tables)) list(map(self._build_view, self._item_views)) return self.catalog py-junos-eznc-2.7.3/lib/jnpr/junos/factory/optable.py000066400000000000000000000165111475361112400226000ustar00rootroot00000000000000from copy import deepcopy import logging # 3rd-party from lxml import etree from lxml.builder import E # local from jnpr.junos.factory.table import Table from jnpr.junos.jxml import remove_namespaces, remove_namespaces_and_spaces from jnpr.junos.decorators import checkSAXParserDecorator logger = logging.getLogger("jnpr.junos.factory.optable") class OpTable(Table): # ------------------------------------------------------------------------- # PUBLIC METHODS # ------------------------------------------------------------------------- @checkSAXParserDecorator def get(self, *vargs, **kvargs): r""" Retrieve the XML table data from the Device instance and returns back the Table instance - for call-chaining purposes. If the Table was created with a :path: rather than a Device, then this method will load the XML from that file. In this case, the \*vargs, and \**kvargs are not used. ALIAS: __call__ :vargs: [0] is the table :arg_key: value. This is used so that the caller can retrieve just one item from the table without having to know the Junos RPC argument. :kvargs: these are the name/value pairs relating to the specific Junos XML command attached to the table. For example, if the RPC is 'get-route-information', there are parameters such as 'table' and 'destination'. Any valid RPC argument can be passed to :kvargs: to further filter the results of the :get(): operation. neato! NOTES: If you need to create a 'stub' for unit-testing purposes, you want to create a subclass of your table and overload this methods. """ self._clearkeys() if self._path is not None: # for loading from local file-path self.xml = remove_namespaces(etree.parse(self._path).getroot()) return self if self._lxml is not None: return self argkey = vargs[0] if len(vargs) else None rpc_args = {} if self._use_filter: try: filter_xml = generate_sax_parser_input(self) rpc_args["filter_xml"] = filter_xml except Exception as ex: logger.debug("Not able to create SAX parser input due to " "'%s'" % ex) self.D.transform = lambda: remove_namespaces_and_spaces self.D.transform = lambda: remove_namespaces_and_spaces rpc_args.update(self.GET_ARGS) # copy default args # saltstack get_table pass args as named keyword if "args" in kvargs and isinstance(kvargs["args"], dict): rpc_args.update(kvargs.pop("args")) rpc_args.update(kvargs) # copy caller provided args if hasattr(self, "GET_KEY") and argkey is not None: rpc_args.update({self.GET_KEY: argkey}) # execute the Junos RPC to retrieve the table self.xml = getattr(self.RPC, self.GET_RPC)(**rpc_args) # returning self for call-chaining purposes, yo! return self def generate_sax_parser_input(obj): """ Used to generate xml object from Table/view to be used in SAX parsing Args: obj: self object which contains table/view details Returns: lxml etree object to be used as sax parser input """ item_tags = [] if "/" in obj.ITEM_XPATH: item_tags = obj.ITEM_XPATH.split("/") parser_ingest = E(item_tags.pop(-1), E(obj.ITEM_NAME_XPATH)) else: parser_ingest = E(obj.ITEM_XPATH, E(obj.ITEM_NAME_XPATH)) local_field_dict = deepcopy(obj.VIEW.FIELDS) # first make element out of group fields if obj.VIEW.GROUPS: for group, group_xpath in obj.VIEW.GROUPS.items(): # need to pop out group items so that it wont be reused with fields group_field_dict = { k: local_field_dict.pop(k) for k, v in obj.VIEW.FIELDS.items() if v.get("group") == group } group_ele = E(group_xpath) for key, val in group_field_dict.items(): group_ele.append(E(val.get("xpath"))) parser_ingest.append(group_ele) for i, item in enumerate(local_field_dict.items()): # i is the index and item will be taple of field key and value field_dict = item[1] if "table" in field_dict: # handle nested table/view child_table = field_dict.get("table") parser_ingest.insert(i + 1, generate_sax_parser_input(child_table)) else: xpath = field_dict.get("xpath") # xpath can be multi level, for ex traffic-statistics/input-pps # going in reverse order, for fields example. # split xpath in 2 part, search for first part xpath, if exists, append later # else continue, and finally add full xpath to parent # min-delay: probe-test-global-results/probe-test-generic-results/probe-test-rtt/probe-summary-results/min-delay # max-delay: probe-test-global-results/probe-test-generic-results/probe-test-rtt/probe-summary-results/max-delay # avg-delay: probe-test-global-results/probe-test-generic-results/probe-test-rtt/probe-summary-results/avg-delay # positive-rtt-jitter: probe-test-global-results/probe-test-generic-results/probe-test-positive-round-trip-jitter/probe-summary-results/avg-delay # loss-percentage: probe-test-global-results/probe-test-generic-results/loss-percentage # current-min-delay: probe-last-test-results/probe-test-generic-results/probe-test-rtt/probe-summary-results/min-delay # current-max-delay: probe-last-test-results/probe-test-generic-results/probe-test-rtt/probe-summary-results/max-delay # current-avg-delay: probe-last-test-results/probe-test-generic-results/probe-test-rtt/probe-summary-results/avg-delay # current-positive-rtt-jitter: probe-last-test-results/probe-test-generic-results/probe-test-positive-round-trip-jitter/probe-summary-results/avg-delay # current-loss-percentage: probe-last-test-results/probe-test-generic-results/loss-percentage if "/" in xpath: tags = xpath.split("/") tags_len = len(tags) local_elem_to_add = E(tags[-1]) for i in range(tags_len, 0, -1): xpath = "/".join(tags[:i]) local_obj = parser_ingest elem_exists = local_obj.xpath(xpath) if elem_exists: xpath_exists = elem_exists[0] xpath_exists.insert(1, local_elem_to_add) break if local_elem_to_add.tag != tags[i - 1]: local_elem_to_add = E(tags[i - 1], local_elem_to_add) else: parser_ingest.insert(1, local_elem_to_add) else: parser_ingest.insert(i + 1, E(xpath)) # cases where item is something like # item: task-memory-malloc-usage-report/task-malloc-list/task-malloc # created filter from last item task-malloc # Now add all the tags if present for item_tag in item_tags[::-1]: parser_ingest = E(item_tag, parser_ingest) logger.debug("Generated filter XML is: %s" % etree.tostring(parser_ingest)) return parser_ingest py-junos-eznc-2.7.3/lib/jnpr/junos/factory/state_machine.py000066400000000000000000001145061475361112400237610ustar00rootroot00000000000000from collections import OrderedDict from functools import reduce import re import copy import logging from jinja2 import Template, meta from transitions import Machine import pyparsing as pp logger = logging.getLogger("jnpr.junos.factory.state_machine") class Identifiers: """ This class static variables can be used when defining regex view. For ex: _PFENotificationStatsTable: title: PFE Notification statistics key: name view: _PFENotificationStatsView _PFENotificationStatsView: regex: value: numbers name: words """ printables = pp.OneOrMore(pp.Word(pp.printables)) numbers = ( pp.Word(pp.nums) + pp.Optional(pp.Literal(".") + pp.Word(pp.nums)) ).setParseAction(lambda i: "".join(i)) hex_numbers = pp.OneOrMore(pp.Word(pp.nums, min=1)) & pp.OneOrMore( pp.Word("abcdefABCDEF", min=1) ) word = pp.Word(pp.alphanums) | pp.Word(pp.alphas) words = (pp.OneOrMore(word)).setParseAction(lambda i: " ".join(i)) percentage = pp.Word(pp.nums) + pp.Literal("%") header_bar = ( pp.OneOrMore(pp.Word("-")) | pp.OneOrMore(pp.Word("=")) ) + pp.StringEnd() def data_type(item): """ Args: item: string element parsed from the blob. Returns: item converted to data type it should represent """ try: obj = Identifiers.numbers.parseString(item, parseAll=True) if "." in obj[0]: return float else: return int except pp.ParseException as ex: pass try: Identifiers.hex_numbers.parseString(item, parseAll=True) return str # special case except pp.ParseException as ex: pass return str def convert_to_data_type(items): """ Args: items: list of string objects Returns: list of converted data type objects """ item_types = map(data_type, items) return list(map(lambda x, y: int(x) if y is int else x.strip(), items, item_types)) class StateMachine(Machine): def __init__(self, table_view): self._data = {} self._table = table_view self._view = self._table.VIEW self._raw = "" self._lines = [] self.states = [ "row_column", "title_data", "regex_data", "delimiter_data", "exists_bool_data", ] self.transitions = [ { "trigger": "column_provided", "source": "*", "dest": "row_column", "conditions": "match_columns", "before": "check_header_bar", "after": "parse_raw_columns", }, { "trigger": "check_next_row", "source": "row_column", "dest": "row_column", "conditions": "prev_next_row_same_type", "after": "parse_raw_columns", }, { "trigger": "title_provided", "source": "start", "dest": "title_data", "conditions": ["match_title", "title_not_followed_by_columns"], "after": "parse_title_data", }, { "trigger": "regex_provided", "source": "title_data", "dest": "regex_data", "conditions": ["match_title"], "before": "check_header_bar", "after": "parse_using_regex", }, { "trigger": "delimiter_without_title", "source": "start", "dest": "delimiter_data", "after": "parse_using_delimiter", }, { "trigger": "delimiter_with_title", "source": ["start", "delimiter_data"], "dest": "delimiter_data", "conditions": ["match_title"], "before": "check_header_bar", "after": "parse_using_delimiter", }, { "trigger": "regex_with_item", "source": ["start", "regex_data"], "dest": "regex_data", "after": "parse_using_item_and_regex", }, { "trigger": "regex_parser", "source": "start", "dest": "regex_data", "after": "parse_using_regex", }, { "trigger": "regex_parser", "source": "regex_data", "dest": "regex_data", "after": "parse_using_regex", }, { "trigger": "regex_parser", "source": "row_column", "dest": "regex_data", "after": "parse_using_regex", }, { "trigger": "exists_check", "source": ["start", "regex_data", "row_column"], "dest": "exists_bool_data", "after": "parse_exists", }, { "trigger": "exists_check", "source": "title_data", "dest": "exists_bool_data", "after": "parse_exists", }, ] Machine.__init__( self, states=self.states, transitions=self.transitions, initial="start", send_event=True, ) def parse(self, lines): """ Starting point to parse string blob section. In case of nested table this API will get called in recursive call. Args: lines: list of lines which was received from rpc reply . Returns: dictionary (self._data) with parsed data. """ self._lines = copy.deepcopy(lines) self._raw = "\n".join(lines) if self._view is None: if self._table.DELIMITER is not None: if self._table.TITLE is not None: self.delimiter_with_title() else: self.delimiter_without_title() elif self._table.TITLE is not None: self.title_provided() elif self._table.ITEM is not None and self._table.ITEM != "*": self._parse_item_iter(lines) else: if self._view.TITLE is not None or self._table.TITLE: self.title_provided() if len(self._view.REGEX) > 0: if self._table.ITEM is not None: self.regex_with_item() else: self.regex_parser() if len(self._view.COLUMNS) > 0: self.column_provided() if len(self._view.EXISTS) > 0: self.exists_check() if len(self._view.FIELDS) > 0: if self._table.ITEM is not None and self._table.ITEM != "*": return self._parse_item_iter(lines) for key, value in self._view.FIELDS.items(): tbl = value["table"] tbl._view = tbl.VIEW if tbl._view is None: self._data[key] = StateMachine(tbl).parse(lines) continue if len(tbl._view.COLUMNS) > 0: self._data[key] = StateMachine(tbl).parse(lines) if tbl._view.TITLE is not None or tbl.TITLE is not None: self._data[key] = StateMachine(tbl).parse(lines) if self._table.EVAL: self._eval_in_full_data() return self._data def _eval_in_full_data(self): """ To eval expression from full set of data (self._data). Sets key in self._data itself. Returns: None """ for name, expression in self._table.EVAL.items(): t = Template(expression) expression = t.render(data=self._data) try: val = eval(expression) except Exception as ex: logger.error("eval expression for '%s' failed due to %s" % (name, ex)) self._data[name] = None else: self._data[name] = val def _parse_item_iter(self, lines): """ There are cases when similar data set repeats. With item its easier to split string blob into different sections. Args: lines: list of lines Returns: dictionary (self._data) with parsed data. """ self._raw = "\n".join(lines) pat = pp.Regex(self._table.ITEM) x = [] for result, start, end in pat.scanString(self._raw): x.append((start, end)) for i in range(len(x)): try: raw = self._raw[x[i][0] : x[i + 1][0]] except IndexError: raw = self._raw[x[i][0] :] lines = raw.splitlines() obj = re.search(self._table.ITEM, lines[0]) groups = obj.groups() groups = [data_type(val)(val) for val in groups] if len(groups) >= 1: if len(groups) != len( self._table.KEY if isinstance(self._table.KEY, list) else [self._table.KEY] ): raise KeyError( "Table with grouped item must contain " "corresponding key(s)" ) master_key = groups[0] if len(groups) == 1 else tuple(groups) self._data[master_key] = {} if self._view is not None: for key, value in self._view.FIELDS.items(): tbl = value["table"] tbl._view = tbl.VIEW if tbl._view is not None and len(tbl._view.COLUMNS) > 0: self._data[master_key][key] = StateMachine(tbl).parse(lines) if tbl.TITLE is not None or tbl._view.TITLE is not None: self._data[master_key][key] = StateMachine(tbl).parse(lines) else: self._table.TITLE = lines[0] delimiter = self._table.DELIMITER or r"\s\s+" temp_dict = {} pre_space_delimit = self._get_pre_space_delimiter(lines[1]) for line in lines[1:]: if re.match(pre_space_delimit + r"\s+", line): break if line.startswith(pre_space_delimit): try: items = re.split(delimiter, line.strip()) item_types = list(map(data_type, items)) key, value = convert_to_data_type(items) temp_dict[key] = value except ValueError: regex = ( r"(\d+)\s(.*)" if item_types[0] == int else "(" r".*)\s(\d+)" ) obj = re.search(regex, line) if obj: items = obj.groups() key, value = convert_to_data_type(items) temp_dict[key] = value # check if next line is blank or new title (delimiter # test to fail) elif ( line.strip() == "" or len(re.split(delimiter, line.strip())) <= 1 ): break self._insert_eval_data(temp_dict) self._data[master_key] = temp_dict return self._data def match_columns(self, event): if self._view is None: return False columns = self._view.COLUMNS.values() if len(columns) == 0: return False if True in [isinstance(i, list) for i in columns]: # we have multi line column header columns = [[i] if isinstance(i, str) else i for i in columns] max_title_len = reduce( lambda x, y: x if x > y else y, map(lambda x: len(x), columns) ) for index, item in enumerate(columns): columns[index] = item + [None] * (max_title_len - len(item)) col_parser = reduce(lambda x, y: x & y, [pp.Literal(i[0]) for i in columns]) for line in self._lines: if self._parse_literal(line, col_parser): for index in range(1, max_title_len): col_parser = reduce( lambda x, y: x & y, [ pp.Literal(i[index]) for i in columns if i[index] is not None ], ) if self._parse_literal( self._lines[self._lines.index(line) + 1], col_parser ): # removing next lines in header title, dont see any # use of these lines self._lines.pop(self._lines.index(line) + 1) else: return False current_index = self._lines.index(line) self._lines = self._lines[current_index:] return True else: continue else: col_parser = reduce(lambda x, y: x & y, [pp.Literal(i) for i in columns]) for line in self._lines: if self._parse_literal(line, col_parser): d = set(map(lambda x, y: x in y, columns, [line] * len(columns))) if d.pop(): current_index = self._lines.index(line) self._lines = self._lines[current_index:] return True return False def match_title(self, event): """ To check whether given title exists in string blob. Args: event: In case any data is supposed to be passed. Returns: Boolean value depending on matching of title """ title = self._table.TITLE or self._view.TITLE for line in self._lines: if title in line: current_index = self._lines.index(line) self._lines = self._lines[current_index:] return True return False def title_not_followed_by_columns(self, event): return not self.match_columns(event) def _parse_literal(self, line, col_parser): try: if col_parser.searchString(line): return True except pp.ParseException as ex: return False def check_header_bar(self, event): """ Remove redundant title bar line from lines. Args: event: Returns: Boolean depending on if the next line is a title bar or not. For example, here if we provide columns, we need to get rid of next line --------------------------------------- Module Name Active Errors --------------------------------------- 1 PQ3 Chip 0 2 Host Loopback 0 """ line = self._lines[1] try: Identifiers.header_bar.parseString(line, parseAll=True) self._lines.pop(1) except pp.ParseException as ex: return False return True def parse_raw_columns(self, event): col_offsets = {} col_order = event.kwargs.get("col_order", OrderedDict()) line = self._lines[0] column = self._view.COLUMNS if True in [isinstance(i, list) for i in column.values()]: # just take first line of column title for k, v in column.items(): if isinstance(v, list): column[k] = v[0] if len(col_order) == 0: for key, val in column.items(): for result, start, end in pp.Literal(val).scanString(line): col_offsets[(start, end)] = result[0] user_defined_columns = copy.deepcopy(self._view.COLUMNS) for key in sorted(col_offsets.keys()): for x, y in self._view.COLUMNS.items(): if col_offsets[key] == user_defined_columns.get(x): col_order[key] = x user_defined_columns.pop(x) break key = self._get_key(event.kwargs.get("key", self._table.KEY)) items = re.split(r"\s\s+", self._lines[1].strip()) post_integer_data_types = event.kwargs.get("check", list(map(data_type, items))) index = event.kwargs.get("index", 1) # col_len = len(col_order) columns_list = list(col_order.values()) for index, line in enumerate(self._lines[index:], start=index): items = re.split(r"\s\s+", line.strip()) if len(items) >= len(columns_list): if len(items) > len(columns_list): if ( list(col_offsets.keys())[0][0] > 10 and self._table.KEY == "name" ): columns_list.insert(0, self._table.KEY) else: items = items[: len(columns_list)] post_integer_data_types, pre_integer_data_types = ( list(map(data_type, items)), post_integer_data_types, ) if post_integer_data_types == pre_integer_data_types: items = list( map(lambda data, typ: typ(data), items, post_integer_data_types) ) tmp_dict = dict(zip(columns_list, items)) self._insert_data(key, tmp_dict, columns_list) else: break elif line.strip() == "": # first check if loop already reached at the end of command o/p if not index + 1 >= len(self._lines): self.check_next_row( check=post_integer_data_types, data=self._data, index=index, col_order=col_order, key=key, ) return self._data def _insert_data(self, key, tmp_dict, columns_list): """ Insert data per row into main dictionary self._data Args: key: To be used as key to dictionary tmp_dict: Temporary dictionary to be populated columns_list: Columns defined by the users Returns: None, function just populates self._data """ self._insert_eval_data(tmp_dict) if isinstance(key, (tuple, list)): if self._view.FILTERS is not None: selected_dict = {} for select in self._view.FILTERS: if select in columns_list: selected_dict[select] = tmp_dict[select] if self._table.KEY_ITEMS is None: self._data[tuple(tmp_dict[i] for i in key)] = selected_dict elif tmp_dict[key] in self._table.KEY_ITEMS: self._data[tuple(tmp_dict[i] for i in key)] = selected_dict else: self._data[tuple(tmp_dict[i] for i in key)] = tmp_dict else: if self._view.FILTERS is not None: selected_dict = {} for select in self._view.FILTERS: if select in columns_list: selected_dict[select] = tmp_dict[select] if self._table.KEY_ITEMS is None: self._data[tmp_dict[key]] = selected_dict elif tmp_dict[key] in self._table.KEY_ITEMS: self._data[tmp_dict[key]] = selected_dict else: if self._table.KEY_ITEMS is None: if key not in tmp_dict: self._data.update(tmp_dict) else: self._data[tmp_dict[key]] = tmp_dict elif tmp_dict[key] in self._table.KEY_ITEMS: self._data[tmp_dict[key]] = tmp_dict def _get_key(self, key): """ Fetch the key from columns which will be used to define dictionary Args: key: user defined key input Returns: key to be used in dictionary. """ if isinstance(key, list): if set( [ i in self._view.COLUMNS or i in self._view.COLUMNS.values() for i in key ] ): key_temp = [] for i in key: if i not in self._view.COLUMNS and i in self._view.COLUMNS.values(): for user_provided, from_table in self._view.COLUMNS.items(): # as dict will be created with user_provided key if i == from_table or i == user_provided: key_temp.append(user_provided) break else: key_temp.append(i) key = tuple(key_temp) elif key not in self._view.COLUMNS and key in self._view.COLUMNS.values(): for user_provided, from_table in self._view.COLUMNS.items(): if key == from_table: key = user_provided key = key[0] if len(key) == 1 and isinstance(key, tuple) else key return key def prev_next_row_same_type(self, event): """ Checks if the consecutive two lines of similar types. Args: event: takes parameter from the API call Returns: Boolean, depending if two lines are of similar types. """ index = event.kwargs.get("index") post_integer_data_types = event.kwargs.get("check") line = self._lines[index] items = re.split(r"\s\s+", line.strip()) post_integer_data_types, pre_integer_data_types = ( list(map(data_type, items)), post_integer_data_types, ) return post_integer_data_types == pre_integer_data_types def _get_pre_space_delimiter(self, line): """ Sometime all the data lines under a table is withing some space limit which gives a easy way to stop looking for lines if the delimiter is not followed. Args: line: should be first line after title Returns: decide how much space to be considered as delimiter For example, in below output, all data for FPCx has 2 space delimiter Statistics for port 1 connected to device FPC1: TX Packets 64 Octets 96106518 TX Packets 65-127 Octets 56224217 TX Packets 128-255 Octets 4550198 TX Packets 256-511 Octets 1841 TX Packets 512-1023 Octets 1354 Statistics for port 1 connected to device FPC2: TX Packets 64 Octets 345354435 TX Packets 65-127 Octets 34531 TX Packets 128-255 Octets 4351451 TX Packets 256-511 Octets 1345 TX Packets 512-1023 Octets 526513 """ pre_space_delimit = "" obj = re.search(r"(\s+).*", line) if obj: pre_space_delimit = obj.group(1) return pre_space_delimit def parse_title_data(self, event): """ title description in Table helps to get the starting point for starting search Args: event: In case trigger want to pass some data Returns: None, Just add corresponding key, value to existing dict Let say we have CLI "show xmchip 0 pt stats" output as: WAN PT statistics (Index 0) --------------------------- PCT entries used by all WI-1 streams : 0 PCT entries used by all WI-0 streams : 0 PCT entries used by all LI streams : 0 CPT entries used by all multicast packets : 0 CPT entries used by all WI-1 streams : 0 CPT entries used by all WI-0 streams : 0 CPT entries used by all LI streams : 0 Fabric PT statistics (Index 1) ------------------------------ PCT entries used by all FI streams : 0 PCT entries used by all WI (Unused) streams : 0 PCT entries used by all LI streams : 0 CPT entries used by all multicast packets : 0 CPT entries used by all FI streams : 0 CPT entries used by all WI (Unused) streams : 0 CPT entries used by all LI streams : 0 With below table/view to parse the data --- XMChipStatsTable: command: show xmchip 0 pt stats target: fpc1 view: XMChipStatsView XMChipStatsView: fields: wan_pt_stats: _WANPTStatTable fabric_pt_stats: _FabricPTStatTable _WANPTStatTable: title: WAN PT statistics (Index 0) delimiter: ":" _FabricPTStatTable: title: Fabric PT statistics (Index 1) delimiter: ":" which returns: {'fabric_pt_stats': {'CPT entries used by all FI streams': 0, 'CPT entries used by all LI streams': 0, 'CPT entries used by all WI (Unused) streams': 0, 'CPT entries used by all multicast packets': 0, 'PCT entries used by all FI streams': 0, 'PCT entries used by all LI streams': 0, 'PCT entries used by all WI (Unused) streams': 0}, 'wan_pt_stats': {'CPT entries used by all LI streams': 0, 'CPT entries used by all WI-0 streams': 0, 'CPT entries used by all WI-1 streams': 0, 'CPT entries used by all multicast packets': 0, 'PCT entries used by all LI streams': 0, 'PCT entries used by all WI-0 streams': 0, 'PCT entries used by all WI-1 streams': 0}} """ if self._view is not None and self._view.REGEX != {}: return self.regex_provided() # view have only fields, so contains only nested table if ( self._view is not None and self._view.FIELDS and not self._view.COLUMNS and not self._view.REGEX ): return delimiter = self._table.DELIMITER or r"\s\s+" pre_space_delimit = self._get_pre_space_delimiter(self._lines[1]) for line in self._lines[1:]: if re.match(pre_space_delimit + r"\s+", line): break if line.startswith(pre_space_delimit): try: items = re.split(delimiter, line.strip()) item_types = list(map(data_type, items)) key, value = convert_to_data_type(items) if self._view is None: self._data[key] = value elif self._table.KEY_ITEMS is None: self._data[self._view.FIELDS.get(key, key)] = value elif key in self._table.KEY_ITEMS: self._data[self._view.FIELDS.get(key, key)] = value except ValueError: regex = ( r"(\d+)\s(.*)" if item_types[0] == int else "(" r".*)\s(\d+)" ) obj = re.search(regex, line) if obj: items = obj.groups() key, value = convert_to_data_type(items) self._data[key] = value # check if next line is blank or new title (delimiter test to fail) elif line.strip() == "" or len(re.split(delimiter, line.strip())) <= 1: break return self._data def parse_using_regex(self, event): r""" All the regex should add up to match a line Args: event: In case trigger want to pass some data Returns: None, Just add corresponding key, value to existing dict Let say we have CLI "show system processes extensive" output as: PID USERNAME HR PRI NICE SIZE RES STATE C TIME WCPU COMMAND 11 root 2 155 ki31 0K 32K RUN 0 3214.6 191.31% idle 19542 root 2 22 0 808M 49872K select 1 90.9H 3.86% chas 19679 root 1 33 0 723M 1208K select 0 839:37 0.49% python 19451 root 1 20 0 720M 1052K select 1 60:37 0.20% eventd 12 root 26 -60 - 0K 416K WAIT 1 635:29 0.00% intr With a regex table as below --- SystemProcExtTable: command: show system processes extensive key: cmd view: SystemProcExtView SystemProcExtView: regex: pid: '\d+' wcpu: '.*(\d+\.\d+)%' cmd: '\w+' which returns something like (data for representation only): {'alarm': {'cmd': 'alarm', 'pid': 20483, 'wcpu': '0.00'}, 'alarmd': {'cmd': 'alarmd', 'pid': 20473, 'wcpu': '0.00'}, 'appidd': {'cmd': 'appidd', 'pid': 19686, 'wcpu': '0.00'}, 'apsd': {'cmd': 'apsd', 'pid': 20435, 'wcpu': '0.00'}, """ _regex = copy.deepcopy(self._view.REGEX) for key, val in _regex.items(): if val in Identifiers.__dict__: _regex[key] = Identifiers.__dict__[val] else: _regex[key] = pp.Regex(val, flags=re.IGNORECASE) _regex = reduce(lambda x, y: x + y, _regex.values()) for index, line in enumerate(self._lines): tmp_dict = {} # checking index as there can be blank line at position 0 and 2 if line.strip() == "": if index > 2: if self.is_row_column() or self.is_regex_data(): try: match = [] # check if line after new line matches condition # There can be data set where there are new line in between. for result, start, end in _regex.scanString( self._lines[index + 1] ): match.extend(result) if match: continue else: break except IndexError: break else: continue for result, start, end in _regex.scanString(line): # write a different function for this for key, val in self._view.REGEX.items(): if val not in Identifiers.__dict__: obj = re.search( val, result[list(self._view.REGEX.keys()).index(key)], re.I ) if obj and len(obj.groups()) >= 1: result[list(self._view.REGEX.keys()).index(key)] = ( obj.groups()[0] ) items = convert_to_data_type(result) tmp_dict = dict(zip(self._view.REGEX.keys(), items)) if len(tmp_dict) > 0: self._insert_data( self._table.KEY, tmp_dict, list(self._view.REGEX.keys()) ) def parse_using_item_and_regex(self, event): r""" when multiple map is provided for regex, they gets added to search each line. But when item is '*' each regex item is used to search given value regular expression in whole string blob. Args: event: In case trigger want to pass some data Returns: None, Just add corresponding key, value to existing dict Let say we have CLI "show xmchip 0 pt stats" output as: PCT entries used by all WI-1 streams : 21 PCT entries used by all WI-0 streams : 34 PCT entries used by all LI streams : 0 CPT entries used by all multicast packets : 0 CPT entries used by all WI-1 streams : 0 CPT entries used by all WI-0 streams : 0 CPT entries used by all LI streams : 0 --- XMChipStatsTable: command: show xmchip {{ instance }} pt stats args: instance: 0 target: fpc2 item: '*' view: XMChipStatsView XMChipStatsView: regex: pct_wi_1: 'PCT entries used by all WI-1 streams\s+:\s?(\d+)' pct_wi_0: 'PCT entries used by all WI-0 streams\s+:\s?(\d+)' which returns: {'pct_wi_1': 0, 'pct_wi_0': 0} """ if self._table.ITEM == "*": self._raw = "\n".join(self._lines) for key, regex in self._view.REGEX.items(): obj = re.search(regex, self._raw) if obj: val = obj.groups()[0] if len(obj.groups()) >= 1 else obj.group() self._data[key] = data_type(val)(val) self._insert_eval_data(self._data) else: key = self._get_key(event.kwargs.get("key", self._table.KEY)) for line in re.finditer("%s .*" % self._table.ITEM, "\n".join(self._lines)): tmp_dict = {} for k, exp in self._view.REGEX.items(): obj = re.search(exp, line.group()) if obj: val = obj.groups()[0] if len(obj.groups()) >= 1 else obj.group() tmp_dict[k] = data_type(val)(val) self._insert_eval_data(tmp_dict) if key in tmp_dict: self._data[tmp_dict[key]] = tmp_dict return self._data def parse_using_delimiter(self, event): """ Args: event: In case trigger want to pass some data Returns: None, Just add corresponding key, value to existing dict For a given cli "show link stats" output: PPP LCP/NCP: 0 HDLC keepalives: 0 RSVP: 0 ISIS: 0 OSPF Hello: 541025 OAM: 0 BFD: 15 UBFD: 0 LMI: 0 LACP: 0 ETHOAM: 0 SYNCE: 0 PTP: 0 L2TP: 0 LNS-PPP: 0 ARP: 4307 ELMI: 0 VXLAN MRESOLVE: 0 Unknown protocol: 42 Lets say we can have table as --- FPCLinkStatTable: command: show link stats target: fpc1 delimiter: ":" which given return value as {'ARP': 4307, 'ELMI': 0, 'SYNCE': 0, 'ISIS': 0, 'BFD': 15, 'PPP LCP/NCP': 0, 'OAM': 0, 'ETHOAM': 0, 'LACP': 0, 'LMI': 0, 'Unknown protocol': 42, 'UBFD': 0, 'L2TP': 0, 'HDLC keepalives': 0, 'LNS-PPP': 0, 'OSPF Hello': 541025, 'RSVP': 0, 'VXLAN MRESOLVE': 0, 'PTP': 0} """ delimiter = self._table.DELIMITER or r"\s\s+" pre_space_delimit = "" if self._table.TITLE is None: for line in self._lines[1:]: if line.strip() == "SENT: Ukern command: %s" % self._table.GET_CMD: self._lines = self._lines[self._lines.index(line) + 1 :] break else: obj = re.search(r"^(\s+).*", self._lines[1]) if obj: pre_space_delimit = obj.group(1) for index, line in enumerate(self._lines[1:]): if line.strip() == "": if index > 2: break else: continue if line.startswith(pre_space_delimit): try: items = re.split(delimiter, line.strip()) key, value = convert_to_data_type(items) if self._table.KEY_ITEMS is None: self._data[key] = value elif key in self._table.KEY_ITEMS: self._data[key] = value except ValueError as ex: # create a class named ParseError raise Exception("Not able to parse line: %s" % line) else: break return self._data def parse_exists(self, event): """ Args: event: In case trigger want to pass some data Returns: None, Just add corresponding key, value to existing dict. Value here is a boolean --- HostlbStatusSummaryTable: command: show host_loopback status-summary target: Null view: HostlbStatusSummaryView HostlbStatusSummaryView: exists: no_detected_wedges: No detected wedges no_toolkit_errors: No toolkit errors should give something like {'no_detected_wedges': True, 'no_toolkit_errors': True} """ for key, search in self._view.EXISTS.items(): self._data[key] = re.search(search, self._raw, re.I | re.M) is not None def _insert_eval_data(self, tmp_dict): r""" Args: tmp_dict: dictionary of key value from a iteration of view Returns: if there is any eval expression in view, does the eval using tmp_dictionary. For example: --- XMChipStatsTable: command: show xmchip {{ instance }} pt stats args: instance: 0 target: fpc2 item: '*' view: XMChipStatsView XMChipStatsView: regex: pct_wi_1: 'PCT entries used by all WI-1 streams\s+:\s?(\d+)' pct_wi_0: 'PCT entries used by all WI-0 streams\s+:\s?(\d+)' eval: total_pct: '{{ pct_wi_1 }} + {{ pct_wi_0 }}' which returns {'pct_wi_1': 0, 'pct_wi_0': 0, 'total_pct': 0} """ if self._view and len(self._view.EVAL) > 0: for name, expression in self._view.EVAL.items(): variables = meta.find_undeclared_variables(expression) t = Template(expression) expression = t.render({k: tmp_dict.get(k) for k in variables}) val = eval(expression) tmp_dict[name] = val py-junos-eznc-2.7.3/lib/jnpr/junos/factory/table.py000066400000000000000000000266301475361112400222440ustar00rootroot00000000000000# stdlib from inspect import isclass from time import time from datetime import datetime import os # 3rd-party from lxml import etree import json from jnpr.junos.factory.to_json import TableJSONEncoder _TSFMT = "%Y%m%d%H%M%S" class Table(object): ITEM_XPATH = None ITEM_NAME_XPATH = "name" VIEW = None USE_FILTER = None def __init__(self, dev=None, xml=None, path=None, use_filter=True): """ :dev: Device instance :xml: lxml Element instance :path: file path to XML, to be used rather than :dev: :use_filter: Default usage is SAX parsing, disable this variable to use DOM """ self._dev = dev self.xml = xml self.view = self.VIEW self._key_list = [] self._path = path self._lxml = xml self._use_filter = self.USE_FILTER and use_filter if self._dev is not None: self._use_filter = self._use_filter and self._dev._use_filter # ------------------------------------------------------------------------- # PROPERTIES # ------------------------------------------------------------------------- @property def D(self): """the Device instance""" return self._dev @property def RPC(self): """the Device.rpc instance""" return self.D.rpc @property def view(self): """returns the current view assigned to this table""" return self._view @view.setter def view(self, cls): """assigns a new view to the table""" if cls is None: self._view = None return if not isclass(cls): raise ValueError("Must be given RunstatView class") self._view = cls @property def hostname(self): return self.D.hostname @property def is_container(self): """ True if this table does not have records, but is a container of fields False otherwise """ return self.ITEM_XPATH is None @property def key_list(self): """the list of keys, as property for caching""" return self._key_list # ------------------------------------------------------------------------- # PRIVATE METHODS # ------------------------------------------------------------------------- def _assert_data(self): if self.xml is None: raise RuntimeError("Table is empty, use get()") def _tkey(self, this, key_list): """keys with missing XPATH nodes are set to None""" keys = [] for k in key_list: try: keys.append(this.xpath(k)[0].text) except: # Case where key is provided like key: re-name | Null if " | " in k and "Null" in k: continue keys.append(None) return tuple(keys) def _keys_composite(self, xpath, key_list): """composite keys return a tuple of key-items""" return [self._tkey(item, key_list) for item in self.xml.xpath(xpath)] def _keys_simple(self, xpath): return [x.text.strip() for x in self.xml.xpath(xpath)] def _keyspec(self): """returns tuple (keyname-xpath, item-xpath)""" return (self.ITEM_NAME_XPATH, self.ITEM_XPATH) def _clearkeys(self): self._key_list = [] # ------------------------------------------------------------------------- # PUBLIC METHODS # ------------------------------------------------------------------------- # ------------------------------------------------------------------------ # keys # ------------------------------------------------------------------------ def _keys(self): """return a list of data item keys from the Table XML""" self._assert_data() key_value, xpath = self._keyspec() if isinstance(key_value, str): # Check if pipe is in the key_value, if so append xpath # to each value if " | " in key_value: return self._keys_simple( " | ".join( [xpath + "/" + x for x in key_value.split(" | ") if x != "Null"] ) ) return self._keys_simple(xpath + "/" + key_value) # user explicitly passed key as Null in Table if key_value is None: return [] if not isinstance(key_value, list): raise RuntimeError( "What to do with key, table:'%s'" % self.__class__.__name__ ) # ok, so it's a list, which means we need to extract tuple values return self._keys_composite(xpath, key_value) def keys(self): # if the key_list has been cached, then use it if len(self.key_list): return self.key_list # otherwise, build the list of keys into the cache self._key_list = self._keys() return self._key_list # ------------------------------------------------------------------------ # values # ------------------------------------------------------------------------ def values(self): """returns list of table entry items()""" self._assert_data() if self.view is None: # no View, so provide XML for each item return [this for this in self] else: # view object for each item return [list(this.items()) for this in self] # ------------------------------------------------------------------------ # items # ------------------------------------------------------------------------ def items(self): """returns list of tuple(name,values) for each table entry""" return list(zip(self.keys(), self.values())) # ------------------------------------------------------------------------ # get - loads the data from source # ------------------------------------------------------------------------ def get(self, *vargs, **kvargs): # implemented by either OpTable or CfgTable # @@@ perhaps this should raise an exception rather than just 'pass',?? pass # ------------------------------------------------------------------------ # savexml - saves the table XML to a local file # ------------------------------------------------------------------------ def savexml(self, path, hostname=False, timestamp=False, append=None): """ Save a copy of the table XML data to a local file. The name of the output file (:path:) can include the name of the Device host, the timestamp of this action, as well as any user-defined appended value. These 'add-ons' will be added to the :path: value prior to the file extension in the order (hostname,timestamp,append), separated by underscore (_). For example, if both hostname=True and append='BAZ1', then when :path: = '/var/tmp/foo.xml' and the Device.hostname is "srx123", the final file-path will be "/var/tmp/foo_srx123_BAZ1.xml" :path: file-path to write the XML file on the local filesystem :hostname: if True, will append the hostname to the :path: :timestamp: if True, will append the timestamp to the :path: using the default timestamp format if the timestamp will use the value as the timestamp format as defied by strftime() :append: any value that you'd like appended to the :path: value preceding the filename extension. """ fname, fext = os.path.splitext(path) if hostname is True: fname += "_%s" % self.D.hostname if timestamp is not False: tsfmt = _TSFMT if timestamp is True else timestamp tsfmt_val = datetime.fromtimestamp(time()).strftime(tsfmt) fname += "_%s" % tsfmt_val if append is not None: fname += "_%s" % append path = fname + fext with open(path, "wb+") as f: pass return etree.ElementTree(self.xml).write(path) def to_json(self): """ :returns: JSON encoded string of entire Table contents """ return json.dumps(self, cls=TableJSONEncoder) # ------------------------------------------------------------------------- # OVERLOADS # ------------------------------------------------------------------------- __call__ = get def __repr__(self): cls_name = self.__class__.__name__ source = self.D.hostname if self.D is not None else self._path if self.xml is None: return "%s:%s - Table empty" % (cls_name, source) else: n_items = len(self.keys()) return "%s:%s: %s items" % (cls_name, source, n_items) def __len__(self): self._assert_data() return len(self.keys()) def __iter__(self): """iterate over each time in the table""" self._assert_data() as_xml = lambda table, view_xml: view_xml view_as = self.view or as_xml for this in self.xml.xpath(self.ITEM_XPATH): yield view_as(self, this) def __getitem__(self, value): """ returns a table item. If a table view is set (should be by default) then the item will be converted to the view upon return. if there is no table view, then the XML object will be returned. :value: for , this will perform a select based on key-name for , this will perform a select based on compsite key-name for , this will perform a select based by position, like [0] is the first item [-1] is the last item when it is a then this will return a of View widgets """ self._assert_data() keys = self.keys() if isinstance(value, int): # if selection by index, then grab the key at this index and # recursively call this method using that key, yo! return self.__getitem__(keys[value]) if isinstance(value, slice): # implements the 'slice' mechanism return [self.__getitem__(key) for key in keys[value]] # ---[ get_xpath ] ---------------------------------------------------- def get_xpath(find_value): namekey_xpath, item_xpath = self._keyspec() xnkv = '[{}="{}"]' if isinstance(find_value, str): # find by name, simple key return item_xpath + xnkv.format(namekey_xpath, find_value) if isinstance(find_value, tuple): # composite key (value1, value2, ...) will create an # iterative xpath of the fmt statement for each key/value pair # skip over missing keys kv = [] for k, v in zip(namekey_xpath, find_value): if v is not None: kv.append(xnkv.format(k.replace("_", "-"), v)) xpf = "".join(kv) return item_xpath + xpf # ---[END: get_xpath ] ------------------------------------------------ found = self.xml.xpath(get_xpath(value)) if not len(found): return None as_xml = lambda table, view_xml: view_xml use_view = self.view or as_xml return use_view(table=self, view_xml=found[0]) def __contains__(self, key): """membership for use with 'in'""" return bool(key in self.keys()) py-junos-eznc-2.7.3/lib/jnpr/junos/factory/to_json.py000066400000000000000000000046731475361112400226330ustar00rootroot00000000000000from jnpr.junos.jxml import strip_comments_transform import json from lxml import etree from copy import deepcopy try: from collections.abc import MutableMapping except ImportError: from collections import MutableMapping class TableJSONEncoder(json.JSONEncoder): """ Used to encode Table/View instances into JSON. See :meth:`Table.to_json`. """ def default(self, obj): from jnpr.junos.factory.view import View from jnpr.junos.factory.table import Table from jnpr.junos.factory.cmdtable import CMDTable if isinstance(obj, View): obj = dict(obj.items()) elif isinstance(obj, Table): ret = dict() for item in obj: if isinstance(item.name, list) and len(item.name) == 0: ret.update(item) else: ret[str(item.name)] = item return ret elif isinstance(obj, CMDTable): obj = {str(key): val for key, val in obj.items()} else: obj = super(TableJSONEncoder, self).default(obj) return obj class TableViewJSONEncoder(json.JSONEncoder): """ Used to encode Table/View instances into JSON. See :meth:`Table.to_json`. """ def default(self, obj): from jnpr.junos.factory.view import View from jnpr.junos.factory.table import Table if isinstance(obj, View): obj = {str(obj.name): dict(obj.items())} elif isinstance(obj, Table): obj = dict((str(item.name), dict(item.items())) for item in obj) else: obj = super(TableViewJSONEncoder, self).default(obj) return obj class PyEzJSONEncoder(json.JSONEncoder): """ Used to encode facts and rpc instances into JSON.`. """ def default(self, obj): from jnpr.junos.facts.swver import version_info if isinstance(obj, version_info): obj = obj.v_dict elif isinstance(obj, etree._Element): def recursive_dict(element): return (element.tag, dict(map(recursive_dict, element)) or element.text) # JSON does not support comments - strip them obj = strip_comments_transform(deepcopy(obj)).getroot() _, obj = recursive_dict(obj) elif isinstance(obj, MutableMapping): obj = {k: v for k, v in obj.items()} else: obj = super(PyEzJSONEncoder, self).default(obj) return obj py-junos-eznc-2.7.3/lib/jnpr/junos/factory/view.py000066400000000000000000000271021475361112400221220ustar00rootroot00000000000000import warnings from contextlib import contextmanager from copy import deepcopy from lxml import etree import json import sys from jinja2 import Template, meta from jnpr.junos.factory.viewfields import ViewFields from jnpr.junos.factory.to_json import TableViewJSONEncoder class View(object): """ View is the base-class that makes extracting values from XML data appear as objects with attributes. """ ITEM_NAME_XPATH = "name" FIELDS = {} EVAL = {} GROUPS = None # ------------------------------------------------------------------------- # CONSTRUCTOR # ------------------------------------------------------------------------- def __init__(self, table, view_xml): """ :table: instance of the RunstatTable :view_xml: this should be an lxml etree Elemenet object. This constructor also accepts a list with a single item/XML """ # if as_xml is passed as a list, make sure it only has # a single item, common response from an xpath search if isinstance(view_xml, list): if 1 == len(view_xml): view_xml = view_xml[0] else: raise ValueError("constructor only accepts a single item") # now ensure that the thing provided is an lxml etree Element if not isinstance(view_xml, etree._Element): raise ValueError("constructor only accecpts lxml.etree._Element") self._table = table self.ITEM_NAME_XPATH = table.ITEM_NAME_XPATH self._init_xml(view_xml) def _init_xml(self, given_xml): self._xml = given_xml if self.GROUPS is not None: self._groups = {} for xg_name, xg_xpath in self.GROUPS.items(): xg_xml = self._xml.xpath(xg_xpath) # @@@ this is technically an error; need to trap it if not len(xg_xml): continue self._groups[xg_name] = xg_xml[0] # ------------------------------------------------------------------------- # PROPERTIES # ------------------------------------------------------------------------- @property def T(self): """return the Table instance for the View""" return self._table @property def D(self): """return the Device instance for this View""" return self.T.D @property def name(self): """return the name of view item""" if self.ITEM_NAME_XPATH is None: return [] # return self._table.D.hostname if isinstance(self.ITEM_NAME_XPATH, str): # xpath union key if " | " in self.ITEM_NAME_XPATH: if "Null" in self.ITEM_NAME_XPATH: return self._check_key_delimiter_null( self._xml, self.ITEM_NAME_XPATH ) return self._xml.xpath(self.ITEM_NAME_XPATH)[0].text.strip() # simple key return self._xml.findtext(self.ITEM_NAME_XPATH).strip() else: # composite key # keys with missing XPATH nodes are set to None keys = [] for item_name_xpath in self.ITEM_NAME_XPATH: if " | " in item_name_xpath: key_with_null_cleaned = self._check_key_delimiter_null( self._xml, item_name_xpath ) if key_with_null_cleaned: keys.append(key_with_null_cleaned) else: try: keys.append(self.xml.xpath(item_name_xpath)[0].text.strip()) except: keys.append(None) if keys: return tuple(keys) else: return keys # ALIAS key <=> name key = name def _check_key_delimiter_null(self, xml, item_name_xpath): """ Case where key is provided like key: re-name | Null :param xml: xml object retrieved from device :param item_name_xpath: key xpath :return: key if fetched else [] """ if "Null" in item_name_xpath: # Let try get value for valid xpath key xpath_key = [x for x in item_name_xpath.split(" | ") if x != "Null"] if xpath_key: val = xml.xpath(xpath_key[0]) if val: return val[0].text.strip() else: # To handle Null key return [] @property def xml(self): """returns the XML associated to the item""" return self._xml # ------------------------------------------------------------------------- # METHODS # ------------------------------------------------------------------------- def keys(self): """list of view keys, i.e. field names""" return self.FIELDS.keys() def values(self): """list of view values""" return [getattr(self, field) for field in self.keys()] def items(self): """list of tuple(key,value)""" return zip(self.keys(), self.values()) def _updater_instance(self, more): """called from extend""" if hasattr(more, "fields"): self.FIELDS = deepcopy(self.__class__.FIELDS) self.FIELDS.update(more.fields.end) if hasattr(more, "groups"): self.GROUPS = deepcopy(self.__class__.GROUPS) self.GROUPS.update(more.groups) if hasattr(more, "eval"): self.EVAL = deepcopy(self.__class__.EVAL) self.EVAL.update(more.eval) def _updater_class(self, more): """called from extend""" if hasattr(more, "fields"): self.FIELDS.update(more.fields.end) if hasattr(more, "groups"): self.GROUPS.update(more.groups) if hasattr(more, "eval"): self.EVAL.update(more.eval) @contextmanager def updater(self, fields=True, groups=False, all=True, **kvargs): """ provide the ability for subclassing objects to extend the definitions of the fields. this is implemented as a context manager with the form called from the subclass constructor: with self.extend() as more: more.fields = more.groups = # optional """ # --------------------------------------------------------------------- # create a new object class so we can attach stuff to it arbitrarily. # then pass that object to the caller, yo! # --------------------------------------------------------------------- more = type("RunstatViewMore", (object,), {})() if fields is True: more.fields = ViewFields() # --------------------------------------------------------------------- # callback through context manager # --------------------------------------------------------------------- yield more updater = self._updater_class if all is True else self._updater_instance updater(more) def asview(self, view_cls): """create a new View object for this item""" return view_cls(self._table, self._xml) def refresh(self): """ ~~~ EXPERIMENTAL ~~~ refresh the data from the Junos device. this only works if the table provides an "args_key", does not update the original table, just this specific view/item """ warnings.warn("Experimental method: refresh") if self._table.can_refresh is not True: raise RuntimeError("table does not support this feature") # create a new table instance that gets only the specific named # value of this view tbl_xml = self._table._rpc_get(self.name) new_xml = tbl_xml.xpath(self._table.ITEM_XPATH)[0] self._init_xml(new_xml) return self def to_json(self): """ :returns: JSON encoded string of entire View contents """ return json.dumps(self, cls=TableViewJSONEncoder) # ------------------------------------------------------------------------- # OVERLOADS # ------------------------------------------------------------------------- def __repr__(self): """returns the name of the View with the associate item name""" return "%s:%s" % (self.__class__.__name__, self.name) def __getattr__(self, name): """ returns a view item value, called as :obj.name: """ expression = self.EVAL.get(name) if expression: variables = meta.find_undeclared_variables(expression) t = Template(expression) expression = t.render({k: self.__getitem__(k) for k in variables}) val = eval(expression) setattr(self, name, val) return val item = self.FIELDS.get(name) if item is None: raise ValueError("Unknown field: '%s'" % name) if "table" in item: # if this is a sub-table, then return that now return item["table"](self.D, self._xml) # otherwise, not a sub-table, and handle the field astype = item.get("astype", str) if "group" in item: if item["group"] in self._groups: found = self._groups[item["group"]].xpath(item["xpath"]) else: return else: found = self._xml.xpath(item["xpath"]) len_found = len(found) if astype is bool: # handle the boolean flag case separately return bool(len_found) if not len_found: # even for the case of numbers, do not set the value. we # want to detect "does not exist" vs. defaulting to 0 # -- 2013-nov-19, JLS. return None try: # added exception handler to catch malformed xpath expressesion # -- 2013-nov-19, JLS. # added support to handle multiple xpath values, i.e. a list of # things that have the same xpath expression (common in configs) # -- 2031-dec-06, JLS # added support to use the element tag if the text is empty def _munch(x): if sys.version < "3": as_str = x if isinstance(x, str) else x.text if isinstance(as_str, unicode): as_str = as_str.encode("ascii", "replace") else: as_str = x if isinstance(x, str) else x.text if as_str is not None: as_str = as_str.strip() if not as_str: as_str = x.tag # use 'not' to test for empty return astype(as_str) if 1 == len_found: return _munch(found[0]) # -- 2020-March-26, if string function (like string-before or string-after) is used as xpath (instead of as xpath condition), lxml will return ElementUnicodeResult object, which will be converted wrongly by the next interation, we should return the original UnicodeResult if isinstance(found, etree._ElementUnicodeResult): return found return [_munch(this) for this in found] except: raise RuntimeError("Unable to handle field:'%s'" % name) # and if we are here, then we didn't handle the field. raise RuntimeError("Unable to handle field:'%s'" % name) def __getitem__(self, name): """ allow the caller to extract field values using :obj['name']: the same way they would do :obj.name: """ return getattr(self, name) py-junos-eznc-2.7.3/lib/jnpr/junos/factory/viewfields.py000066400000000000000000000041761475361112400233170ustar00rootroot00000000000000class ViewFields(object): """ Used to dynamically create a field dictionary used with the RunstatView class """ def __init__(self): self._fields = dict() def _prockvargs(self, field, name, **kvargs): if not len(kvargs): return field[name].update(kvargs) @property def end(self): return self._fields def str(self, name, xpath=None, **kvargs): """field is a string""" if xpath is None: xpath = name field = {name: {"xpath": xpath}} self._prockvargs(field, name, **kvargs) self._fields.update(field) return self def astype(self, name, xpath=None, astype=int, **kvargs): """ field string value will be passed to function :astype: This is typically used to do simple type conversions, but also works really well if you set :astype: to a function that does a basic converstion like look at the value and change it to a True/False. For example: astype=lambda x: True if x == 'enabled' else False """ if xpath is None: xpath = name field = {name: {"xpath": xpath, "astype": astype}} self._prockvargs(field, name, **kvargs) self._fields.update(field) return self def int(self, name, xpath=None, **kvargs): """field is an integer""" return self.astype(name, xpath, int, **kvargs) def flag(self, name, xpath=None, **kvargs): """ field is a flag, results in True/False if the xpath element exists or not. Model this as a boolean type """ return self.astype(name, xpath, bool, **kvargs) def group(self, name, xpath=None, **kvargs): """ field is an apply group, results in value of group attr if the xpath element has the associated group attribute. """ xpath = "./{}/@group".format(xpath) return self.astype(name, xpath, str, **kvargs) def table(self, name, table): """field is a RunstatTable""" self._fields.update({name: {"table": table}}) return self py-junos-eznc-2.7.3/lib/jnpr/junos/facts/000077500000000000000000000000001475361112400202255ustar00rootroot00000000000000py-junos-eznc-2.7.3/lib/jnpr/junos/facts/__example.py000066400000000000000000000100121475361112400225220ustar00rootroot00000000000000# Import any exceptions raised in this module. from jnpr.junos.exception import RpcError # In general, a "fact" should be a piece of information that does not change # over the life of a PyEZ connection. While things like mastership state can # change, they also result in the PyEZ connection being closed, so it can # be considered a fact. Things like number of routes in the route table or # system uptime do not maintain the same value over the life of a PyEZ # connection and should therefore not be considered facts. # The name of this file should be based on the RPCs which are invoked by this # file. This avoids accidentally invoking the same RPC multiple times when we # could invoke it just once and gather multiple facts from the output. # An import for each fact file must be present in # lib/jnpr/junos/facts/__init__.py # The file must include a provide_facts() function # The provide_facts() function must return a dictionary. The keys of the # dictionary are each fact that is handled/returned by this module. The value # of each item in the dictionary is the documentation string describing the # particular fact. def provides_facts(): """ Returns a dictionary keyed on the facts provided by this module. The value of each key is the doc string describing the fact. """ return { "foo": "The foo information.", "bar": "The bar information.", } # The file must include a get_facts(device) function. The get_facts(device) # function takes a single mandatory device argument which is the Device object # on which the fact is discovered. # The get_facts(device) function must return a dictionary with a key for each # fact that is handled/returned by this module. # The get_facts(device) function should raise an appropriate exception if the # response from the device prevents getting value(s) for ALL of the facts # provided by the module. The example gets the 'foo' and 'bar' facts. # An exception should only be raised if the error prevents getting the value # for the 'foo' fact AND prevents getting the value for the 'bar' fact. If # unable to determine the value for a given fact, then set the value for that # fact to None. def get_facts(device): """ Gathers facts from the RPC. """ # Invoke an RPC on device using device.rpc.rpc_name() methods. # Avoid using the cli() or shell() methods. # Avoid any RPC which requires more than view privileges. # Avoid any RPC which doesn't run on non-master REs. # Avoid any RPC which takes more than a couple of seconds to execute. # Avoid any RPC which MIGHT take longer than the default PyEZ RPC timeout # (currently 30 seconds). # If there are different ways of gathering the info depending on # Junos version, platform, model, or other things, then try the most common # way first, catch exceptions, try the second most common, etc. # Note that executing an RPC might itself raise an exception. There is no # need to catch that exception. It is handled within the FactCache() class. # Always pass the normalize=True argument when invoking an RPC to avoid any # potential white-space problems in the RPC response. rsp = device.rpc.get_foo_bar_information(normalize=True) # Handle any exceptional situations unique to this RPC which prevent # getting values for ALL of the facts provided by this module. # These are examples which MAY or MAY NOT apply to your particular RPC. # Don't just blindly leave these in. if rsp.tag == "error": raise RpcError() # An example of a boolean fact. False if the top-level tag is not 'foo'. foo = False if rsp.tag == "foo": foo = True # An example of a string value which might be found at various levels or # locations within the response hierarchy. bar = ( rsp.findtext(".//chassis[1]/bar") or rsp.findtext('.//chassis-module[name="Backplane"]/bar') or rsp.findtext('.//chassis-module[name="Midplane"]/bar') ) return { "foo": foo, "bar": bar, } py-junos-eznc-2.7.3/lib/jnpr/junos/facts/__init__.py000066400000000000000000000067341475361112400223500ustar00rootroot00000000000000""" A dictionary-like object of read-only facts about the Junos device. These facts are accessed as the `facts` attribute of a `Device` object instance. For example, if `dev` is an instance of a `Device` object, the hostname of the device can be accessed with:: dev.facts['hostname'] Force a refresh of all facts with:: dev.facts_refresh() Force a refresh of a single fact with:: dev.facts_refresh(keys='hostname') Force a refresh of a set of facts with:: dev.facts_refresh(keys=('hostname','domain','fqdn')) NOTE: The dictionary key for each available fact is guaranteed to exist. If there is a problem gathering the value of a specific fact/key, or if the fact is not supported on a given platform, then the fact/key will have the value None (the None object, not a string.) Accessing a dictionary key which does not correspond to an available fact will raise a KeyError (the same behavior as accessing a non-existent key of a normal dict.) The following dictionary keys represent the available facts and their meaning: """ import sys import jnpr.junos.facts.current_re import jnpr.junos.facts.domain import jnpr.junos.facts.ethernet_mac_table import jnpr.junos.facts.file_list import jnpr.junos.facts.get_chassis_cluster_status import jnpr.junos.facts.get_chassis_inventory import jnpr.junos.facts.get_route_engine_information import jnpr.junos.facts.get_software_information import jnpr.junos.facts.get_virtual_chassis_information import jnpr.junos.facts.ifd_style import jnpr.junos.facts.iri_mapping import jnpr.junos.facts.personality import jnpr.junos.facts.swver import jnpr.junos.facts.is_linux import jnpr.junos.facts.vmhost def _build_fact_callbacks_and_doc_strings(): """ Imports the fact modules and returns callbacks and doc_strings. :returns: A tuple of callbacks and doc_strings. callbacks - a dict of the callback function to invoke for each fact. doc_strings - a dict of the doc string for each fact. :raises: RuntimeError if more than one module claims to provide the same fact. This is an indication of incorrectly written fact module(s). In order to remain deterministic, each fact must be provided by a single module. """ callbacks = {} doc_strings = {} for name, module in sys.modules.items(): if name.startswith("jnpr.junos.facts.") and module is not None: new_doc_strings = module.provides_facts() for key in new_doc_strings: if key not in callbacks: callbacks[key] = module.get_facts doc_strings[key] = new_doc_strings[key] else: raise RuntimeError( "Both the %s module and the %s module " "claim to provide the %s fact. Please " "report this error." % (callbacks[key].__module__, module.__name__, key) ) return (callbacks, doc_strings) # Import all of the fact modules and build the callbacks and doc strings (_callbacks, _doc_strings) = _build_fact_callbacks_and_doc_strings() # In case optimization flag is enabled, it strips of docstring and __doc__ becomes None if __doc__ is None: __doc__ = "" # Append the doc string (__doc__) with the documentation for each fact. for key in sorted(_doc_strings, key=lambda s: s.lower()): __doc__ += ":%s:\n %s\n" % (key, _doc_strings[key]) py-junos-eznc-2.7.3/lib/jnpr/junos/facts/current_re.py000066400000000000000000000123061475361112400227510ustar00rootroot00000000000000from jnpr.junos.exception import RpcError import re def provides_facts(): """ Returns a dictionary keyed on the facts provided by this module. The value of each key is the doc string describing the fact. """ return { "current_re": "A list of internal routing instance hostnames " "for the current RE. These hostnames identify " "things like the RE's slot ('re0' or 're1'), the " "RE's mastership state ('master' or 'backup'), " "and node in a VC ('member0' or 'member1')", } def get_facts(device): """ The RPC-equivalent of show interfaces terse on private routing instance. """ current_re = [] try: if device.facts["_is_linux"]: rsp = device.rpc.get_system_nodes_information(normalize=True) # Get the RE (Active) list from the response res_list = rsp.xpath( "system-nodes-info-entry/system-node-info-node-attributes-list/" "system-node-info-node-attribute[text()='RE (Active)']/../.." ) for re_ele in res_list: # Use the node-name element ot get RE name re_name = re_ele.xpath("system-node-info-node-name") current_re.append(re_name[0].text) else: rsp = device.rpc.get_interface_information( normalize=True, routing_instance="__juniper_private1__", terse=True, ) # Get the local IPv4 addresses from the response. for ifa in rsp.iterfind( ".//address-family[address-family-name='inet']/" "interface-address/ifa-local" ): ifa_text = ifa.text if ifa_text is not None: # Separate the IP from the mask (ip, _, _) = ifa.text.partition("/") if ip is not None: # Use the _iri_hostname fact to map the IP address to # an internal routing instance hostname. if ip in device.facts["_iri_hostname"]: for host in device.facts["_iri_hostname"][ip]: if host not in current_re: current_re.append(host) # An SRX platform in an HA cluster uses a different # algorithm for assigning IRI IP addresses elif device.facts["srx_cluster_id"] is not None: try: # Split the IRI IP into a list of 4 octets octets = ip.split(".", 3) # The 2nd octet will be cluster-id << 4 cluster_id_octet = str( (int(device.facts["srx_cluster_id"]) & 0x000F) << 4 ) if cluster_id_octet == "0": cluster_id_octet = str( device.facts["srx_cluster_id"] ) # node0 will have an IP of # 129..0.1 # node1 will have an IP of # 130..0.1 # primary will have an IP of # 143..0.1 if ( octets[1] == cluster_id_octet and octets[2] == "0" and octets[3] == "1" ): host = None if octets[0] == "129": host = "node0" elif octets[0] == "130": host = "node1" elif octets[0] == "143": host = "primary" if host is not None and host not in current_re: current_re.append(host) # Problem splitting IP into octets and indexing them. # Keep looping to check the other IRI IPs. except IndexError: pass except RpcError: # Check to see if it's JDM of Junos Node slicing try: current_re_sw = device.rpc.get_software_information() if current_re_sw is not None: server_slot = current_re_sw.findtext( './package-information[name="Server ' 'slot"]/comment' ) slot_num = re.findall(r"Server slot : (\d+)", server_slot)[0] current_re = ["server" + slot_num] except Exception: pass # An empty list indicates a problem finding any current_re info. # Return None. if len(current_re) == 0: current_re = None return { "current_re": current_re, } py-junos-eznc-2.7.3/lib/jnpr/junos/facts/domain.py000066400000000000000000000035411475361112400220510ustar00rootroot00000000000000from lxml import etree from jnpr.junos.exception import PermissionError from jnpr.junos.utils.fs import FS def provides_facts(): """ Returns a dictionary keyed on the facts provided by this module. The value of each key is the doc string describing the fact. """ return { "domain": "The domain name configured at the [edit system " "domain-name] configuration hierarchy.", "fqdn": "The device's hostname + domain", } def get_facts(device): """ Gathers domain facts from the configuration or /etc/resolv.conf. """ domain_config = """ """ domain = None fqdn = None # Try to read the domain-name from the config. # This might fail due to lack of permissions. try: rsp = device.rpc.get_config( filter_xml=etree.XML(domain_config), options={ "database": "committed", "inherit": "inherit", "commit-scripts": "apply", }, ) domain = rsp.findtext(".//domain-name") # Ignore if user can't view the configuration. except PermissionError: pass # Try to read the domain from the resolv.conf file. This only requires # view permissions. if domain is None: fs = FS(device) file_content = fs.cat("/etc/resolv.conf") or fs.cat("/var/etc/resolv.conf") words = file_content.split() if file_content is not None else [] if "domain" in words: idx = words.index("domain") + 1 domain = words[idx] # Set the fqdn fqdn = device.facts["hostname"] if fqdn is not None and domain is not None: fqdn = fqdn + "." + domain return { "domain": domain, "fqdn": fqdn, } py-junos-eznc-2.7.3/lib/jnpr/junos/facts/ethernet_mac_table.py000066400000000000000000000045631475361112400244140ustar00rootroot00000000000000from jnpr.junos.exception import RpcError def provides_facts(): """ Returns a dictionary keyed on the facts provided by this module. The value of each key is the doc string describing the fact. """ return { "switch_style": "A string which indicates the Ethernet " "switching syntax style supported by the device. " "Possible values are: 'BRIDGE_DOMAIN', 'VLAN', " "'VLAN_L2NG', or 'NONE'.", } def get_facts(device): """ Gathers facts about the Ethernet switching configuration syntax style. """ switch_style = None try: # RPC if VLAN style (Older EX, QFX, and SRX) # or if VLAN_L2NG (aka ELS) style (Newer EX and QFX) rsp = device.rpc.get_ethernet_switching_table_information(summary=True) if rsp.tag == "l2ng-l2ald-rtb-macdb": switch_style = "VLAN_L2NG" elif rsp.tag == "ethernet-switching-table-information": switch_style = "VLAN" except RpcError: pass if switch_style is None: try: # CLI command for MX style. Using the CLI command instead of the # RPC because PTX lies. It returns for the # RPC, but doesn't really support bridging. It raises an RPC # error for the CLI command (via RPC), so we use # the CLI command to make sure the device really does support # bridge domains. In this case, an RpcError is raised with a # bad_element of 'bridge'. # # However, on the backup RE for devices that really do support # bridge domains, we get an RpcError stating: # 'the l2-learning subsystem is not running' rsp = device.rpc.cli( "show bridge mac-table count", format="xml", normalize=True ) if rsp.tag == "l2ald-rtb-mac-count": switch_style = "BRIDGE_DOMAIN" else: switch_style = "NONE" except RpcError as err: # Probably a PTX. if err.rpc_error["bad_element"] == "bridge": switch_style = "NONE" # Probably a non-master RE on an MX. elif err.rpc_error["message"] == "the l2-learning subsystem is not running": switch_style = "BRIDGE_DOMAIN" return { "switch_style": switch_style, } py-junos-eznc-2.7.3/lib/jnpr/junos/facts/file_list.py000066400000000000000000000013661475361112400225570ustar00rootroot00000000000000def provides_facts(): """ Returns a dictionary keyed on the facts provided by this module. The value of each key is the doc string describing the fact. """ return { "HOME": "A string indicating the home directory of the current " "user.", } def get_facts(device): """ Gathers facts from the RPC. """ home = None rsp = device.rpc.file_list(normalize=True, path="~") if rsp.tag == "directory-list": dir_list_element = rsp else: dir_list_element = rsp.find(".//directory-list") if dir_list_element is not None: home = dir_list_element.get("root-path") if home is not None: home = home.rstrip("/") return { "HOME": home, } py-junos-eznc-2.7.3/lib/jnpr/junos/facts/get_chassis_cluster_status.py000066400000000000000000000065521475361112400262470ustar00rootroot00000000000000from jnpr.junos.exception import RpcError def provides_facts(): """ Returns a dictionary keyed on the facts provided by this module. The value of each key is the doc string describing the fact. """ return { "srx_cluster": "A boolean indicating if the device is part of an " "SRX cluster.", "srx_cluster_id": "A string containing the configured cluster id", "srx_cluster_redundancy_group": "A multi-level dictionary of " "information about the SRX " "cluster redundancy groups " "on the device. The first-level " "key is the redundancy group id. " "The second-level keys are: " "cluster_id, failover_count, " "node0, and node1. The node0 and " "node1 keys have third-level keys " "of priority, preempt, status, " "and failover_mode. The values " "for this fact correspond to the " "values of the 'show chassis " "cluster status' CLI command.", } def get_facts(device): """ Gathers facts from the RPC. """ srx_cluster = None srx_cluster_id = None redundancy_group = None try: rsp = device.rpc.get_chassis_cluster_status(normalize=True) if rsp is not None: if rsp.tag == "error": srx_cluster = False else: srx_cluster = True srx_cluster_id = rsp.findtext("cluster-id") groups = rsp.findall("redundancy-group") if groups is not None: redundancy_group = {} for group in groups: group_id = group.findtext("redundancy-group-id") redundancy_group[group_id] = { "cluster_id": group.findtext("cluster-id"), "failover_count": group.findtext( "redundancy-group-failover-count" ), } # Iterate over the broken XML in for stats in group.findall("./device-stats"): for node in zip( stats.findall("device-name"), stats.findall("device-priority"), stats.findall("redundancy-group-status"), stats.findall("preempt"), stats.findall("failover-mode"), stats.findall("monitor-failures"), ): redundancy_group[group_id][node[0].text] = { "priority": node[1].text, "status": node[2].text, "preempt": node[3].text, "failover_mode": node[4].text, "monitor-failures": node[5].text, } except RpcError: # Likely a device that doesn't implement the # RPC. # That's OK. Just ignore it and leave srx_cluster = None. pass return { "srx_cluster": srx_cluster, "srx_cluster_id": srx_cluster_id, "srx_cluster_redundancy_group": redundancy_group, } py-junos-eznc-2.7.3/lib/jnpr/junos/facts/get_chassis_inventory.py000066400000000000000000000030061475361112400252070ustar00rootroot00000000000000from jnpr.junos.exception import ConnectNotMasterError from jnpr.junos.exception import RpcError def provides_facts(): """ Returns a dictionary keyed on the facts provided by this module. The value of each key is the doc string describing the fact. """ return { "RE_hw_mi": "(Routing Engine hardware multi-instance) A boolean " "indicating if this is a multi-chassis system.", "serialnumber": "A string containing the serial number of the " "device's chassis. If there is no chassis serial " "number, the serial number of the backplane or " "midplane is returned.", } def get_facts(device): """ Gathers facts from the RPC. """ rsp = device.rpc.get_chassis_inventory(normalize=True) if rsp.tag == "error": raise RpcError() if ( rsp.tag == "output" and rsp.text.find("can only be used on the master routing engine") != -1 ): # An error; due to the fact that this RPC can only be executed on the # master Routing Engine raise ConnectNotMasterError() RE_hw_mi = False if rsp.tag == "multi-routing-engine-results": RE_hw_mi = True serialnumber = ( rsp.findtext(".//chassis[1]/serial-number") or rsp.findtext('.//chassis-module[name="Backplane"]/serial-number') or rsp.findtext('.//chassis-module[name="Midplane"]/serial-number') ) return { "RE_hw_mi": RE_hw_mi, "serialnumber": serialnumber, } py-junos-eznc-2.7.3/lib/jnpr/junos/facts/get_route_engine_information.py000066400000000000000000000132651475361112400265350ustar00rootroot00000000000000def provides_facts(): """ Returns a dictionary keyed on the facts provided by this module. The value of each key is the doc string describing the fact. """ return { "2RE": "A boolean indicating if the device has more than one " "Routing Engine installed.", "master": "On a single chassis/node system, a string value of " "'RE0' or 'RE1' indicating which RE is master. On a " "multi-chassis or multi-node system, the value is a " "list of these strings indicating whether RE0 or RE1 " "is master. There is one entry in the list for each " "chassis/node in the system.", "RE0": "A dictionary with information about RE0 (if present). The " "keys of the dictionary are: mastership_state, status, " "model, up_time, and last_reboot_reason.", "RE1": "A dictionary with information about RE1 (if present). The " "keys of the dictionary are: mastership_state, status, " "model, up_time, and last_reboot_reason.", "re_info": "A three-level dictionary with information about " "the Routing Engines in the device. The first-level " "key is the chassis or node name. The second-level key " "is the slot number, the third-level keys are: " "mastership_state, status, model, and " "last_reboot_reason. A first-level key with a value " "of 'default' will always be present and represents " "the first chassis/node of the system (Note: the first " "chasis/node of the system is not necessarily the " "'master' node in a VC.) A second-level key with a " "value of 'default' will always be present " "for the default chassis/node and represents the " "first Routing Engine on the first node/chassis. " "(Note: the first RE of a chassis/node is not " "necessarily the 'master' RE of the chassis/node. See " "the RE_master fact for info on the 'master' RE of " "each chassis/node.)", "re_master": "A dictionary indicating which RE slot is master for " "each chassis/node in the system. The dictionary key " "is the chassis or node name. A key with a value " "of 'default' will always be present and represents " "the first node/chassis of the system. (Note: the " "first chassis/node of the system is not necessarily " "the 'master' node in a VC. See the vc_master fact " "to determine which chassis/node is the master of " "a VC.)", } def get_facts(device): """ Gathers facts from the RPC. """ multi_re = None master = None RE0 = None RE1 = None re_info = None re_master = None rsp = device.rpc.get_route_engine_information(normalize=True) re_list = rsp.findall(".//route-engine") if len(re_list) > 1: multi_re = True else: multi_re = False first_node = None first_slot = None master_list = [] node_masters = {} for current_re in re_list: node = current_re.findtext("../../re-name", "default") slot = current_re.findtext("slot", "0") info = { "mastership_state": current_re.findtext("mastership-state", "master"), "status": current_re.findtext("status"), "model": current_re.findtext("model"), "last_reboot_reason": current_re.findtext("last-reboot-reason"), # This key is only returned in the RE0 and RE1 facts in order # to maintain backwards compatibility with the old fact # gathering system. Since the up_time value changes, it's not # really a "fact" and is therefore omitted from the new re_info # fact. "up_time": current_re.findtext("up-time"), } if first_node is None: first_node = node first_slot = slot if node == first_node: if slot == "0" and RE0 is None: # Copy the dictionary RE0 = dict(info) if slot == "1" and RE1 is None: # Copy the dictionary RE1 = dict(info) # Don't want the up_time key in the new re_info fact. if "up_time" in info: del info["up_time"] if re_info is None: re_info = {} if node not in re_info: re_info[node] = {} # Save with second-level key as a string. re_info[node][slot] = info # If it's a master RE, then save in node_masters and master_list if "mastership_state" in info and info["mastership_state"].lower().startswith( "master" ): node_masters[node] = slot master_list.append("RE" + slot) # Fill in the 'default' first-level key if multi-chassis/node system if first_node is not None and first_node != "default": re_info["default"] = re_info[first_node] if first_node in node_masters: node_masters["default"] = node_masters[first_node] # Fill in the 'default' second-level key if at least one RE was found. if first_slot is not None: re_info["default"]["default"] = re_info["default"][first_slot] # Set the 'master' fact to a string or list based on the number of members. master_list_len = len(master_list) if master_list_len == 1: master = master_list[0] elif master_list_len > 1: master = master_list # If any info in the node_masters dict, then return it as fact 're_master' if node_masters: re_master = node_masters return { "2RE": multi_re, "master": master, "RE0": RE0, "RE1": RE1, "re_info": re_info, "re_master": re_master, } py-junos-eznc-2.7.3/lib/jnpr/junos/facts/get_software_information.py000066400000000000000000000257431475361112400257100ustar00rootroot00000000000000import re import logging from jnpr.junos.facts.swver import version_info from jnpr.junos.exception import RpcError from jnpr.junos import jxml as JXML logger = logging.getLogger("jnpr.junos.facts.get_software_information") def _get_software_information(device): # See if device understands "invoke-on all-routing-engines" try: return device.rpc.cli( "show version invoke-on all-routing-engines", format="xml", normalize=True ) except RpcError as err: # See if device runs on a linux kernel if device.facts["_is_linux"]: sw_info_all = device.rpc.get_software_information( normalize=True, node="all" ) sw_info_re0 = device.rpc.get_software_information( normalize=True, node="re0" ) sw_info_re1 = device.rpc.get_software_information( normalize=True, node="re1" ) re0_hostname = sw_info_re0.findtext("./host-name") re1_hostname = sw_info_re1.findtext("./host-name") for current_hostname in sw_info_all.findall( "./multi-routing-engine-result/software-information/host-name" ): if current_hostname.text == re0_hostname: current_hostname.getparent().getparent().append( JXML("re0") ) elif current_hostname.text == re1_hostname: current_hostname.getparent().getparent().append( JXML("re1") ) return sw_info_all # See if device is VC Capable if device.facts["vc_capable"] is True: try: return device.rpc.cli( "show version all-members", format="xml", normalize=True ) except Exception: pass # check if rpc-reply got 2 child element, one rpc-error and another # software information elif ( hasattr(err, "rpc_error") and err.rpc_error is not None and "Could not connect to " in err.rpc_error.get("message") ): logger.debug(err.rpc_error.get("message")) # getparent as rpc-reply got software-information in 2nd element # and dev.cli return just 1st element. rsp = err.xml.getparent() rsp = JXML.remove_namespaces(rsp) if rsp.xpath(".//software-information"): return rsp try: # JDM for Junos Node Slicing return device.rpc.get_software_information( all_servers=True, format="xml", normalize=True ) except Exception: pass try: sw_info = device.rpc.get_software_information(normalize=True) except Exception: sw_info = True try: if sw_info is True: # Possibly an NFX which requires 'local' and 'detail' args. sw_info = device.rpc.get_software_information( local=True, detail=True, normalize=True ) return sw_info except Exception: pass def provides_facts(): """ Returns a dictionary keyed on the facts provided by this module. The value of each key is the doc string describing the fact. """ return { "junos_info": "A two-level dictionary providing Junos software " "version information for each RE in the system. " "The first-level key is the name of the RE. The " "second level key is 'text' for the version as a " "string and 'object' for the version as a " "version_info object.", "hostname": "A string containing the hostname of the current " "Routing Engine.", "hostname_info": "A dictionary keyed on Routing Engine name. The " "value of each key is the hostname of the " "Routing Engine.", "model": "An uppercase string containing the model of the chassis " "in which the current Routing Engine resides.", "model_info": "A dictionary keyed on Routing Engine name. The " "value of each key is an uppercase string " "containing the model of the chassis in which the " "Routing Engine resides.", "version": "A string containing the Junos version of the current " "Routing Engine.", "version_info": "The Junos version of the current Routing Engine " "as a version_info object.", "version_RE0": "A string containing the Junos version of the " "RE in slot 0. (Assuming the system contains an " "RE0.)", "version_RE1": "A string containing the Junos version of the " "RE in slot 1. (Assuming the system contains an " "RE1)", } def get_facts(device): """ Gathers facts from the RPC. """ junos_info = None hostname = None hostname_info = None model = None model_info = None version = None ver_info = None version_RE0 = None version_RE1 = None rsp = _get_software_information(device) if rsp.tag == "software-information": si_rsp = [rsp] else: si_rsp = rsp.findall(".//software-information") for re_sw_info in si_rsp: re_name = re_sw_info.findtext("../re-name", "re0") re_model = re_sw_info.findtext("./product-model") re_hostname = re_sw_info.findtext("./host-name") # First try the tag present in >= 15.1 re_version = re_sw_info.findtext("./junos-version") if re_version is None: # For < 15.1, get version from the "junos" package. try: re_pkg_info = re_sw_info.findtext( './package-information[name="junos"]/comment' ) if re_pkg_info is not None: re_version = re.findall(r"\[(.*)\]", re_pkg_info)[0] else: # Junos Node Slicing JDM case re_pkg_info = re_sw_info.findtext( './package-information[name="JUNOS version"]/comment' ) if re_pkg_info is not None: # In this case, re_pkg_info might look like this: # JUNOS version : 17.4-20170703_dev_common.0-secure # Match everything from last space until the end. re_version = re.findall(r".*\s+(.*)", re_pkg_info)[0] else: # NFX JDM case re_pkg_info = re_sw_info.findtext( './version-information[component="MGD"]/release' ) re_version = re.findall(r"(.*\d+)", re_pkg_info)[0] except Exception: re_version = None if model_info is None and re_model is not None: model_info = {} if re_model is not None: model_info[re_name] = re_model.upper() if hostname_info is None and re_hostname is not None: hostname_info = {} if re_hostname is not None: hostname_info[re_name] = re_hostname if junos_info is None and re_version is not None: junos_info = {} if re_version is not None: junos_info[re_name] = { "text": re_version, "object": version_info(re_version), } # Check to see if re_name is the RE we are currently connected to. # There are at least five cases to handle. this_re = False # 1) this device doesn't support the current_re fact and there's only # one RE. if device.facts["current_re"] is None and len(si_rsp) == 1: this_re = True # 2) re_name is in the current_re fact. The easy case. elif re_name in device.facts["current_re"]: this_re = True # 3) Some single-RE devices (discovered on EX2200 running 11.4R1) # don't include 'reX' in the current_re list. Check for this # condition and still set default hostname, model, and version elif ( re_name == "re0" and "re1" not in device.facts["current_re"] and "master" in device.facts["current_re"] ): this_re = True # 4) For an lcc in a TX(P) re_name is 're0' or 're1', but the # current_re fact is ['lcc1-re0', 'member1-re0', ...]. Check to see # if any iri_name endswith the re_name. if this_re is False: for iri_name in device.facts["current_re"]: if iri_name.endswith("-" + re_name): this_re = True break # 5) For an MX configured with Node Virtualization then, re_name is # bsys-reX, but the iri_name is still just reX. if this_re is False: for iri_name in device.facts["current_re"]: if re_name == "bsys-" + iri_name: this_re = True break # Set hostname, model, and version facts if we've found the RE to # which we are currently connected. if this_re is True: if hostname is None: hostname = re_hostname if model is None: model = re_model.upper() if version is None: version = re_version if version is None: version = "0.0I0.0" ver_info = version_info(version) if junos_info is not None: if "re0" in junos_info: version_RE0 = junos_info["re0"]["text"] elif "node0" in junos_info: version_RE0 = junos_info["node0"]["text"] elif "bsys-re0" in junos_info: if len(junos_info) > 4: version_RE0 = junos_info["bsys-re0"]["text"] else: for key in junos_info.keys(): if key.startswith("gnf") and key.endswith("re0"): version_RE0 = junos_info[key]["text"] elif "server0" in junos_info: version_RE0 = junos_info["server0"]["text"] if "re1" in junos_info: version_RE1 = junos_info["re1"]["text"] elif "node1" in junos_info: version_RE1 = junos_info["node1"]["text"] elif "bsys-re1" in junos_info: if len(junos_info) > 4: version_RE1 = junos_info["bsys-re1"]["text"] else: for key in junos_info.keys(): if key.startswith("gnf") and key.endswith("re1"): version_RE1 = junos_info[key]["text"] elif "server1" in junos_info: version_RE1 = junos_info["server1"]["text"] return { "junos_info": junos_info, "hostname": hostname, "hostname_info": hostname_info, "model": model, "model_info": model_info, "version": version, "version_info": ver_info, "version_RE0": version_RE0, "version_RE1": version_RE1, } py-junos-eznc-2.7.3/lib/jnpr/junos/facts/get_virtual_chassis_information.py000066400000000000000000000050631475361112400272520ustar00rootroot00000000000000from jnpr.junos.exception import RpcError def provides_facts(): """ Returns a dictionary keyed on the facts provided by this module. The value of each key is the doc string describing the fact. """ return { "vc_capable": "A boolean indicating if the device is currently " "configured in a virtual chassis. In spite of the " "name, this fact does NOT indicate whether or not " "the device is CAPABLE of joining a VC.", "vc_mode": "A string indicating the current virtual chassis " "mode of the device.", "vc_fabric": "A boolean indicating if the device is currently in " "fabric mode.", "vc_master": "A string indicating the chassis/node which is " "currently the master of the VC.", } def get_facts(device): """ Gathers facts from the RPC. """ vc_capable = None vc_mode = None vc_fabric = None vc_master = None try: rsp = device.rpc.get_virtual_chassis_information(normalize=True) # MX issue where command returns, but without content. In this case, # rsp is set to True. if rsp is not True: vc_capable = True if rsp is not None: vc_mode = rsp.findtext(".//virtual-chassis-mode") vc_id_info = rsp.find(".//virtual-chassis-id-information") if vc_id_info is not None: if vc_id_info.get("style") == "fabric": vc_fabric = True else: vc_fabric = False for member_id in rsp.xpath( ".//member-role[starts-with(.,'Master')]" "/preceding-sibling::member-id" ): if vc_master is None: vc_master = member_id.text else: old_vc_master = vc_master vc_master = None raise ValueError( "Member %s and member %s both claim " "to be master of the VC." % (old_vc_master, member_id.text) ) else: vc_capable = False except RpcError: # Likely a device that doesn't implement the # RPC. # That's OK. Set vc_capable = False. vc_capable = False return { "vc_capable": vc_capable, "vc_mode": vc_mode, "vc_fabric": vc_fabric, "vc_master": vc_master, } py-junos-eznc-2.7.3/lib/jnpr/junos/facts/ifd_style.py000066400000000000000000000012101475361112400225530ustar00rootroot00000000000000def provides_facts(): """ Returns a dictionary keyed on the facts provided by this module. The value of each key is the doc string describing the fact. """ return { "ifd_style": "The type of physical interface (ifd) supported by " "the device. Choices are 'CLASSIC' or 'SWITCH'.", } def get_facts(device): """ Determines ifd_style fact based on the personality. """ ifd_style = "CLASSIC" if device.facts["personality"] == "SWITCH": ifd_style = "SWITCH" elif device.facts["personality"] == "JDM": ifd_style = None return { "ifd_style": ifd_style, } py-junos-eznc-2.7.3/lib/jnpr/junos/facts/iri_mapping.py000066400000000000000000000056321475361112400231030ustar00rootroot00000000000000def provides_facts(): """ Returns a dictionary keyed on the facts provided by this module. The value of each key is the doc string describing the fact. """ return { "_iri_hostname": "A dictionary keyed by internal routing instance " "ip addresses. The value of each key is the " "internal routing instance hostname for the ip", "_iri_ip": "A dictionary keyed by internal routing instance " "hostnames. The value of each key is the internal " "routing instance ip for the hostname", } def get_facts(device): """ Gathers facts from a RPC on the '/etc/hosts.junos' file. """ iri_hostname = None iri_ip = None rsp = device.rpc.file_show(filename="/etc/hosts.junos", normalize=False) if rsp is not None: hosts_file_content = rsp.findtext(".", default="") if hosts_file_content is not None: for line in hosts_file_content.splitlines(): (line, _, _) = line.partition("#") components = line.split(None) if len(components) > 1: ip = components[0] hosts = components[1:] if iri_hostname is None: iri_hostname = {} if iri_ip is None: iri_ip = {} if ip in iri_hostname: iri_hostname[ip] += hosts else: iri_hostname[ip] = hosts for host in hosts: if host in iri_ip: iri_ip[host].append(ip) else: iri_ip[host] = [ip] for host in hosts: # Handle templates with %d if "%d" in host: octets = ip.split(".", 3) for count in range(255): t_ip = ( octets[0] + "." + octets[1] + "." + str(count) + "." + octets[3] ) t_host = host.replace("%d", str(count)) if t_ip in iri_hostname: iri_hostname[t_ip].append(t_host) else: iri_hostname[t_ip] = [t_host] if t_host in iri_ip: iri_ip[t_host].append(t_ip) else: iri_ip[t_host] = [t_ip] return { "_iri_hostname": iri_hostname, "_iri_ip": iri_ip, } py-junos-eznc-2.7.3/lib/jnpr/junos/facts/is_linux.py000066400000000000000000000015621475361112400224350ustar00rootroot00000000000000from jnpr.junos.exception import RpcError def provides_facts(): """ Returns a dictionary keyed on the facts provided by this module. The value of each key is the doc string describing the fact. """ return { "_is_linux": "A boolean indicating if the device is running linux" "kernel.", } def get_facts(device): """ Gathers the _is_linux fact using the RPC on the EVO version file. """ # Temporary implementation until PR 1245634 is implemented. LINUX_VERSION_PATH = "/usr/share/cevo/cevo_version" is_linux = None try: rsp = device.rpc.file_show(normalize=True, filename=LINUX_VERSION_PATH) if rsp.tag == "file-content": is_linux = True else: is_linux = False except RpcError: is_linux = False return { "_is_linux": is_linux, } py-junos-eznc-2.7.3/lib/jnpr/junos/facts/personality.py000066400000000000000000000055341475361112400231570ustar00rootroot00000000000000import re def provides_facts(): """ Returns a dictionary keyed on the facts provided by this module. The value of each key is the doc string describing the fact. """ return { "personality": "A string which is generally based on the " "platform and indicates the behavior of the " "device.", "virtual": "A boolean indicating if the device is virtual.", } def get_facts(device): """ Determines personality fact based on the model. """ personality = None virtual = None model = device.facts["model"] if model == "Virtual Chassis": # Set model to the model of the first RE in the multi-chassis system. model = device.facts["re_info"]["default"]["default"]["model"] if re.match("^(EX)|(QFX)", model): personality = "SWITCH" virtual = False elif model.startswith("MX"): re_type = device.facts["re_info"]["default"]["default"]["model"] # The VMX has an RE type of 'RE-VMX' if re_type == "RE-VMX": personality = "MX" virtual = True # An MX GNF has an RE type that includes the letters 'GNF' elif re_type is not None and "GNF" in re_type: personality = "MX-GNF" virtual = True else: personality = "MX" virtual = False elif model.startswith("VMX"): personality = "MX" virtual = True elif model.startswith("VJX"): personality = "SRX_BRANCH" virtual = True elif "VRR" == model: personality = "MX" virtual = True elif model.startswith("M"): personality = "M" virtual = False elif model.startswith("T"): personality = "T" virtual = False elif model.startswith("PTX"): personality = "PTX" # The vPTX has an RE type of 'RE-VIRTUAL' if device.facts["re_info"]["default"]["default"]["model"] == "RE-VIRTUAL": virtual = True else: virtual = False elif re.match(r"SRX\s?(\d){4}", model): srx_model = int(model[-4:]) if srx_model > 5000: personality = "SRX_HIGHEND" else: personality = "SRX_MIDRANGE" virtual = False elif re.match(r"SRX\s?(\d){3}", model): personality = "SRX_BRANCH" virtual = False elif re.search("firefly", model, re.IGNORECASE): personality = "SRX_BRANCH" virtual = True elif "OLIVE" == model: personality = "OLIVE" virtual = True elif model.startswith("NFX"): personality = "NFX" virtual = False elif "JUNOS_NODE_SLICING" == model: personality = "JDM" virtual = True elif model.startswith("ACX"): personality = "ACX" virtual = False return { "personality": personality, "virtual": virtual, } py-junos-eznc-2.7.3/lib/jnpr/junos/facts/swver.py000066400000000000000000000070401475361112400217460ustar00rootroot00000000000000import re class version_info(object): def __init__(self, verstr): """verstr - version string""" m1 = re.match("(.*?)([RBIXSF-])(.*)", verstr) self.type = m1.group(2) self.major = tuple(map(int, m1.group(1).split("."))) # creates tuyple after_type = m1.group(3).split(".") self.minor = after_type[0] if "X" == self.type: # assumes form similar to "45-D10", so extract the bits from this xm = re.match(r"(\d+)-(\w)(\d+)", self.minor) if xm is not None: self.minor = tuple([int(xm.group(1)), xm.group(2), int(xm.group(3))]) if len(after_type) < 2: self.build = None else: try: # handling case for EVO format X100-202310100600.0-EVO self.build = int(after_type[1]) except: self.build = None # X type not hyphen format, perhaps "11.4X12.1", just extract # build rev or set None else: if len(after_type) < 2: self.build = None else: try: # handling case for EVO format X50.17-EVO self.build = int(after_type[1]) except: self.build = None elif ("I" == self.type) or ("-" == self.type): self.type = "I" try: # assumes that we have a build/spin, but not numeric self.build = after_type[1] except: self.build = None else: try: self.build = int(after_type[1]) # assumes numeric build/spin except: self.build = after_type[0] # non-numeric self.as_tuple = self.major + tuple([self.type, self.minor, self.build]) self.v_dict = { "major": self.major, "type": self.type, "minor": self.minor, "build": self.build, } def __iter__(self): for key in self.v_dict: yield key, self.v_dict[key] def __repr__(self): retstr = ( "junos.version_info(major={major}, type={type}," " minor={minor}, build={build})".format( major=self.major, type=self.type, minor=self.minor, build=self.build ) ) return retstr def _cmp_tuple(self, other): length = len(self) if len(self) < len(other) else len(other) return self.as_tuple[0:length] def __len__(self): length = 0 for component in self.as_tuple: if component is None: return length else: length += 1 return length def __lt__(self, other): return self._cmp_tuple(other) < other def __le__(self, other): return self._cmp_tuple(other) <= other def __gt__(self, other): return self._cmp_tuple(other) > other def __ge__(self, other): return self._cmp_tuple(other) >= other def __eq__(self, other): return self._cmp_tuple(other) == other def __ne__(self, other): return self._cmp_tuple(other) != other def version_yaml_representer(dumper, version): return dumper.represent_mapping("tag:yaml.org,2002:map", version.v_dict) def provides_facts(): """ Doesn't really provide any facts. """ return {} def get_facts(device): """ Doesn't get any facts. """ return {} py-junos-eznc-2.7.3/lib/jnpr/junos/facts/vmhost.py000066400000000000000000000064241475361112400221250ustar00rootroot00000000000000from jnpr.junos.exception import RpcError import re from lxml import etree def _get_vmhost_version_information(device): multi_re = False try: rsp = device.rpc.get_route_engine_information(normalize=True) re_list = rsp.findall(".//route-engine") if len(re_list) > 1: multi_re = True else: multi_re = False except RpcError as err: raise RpcError() if multi_re == True: try: return device.rpc.cli( "show vmhost version invoke-on all-routing-engines", format="xml", normalize=True, ) except RpcError as err: raise RpcError() else: try: return device.rpc.cli("show vmhost version", format="xml", normalize=True) except RpcError as err: raise RpcError() def provides_facts(): """ Returns a dictionary keyed on the facts provided by this module. The value of each key is the doc string describing the fact. """ return { "vmhost": "A boolean indicating if the device is vmhost.", "vmhost_info": "A dictionary indicating vmhost RE partition JUNOS versions.", } def get_facts(device): """ Gathers facts from the sysctl command. """ SYSCTL_VMHOST_MODE = "sysctl -n hw.re.vmhost_mode" vmhost = None vmhost_info = {} vm_ver_rsp = None vmhost_current_root_set = None vmhost_set_junos_version_set_p = None vmhost_set_junos_version_set_b = None re_name = None if device.facts["_is_linux"]: vmhost = False else: try: rsp = device.rpc.request_shell_execute(command=SYSCTL_VMHOST_MODE) if rsp.tag == "rpc-error": raise RpcError() result = re.sub("<[^<]+>", "", etree.tostring(rsp).decode()) if result.strip() == "1": vmhost = True else: vmhost = False except RpcError: pass if vmhost: rsp = _get_vmhost_version_information(device) # PR 1510446 fix for show vmhost version rpc supports form 22.2R3 if device.facts["version"] >= "22.2R3": if rsp.tag == "vmhost-version-information": vm_ver_rsp = [rsp] else: vm_ver_rsp = rsp.findall(".//vmhost-version-information") for re_vm_ver_info in vm_ver_rsp: re_name = re_vm_ver_info.findtext("../re-name", "re0") vmhost_current_root_set = re_vm_ver_info.findtext("./current-root-set") vmhost_set_junos_version_set_p = re_vm_ver_info.findtext( "./set-disk-info[set-disk-name = 'set p']/set-junos-version" ) vmhost_set_junos_version_set_b = re_vm_ver_info.findtext( "./set-disk-info[set-disk-name = 'set b']/set-junos-version" ) vmhost_info[re_name] = { "vmhost_current_root_set": vmhost_current_root_set, "vmhost_version_set_p": vmhost_set_junos_version_set_p, "vmhost_version_set_b": vmhost_set_junos_version_set_b, } else: pass return { "vmhost": vmhost, "vmhost_info": vmhost_info, } py-junos-eznc-2.7.3/lib/jnpr/junos/jxml.py000066400000000000000000000162531475361112400204600ustar00rootroot00000000000000from ncclient import manager from ncclient.xml_ import NCElement from lxml import etree import six """ These are Junos XML 'helper' definitions use for generic XML processing .DEL to delete an item .REN to rename an item, requires the use of NAME() .INSERT(<'before'|'after'>) to reorder an item, requires the use of NAME() .BEFORE to reorder an item before another, requires the use of NAME() .AFTER to reorder an item after another, requires the use of NAME() .NAME(name) to assign the name attribute """ DEL = {"delete": "delete"} # Junos XML resource delete REN = {"rename": "rename"} # Junos XML resource rename ACTIVATE = {"active": "active"} # activate resource DEACTIVATE = {"inactive": "inactive"} # deactivate resource REPLACE = {"replace": "replace"} # replace elements def NAME(name): return {"name": name} def INSERT(cmd): return {"insert": cmd} BEFORE = {"insert": "before"} AFTER = {"insert": "after"} # used with to load only the object identifiers and # not all the subsequent configuration NAMES_ONLY = {"recurse": "false"} # for , attributes to retrieve from apply-groups INHERIT = {"inherit": "inherit"} INHERIT_GROUPS = {"inherit": "inherit", "groups": "groups"} INHERIT_DEFAULTS = {"inherit": "defaults", "groups": "groups"} # XSLT for on-box commit script conf_xslt = """\ """ conf_xslt_root = etree.XML(conf_xslt) conf_transform = etree.XSLT(conf_xslt_root) normalize_xslt = """\ """ # XSLT to strip comments strip_comments_xslt = """\ """ strip_xslt_root = etree.XML(strip_comments_xslt) strip_comments_transform = etree.XSLT(strip_xslt_root) # XSLT to strip elements strip_rpc_error_xslt = """ """ strip_rpc_error_root = etree.XML(strip_rpc_error_xslt) strip_rpc_error_transform = etree.XSLT(strip_rpc_error_root) def remove_namespaces(xml): for elem in xml.iter(): if elem.tag is etree.Comment: continue i = elem.tag.find("}") if i > 0: elem.tag = elem.tag[i + 1 :] return xml def remove_namespaces_and_spaces(xml): for elem in xml.iter(): if elem.tag is etree.Comment: continue # Remove namespace from attributes for k, v in elem.attrib.items(): i = k.find("}") if i >= 0: del elem.attrib[k] k = k[i + 1 :] elem.set(k, v) # Remove namespace from tags i = elem.tag.find("}") if i >= 0: elem.tag = elem.tag[i + 1 :] # remove white spaces from text if elem.text: elem.text = elem.text.strip() return xml def rpc_error(rpc_xml): """ extract the various bits from an element into a dictionary """ remove_namespaces(rpc_xml) if "rpc-reply" == rpc_xml.tag: rpc_xml = rpc_xml[0] def find_strip(x): ele = rpc_xml.find(x) return ele.text.strip() if ele is not None and ele.text is not None else None this_err = {} this_err["severity"] = find_strip("error-severity") this_err["source"] = find_strip("source-daemon") this_err["edit_path"] = find_strip("error-path") this_err["bad_element"] = find_strip("error-info/bad-element") this_err["message"] = find_strip("error-message") return this_err def cscript_conf(reply): try: device_params = {"name": "junos"} device_handler = manager.make_device_handler(device_params) transform_reply = device_handler.transform_reply() return NCElement(reply, transform_reply)._NCElement__doc except: return None # xslt to remove prefix like junos:ns strip_namespaces_prefix = six.b( """ """ ) py-junos-eznc-2.7.3/lib/jnpr/junos/ofacts/000077500000000000000000000000001475361112400204045ustar00rootroot00000000000000py-junos-eznc-2.7.3/lib/jnpr/junos/ofacts/__init__.py000066400000000000000000000014501475361112400225150ustar00rootroot00000000000000from jnpr.junos.ofacts.chassis import facts_chassis from jnpr.junos.ofacts.routing_engines import facts_routing_engines from jnpr.junos.ofacts.personality import facts_personality from jnpr.junos.ofacts.swver import facts_software_version from jnpr.junos.ofacts.ifd_style import facts_ifd_style from jnpr.junos.ofacts.switch_style import facts_switch_style from jnpr.junos.ofacts.session import facts_session from jnpr.junos.ofacts.srx_cluster import facts_srx_cluster from jnpr.junos.ofacts.domain import facts_domain FACT_LIST = [ facts_chassis, # first facts_routing_engines, # second facts_personality, # third facts_srx_cluster, # four facts_software_version, # fifth facts_domain, facts_ifd_style, facts_switch_style, facts_session, ] __all__ = ["FACT_LIST"] py-junos-eznc-2.7.3/lib/jnpr/junos/ofacts/chassis.py000066400000000000000000000034021475361112400224120ustar00rootroot00000000000000from jnpr.junos.exception import ConnectNotMasterError from jnpr.junos.exception import RpcError def facts_chassis(junos, facts): """ The following facts are assigned: facts['2RE'] : designates if the device can support two RE, not that it has them facts['RE_hw_mi'] : designates if the device is multi-instance-routing-engine facts['model'] : product model facts['serialnumber'] : serial number NOTES: (1) if in a 2RE system, this routine will only load the information from the first chassis item. (2) hostname, domain, and fqdn are retrieved from configuration data; inherited configs are checked. """ # Set default values. facts["2RE"] = False facts["RE_hw_mi"] = False facts["model"] = "UNKNOWN" facts["serialnumber"] = "UNKNOWN" rsp = junos.rpc.get_chassis_inventory() if rsp.tag == "error": raise RuntimeError() if rsp.tag == "output": # this means that there was an error; due to the # fact that this connection is not on the master # @@@ need to validate on VC-member raise ConnectNotMasterError(junos) if rsp.tag == "multi-routing-engine-results": facts["2RE"] = True facts["RE_hw_mi"] = True else: facts["2RE"] = False facts["model"] = rsp.findtext(".//chassis[1]/description", "UNKNOWN") facts["serialnumber"] = ( rsp.findtext(".//chassis[1]/serial-number") or rsp.findtext('.//chassis-module[name="Backplane"]/serial-number') or rsp.findtext('.//chassis-module[name="Midplane"]/serial-number', "UNKNOWN") ) if facts["model"] == "UNKNOWN" or facts["serialnumber"] == "UNKNOWN": raise RpcError() py-junos-eznc-2.7.3/lib/jnpr/junos/ofacts/domain.py000066400000000000000000000022541475361112400222300ustar00rootroot00000000000000from jnpr.junos.utils.fs import FS from jnpr.junos.exception import RpcError from jnpr.junos.jxml import INHERIT from lxml.builder import E def facts_domain(junos, facts): """ The following facts are required: facts['hostname'] The following facts are assigned: facts['domain'] facts['fqdn'] """ try: domain_filter_xml = E("configuration", E("system", E("domain-name"))) domain = junos.rpc.get_config(filter_xml=domain_filter_xml, options=INHERIT) domain_name = domain.xpath(".//domain-name") if len(domain_name) > 0: facts["domain"] = domain_name[0].text facts["fqdn"] = facts["hostname"] + "." + facts["domain"] return except RpcError: pass fs = FS(junos) file_content = fs.cat("/etc/resolv.conf") or fs.cat("/var/etc/resolv.conf") words = file_content.split() if file_content is not None else "" if "domain" not in words: facts["domain"] = None facts["fqdn"] = facts["hostname"] else: idx = words.index("domain") + 1 facts["domain"] = words[idx] facts["fqdn"] = facts["hostname"] + "." + facts["domain"] py-junos-eznc-2.7.3/lib/jnpr/junos/ofacts/ifd_style.py000066400000000000000000000002711475361112400227400ustar00rootroot00000000000000def facts_ifd_style(junos, facts): persona = facts["personality"] if persona == "SWITCH": facts["ifd_style"] = "SWITCH" else: facts["ifd_style"] = "CLASSIC" py-junos-eznc-2.7.3/lib/jnpr/junos/ofacts/personality.py000066400000000000000000000024471475361112400233360ustar00rootroot00000000000000import re def facts_personality(junos, facts): model = facts["model"] if model != "Virtual Chassis": examine = model else: for fact in facts: if re.match(r"^RE\d", fact): examine = facts[fact]["model"] break examine = examine.upper() if re.match("^(EX)|(QFX)", examine): persona = "SWITCH" elif examine.startswith("MX"): persona = "MX" elif examine.startswith("VMX"): facts["virtual"] = True persona = "MX" elif examine.startswith("VJX"): facts["virtual"] = True persona = "SRX_BRANCH" elif "VRR" == examine: persona = "MX" facts["virtual"] = True elif examine.startswith("M"): persona = "M" elif examine.startswith("T"): persona = "T" elif examine.startswith("PTX"): persona = "PTX" elif re.match(r"SRX\s?(\d){4}", examine): persona = "SRX_HIGHEND" elif re.match(r"SRX\s?(\d){3}", examine): persona = "SRX_BRANCH" elif re.search("firefly", examine, re.IGNORECASE): facts["virtual"] = True persona = "SRX_BRANCH" elif "OLIVE" == examine: facts["virtual"] = True persona = "OLIVE" else: persona = "UNKNOWN" facts["personality"] = persona py-junos-eznc-2.7.3/lib/jnpr/junos/ofacts/routing_engines.py000066400000000000000000000055471475361112400241700ustar00rootroot00000000000000import re as RE def _get_vc_status(dev, facts): try: rsp = dev.rpc.get_virtual_chassis_information() # MX issue where command returns, but without content if rsp is not True: facts["vc_capable"] = True return rsp else: facts["vc_capable"] = False return None except: facts["vc_capable"] = False return None def facts_routing_engines(junos, facts): re_facts = ["mastership-state", "status", "model", "up-time", "last-reboot-reason"] master = [] vc_info = _get_vc_status(junos, facts) if vc_info is not None: facts["vc_mode"] = vc_info.findtext(".//virtual-chassis-mode") if ( len(vc_info.xpath(".//virtual-chassis-id-information" "[@style='fabric']")) > 0 ): facts["vc_fabric"] = True vc_list = vc_info.xpath( ".//member-role[starts-with(.,'Master') " "or starts-with(.,'Backup')]" ) if len(vc_list) > 1: facts["2RE"] = True for member_id in vc_info.xpath( ".//member-role[starts-with(.,'Master')]" "/preceding-sibling::member-id" ): master.append("RE{}".format(member_id.text)) try: re_info = junos.rpc.get_route_engine_information() except: # this means that the RPC failed. this should "never" # happen, but we will trap it cleanly for now return re_list = re_info.xpath(".//route-engine") if len(re_list) > 1: facts["2RE"] = True for re in re_list: x_re_name = re.xpath("ancestor::multi-routing-engine-item/re-name") if not x_re_name: # not a multi-instance routing engine platform, but could # have multiple RE slots re_name = "RE" x_slot = re.find("slot") slot_id = x_slot.text if x_slot is not None else "0" re_name = re_name + slot_id else: # multi-instance routing platform m = RE.search(r"(\d)", x_re_name[0].text) if vc_info is not None: # => RE0-RE0 | RE0-RE1 re_name = "RE{}-RE{}".format(m.group(0), re.find("slot").text) else: re_name = "RE" + m.group(0) # => RE0 | RE1 re_fd = {} facts[re_name] = re_fd for factoid in re_facts: x_f = re.find(factoid) if x_f is not None: re_fd[factoid.replace("-", "_")] = x_f.text if vc_info is None and "mastership_state" in re_fd: if facts[re_name]["mastership_state"] == "master": master.append(re_name) # --[ end for-each 're' ]------------------------------------------------- len_master = len(master) if len_master > 1: facts["master"] = master elif len_master == 1: facts["master"] = master[0] py-junos-eznc-2.7.3/lib/jnpr/junos/ofacts/session.py000066400000000000000000000003251475361112400224410ustar00rootroot00000000000000""" facts['HOME'] = login home directory """ from lxml.builder import E def facts_session(dev, facts): facts["HOME"] = dev.rpc(E.command("show cli directory")).findtext( "./working-directory" ) py-junos-eznc-2.7.3/lib/jnpr/junos/ofacts/srx_cluster.py000066400000000000000000000017371475361112400233430ustar00rootroot00000000000000def facts_srx_cluster(junos, facts): # we should check the 'cluster status' on redundancy group 0 to see who is # master. we use a try/except block for cases when SRX is not clustered try: cluster_st = junos.rpc.get_chassis_cluster_status(redundancy_group="0") if "error" == cluster_st.tag: facts["srx_cluster"] = False return primary = cluster_st.xpath('.//redundancy-group-status[.="primary"]')[0] node = primary.xpath("preceding-sibling::device-name[1]")[0].text.replace( "node", "RE" ) if not facts.get("master"): facts["master"] = node elif node not in facts["master"]: facts["master"].append(node) facts["srx_cluster"] = True except: # this device doesn't support SRX chassis clustering; i.e. # since we arbitrarily execute the RPC on all devices, if we # hit this exception we just ignore, A-OK, yo! pass py-junos-eznc-2.7.3/lib/jnpr/junos/ofacts/switch_style.py000066400000000000000000000007711475361112400235040ustar00rootroot00000000000000import re def facts_switch_style(junos, facts): persona = facts["personality"] if persona in ["MX", "SRX_HIGHEND"]: style = "BRIDGE_DOMAIN" elif persona in ["SWITCH", "SRX_BRANCH"]: model = facts["model"] if re.match("firefly", model, re.IGNORECASE): style = "NONE" elif re.match("^(EX9)|(EX43)", model): style = "VLAN_L2NG" else: style = "VLAN" else: style = "NONE" facts["switch_style"] = style py-junos-eznc-2.7.3/lib/jnpr/junos/ofacts/swver.py000066400000000000000000000107451475361112400221330ustar00rootroot00000000000000import re from jnpr.junos.facts.swver import version_info def _get_swver(dev, facts): # See if we're VC Capable if facts["vc_capable"] is True: try: return dev.rpc.cli("show version all-members", format="xml") except: pass try: return dev.rpc.cli("show version invoke-on all-routing-engines", format="xml") except: return dev.rpc.get_software_information() def facts_software_version(junos, facts): """ The following facts are required: facts['master'] The following facts are assigned: facts['hostname'] facts['version'] facts['version_'] for each RE in dual-RE, cluster or VC system facts['version_info'] for master RE """ x_swver = _get_swver(junos, facts) if not facts.get("model"): # try to extract the model from the version information facts["model"] = x_swver.findtext(".//product-model") # ------------------------------------------------------------------------ # extract the version information out of the RPC response # ------------------------------------------------------------------------ f_master = facts.get("master", "RE0") if x_swver.tag == "multi-routing-engine-results": # we need to find/identify each of the routing-engine (CPU) versions. if len(x_swver.xpath("./multi-routing-engine-item")) > 1: facts["2RE"] = True versions = [] if isinstance(f_master, list): xpath = ( './multi-routing-engine-item[re-name="{}"]/software-' "information/host-name".format(f_master[0].lower()) ) else: xpath = ( './multi-routing-engine-item[re-name="{}"' "]/software-information/host-name".format(f_master.lower()) ) facts["hostname"] = x_swver.findtext(xpath) if facts["hostname"] is None: # then there the re-name is not what we are expecting; we should # handle this better, eh? For now, just assume there is one # software-information element and take that host-name. @@@ hack. facts["hostname"] = x_swver.findtext(".//software-information/host-name") for re_sw in x_swver.xpath(".//software-information"): re_name = re_sw.xpath("preceding-sibling::re-name")[0].text # handle the cases where the "RE name" could be things like # "FPC" or "ndoe", and normalize to "RE". re_name = re.sub(r"(\w+)(\d+)", "RE\\2", re_name) # First try the tag present in >= 15.1 swinfo = re_sw.findtext("junos-version", default=None) if not swinfo: # For < 15.1, get version from the "junos" package. pkginfo = re_sw.xpath( "package-information[normalize-space(name)=" '"junos"]/comment' )[0].text try: swinfo = re.findall(r"\[(.*)\]", pkginfo)[0] except: swinfo = "0.0I0.0" versions.append((re_name.upper(), swinfo)) # now add the versions to the facts for re_ver in versions: facts["version_" + re_ver[0]] = re_ver[1] if f_master is not None: master = f_master[0] if isinstance(f_master, list) else f_master if "version_" + master in facts: facts["version"] = facts["version_" + master] else: facts["version"] = versions[0][1] else: facts["version"] = versions[0][1] else: # single-RE facts["hostname"] = x_swver.findtext("host-name") # First try the tag present in >= 15.1 swinfo = x_swver.findtext(".//junos-version", default=None) if not swinfo: # For < 15.1, get version from the "junos" package. pkginfo = x_swver.xpath( './/package-information[normalize-space(name)="junos"]/comment' )[0].text try: swinfo = re.findall(r"\[(.*)\]", pkginfo)[0] except: swinfo = "0.0I0.0" facts["version"] = swinfo # ------------------------------------------------------------------------ # create a 'version_info' object based on the master version # ------------------------------------------------------------------------ facts["version_info"] = version_info(facts["version"]) py-junos-eznc-2.7.3/lib/jnpr/junos/op/000077500000000000000000000000001475361112400175435ustar00rootroot00000000000000py-junos-eznc-2.7.3/lib/jnpr/junos/op/__init__.py000066400000000000000000000026041475361112400216560ustar00rootroot00000000000000import sys import os import yaml from importlib.abc import Loader, MetaPathFinder from importlib.util import spec_from_loader from jnpr.junos.factory.factory_loader import FactoryLoader __all__ = [] class OPMetaPathFinder(MetaPathFinder): def find_spec(self, fullname, path=None, target=None): if fullname.startswith("jnpr.junos"): mod = fullname.split(".")[-1] if mod in [ os.path.splitext(i)[0] for i in os.listdir(os.path.dirname(__file__)) ]: return spec_from_loader(fullname, OPMetaPathLoader(fullname)) class OPMetaPathLoader(Loader): def __init__(self, fullname): self.fullname = fullname self.modules = {} def exec_module(self, module): if self.fullname in self.modules: return self.modules[self.fullname] mod = self.fullname.split(".")[-1] with open(os.path.join(os.path.dirname(__file__), mod + ".yml"), "r") as stream: try: modules = FactoryLoader().load( yaml.load(stream, Loader=yaml.FullLoader) ) except yaml.YAMLError as exc: raise ImportError("%s is not loaded" % mod) for k, v in modules.items(): setattr(module, k, v) self.modules[self.fullname] = module return module sys.meta_path.insert(0, OPMetaPathFinder()) py-junos-eznc-2.7.3/lib/jnpr/junos/op/arp.yml000066400000000000000000000003671475361112400210560ustar00rootroot00000000000000--- ArpTable: rpc: get-arp-table-information args: no-resolve: True item: arp-table-entry key: mac-address view: ArpView ArpView: fields: mac_address: mac-address ip_address: ip-address interface_name: interface-name py-junos-eznc-2.7.3/lib/jnpr/junos/op/bfd.yml000066400000000000000000000033501475361112400210220ustar00rootroot00000000000000BfdSessionTable: rpc: get-bfd-session-information args: extensive: True item: bfd-session key: session-neighbor view: BfdSessionView BfdSessionView: fields: neighbor: session-neighbor state: session-state interface: session-interface detection_time: session-detection-time transmission_interval: session-transmission-interval adaptive_multiplier: session-adaptive-multiplier local_diagnostic: local-diagnostic remote_diagnostic: remote-diagnostic version: session-version remote_state: remote-state minimum_asynchronous_interval: minimum-asynchronous-interval minimum_slow_interval: minimum-slow-interval adaptive_asynchronous_transmission_interval: adaptive-asynchronous-transmission_interval adaptive_reception_interval: adaptive-reception-interval minimum_transmission_interval: minimum-transmission-interval minimum_reception_interval: minimum-reception-interval detection_multiplier: detection-multiplier neighbor_minimum_transmission_interval: neighbor-minimum-transmission_interval neighbor_minimum_reception_interval: neighbor-minimum-reception_interval neighbor_session_multiplier: neighbor-session-multiplier local_discriminator: local-discriminator remote_discriminator: remote-discriminator echo_mode_desired: echo-mode-desired echo_mode_state: echo-mode-state no_absorb: { no-absorb: True=regex(no-absorb) } no_refresh: { no-refresh: True=no-refresh } bfd_client: _BfdSessionClientTable _BfdSessionClientTable: item: bfd-client view: _BfdSessionClientView _BfdSessionClientView: fields: client_name: client-name transmission_interval: client-transmission-interval reception_interval: client-reception-interval py-junos-eznc-2.7.3/lib/jnpr/junos/op/bgp.yml000066400000000000000000000004201475361112400210320ustar00rootroot00000000000000--- bgpTable: rpc: get-bgp-neighbor-information item: bgp-peer view: bgpView key: peer-id bgpView: fields: local_as: local-as peer_as: peer-as local_address: local-address peer_id: peer-id local_id: local-id route_received: bgp-rib/received-prefix-count py-junos-eznc-2.7.3/lib/jnpr/junos/op/ccc.yml000066400000000000000000000006371475361112400210240ustar00rootroot00000000000000--- CCCTable: rpc: get-ccc-information args: status: True interface-switch: True item: ccc-connection key: ccc-connection-name view: CCCView CCCView: fields: status: ccc-connection-status ports: _CCCPorts _CCCPorts: item: ccc-connection-circuit key: - ccc-circuit-name view: _CCCPortsView _CCCPortsView: fields: type: ccc-circuit-type status: ccc-circuit-status py-junos-eznc-2.7.3/lib/jnpr/junos/op/ddos.yml000066400000000000000000000004641475361112400212230ustar00rootroot00000000000000--- DDOSTable: rpc: get-ddos-statistics-information item: . key: ddos-policing-re-enabled view: DDOSView DDOSView: fields: policing_on_re: ddos-policing-re-enabled policing_on_fpc: ddos-policing-fpc-enabled flow_detection: ddos-flow-detection-enabled logging: ddos-logging-enabled py-junos-eznc-2.7.3/lib/jnpr/junos/op/elsethernetswitchingtable.yml000066400000000000000000000014471475361112400255460ustar00rootroot00000000000000--- ElsEthernetSwitchingTable: rpc: get-ethernet-switching-table-information args: detail: True item: l2ng-l2ald-mac-entry-vlan key: l2ng-l2-mac-address view: ElsEthernetSwitchingView ElsEthernetSwitchingView: fields: mac_address: l2ng-l2-mac-address count: mac-count-global learnt: learnt-mac-count routing_instance: l2ng-l2-mac-routing-instance vlan_id: l2ng-l2-vlan-id vlan_name: l2ng-l2-mac-vlan-name logical_interface: l2ng-l2-mac-logical-interface active_source: l2ng-l2-active-source ifl_generation: l2ng-l2-mac-ifl-generation flags: l2ng-l2-mac-entry-flags epoch: l2ng-l2-mac-epoch sequence_number: l2ng-l2-mac-sequence-number learn_mask: l2ng-l2-mac-learn-mask py-junos-eznc-2.7.3/lib/jnpr/junos/op/ethernetswitchingtable.yml000066400000000000000000000017661475361112400250460ustar00rootroot00000000000000--- EthernetSwitchingTable: rpc: get-ethernet-switching-table-information args: detail: True key: mac-table-count item: ethernet-switching-table view: EthernetSwitchingView EthernetSwitchingView: fields: count: mac-table-count learned: mac-table-learned persistent: mac-table-persistent entries: _MacTableEntriesTable _MacTableEntriesTable: item: mac-table-entry key: mac-vlan view: _MacTableEntriesView _MacTableEntriesView: fields: vlan: mac-vlan vlan_tag: mac-vlan-tag mac_address: mac-address type: mac-type age: mac-age learned_time: mac-learned-time action: mac-action next_hop: mac-nexthop interface: mac-interface interface-list: _MacTableInterfacesTable _MacTableInterfacesTable: item: mac-interfaces-list key: mac-interfaces view: _MacTableInterfacesView _MacTableInterfacesView: fields: interfaces: mac-interfaces py-junos-eznc-2.7.3/lib/jnpr/junos/op/ethport.yml000066400000000000000000000012341475361112400217530ustar00rootroot00000000000000--- EthPortTable: rpc: get-interface-information args: media: True interface_name: '[afgxe][et]-*' args_key: interface_name item: physical-interface view: EthPortView EthPortView: groups: mac_stats: ethernet-mac-statistics flags: if-device-flags fields: oper: oper-status admin: admin-status description: description mtu: { mtu : int } link_mode: link-mode macaddr: current-physical-address fields_mac_stats: rx_bytes: input-bytes rx_packets: input-packets tx_bytes: output-bytes tx_packets: output-packets fields_flags: running: { ifdf-running: flag } present: { ifdf-present: flag } py-junos-eznc-2.7.3/lib/jnpr/junos/op/fpc.yml000066400000000000000000000034321475361112400210400ustar00rootroot00000000000000--- # ------------------------------------------------------------------- # Table # ------------------------------------------------------------------- # retrieve the chassis hardware (inventory) and extract the FPC # items. # ------------------------------------------------------------------- FpcHwTable: rpc: get-chassis-inventory item: .//name[starts-with(.,'FPC')]/parent::* view: _fpc_hw_view FpcMiReHwTable: rpc: get-chassis-inventory item: .//name[starts-with(.,'FPC')]/parent::* key: - ancestor::multi-routing-engine-item/re-name - name view: _fpc_hw_view # ------------------------------------------------------------------- # View # ------------------------------------------------------------------- # use the underscore (_) so this definition is not # imported into the glboal namespace. We want to extract various # bits of information from the FPC items # ------------------------------------------------------------------- _fpc_hw_view: fields: sn: serial-number pn: part-number desc: description ver: version model: model-number # ------------------------------------------------------------------- # Table # ------------------------------------------------------------------- # retrieve the FPC status information; corresponds to: # > show chassis fpc # ------------------------------------------------------------------- FpcInfoTable: rpc: get-fpc-information item: .//fpc key: slot view: _fpc_info_view FpcMiReInfoTable: rpc: get-fpc-information item: .//fpc key: - ancestor::multi-routing-engine-item/re-name - slot view: _fpc_info_view _fpc_info_view: fields: state: state memory: memory-heap-utilization cpu: cpu-total py-junos-eznc-2.7.3/lib/jnpr/junos/op/idpattacks.yml000066400000000000000000000002751475361112400224210ustar00rootroot00000000000000--- IDPAttackTable: rpc: get-idp-attack-table-information item: idp-attack-statistics key: name view: IDPAttackView IDPAttackView: fields: attack_name: name count: value py-junos-eznc-2.7.3/lib/jnpr/junos/op/intopticdiag.yml000066400000000000000000000010061475361112400227410ustar00rootroot00000000000000--- PhyPortDiagTable: rpc: get-interface-optics-diagnostics-information args: interface_name: '[efgx][et]-*' args_key: interface_name item: physical-interface view: PhyPortDiagView PhyPortDiagView: groups: diag: optics-diagnostics # fields that are part of groups are called # "fields_" fields_diag: rx_optic_power : rx-signal-avg-optical-power-dbm tx_optic_power : laser-output-power-dbm module_temperature : module-temperature module_voltage : module-voltage py-junos-eznc-2.7.3/lib/jnpr/junos/op/inventory.yml000066400000000000000000000004411475361112400223220ustar00rootroot00000000000000--- ModuleTable: rpc: get-chassis-inventory item: .//chassis-sub-module|.//chassis-module|.//chassis-sub-sub-module key: - name view: ModuleTableView ModuleTableView: fields: jname: name sn: serial-number pn: part-number ver: version type: description py-junos-eznc-2.7.3/lib/jnpr/junos/op/isis.yml000066400000000000000000000016451475361112400212430ustar00rootroot00000000000000IsisAdjacencyTable: rpc: get-isis-adjacency-information args: extensive: True item: isis-adjacency key: - interface-name - system-name view: IsisAdjacencyView IsisAdjacencyView: fields: interface_name: interface-name system_name: system-name level: level adjacency_state: adjacency-state holdtime: holdtime circuit_type: circuit-type ip_address: ip-address interface_priority: interface-priority adjacency_flag: adjacency-flag adjacency_topologies: adjacency-topologies adjacency_restart_capable: adjacency-restart-capable adjacency_advertisement: adjacency-advertisement adjacency_log: _IsisAdjacencyLogTable _IsisAdjacencyLogTable: item: isis-adjacency-log key: - adjacency-when - adjacency-state view: _IsisAdjacencyLogView _IsisAdjacencyLogView: fields: when: adjacency-when state: adjacency-state event: adjacency-event py-junos-eznc-2.7.3/lib/jnpr/junos/op/l2circuit.yml000066400000000000000000000016221475361112400221670ustar00rootroot00000000000000--- ### ------------------------------------------------------ ### show l2circuit connections ### ------------------------------------------------------ L2CircuitConnectionTable: rpc: get-l2ckt-connection-information item: l2circuit-neighbor/connection key: - ancestor::l2circuit-neighbor/neighbor-address - connection-id view: L2CircuitConnectionView L2CircuitConnectionView: fields: connection_id: connection-id connection_type: connection-type connection_status: connection-status remote_pe: remote-pe control_word: control-word inboud_label: inbound-label outbound_label: outbound-label pw_status_tlv: pw-status-tlv local_interface: local-interface/interface-name interface_status: local-interface/interface-status interface_encapsulation: local-interface/interface-encapsulation interface_description: local-interface/interface-description py-junos-eznc-2.7.3/lib/jnpr/junos/op/lacp.yml000066400000000000000000000034011475361112400212030ustar00rootroot00000000000000--- # ----------------------------------------------------------------------------- # LACP ports are aggregating-ethernet interfaces, e.g. 'ae0' # ----------------------------------------------------------------------------- LacpPortTable: rpc: get-lacp-interface-information args_key: interface_name item: lacp-interface-information key: lag-lacp-header/aggregate-name view: LacpPortView # the view provides access to two tables states and protocols LacpPortView: fields: state: _LacpPortStateTable proto: _LacpPortProtoTable # ----------------------------------------------------------------------------- # Each LACP port maintains a "state" table that ha a composite key of the # interface name and it's role (Actor/Partner). name with the "_" so this # item does not get exported to the global namespace # ----------------------------------------------------------------------------- _LacpPortStateTable: item: lag-lacp-state key: - name - lacp-role view: _LacpPortStateView _LacpPortStateView: fields: activity: lacp-activity timeout: lacp-timeout expired: { lacp-expired: True=Yes } defaulted: { lacp-defaulted: True=Yes } distributing: { lacp-distributing: True=Yes } collecting: { lacp-collecting: True=Yes } sync : { lacp-synchronization: True=Yes } aggregation: { lacp-aggregation: True=Yes } # ----------------------------------------------------------------------------- # Each LACP port maintains a "protocol" table # ----------------------------------------------------------------------------- _LacpPortProtoTable: item: lag-lacp-protocol view: _LacpPortProtoView _LacpPortProtoView: fields: rx_state: lacp-receive-state tx_state: lacp-transmit-state mx_state: lacp-mux-state py-junos-eznc-2.7.3/lib/jnpr/junos/op/ldp.yml000066400000000000000000000021771475361112400210540ustar00rootroot00000000000000--- LdpNeighborTable: rpc: get-ldp-neighbor-information args: extensive: True item: ldp-neighbor key: - interface-name - ldp-neighbor-address view: LdpNeighborView LdpNeighborView: fields: interface_name: interface-name neighbor_address: ldp-neighbor-address label_space_id: ldp-label-space-id remaining_time: ldp-remaining-time transport_address: ldp-transport-address config_sequence: ldp-config-sequence up_time: ldp-up-time reference_count: ldp-reference-count holdtime: ldp-holdtime proposed_local_holdtime: ldp-proposed-local-holdtime proposed_peer_holdtime: ldp-proposed-peer-holdtime hello_interval: ldp-hello-interval hello_flags: _LdpNeighborHelloFlagsTable types: _LdpNeighborTypesTable _LdpNeighborHelloFlagsTable: item: ldp-neighbor-hello-flags key: ldp-neighbor-hello-flag view: _LdpNeighborHelloFlagsView _LdpNeighborHelloFlagsView: fields: flag: ldp-neighbor-hello-flag _LdpNeighborTypesTable: item: ldp-neighbor-types key: ldp-neighbor-type view: _LdpNeighborTypesView _LdpNeighborTypesView: fields: type: ldp-neighbor-type py-junos-eznc-2.7.3/lib/jnpr/junos/op/lldp.yml000066400000000000000000000010271475361112400212210ustar00rootroot00000000000000--- LLDPNeighborTable: rpc: get-lldp-neighbors-information item: lldp-neighbor-information key: lldp-local-interface | lldp-local-port-id view: LLDPNeighborView LLDPNeighborView: fields: local_int: lldp-local-interface | lldp-local-port-id local_parent: lldp-local-parent-interface-name remote_type: lldp-remote-chassis-id-subtype remote_chassis_id: lldp-remote-chassis-id remote_port_desc: lldp-remote-port-description remote_port_id: lldp-remote-port-id remote_sysname: lldp-remote-system-name py-junos-eznc-2.7.3/lib/jnpr/junos/op/nd.yml000066400000000000000000000004451475361112400206720ustar00rootroot00000000000000--- NdTable: rpc: get-ipv6-nd-information item: ipv6-nd-entry key: ipv6-nd-neighbor-l2-address view: NdView NdView: fields: mac_address: ipv6-nd-neighbor-l2-address ip_address: ipv6-nd-neighbor-address interface_name: ipv6-nd-interface-name router: ipv6-nd-isrouter py-junos-eznc-2.7.3/lib/jnpr/junos/op/ospf.yml000066400000000000000000000036121475361112400212370ustar00rootroot00000000000000OspfNeighborTable: rpc: get-ospf-neighbor-information args: extensive: True item: ospf-neighbor key: - interface-name - neighbor-id view: OspfNeighborView OspfNeighborView: fields: neighbor_address: neighbor-address interface_name: interface-name ospf_neighbor_state: ospf-neighbor-state neighbor_id: neighbor-id activity_timer: activity-timer ospf_area: ospf-area dr_address: dr-address bdr_address: bdr-address neighbor_up_time: neighbor-up-time neighbor_adjacency_time: neighbor-adjacency-time OspfInterfaceTable: rpc: get-ospf-interface-information item: ospf-interface key: interface-name view: OspfInterfaceView OspfInterfaceView: fields: interface_name: interface-name ospf_interface_state: ospf-interface-state neighbor_count: neighbor-count ospfTable: rpc: get-ospf-overview-information item: ospf-overview key: ospf-area-overview/ospf-area view: ospfView ospfView: fields: router_id: ospf-router-id area: ospf-area-overview/ospf-area neighbors: ospf-area-overview/ospf-nbr-up-count OspfRoutesTable: rpc: get-ospf-route-information item: ospf-topology-route-table/ospf-route key: ospf-route-entry/address-prefix view: OspfRoutesView OspfRoutesView: fields: prefix: ospf-route-entry/address-prefix interface: ospf-route-entry/ospf-next-hop/next-hop-name/interface-name OSPFStatsTable: rpc: get-ospf-statistics-information item: ospf-statistics/packet-statistics key: ospf-packet-type view: OSPFStatsView OSPFStatsView: fields: packets_sent: packets-sent packets_received: packets-received packets_sent_5seconds: packets-sent-5seconds OSPFIOStatsTable: rpc: get-ospf-io-statistics-information item: ospf-io-statistics key: packets-read view: OSPFIOStatsView OSPFIOStatsView: fields: packets_read: packets-read average_per_run: average-per-run max_run: max-runpy-junos-eznc-2.7.3/lib/jnpr/junos/op/pfestats.yml000066400000000000000000000014441475361112400221220ustar00rootroot00000000000000PFEStatsTrafficTable: rpc: get-pfe-statistics item: pfe-traffic-statistics key: pfe-input-packets view: PFEStatsTrafficView PFEStatsTrafficView: fields: input_packets: pfe-input-packets output_packets: pfe-output-packets local_traffic: _PFEStatsLocalTrafficTable local_protocol: _PFEStatsLocalProtocolTable _PFEStatsLocalTrafficTable: item: ../pfe-local-traffic-statistics key: pfe-input-packets view: _PFEStatsLocalTrafficView _PFEStatsLocalTrafficView: fields: input_packets: pfe-input-packets output_packets: pfe-output-packets _PFEStatsLocalProtocolTable: item: ../pfe-local-protocol-statistics key: ospf-hello-count view: _PFEStatsLocalProtocolView _PFEStatsLocalProtocolView: fields: hello_count: ospf-hello-count arp_count: arp-count py-junos-eznc-2.7.3/lib/jnpr/junos/op/phyport.yml000066400000000000000000000053641475361112400220030ustar00rootroot00000000000000--- PhyPortTable: rpc: get-interface-information args: interface_name: '[efgx][et]-*' args_key: interface_name item: physical-interface view: PhyPortView PhyPortView: fields: oper : oper-status admin : admin-status description: description mtu: { mtu : int } link_mode: link-mode speed: speed macaddr: current-physical-address flapped: interface-flapped ### --------------------------------------------------------------------------- ### get extensive information ### --------------------------------------------------------------------------- PhyPortStatsTable: rpc: get-interface-information args: extensive: True interface_name: '[efgx][et]-*' args_key: interface_name item: physical-interface view: PhyPortStatsView PhyPortStatsView: groups: ts: traffic-statistics rxerrs: input-error-list # fields that are part of groups are called # "fields_" fields_ts: rx_bytes: { input-bytes: int } rx_packets: { input-packets: int } rx_bps: { input-bps: int } rx_pps: { input-pps: int } tx_bytes: { output-bytes: int } tx_packets: { output-packets: int } tx_bps: { output-bps: int } tx_pps: { output-pps: int } fields_rxerrs: rx_err_input: { input-errors: int } rx_err_drops: { input-drops: int } PhyPortErrorTable: rpc: get-interface-information args: extensive: True interface_name: '[efgx][et]-*' args_key: interface_name item: physical-interface view: PhyPortErrorView PhyPortErrorView: groups: ts: traffic-statistics rxerrs: input-error-list txerrs: output-error-list # fields that are part of groups are called # "fields_" fields_ts: rx_bytes: { input-bytes: int } rx_packets: { input-packets: int } tx_bytes: { output-bytes: int } tx_packets: { output-packets: int } fields_rxerrs: rx_err_input: { input-errors: int } rx_err_drops: { input-drops: int } rx_err_frame: { framing-errors: int } rx_err_runts: { input-runts: int } rx_err_discards: { input-discards: int } rx_err_l3-incompletes: { input-l3-incompletes: int } rx_err_l2-channel: { input-l2-channel-errors: int } rx_err_l2-mismatch: { input-l2-mismatch-timeouts: int } rx_err_fifo: { input-fifo-errors: int } rx_err_resource: { input-resource-errors: int } fields_txerrs: tx_err_carrier-transitions: { carrier-transitions: int } tx_err_output: { output-errors: int } tx_err_collisions: { output-collisions: int } tx_err_drops: { output-drops: int } tx_err_aged: { aged-packets: int } tx_err_mtu: { mtu-errors: int } tx_err_hs-crc: { hs-link-crc-errors: int } tx_err_fifo: { output-fifo-errors: int } tx_err_resource: { output-resource-errors: int } py-junos-eznc-2.7.3/lib/jnpr/junos/op/ppm.yml000066400000000000000000000005561475361112400210700ustar00rootroot00000000000000--- PPMTable: rpc: get-ppm-adjacencies args: level: detail item: adjacency-data key: protocol view: PPMView PPMView: fields: protocol: protocol holdtime: adjacency-holdtime interface_index: adjacency-interface-index distributed: adjacency-distributed ospf_src_key: adjacency-ospf-src-key ospf_area_id: adjacency-ospf-area-id py-junos-eznc-2.7.3/lib/jnpr/junos/op/routes.yml000066400000000000000000000022601475361112400216070ustar00rootroot00000000000000--- ### ------------------------------------------------------ ### show route ### ------------------------------------------------------ RouteTable: rpc: get-route-information args_key: destination item: route-table/rt key: rt-destination view: RouteTableView RouteTableView: groups: entry: rt-entry fields_entry: # fields taken from the group 'entry' protocol: protocol-name via: nh/via | nh/nh-local-interface age: { age/@seconds : int } nexthop: nh/to ### ------------------------------------------------------ ### show route summary ### ------------------------------------------------------ RouteSummaryTable: rpc: get-route-summary-information item: route-table key: table-name view: RouteSummaryView RouteSummaryView: fields: dests: { destination-count : int } total: { total-route-count : int } active: { active-route-count : int } holddown: { holddown-route-count : int } hidden: { hidden-route-count : int } proto: _rspTable _rspTable: item: protocols key: protocol-name view: _rspView _rspView: fields: count: { protocol-route-count: int } active: { active-route-count : int } py-junos-eznc-2.7.3/lib/jnpr/junos/op/securityzone.yml000066400000000000000000000010271475361112400230310ustar00rootroot00000000000000--- SecurityZoneTable: rpc: get-zones-information item: //zones-security key: zones-security-zonename view: SecurityZoneView SecurityZoneView: fields: tcp_rst: { zones-security-send-reset : True=On } policy_configurable: { zones-security-policy-configurable : True=Yes } interface_count: { zones-security-interfaces-bound : int } interfaces: _szInterfaceTable _szInterfaceTable: item: zones-security-interfaces view: _szInterfaceView _szInterfaceView: fields: name: zones-security-interface-name py-junos-eznc-2.7.3/lib/jnpr/junos/op/systemstorage.yml000066400000000000000000000011401475361112400231730ustar00rootroot00000000000000 --- SystemStorageTable: rpc: get-system-storage key: re-name | Null item: //multi-routing-engine-item | //rpc-reply/system-storage-information view: SystemStorageView SystemStorageView: fields: re-name: re-name filesystems: _FsTable _FsTable: item: system-storage-information/filesystem | //rpc-reply/system-storage-information/filesystem key: filesystem-name view: _FsView _FsView: fields: name: filesystem-name total_blocks: total-blocks used_blocks: used-blocks available_blocks: available-blocks used_percent: used-percent mounted_on: mounted-on py-junos-eznc-2.7.3/lib/jnpr/junos/op/taskmemory.yml000066400000000000000000000006551475361112400224670ustar00rootroot00000000000000--- TaskMemoryTable: rpc: get-task-memory-information args: level: detail item: task-memory-overall-report/task-size-block-list/task-size-block key: tsb-size view: TaskMemoryView TaskMemoryView: fields: size: {tsb-size: int} alloc_bytes: {tsb-alloc-bytes: int} allocs: {tsb-allocs: int} max_allocs: {tsb-max-allocs: int} max_bytes: {tsb-max-bytes: int} free_bytes: {tsb-free-bytes: int} py-junos-eznc-2.7.3/lib/jnpr/junos/op/teddb.yml000066400000000000000000000032231475361112400213500ustar00rootroot00000000000000### ------------------------------------------------------ #### show ted database #### ------------------------------------------------------ TedTable: rpc: get-ted-database-information args: extensive: True item: ted-database key: ted-database-id view: TedView TedView: fields: type: ted-database-type age: { ted-database-age : int } link-in: { ted-database-link-in : int } link-out: { ted-database-link-out : int } protocol: ted-database-protocol srgb-base: { ted-spring-capability/ted-spring-srgb-block/ted-spring-srgb-block-start : int } srgb-range: { ted-spring-capability/ted-spring-srgb-block/ted-spring-srgb-block-range : int } srgb-flag: ted-spring-capability/ted-spring-srgb-block/ted-spring-srgb-block-flags link: _linkTable _linkTable: item: ted-link key: ted-link-local-ifindex view: _linkView _linkView: fields: remoteRTR: ted-link-to remoteIfI: { ted-link-remote-ifindex : int } remoteADD: ted-link-remote-address localIfI: { ted-link-local-ifindex : int } localADD: ted-link-local-address metric: { ted-link-metric : int } color: admin-groups/color sr-adj-sid-label: {ted-adj-sids/ted-link-p2p-adj-sid/ted-link-p2p-adj-sid-label : int} sr-adj-sid-weight: {ted-adj-sids/ted-link-p2p-adj-sid/ted-link-p2p-adj-sid-weight : int} sr-adj-sid-afi: ted-adj-sids/ted-link-p2p-adj-sid/ted-link-p2p-adj-sid-af sr-adj-sid-flags: ted-adj-sids/ted-link-p2p-adj-sid/ted-link-p2p-adj-sid-flags TedSummaryTable: rpc: get-ted-database-information item: ted-database-summary view: TedSummaryView TedSummaryView: fields: iso-count: { ted-database-iso-count : int } inet-count: { ted-database-inet-count : int } py-junos-eznc-2.7.3/lib/jnpr/junos/op/vlan.yml000066400000000000000000000004521475361112400212270ustar00rootroot00000000000000--- VlanTable: rpc: get-vlan-information item: vlan key: vlan-name view: VlanView VlanView: fields: instance: vlan-instance vlan_name: vlan-name created: vlan-create-time status: vlan-status owner: vlan-owner tag: vlan-tag members: .//vlan-member-interface py-junos-eznc-2.7.3/lib/jnpr/junos/op/xcvr.yml000066400000000000000000000005051475361112400212500ustar00rootroot00000000000000--- XcvrTable: rpc: get-chassis-inventory item: //*[starts-with(name,"Xcvr")] key: - ancestor::*[starts-with(name,'FPC')]/name - ancestor::*[starts-with(name,'PIC')]/name - name view: XcvrTableView XcvrTableView: fields: sn: serial-number pn: part-number ver: version type: description py-junos-eznc-2.7.3/lib/jnpr/junos/resources/000077500000000000000000000000001475361112400211375ustar00rootroot00000000000000py-junos-eznc-2.7.3/lib/jnpr/junos/resources/__init__.py000066400000000000000000000000001475361112400232360ustar00rootroot00000000000000py-junos-eznc-2.7.3/lib/jnpr/junos/resources/autosys.py000066400000000000000000000002751475361112400232240ustar00rootroot00000000000000""" Pythonifier for AutoSys Table/View """ from jnpr.junos.factory import loadyaml from os.path import splitext _YAML_ = splitext(__file__)[0] + ".yml" globals().update(loadyaml(_YAML_)) py-junos-eznc-2.7.3/lib/jnpr/junos/resources/autosys.yml000066400000000000000000000004721475361112400233740ustar00rootroot00000000000000--- ### ------------------------------------------------------ ### Table-view to configure Autonomous system. ### ------------------------------------------------------ AutoSysTable: set: routing-options/autonomous-system key-field: - as_num view: AutoSysView AutoSysView: fields: as_num: as-numberpy-junos-eznc-2.7.3/lib/jnpr/junos/resources/bgp.py000066400000000000000000000002711475361112400222610ustar00rootroot00000000000000""" Pythonifier for BGP Table/View """ from jnpr.junos.factory import loadyaml from os.path import splitext _YAML_ = splitext(__file__)[0] + ".yml" globals().update(loadyaml(_YAML_)) py-junos-eznc-2.7.3/lib/jnpr/junos/resources/bgp.yml000066400000000000000000000010651475361112400224340ustar00rootroot00000000000000--- ### ------------------------------------------------------ ### Table-view to configure BGP. ### ------------------------------------------------------ BgpTable: set: protocols/bgp/group key-field: - bgp_name view: BgpView BgpView: groups: neigh : neighbor fields: bgp_name : { 'name' : { 'type' : 'str', 'minValue' : 1, 'maxValue' : 255} } bgp_type : {'type' : {'type': { 'enum': ['external', 'internal'] } } } local_addr : local-address peer : { 'peer-as' : { 'type' : 'int' } } fields_neigh: neigh_addr : namepy-junos-eznc-2.7.3/lib/jnpr/junos/resources/interface.py000066400000000000000000000002771475361112400234570ustar00rootroot00000000000000""" Pythonifier for interface table/view """ from jnpr.junos.factory import loadyaml from os.path import splitext _YAML_ = splitext(__file__)[0] + ".yml" globals().update(loadyaml(_YAML_)) py-junos-eznc-2.7.3/lib/jnpr/junos/resources/interface.yml000066400000000000000000000006721475361112400236270ustar00rootroot00000000000000InterfaceTable: set: interfaces/interface key-field: - name - unit_name view: InterfaceView InterfaceView: groups: unit: unit bridge: unit/family/bridge fields: name: name disable: { 'disable' : { 'type': 'bool' } } enc : encapsulation native_vlan: native-vlan-id fields_unit: unit_name : name desc : description fields_bridge: mode: interface-mode vlan_list: vlan-id-listpy-junos-eznc-2.7.3/lib/jnpr/junos/resources/staticroutes.py000066400000000000000000000003021475361112400242350ustar00rootroot00000000000000""" Pythonifier for Static route Table/View """ from jnpr.junos.factory import loadyaml from os.path import splitext _YAML_ = splitext(__file__)[0] + ".yml" globals().update(loadyaml(_YAML_)) py-junos-eznc-2.7.3/lib/jnpr/junos/resources/staticroutes.yml000066400000000000000000000005231475361112400244130ustar00rootroot00000000000000--- ### ------------------------------------------------------ ### Table-view to configure Static routes. ### ------------------------------------------------------ StaticRouteTable: set: routing-options/static/route key-field: - route_name view: StaticRouteView StaticRouteView: fields: route_name: name hop: next-hoppy-junos-eznc-2.7.3/lib/jnpr/junos/resources/syslog.py000066400000000000000000000002741475361112400230340ustar00rootroot00000000000000""" Pythonifier for Syslog Table/View """ from jnpr.junos.factory import loadyaml from os.path import splitext _YAML_ = splitext(__file__)[0] + ".yml" globals().update(loadyaml(_YAML_)) py-junos-eznc-2.7.3/lib/jnpr/junos/resources/syslog.yml000066400000000000000000000007171475361112400232070ustar00rootroot00000000000000--- ### ------------------------------------------------------ ### Table-view to configure Syslog. ### ------------------------------------------------------ SyslogTable: set: system/syslog/file key-field: - name - contents_name view: SyslogView SyslogView: groups: contents: contents fields: name : { 'name' : { 'default' : 'messages' } } fields_contents: info : info contents_name : name error : errorpy-junos-eznc-2.7.3/lib/jnpr/junos/resources/user.py000066400000000000000000000002721475361112400224700ustar00rootroot00000000000000""" Pythonifier for User Table/View """ from jnpr.junos.factory import loadyaml from os.path import splitext _YAML_ = splitext(__file__)[0] + ".yml" globals().update(loadyaml(_YAML_)) py-junos-eznc-2.7.3/lib/jnpr/junos/resources/user.yml000066400000000000000000000010111475361112400226310ustar00rootroot00000000000000--- ### ------------------------------------------------------ ### Table-view to configure login user. ### ------------------------------------------------------ UserTable: set: system/login/user key-field: user view: userView userView: groups: auth: authentication fields: user: name uid: { uid : { 'type' : 'int', 'minValue' : 100, 'maxValue' : 64000 } } class_name: { class : { 'type' : { 'enum' : ['operator', 'read-only', 'super-user'] } } } fields_auth: password: encrypted-passwordpy-junos-eznc-2.7.3/lib/jnpr/junos/rpcmeta.py000066400000000000000000000374011475361112400211370ustar00rootroot00000000000000import re import sys from lxml import etree from lxml.builder import E from jnpr.junos import jxml as JXML class _RpcMetaExec(object): # ----------------------------------------------------------------------- # CONSTRUCTOR # ----------------------------------------------------------------------- def __init__(self, junos): """ ~PRIVATE CLASS~ creates an RPC meta-executor object bound to the provided ez-netconf :junos: object """ self._junos = junos # ----------------------------------------------------------------------- # get_config # ----------------------------------------------------------------------- def get_config( self, filter_xml=None, options={}, model=None, namespace=None, remove_ns=True, **kwargs ): """ retrieve configuration from the Junos device .. code-block:: python dev.rpc.get_config() dev.rpc.get_config(filter_xml='') dev.rpc.get_config(filter_xml='system/services') dev.rpc.get_config( filter_xml=etree.XML(''), options={'format': 'json'}) # to fetch junos as well as yang model configs dev.rpc.get_config(model=True) # openconfig yang example dev.rpc.get_config(filter_xml='bgp', model='openconfig') dev.rpc.get_config(filter_xml='', model='openconfig') # custom yang example dev.rpc.get_config(filter_xml='l2vpn', model='custom', namespace="http://yang.juniper.net/customyang/l2vpn") # ietf yang example dev.rpc.get_config(filter_xml='interfaces', model='ietf') # ietf-softwire yang example dev.rpc.get_config(filter_xml='softwire-config', model='ietf', namespace="urn:ietf:params:xml:ns:yang:ietf-softwire", options={'format': 'json'}) :filter_xml: fully XML formatted tag which defines what to retrieve, when omitted the entire configuration is returned; the following returns the device host-name configured with "set system host-name" .. code-block:: python config = dev.rpc.get_config(filter_xml=etree.XML(''' ''')) :options: is a dictionary of XML attributes to set within the RPC; the following returns the device host-name either configured with "set system host-name" and if unconfigured, the value inherited from apply-group re0|re1, typical for multi-RE systems .. code-block:: python config = dev.rpc.get_config(filter_xml=etree.XML(''' '''), options={'database':'committed','inherit':'inherit'}) :param str model: Can provide yang model openconfig/custom/ietf. When model is True and filter_xml is None, xml is enclosed under so that we get junos as well as other model configurations :param str namespace: User can have their own defined namespace in the custom yang models, In such cases they need to provide that namespace so that it can be used to fetch yang modeled configs :param bool remove_ns: remove namespaces, if value assigned is False, function will return xml with namespaces. The same xml returned can be loaded back to devices. This comes handy in case of yang based configs .. code-block:: python dev.rpc.get_config(filter_xml='bgp', model='openconfig', remove_ns=False) """ nmspaces = { "openconfig": "http://openconfig.net/yang/", "ietf": "urn:ietf:params:xml:ns:yang:ietf-", } rpc = E("get-configuration", options) if filter_xml is not None: if not isinstance(filter_xml, etree._Element): if re.search("^<.*>$", filter_xml): filter_xml = etree.XML(filter_xml) else: filter_data = None for tag in filter_xml.split("/")[::-1]: filter_data = ( E(tag) if filter_data is None else E(tag, filter_data) ) filter_xml = filter_data # wrap the provided filter with toplevel if # it does not already have one (not in case of yang model config) if ( filter_xml.tag != "configuration" and model is None and namespace is None ): etree.SubElement(rpc, "configuration").append(filter_xml) else: if model is not None or namespace is not None: if model == "custom" and namespace is None: raise AttributeError( 'For "custom" model, ' 'explicitly provide "namespace"' ) ns = namespace or (nmspaces.get(model.lower()) + filter_xml.tag) filter_xml.attrib["xmlns"] = ns rpc.append(filter_xml) transform = self._junos.transform if remove_ns is False: self._junos.transform = lambda: JXML.strip_namespaces_prefix try: response = self._junos.execute(rpc, **kwargs) finally: self._junos.transform = transform # in case of model provided top level should be data # return response if model and filter_xml is None and options.get("format") != "json": response = response.getparent() response.tag = "data" return response # ----------------------------------------------------------------------- # get # ----------------------------------------------------------------------- def get(self, filter_select=None, ignore_warning=False, **kwargs): """ Retrieve running configuration and device state information using rpc .. code-block:: python dev.rpc.get() dev.rpc.get(ignore_warning=True) dev.rpc.get(filter_select='bgp') or dev.rpc.get('bgp') dev.rpc.get(filter_select='bgp/neighbors') dev.rpc.get("/bgp/neighbors/neighbor[neighbor-address='10.10.0.1']" "/timers/state/hold-time") dev.rpc.get('mpls', ignore_warning=True) :param str filter_select: The select attribute will be treated as an XPath expression and used to filter the returned data. :param ignore_warning: A boolean, string or list of string. If the value is True, it will ignore all warnings regardless of the warning message. If the value is a string, it will ignore warning(s) if the message of each warning matches the string. If the value is a list of strings, ignore warning(s) if the message of each warning matches at least one of the strings in the list. For example:: dev.rpc.get(ignore_warning=True) dev.rpc.get(ignore_warning='vrrp subsystem not running') dev.rpc.get(ignore_warning=['vrrp subsystem not running', 'statement not found']) .. note:: When the value of ignore_warning is a string, or list of strings, the string is actually used as a case-insensitive regular expression pattern. If the string contains only alpha-numeric characters, as shown in the above examples, this results in a case-insensitive substring match. However, any regular expression pattern supported by the re library may be used for more complicated match conditions. :returns: xml object """ # junos only support filter type to be xpath filter_params = {"type": "xpath"} if filter_select is not None: filter_params["source"] = filter_select rpc = E("get", E("filter", filter_params)) return self._junos.execute(rpc, ignore_warning=ignore_warning, **kwargs) # ----------------------------------------------------------------------- # load_config # ----------------------------------------------------------------------- def load_config(self, contents, ignore_warning=False, **options): """ loads :contents: onto the Junos device, does not commit the change. :param ignore_warning: A boolean, string or list of string. If the value is True, it will ignore all warnings regardless of the warning message. If the value is a string, it will ignore warning(s) if the message of each warning matches the string. If the value is a list of strings, ignore warning(s) if the message of each warning matches at least one of the strings in the list. For example:: dev.rpc.load_config(cnf, ignore_warning=True) dev.rpc.load_config(cnf, ignore_warning='vrrp subsystem not running') dev.rpc.load_config(cnf, ignore_warning=['vrrp subsystem not running', 'statement not found']) dev.rpc.load_config(cnf, ignore_warning='statement not found') .. note:: When the value of ignore_warning is a string, or list of strings, the string is actually used as a case-insensitive regular expression pattern. If the string contains only alpha-numeric characters, as shown in the above examples, this results in a case-insensitive substring match. However, any regular expression pattern supported by the re library may be used for more complicated match conditions. :options: is a dictionary of XML attributes to set within the RPC. The :contents: are interpreted by the :options: as follows: format='text' and action='set', then :contents: is a string containing a series of "set" commands format='text', then :contents: is a string containing Junos configuration in curly-brace/text format format='json', then :contents: is a string containing Junos configuration in json format url='path', then :contents: is a None :contents: is XML structure """ rpc = E("load-configuration", options) if contents is None and "url" in options: pass elif ("action" in options) and (options["action"] == "set"): rpc.append(E("configuration-set", contents)) elif ("action" in options) and (options["action"] == "patch"): rpc.append(E("configuration-patch", contents)) elif ("format" in options) and (options["format"] == "text"): rpc.append(E("configuration-text", contents)) elif ("format" in options) and (options["format"] == "json"): rpc.append(E("configuration-json", contents)) else: # otherwise, it's just XML Element if contents.tag != "configuration": etree.SubElement(rpc, "configuration").append(contents) else: rpc.append(contents) return self._junos.execute(rpc, ignore_warning=ignore_warning) # ----------------------------------------------------------------------- # cli # ----------------------------------------------------------------------- def cli(self, command, format="text", normalize=False): rpc = E("command", command) if format.lower() in ["text", "json"]: rpc.attrib["format"] = format return self._junos.execute(rpc, normalize=normalize) # ----------------------------------------------------------------------- # method missing # ----------------------------------------------------------------------- def __getattr__(self, rpc_cmd_name): """ metaprograms a function to execute the :rpc_cmd_name: the caller will be passing (*vargs, **kvargs) on execution of the meta function; these are the specific rpc command arguments(**kvargs) and options bound as XML attributes (*vargs) """ rpc_cmd = re.sub("_", "-", rpc_cmd_name) def _exec_rpc(*vargs, **kvargs): # create the rpc as XML command rpc = etree.Element(rpc_cmd) # Gather decorator keywords into dec_args and remove from kvargs dec_arg_keywords = [ "dev_timeout", "normalize", "ignore_warning", "filter_xml", ] dec_args = {} for keyword in dec_arg_keywords: if keyword in kvargs: dec_args[keyword] = kvargs.pop(keyword) # kvargs are the command parameter/values if kvargs: for arg_name, arg_value in kvargs.items(): arg_name = re.sub("_", "-", arg_name) if not isinstance(arg_value, (tuple, list)): arg_value = [arg_value] for a in arg_value: if not isinstance( a, (bool, str, unicode) if sys.version < "3" else (bool, str), ): raise TypeError( "The value %s for argument %s" " is of %s. Argument " "values must be a string, " "boolean, or list/tuple of " "strings and booleans." % (a, arg_name, str(type(a))) ) if a is not False: arg = etree.SubElement(rpc, arg_name) if not isinstance(a, bool): arg.text = a # vargs[0] is a dict, command options like format='text' if vargs: for k, v in vargs[0].items(): if v is not True: rpc.attrib[k] = v # now invoke the command against the # associated :junos: device and return # the results per :junos:execute() return self._junos.execute(rpc, **dec_args) # metabind help() and the function name to the :rpc_cmd_name: # provided by the caller ... that's about all we can do, yo! _exec_rpc.__doc__ = rpc_cmd _exec_rpc.__name__ = rpc_cmd_name # return the metafunction that the caller will in-turn invoke return _exec_rpc # ----------------------------------------------------------------------- # callable # ----------------------------------------------------------------------- def __call__(self, rpc_cmd, **kvargs): """ callable will execute the provided :rpc_cmd: against the attached :junos: object and return the RPC response per :junos:execute() kvargs is simply passed 'as-is' to :junos:execute() """ return self._junos.execute(rpc_cmd, **kvargs) py-junos-eznc-2.7.3/lib/jnpr/junos/transport/000077500000000000000000000000001475361112400211615ustar00rootroot00000000000000py-junos-eznc-2.7.3/lib/jnpr/junos/transport/__init__.py000066400000000000000000000000001475361112400232600ustar00rootroot00000000000000py-junos-eznc-2.7.3/lib/jnpr/junos/transport/tty.py000066400000000000000000000215541475361112400223620ustar00rootroot00000000000000from time import sleep import logging from jnpr.junos import exception as EzErrors from jnpr.junos.transport.tty_netconf import tty_netconf logger = logging.getLogger("jnpr.junos.tty") __all__ = ["Terminal"] # ========================================================================= # Terminal class # ========================================================================= class Terminal(object): """ Terminal is used to bootstrap Junos New Out of the Box (NOOB) device over the CONSOLE port. The general use-case is to setup the minimal configuration so that the device is IP reachable using SSH and NETCONF for remote management. Serial is needed for Junos devices that do not support the DHCP 'auto-installation' or 'ZTP' feature; i.e. you *MUST* do the NOOB configuration via the CONSOLE. Serial is also useful for situations even when the Junos device supports auto-DHCP, but is not an option due to the specific situation """ TIMEOUT = 0.2 # serial readline timeout, seconds EXPECT_TIMEOUT = 10 # total read timeout, seconds LOGIN_RETRY = 20 # total number of passes thru login state-machine _ST_INIT = 0 _ST_LOADER = 1 _ST_LOGIN = 2 _ST_PASSWD = 3 _ST_DONE = 4 _ST_BAD_PASSWD = 5 _ST_TTY_NOLOGIN = 6 _ST_TTY_OPTION = 7 _ST_TTY_HOTKEY = 8 _re_pat_login = r"(?Pogin:\s*$)" _RE_PAT = [ r"(?Poader>\s*$)", _re_pat_login, r"(?Password:\s*$)", "(?Pogin incorrect)", r"(?P\s*)", r"(?P%|#|(~\$)\s*$)", r'(?P[^\-"]>\s*$)', r"(?P py-junos-eznc-2.7.3/tests/unit/factory/rpc-reply/local-get-interface-information.xml000066400000000000000000000131451475361112400306330ustar00rootroot00000000000000 ge-0/0/0 up up 133 506 Ethernet 1514 disabled Full-duplex 1000mbps none none disabled enabled enabled online 0x4000 8 8 00:0c:29:5f:9b:88 00:0c:29:5f:9b:88 2014-05-21 07:52:41 UTC (05:46:34 ago) 1384 0 1472 0 Disabled ge-0/0/0.0 69 507 0x4000 ENET2 11850 5033 untrust inet 1500 192.168.74/24 192.168.74.31 192.168.74.255 ge-0/0/1 up up 134 508 Ethernet 1514 disabled Full-duplex 1000mbps none none disabled enabled enabled online 0x4000 8 8 00:0c:29:5f:9b:92 00:0c:29:5f:9b:92 2014-05-20 22:49:35 UTC (14:49:40 ago) 0 0 0 0 Disabled ge-0/0/1.0 71 517 0x4000 ENET2 119126 0 Null inet 1500 192.168.2/24 192.168.2.1 192.168.2.255 request_routing-engine_execute_command_sysctl_dummy.xml000066400000000000000000000003371475361112400351610ustar00rootroot00000000000000py-junos-eznc-2.7.3/tests/unit/factory/rpc-replysecurity.mac.veriexec.state: loaded active enforce py-junos-eznc-2.7.3/tests/unit/factory/rpc-reply/show-utmd-status-use-Null.xml000066400000000000000000000005151475361112400274520ustar00rootroot00000000000000 py-junos-eznc-2.7.3/tests/unit/factory/rpc-reply/show-utmd-status.xml000066400000000000000000000012241475361112400257460ustar00rootroot00000000000000 node0 node1 py-junos-eznc-2.7.3/tests/unit/factory/rpc-reply/show_arp_no-resolve.xml000066400000000000000000000043241475361112400264750ustar00rootroot00000000000000 MAC Address Address Interface Flags f0:76:1c:9d:23:19 10.221.128.201 fxp0.0 none fc:45:96:f3:be:1c 10.221.128.202 fxp0.0 none 56:68:ad:d8:12:f0 10.221.129.54 fxp0.0 none 56:68:ad:d8:13:af 10.221.129.93 fxp0.0 none 56:68:ad:d8:10:f4 10.221.129.121 fxp0.0 none 56:68:ad:d8:10:c6 10.221.129.191 fxp0.0 none 56:68:ad:d8:10:ec 10.221.129.221 fxp0.0 none 56:68:ad:d8:11:a1 10.221.129.231 fxp0.0 none 56:68:ad:d8:15:f3 10.221.129.239 fxp0.0 none 56:68:ad:d8:1d:3a 10.221.130.6 fxp0.0 none 56:68:ad:d8:13:32 10.221.130.28 fxp0.0 none 56:68:ad:d8:17:f8 10.221.130.54 fxp0.0 none 56:68:ad:d8:15:eb 10.221.130.56 fxp0.0 none 56:68:ad:d8:17:82 10.221.130.130 fxp0.0 none 56:68:ad:d8:10:eb 10.221.130.170 fxp0.0 none 56:68:ad:d8:12:f8 10.221.130.186 fxp0.0 none 56:68:ad:d8:1f:f8 10.221.130.219 fxp0.0 none 56:68:ad:d8:13:14 10.221.130.235 fxp0.0 none 56:68:ad:d8:17:10 10.221.130.250 fxp0.0 none 56:68:ad:d8:15:3e 10.221.131.11 fxp0.0 none 56:68:ad:d8:17:83 10.221.131.16 fxp0.0 none 56:68:ad:d8:18:ae 10.221.131.36 fxp0.0 none 56:68:ad:d8:1c:7f 10.221.131.78 fxp0.0 none 56:68:ad:d8:1a:c1 10.221.131.82 fxp0.0 none 56:68:ad:d8:17:9a 10.221.131.119 fxp0.0 none 56:68:ad:d8:18:b2 10.221.131.128 fxp0.0 none 56:68:ad:d8:19:0c 10.221.131.132 fxp0.0 none 56:68:ad:d8:19:4f 10.221.131.158 fxp0.0 none 56:68:ad:d8:18:86 10.221.131.207 fxp0.0 none 56:68:ad:d8:16:76 10.221.131.208 fxp0.0 none 56:68:ad:d8:1a:74 10.221.131.212 fxp0.0 none 56:68:ad:d8:1d:68 10.221.132.32 fxp0.0 none 56:68:ad:d8:20:44 10.221.132.62 fxp0.0 none 56:68:ad:d8:1d:3b 10.221.132.199 fxp0.0 none py-junos-eznc-2.7.3/tests/unit/factory/rpc-reply/show_chassis_ethernet-switch_statistics.xml000066400000000000000000000121601475361112400326430ustar00rootroot00000000000000 Displaying port statistics for switch 0 Link is down on GE port 0 connected to device: FPC0 Statistics for port 1 connected to device FPC1: TX Packets 64 Octets 142545489 TX Packets 65-127 Octets 83498558 TX Packets 128-255 Octets 6738243 RX Packets 512-1023 Octets 4428661 RX Packets 1024-1518 Octets 3200039 RX Broadcast Packets 9206817 RX Byte Counter 320925468 Statistics for port 2 connected to device FPC2: TX Packets 64 Octets 140666613 TX Packets 65-127 Octets 105545277 TX Packets 128-255 Octets 11245893 TX Packets 256-511 Octets 55746 TX Packets 512-1023 Octets 3669 TX Broadcast Packets 46011330 TX Byte Counter 12099160 RX Packets 64 Octets 69281885 RX Packets 65-127 Octets 98793558 RX Packets 128-255 Octets 5848046 RX Packets 256-511 Octets 14518495 RX Packets 512-1023 Octets 33598800 RX Packets 1024-1518 Octets 7994417 RX Byte Counter 133138157 Statistics for port 4 connected to device FPC4: TX Packets 64 Octets 1397543 TX Packets 65-127 Octets 91616401 TX Packets 128-255 Octets 15940774 TX Packets 256-511 Octets 6737 TX Packets 512-1023 Octets 2934 TX Packets 1024-1518 Octets 72615 TX Packets 1519-2047 Octets 0 TX Packets 2048-4095 Octets 0 TX Packets 4096-9216 Octets 0 TX 1519-1522 Good Vlan frms 0 TX Octets 246717004 TX Multicast Packets 6 TX Broadcast Packets 45997099 TX Single Collision frames 0 TX Mult. Collision frames 0 TX Late Collisions 0 TX Excessive Collisions 0 TX Collision frames 0 TX PAUSEMAC Ctrl Frames 0 TX MAC ctrl frames 0 TX Frame deferred Xmns 0 TX Frame excessive deferl 0 TX Oversize Packets 0 TX Jabbers 0 TX FCS Error Counter 0 TX Fragment Counter 0 TX Byte Counter 725771059 RX Packets 64 Octets 69309261 RX Packets 65-127 Octets 104339320 RX Packets 128-255 Octets 7153230 RX Packets 256-511 Octets 2130213 RX Packets 512-1023 Octets 24031621 RX Packets 1024-1518 Octets 5524595 RX Packets 1519-2047 Octets 0 RX Packets 2048-4095 Octets 0 RX Packets 4096-9216 Octets 0 RX Octets 212488240 RX Multicast Packets 0 RX Broadcast Packets 9216795 RX FCS Errors 0 RX Align Errors 0 RX Fragments 0 RX Symbol errors 0 RX Unsupported opcodes 0 RX Out of Range Length 0 RX False Carrier Errors 0 RX Undersize Packets 0 RX Oversize Packets 0 RX Jabbers 0 RX 1519-1522 Good Vlan frms 0 RX MTU Exceed Counter 0 RX Control Frame Counter 0 RX Pause Frame Counter 0 RX Byte Counter 361322476 Link is down on GE port 6 connected to device: FPC6 Link is down on GE port 16 connected to device: Nothing Statistics for port 17 connected to device Debug-GigE: TX Packets 64 Octets 0 TX Packets 65-127 Octets 0 TX Packets 128-255 Octets 0 TX Packets 256-511 Octets 0 TX Packets 512-1023 Octets 0 TX Packets 1024-1518 Octets 0 TX Packets 1519-2047 Octets 0 TX Packets 2048-4095 Octets 0 TX Packets 4096-9216 Octets 0 TX 1519-1522 Good Vlan frms 0 TX Octets 0 TX Multicast Packets 0 TX Broadcast Packets 0 TX Single Collision frames 0 TX Mult. Collision frames 0 TX Late Collisions 0 TX Excessive Collisions 0 TX Collision frames 0 TX PAUSEMAC Ctrl Frames 0 TX MAC ctrl frames 0 TX Frame deferred Xmns 0 TX Frame excessive deferl 0 TX Oversize Packets 0 TX Jabbers 0 TX FCS Error Counter 0 TX Fragment Counter 0 TX Byte Counter 0 RX Packets 64 Octets 0 RX Packets 65-127 Octets 0 RX Packets 128-255 Octets 0 RX Packets 256-511 Octets 0 RX Packets 512-1023 Octets 0 RX Packets 1024-1518 Octets 0 RX Packets 1519-2047 Octets 0 RX Packets 2048-4095 Octets 0 RX Packets 4096-9216 Octets 0 RX Octets 0 RX Multicast Packets 0 RX Broadcast Packets 0 RX FCS Errors 0 RX Align Errors 0 RX Fragments 0 RX Symbol errors 0 RX Unsupported opcodes 0 RX Out of Range Length 0 RX False Carrier Errors 0 RX Undersize Packets 0 RX Oversize Packets 0 RX Jabbers 0 RX 1519-1522 Good Vlan frms 0 RX MTU Exceed Counter 0 RX Control Frame Counter 0 RX Pause Frame Counter 0 RX Byte Counter 0 Link is down on GE port 18 connected to device: Nothing Link is down on GE port 19 connected to device: Nothing Link is down on GE port 20 connected to device: Nothing Link is down on GE port 21 connected to device: Nothing Link is down on GE port 22 connected to device: Nothing Link is down on GE port 23 connected to device: Nothing Link is down on XE port 24 connected to device: External-Ethernet py-junos-eznc-2.7.3/tests/unit/factory/rpc-reply/show_cmerror_module_brief.xml000066400000000000000000000005621475361112400277270ustar00rootroot00000000000000 command: show cmerror module brief Output for given command: --------------------------------------- Module Name Active Errors --------------------------------------- 1 PQ3 Chip 0 2 Host Loopback 0 3 CM[0] 0 4 CM[1] 0 5 LUCHIP(0) 0 6 TOE-LU-0:0:0 0 py-junos-eznc-2.7.3/tests/unit/factory/rpc-reply/show_cmerror_module_brief_dummy_multiline.xml000066400000000000000000000011421475361112400332170ustar00rootroot00000000000000 ------------------------------------------------------------------------- Module Name Active Errors PFE Callback ModuleData Specific Function ------------------------------------------------------------------------- 1 PQ3 Chip 0 Yes 0x00000000 0x00000000 2 Host Loopback 0 No 0x00000000 0x464295b0 3 CM[0] 0 No 0x41f550f0 0x462f767c 4 LUCHIP(0) 0 No 0x00000000 0x481b84d8 py-junos-eznc-2.7.3/tests/unit/factory/rpc-reply/show_devices_local.xml000066400000000000000000000103071475361112400263340ustar00rootroot00000000000000 TSEC Ethernet Device Driver: .le1, Control 0x4296c218, (1000Mbit) HW reg base 0xff724000 [0]: TxBD base 0x7853ce20, RxBD Base 0x7853d640 [1]: TxBD base 0x7853d860, RxBD Base 0x7853e080 [2]: TxBD base 0x7853e2a0, RxBD Base 0x785422c0 [3]: TxBD base 0x785426e0, RxBD Base 0x78544700 Receive: 185584608 bytes, 2250212 packets, 0 FCS errors, 0 multicast packets 107271 broadcast packets, 0 control frame packets 0 PAUSE frame packets, 0 unknown OP codes 0 alignment errors, 0 frame length errors 0 code errors, 0 carrier sense errors 0 undersize packets, 0 oversize packets 0 fragments, 0 jabbers, 0 drops Receive per queue: [0]: 0 bytes, 0 packets, 0 dropped 0 jumbo, 0 truncated jumbo [1]: 0 bytes, 0 packets, 0 dropped 0 jumbo, 0 truncated jumbo [2]: 0 bytes, 0 packets, 0 dropped 0 jumbo, 0 truncated jumbo [3]: 203586808 bytes, 2250219 packets, 0 dropped 0 jumbo, 0 truncated jumbo Transmit: 288184646 bytes, 2038370 packets, 0 multicast packets 106531 broadcast packets, 0 PAUSE control frames 0 deferral packets, 0 excessive deferral packets 0 single collision packets, 0 multiple collision packets 0 late collision packets, 0 excessive collision packets 0 total collisions, 0 drop frames, 0 jabber frames 0 FCS errors, 0 control frames, 0 oversize frames 0 undersize frames, 0 fragments frames Transmit per queue: [0]: 10300254 bytes, 72537 packets 0 dropped, 0 fifo errors [1]: 4474302 bytes, 106531 packets 0 dropped, 0 fifo errors [2]: 260203538 bytes, 1857137 packets 0 dropped, 0 fifo errors [3]: 199334 bytes, 2179 packets 0 dropped, 0 fifo errors TSEC status counters: kernel_dropped:0, rx_large:0 rx_short: 0 rx_nonoctet: 0, rx_crcerr: 0, rx_overrun: 0 rx_bsy: 0,rx_babr:0, rx_trunc: 0 rx_length_errors: 0, rx_frame_errors: 0 rx_crc_errors: 0 rx_errors: 0, rx_ints: 2250110, collisions: 0 eberr:0, tx_babt: 0, tx_underrun: 0 tx_timeout: 0, tx_timeout: 0,tx_window_errors: 0 tx_aborted_errors: 0, tx_ints: 2038385, resets: 1 TSEC Ethernet Device Driver: .le3, Control 0x42979220, (1000Mbit) HW reg base 0xff726000 [0]: TxBD base 0x78545720, RxBD Base 0x78545f40 [1]: TxBD base 0x78546160, RxBD Base 0x78546980 [2]: TxBD base 0x78546ba0, RxBD Base 0x7854abc0 [3]: TxBD base 0x7854afe0, RxBD Base 0x7854d000 Receive: 0 bytes, 0 packets, 0 FCS errors, 0 multicast packets 0 broadcast packets, 0 control frame packets 0 PAUSE frame packets, 0 unknown OP codes 0 alignment errors, 0 frame length errors 0 code errors, 0 carrier sense errors 0 undersize packets, 0 oversize packets 0 fragments, 0 jabbers, 0 drops Receive per queue: [0]: 0 bytes, 0 packets, 0 dropped 0 jumbo, 0 truncated jumbo [1]: 0 bytes, 0 packets, 0 dropped 0 jumbo, 0 truncated jumbo [2]: 0 bytes, 0 packets, 0 dropped 0 jumbo, 0 truncated jumbo [3]: 0 bytes, 0 packets, 0 dropped 0 jumbo, 0 truncated jumbo Transmit: 6817984 bytes, 106531 packets, 0 multicast packets 106531 broadcast packets, 0 PAUSE control frames 0 deferral packets, 0 excessive deferral packets 0 single collision packets, 0 multiple collision packets 0 late collision packets, 0 excessive collision packets 0 total collisions, 0 drop frames, 0 jabber frames 0 FCS errors, 0 control frames, 0 oversize frames 0 undersize frames, 0 fragments frames Transmit per queue: [0]: 0 bytes, 0 packets 0 dropped, 0 fifo errors [1]: 4474302 bytes, 106531 packets 0 dropped, 0 fifo errors [2]: 0 bytes, 0 packets 0 dropped, 0 fifo errors [3]: 0 bytes, 0 packets 0 dropped, 0 fifo errors TSEC status counters: kernel_dropped:0, rx_large:0 rx_short: 0 rx_nonoctet: 0, rx_crcerr: 0, rx_overrun: 0 rx_bsy: 0,rx_babr:0, rx_trunc: 0 rx_length_errors: 0, rx_frame_errors: 0 rx_crc_errors: 0 rx_errors: 0, rx_ints: 0, collisions: 0 eberr:0, tx_babt: 0, tx_underrun: 0 tx_timeout: 0, tx_timeout: 0,tx_window_errors: 0 tx_aborted_errors: 0, tx_ints: 106531, resets: 1 py-junos-eznc-2.7.3/tests/unit/factory/rpc-reply/show_host_loopback_status-summary.xml000066400000000000000000000002271475361112400314650ustar00rootroot00000000000000 SENT: Ukern command: show host_loopback status-summary Host Loopback Toolkit Status Summary: No detected wedges No toolkit errors py-junos-eznc-2.7.3/tests/unit/factory/rpc-reply/show_icmp_statistics.xml000066400000000000000000000021501475361112400267370ustar00rootroot00000000000000 SENT: Ukern command: show icmp statistics ICMP Statistics: 0 requests 0 throttled 0 network unreachables 0 ttl expired 0 redirects 0 mtu exceeded 0 source route denials 0 filter prohibited 0 other unreachables 0 parameter problems 0 ttl captured 0 icmp/option handoffs 0 igmp v1 handoffs 0 tag te requests 0 tag te to RE ICMP Errors: 0 unknown unreachables 0 unsupported ICMP type 0 unprocessed redirects 0 invalid ICMP type 0 invalid protocol 0 bad input interface 0 bad route lookup 0 bad nh lookup 0 bad cf mtu 0 runts ICMP Discards: 0 multicasts 0 bad source addresses 0 bad dest addresses 0 IP fragments 0 ICMP errors 0 unknown originators ICMP Debug Messages: 0 throttled ICMP Rate Limit Settings: 500 pps per iff 1000 pps total py-junos-eznc-2.7.3/tests/unit/factory/rpc-reply/show_ithrottle_id_0.xml000066400000000000000000000017101475361112400264470ustar00rootroot00000000000000 SENT: Ukern command: show ithrottle id 0 ID Usage % Cfg State Oper State Name -- ------- --------- ---------- -------- 0 50.0 1 1 TOE ithrottle Throttle Times: In hptime ticks In ms --------------- ------ Timer Interval 333333 5.000 Allowed time 166666 2.500 Allowed excess 8333 0.125 Start time 488655082 n/a Run time this interval 0 0.000 Deficit 0 0.000 Run time max 17712 0.266 Run time total 144154525761 2162317 Min Usage Perc: 25.0 Max Usage Perc: 50.0 AdjustUsageEnable: 1 Throttle Stats: Starts : 65708652 Stops : 65708652 Checks : 124149442 Enables : 0 Disables : 0 AdjUp : 6 AdjDown : 4 py-junos-eznc-2.7.3/tests/unit/factory/rpc-reply/show_link_stats.xml000066400000000000000000000002621475361112400257120ustar00rootroot00000000000000 SENT: Ukern command: show link stats PPP LCP/NCP: 0 HDLC keepalives: 0 RSVP: 0 ISIS: 0 OSPF Hello: 539156 OAM: 0 BFD: 15 UBFD: 0 LMI: 0 LACP: 0 ETHOAM: 0 py-junos-eznc-2.7.3/tests/unit/factory/rpc-reply/show_luchip_0.xml000066400000000000000000000113631475361112400252460ustar00rootroot00000000000000 LUCHIP(0) generic config: routing chip index: 0 LU index: 0 asic ID: 0 asic name: LUCHIP(0) major version: 1 minor version: 1 exists: TRUE hw absent: FALSE hw initialized: TRUE Enabled Services: Poll_Status Wedge_Chk Mem_Chk PPE Rebalancing service thread period: 100 msec. status poll period: 1000 msec. ucode rebalance delay: 10 min. ucode rebalance period: 5 min. Congestion show msec: 100 JTAG_ID: 0x1142957f, Version 1.1 RLDRAM: 576 Mb by 4 devices at 533 MHz. DDR3: 1024 Mb by 2 devices at 733MHz/CL10. TCAM: Installed. LUCHIP(0) DISP config: parcel_start: 0x00000007 parcel_end: 0x0000007f Streams: Enabled pmark_cntl 0x00000000 callout_snum 0x3fde3fce ppe_zone_configured 0x0000ffff callout_ppe 0x0000fffe pc1_other_ppe 0x0000fffe pc1_rsvd_ppe (enabled) 0x00000001 pc1_rsvd_zone 0x00000000 pzarb_timeout 0x0000a000 (409.600 msec) pzarb_force_timeout_valid 0x00000200 Parcel Type Map: ParcelType_0: 3 Has stream number ParcelType_1: 3 Has stream number ParcelType_2: 1 Has stream number ParcelType_3: 0 ParcelType_4: 0 ParcelType_5: 0 ParcelType_6: 0 ParcelType_7: 0 ParcelType_8: 1 ParcelType_9: 1 ParcelType_10: 3 ParcelType_11: 0 ParcelType_12: 3 Has stream number ParcelType_13: 3 Has stream number ParcelType_14: 3 ParcelType_15: 3 PPE Zone Enable masks and (active): PPE[0] Zone Enable Mask 0xfcff0ffe (0x00000000) PPE[1] Zone Enable Mask 0xfcff0fff (0x00000000) PPE[2] Zone Enable Mask 0xfcff0fff (0x00000000) PPE[3] Zone Enable Mask 0xfcff0fff (0x00000000) PPE[4] Zone Enable Mask 0xfcff0fff (0x00000000) PPE[5] Zone Enable Mask 0xfcff0fff (0x00000000) PPE[6] Zone Enable Mask 0xfcff0fff (0x00000000) PPE[7] Zone Enable Mask 0xfcff0fff (0x00000000) PPE[8] Zone Enable Mask 0xfcff0fff (0x00000000) PPE[9] Zone Enable Mask 0xfcff0fff (0x00000000) PPE[10] Zone Enable Mask 0xfcff0fff (0x00000100) PPE[11] Zone Enable Mask 0xfcff0fff (0x00000000) PPE[12] Zone Enable Mask 0xfcff0fff (0x00000000) PPE[13] Zone Enable Mask 0xfcff0fff (0x00000000) PPE[14] Zone Enable Mask 0xfcff0fff (0x00000000) PPE[15] Zone Enable Mask 0xfcff0fff (0x00000000) PPE Stream Set Config: Stream set 0: Mask 0x1e Value 0x00 PPE 0xffff Stream set 1: Mask 0x1e Value 0x02 PPE 0xffff Stream set 2: Mask 0x1e Value 0x04 PPE 0xffff Stream set 3: Mask 0x1e Value 0x06 PPE 0xffff Stream set 4: Mask 0x1e Value 0x08 PPE 0xffff Stream set 5: Mask 0x1e Value 0x0a PPE 0xffff Stream set 6: Mask 0x1e Value 0x0c PPE 0xffff Stream set 7: Mask 0x1e Value 0x0e PPE 0xffff Stream set 8: Mask 0x1e Value 0x10 PPE 0xffff Stream set 9: Mask 0x1e Value 0x12 PPE 0xffff Stream set 10: Mask 0x1e Value 0x14 PPE 0xffff Stream set 11: Mask 0x1e Value 0x16 PPE 0xffff Stream set 12: Mask 0x1e Value 0x18 PPE 0xffff Stream set 13: Mask 0x1e Value 0x1a PPE 0xffff Stream set 14: Mask 0x1e Value 0x1c PPE 0xffff Stream set 15: Mask 0x1e Value 0x1e PPE 0xffff Periodic Callout Parcel Config: TID 0: 1 sec Enabled TID 1: 1.250 sec Enabled TID 2: 250 usec Enabled TID 3: 1 sec Enabled TID 4: -- n/a -- TID 5: -- n/a -- TID 6: -- n/a -- TID 7: 1 msec Enabled TID 8: -- n/a -- TID 9: 50 msec Enabled TID 10: 50 msec Enabled TID 11: 2 msec Enabled TID 12: -- n/a -- TID 13: -- n/a -- TID 14: 5 msec Enabled TID 15: 1 msec Enabled LUCHIP(0) Reorder Block Config: pkt_q_start 0x00000000 pkt_q_end: 0x000001ff npkt_q_start: 0x00000200 npkt_q_end: 0x000002ff recirc_q_start: 0x00000300 recirc_q_end: 0x000003ff max_parcel: 0x00000010 mode: 0x00000001 perf_monitor_mode: 0x00000000 interrupt_enable: 0x00000000 poll_enable: 0x000003ff LUCHIP(0) PLCT config: map_table: 0x0000e6e4 ij_pmax_shift: 0x00000007 plct_tick_freq: 0x00001f40 plct_flush_mode: 0x80013880 dynamic_load_balance: Disabled py-junos-eznc-2.7.3/tests/unit/factory/rpc-reply/show_memory.xml000066400000000000000000000007411475361112400250510ustar00rootroot00000000000000 SENT: Ukern command: show memory ID Base Total(b) Free(b) Used(b) % Name -- ---------- ----------- ----------- ----------- --- ----------- 0 4d9ad8e8 1726292636 1514622708 211669928 12 Kernel 1 b47ffb88 67108860 53057404 14051456 20 LAN buffer 2 bcdfffe0 52428784 52428784 0 0 Blob 3 b87ffb88 73400316 73400316 0 0 ISSU scratch py-junos-eznc-2.7.3/tests/unit/factory/rpc-reply/show_mtip-cge_summary.xml000066400000000000000000000007651475361112400270310ustar00rootroot00000000000000 SENT: Ukern command: show mtip-cge summary ID mtip_cge name FPC PIC ifd (ptr) --- -------------------- --- --- -------------------- -------- 1 mtip_cge.1.0.8192 1 0 4f11a058 2 mtip_cge.1.0.0 1 0 et-1/0/0 4f119fb8 3 mtip_cge.1.257.8192 1 257 4f119d38 4 mtip_cge.1.2.0 1 2 et-1/2/0 4f119c98 5 mtip_cge.1.2.1 1 2 et-1/2/1 4f119bf8 py-junos-eznc-2.7.3/tests/unit/factory/rpc-reply/show_pci_errors_2.xml000066400000000000000000000003121475361112400261230ustar00rootroot00000000000000 SENT: Ukern command: show pci errors 2 PCI ERROR: 2:2:9:0 (0x0082) Slot status : 0x0000004c PCI ERROR: 2:2:9:0 (0x007a) Link status : 0x00000001 py-junos-eznc-2.7.3/tests/unit/factory/rpc-reply/show_pq3_pci.xml000066400000000000000000000016461475361112400251040ustar00rootroot00000000000000 SENT: Ukern command: show pq3 pci PQ3 PEX EXC Count 1288, PCIX EXC Count 0. PQ3 PCI Error Status Indexes, head 0 tail 0. PCI 0:0:0:0 Correctable Counts: rxe 0, btlp 0, bdllp 0, rnr 0, rto 0 PCI 2:0:0:0 Correctable Counts: rxe 0, btlp 0, bdllp 0, rnr 0, rto 0 PCI 2:1:0:0 Correctable Counts: rxe 0, btlp 0, bdllp 0, rnr 0, rto 0 PCI 2:2:1:0 Correctable Counts: rxe 0, btlp 0, bdllp 0, rnr 0, rto 0 PCI 2:2:2:0 Correctable Counts: rxe 0, btlp 0, bdllp 0, rnr 0, rto 0 PCI 2:2:4:0 Correctable Counts: rxe 0, btlp 0, bdllp 0, rnr 0, rto 0 PCI 2:2:5:0 Correctable Counts: rxe 0, btlp 0, bdllp 0, rnr 0, rto 0 PCI 2:2:6:0 Correctable Counts: rxe 0, btlp 0, bdllp 0, rnr 0, rto 0 PCI 2:2:7:0 Correctable Counts: rxe 0, btlp 0, bdllp 0, rnr 0, rto 0 PCI 2:2:8:0 Correctable Counts: rxe 0, btlp 0, bdllp 0, rnr 0, rto 0 PCI 2:2:9:0 Correctable Counts: rxe 0, btlp 0, bdllp 0, rnr 0, rto 0 py-junos-eznc-2.7.3/tests/unit/factory/rpc-reply/show_sched.xml000066400000000000000000000010261475361112400246240ustar00rootroot00000000000000 SENT: Ukern command: show sched Total system uptime 99+18:17:23, (8619400175 ms), 4871292458 thread dispatches CPU load is 16% (1 second), 14% (5 second) 14% (10 second), 14% (1 minute) Total interrupt time 16786614 (ms) CPU Name Time(ms) 85% Idle 7397672498 0% Level 3 1 Last Long Running Thread Event time 200 ms CPU Name Time(ms) Count Top Thread: pid = 99 name = LU Background Service time = 410844018 ms cpu = 4% py-junos-eznc-2.7.3/tests/unit/factory/rpc-reply/show_threads.xml000066400000000000000000000213501475361112400251720ustar00rootroot00000000000000 SENT: Ukern command: show threads PID PR State Name Stack Use Time (Last/Max/Total) cpu --- -- ------- --------------------- --------- --------------------- 1 H asleep Maintenance 368/2056 0/0/99 ms 0% 2 L running Idle 320/2056 0/0/131149992 ms 82% 3 H asleep Timer Services 312/2048 0/0/49989 ms 0% 5 L asleep Ukern Syslog 312/4104 0/0/0 ms 0% 6 L asleep Heap Accouting 496/4096 0/1/40191 ms 0% 7 L asleep Sheaf Background 400/2048 0/0/300 ms 0% 8 H asleep IGMP 1248/16392 0/66/26330 ms 0% 9 H asleep IPv4 PFE Control Background 296/8192 0/0/0 ms 0% 10 M asleep OTN 376/8192 0/0/1063 ms 0% 11 M asleep GR253 408/4104 0/0/903 ms 0% 12 M asleep CXP 360/4096 0/0/1112 ms 0% 13 M asleep QSFP 472/4104 0/0/1150 ms 0% 14 M asleep DCC Background 280/4104 0/0/0 ms 0% 15 M asleep DSX50ms 328/4096 0/0/17600 ms 0% 16 M asleep DSXonesec 320/4104 0/0/756 ms 0% 17 M asleep mac_db 296/8200 0/0/0 ms 0% 18 M asleep RSMON syslog thread 2392/4096 0/35/59367 ms 0% 19 M asleep MSA300PIN 376/4104 0/0/146 ms 0% 20 M asleep CFP 384/4096 0/0/1273 ms 0% 21 M asleep XFP 360/4104 0/0/608 ms 0% 22 M asleep SFP 1720/4104 0/8/337173 ms 0% 23 L asleep Firmware Upgrade 320/4096 0/0/0 ms 0% 24 L asleep Syslog 840/4096 0/0/117 ms 0% 25 M asleep 50ms Periodic 224/8200 0/0/0 ms 0% 26 M asleep 100ms Periodic 224/8192 0/0/0 ms 0% 27 M asleep 1s Medium Periodic 632/8200 0/0/8820 ms 0% 28 M asleep 10s Medium Periodic 320/8192 0/0/122 ms 0% 29 L asleep 1s Low Periodic 848/8200 0/0/1819 ms 0% 30 L asleep 10s Low Periodic 320/8192 0/0/1655 ms 0% 31 M asleep TTRACE Creator 360/4096 0/0/0 ms 0% 32 M asleep TTRACE Tracer 432/4104 0/0/0 ms 0% 33 L asleep LKUP ASIC Wedge poll thread 696/4096 0/0/55554 ms 0% 34 L asleep TOE Coredump 408/4096 0/0/0 ms 0% 35 L asleep L2PD 392/4104 0/0/28004 ms 0% 36 L asleep PQ3 PCI Periodic 1472/8192 0/0/693 ms 0% 37 M asleep Host Loopback Periodic 448/8200 0/0/6066 ms 0% 38 M asleep HSL2 944/4096 0/1/285336 ms 0% 39 H asleep TCP Timers 1352/8200 0/0/57676 ms 0% 40 H asleep TCP Receive 1760/8192 0/1/78024 ms 0% 41 H asleep TNP Hello 504/2048 0/0/5402 ms 0% 42 M asleep UDP Input 280/2048 0/0/28 ms 0% 43 H asleep TTP Receive 1896/4096 0/0/17950 ms 0% 44 H asleep TTP Transmit 1504/4104 0/0/106226 ms 0% 45 H asleep RDP Timers 208/4096 0/0/0 ms 0% 46 H asleep RDP Input 280/2056 0/0/0 ms 0% 47 M asleep RCM Pfe Manager 824/4104 0/0/1 ms 0% 48 L asleep CLNS Err Input 280/4096 0/0/0 ms 0% 49 L asleep CLNS Option Input 280/4104 0/0/0 ms 0% 50 H asleep L2TP-SF KA Transmit 296/4096 0/0/0 ms 0% 51 M asleep RPM Msg thread 304/8200 0/0/0 ms 0% 52 M asleep RFC2544 periodic 392/8192 0/0/1019 ms 0% 53 H asleep Pfesvcsor 584/8192 0/0/31 ms 0% 54 M asleep PIC Periodic 1784/8200 0/2/543955 ms 0% 55 M asleep PIC 208/4096 0/0/0 ms 0% 56 M asleep TNPC CM 8576/16392 0/356/1578719 ms 0% 57 H asleep zlTsEngTaskzl303xx 640/8192 0/0/49053 ms 0% 58 L asleep zlTodMgrTaskzl303xx 904/8200 0/0/0 ms 0% 59 L asleep zlTimerTaskzl303xx 792/8192 0/0/87768 ms 0% 60 M asleep zlPtpTaskzl303xx 968/8200 0/0/34556 ms 0% 61 H asleep zlInt08Taskzl303xx 824/4104 0/0/2933830 ms 1% 62 M asleep zlInt09Taskzl303xx 696/4104 0/0/3386 ms 0% 63 L asleep zlAprTaskzl303xx 640/8192 0/0/218506 ms 0% 64 L asleep zlSpllTaskzl303xx 1912/8200 0/0/34476 ms 0% 65 L asleep zlTxTsMgrTaskzl303xx 728/8192 0/0/213870 ms 0% 66 M asleep zlPktTxSchedTaskzl303xx 728/8200 0/0/89916 ms 0% 67 L asleep zlHybridTaskzl303xx 1536/8200 0/0/0 ms 0% 68 M asleep CLKSYNC Manager 1744/8192 0/0/465 ms 0% 69 M asleep RDMAN 1520/4104 0/0/3714 ms 0% 70 H asleep CFM Manager 1216/32768 0/0/85379 ms 0% 71 M asleep CFM Data thread 1384/8192 0/0/0 ms 0% 72 M asleep PPM Manager 4720/8192 0/0/468 ms 0% 73 M asleep PPM Data thread 1672/16384 0/0/18263 ms 0% 74 L asleep IFCM 1408/4104 0/0/1216 ms 0% 75 M asleep VRRP Manager 1432/8192 1/1/1 ms 0% 76 M asleep L2ALM Manager 2184/8200 0/0/5057 ms 0% 78 L asleep ICMP6 Input 480/4104 0/0/0 ms 0% 79 L asleep IP6 Option Input 1400/4096 0/0/0 ms 0% 80 L asleep ICMP Input 1104/4104 0/0/0 ms 0% 81 L asleep IP Option Input 1384/4096 0/0/0 ms 0% 82 M asleep IGMP Input 1384/4096 0/0/0 ms 0% 83 L asleep DFW Alert 688/4104 0/0/818 ms 0% 84 L asleep cos halp stats daemon 1344/4104 0/1/306490 ms 0% 85 L asleep NH Probe Service 304/4104 0/0/26 ms 0% 86 L asleep IPC Test Daemon 672/2048 0/0/0 ms 0% 87 M asleep PFE Manager 8240/32768 0/163/80214 ms 0% 88 L asleep PFEMAN Service Thread 1176/16392 0/0/0 ms 0% 89 L asleep PFEMAN SRRD Thread 2024/16384 0/1/96 ms 0% 90 H asleep SNTP Daemon 1488/8200 0/0/83 ms 0% 92 L asleep Console 2336/16392 0/0/0 ms 0% 93 L asleep Console 2336/16384 0/0/0 ms 0% 94 M asleep PFE Statistics 6392/16384 0/1/314257 ms 0% 95 L asleep VBF Walker 352/16384 0/0/0 ms 0% 96 L asleep VBF MC Purge 256/8192 0/0/0 ms 0% 98 M asleep PZARB Timeout 336/4096 0/0/0 ms 0% 99 L asleep LU Background Service 968/4096 0/1/7548118 ms 4% 100 L asleep LKUP ASIC UCODE Rebalance Service 1760/4104 0/4/1757267 ms 1% 101 M asleep PZARB Timeout 336/4096 0/0/0 ms 0% 102 M asleep XM Chip Generic 1152/4096 0/0/12140 ms 0% 103 L asleep XM Chip Statistics 816/4104 0/1/1300832 ms 0% 104 M asleep XM Chip Wedge Detection and Recovery 2728/4104 0/0/6012 ms 0% 105 M asleep PZARB Timeout 336/4104 0/0/0 ms 0% 106 M asleep PZARB Timeout 320/4096 0/0/0 ms 0% 108 M asleep XM Chip Generic 1152/4104 0/0/12503 ms 0% 109 L asleep XM Chip Statistics 816/4096 0/1/1336862 ms 0% 110 M asleep XM Chip Wedge Detection and Recovery 2728/4104 0/0/6524 ms 0% 112 M asleep Cassis Free Timer 480/4096 0/1/5869586 ms 3% 113 M asleep JNH Partition Mem Recovery 1048/4096 0/0/4003 ms 0% 114 M asleep LU-CNTR Reader 392/8200 0/0/29 ms 0% 115 M asleep Stats Page Ager 384/8192 0/0/139 ms 0% 116 H asleep Cube Server 1392/4096 0/0/4554 ms 0% 117 L asleep IP Reassembly 2224/4096 1/1/24616 ms 0% 118 M asleep Services TOD 1656/4096 0/1/21858 ms 0% 119 M asleep Trap_Info Read PFE 0.0 704/4096 0/0/528 ms 0% 120 M asleep Trap_Info Read PFE 0.1 704/4096 0/0/509 ms 0% 121 M asleep Services TOD 1656/4104 0/1/22103 ms 0% 122 M asleep Trap_Info Read PFE 1.0 704/4104 0/0/1498 ms 0% 123 M asleep Trap_Info Read PFE 1.1 704/4104 0/0/1454 ms 0% 124 L asleep JNH Exception Counter Background Thread 1640/4096 0/3/38066 ms 0% 125 L asleep DDOS Policers 2560/4096 0/3/751495 ms 0% 126 L asleep jnh errors daemon 376/4104 0/0/156 ms 0% 127 L asleep JNH KA Transmit 1504/4104 0/0/4212 ms 0% 128 L asleep VBF PFE Events 352/4104 7/7/7 ms 0% 129 M asleep bulkget Manager 4920/8200 0/0/56 ms 0% 131 M asleep PRECL Chip Generic 512/4104 0/0/2110 ms 0% 132 M asleep PRECL Chip Generic 512/4104 0/0/2149 ms 0% 133 M asleep PRECL Chip Generic 512/4096 0/0/2171 ms 0% 134 M asleep PRECL Chip Generic 512/4096 0/0/1940 ms 0% 1659 L asleep Virtual Console 944/32768 0/0/0 ms 0% 2724 L ready Cattle-Prod Daemon 4272/32768 0/0/5 ms 0% 2725 L asleep Cattle-Prod Daemon 2128/32776 0/0/0 ms 0% py-junos-eznc-2.7.3/tests/unit/factory/rpc-reply/show_toe_pfe_0_xm_0_toe-inst_0_packet-stats.xml000066400000000000000000000261641475361112400330570ustar00rootroot00000000000000 SENT: Ukern command: show toe pfe 0 xm 0 toe-inst 0 packet-stats elapsed time: 101.673 Stream 0: halt flag is NOT set TX Packets accepted: 0000000012665916 transferred: 0000000012665916 rejected: 0000000000000000 TX Descriptors accepted: 0000000012665916 completed: 0000000012665916 TX Rates: packets per second: 1 descriptors per second: 1 bytes per second: 34 descriptors completed since last count: 102 TX Errors: FIFO not initialized: 0000000000000000 head descriptor invalid: 0000000000000000 init descriptor idx invalid: 0000000000000000 packet null: 0000000000000000 packet buffer out of range: 0000000000000000 packet length out of range: 0000000000000000 RX Packets: accepted: 0000000012665827 RX Descriptors: completed: 0000000012665827 recycled: 0000000012665827 recycle fails: 0000000000000000 RX Rates: packets per second: 1 descriptors per second: 1 bytes per second: 34 completed since last count: 102 RX Errors: SOP/prev packet: 0000000000000000 no prev packet: 0000000000000000 no start packet: 0000000000000000 init descriptor idx invalid: 0000000000000000 Other errors: Chip start fail: 0000000000000000 Stream 1: halt flag is NOT set TX Packets accepted: 0000000012665916 transferred: 0000000012665916 rejected: 0000000000000000 TX Descriptors accepted: 0000000012665916 completed: 0000000012665916 TX Rates: packets per second: 1 descriptors per second: 1 bytes per second: 34 descriptors completed since last count: 102 TX Errors: FIFO not initialized: 0000000000000000 head descriptor invalid: 0000000000000000 init descriptor idx invalid: 0000000000000000 packet null: 0000000000000000 packet buffer out of range: 0000000000000000 packet length out of range: 0000000000000000 RX Packets: accepted: 0000000012665827 RX Descriptors: completed: 0000000012665827 recycled: 0000000012665827 recycle fails: 0000000000000000 RX Rates: packets per second: 1 descriptors per second: 1 bytes per second: 34 completed since last count: 102 RX Errors: SOP/prev packet: 0000000000000000 no prev packet: 0000000000000000 no start packet: 0000000000000000 init descriptor idx invalid: 0000000000000000 Other errors: Chip start fail: 0000000000000000 Stream 2: halt flag is NOT set TX Packets accepted: 0000000000000000 transferred: 0000000000000000 rejected: 0000000000000000 TX Descriptors accepted: 0000000000000000 completed: 0000000000000000 TX Rates: packets per second: 0 descriptors per second: 0 bytes per second: 0 descriptors completed since last count: 0 TX Errors: FIFO not initialized: 0000000000000000 head descriptor invalid: 0000000000000000 init descriptor idx invalid: 0000000000000000 packet null: 0000000000000000 packet buffer out of range: 0000000000000000 packet length out of range: 0000000000000000 RX Packets: accepted: 0000000000000000 RX Descriptors: completed: 0000000000000000 recycled: 0000000000000000 recycle fails: 0000000000000000 RX Rates: packets per second: 0 descriptors per second: 0 bytes per second: 0 completed since last count: 0 RX Errors: SOP/prev packet: 0000000000000000 no prev packet: 0000000000000000 no start packet: 0000000000000000 init descriptor idx invalid: 0000000000000000 Other errors: Chip start fail: 0000000000000000 Stream 3: halt flag is NOT set TX Packets accepted: 0000000000000000 transferred: 0000000000000000 rejected: 0000000000000000 TX Descriptors accepted: 0000000000000000 completed: 0000000000000000 TX Rates: packets per second: 0 descriptors per second: 0 bytes per second: 0 descriptors completed since last count: 0 TX Errors: FIFO not initialized: 0000000000000000 head descriptor invalid: 0000000000000000 init descriptor idx invalid: 0000000000000000 packet null: 0000000000000000 packet buffer out of range: 0000000000000000 packet length out of range: 0000000000000000 RX Packets: accepted: 0000000000000000 RX Descriptors: completed: 0000000000000000 recycled: 0000000000000000 recycle fails: 0000000000000000 RX Rates: packets per second: 0 descriptors per second: 0 bytes per second: 0 completed since last count: 0 RX Errors: SOP/prev packet: 0000000000000000 no prev packet: 0000000000000000 no start packet: 0000000000000000 init descriptor idx invalid: 0000000000000000 Other errors: Chip start fail: 0000000000000000 Stream 4: halt flag is NOT set TX Packets accepted: 0000000070932350 transferred: 0000000070932350 rejected: 0000000000000000 TX Descriptors accepted: 0000000070932350 completed: 0000000070932350 TX Rates: packets per second: 5 descriptors per second: 5 bytes per second: 301 descriptors completed since last count: 586 TX Errors: FIFO not initialized: 0000000000000000 head descriptor invalid: 0000000000000000 init descriptor idx invalid: 0000000000000000 packet null: 0000000000000000 packet buffer out of range: 0000000000000000 packet length out of range: 0000000000000000 RX Packets: accepted: 0000000067151069 RX Descriptors: completed: 0000000067151069 recycled: 0000000067151069 recycle fails: 0000000000000000 RX Rates: packets per second: 5 descriptors per second: 5 bytes per second: 367 completed since last count: 552 RX Errors: SOP/prev packet: 0000000000000000 no prev packet: 0000000000000000 no start packet: 0000000000000000 init descriptor idx invalid: 0000000000000000 Other errors: Chip start fail: 0000000000000000 Stream 5: halt flag is NOT set TX Packets accepted: 0000000000000000 transferred: 0000000000000000 rejected: 0000000000000000 TX Descriptors accepted: 0000000000000000 completed: 0000000000000000 TX Rates: packets per second: 0 descriptors per second: 0 bytes per second: 0 descriptors completed since last count: 0 TX Errors: FIFO not initialized: 0000000000000000 head descriptor invalid: 0000000000000000 init descriptor idx invalid: 0000000000000000 packet null: 0000000000000000 packet buffer out of range: 0000000000000000 packet length out of range: 0000000000000000 RX Packets: accepted: 0000000000000000 RX Descriptors: completed: 0000000000000000 recycled: 0000000000000000 recycle fails: 0000000000000000 RX Rates: packets per second: 0 descriptors per second: 0 bytes per second: 0 completed since last count: 0 RX Errors: SOP/prev packet: 0000000000000000 no prev packet: 0000000000000000 no start packet: 0000000000000000 init descriptor idx invalid: 0000000000000000 Other errors: Chip start fail: 0000000000000000 Stream 6: halt flag is NOT set TX Packets accepted: 0000000000000000 transferred: 0000000000000000 rejected: 0000000000000000 TX Descriptors accepted: 0000000000000000 completed: 0000000000000000 TX Rates: packets per second: 0 descriptors per second: 0 bytes per second: 0 descriptors completed since last count: 0 TX Errors: FIFO not initialized: 0000000000000000 head descriptor invalid: 0000000000000000 init descriptor idx invalid: 0000000000000000 packet null: 0000000000000000 packet buffer out of range: 0000000000000000 packet length out of range: 0000000000000000 RX Packets: accepted: 0000000000000000 RX Descriptors: completed: 0000000000000000 recycled: 0000000000000000 recycle fails: 0000000000000000 RX Rates: packets per second: 0 descriptors per second: 0 bytes per second: 0 completed since last count: 0 RX Errors: SOP/prev packet: 0000000000000000 no prev packet: 0000000000000000 no start packet: 0000000000000000 init descriptor idx invalid: 0000000000000000 Other errors: Chip start fail: 0000000000000000 Stream 7: halt flag is NOT set TX Packets accepted: 0000000000000000 transferred: 0000000000000000 rejected: 0000000000000000 TX Descriptors accepted: 0000000000000000 completed: 0000000000000000 TX Rates: packets per second: 0 descriptors per second: 0 bytes per second: 0 descriptors completed since last count: 0 TX Errors: FIFO not initialized: 0000000000000000 head descriptor invalid: 0000000000000000 init descriptor idx invalid: 0000000000000000 packet null: 0000000000000000 packet buffer out of range: 0000000000000000 packet length out of range: 0000000000000000 RX Packets: accepted: 0000000000000000 RX Descriptors: completed: 0000000000000000 recycled: 0000000000000000 recycle fails: 0000000000000000 RX Rates: packets per second: 0 descriptors per second: 0 bytes per second: 0 completed since last count: 0 RX Errors: SOP/prev packet: 0000000000000000 no prev packet: 0000000000000000 no start packet: 0000000000000000 init descriptor idx invalid: 0000000000000000 Other errors: Chip start fail: 0000000000000000 Other errors: RX descriptor error flag: 0 rx tag found in packet buffer: 0x0 rx addr mismatch found in packet buffer: 0x0 rx packets remaining: 0x0 TOE chip: Current TOE status: TOE thread 0 status: Good! (Status code 0x4 Packet Transfer: completed meta-data DMA to ASIC) XM TOE pfe 0 asic 0 toe 0 thread 0 current PC: 0x00000a40 XM TOE pfe 0 asic 0 toe 0 thread 0 reset reg contains 0x00000000 XM TOE pfe 0 asic 0 toe 0 thread 0 reset PC reg contains 0x00000000 XM TOE pfe 0 asic 0 toe 0 thread 0 stall reg contains 0x00000000 TOE congestion: No space in TOE TX packet FIFO: 0 No space in driver RX descriptor FIFO: 0 total captured tokens: 0000000130480204 total nacked tokens: 0000000000000000 py-junos-eznc-2.7.3/tests/unit/factory/rpc-reply/show_ttp_statistics.xml000066400000000000000000000031541475361112400266230ustar00rootroot00000000000000 SENT: Ukern command: show ttp statistics TTP Statistics: Receive Transmit ---------- ---------- L2 Packets 4292 1093544 L3 Packets 542638 0 Drops 0 0 Netwk Fail 0 0 Queue Drops 0 0 Unknown 0 0 Coalesce 0 0 Coalesce Fail 0 0 TTP Transmit Statistics: Queue 0 Queue 1 Queue 2 Queue 3 ---------- ---------- ---------- ---------- L2 Packets 1093544 0 0 0 L3 Packets 0 0 0 0 TTP Receive Statistics: Control High Medium Low Discard ---------- ---------- ---------- ---------- ---------- L2 Packets 0 0 4292 0 0 L3 Packets 0 539172 3466 0 0 Drops 0 0 0 0 0 Queue Drops 0 0 0 0 0 Unknown 0 0 0 0 0 Coalesce 0 0 0 0 0 Coalesce Fail 0 0 0 0 0 TTP Receive Queue Sizes: Control Plane : 0 (max is 4473) High : 0 (max is 4473) Medium : 0 (max is 4473) Low : 0 (max is 2236) TTP Transmit Queue Size: 0 (max is 6710) py-junos-eznc-2.7.3/tests/unit/factory/rpc-reply/show_xmchip_0_li_interrupt-stats.xml000066400000000000000000000023131475361112400312010ustar00rootroot00000000000000 LI interrupt statistics ----------------------- --------------------------------------------------------------- LI Block Interrupt Name Number of Interrupts Last Occurrence --------------------------------------------------------------- 0 pb_overflow 0 - 0 parser_drop 0 - 0 max_len_err 0 - 0 eope_err 23 - 0 bp_nodata_err 0 - 0 dwr_nodata_err 0 - 0 drr_nodata_err 13 - 0 pkt_nodata_err 0 - 0 cookie_sz_err 22 - 1 pb_overflow 0 - 1 parser_drop 0 - 1 max_len_err 11 - 1 eope_err 0 - 1 bp_nodata_err 0 - 1 dwr_nodata_err 0 - 1 drr_nodata_err 0 - 1 pkt_nodata_err 0 - 1 cookie_sz_err 12 - --------------------------------------------------------------- py-junos-eznc-2.7.3/tests/unit/factory/rpc-reply/show_xmchip_0_lo_stats_0.xml000066400000000000000000000074721475361112400274070ustar00rootroot00000000000000 LO statistics (LO block 0) -------------------------- ------------------------------------------------------------------------------------------------ LU Parcel Name Counter Name Total Rate ------------------------------------------------------------------------------------------------ 0 M2L_Packet Parcels sent to LU 7272889727 1502 pps 0 M2L_Packet Parcel bytes sent to LU 146050609612 241032 bps 0 M2L_PacketHead Parcels sent to LU 27896465 6 pps 0 M2L_PacketHead Parcel bytes sent to LU 3738126310 6432 bps 0 M2L_Backpressure Parcels sent to LU 0 0 pps 0 M2L_Backpressure Parcel bytes sent to LU 0 0 bps 0 M2L_ReadDataReply Parcels sent to LU 0 0 pps 0 M2L_ReadDataReply Parcel bytes sent to LU 0 0 bps 0 M2L_WriteDataReply Parcels sent to LU 0 0 pps 0 M2L_WriteDataReply Parcel bytes sent to LU 0 0 bps 0 M2L_StatsUpdate Parcels sent to LU 3735278 0 pps 0 M2L_StatsUpdate Parcel bytes sent to LU 33617502 32 bps 0 M2L_Gauge Parcels sent to LU 0 0 pps 0 M2L_Gauge Parcel bytes sent to LU 0 0 bps 0 M2L_XMReorder_Ack Parcels sent to LU 0 0 pps 0 M2L_XMReorder_Ack Parcel bytes sent to LU 0 0 bps 0 M2L_BulkThreshold Parcels sent to LU 0 0 pps 0 M2L_BulkThreshold Parcel bytes sent to LU 0 0 bps 0 Recirc_Packet Parcels sent to LU 0 0 pps 0 Recirc_Packet Parcel bytes sent to LU 0 0 bps 0 Error parcels sent to LU 410 0 ppsa 0 Parcel drops 0 0 pps 1 M2L_Packet Parcels sent to LU 7280959770 1510 pps 1 M2L_Packet Parcel bytes sent to LU 146203006534 242568 bps 1 M2L_PacketHead Parcels sent to LU 19826422 4 pps 1 M2L_PacketHead Parcel bytes sent to LU 2656740548 4288 bps 1 M2L_Backpressure Parcels sent to LU 0 0 pps 1 M2L_Backpressure Parcel bytes sent to LU 0 0 bps 1 M2L_ReadDataReply Parcels sent to LU 0 0 pps 1 M2L_ReadDataReply Parcel bytes sent to LU 0 0 bps 1 M2L_WriteDataReply Parcels sent to LU 0 0 pps 1 M2L_WriteDataReply Parcel bytes sent to LU 0 0 bps 1 M2L_StatsUpdate Parcels sent to LU 3734751 0 pps 1 M2L_StatsUpdate Parcel bytes sent to LU 33612759 0 bps 1 M2L_Gauge Parcels sent to LU 0 0 pps 1 M2L_Gauge Parcel bytes sent to LU 0 0 bps 1 M2L_XMReorder_Ack Parcels sent to LU 0 0 pps 1 M2L_XMReorder_Ack Parcel bytes sent to LU 0 0 bps 1 M2L_BulkThreshold Parcels sent to LU 0 0 pps 1 M2L_BulkThreshold Parcel bytes sent to LU 0 0 bps 1 Recirc_Packet Parcels sent to LU 0 0 pps 1 Recirc_Packet Parcel bytes sent to LU 0 0 bps 1 Error parcels sent to LU 90 0 pps 1 Parcel drops 0 0 pps ------------------------------------------------------------------------------------------------ py-junos-eznc-2.7.3/tests/unit/factory/rpc-reply/show_xmchip_0_pt_stats.xml000066400000000000000000000014711475361112400271720ustar00rootroot00000000000000 WAN PT statistics (Index 0) --------------------------- PCT entries used by all WI-1 streams : 0 PCT entries used by all WI-0 streams : 0 PCT entries used by all LI streams : 0 CPT entries used by all multicast packets : 0 CPT entries used by all WI-1 streams : 0 CPT entries used by all WI-0 streams : 0 CPT entries used by all LI streams : 0 Fabric PT statistics (Index 1) ------------------------------ PCT entries used by all FI streams : 0 PCT entries used by all WI (Unused) streams : 0 PCT entries used by all LI streams : 0 CPT entries used by all multicast packets : 0 CPT entries used by all FI streams : 0 CPT entries used by all WI (Unused) streams : 0 CPT entries used by all LI streams : 0 py-junos-eznc-2.7.3/tests/unit/factory/rpc-reply/user.xml000066400000000000000000000010711475361112400234540ustar00rootroot00000000000000 test 2000 super-user $$$$$$ py-junos-eznc-2.7.3/tests/unit/factory/test_cfgtable.py000066400000000000000000000521661475361112400232320ustar00rootroot00000000000000__author__ = "Rick Sherman, Nitin Kumar" __credits__ = "Jeremy Schulman" import unittest import os import sys import nose2 import yaml from jnpr.junos import Device from ncclient.manager import Manager, make_device_handler from ncclient.transport import SSHSession from lxml import etree from unittest.mock import MagicMock, patch from jnpr.junos.factory import loadyaml from jnpr.junos.factory.factory_loader import FactoryLoader try: _YAML_ = loadyaml("lib/jnpr/junos/cfgro/srx") except: # Try to load the template relative to test base try: _YAML_ = loadyaml( os.path.join( os.path.dirname(__file__), "../../..", "lib/jnpr/junos/cfgro/srx.yml" ) ) except: raise globals().update(_YAML_) yaml_data = """--- UserTable: get: system/login/user required_keys: user: name view: userView userView: groups: auth: authentication fields: uid: uid class: class uidgroup: { uid: group } fullgroup: { full-name: group } fields_auth: pass: encrypted-password GroupTable: get: groups item: args_key: name options: {} """ globals().update(FactoryLoader().load(yaml.load(yaml_data, Loader=yaml.FullLoader))) yaml_bgp_data = """--- BgpTable: set: protocols/bgp/group key-field: - bgp_name view: BgpView BgpView: groups: neigh : neighbor fields: bgp_name : { 'name' : { 'type' : 'str', 'minValue' : 3, 'maxValue': 12 } } bgp_type : {'type' : {'type': { 'enum': ['external', 'internal'] }, 'default': 'external' } } local_addr : local-address peer : { 'peer-as' : { 'type' : 'int', 'minValue': 0, 'maxValue': 200} } fields_neigh: neigh : name """ globals().update(FactoryLoader().load(yaml.load(yaml_bgp_data, Loader=yaml.FullLoader))) @unittest.skipIf(sys.platform == "win32", "will work for windows in coming days") class TestFactoryCfgTable(unittest.TestCase): @patch("ncclient.manager.connect") def setUp(self, mock_connect): mock_connect.side_effect = self._mock_manager self.dev = Device( host="1.1.1.1", user="rick", password="password123", gather_facts=False ) self.dev.open() self.zit = ZoneIfsTable(self.dev) self.ut = UserTable(self.dev) self.bgp = BgpTable(self.dev) def test_cfgtable_path(self): fname = "user.xml" path = os.path.join(os.path.dirname(__file__), "rpc-reply", fname) ut = UserTable(path=path) ut.get() self.assertEqual(ut[0].uid, "2000") def test_cfgtable_xml(self): fname = "user.xml" xml = self._read_file(fname) ut = UserTable(xml=xml) ut.get() self.assertEqual(ut[0].uid, "2000") @patch("jnpr.junos.Device.execute") def test_cfgtable_junos(self, mock_execute): mock_execute.side_effect = self._mock_manager self.dev.ON_JUNOS = True self.ut.get(user="test") self.assertEqual(self.ut[0]["uidgroup"], "global") @patch("jnpr.junos.Device.execute") @patch("jnpr.junos.jxml.conf_transform") def test_cfgtable_junos1(self, mock_jxml, mock_execute): mock_execute.side_effect = self._mock_manager mock_jxml.result_value = None with patch.dict("sys.modules", junos=MagicMock()): import junos self.dev.ON_JUNOS = True self.bgp.get() self.assertEqual(self.bgp.bgp_type, "external") @patch("jnpr.junos.Device.execute") @patch("jnpr.junos.jxml.conf_transform") def test_cfgtable_junos2(self, mock_jxml, mock_execute): mock_execute.side_effect = self._mock_manager mock_jxml.result_value = None with patch.dict("sys.modules", junos=MagicMock()): import junos junos.Junos_Configuration = None self.dev.ON_JUNOS = True self.bgp.get() self.assertEqual(self.bgp.bgp_type, "external") @patch("jnpr.junos.Device.execute") def test_cfgtable_get(self, mock_execute): mock_execute.side_effect = self._mock_manager self.zit.get(security_zone="untrust") self.assertEqual(len(self.zit), 1) @patch("jnpr.junos.Device.execute") def test_cfgtable_get_group(self, mock_execute): mock_execute.side_effect = self._mock_manager self.ut.get(user="test") self.assertEqual(self.ut[0]["uidgroup"], "global") @patch("jnpr.junos.Device.execute") def test_cfgtable_get_namesonly(self, mock_execute): mock_execute.side_effect = self._mock_manager self.zit.get(security_zone="untrust", namesonly=True) self.assertEqual(self.zit._get_cmd.xpath("//@recurse")[0], "false") @patch("jnpr.junos.Device.execute") def test_cfgtable_get_options(self, mock_execute): mock_execute.side_effect = self._mock_manager self.zit.get( security_zone="untrust", options={"inherit": "defaults", "groups": "groups"} ) self.assertEqual(self.zit._get_opt, {"inherit": "defaults", "groups": "groups"}) @patch("jnpr.junos.Device.execute") def test_cfgtable_table_options(self, mock_execute): mock_execute.side_effect = self._mock_manager gt = GroupTable(self.dev) gt.get() self.assertEqual(gt._get_opt, {}) def test_optable_get_key_required_error(self): self.assertRaises(ValueError, self.zit.get) @patch("jnpr.junos.Device.execute") def test_cfgtable_get_caller_provided_kvargs(self, mock_execute): mock_execute.side_effect = self._mock_manager self.zit.get(security_zone="untrust", key="test") self.assertTrue(mock_execute.called) def test_cfgtable_key_value_none(self): self.assertRaises(ValueError, self.zit.get, securityzone="untrust") @patch("jnpr.junos.Device.execute") def test_cfgtable_get_fields(self, mock_execute): mock_execute.side_effect = self._mock_manager self.zit._data_dict["get_fields"] = ["system-services"] self.zit.get(security_zone="untrust", key="host-inbound-traffic") self.assertTrue("get_fields" in self.zit._data_dict) def test_cfgtable_dot_none_RuntimeError(self): ret_val = ( "" '' "" ) self.zit._buildxml = MagicMock(return_value=etree.fromstring(ret_val)) self.assertRaises(RuntimeError, self.zit.get, security_zone="abc") @patch("jnpr.junos.Device.execute") def test_cfgtable_set(self, mock_execute): self.bgp.rpc.lock_configuration = MagicMock() self.bgp.bgp_name = "external_1" self.bgp.append() self.bgp.set() xml = self.bgp.get_table_xml() self.assertEqual(xml.xpath("protocols/bgp/group/name")[0].text, "external_1") @patch("jnpr.junos.Device.execute") def test_cfgtable_set_inactive(self, mock_execute): yaml_auto_data = """--- UserConfigTable1: set: system/login key-field: - username view: UserConfigView1 UserConfigView1: groups: auth: authentication fields: user: user username: user/name classname: { user/class : { 'type' : { 'enum' : ['operator', 'read-only', 'super-user'] } } } uid: { user/uid : { 'type' : 'int', 'minValue' : 100, 'maxValue' : 64000 } } fields_auth: password: user/encrypted-password """ globals().update( FactoryLoader().load(yaml.load(yaml_auto_data, Loader=yaml.FullLoader)) ) at = UserConfigTable1(self.dev) at.rpc.lock_configuration = MagicMock() at.username = "user1" at.user = {"inactive": "inactive"} at.append() at.set() xml = at.get_table_xml() self.assertEqual( xml.xpath('system/login/user[@inactive="inactive"]/name')[0].text, "user1" ) @patch("jnpr.junos.Device.execute") def test_cfgtable_set_bool(self, mock_execute): yaml_auto_data = """--- UserConfigTable1: set: system/login key-field: - username view: UserConfigView1 UserConfigView1: groups: auth: authentication fields: user: user username: user/name classname: { user/class : { 'type' : { 'enum' : ['operator', 'read-only', 'super-user'] } } } uid: { user/uid : { 'type' : bool , 'default' :False} } fields_auth: password: user/encrypted-password """ globals().update( FactoryLoader().load(yaml.load(yaml_auto_data, Loader=yaml.FullLoader)) ) at = UserConfigTable1(self.dev) at.rpc.lock_configuration = MagicMock() at.username = True at.user = {"inactive": "inactive"} at.append() at.set() xml = at.get_table_xml() self.assertNotEqual(xml.xpath("system/login/user/name")[0].text, "user1") @patch("jnpr.junos.Device.execute") def test_cfgtable_load(self, mock_execute): self.bgp.rpc.lock_configuration = MagicMock() self.bgp.bgp_name = "external_1" self.bgp.append() self.bgp.bgp_name = "external_2" self.bgp.append() self.bgp.load() xml = self.bgp.get_table_xml() self.assertEqual(xml.xpath("protocols/bgp/group/name")[0].text, "external_1") self.assertEqual(xml.xpath("protocols/bgp/group/name")[1].text, "external_2") @patch("jnpr.junos.Device.execute") def test_cfgtable_set_group(self, mock_execute): self.bgp.rpc.lock_configuration = MagicMock() self.bgp.bgp_name = "external_1" self.bgp.neigh = ["30.30.10.10"] self.bgp.bgp_type = "external" self.bgp.append() self.bgp.set() xml = self.bgp.get_table_xml() self.assertEqual(xml.xpath("protocols/bgp/group/name")[0].text, "external_1") self.assertEqual( xml.xpath("protocols/bgp/group/neighbor/name")[0].text, "30.30.10.10" ) self.assertEqual(xml.xpath("protocols/bgp/group/type")[0].text, "external") @patch("jnpr.junos.Device.execute") def test_cfgtable_dict_set(self, mock_execute): self.bgp.rpc.lock_configuration = MagicMock() self.bgp["bgp_name"] = "external_3" self.bgp.append() self.bgp.set() xml = self.bgp.get_table_xml() self.assertEqual(xml.xpath("protocols/bgp/group/name")[0].text, "external_3") @patch("jnpr.junos.Device.execute") def test_cfgtable_invalid_field_error(self, mock_execute): def invalid_field(): self.bgp.xyz = "bad" self.assertRaises(ValueError, invalid_field) @patch("jnpr.junos.Device.execute") def test_cfgtable_invalid_field_dict_error(self, mock_execute): def invalid_field_dict(): self.bgp["xyz"] = "bad" self.assertRaises(ValueError, invalid_field_dict) @patch("jnpr.junos.Device.execute") def test_cfgtable_set_no_key_error(self, mock_execute): self.assertRaises(ValueError, self.bgp.append) @patch("jnpr.junos.Device.execute") def test_cfgtable_enum_error(self, mock_execute): self.bgp.bgp_name = "external_1" self.bgp.bgp_type = "abc" self.assertRaises(ValueError, self.bgp.append) @patch("jnpr.junos.Device.execute") def test_cfgtable_str_min_max_value_error(self, mock_execute): self.bgp.bgp_name = "ex" self.assertRaises(ValueError, self.bgp.append) @patch("jnpr.junos.Device.execute") def test_cfgtable_int_min_max_value_error(self, mock_execute): self.bgp.bgp_name = "external_1" self.bgp.peer = 300 self.assertRaises(ValueError, self.bgp.append) @patch("jnpr.junos.Device.execute") def test_cfgtable_invalid_field_value_error(self, mock_execute): self.bgp.bgp_name = "external_1" self.bgp.peer = [[100]] self.assertRaises(ValueError, self.bgp.append) @patch("jnpr.junos.Device.execute") def test_cfgtable_str_key_field(self, mock_execute): yaml_auto_data = """--- AutoSysTable: set: routing-options/autonomous-system key-field: as_num view: AutoSysView AutoSysView: fields: as_num: as-number """ globals().update( FactoryLoader().load(yaml.load(yaml_auto_data, Loader=yaml.FullLoader)) ) at = AutoSysTable(self.dev) at.rpc.lock_configuration = MagicMock() at.as_num = 100 at.append() at.set() xml = at.get_table_xml() self.assertEqual( xml.xpath("routing-options/autonomous-system/as-number")[0].text, "100" ) @patch("jnpr.junos.Device.execute") def test_cfgtable_field_value_xpath(self, mock_execute): yaml_auto_data = """--- AutoSysTable: set: routing-options key-field: as_num view: AutoSysView AutoSysView: fields: as_num: autonomous-system/as-number """ globals().update( FactoryLoader().load(yaml.load(yaml_auto_data, Loader=yaml.FullLoader)) ) at = AutoSysTable(self.dev) at.rpc.lock_configuration = MagicMock() at.as_num = 150 at.append() at.set() xml = at.get_table_xml() self.assertEqual( xml.xpath("routing-options/autonomous-system/as-number")[0].text, "150" ) @patch("jnpr.junos.Device.execute") def test_cfgtable_user_defined_type_error(self, mock_execute): yaml_auto_data = """--- AutoSysTable: set: routing-options/autonomous-system key-field: - as_num view: AutoSysView AutoSysView: fields: as_num: {'as-number': {'type': {'UserDefined': ''}}} """ globals().update( FactoryLoader().load(yaml.load(yaml_auto_data, Loader=yaml.FullLoader)) ) at = AutoSysTable(self.dev) at.rpc.lock_configuration = MagicMock() at.as_num = 100 self.assertRaises(TypeError, at.append) @patch("jnpr.junos.Device.execute") def test_cfgtable_wrong_type_error(self, mock_execute): yaml_auto_data = """--- AutoSysTable: set: routing-options/autonomous-system key-field: - as_num view: AutoSysView AutoSysView: fields: as_num: {'as-number' : { 'type' : 'int'} } """ globals().update( FactoryLoader().load(yaml.load(yaml_auto_data, Loader=yaml.FullLoader)) ) at = AutoSysTable(self.dev) at.as_num = "100" self.assertRaises(TypeError, at.append) @patch("jnpr.junos.Device.execute") def test_cfgtable_unsupported_type_error(self, mock_execute): yaml_auto_data = """--- AutoSysTable: set: routing-options/autonomous-system key-field: - as_num view: AutoSysView AutoSysView: fields: as_num: {'as-number' : { 'type' : 'interger'} } """ globals().update( FactoryLoader().load(yaml.load(yaml_auto_data, Loader=yaml.FullLoader)) ) at = AutoSysTable(self.dev) at.as_num = 100 self.assertRaises(TypeError, at.append) @patch("jnpr.junos.Device.execute") def test_cfgtable_enum_value_str_error(self, mock_execute): yaml_auto_data = """--- AutoSysTable: set: routing-options/autonomous-system key-field: - as_num view: AutoSysView AutoSysView: fields: as_num: {'as-number' : {'type' : {'enum': '100'}}} """ globals().update( FactoryLoader().load(yaml.load(yaml_auto_data, Loader=yaml.FullLoader)) ) at = AutoSysTable(self.dev) at.as_num = 100 self.assertRaises(ValueError, at.append) @patch("jnpr.junos.Device.execute") def test_cfgtable_enum_value_type_error(self, mock_execute): yaml_auto_data = """--- AutoSysTable: set: routing-options/autonomous-system key-field: - as_num view: AutoSysView AutoSysView: fields: as_num: {'as-number' : {'type' : {'enum': {'100': ''}}}} """ globals().update( FactoryLoader().load(yaml.load(yaml_auto_data, Loader=yaml.FullLoader)) ) at = AutoSysTable(self.dev) at.as_num = 100 self.assertRaises(TypeError, at.append) @patch("jnpr.junos.Device.execute") def test_cfgtable_invalid_type_error(self, mock_execute): yaml_auto_data = """--- AutoSysTable: set: routing-options/autonomous-system key-field: - as_num view: AutoSysView AutoSysView: fields: as_num: {'as-number': {'type': ['abc']}} """ globals().update( FactoryLoader().load(yaml.load(yaml_auto_data, Loader=yaml.FullLoader)) ) at = AutoSysTable(self.dev) at.as_num = 100 self.assertRaises(TypeError, at.append) @patch("jnpr.junos.Device.execute") def test_cfgtable_invalid_key_field_type_error(self, mock_execute): yaml_auto_data = """--- AutoSysTable: set: routing-options/autonomous-system key-field: as_num : as-number view: AutoSysView AutoSysView: fields: as_num: as-number """ globals().update( FactoryLoader().load(yaml.load(yaml_auto_data, Loader=yaml.FullLoader)) ) self.assertRaises(TypeError, AutoSysTable, self.dev) @patch("jnpr.junos.Device.execute") def test_cfgtable_invalid_key_field_not_defined_error(self, mock_execute): yaml_auto_data = """--- AutoSysTable: set: routing-options/autonomous-system view: AutoSysView AutoSysView: fields: as_num: as-number """ globals().update( FactoryLoader().load(yaml.load(yaml_auto_data, Loader=yaml.FullLoader)) ) self.assertRaises(ValueError, AutoSysTable, self.dev) @patch("jnpr.junos.Device.execute") def test_cfgtable_invalid_view_not_defined_type_error(self, mock_execute): yaml_auto_data = """--- AutoSysTable: set: routing-options/autonomous-system """ globals().update( FactoryLoader().load(yaml.load(yaml_auto_data, Loader=yaml.FullLoader)) ) self.assertRaises(ValueError, AutoSysTable, self.dev) @patch("jnpr.junos.Device.execute") def test_cfgtable_set_append_not_call_error(self, mock_execute): self.bgp.rpc.lock_configuration = MagicMock() self.bgp["bgp_name"] = "external_3" self.assertRaises(RuntimeError, self.bgp.set) @patch("jnpr.junos.Device.execute") def test_cfgtable_load_append_not_call_error(self, mock_execute): self.bgp["bgp_name"] = "external_3" self.assertRaises(RuntimeError, self.bgp.load) @patch("jnpr.junos.Device.execute") def test_cfgtable_unfreeze(self, mock_execute): self.bgp._unfreeze() self.assertEqual(self.bgp._CfgTable__isfrozen, False) @patch("jnpr.junos.Device.execute") @patch("jnpr.junos.utils.config.Config.lock") @patch("jnpr.junos.utils.config.Config.unlock") def test_cfgtable_with_block(self, mock_execute, mock_unlock, mock_lock): with BgpTable(self.dev, mode="exclusive") as bgp: bgp.rpc.lock_configuration = MagicMock() bgp.bgp_name = "external_1" bgp.append() bgp.load() self.assertTrue(mock_lock.called and mock_unlock.called) def _read_file(self, fname): from ncclient.xml_ import NCElement fpath = os.path.join(os.path.dirname(__file__), "rpc-reply", fname) foo = open(fpath).read() if fname == "user.xml": return etree.fromstring(foo) rpc_reply = NCElement( foo, self.dev._conn._device_handler.transform_reply() )._NCElement__doc[0] return rpc_reply def _mock_manager(self, *args, **kwargs): if kwargs: device_params = kwargs["device_params"] device_handler = make_device_handler(device_params) session = SSHSession(device_handler) return Manager(session, device_handler) if args: if args[0].xpath("//configuration/system/login/user"): return self._read_file("get-configuration-user.xml") else: return self._read_file(args[0].tag + ".xml") py-junos-eznc-2.7.3/tests/unit/factory/test_cmdtable.py000066400000000000000000002370451475361112400232370ustar00rootroot00000000000000__author__ = "Nitin Kumar" __credits__ = "Jeremy Schulman" import unittest import os import nose2 from jnpr.junos import Device from jnpr.junos.exception import RpcError from ncclient.manager import Manager, make_device_handler from ncclient.transport import SSHSession from unittest.mock import MagicMock, patch import yamlordereddictloader from jnpr.junos.factory.factory_loader import FactoryLoader import yaml import json class TestFactoryCMDTable(unittest.TestCase): @patch("ncclient.manager.connect") def setUp(self, mock_connect): mock_connect.side_effect = self._mock_manager self.dev = Device( host="1.1.1.1", user="rick", password="password123", gather_facts=False ) self.dev.open() @patch("jnpr.junos.Device.execute") def test_unstructured_cmerror(self, mock_execute): mock_execute.side_effect = self._mock_manager yaml_data = """ --- CMErrorTable: command: show cmerror module brief target: Null key: - module view: CMErrorView CMErrorView: columns: module: Module name: Name errors: Active Errors filters: - errors - name """ globals().update( FactoryLoader().load( yaml.load(yaml_data, Loader=yamlordereddictloader.Loader) ) ) stats = CMErrorTable(self.dev) stats = stats.get(target="fpc1") self.assertEqual( dict(stats), { 1: {"errors": 0, "name": "PQ3 Chip"}, 2: {"errors": 0, "name": "Host Loopback"}, 3: {"errors": 0, "name": "CM[0]"}, 4: {"errors": 0, "name": "CM[1]"}, 5: {"errors": 0, "name": "LUCHIP(0)"}, 6: {"errors": 0, "name": "TOE-LU-0:0:0"}, }, ) self.assertEqual(repr(stats), "CMErrorTable:1.1.1.1: 6 items") self.assertEqual(len(stats), 6) @patch("jnpr.junos.Device.execute") def test_unstructured_sysctl_oneline_op(self, mock_execute): mock_execute.side_effect = self._mock_manager yaml_data = """ --- sysctlVeriexecTable: command: request routing-engine execute command sysctl dummy view: sysctlView sysctlView: regex: veriexec-name: '(.*):' veriexec-state: '(.*)' """ globals().update( FactoryLoader().load( yaml.load(yaml_data, Loader=yamlordereddictloader.Loader) ) ) stats = sysctlVeriexecTable(self.dev) stats = stats.get() self.assertEqual( dict(stats), { "veriexec-name": "security.mac.veriexec.state", "veriexec-state": "loaded active enforce", }, ) self.assertEqual(repr(stats), "sysctlVeriexecTable:1.1.1.1: 2 items") self.assertEqual(len(stats), 2) @patch("jnpr.junos.Device.execute") def test_unstructured_cmerror_multiline_header(self, mock_execute): mock_execute.side_effect = self._mock_manager yaml_data = """ --- CMErrorTable: command: show cmerror module brief dummy multiline target: Null key: module view: CMErrorView CMErrorView: columns: module: Module name: Name errors: Active Errors pfe: - PFE - Specific callback: - Callback - Function data: ModuleData """ globals().update( FactoryLoader().load( yaml.load(yaml_data, Loader=yamlordereddictloader.Loader) ) ) stats = CMErrorTable(self.dev) stats = stats.get(target="fpc1") self.assertEqual( dict(stats), { 1: { "errors": 0, "pfe": "Yes", "name": "PQ3 Chip", "module": 1, "callback": "0x00000000", "data": "0x00000000", }, 2: { "errors": 0, "pfe": "No", "name": "Host Loopback", "module": 2, "callback": "0x00000000", "data": "0x464295b0", }, 3: { "errors": 0, "pfe": "No", "name": "CM[0]", "module": 3, "callback": "0x41f550f0", "data": "0x462f767c", }, 4: { "errors": 0, "pfe": "No", "name": "LUCHIP(0)", "module": 4, "callback": "0x00000000", "data": "0x481b84d8", }, }, ) self.assertEqual(repr(stats), "CMErrorTable:1.1.1.1: 4 items") self.assertEqual(len(stats), 4) def test_view_variable(self): yaml_data = """ --- CMErrorTable: command: show cmerror module brief target: Null key: module view: CMErrorView CMErrorView: columns: module: Module name: Name errors: Active Errors """ globals().update( FactoryLoader().load( yaml.load(yaml_data, Loader=yamlordereddictloader.Loader) ) ) stats = CMErrorTable(self.dev) stats.view = globals()["CMErrorView"] self.assertEqual(stats.view, globals()["CMErrorView"]) def test_view_setter_raise_exception(self): yaml_data = """ --- CMErrorTable: command: show cmerror module brief target: Null key: module view: CMErrorView CMErrorView: columns: module: Module name: Name errors: Active Errors """ globals().update( FactoryLoader().load( yaml.load(yaml_data, Loader=yamlordereddictloader.Loader) ) ) stats = CMErrorTable(self.dev) with self.assertRaises(ValueError): stats.view = "dummy" @patch("paramiko.SSHClient") @patch("jnpr.junos.utils.start_shell.StartShell.wait_for") @patch("jnpr.junos.Device.execute") def test_request_pfe_rpc_not_avialable(self, mock_execute, mock_ss, mock_ssh_conn): mock_execute.side_effect = RpcError(rsp="ok") yaml_data = """ --- CMErrorTable: command: show cmerror module brief target: fpc1 key: module view: CMErrorView CMErrorView: columns: module: Module name: Name """ globals().update( FactoryLoader().load( yaml.load(yaml_data, Loader=yamlordereddictloader.Loader) ) ) stats = CMErrorTable(self.dev) with patch("jnpr.junos.utils.start_shell.StartShell.run") as ss_run: stats.get() ss_run.assert_called_with('cprod -A fpc1 -c "show cmerror module brief"') @patch("jnpr.junos.Device.execute") def test_get_api_params(self, mock_execute): mock_execute.side_effect = self._mock_manager yaml_data = """ --- CMErrorTable: command: show cmerror module brief target: fpc1 key: name view: CMErrorView CMErrorView: columns: module: Module name: Name errors: Active Errors """ globals().update( FactoryLoader().load( yaml.load(yaml_data, Loader=yamlordereddictloader.Loader) ) ) stats = CMErrorTable(self.dev) stats.get(key="module", key_items=[1], filters=["errors"]) self.assertEqual(dict(stats), {1: {"errors": 0}}) @patch("jnpr.junos.Device.execute") def test_cmdview_properties(self, mock_execute): mock_execute.side_effect = self._mock_manager yaml_data = """ --- CMErrorTable: command: show cmerror module brief target: fpc1 key: name view: CMErrorView CMErrorView: columns: module: Module name: Name errors: Active Errors """ globals().update( FactoryLoader().load( yaml.load(yaml_data, Loader=yamlordereddictloader.Loader) ) ) stats = CMErrorTable(self.dev).get() self.assertEqual(stats.VIEW.T.__class__.__name__, "property") self.assertEqual(stats.VIEW.xml.__class__.__name__, "property") expected = [ "Host Loopback", "CM[1]", "CM[0]", "LUCHIP(0)", "TOE-LU-0:0:0", "PQ3 Chip", ] expected.sort() got_keys = list(stats.keys()) got_keys.sort() self.assertListEqual(got_keys, expected) got_values = list(stats.values()) got_items = list(stats.items()) self.assertEqual(repr(stats), "CMErrorTable:1.1.1.1: 6 items") @patch("jnpr.junos.Device.execute") def test_cmdtable_iter(self, mock_execute): mock_execute.side_effect = self._mock_manager yaml_data = """ --- FPCLinkStatTable: command: show link stats target: Null delimiter: ":" """ globals().update( FactoryLoader().load( yaml.load(yaml_data, Loader=yamlordereddictloader.Loader) ) ) stats = FPCLinkStatTable(self.dev) stats = stats.get(target="fpc1") self.assertEqual( {k: v for k, v in stats}, { "PPP LCP/NCP": 0, "ISIS": 0, "BFD": 15, "OAM": 0, "ETHOAM": 0, "LACP": 0, "LMI": 0, "UBFD": 0, "HDLC keepalives": 0, "OSPF Hello": 539156, "RSVP": 0, }, ) @patch("jnpr.junos.Device.execute") def test_title_in_view(self, mock_execute): mock_execute.side_effect = self._mock_manager yaml_data = r""" --- ShowLuchipTable: command: show luchip {{ lu_instance }} target: Null args: lu_instance: 0 key: ppe view: ShowLuchipView ShowLuchipView: title: PPE Zone Enable masks and (active) regex: ppe: 'PPE\[(\d+)\]' zone_enable_mask: 'Zone Enable Mask (0x[a-z0-9]+)' active_zones: '\((0x[a-z0-9]+)\)' """ globals().update( FactoryLoader().load( yaml.load(yaml_data, Loader=yamlordereddictloader.Loader) ) ) stats = ShowLuchipTable(self.dev) stats = stats.get(target="fpc1") self.assertEqual( dict(stats), { 0: { "active_zones": "0x00000000", "ppe": 0, "zone_enable_mask": "0xfcff0ffe", }, 1: { "active_zones": "0x00000000", "ppe": 1, "zone_enable_mask": "0xfcff0fff", }, 2: { "active_zones": "0x00000000", "ppe": 2, "zone_enable_mask": "0xfcff0fff", }, 3: { "active_zones": "0x00000000", "ppe": 3, "zone_enable_mask": "0xfcff0fff", }, 4: { "active_zones": "0x00000000", "ppe": 4, "zone_enable_mask": "0xfcff0fff", }, 5: { "active_zones": "0x00000000", "ppe": 5, "zone_enable_mask": "0xfcff0fff", }, 6: { "active_zones": "0x00000000", "ppe": 6, "zone_enable_mask": "0xfcff0fff", }, 7: { "active_zones": "0x00000000", "ppe": 7, "zone_enable_mask": "0xfcff0fff", }, 8: { "active_zones": "0x00000000", "ppe": 8, "zone_enable_mask": "0xfcff0fff", }, 9: { "active_zones": "0x00000000", "ppe": 9, "zone_enable_mask": "0xfcff0fff", }, 10: { "active_zones": "0x00000100", "ppe": 10, "zone_enable_mask": "0xfcff0fff", }, 11: { "active_zones": "0x00000000", "ppe": 11, "zone_enable_mask": "0xfcff0fff", }, 12: { "active_zones": "0x00000000", "ppe": 12, "zone_enable_mask": "0xfcff0fff", }, 13: { "active_zones": "0x00000000", "ppe": 13, "zone_enable_mask": "0xfcff0fff", }, 14: { "active_zones": "0x00000000", "ppe": 14, "zone_enable_mask": "0xfcff0fff", }, 15: { "active_zones": "0x00000000", "ppe": 15, "zone_enable_mask": "0xfcff0fff", }, }, ) @patch("jnpr.junos.Device.execute") def test_unstructured_linkstats(self, mock_execute): mock_execute.side_effect = self._mock_manager yaml_data = """ --- FPCLinkStatTable: command: show link stats target: Null delimiter: ":" """ globals().update( FactoryLoader().load( yaml.load(yaml_data, Loader=yamlordereddictloader.Loader) ) ) stats = FPCLinkStatTable(self.dev) stats = stats.get(target="fpc1") self.assertEqual( dict(stats), { "PPP LCP/NCP": 0, "ISIS": 0, "BFD": 15, "OAM": 0, "ETHOAM": 0, "LACP": 0, "LMI": 0, "UBFD": 0, "HDLC keepalives": 0, "OSPF Hello": 539156, "RSVP": 0, }, ) @patch("jnpr.junos.Device.execute") def test_field_eval(self, mock_execute): mock_execute.side_effect = self._mock_manager yaml_data = r""" --- XMChipStatsTable: command: show xmchip {{ instance }} pt stats args: instance: -1 target: fpc2 item: '*' view: XMChipStatsView XMChipStatsView: regex: pct_wi_1: 'PCT entries used by all WI-1 streams\s+:\s?(\d+)' pct_wi_0: 'PCT entries used by all WI-0 streams\s+:\s?(\d+)' eval: total_pct: '{{ pct_wi_1 }} + {{ pct_wi_0 }}' """ globals().update( FactoryLoader().load( yaml.load(yaml_data, Loader=yamlordereddictloader.Loader) ) ) stats = XMChipStatsTable(self.dev) stats = stats.get(target="fpc1", args={"instance": 0}) self.assertEqual(dict(stats), {"pct_wi_1": 0, "pct_wi_0": 0, "total_pct": 0}) @patch("jnpr.junos.Device.execute") def test__contains__(self, mock_execute): mock_execute.side_effect = self._mock_manager yaml_data = """ --- FPCLinkStatTable: command: show link stats target: Null delimiter: ":" """ globals().update( FactoryLoader().load( yaml.load(yaml_data, Loader=yamlordereddictloader.Loader) ) ) stats = FPCLinkStatTable(self.dev) stats = stats.get(target="fpc1") self.assertTrue("OSPF Hello" in stats) @patch("jnpr.junos.Device.execute") def test_unstructured_ttpstatistics(self, mock_execute): mock_execute.side_effect = self._mock_manager yaml_data = """ --- FPCTTPStatsTable: command: show ttp statistics target: Null view: FPCTTPStatsView FPCTTPStatsView: fields: TTPStatistics: _FPCTTPStatisticsTable TTPTransmitStatistics: _FPCTTPTransmitStatisticsTable TTPReceiveStatistics: _FPCTTPReceiveStatisticsTable TTPQueueSizes: _FPCTTPQueueSizesTable TTPQueueSizes2: _FPCTTPQueueSizesTable2 _FPCTTPStatisticsTable: title: TTP Statistics view: _FPCTTPStatisticsView _FPCTTPStatisticsView: columns: rcvd: Receive tras: Transmit _FPCTTPTransmitStatisticsTable: title: TTP Transmit Statistics view: _FPCTTPTransmitStatisticsView _FPCTTPTransmitStatisticsView: columns: queue0: Queue 0 queue1: Queue 1 queue2: Queue 2 queue3: Queue 3 filters: - queue2 _FPCTTPReceiveStatisticsTable: title: TTP Receive Statistics key: name key_items: - Coalesce view: _FPCTTPReceiveStatisticsView _FPCTTPReceiveStatisticsView: columns: control: Control high: High medium: Medium low: Low discard: Discard _FPCTTPQueueSizesTable: title: TTP Receive Queue Sizes delimiter: ":" key_items: - High - Low # view: _FPCTTPQueueSizesView _FPCTTPQueueSizesTable2: title: TTP Receive Queue Sizes delimiter: ":" key_items: - High - Low # view: _FPCTTPQueueSizesView _FPCTTPQueueSizesView: fields: high: High TTPReceiveStatsTable: command: show ttp statistics target: Null title: TTP Receive Statistics key: name view: FPCTTPReceiveStatsView FPCTTPReceiveStatsView: columns: control: Control high: High medium: Medium low: Low discard: Discard """ globals().update( FactoryLoader().load( yaml.load(yaml_data, Loader=yamlordereddictloader.Loader) ) ) stats = FPCTTPStatsTable(self.dev) stats = stats.get(target="fpc2") self.assertEqual( dict(stats), { "TTPQueueSizes": {"High": "0 (max is 4473)", "Low": "0 (max is 2236)"}, "TTPQueueSizes2": {"High": "0 (max is 4473)", "Low": "0 (max is 2236)"}, "TTPReceiveStatistics": { "Coalesce": { "control": 0, "discard": 0, "high": 0, "low": 0, "medium": 0, "name": "Coalesce", } }, "TTPStatistics": { "Coalesce": {"name": "Coalesce", "rcvd": 0, "tras": 0}, "Coalesce Fail": {"name": "Coalesce Fail", "rcvd": 0, "tras": 0}, "Drops": {"name": "Drops", "rcvd": 0, "tras": 0}, "L2 Packets": {"name": "L2 Packets", "rcvd": 4292, "tras": 1093544}, "L3 Packets": {"name": "L3 Packets", "rcvd": 542638, "tras": 0}, "Netwk Fail": {"name": "Netwk Fail", "rcvd": 0, "tras": 0}, "Queue Drops": {"name": "Queue Drops", "rcvd": 0, "tras": 0}, "Unknown": {"name": "Unknown", "rcvd": 0, "tras": 0}, }, "TTPTransmitStatistics": { "L2 Packets": {"queue2": 0}, "L3 Packets": {"queue2": 0}, }, }, ) @patch("jnpr.junos.Device.execute") def test_unstructured_mtip_cge_regex(self, mock_execute): mock_execute.side_effect = self._mock_manager yaml_data = r""" --- MtipCgeSummaryTable: command: show mtip-cge summary target: Null key: id view: MtipCgeSummaryView MtipCgeSummaryView: regex: id: numbers name: "[a-z0-9_.]+" fpc: numbers pic: numbers ifd: '(\w+-\d(/\d){2})' ptr: "[a-f0-9]+" MtipCgeStatisticsTable: command: show mtip-cge {{ mtip_id }} statistics args: mtip_id: 11 target: Null delimiter: ":" title: Statistics key_items: - aFrameCheckSequenceErrors - aAlignmentErrors - aPAUSEMACCtrlFramesTransmitted - aPAUSEMACCtrlFramesReceived - aFrameTooLongErrors - aInRangeLengthErrors """ globals().update( FactoryLoader().load( yaml.load(yaml_data, Loader=yamlordereddictloader.Loader) ) ) stats = MtipCgeSummaryTable(self.dev) stats = stats.get(target="fpc2") self.assertEqual( dict(stats), { 2: { "fpc": 1, "id": 2, "ifd": "et-1/0/0", "name": "mtip_cge.1.0.0", "pic": 0, "ptr": "4f119fb8", }, 4: { "fpc": 1, "id": 4, "ifd": "et-1/2/0", "name": "mtip_cge.1.2.0", "pic": 2, "ptr": "4f119c98", }, 5: { "fpc": 1, "id": 5, "ifd": "et-1/2/1", "name": "mtip_cge.1.2.1", "pic": 2, "ptr": "4f119bf8", }, }, ) @patch("jnpr.junos.Device.execute") def test_unstructured_icmpstats_nested(self, mock_execute): mock_execute.side_effect = self._mock_manager yaml_data = """ --- ICMPStatsTable: command: show icmp statistics target: Null view: ICMPStatsView ICMPStatsView: fields: statistics: _ICMPStatisticsTable discards: _ICMPDiscardsTable errors: _ICMPErrorsTable rate: _ICMPRateTable _ICMPStatisticsTable: title: ICMP Statistics key: name view: _ICMPStatisticsView _ICMPStatisticsView: regex: value: numbers name: words _ICMPDiscardsTable: title: ICMP Discards key: name view: _ICMPDiscardsView _ICMPDiscardsView: regex: value: numbers name: words _ICMPErrorsTable: title: ICMP Errors key: name view: _ICMPErrorsView _ICMPErrorsView: regex: error: numbers name: words _ICMPRateTable: title: ICMP Rate Limit Settings key: name view: _ICMPRateView _ICMPRateView: regex: rate: numbers name: words """ globals().update( FactoryLoader().load( yaml.load(yaml_data, Loader=yamlordereddictloader.Loader) ) ) stats = ICMPStatsTable(self.dev) stats = stats.get(target="fpc2") self.assertEqual( dict(stats), { "discards": { "bad source addresses": { "name": "bad source addresses", "value": 0, }, "unknown originators": {"name": "unknown originators", "value": 0}, "bad dest addresses": {"name": "bad dest addresses", "value": 0}, "multicasts": {"name": "multicasts", "value": 0}, "IP fragments": {"name": "IP fragments", "value": 0}, "ICMP errors": {"name": "ICMP errors", "value": 0}, }, "rate": { "pps total": {"rate": 1000, "name": "pps total"}, "pps per iff": {"rate": 500, "name": "pps per iff"}, }, "statistics": { "other unreachables": {"name": "other unreachables", "value": 0}, "redirects": {"name": "redirects", "value": 0}, "igmp v1 handoffs": {"name": "igmp v1 handoffs", "value": 0}, "parameter problems": {"name": "parameter problems", "value": 0}, "throttled": {"name": "throttled", "value": 0}, "tag te requests": {"name": "tag te requests", "value": 0}, "network unreachables": { "name": "network unreachables", "value": 0, }, "source route denials": { "name": "source route denials", "value": 0, }, "filter prohibited": {"name": "filter prohibited", "value": 0}, "ttl captured": {"name": "ttl captured", "value": 0}, "mtu exceeded": {"name": "mtu exceeded", "value": 0}, "requests": {"name": "requests", "value": 0}, "icmp": {"name": "icmp", "value": 0}, "ttl expired": {"name": "ttl expired", "value": 0}, "tag te to RE": {"name": "tag te to RE", "value": 0}, }, "errors": { "bad nh lookup": {"name": "bad nh lookup", "error": 0}, "invalid ICMP type": {"name": "invalid ICMP type", "error": 0}, "unprocessed redirects": { "name": "unprocessed redirects", "error": 0, }, "bad cf mtu": {"name": "bad cf mtu", "error": 0}, "bad route lookup": {"name": "bad route lookup", "error": 0}, "invalid protocol": {"name": "invalid protocol", "error": 0}, "runts": {"name": "runts", "error": 0}, "bad input interface": {"name": "bad input interface", "error": 0}, "unsupported ICMP type": { "name": "unsupported ICMP type", "error": 0, }, "unknown unreachables": { "name": "unknown unreachables", "error": 0, }, }, }, ) self.assertTrue(stats.D.__class__.__name__ == "Device") @patch("jnpr.junos.Device.execute") def test_unstructured_ithrottle_key_args(self, mock_execute): mock_execute.side_effect = self._mock_manager yaml_data = r""" IthrottleIDTable: command: show ithrottle id {{ id }} args: id: 0 item: '*' target: Null view: IthrottleIDView IthrottleIDView: regex: min_usage: 'Min Usage Perc: (\d+\.\d+)' max_usage: 'Max Usage Perc: (\d+\.\d+)' usg_enable: 'AdjustUsageEnable: (\d)' fields: throttle_stats: _ThrottleStatsTable _ThrottleStatsTable: title: Throttle Stats delimiter: ":" key_items: - Disables - AdjDown - Enables """ globals().update( FactoryLoader().load( yaml.load(yaml_data, Loader=yamlordereddictloader.Loader) ) ) stats = IthrottleIDTable(self.dev).get(target="fpc2") self.assertEqual( dict(stats), { "usg_enable": 1, "min_usage": 25.0, "throttle_stats": {"Disables": 0, "AdjDown": 4, "Enables": 0}, "max_usage": 50.0, }, ) @patch("jnpr.junos.Device.execute") def test_pci_errs_multi_key_regex(self, mock_execute): mock_execute.side_effect = self._mock_manager yaml_data = r""" --- ShowPciErrorsTable: command: show pci errors {{ pci_controller_number }} target: fpc2 args: pci_controller_number: 2 key: - pci_addr - status_type view: ShowPciErrorsView ShowPciErrorsView: regex: pci_addr: 'PCI ERROR: (\d+:\d+:\d+:\d+) \(0x[a-z0-9]+\)' status_type: '(Slot|Link) status :' status: '0x[a-z0-9]+' filters: - pci_addr - status """ globals().update( FactoryLoader().load( yaml.load(yaml_data, Loader=yamlordereddictloader.Loader) ) ) stats = ShowPciErrorsTable(self.dev).get() self.assertEqual( dict(stats), { ("2:2:9:0", "Link"): {"status": "0x00000001", "pci_addr": "2:2:9:0"}, ("2:2:9:0", "Slot"): {"status": "0x0000004c", "pci_addr": "2:2:9:0"}, }, ) @patch("jnpr.junos.Device.execute") def test_fpcmemory_multi_key_columns(self, mock_execute): mock_execute.side_effect = self._mock_manager yaml_data = """ --- FPCMemory: command: show memory target: fpc1 key: - id - base view: FPCMemoryView FPCMemoryView: columns: id: ID base: Base total: Total(b) free: Free(b) used: Used(b) perc: "%" name: Name filters: - total - free - id - base """ globals().update( FactoryLoader().load( yaml.load(yaml_data, Loader=yamlordereddictloader.Loader) ) ) stats = FPCMemory(self.dev).get() self.assertEqual( dict(stats), { (2, "bcdfffe0"): { "base": "bcdfffe0", "total": 52428784, "id": 2, "free": 52428784, }, (0, "4d9ad8e8"): { "base": "4d9ad8e8", "total": 1726292636, "id": 0, "free": 1514622708, }, (1, "b47ffb88"): { "base": "b47ffb88", "total": 67108860, "id": 1, "free": 53057404, }, (3, "b87ffb88"): { "base": "b87ffb88", "total": 73400316, "id": 3, "free": 73400316, }, }, ) @patch("jnpr.junos.Device.execute") def test_item_regex_pq3_pci(self, mock_execute): mock_execute.side_effect = self._mock_manager yaml_data = r""" --- PQ3PCITable: command: show pq3 pci target: Null item: PCI key: - pci view: PQ3PCI PQ3PCI: regex: pci: 'PCI (\d+(:\d+){3})' rto: 'rto (\d+)' rnr: 'rnr (\d+)' rxe: 'rxe (\d+)' bdllp: 'bdllp (\d+)' btlp: 'btlp (\d+)' """ globals().update( FactoryLoader().load( yaml.load(yaml_data, Loader=yamlordereddictloader.Loader) ) ) stats = PQ3PCITable(self.dev) stats = stats.get(target="fpc2") self.assertEqual( dict(stats), { "0:0:0:0": { "bdllp": 0, "btlp": 0, "pci": "0:0:0:0", "rnr": 0, "rto": 0, "rxe": 0, }, "2:0:0:0": { "bdllp": 0, "btlp": 0, "pci": "2:0:0:0", "rnr": 0, "rto": 0, "rxe": 0, }, "2:1:0:0": { "bdllp": 0, "btlp": 0, "pci": "2:1:0:0", "rnr": 0, "rto": 0, "rxe": 0, }, "2:2:1:0": { "bdllp": 0, "btlp": 0, "pci": "2:2:1:0", "rnr": 0, "rto": 0, "rxe": 0, }, "2:2:2:0": { "bdllp": 0, "btlp": 0, "pci": "2:2:2:0", "rnr": 0, "rto": 0, "rxe": 0, }, "2:2:4:0": { "bdllp": 0, "btlp": 0, "pci": "2:2:4:0", "rnr": 0, "rto": 0, "rxe": 0, }, "2:2:5:0": { "bdllp": 0, "btlp": 0, "pci": "2:2:5:0", "rnr": 0, "rto": 0, "rxe": 0, }, "2:2:6:0": { "bdllp": 0, "btlp": 0, "pci": "2:2:6:0", "rnr": 0, "rto": 0, "rxe": 0, }, "2:2:7:0": { "bdllp": 0, "btlp": 0, "pci": "2:2:7:0", "rnr": 0, "rto": 0, "rxe": 0, }, "2:2:8:0": { "bdllp": 0, "btlp": 0, "pci": "2:2:8:0", "rnr": 0, "rto": 0, "rxe": 0, }, "2:2:9:0": { "bdllp": 0, "btlp": 0, "pci": "2:2:9:0", "rnr": 0, "rto": 0, "rxe": 0, }, }, ) @patch("jnpr.junos.Device.execute") def test_regex_with_fields(self, mock_execute): mock_execute.side_effect = self._mock_manager yaml_data = r""" --- SchedulerTable: command: show sched target: Null key: name view: SchedulerView SchedulerView: fields: thread: _TopThreadTable columns: cpu: CPU name: Name time_ms: Time(ms) regex: interrupt_time: 'Total interrupt time (\d+)' _TopThreadTable: title: Top Thread delimiter: "=" """ globals().update( FactoryLoader().load( yaml.load(yaml_data, Loader=yamlordereddictloader.Loader) ) ) stats = SchedulerTable(self.dev) stats = stats.get(target="fpc1") self.assertEqual( dict(stats), { "interrupt_time": 16786614, "Idle": {"time_ms": 7397672498, "cpu": "85%", "name": "Idle"}, "Level 3": {"time_ms": 1, "cpu": "0%", "name": "Level 3"}, "thread": { "cpu": "4%", "pid": 99, "name": "LU Background Service", "time": "410844018 ms", }, }, ) @patch("jnpr.junos.Device.execute") def test_exists(self, mock_execute): mock_execute.side_effect = self._mock_manager yaml_data = """ --- HostlbStatusSummaryTable: command: show host_loopback status-summary target: Null view: HostlbStatusSummaryView HostlbStatusSummaryView: exists: no_detected_wedges: No detected wedges no_toolkit_errors: No toolkit errors """ globals().update( FactoryLoader().load( yaml.load(yaml_data, Loader=yamlordereddictloader.Loader) ) ) stats = HostlbStatusSummaryTable(self.dev) stats = stats.get(target="fpc3") self.assertEqual( dict(stats), {"no_detected_wedges": True, "no_toolkit_errors": True} ) @patch("jnpr.junos.Device.execute") def test_table_path_option(self, mock_execute): mock_execute.side_effect = self._mock_manager yaml_data = """ --- HostlbStatusSummaryTable: command: show host_loopback status-summary target: Null view: HostlbStatusSummaryView HostlbStatusSummaryView: exists: no_detected_wedges: No detected wedges no_toolkit_errors: No toolkit errors """ globals().update( FactoryLoader().load( yaml.load(yaml_data, Loader=yamlordereddictloader.Loader) ) ) stats = HostlbStatusSummaryTable( path=os.path.join( os.path.dirname(__file__), "rpc-reply", "show_host_loopback_status-summary.xml", ) ) stats = stats.get() self.assertEqual( dict(stats), {"no_detected_wedges": True, "no_toolkit_errors": True} ) @patch("jnpr.junos.Device.execute") def test_table_with_item_regex(self, mock_execute): mock_execute.side_effect = self._mock_manager yaml_data = r""" --- DevicesLocalTable: command: show devices local target: Null item: 'TSEC Ethernet Device Driver: (\.?\w+),' key: name view: DevicesLocalView DevicesLocalView: fields: TSEC_status_counters: _TSECStatusCountersTable receive_counters: _ReceiveTable transmit_per_queue: _TransmitQueueTable _ReceiveTable: item: '*' title: 'Receive:' view: _ReceiveView _ReceiveView: regex: bytes: '(\d+) bytes' packets: '(\d+) packets' FCS_errors: '(\d+) FCS errors' broadcast_packets: '(\d+) broadcast packets' _TSECStatusCountersTable: item: '*' title: 'TSEC status counters:' view: _TSECStatusCountersView _TSECStatusCountersView: regex: kernel_dropped: 'kernel_dropped:(\d+)' rx_large: 'rx_large:(\d+)' _TransmitQueueTable: item: '\[(\d+)\]' title: 'Transmit per queue:' view: _TransmitQueueView _TransmitQueueView: fields: queue: _TransmitPerQueueTable _TransmitPerQueueTable: title: 'Transmit per queue:' item: '*' view: _TransmitPerQueueView _TransmitPerQueueView: regex: bytes: '(\d+) bytes' packets: '(\d+) packets' """ globals().update( FactoryLoader().load( yaml.load(yaml_data, Loader=yamlordereddictloader.Loader) ) ) stats = DevicesLocalTable(self.dev) stats = stats.get(target="fpc1") self.assertEqual( dict(stats), { ".le1": { "TSEC_status_counters": {"kernel_dropped": 0, "rx_large": 0}, "receive_counters": { "FCS_errors": 0, "broadcast_packets": 107271, "bytes": 185584608, "packets": 2250212, }, "transmit_per_queue": { 0: {"queue": {"bytes": 10300254, "packets": 72537}}, 1: {"queue": {"bytes": 4474302, "packets": 106531}}, 2: {"queue": {"bytes": 260203538, "packets": 1857137}}, 3: {"queue": {"bytes": 199334, "packets": 2179}}, }, }, ".le3": { "TSEC_status_counters": {"kernel_dropped": 0, "rx_large": 0}, "receive_counters": { "FCS_errors": 0, "broadcast_packets": 0, "bytes": 0, "packets": 0, }, "transmit_per_queue": { 0: {"queue": {"bytes": 0, "packets": 0}}, 1: {"queue": {"bytes": 4474302, "packets": 106531}}, 2: {"queue": {"bytes": 0, "packets": 0}}, 3: {"queue": {"bytes": 0, "packets": 0}}, }, }, }, ) @patch("jnpr.junos.Device.execute") def test_table_item_group_key_mismatch(self, mock_execute): mock_execute.side_effect = self._mock_manager yaml_data = r""" --- DevicesLocalTable: command: show devices local target: fpc1 item: '(TSEC) Ethernet Device Driver: (\.?\w+),' key: name view: DevicesLocalView DevicesLocalView: fields: receive_counters: _ReceiveTable _ReceiveTable: item: '*' title: 'Receive:' view: _ReceiveView _ReceiveView: regex: bytes: '(\d+) bytes' packets: '(\d+) packets' FCS_errors: '(\d+) FCS errors' broadcast_packets: '(\d+) broadcast packets' """ globals().update( FactoryLoader().load( yaml.load(yaml_data, Loader=yamlordereddictloader.Loader) ) ) stats = DevicesLocalTable(self.dev) self.assertRaises(KeyError, stats.get) @patch("jnpr.junos.Device.execute") def test_table_with_item_without_view(self, mock_execute): mock_execute.side_effect = self._mock_manager yaml_data = r""" --- EthernetSwitchStatisticsIterTable: command: show chassis ethernet-switch statistics item: Statistics for port (\d) connected to device (FPC\d) key: - port - fpc """ globals().update( FactoryLoader().load( yaml.load(yaml_data, Loader=yamlordereddictloader.Loader) ) ) stats = EthernetSwitchStatisticsIterTable(self.dev) stats = stats.get() self.assertEqual( dict(stats), { (1, "FPC1"): { "RX Broadcast Packets": 9206817, "RX Byte Counter": 320925468, "RX Packets 1024-1518 Octets": 3200039, "RX Packets 512-1023 Octets": 4428661, "TX Packets 128-255 Octets": 6738243, "TX Packets 64 Octets": 142545489, "TX Packets 65-127 Octets": 83498558, }, (2, "FPC2"): { "RX Byte Counter": 133138157, "RX Packets 1024-1518 Octets": 7994417, "RX Packets 128-255 Octets": 5848046, "RX Packets 256-511 Octets": 14518495, "RX Packets 512-1023 Octets": 33598800, "RX Packets 64 Octets": 69281885, "RX Packets 65-127 Octets": 98793558, "TX Broadcast Packets": 46011330, "TX Byte Counter": 12099160, "TX Packets 128-255 Octets": 11245893, "TX Packets 256-511 Octets": 55746, "TX Packets 512-1023 Octets": 3669, "TX Packets 64 Octets": 140666613, "TX Packets 65-127 Octets": 105545277, }, (4, "FPC4"): { "RX 1519-1522 Good Vlan frms": 0, "RX Align Errors": 0, "RX Broadcast Packets": 9216795, "RX Byte Counter": 361322476, "RX Control Frame Counter": 0, "RX FCS Errors": 0, "RX False Carrier Errors": 0, "RX Fragments": 0, "RX Jabbers": 0, "RX MTU Exceed Counter": 0, "RX Multicast Packets": 0, "RX Octets": 212488240, "RX Out of Range Length": 0, "RX Oversize Packets": 0, "RX Packets 1024-1518 Octets": 5524595, "RX Packets 128-255 Octets": 7153230, "RX Packets 1519-2047 Octets": 0, "RX Packets 2048-4095 Octets": 0, "RX Packets 256-511 Octets": 2130213, "RX Packets 4096-9216 Octets": 0, "RX Packets 512-1023 Octets": 24031621, "RX Packets 64 Octets": 69309261, "RX Packets 65-127 Octets": 104339320, "RX Pause Frame Counter": 0, "RX Symbol errors": 0, "RX Undersize Packets": 0, "RX Unsupported opcodes": 0, "TX 1519-1522 Good Vlan frms": 0, "TX Broadcast Packets": 45997099, "TX Byte Counter": 725771059, "TX Collision frames": 0, "TX Excessive Collisions": 0, "TX FCS Error Counter": 0, "TX Fragment Counter": 0, "TX Frame deferred Xmns": 0, "TX Frame excessive deferl": 0, "TX Jabbers": 0, "TX Late Collisions": 0, "TX MAC ctrl frames": 0, "TX Mult. Collision frames": 0, "TX Multicast Packets": 6, "TX Octets": 246717004, "TX Oversize Packets": 0, "TX PAUSEMAC Ctrl Frames": 0, "TX Packets 1024-1518 Octets": 72615, "TX Packets 128-255 Octets": 15940774, "TX Packets 1519-2047 Octets": 0, "TX Packets 2048-4095 Octets": 0, "TX Packets 256-511 Octets": 6737, "TX Packets 4096-9216 Octets": 0, "TX Packets 512-1023 Octets": 2934, "TX Packets 64 Octets": 1397543, "TX Packets 65-127 Octets": 91616401, "TX Single Collision frames": 0, }, }, ) @patch("jnpr.junos.Device.execute") def test_title_without_view(self, mock_execute): mock_execute.side_effect = self._mock_manager yaml_data = """ --- EthernetSwitchStatistics: command: show chassis ethernet-switch statistics view: EthernetSwitchStatisticsView EthernetSwitchStatisticsView: fields: fpc0: _EthSwitchStatsFpc0Table fpc1: _EthSwitchStatsFpc1Table fpc2: _EthSwitchStatsFpc2Table fpc3: _EthSwitchStatsFpc3Table fpc4: _EthSwitchStatsFpc4Table fpc5: _EthSwitchStatsFpc5Table _EthSwitchStatsFpc0Table: title: Statistics for port 0 connected to device FPC0 _EthSwitchStatsFpc1Table: title: Statistics for port 1 connected to device FPC1 _EthSwitchStatsFpc2Table: title: Statistics for port 2 connected to device FPC2 _EthSwitchStatsFpc3Table: title: Statistics for port 3 connected to device FPC3 _EthSwitchStatsFpc4Table: title: Statistics for port 4 connected to device FPC4 _EthSwitchStatsFpc5Table: title: Statistics for port 5 connected to device FPC5 """ globals().update( FactoryLoader().load( yaml.load(yaml_data, Loader=yamlordereddictloader.Loader) ) ) stats = EthernetSwitchStatistics(self.dev) stats = stats.get() self.assertEqual( dict(stats), { "fpc0": {}, "fpc1": { "RX Broadcast Packets": 9206817, "RX Byte Counter": 320925468, "RX Packets 1024-1518 Octets": 3200039, "RX Packets 512-1023 Octets": 4428661, "TX Packets 128-255 Octets": 6738243, "TX Packets 64 Octets": 142545489, "TX Packets 65-127 Octets": 83498558, }, "fpc2": { "RX Byte Counter": 133138157, "RX Packets 1024-1518 Octets": 7994417, "RX Packets 128-255 Octets": 5848046, "RX Packets 256-511 Octets": 14518495, "RX Packets 512-1023 Octets": 33598800, "RX Packets 64 Octets": 69281885, "RX Packets 65-127 Octets": 98793558, "TX Broadcast Packets": 46011330, "TX Byte Counter": 12099160, "TX Packets 128-255 Octets": 11245893, "TX Packets 256-511 Octets": 55746, "TX Packets 512-1023 Octets": 3669, "TX Packets 64 Octets": 140666613, "TX Packets 65-127 Octets": 105545277, }, "fpc3": {}, "fpc4": { "RX 1519-1522 Good Vlan frms": 0, "RX Align Errors": 0, "RX Broadcast Packets": 9216795, "RX Byte Counter": 361322476, "RX Control Frame Counter": 0, "RX FCS Errors": 0, "RX False Carrier Errors": 0, "RX Fragments": 0, "RX Jabbers": 0, "RX MTU Exceed Counter": 0, "RX Multicast Packets": 0, "RX Octets": 212488240, "RX Out of Range Length": 0, "RX Oversize Packets": 0, "RX Packets 1024-1518 Octets": 5524595, "RX Packets 128-255 Octets": 7153230, "RX Packets 1519-2047 Octets": 0, "RX Packets 2048-4095 Octets": 0, "RX Packets 256-511 Octets": 2130213, "RX Packets 4096-9216 Octets": 0, "RX Packets 512-1023 Octets": 24031621, "RX Packets 64 Octets": 69309261, "RX Packets 65-127 Octets": 104339320, "RX Pause Frame Counter": 0, "RX Symbol errors": 0, "RX Undersize Packets": 0, "RX Unsupported opcodes": 0, "TX 1519-1522 Good Vlan frms": 0, "TX Broadcast Packets": 45997099, "TX Byte Counter": 725771059, "TX Collision frames": 0, "TX Excessive Collisions": 0, "TX FCS Error Counter": 0, "TX Fragment Counter": 0, "TX Frame deferred Xmns": 0, "TX Frame excessive deferl": 0, "TX Jabbers": 0, "TX Late Collisions": 0, "TX MAC ctrl frames": 0, "TX Mult. Collision frames": 0, "TX Multicast Packets": 6, "TX Octets": 246717004, "TX Oversize Packets": 0, "TX PAUSEMAC Ctrl Frames": 0, "TX Packets 1024-1518 Octets": 72615, "TX Packets 128-255 Octets": 15940774, "TX Packets 1519-2047 Octets": 0, "TX Packets 2048-4095 Octets": 0, "TX Packets 256-511 Octets": 6737, "TX Packets 4096-9216 Octets": 0, "TX Packets 512-1023 Octets": 2934, "TX Packets 64 Octets": 1397543, "TX Packets 65-127 Octets": 91616401, "TX Single Collision frames": 0, }, "fpc5": {}, }, ) @patch("jnpr.junos.Device.execute") def test_valueerror_with_no_target(self, mock_execute): mock_execute.side_effect = self._mock_manager yaml_data = r""" --- ShowToePfePacketStatsTable: command: show toe pfe {{ pfe_instance }} {{ asic_type }} {{ asic_instance }} toe-inst {{ toe_instance }} packet-stats args: pfe_instance: 0 asic_type: xm asic_instance: 0 toe_instance: 0 target: Null item: 'Stream (\d): halt flag is NOT set' key: stream view: ShowToePfePacketStatsView ShowToePfePacketStatsView: fields: tx_packets: _ShowToePfePacketStatsStream_tx_packets tx_descriptors: _ShowToePfePacketStatsStream_tx_descriptors tx_rates: _ShowToePfePacketStatsStream_tx_rates tx_errors: _ShowToePfePacketStatsStream_tx_errors rx_packets: _ShowToePfePacketStatsStream_rx_packets rx_descriptors: _ShowToePfePacketStatsStream_rx_descriptors rx_rates: _ShowToePfePacketStatsStream_rx_rates rx_errors: _ShowToePfePacketStatsStream_rx_errors _ShowToePfePacketStatsStream_tx_packets: title: 'TX Packets' delimiter: ':' _ShowToePfePacketStatsStream_tx_descriptors: title: 'TX Descriptors' delimiter: ':' _ShowToePfePacketStatsStream_tx_rates: title: 'TX Rates:' delimiter: ':' _ShowToePfePacketStatsStream_tx_errors: title: 'TX Errors:' delimiter: ':' _ShowToePfePacketStatsStream_rx_packets: title: 'RX Packets' delimiter: ':' _ShowToePfePacketStatsStream_rx_descriptors: title: 'RX Descriptors' delimiter: ':' _ShowToePfePacketStatsStream_rx_rates: title: 'RX Rates:' delimiter: ':' _ShowToePfePacketStatsStream_rx_errors: title: 'RX Errors:' delimiter: ':' """ globals().update( FactoryLoader().load( yaml.load(yaml_data, Loader=yamlordereddictloader.Loader) ) ) stats = ShowToePfePacketStatsTable(self.dev) self.assertRaises(ValueError, stats.get) @patch("jnpr.junos.Device.execute") def test_item_with_fields_delimiter(self, mock_execute): mock_execute.side_effect = self._mock_manager yaml_data = r""" --- ShowToePfePacketStatsTable: command: show toe pfe {{ pfe_instance }} {{ asic_type }} {{ asic_instance }} toe-inst {{ toe_instance }} packet-stats args: pfe_instance: 0 asic_type: xm asic_instance: 0 toe_instance: 0 target: Null item: 'Stream (\d): halt flag is NOT set' key: stream view: ShowToePfePacketStatsView ShowToePfePacketStatsView: fields: tx_packets: _ShowToePfePacketStatsStream_tx_packets tx_descriptors: _ShowToePfePacketStatsStream_tx_descriptors tx_rates: _ShowToePfePacketStatsStream_tx_rates tx_errors: _ShowToePfePacketStatsStream_tx_errors rx_packets: _ShowToePfePacketStatsStream_rx_packets rx_descriptors: _ShowToePfePacketStatsStream_rx_descriptors rx_rates: _ShowToePfePacketStatsStream_rx_rates rx_errors: _ShowToePfePacketStatsStream_rx_errors _ShowToePfePacketStatsStream_tx_packets: title: 'TX Packets' delimiter: ':' _ShowToePfePacketStatsStream_tx_descriptors: title: 'TX Descriptors' delimiter: ':' _ShowToePfePacketStatsStream_tx_rates: title: 'TX Rates:' delimiter: ':' _ShowToePfePacketStatsStream_tx_errors: title: 'TX Errors:' delimiter: ':' _ShowToePfePacketStatsStream_rx_packets: title: 'RX Packets' delimiter: ':' _ShowToePfePacketStatsStream_rx_descriptors: title: 'RX Descriptors' delimiter: ':' _ShowToePfePacketStatsStream_rx_rates: title: 'RX Rates:' delimiter: ':' _ShowToePfePacketStatsStream_rx_errors: title: 'RX Errors:' delimiter: ':' """ globals().update( FactoryLoader().load( yaml.load(yaml_data, Loader=yamlordereddictloader.Loader) ) ) stats = ShowToePfePacketStatsTable(self.dev) stats = stats.get(target="fpc1") self.assertEqual( dict(stats), { 0: { "rx_descriptors": { "completed": 12665827, "recycle fails": 0, "recycled": 12665827, }, "rx_errors": { "SOP/prev packet": 0, "init descriptor idx invalid": 0, "no prev packet": 0, "no start packet": 0, }, "rx_packets": {"accepted": 12665827}, "rx_rates": { "bytes per second": 34, "completed since last count": 102, "descriptors per second": 1, "packets per second": 1, }, "tx_descriptors": {"accepted": 12665916, "completed": 12665916}, "tx_errors": { "FIFO not initialized": 0, "head descriptor invalid": 0, "init descriptor idx invalid": 0, "packet buffer out of range": 0, "packet length out of range": 0, "packet null": 0, }, "tx_packets": { "accepted": 12665916, "rejected": 0, "transferred": 12665916, }, "tx_rates": { "bytes per second": 34, "descriptors completed since last count": 102, "descriptors per second": 1, "packets per second": 1, }, }, 1: { "rx_descriptors": { "completed": 12665827, "recycle fails": 0, "recycled": 12665827, }, "rx_errors": { "SOP/prev packet": 0, "init descriptor idx invalid": 0, "no prev packet": 0, "no start packet": 0, }, "rx_packets": {"accepted": 12665827}, "rx_rates": { "bytes per second": 34, "completed since last count": 102, "descriptors per second": 1, "packets per second": 1, }, "tx_descriptors": {"accepted": 12665916, "completed": 12665916}, "tx_errors": { "FIFO not initialized": 0, "head descriptor invalid": 0, "init descriptor idx invalid": 0, "packet buffer out of range": 0, "packet length out of range": 0, "packet null": 0, }, "tx_packets": { "accepted": 12665916, "rejected": 0, "transferred": 12665916, }, "tx_rates": { "bytes per second": 34, "descriptors completed since last count": 102, "descriptors per second": 1, "packets per second": 1, }, }, 2: { "rx_descriptors": { "completed": 0, "recycle fails": 0, "recycled": 0, }, "rx_errors": { "SOP/prev packet": 0, "init descriptor idx invalid": 0, "no prev packet": 0, "no start packet": 0, }, "rx_packets": {"accepted": 0}, "rx_rates": { "bytes per second": 0, "completed since last count": 0, "descriptors per second": 0, "packets per second": 0, }, "tx_descriptors": {"accepted": 0, "completed": 0}, "tx_errors": { "FIFO not initialized": 0, "head descriptor invalid": 0, "init descriptor idx invalid": 0, "packet buffer out of range": 0, "packet length out of range": 0, "packet null": 0, }, "tx_packets": {"accepted": 0, "rejected": 0, "transferred": 0}, "tx_rates": { "bytes per second": 0, "descriptors completed since last count": 0, "descriptors per second": 0, "packets per second": 0, }, }, 3: { "rx_descriptors": { "completed": 0, "recycle fails": 0, "recycled": 0, }, "rx_errors": { "SOP/prev packet": 0, "init descriptor idx invalid": 0, "no prev packet": 0, "no start packet": 0, }, "rx_packets": {"accepted": 0}, "rx_rates": { "bytes per second": 0, "completed since last count": 0, "descriptors per second": 0, "packets per second": 0, }, "tx_descriptors": {"accepted": 0, "completed": 0}, "tx_errors": { "FIFO not initialized": 0, "head descriptor invalid": 0, "init descriptor idx invalid": 0, "packet buffer out of range": 0, "packet length out of range": 0, "packet null": 0, }, "tx_packets": {"accepted": 0, "rejected": 0, "transferred": 0}, "tx_rates": { "bytes per second": 0, "descriptors completed since last count": 0, "descriptors per second": 0, "packets per second": 0, }, }, 4: { "rx_descriptors": { "completed": 67151069, "recycle fails": 0, "recycled": 67151069, }, "rx_errors": { "SOP/prev packet": 0, "init descriptor idx invalid": 0, "no prev packet": 0, "no start packet": 0, }, "rx_packets": {"accepted": 67151069}, "rx_rates": { "bytes per second": 367, "completed since last count": 552, "descriptors per second": 5, "packets per second": 5, }, "tx_descriptors": {"accepted": 70932350, "completed": 70932350}, "tx_errors": { "FIFO not initialized": 0, "head descriptor invalid": 0, "init descriptor idx invalid": 0, "packet buffer out of range": 0, "packet length out of range": 0, "packet null": 0, }, "tx_packets": { "accepted": 70932350, "rejected": 0, "transferred": 70932350, }, "tx_rates": { "bytes per second": 301, "descriptors completed since last count": 586, "descriptors per second": 5, "packets per second": 5, }, }, 5: { "rx_descriptors": { "completed": 0, "recycle fails": 0, "recycled": 0, }, "rx_errors": { "SOP/prev packet": 0, "init descriptor idx invalid": 0, "no prev packet": 0, "no start packet": 0, }, "rx_packets": {"accepted": 0}, "rx_rates": { "bytes per second": 0, "completed since last count": 0, "descriptors per second": 0, "packets per second": 0, }, "tx_descriptors": {"accepted": 0, "completed": 0}, "tx_errors": { "FIFO not initialized": 0, "head descriptor invalid": 0, "init descriptor idx invalid": 0, "packet buffer out of range": 0, "packet length out of range": 0, "packet null": 0, }, "tx_packets": {"accepted": 0, "rejected": 0, "transferred": 0}, "tx_rates": { "bytes per second": 0, "descriptors completed since last count": 0, "descriptors per second": 0, "packets per second": 0, }, }, 6: { "rx_descriptors": { "completed": 0, "recycle fails": 0, "recycled": 0, }, "rx_errors": { "SOP/prev packet": 0, "init descriptor idx invalid": 0, "no prev packet": 0, "no start packet": 0, }, "rx_packets": {"accepted": 0}, "rx_rates": { "bytes per second": 0, "completed since last count": 0, "descriptors per second": 0, "packets per second": 0, }, "tx_descriptors": {"accepted": 0, "completed": 0}, "tx_errors": { "FIFO not initialized": 0, "head descriptor invalid": 0, "init descriptor idx invalid": 0, "packet buffer out of range": 0, "packet length out of range": 0, "packet null": 0, }, "tx_packets": {"accepted": 0, "rejected": 0, "transferred": 0}, "tx_rates": { "bytes per second": 0, "descriptors completed since last count": 0, "descriptors per second": 0, "packets per second": 0, }, }, 7: { "rx_descriptors": { "completed": 0, "recycle fails": 0, "recycled": 0, }, "rx_errors": { "SOP/prev packet": 0, "init descriptor idx invalid": 0, "no prev packet": 0, "no start packet": 0, }, "rx_packets": {"accepted": 0}, "rx_rates": { "bytes per second": 0, "completed since last count": 0, "descriptors per second": 0, "packets per second": 0, }, "tx_descriptors": {"accepted": 0, "completed": 0}, "tx_errors": { "FIFO not initialized": 0, "head descriptor invalid": 0, "init descriptor idx invalid": 0, "packet buffer out of range": 0, "packet length out of range": 0, "packet null": 0, }, "tx_packets": {"accepted": 0, "rejected": 0, "transferred": 0}, "tx_rates": { "bytes per second": 0, "descriptors completed since last count": 0, "descriptors per second": 0, "packets per second": 0, }, }, }, ) @patch("jnpr.junos.Device.execute") def test_table_eval_expression(self, mock_execute): mock_execute.side_effect = self._mock_manager yaml_data = """ --- XMChipInterruptStatsTable: command: show xmchip {{ chip_instance }} li interrupt-stats target: Null args: chip_instance: 0 key: - li_block - name view: XMChipInterruptStatsView eval: total_interrupt: "reduce(lambda x,y: x+y, [v['interrupts'] for k,v in {{ data }}.items() if 'cookie_sz_err' in v.get('name')])" XMChipInterruptStatsView: columns: li_block: LI Block name: Interrupt Name interrupts: Number of Interrupts last_occurance: Last Occurrence """ globals().update( FactoryLoader().load( yaml.load(yaml_data, Loader=yamlordereddictloader.Loader) ) ) stats = XMChipInterruptStatsTable(self.dev) stats = stats.get(target="fpc1") self.assertEqual(stats["total_interrupt"], 34) @patch("jnpr.junos.Device.execute") def test_table_eval_expression_exception(self, mock_execute): mock_execute.side_effect = self._mock_manager yaml_data = """ --- XMChipInterruptStatsTable: command: show xmchip {{ chip_instance }} li interrupt-stats target: Null args: chip_instance: 0 key: - li_block - name view: XMChipInterruptStatsView eval: total_interrupt: "xxxx" XMChipInterruptStatsView: columns: li_block: LI Block name: Interrupt Name interrupts: Number of Interrupts last_occurance: Last Occurrence """ globals().update( FactoryLoader().load( yaml.load(yaml_data, Loader=yamlordereddictloader.Loader) ) ) stats = XMChipInterruptStatsTable(self.dev) stats = stats.get(target="fpc1") self.assertEqual(stats["total_interrupt"], None) @patch("jnpr.junos.Device.execute") def test_table_eval_with_filters(self, mock_execute): mock_execute.side_effect = self._mock_manager yaml_data = """ --- FPCThreads: command: show threads target: fpc2 key: Name view: FPCThreadView FPCThreadView: columns: pid_pr: PID PR state: State name: Name stack: Stack Use time: Time (Last/Max/Total) cpu: cpu eval: cpu: "'{{ cpu }}'[:-1]" filters: - cpu - state """ globals().update( FactoryLoader().load( yaml.load(yaml_data, Loader=yamlordereddictloader.Loader) ) ) stats = FPCThreads(self.dev) stats = stats.get() self.assertEqual( dict(stats), { "100ms Periodic": {"cpu": "0", "state": "asleep"}, "10s Low Periodic": {"cpu": "0", "state": "asleep"}, "10s Medium Periodic": {"cpu": "0", "state": "asleep"}, "1s Low Periodic": {"cpu": "0", "state": "asleep"}, "1s Medium Periodic": {"cpu": "0", "state": "asleep"}, "50ms Periodic": {"cpu": "0", "state": "asleep"}, "CFM Data thread": {"cpu": "0", "state": "asleep"}, "CFM Manager": {"cpu": "0", "state": "asleep"}, "CFP": {"cpu": "0", "state": "asleep"}, "CLKSYNC Manager": {"cpu": "0", "state": "asleep"}, "CLNS Err Input": {"cpu": "0", "state": "asleep"}, "CLNS Option Input": {"cpu": "0", "state": "asleep"}, "CXP": {"cpu": "0", "state": "asleep"}, "Cassis Free Timer": {"cpu": "3", "state": "asleep"}, "Cattle-Prod Daemon": {"cpu": "0", "state": "asleep"}, "Console": {"cpu": "0", "state": "asleep"}, "Cube Server": {"cpu": "0", "state": "asleep"}, "DCC Background": {"cpu": "0", "state": "asleep"}, "DDOS Policers": {"cpu": "0", "state": "asleep"}, "DFW Alert": {"cpu": "0", "state": "asleep"}, "DSX50ms": {"cpu": "0", "state": "asleep"}, "DSXonesec": {"cpu": "0", "state": "asleep"}, "Firmware Upgrade": {"cpu": "0", "state": "asleep"}, "GR253": {"cpu": "0", "state": "asleep"}, "HSL2": {"cpu": "0", "state": "asleep"}, "Heap Accouting": {"cpu": "0", "state": "asleep"}, "Host Loopback Periodic": {"cpu": "0", "state": "asleep"}, "ICMP Input": {"cpu": "0", "state": "asleep"}, "ICMP6 Input": {"cpu": "0", "state": "asleep"}, "IFCM": {"cpu": "0", "state": "asleep"}, "IGMP": {"cpu": "0", "state": "asleep"}, "IGMP Input": {"cpu": "0", "state": "asleep"}, "IP Option Input": {"cpu": "0", "state": "asleep"}, "IP Reassembly": {"cpu": "0", "state": "asleep"}, "IP6 Option Input": {"cpu": "0", "state": "asleep"}, "IPC Test Daemon": {"cpu": "0", "state": "asleep"}, "IPv4 PFE Control Background": {"cpu": "0", "state": "asleep"}, "JNH Exception Counter Background Thread": { "cpu": "0", "state": "asleep", }, "JNH KA Transmit": {"cpu": "0", "state": "asleep"}, "JNH Partition Mem Recovery": {"cpu": "0", "state": "asleep"}, "L2ALM Manager": {"cpu": "0", "state": "asleep"}, "L2PD": {"cpu": "0", "state": "asleep"}, "L2TP-SF KA Transmit": {"cpu": "0", "state": "asleep"}, "LKUP ASIC UCODE Rebalance Service": { "cpu": "1", "state": "asleep", }, "LKUP ASIC Wedge poll thread": {"cpu": "0", "state": "asleep"}, "LU Background Service": {"cpu": "4", "state": "asleep"}, "LU-CNTR Reader": {"cpu": "0", "state": "asleep"}, "MSA300PIN": {"cpu": "0", "state": "asleep"}, "Maintenance": {"cpu": "0", "state": "asleep"}, "NH Probe Service": {"cpu": "0", "state": "asleep"}, "OTN": {"cpu": "0", "state": "asleep"}, "PFE Manager": {"cpu": "0", "state": "asleep"}, "PFE Statistics": {"cpu": "0", "state": "asleep"}, "PFEMAN SRRD Thread": {"cpu": "0", "state": "asleep"}, "PFEMAN Service Thread": {"cpu": "0", "state": "asleep"}, "PIC": {"cpu": "0", "state": "asleep"}, "PIC Periodic": {"cpu": "0", "state": "asleep"}, "PPM Data thread": {"cpu": "0", "state": "asleep"}, "PPM Manager": {"cpu": "0", "state": "asleep"}, "PQ3 PCI Periodic": {"cpu": "0", "state": "asleep"}, "PRECL Chip Generic": {"cpu": "0", "state": "asleep"}, "PZARB Timeout": {"cpu": "0", "state": "asleep"}, "Pfesvcsor": {"cpu": "0", "state": "asleep"}, "QSFP": {"cpu": "0", "state": "asleep"}, "RCM Pfe Manager": {"cpu": "0", "state": "asleep"}, "RDMAN": {"cpu": "0", "state": "asleep"}, "RDP Input": {"cpu": "0", "state": "asleep"}, "RDP Timers": {"cpu": "0", "state": "asleep"}, "RFC2544 periodic": {"cpu": "0", "state": "asleep"}, "RPM Msg thread": {"cpu": "0", "state": "asleep"}, "RSMON syslog thread": {"cpu": "0", "state": "asleep"}, "SFP": {"cpu": "0", "state": "asleep"}, "SNTP Daemon": {"cpu": "0", "state": "asleep"}, "Services TOD": {"cpu": "0", "state": "asleep"}, "Sheaf Background": {"cpu": "0", "state": "asleep"}, "Stats Page Ager": {"cpu": "0", "state": "asleep"}, "Syslog": {"cpu": "0", "state": "asleep"}, "TCP Receive": {"cpu": "0", "state": "asleep"}, "TCP Timers": {"cpu": "0", "state": "asleep"}, "TNP Hello": {"cpu": "0", "state": "asleep"}, "TNPC CM": {"cpu": "0", "state": "asleep"}, "TOE Coredump": {"cpu": "0", "state": "asleep"}, "TTP Receive": {"cpu": "0", "state": "asleep"}, "TTP Transmit": {"cpu": "0", "state": "asleep"}, "TTRACE Creator": {"cpu": "0", "state": "asleep"}, "TTRACE Tracer": {"cpu": "0", "state": "asleep"}, "Timer Services": {"cpu": "0", "state": "asleep"}, "Trap_Info Read PFE 0.0": {"cpu": "0", "state": "asleep"}, "Trap_Info Read PFE 0.1": {"cpu": "0", "state": "asleep"}, "Trap_Info Read PFE 1.0": {"cpu": "0", "state": "asleep"}, "Trap_Info Read PFE 1.1": {"cpu": "0", "state": "asleep"}, "UDP Input": {"cpu": "0", "state": "asleep"}, "Ukern Syslog": {"cpu": "0", "state": "asleep"}, "VBF MC Purge": {"cpu": "0", "state": "asleep"}, "VBF PFE Events": {"cpu": "0", "state": "asleep"}, "VBF Walker": {"cpu": "0", "state": "asleep"}, "VRRP Manager": {"cpu": "0", "state": "asleep"}, "Virtual Console": {"cpu": "0", "state": "asleep"}, "XFP": {"cpu": "0", "state": "asleep"}, "XM Chip Generic": {"cpu": "0", "state": "asleep"}, "XM Chip Statistics": {"cpu": "0", "state": "asleep"}, "XM Chip Wedge Detection and Recovery": { "cpu": "0", "state": "asleep", }, "bulkget Manager": {"cpu": "0", "state": "asleep"}, "cos halp stats daemon": {"cpu": "0", "state": "asleep"}, "jnh errors daemon": {"cpu": "0", "state": "asleep"}, "mac_db": {"cpu": "0", "state": "asleep"}, "zlAprTaskzl303xx": {"cpu": "0", "state": "asleep"}, "zlHybridTaskzl303xx": {"cpu": "0", "state": "asleep"}, "zlInt08Taskzl303xx": {"cpu": "1", "state": "asleep"}, "zlInt09Taskzl303xx": {"cpu": "0", "state": "asleep"}, "zlPktTxSchedTaskzl303xx": {"cpu": "0", "state": "asleep"}, "zlPtpTaskzl303xx": {"cpu": "0", "state": "asleep"}, "zlSpllTaskzl303xx": {"cpu": "0", "state": "asleep"}, "zlTimerTaskzl303xx": {"cpu": "0", "state": "asleep"}, "zlTodMgrTaskzl303xx": {"cpu": "0", "state": "asleep"}, "zlTsEngTaskzl303xx": {"cpu": "0", "state": "asleep"}, "zlTxTsMgrTaskzl303xx": {"cpu": "0", "state": "asleep"}, }, ) @patch("jnpr.junos.Device.execute") def test_new_line_in_data(self, mock_execute): mock_execute.side_effect = self._mock_manager yaml_data = r""" --- CChipLoStatsTable: command: show xmchip {{ chip_instance }} lo stats 0 target: fpc4 args: chip_instance: 0 title: 'LU Parcel Name Counter Name' key: - index - parcel - counter eval: cchip-lookup-out-errors: > sum([v['total'] for k,v in {{ data }}.items() if v['parcel']=='Error']) view: CChipLoStatsView CChipLoStatsView: regex: index: '^\d+' parcel: '\w*(?=_)?\w*' counter: '(\w+(\s\w+)+)' total: '\d+' rate: '\d+ pps' """ globals().update( FactoryLoader().load( yaml.load(yaml_data, Loader=yamlordereddictloader.Loader) ) ) stats = CChipLoStatsTable(self.dev) stats = stats.get(target="fpc0") self.assertEqual(stats["cchip-lookup-out-errors"], 500) @patch("jnpr.junos.Device.execute") def test_textfsm_table(self, mock_execute): mock_execute.side_effect = self._mock_manager yaml_data = """ --- ARPtable: command: show arp no-resolve platform: juniper_junos key: ip use_textfsm: True view: ARPview ARPview: fields: mac: MAC ip: IP_ADDRESS interface: INTERFACE flag: FLAGS """ globals().update( FactoryLoader().load( yaml.load(yaml_data, Loader=yamlordereddictloader.Loader) ) ) stats = ARPtable(self.dev) stats = stats.get() self.assertEqual(len(stats), 34) self.assertIn("10.221.128.201", stats) @patch("jnpr.junos.Device.execute") def test_textfsm_table_mutli_key(self, mock_execute): mock_execute.side_effect = self._mock_manager yaml_data = """ --- ARPtable: command: show arp no-resolve platform: juniper_junos key: - ip - mac use_textfsm: True view: ARPview ARPview: fields: mac: MAC ip: IP_ADDRESS interface: INTERFACE flag: FLAGS """ globals().update( FactoryLoader().load( yaml.load(yaml_data, Loader=yamlordereddictloader.Loader) ) ) stats = ARPtable(self.dev) stats = stats.get() self.assertIn( "('10.221.129.121', '56:68:ad:d8:10:f4')", json.loads(stats.to_json()) ) def _read_file(self, fname): from ncclient.xml_ import NCElement fpath = os.path.join(os.path.dirname(__file__), "rpc-reply", fname) foo = open(fpath).read() rpc_reply = NCElement( foo, self.dev._conn._device_handler.transform_reply() )._NCElement__doc return rpc_reply def _mock_manager(self, *args, **kwargs): if kwargs and "normalize" not in kwargs: device_params = kwargs["device_params"] device_handler = make_device_handler(device_params) session = SSHSession(device_handler) return Manager(session, device_handler) if args: if args[0].tag == "request-pfe-execute": file_name = (args[0].findtext("command")).replace(" ", "_") return self._read_file(file_name + ".xml") elif args[0].tag == "command": file_name = (args[0].text).replace(" ", "_") return self._read_file(file_name + ".xml") py-junos-eznc-2.7.3/tests/unit/factory/test_factory_cls.py000066400000000000000000000017211475361112400237620ustar00rootroot00000000000000__author__ = "Rick Sherman" __credits__ = "Jeremy Schulman" import unittest import nose2 from jnpr.junos.factory.factory_cls import FactoryCfgTable, FactoryOpTable from jnpr.junos.factory.factory_cls import FactoryTable, FactoryView class TestFactoryCls(unittest.TestCase): def test_factory_cls_cfgtable(self): t = FactoryCfgTable() self.assertEqual(t.__module__, "jnpr.junos.factory.CfgTable") def test_factory_cls_optable(self): t = FactoryOpTable("test") self.assertEqual(t.__module__, "jnpr.junos.factory.OpTable") def test_factory_cls_factorytable(self): t = FactoryTable("test") self.assertEqual(t.__module__, "jnpr.junos.factory.Table") def test_factory_cls_factoryview(self): x = FactoryCfgTable() x.FIELDS = {"test": "test"} x.GROUPS = x.FIELDS t = FactoryView(x.FIELDS, extends=x, groups=x.FIELDS) self.assertEqual(t.__module__, "jnpr.junos.factory.View") py-junos-eznc-2.7.3/tests/unit/factory/test_factory_loader.py000066400000000000000000000067321475361112400244560ustar00rootroot00000000000000__author__ = "Rick Sherman, Nitin Kumar" __credits__ = "Jeremy Schulman" import unittest import nose2 from jnpr.junos.factory import FactoryLoader from unittest.mock import patch class TestFactoryLoader(unittest.TestCase): def setUp(self): self.fl = FactoryLoader() self.fl.catalog = { "RouteTable": { "item": "route-table/rt", "rpc": "get-route-information", "args_key": "destination", "key": "rt-destination", "view": "RouteTableView", } } self.fl._catalog_dict = { "RouteTableView": { "groups": {"entry": "rt-entry"}, "fields_entry": { "via": "nh/via | nh/nh-local-interface", "age": {"age/@seconds": "int"}, "nexthop": "nh/to", "protocol": "protocol-name", }, "extends": "test", } } def test_FactoryLoader__build_optable(self): self.assertEqual( self.fl._build_optable("RouteTable"), self.fl.catalog["RouteTable"] ) def test_FactoryLoader__build_cfgtable(self): self.assertEqual( self.fl._build_cfgtable("RouteTable"), self.fl.catalog["RouteTable"] ) @patch("jnpr.junos.factory.factory_loader._VIEW") def test_FactoryLoader__build_view(self, mock_view): mock_view.return_value = type("test", (object,), {}) self.assertEqual( self.fl._build_view("RouteTableView"), self.fl.catalog["RouteTableView"] ) def test_FactoryLoader__fieldfunc_True(self): fn = self.fl._fieldfunc_True("test") self.assertTrue(fn("test")) def test_FactoryLoader__fieldfunc_True_fail(self): # Assert that false is returned if value not found fn = self.fl._fieldfunc_True("test") self.assertFalse(fn("nope")) def test_FactoryLoader__fieldfunc_True_regex(self): fn = self.fl._fieldfunc_True("regex(this|test)") self.assertTrue(fn("test")) def test_FactoryLoader__fieldfunc_True_regex_fail(self): # Assert that false is returned if value not found fn = self.fl._fieldfunc_True("regex(this|test)") self.assertFalse(fn("nope")) def test_FactoryLoader__fieldfunc_False(self): fn = self.fl._fieldfunc_False("test") self.assertFalse(fn("test")) def test_FactoryLoader__fieldfunc_False_fail(self): # Assert that true is returned if value not found fn = self.fl._fieldfunc_False("test") self.assertTrue(fn("nope")) def test_FactoryLoader__fieldfunc_False_regex(self): fn = self.fl._fieldfunc_False("regex(this|test)") self.assertFalse(fn("test")) def test_FactoryLoader__fieldfunc_False_regex_fail(self): # Assert that true is returned if value not found fn = self.fl._fieldfunc_False("regex(this|test)") self.assertTrue(fn("nope")) def test_FactoryLoader__add_dictfield_RuntimeError(self): self.assertRaises( RuntimeError, self.fl._add_dictfield, "testing", "age", {"age/@seconds": "test"}, {}, ) def test_FactoryLoader__add_dictfield_ValueError(self): self.assertRaises( ValueError, self.fl._add_dictfield, "testing", "age", {"age/@seconds": "test=test"}, {}, ) py-junos-eznc-2.7.3/tests/unit/factory/test_optable.py000066400000000000000000000312121475361112400230760ustar00rootroot00000000000000__author__ = "Rick Sherman" __credits__ = "Jeremy Schulman" import unittest import os import yaml import json import nose2 from jnpr.junos import Device from jnpr.junos.op.phyport import PhyPortStatsTable from jnpr.junos.op.ethport import EthPortTable from jnpr.junos.factory.factory_loader import FactoryLoader from jnpr.junos.factory.optable import generate_sax_parser_input from ncclient.manager import Manager, make_device_handler from ncclient.transport import SSHSession from ncclient.operations.rpc import RPCReply from lxml import etree from unittest.mock import patch class TestFactoryOpTable(unittest.TestCase): @patch("ncclient.manager.connect") def setUp(self, mock_connect): mock_connect.side_effect = self._mock_manager self.dev = Device( host="1.1.1.1", user="rick", password="password123", gather_facts=False ) self.dev.open() self.ppt = PhyPortStatsTable(self.dev) @patch("jnpr.junos.Device.execute") def test_optable_get(self, mock_execute): mock_execute.side_effect = self._mock_manager self.ppt.get() self.assertEqual(len(self.ppt), 2) @patch("jnpr.junos.Device.execute") def test_optable_get_key(self, mock_execute): mock_execute.side_effect = self._mock_manager self.ppt.get("ge-0/0/0") self.assertEqual(self.ppt.GET_KEY, "interface_name") def test_optable_path(self): fname = "local-get-interface-information.xml" path = os.path.join(os.path.dirname(__file__), "rpc-reply", fname) lppt = PhyPortStatsTable(path=path) lppt.get() self.assertEqual(len(lppt), 2) def test_optable_xml(self): fname = "get-interface-information.xml" xml = self._read_file(fname) lppt = PhyPortStatsTable(xml=xml) lppt.get() self.assertEqual(len(lppt), 2) @patch("jnpr.junos.Device.execute") def test_optable_view_get(self, mock_execute): mock_execute.side_effect = self._mock_manager self.ppt.get() v = self.ppt["ge-0/0/0"] self.assertEqual(v["rx_packets"], 1207) @patch("jnpr.junos.Device.execute") def test_optable_view_get_astype_bool(self, mock_execute): mock_execute.side_effect = self._mock_manager et = EthPortTable(self.dev) et.get() v = et["ge-0/0/0"] self.assertEqual(v["present"], True) @patch("jnpr.junos.Device.execute") def test_optable_view_get_astype_bool_regex(self, mock_execute): mock_execute.side_effect = self._mock_manager from jnpr.junos.op.bfd import BfdSessionTable bfd = BfdSessionTable(self.dev) bfd.get() v = bfd["10.92.20.4"] self.assertEqual(v["no_absorb"], True) @patch("jnpr.junos.Device.execute") def test_optable_view_get_unknown_field(self, mock_execute): mock_execute.side_effect = self._mock_manager self.ppt.get() def bad(key): v = self.ppt["ge-0/0/0"] return v[key] self.assertRaises(ValueError, bad, "bunk") def test_generate_sax_parser_fields_with_many_slash(self): yaml_data = """ --- bgpNeighborTable: rpc: get-bgp-neighbor-information item: bgp-peer key: peer-address view: bgpNeighborView bgpNeighborView: fields: prefix-count: bgp-option-information/prefix-limit/prefix-count prefix-dummy: bgp-option-information/prefix-limit/prefix-dummy """ globals().update(FactoryLoader().load(yaml.load(yaml_data, Loader=yaml.Loader))) tbl = bgpNeighborTable(self.dev) data = generate_sax_parser_input(tbl) self.assertEqual(data.tag, "bgp-peer") self.assertEqual( len(etree.tostring(data)), len( b"" b"" b"" ), ) def test_generate_sax_parser_fields_with_diff_child_xpaths(self): yaml_data = """ --- twampProbeTable: rpc: twamp-get-probe-results item: probe-test-results key: test-name view: probeResultsView probeResultsView: fields: min-delay: probe-test-global-results/probe-test-generic-results/probe-test-rtt/probe-summary-results/min-delay max-delay: probe-test-global-results/probe-test-generic-results/probe-test-rtt/probe-summary-results/max-delay avg-delay: probe-test-global-results/probe-test-generic-results/probe-test-rtt/probe-summary-results/avg-delay positive-rtt-jitter: probe-test-global-results/probe-test-generic-results/probe-test-positive-round-trip-jitter/probe-summary-results/avg-delay loss-percentage: probe-test-global-results/probe-test-generic-results/loss-percentage current-min-delay: probe-last-test-results/probe-test-generic-results/probe-test-rtt/probe-summary-results/min-delay current-max-delay: probe-last-test-results/probe-test-generic-results/probe-test-rtt/probe-summary-results/max-delay current-avg-delay: probe-last-test-results/probe-test-generic-results/probe-test-rtt/probe-summary-results/avg-delay current-positive-rtt-jitter: probe-last-test-results/probe-test-generic-results/probe-test-positive-round-trip-jitter/probe-summary-results/avg-delay current-loss-percentage: probe-last-test-results/probe-test-generic-results/loss-percentage """ globals().update(FactoryLoader().load(yaml.load(yaml_data, Loader=yaml.Loader))) tbl = twampProbeTable(self.dev) data = generate_sax_parser_input(tbl) self.assertEqual(data.tag, "probe-test-results") self.assertEqual( len(etree.tostring(data)), len( b"" b"" b"" b"" b"" b"" b"" b"" b"" ), ) def test_generate_sax_parser_item_with_many_slash(self): yaml_data = """ --- taskmallocdetail: rpc: get-task-memory-information args: level: detail item: task-memory-malloc-usage-report/task-malloc-list/task-malloc key: tm-name view: taskmallocview taskmallocview: fields: tmallocs: tm-allocs tmallocbytes: tm-alloc-bytes tmmaxallocs: tm-max-allocs tmmaxallocbytes: tm-max-alloc-bytes tmfunctioncalls: tm-function-calls """ globals().update(FactoryLoader().load(yaml.load(yaml_data, Loader=yaml.Loader))) tbl = taskmallocdetail(self.dev) data = generate_sax_parser_input(tbl) self.assertEqual(data.tag, "task-memory-malloc-usage-report") self.assertEqual( len(etree.tostring(data)), len( b"" ), ) def test_generate_sax_parser_same_parents_with_diff_fields(self): yaml_data = """ --- VtepTable: rpc: get-interface-information args: interface-name: "vtep" extensive: True item: physical-interface key: name view: VtepView VtepView: fields: admin-status: admin-status oper-status: oper-status link-level-type: link-level-type input-bytes: traffic-statistics/input-bytes output-bytes: traffic-statistics/output-bytes input-errors: input-error-list/input-errors output-errors: output-error-list/output-errors carrier-transitions: output-error-list/carrier-transitions vtep-tunnel-stats: VtepTunnelTable VtepTunnelTable: item: logical-interface key: name view: VtepTunnelView VtepTunnelView: fields: vtep-type: vtep-info/vtep-type vtep-address: vtep-info/vtep-address tunnel-input-bytes: traffic-statistics/input-bytes tunnel-output-bytes: traffic-statistics/output-bytes """ globals().update(FactoryLoader().load(yaml.load(yaml_data, Loader=yaml.Loader))) tbl = VtepTable(self.dev) data = generate_sax_parser_input(tbl) self.assertEqual(data.tag, "physical-interface") self.assertEqual( len(etree.tostring(data)), len( b"" b"" b"" b"" b"" b"" b"" b"" ), ) @patch("jnpr.junos.Device.execute") def test_key_pipe_delim_with_Null(self, mock_execute): mock_execute.side_effect = self._mock_manager yaml_data = """ --- UTMStatusTable: rpc: show-utmd-status item: //utmd-status view: UTMStatusView key: ../re-name | Null UTMStatusView: fields: running: { running: flag } """ globals().update(FactoryLoader().load(yaml.load(yaml_data, Loader=yaml.Loader))) tbl = UTMStatusTable(self.dev) data = tbl.get() self.assertEqual( json.loads(data.to_json()), {"node0": {"running": True}, "node1": {"running": True}}, ) @patch("jnpr.junos.Device.execute") def test_key_pipe_delim_with_Null_use_Null(self, mock_execute): mock_execute.side_effect = self._mock_manager yaml_data = """ --- UTMStatusTable: rpc: show-utmd-status_use_Null item: //utmd-status view: UTMStatusView key: ../re-name | Null UTMStatusView: fields: running: { running: flag } """ globals().update(FactoryLoader().load(yaml.load(yaml_data, Loader=yaml.Loader))) tbl = UTMStatusTable(self.dev) data = tbl.get() self.assertEqual(json.loads(data.to_json()), {"running": True}) @patch("jnpr.junos.Device.execute") def test_key_and_item_pipe_delim_with_Null_use_Null(self, mock_execute): mock_execute.side_effect = self._mock_manager yaml_data = """ --- UTMStatusTable: rpc: show-utmd-status_use_Null item: //multi-routing-engine-item/utmd-status | //utmd-status view: UTMStatusView key: - ../re-name | Null UTMStatusView: fields: running: { running: flag } """ globals().update(FactoryLoader().load(yaml.load(yaml_data, Loader=yaml.Loader))) tbl = UTMStatusTable(self.dev) data = tbl.get() self.assertEqual(json.loads(data.to_json()), {"running": True}) def _read_file(self, fname): from ncclient.xml_ import NCElement fpath = os.path.join(os.path.dirname(__file__), "rpc-reply", fname) foo = open(fpath).read() reply = RPCReply(foo) reply.parse() rpc_reply = NCElement( reply, self.dev._conn._device_handler.transform_reply() )._NCElement__doc[0] return rpc_reply def _mock_manager(self, *args, **kwargs): if kwargs: if args and ("normalize" in kwargs or "filter_xml" in kwargs): return self._read_file(args[0].tag + ".xml") device_params = kwargs["device_params"] device_handler = make_device_handler(device_params) session = SSHSession(device_handler) return Manager(session, device_handler) if args: return self._read_file(args[0].tag + ".xml") py-junos-eznc-2.7.3/tests/unit/factory/test_table.py000066400000000000000000000137461475361112400225530ustar00rootroot00000000000000__author__ = "Rick Sherman, Nitin Kumar" __credits__ = "Jeremy Schulman" import unittest import nose2 import os from jnpr.junos import Device from jnpr.junos.factory.table import Table from unittest.mock import patch from lxml import etree from jnpr.junos.op.phyport import PhyPortTable from ncclient.manager import Manager, make_device_handler from ncclient.transport import SSHSession from ncclient.devices.junos import JunosDeviceHandler import sys if sys.version < "3": builtin_string = "__builtin__" else: builtin_string = "builtins" class TestFactoryTable(unittest.TestCase): @patch("ncclient.manager.connect") def setUp(self, mock_connect): mock_connect.side_effect = self._mock_manager self.dev = Device( host="1.1.1.1", user="rick", password="password123", gather_facts=False ) self.device_handler = JunosDeviceHandler( device_params={"name": "junos", "local": False} ) self.dev.open() self.table = Table(dev=self.dev) self.ppt = PhyPortTable(self.dev) def test_config_constructor(self): self.assertTrue(isinstance(self.table.D, Device)) def test_table_hostname(self): self.assertEqual(self.table.hostname, "1.1.1.1") def test_table_is_container(self): self.assertTrue(self.table.is_container) def test_table_repr_xml_none(self): self.assertEqual(repr(self.table), "Table:1.1.1.1 - Table empty") def test_table_view_setter_ValueError(self): try: self.table.view = "test" except Exception as ex: self.assertEqual(ex.__class__, ValueError) @patch("jnpr.junos.Device.execute") def test_keys_RuntimeError(self, mock_execute): mock_execute.side_effect = self._mock_manager self.ppt.get("ge-0/0/0") self.ppt.ITEM_NAME_XPATH = 1 self.assertRaises(RuntimeError, self.ppt.keys) @patch("jnpr.junos.Device.execute") def test_keys__keys_composite(self, mock_execute): mock_execute.side_effect = self._mock_manager self.ppt.get("ge-0/0/0") self.ppt.ITEM_NAME_XPATH = ["name", "missing", "mtu"] self.assertEqual( self.ppt.keys(), [("ge-0/0/0", None, "1514"), ("ge-0/0/1", None, "1514")] ) @patch("jnpr.junos.Device.execute") def test_keys__keys_pipe(self, mock_execute): from jnpr.junos.op.lldp import LLDPNeighborTable mock_execute.side_effect = self._mock_manager self.lldp = LLDPNeighborTable(self.dev) self.lldp.get() self.assertEqual(self.lldp.keys(), ["et-0/0/48", "et-0/0/49", "xe-0/0/13"]) @patch("jnpr.junos.Device.execute") def test_table_repr_xml_not_none(self, mock_execute): mock_execute.side_effect = self._mock_manager self.ppt.get("ge-0/0/0") self.table.xml = self.ppt.xml self.table.ITEM_XPATH = self.ppt.ITEM_XPATH self.assertEqual(repr(self.table), "Table:1.1.1.1: 2 items") @patch("jnpr.junos.Device.execute") def test_table_get_keys_values(self, mock_execute): mock_execute.side_effect = self._mock_manager self.ppt.get("ge-0/0/0") self.assertEqual(self.ppt.keys(), ["ge-0/0/0", "ge-0/0/1"]) self.assertEqual(len(self.ppt.values()), 2) self.ppt.view = None self.assertEqual(len(self.ppt.values()), 2) @patch("jnpr.junos.Device.execute") def test_table__getitem__(self, mock_execute): mock_execute.side_effect = self._mock_manager self.ppt.get("ge-0/0/0") self.assertEqual(self.ppt[0].ITEM_NAME_XPATH, "name") @patch("jnpr.junos.Device.execute") def test_table__getitem__slice(self, mock_execute): mock_execute.side_effect = self._mock_manager self.ppt.get("ge-0/0/0") self.assertEqual(self.ppt[:1][0].__class__.__name__, "PhyPortView") @patch("jnpr.junos.Device.execute") def test_table__getitem__tuple(self, mock_execute): mock_execute.side_effect = self._mock_manager self.ppt.get("ge-0/0/0") self.assertEqual(self.ppt[("ge-0/0/0",)], None) @patch("jnpr.junos.Device.execute") def test_table__contains__(self, mock_execute): mock_execute.side_effect = self._mock_manager self.ppt.get("ge-0/0/0") self.assertTrue("ge-0/0/0" in self.ppt) @patch("jnpr.junos.Device.execute") def test_table_items(self, mock_execute): mock_execute.side_effect = self._mock_manager self.ppt.get("ge-0/0/0") self.assertEqual(len(self.ppt.items()[1][1]), 8) def test_table_get_return_none(self): self.assertEqual(self.table.get("ge-0/0/0"), None) def test_table_get_RuntimeError(self): self.assertRaises(RuntimeError, self.table._keys) @patch("jnpr.junos.Device.execute") @patch(builtin_string + ".open") def test_table_savexml(self, mock_file, mock_execute): mock_execute.side_effect = self._mock_manager self.ppt.xml = etree.XML("test") self.ppt.savexml("foo.xml", hostname=True, append="test") mock_file.assert_called_once_with("foo_1.1.1.1_test.xml", "wb+") self.ppt.savexml("foo.xml", hostname=True, timestamp=True) self.assertEqual(mock_file.call_count, 2) def _read_file(self, fname): from ncclient.xml_ import NCElement fpath = os.path.join(os.path.dirname(__file__), "rpc-reply", fname) foo = open(fpath).read() rpc_reply = NCElement( foo, self.device_handler.transform_reply() )._NCElement__doc[0] return rpc_reply def _mock_manager(self, *args, **kwargs): if kwargs: if args and ("normalize" in kwargs or "filter_xml" in kwargs): return self._read_file(args[0].tag + ".xml") device_params = kwargs["device_params"] device_handler = make_device_handler(device_params) session = SSHSession(device_handler) return Manager(session, device_handler) if args: return self._read_file(args[0].tag + ".xml") py-junos-eznc-2.7.3/tests/unit/factory/test_to_json.py000066400000000000000000000112461475361112400231300ustar00rootroot00000000000000__author__ = "Rick Sherman" try: import unittest2 as unittest except ImportError: import unittest import nose2 from unittest.mock import patch import os import json from jnpr.junos import Device from jnpr.junos.factory.to_json import ( PyEzJSONEncoder, TableJSONEncoder, TableViewJSONEncoder, ) from jnpr.junos.op.routes import RouteSummaryTable from ncclient.manager import Manager, make_device_handler from ncclient.transport import SSHSession from ncclient.operations.rpc import RPCReply class TestToJson(unittest.TestCase): @patch("ncclient.manager.connect") def setUp(self, mock_connect): mock_connect.side_effect = self._mock_manager self.dev = Device( host="1.1.1.1", user="rick", password="password123", gather_facts=False ) self.dev.open() def test_pyez_encoder_default(self): with self.assertRaises(TypeError): PyEzJSONEncoder.default(PyEzJSONEncoder(), "test") def test_table_encoder_default(self): with self.assertRaises(TypeError): TableJSONEncoder.default(TableJSONEncoder(), "test") def test_view_encoder_default(self): with self.assertRaises(TypeError): TableViewJSONEncoder.default(TableViewJSONEncoder(), "test") @patch("jnpr.junos.Device.execute") def test_table_json(self, mock_execute): mock_execute.side_effect = self._mock_manager rst = RouteSummaryTable(self.dev) rst.get() resp = rst.to_json() j = { "ISP-1.inet.0": { "proto": { "Local": {"count": 1, "active": 1}, "Direct": {"count": 3, "active": 3}, }, "dests": 4, "holddown": 0, "active": 4, "hidden": 0, "total": 4, }, "ISP-2.inet.0": { "proto": { "Local": {"count": 1, "active": 1}, "Direct": {"count": 3, "active": 3}, }, "dests": 4, "holddown": 0, "active": 4, "hidden": 0, "total": 4, }, "inet.0": { "proto": { "Local": {"count": 4, "active": 4}, "Static": {"count": 1, "active": 1}, "Direct": {"count": 4, "active": 3}, }, "dests": 8, "holddown": 0, "active": 8, "hidden": 0, "total": 9, }, } self.assertEqual(eval(resp), j) @patch("jnpr.junos.Device.execute") def test_view_json(self, mock_execute): mock_execute.side_effect = self._mock_manager rst = RouteSummaryTable(self.dev) rst.get() resp = rst["ISP-1.inet.0"].to_json() j = { "ISP-1.inet.0": { "proto": { "Local": {"count": 1, "active": 1}, "Direct": {"count": 3, "active": 3}, }, "dests": 4, "holddown": 0, "active": 4, "hidden": 0, "total": 4, } } self.assertEqual(eval(resp), j) @patch("jnpr.junos.Device.execute") def test_json_rpc(self, mock_execute): mock_execute.side_effect = self._mock_manager resp = self.dev.rpc.get_software_information() j = { "package-information": { "comment": "JUNOS Software Release [12.1X46-D15.3]", "name": "junos", }, "host-name": "firefly", "product-model": "firefly-perimeter", "product-name": "firefly-perimeter", } self.assertEqual(eval(json.dumps(resp)), j) def _read_file(self, fname): from ncclient.xml_ import NCElement fpath = os.path.join(os.path.dirname(__file__), "rpc-reply", fname) foo = open(fpath).read() reply = RPCReply(foo) reply.parse() rpc_reply = NCElement( reply, self.dev._conn._device_handler.transform_reply() )._NCElement__doc[0] return rpc_reply def _mock_manager(self, *args, **kwargs): if kwargs: if args and ("normalize" in kwargs or "filter_xml" in kwargs): return self._read_file(args[0].tag + ".xml") device_params = kwargs["device_params"] device_handler = make_device_handler(device_params) session = SSHSession(device_handler) return Manager(session, device_handler) if args: return self._read_file(args[0].tag + ".xml") py-junos-eznc-2.7.3/tests/unit/factory/test_view.py000066400000000000000000000154311475361112400224270ustar00rootroot00000000000000__author__ = "Rick Sherman, Nitin Kumar" __credits__ = "Jeremy Schulman" import unittest import nose2 from unittest.mock import MagicMock, patch from jnpr.junos import Device from jnpr.junos.factory.view import View from jnpr.junos.op.phyport import PhyPortStatsTable, PhyPortStatsView from lxml import etree class TestFactoryView(unittest.TestCase): def setUp(self): self.dev = Device( host="1.1.1.1", user="rick", password="password123", gather_facts=False ) self.ppt = PhyPortStatsTable(self.dev) ret_val = " \ ge-0/0/0 \ up \ up \ " xml = etree.fromstring(ret_val) self.v = PhyPortStatsView(self.ppt, xml) def test_view_init(self): self.assertEqual(self.v.key, "ge-0/0/0") def test_view_init_multi_exception(self): self.assertRaises(ValueError, View, self.ppt, ["test", "123"]) def test_view_init_lxml_exception(self): self.assertRaises(ValueError, View, self.ppt, ["test"]) def test_view_repr(self): self.assertEqual(str(self.v), "PhyPortStatsView:ge-0/0/0") def test_view_d(self): self.assertEqual(self.v.D, self.dev) def test_view_name(self): self.assertEqual(self.v.name, "ge-0/0/0") def test_view_name_xpath_none(self): self.v.ITEM_NAME_XPATH = None self.assertEqual(self.v.name, []) def test_view_name_xpath_composite(self): self.v.ITEM_NAME_XPATH = ["name", "missing", "admin-status"] self.assertEqual(self.v.name, ("ge-0/0/0", None, "up")) def test_view_asview(self): self.assertEqual(type(self.v.asview(PhyPortStatsTable)), PhyPortStatsTable) @patch("jnpr.junos.factory.view.warnings") def test_view_refresh_can_refresh_false(self, mock_warnings): self.v._table.can_refresh = False self.assertRaises(RuntimeError, self.v.refresh) @patch("jnpr.junos.factory.view.warnings") def test_view_refresh_can_refresh_true(self, mock_warnings): self.v._table.can_refresh = True self.v._table._rpc_get = MagicMock() self.v.refresh() self.v._table._rpc_get.assert_called_once_with("ge-0/0/0") def test_view___getattr__wrong_attr(self): try: self.v.abc except Exception as ex: self.assertEqual(ex.__class__, ValueError) def test_view_updater_context(self): with self.v.updater(fields=False) as up: self.assertEqual(up.__class__.__name__, "RunstatViewMore") def test_view_updater_fields_true(self): def fn(): with self.v.updater(fields=True): pass fn() self.assertEqual( self.v.GROUPS, {"rxerrs": "input-error-list", "ts": "traffic-statistics"} ) def test_view_updater_groups_true(self): def fn(): with self.v.updater(groups=True): pass fn() self.assertEqual( self.v.GROUPS, {"rxerrs": "input-error-list", "ts": "traffic-statistics"} ) def test_view_updater_all_false(self): with self.v.updater(all=False): self.assertEqual( self.v.GROUPS, {"rxerrs": "input-error-list", "ts": "traffic-statistics"}, ) def test_view_updater_with_groups_all_true(self): def fn(): with self.v.updater(all=True) as more: more.groups = {} fn() self.assertEqual( self.v.GROUPS, {"rxerrs": "input-error-list", "ts": "traffic-statistics"} ) def test_view_updater_with_groups_all_false(self): def fn(): with self.v.updater(all=False) as more: more.groups = {} fn() self.assertEqual( self.v.GROUPS, {"rxerrs": "input-error-list", "ts": "traffic-statistics"} ) def test_view___getattr__table_item(self): tbl = { "RouteTable": { "item": "route-table/rt", "rpc": "get-route-information", "args_key": "destination", "key": "rt-destination", "view": "RouteTableView", "table": PhyPortStatsTable, } } self.v.FIELDS.update(tbl) self.assertEqual(self.v.RouteTable.__class__.__name__, "PhyPortStatsTable") def test_view___getattr___munch(self): ret_val = " \ ge-0/0/0 \ up \ down \ up \ " xml = etree.fromstring(ret_val) self.v = PhyPortStatsView(self.ppt, xml) tbl = { "RouteTable": { "item": "route-table/rt", "rpc": "get-route-information", "args_key": "destination", "key": "rt-destination", "view": "RouteTableView", "xpath": ".//admin-status", } } self.v.FIELDS.update(tbl) self.assertEqual(self.v.RouteTable, ["up", "down"]) def test_view___getattr___munch_tag(self): ret_val = " \ ge-0/0/0 \ test_tag \ up \ " xml = etree.fromstring(ret_val) self.v = PhyPortStatsView(self.ppt, xml) tbl = { "RouteTable": { "item": "route-table/rt", "rpc": "get-route-information", "args_key": "destination", "key": "rt-destination", "view": "RouteTableView", "xpath": ".//admin-status", } } self.v.FIELDS.update(tbl) self.assertEqual(self.v.RouteTable, "admin-status") def test_view___getattr___raise_RuntimeError(self): ret_val = " \ ge-0/0/0 \ test_tag \ up \ " xml = etree.fromstring(ret_val) self.v = PhyPortStatsView(self.ppt, xml) tbl = { "RouteTable": { "item": "route-table/rt", "rpc": "get-route-information", "args_key": "destination", "key": "rt-destination", "view": "RouteTableView", "xpath": ".//admin-status", "astype": "abc", } } self.v.FIELDS.update(tbl) def fn(): return self.v.RouteTable self.assertRaises(RuntimeError, fn) py-junos-eznc-2.7.3/tests/unit/factory/test_view_fields.py000066400000000000000000000016131475361112400237520ustar00rootroot00000000000000__author__ = "Rick Sherman" __credits__ = "Jeremy Schulman" import unittest import nose2 from jnpr.junos.factory.viewfields import ViewFields class TestFactoryViewFields(unittest.TestCase): def setUp(self): self.vf = ViewFields() def test_viewfields_string(self): self.vf.str("test", key="123") self.assertEqual(self.vf.end["test"]["key"], "123") def test_viewfields_astype(self): self.vf.astype("test", astype=1) self.assertEqual(self.vf.end["test"]["astype"], 1) def test_viewfields_int(self): self.vf.int("test") self.assertEqual(self.vf.end["test"]["astype"], int) def test_viewfields_flag(self): self.vf.flag("test") self.assertEqual(self.vf.end["test"]["astype"], bool) def test_viewfields_table(self): self.vf.table("test", []) self.assertEqual(self.vf.end["test"]["table"], []) py-junos-eznc-2.7.3/tests/unit/facts/000077500000000000000000000000001475361112400174715ustar00rootroot00000000000000py-junos-eznc-2.7.3/tests/unit/facts/__init__.py000066400000000000000000000000001475361112400215700ustar00rootroot00000000000000py-junos-eznc-2.7.3/tests/unit/facts/dupe_foo1.py000066400000000000000000000004111475361112400217200ustar00rootroot00000000000000def provides_facts(): """ Returns a dictionary keyed on the facts provided by this module. The value of each key is the doc string describing the fact. """ return {"foo": "The foo information."} def get_facts(device): return {"foo": None} py-junos-eznc-2.7.3/tests/unit/facts/dupe_foo2.py000066400000000000000000000004111475361112400217210ustar00rootroot00000000000000def provides_facts(): """ Returns a dictionary keyed on the facts provided by this module. The value of each key is the doc string describing the fact. """ return {"foo": "The foo information."} def get_facts(device): return {"foo": None} py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/000077500000000000000000000000001475361112400214065ustar00rootroot00000000000000py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/bd_command.xml000066400000000000000000000002061475361112400242110ustar00rootroot00000000000000 chassis_backplane_serialnumber_get-chassis-inventory.xml000066400000000000000000000031601475361112400346030ustar00rootroot00000000000000py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply node0 node1 Chassis FIREFLY-PERIMETER Midplane System IO Backplane 123456789 Routing Engine FIREFLY-PERIMETER RE FPC 0 Virtual FPC PIC 0 Virtual GE Power Supply 0 {disabled:node0} py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/chassis_connect_not_master_get-chassis-inventory.xml000066400000000000000000000002701475361112400340550ustar00rootroot00000000000000 Aborted! This command can only be used on the master routing engine. py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/chassis_error_xml_get-chassis-inventory.xml000066400000000000000000000002051475361112400322000ustar00rootroot00000000000000 Some error message. py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/chassis_serialnumber_get-chassis-inventory.xml000066400000000000000000000367001475361112400326700ustar00rootroot00000000000000 Chassis JN1249018AFB MX480 Midplane REV 05 710-017414 ACRD2907 MX480 Midplane CHAS-BP-MX480-S FPM Board REV 02 710-017254 CADZ7080 Front Panel Display CRAFT-MX480-S PEM 0 Rev 10 740-029970 QCS1441U1AP PS 1.4-2.52kW; 90-264V AC in PWR-MX480-2520-AC-S PEM 2 Rev 10 740-029970 QCS1441U12W PS 1.4-2.52kW; 90-264V AC in PWR-MX480-2520-AC-S Routing Engine 0 REV 01 740-051822 9013088309 RE-S-1800x4 COUCATEBAA RE-S-1800X4-32G-S Routing Engine 1 REV 01 740-051822 9013086699 RE-S-1800x4 COUCATEBAA RE-S-1800X4-32G-S CB 0 REV 02 750-055976 CAEB8262 Enhanced MX SCB 2 COUCATYBAA SCBE2-MX-S CB 1 REV 02 750-055976 CAEB2945 Enhanced MX SCB 2 COUCATYBAA SCBE2-MX-S FPC 0 REV 56 750-045715 CADG7246 MPC5E 3D Q 24XGE+6XLGE COUIBD3BAA MPC5EQ-40G10G CPU REV 11 711-045719 CADC7757 RMPC PMB PIC 0 BUILTIN BUILTIN 12X10GE SFPP OTN Xcvr 0 REV 01 740-031980 MSR0YWA SFP+-10G-SR Xcvr 1 REV 01 740-031980 MSR0U4D SFP+-10G-SR Xcvr 2 REV 01 740-031980 MSR0XUR SFP+-10G-SR Xcvr 3 REV 01 740-031980 MSR0UBV SFP+-10G-SR Xcvr 4 REV 01 740-031980 MSR0YLE SFP+-10G-SR Xcvr 5 REV 01 740-021308 ALD05W0 SFP+-10G-SR Xcvr 6 REV 01 740-031980 MSR0YVZ SFP+-10G-SR Xcvr 7 REV 01 740-031980 MSR0S0S SFP+-10G-SR Xcvr 8 REV 01 740-031980 MSR0V77 SFP+-10G-SR Xcvr 9 REV 01 740-031980 MSR0TS5 SFP+-10G-SR Xcvr 10 REV 01 740-031980 AA15053MC7X SFP+-10G-SR Xcvr 11 REV 01 740-031980 AA15053MC7R SFP+-10G-SR PIC 1 BUILTIN BUILTIN 12X10GE SFPP OTN Xcvr 0 REV 01 740-031980 MSR0YLS SFP+-10G-SR Xcvr 1 REV 01 740-031980 MSR0YV7 SFP+-10G-SR Xcvr 2 REV 01 740-031980 MSR0U3Z SFP+-10G-SR Xcvr 3 REV 01 740-031980 MSR0TSQ SFP+-10G-SR Xcvr 8 REV 01 740-031980 MSR0Y14 SFP+-10G-SR Xcvr 9 REV 01 740-031980 MSR0TWS SFP+-10G-SR Xcvr 10 REV 01 740-031980 MSR0YMU SFP+-10G-SR Xcvr 11 REV 01 740-031980 MSR0USB SFP+-10G-SR PIC 2 BUILTIN BUILTIN 3X40GE QSFPP PIC 3 BUILTIN BUILTIN 3X40GE QSFPP WAN MEZZ REV 13 750-049136 CADG6835 MPC5E 24XGE OTN Mezz FPC 1 REV 61 750-045715 CAFL6036 MPC5E 3D Q 24XGE+6XLGE COUIBD3BAA MPC5EQ-40G10G CPU REV 12 711-045719 CAFK4005 RMPC PMB PIC 0 BUILTIN BUILTIN 12X10GE SFPP OTN PIC 1 BUILTIN BUILTIN 12X10GE SFPP OTN PIC 2 BUILTIN BUILTIN 3X40GE QSFPP PIC 3 BUILTIN BUILTIN 3X40GE QSFPP WAN MEZZ REV 15 750-049136 CAFN5562 MPC5E 24XGE OTN Mezz Fan Tray Enhanced Left Fan Tray FFANTRAY-MX480-HC-S py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/cluster_false_get-chassis-cluster-status.xml000066400000000000000000000005141475361112400322550ustar00rootroot00000000000000 jsrpd error: Chassis cluster is not enabled py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/cluster_true_get-chassis-cluster-status.xml000066400000000000000000000017421475361112400321460ustar00rootroot00000000000000 1 1 0 1 node0 100 primary no no node1 0 lost n/a n/a py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/current_re_empty_file-show.xml000066400000000000000000000003711475361112400274740ustar00rootroot00000000000000 # End of internal names py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/current_re_empty_get-interface-information.xml000066400000000000000000000004251475361112400326370ustar00rootroot00000000000000 py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/current_re_file-show.xml000066400000000000000000002045501475361112400262630ustar00rootroot00000000000000 #$Id: hosts.junos,v 1.7.72.1 2009-04-16 05:22:03 kdickman Exp $ # # File mapping AF_INET/AF_INET6 hostnames for REs on Single and Multichassis # systems # # This file is looked at before /etc/hosts by gethostbyname(3), # gethostbyname2(3) and getaddrinfo(3) # # The IP addresses in this file are only used for communication between REs # over the Internal Routing Instances # # WARNING: # # The names in this file are effectively reserved for internal use. # # New IP address format (RT_IRS_V3) # # Single Chassis Hostnames # 128.0.0.1 master 128.0.0.1 node 128.0.0.1 fwdd 128.0.0.1 member 128.0.0.1 pfem 128.0.0.2 scb 128.0.0.2 sbr 128.0.0.2 ssb 128.0.0.2 feb 128.0.0.2 cfeb0 128.0.0.2 cfeb 128.0.0.2 cpp0 128.0.0.3 cfeb1 128.0.0.3 cpp1 128.0.0.4 re0 128.0.0.5 re1 128.0.0.6 backup 128.0.0.8 sfm0 128.0.0.9 sfm1 128.0.0.10 sfm2 128.0.0.16 fpc0 128.0.0.17 fpc1 128.0.0.18 fpc2 128.0.0.19 fpc3 128.0.0.20 fpc4 128.0.0.21 fpc5 128.0.0.22 fpc6 128.0.0.23 fpc7 128.0.0.24 fpc8 128.0.0.25 fpc9 128.0.0.26 fpc10 128.0.0.27 fpc11 128.0.0.28 fpc12 128.0.0.29 fpc13 128.0.0.30 fpc14 128.0.0.31 fpc15 128.0.0.32 feb0 128.0.0.32 fpc16 128.0.0.33 feb1 128.0.0.33 fpc17 128.0.0.34 feb2 128.0.0.34 fpc18 128.0.0.35 feb3 128.0.0.35 fpc19 128.0.0.36 fpc20 128.0.0.36 feb4 128.0.0.37 feb5 128.0.0.37 fpc21 128.0.0.38 fpc22 128.0.0.39 fpc23 128.0.0.40 fpc24 128.0.0.41 fpc25 128.0.0.42 fpc26 128.0.0.43 fpc27 128.0.0.44 fpc28 128.0.0.45 fpc29 128.0.0.46 fpc30 128.0.0.47 fpc31 128.0.0.48 spmb0 128.0.0.49 spmb1 128.0.0.50 tfeb0 128.0.0.50 afeb0 128.0.0.53 esc0 128.0.0.54 esc1 128.0.0.55 esc0-ipmi 128.0.0.56 esc1-ipmi 128.0.1.16 fpc0.pic0 128.0.1.17 fpc1.pic0 128.0.1.18 fpc2.pic0 128.0.1.19 fpc3.pic0 128.0.1.20 fpc4.pic0 128.0.1.21 fpc5.pic0 128.0.1.22 fpc6.pic0 128.0.1.23 fpc7.pic0 128.0.1.24 fpc8.pic0 128.0.1.25 fpc9.pic0 128.0.1.26 fpc10.pic0 128.0.1.27 fpc11.pic0 128.0.1.28 fpc12.pic0 128.0.1.29 fpc13.pic0 128.0.1.30 fpc14.pic0 128.0.1.31 fpc15.pic0 128.0.1.32 fpc16.pic0 128.0.1.33 fpc17.pic0 128.0.1.34 fpc18.pic0 128.0.1.35 fpc19.pic0 128.0.1.36 fpc20.pic0 128.0.1.37 fpc21.pic0 128.0.1.38 fpc22.pic0 128.0.1.39 fpc23.pic0 128.0.1.40 fpc24.pic0 128.0.1.41 fpc25.pic0 128.0.1.42 fpc26.pic0 128.0.1.43 fpc27.pic0 128.0.1.44 fpc28.pic0 128.0.1.45 fpc29.pic0 128.0.1.46 fpc30.pic0 128.0.1.47 fpc31.pic0 128.0.2.16 fpc0.pic1 128.0.2.17 fpc1.pic1 128.0.2.18 fpc2.pic1 128.0.2.19 fpc3.pic1 128.0.2.20 fpc4.pic1 128.0.2.21 fpc5.pic1 128.0.2.22 fpc6.pic1 128.0.2.23 fpc7.pic1 128.0.2.24 fpc8.pic1 128.0.2.25 fpc9.pic1 128.0.2.26 fpc10.pic1 128.0.2.27 fpc11.pic1 128.0.2.28 fpc12.pic1 128.0.2.29 fpc13.pic1 128.0.2.30 fpc14.pic1 128.0.2.31 fpc15.pic1 128.0.2.32 fpc16.pic1 128.0.2.33 fpc17.pic1 128.0.2.34 fpc18.pic1 128.0.2.35 fpc19.pic1 128.0.2.36 fpc20.pic1 128.0.2.37 fpc21.pic1 128.0.2.38 fpc22.pic1 128.0.2.39 fpc23.pic1 128.0.2.40 fpc24.pic1 128.0.2.41 fpc25.pic1 128.0.2.42 fpc26.pic1 128.0.2.43 fpc27.pic1 128.0.2.44 fpc28.pic1 128.0.2.45 fpc29.pic1 128.0.2.46 fpc30.pic1 128.0.2.47 fpc31.pic1 128.0.3.16 fpc0.pic2 128.0.3.17 fpc1.pic2 128.0.3.18 fpc2.pic2 128.0.3.19 fpc3.pic2 128.0.3.20 fpc4.pic2 128.0.3.21 fpc5.pic2 128.0.3.22 fpc6.pic2 128.0.3.23 fpc7.pic2 128.0.3.24 fpc8.pic2 128.0.3.25 fpc9.pic2 128.0.3.26 fpc10.pic2 128.0.3.27 fpc11.pic2 128.0.3.28 fpc12.pic2 128.0.3.29 fpc13.pic2 128.0.3.30 fpc14.pic2 128.0.3.31 fpc15.pic2 128.0.4.16 fpc0.pic3 128.0.4.17 fpc1.pic3 128.0.4.18 fpc2.pic3 128.0.4.19 fpc3.pic3 128.0.4.20 fpc4.pic3 128.0.4.21 fpc5.pic3 128.0.4.22 fpc6.pic3 128.0.4.23 fpc7.pic3 128.0.4.24 fpc8.pic3 128.0.4.25 fpc9.pic3 128.0.4.26 fpc10.pic3 128.0.4.27 fpc11.pic3 128.0.4.28 fpc12.pic3 128.0.4.29 fpc13.pic3 128.0.4.30 fpc14.pic3 128.0.4.31 fpc15.pic3 # # DCF-Root Hostname # 128.0.130.2 dcf-root # # Multi Chassis Hostnames # #SCC 144.0.0.1 scc-master 144.0.0.4 scc-re0 144.0.0.5 scc-re1 144.0.0.6 scc-backup 144.0.0.48 scc-spmb0 144.0.0.49 scc-spmb1 #LCC 0 (or MEMBER 0 on Virtual Chassis) 129.0.0.1 lcc0-master member0-master member0 129.0.0.4 lcc0-re0 member0-re0 129.0.0.5 lcc0-re1 member0-re1 129.0.0.6 lcc0-backup member0-backup 129.0.0.16 member0-fpc0 129.0.0.17 member0-fpc1 129.0.0.18 member0-fpc2 129.0.0.19 member0-fpc3 129.0.0.20 member0-fpc4 129.0.0.21 member0-fpc5 129.0.0.22 member0-fpc6 129.0.0.23 member0-fpc7 129.0.0.24 member0-fpc8 129.0.0.25 member0-fpc9 129.0.0.26 member0-fpc10 129.0.0.27 member0-fpc11 129.0.0.28 member0-fpc12 129.0.0.29 member0-fpc13 129.0.0.30 member0-fpc14 129.0.0.31 member0-fpc15 129.0.0.32 member0-fpc16 129.0.0.33 member0-fpc17 129.0.0.34 member0-fpc18 129.0.0.35 member0-fpc19 129.0.0.36 member0-fpc20 129.0.0.37 member0-fpc21 129.0.0.38 member0-fpc22 129.0.0.39 member0-fpc23 129.0.0.40 member0-fpc24 129.0.0.41 member0-fpc25 129.0.0.42 member0-fpc26 129.0.0.43 member0-fpc27 129.0.0.44 member0-fpc28 129.0.0.45 member0-fpc29 129.0.0.46 member0-fpc30 129.0.0.47 member0-fpc31 129.0.0.6 lcc0-backup 129.0.0.16 lcc0-fpc0 129.0.0.17 lcc0-fpc1 129.0.0.18 lcc0-fpc2 129.0.0.19 lcc0-fpc3 129.0.0.20 lcc0-fpc4 129.0.0.21 lcc0-fpc5 129.0.0.22 lcc0-fpc6 129.0.0.23 lcc0-fpc7 129.0.0.48 lcc0-spmb0 129.0.0.49 lcc0-spmb1 #LCC 1 (or MEMBER 1 on Virtual Chassis) 130.0.0.1 lcc1-master member1-master member1 130.0.0.4 lcc1-re0 member1-re0 130.0.0.5 lcc1-re1 member1-re1 130.0.0.6 lcc1-backup member1-backup 130.0.0.16 member1-fpc0 130.0.0.17 member1-fpc1 130.0.0.18 member1-fpc2 130.0.0.19 member1-fpc3 130.0.0.20 member1-fpc4 130.0.0.21 member1-fpc5 130.0.0.22 member1-fpc6 130.0.0.23 member1-fpc7 130.0.0.24 member1-fpc8 130.0.0.25 member1-fpc9 130.0.0.26 member1-fpc10 130.0.0.27 member1-fpc11 130.0.0.28 member1-fpc12 130.0.0.29 member1-fpc13 130.0.0.30 member1-fpc14 130.0.0.31 member1-fpc15 130.0.0.32 member1-fpc16 130.0.0.33 member1-fpc17 130.0.0.34 member1-fpc18 130.0.0.35 member1-fpc19 130.0.0.36 member1-fpc20 130.0.0.37 member1-fpc21 130.0.0.38 member1-fpc22 130.0.0.39 member1-fpc23 130.0.0.40 member1-fpc24 130.0.0.41 member1-fpc25 130.0.0.42 member1-fpc26 130.0.0.43 member1-fpc27 130.0.0.44 member1-fpc28 130.0.0.45 member1-fpc29 130.0.0.46 member1-fpc30 130.0.0.47 member1-fpc31 130.0.0.6 lcc1-backup 130.0.0.16 lcc1-fpc0 130.0.0.17 lcc1-fpc1 130.0.0.18 lcc1-fpc2 130.0.0.19 lcc1-fpc3 130.0.0.20 lcc1-fpc4 130.0.0.21 lcc1-fpc5 130.0.0.22 lcc1-fpc6 130.0.0.23 lcc1-fpc7 130.0.0.48 lcc1-spmb0 130.0.0.49 lcc1-spmb1 #LCC 2 (or MEMBER 2 on Virtual Chassis) 131.0.0.1 lcc2-master member2-master member2 131.0.0.4 lcc2-re0 member2-re0 131.0.0.5 lcc2-re1 member2-re1 131.0.0.6 lcc2-backup member2-backup 131.0.0.16 member2-fpc0 131.0.0.17 member2-fpc1 131.0.0.18 member2-fpc2 131.0.0.19 member2-fpc3 131.0.0.20 member2-fpc4 131.0.0.21 member2-fpc5 131.0.0.22 member2-fpc6 131.0.0.23 member2-fpc7 131.0.0.24 member2-fpc8 131.0.0.25 member2-fpc9 131.0.0.26 member2-fpc10 131.0.0.27 member2-fpc11 131.0.0.28 member2-fpc12 131.0.0.29 member2-fpc13 131.0.0.30 member2-fpc14 131.0.0.31 member2-fpc15 131.0.0.32 member2-fpc16 131.0.0.33 member2-fpc17 131.0.0.34 member2-fpc18 131.0.0.35 member2-fpc19 131.0.0.36 member2-fpc20 131.0.0.37 member2-fpc21 131.0.0.38 member2-fpc22 131.0.0.39 member2-fpc23 131.0.0.40 member2-fpc24 131.0.0.41 member2-fpc25 131.0.0.42 member2-fpc26 131.0.0.43 member2-fpc27 131.0.0.44 member2-fpc28 131.0.0.45 member2-fpc29 131.0.0.46 member2-fpc30 131.0.0.47 member2-fpc31 131.0.0.6 lcc2-backup 131.0.0.16 lcc2-fpc0 131.0.0.17 lcc2-fpc1 131.0.0.18 lcc2-fpc2 131.0.0.19 lcc2-fpc3 131.0.0.20 lcc2-fpc4 131.0.0.21 lcc2-fpc5 131.0.0.22 lcc2-fpc6 131.0.0.23 lcc2-fpc7 131.0.0.48 lcc2-spmb0 131.0.0.49 lcc20-spmb1 #LCC 3 (or MEMBER 3 on Virtual Chassis) 132.0.0.1 lcc3-master member3-master member3 132.0.0.4 lcc3-re0 member3-re0 132.0.0.5 lcc3-re1 member3-re1 132.0.0.6 lcc3-backup member3-backup 132.0.0.16 member3-fpc0 132.0.0.17 member3-fpc1 132.0.0.18 member3-fpc2 132.0.0.19 member3-fpc3 132.0.0.20 member3-fpc4 132.0.0.21 member3-fpc5 132.0.0.22 member3-fpc6 132.0.0.23 member3-fpc7 132.0.0.24 member3-fpc8 132.0.0.25 member3-fpc9 132.0.0.26 member3-fpc10 132.0.0.27 member3-fpc11 132.0.0.28 member3-fpc12 132.0.0.29 member3-fpc13 132.0.0.30 member3-fpc14 132.0.0.31 member3-fpc15 132.0.0.32 member3-fpc16 132.0.0.33 member3-fpc17 132.0.0.34 member3-fpc18 132.0.0.35 member3-fpc19 132.0.0.36 member3-fpc20 132.0.0.37 member3-fpc21 132.0.0.38 member3-fpc22 132.0.0.39 member3-fpc23 132.0.0.40 member3-fpc24 132.0.0.41 member3-fpc25 132.0.0.42 member3-fpc26 132.0.0.43 member3-fpc27 132.0.0.44 member3-fpc28 132.0.0.45 member3-fpc29 132.0.0.46 member3-fpc30 132.0.0.47 member3-fpc31 132.0.0.6 lcc3-backup 132.0.0.16 lcc3-fpc0 132.0.0.17 lcc3-fpc1 132.0.0.18 lcc3-fpc2 132.0.0.19 lcc3-fpc3 132.0.0.20 lcc3-fpc4 132.0.0.21 lcc3-fpc5 132.0.0.22 lcc3-fpc6 132.0.0.23 lcc3-fpc7 132.0.0.48 lcc3-spmb0 132.0.0.49 lcc3-spmb1 #LCC 4 (or MEMBER 4 on Virtual Chassis) 133.0.0.1 lcc4-master member4-master member4 133.0.0.4 lcc4-re0 member4-re0 133.0.0.5 lcc4-re1 member4-re1 133.0.0.6 lcc4-backup member4-backup 133.0.0.16 member4-fpc0 133.0.0.17 member4-fpc1 133.0.0.18 member4-fpc2 133.0.0.19 member4-fpc3 133.0.0.20 member4-fpc4 133.0.0.21 member4-fpc5 133.0.0.22 member4-fpc6 133.0.0.23 member4-fpc7 133.0.0.24 member4-fpc8 133.0.0.25 member4-fpc9 133.0.0.26 member4-fpc10 133.0.0.27 member4-fpc11 133.0.0.28 member4-fpc12 133.0.0.29 member4-fpc13 133.0.0.30 member4-fpc14 133.0.0.31 member4-fpc15 133.0.0.32 member4-fpc16 133.0.0.33 member4-fpc17 133.0.0.34 member4-fpc18 133.0.0.35 member4-fpc19 133.0.0.36 member4-fpc20 133.0.0.37 member4-fpc21 133.0.0.38 member4-fpc22 133.0.0.39 member4-fpc23 133.0.0.40 member4-fpc24 133.0.0.41 member4-fpc25 133.0.0.42 member4-fpc26 133.0.0.43 member4-fpc27 133.0.0.44 member4-fpc28 133.0.0.45 member4-fpc29 133.0.0.46 member4-fpc30 133.0.0.47 member4-fpc31 133.0.0.6 lcc4-backup 133.0.0.16 lcc4-fpc0 133.0.0.17 lcc4-fpc1 133.0.0.18 lcc4-fpc2 133.0.0.19 lcc4-fpc3 133.0.0.20 lcc4-fpc4 133.0.0.21 lcc4-fpc5 133.0.0.22 lcc4-fpc6 133.0.0.23 lcc4-fpc7 133.0.0.48 lcc4-spmb0 133.0.0.49 lcc4-spmb1 #LCC 5 (or MEMBER 5 on Virtual Chassis) 134.0.0.1 lcc5-master member5-master member5 134.0.0.4 lcc5-re0 member5-re0 134.0.0.5 lcc5-re1 member5-re1 134.0.0.6 lcc5-backup member5-backup 134.0.0.16 member5-fpc0 134.0.0.17 member5-fpc1 134.0.0.18 member5-fpc2 134.0.0.19 member5-fpc3 134.0.0.20 member5-fpc4 134.0.0.21 member5-fpc5 134.0.0.22 member5-fpc6 134.0.0.23 member5-fpc7 134.0.0.24 member5-fpc8 134.0.0.25 member5-fpc9 134.0.0.26 member5-fpc10 134.0.0.27 member5-fpc11 134.0.0.28 member5-fpc12 134.0.0.29 member5-fpc13 134.0.0.30 member5-fpc14 134.0.0.31 member5-fpc15 134.0.0.32 member5-fpc16 134.0.0.33 member5-fpc17 134.0.0.34 member5-fpc18 134.0.0.35 member5-fpc19 134.0.0.36 member5-fpc20 134.0.0.37 member5-fpc21 134.0.0.38 member5-fpc22 134.0.0.39 member5-fpc23 134.0.0.40 member5-fpc24 134.0.0.41 member5-fpc25 134.0.0.42 member5-fpc26 134.0.0.43 member5-fpc27 134.0.0.44 member5-fpc28 134.0.0.45 member5-fpc29 134.0.0.46 member5-fpc30 134.0.0.47 member5-fpc31 134.0.0.6 lcc5-backup 134.0.0.16 lcc5-fpc0 134.0.0.17 lcc5-fpc1 134.0.0.18 lcc5-fpc2 134.0.0.19 lcc5-fpc3 134.0.0.20 lcc5-fpc4 134.0.0.21 lcc5-fpc5 134.0.0.22 lcc5-fpc6 134.0.0.23 lcc5-fpc7 134.0.0.48 lcc5-spmb0 134.0.0.49 lcc5-spmb1 #LCC 6 (or MEMBER 6 on Virtual Chassis) 135.0.0.1 lcc6-master member6-master member6 135.0.0.4 lcc6-re0 member6-re0 135.0.0.5 lcc6-re1 member6-re1 135.0.0.6 lcc6-backup member6-backup 135.0.0.16 member6-fpc0 135.0.0.17 member6-fpc1 135.0.0.18 member6-fpc2 135.0.0.19 member6-fpc3 135.0.0.20 member6-fpc4 135.0.0.21 member6-fpc5 135.0.0.22 member6-fpc6 135.0.0.23 member6-fpc7 135.0.0.24 member6-fpc8 135.0.0.25 member6-fpc9 135.0.0.26 member6-fpc10 135.0.0.27 member6-fpc11 135.0.0.28 member6-fpc12 135.0.0.29 member6-fpc13 135.0.0.30 member6-fpc14 135.0.0.31 member6-fpc15 135.0.0.32 member6-fpc16 135.0.0.33 member6-fpc17 135.0.0.34 member6-fpc18 135.0.0.35 member6-fpc19 135.0.0.36 member6-fpc20 135.0.0.37 member6-fpc21 135.0.0.38 member6-fpc22 135.0.0.39 member6-fpc23 135.0.0.40 member6-fpc24 135.0.0.41 member6-fpc25 135.0.0.42 member6-fpc26 135.0.0.43 member6-fpc27 135.0.0.44 member6-fpc28 135.0.0.45 member6-fpc29 135.0.0.46 member6-fpc30 135.0.0.47 member6-fpc31 135.0.0.6 lcc6-backup 135.0.0.16 lcc6-fpc0 135.0.0.17 lcc6-fpc1 135.0.0.18 lcc6-fpc2 135.0.0.19 lcc6-fpc3 135.0.0.20 lcc6-fpc4 135.0.0.21 lcc6-fpc5 135.0.0.22 lcc6-fpc6 135.0.0.23 lcc6-fpc7 135.0.0.48 lcc6-spmb0 135.0.0.49 lcc6-spmb1 #LCC 7 (or MEMBER 7 on Virtual Chassis) 136.0.0.1 lcc7-master member7-master member7 136.0.0.4 lcc7-re0 member7-re0 136.0.0.5 lcc7-re1 member7-re1 136.0.0.6 lcc7-backup member7-backup 136.0.0.16 member7-fpc0 136.0.0.17 member7-fpc1 136.0.0.18 member7-fpc2 136.0.0.19 member7-fpc3 136.0.0.20 member7-fpc4 136.0.0.21 member7-fpc5 136.0.0.22 member7-fpc6 136.0.0.23 member7-fpc7 136.0.0.24 member7-fpc8 136.0.0.25 member7-fpc9 136.0.0.26 member7-fpc10 136.0.0.27 member7-fpc11 136.0.0.28 member7-fpc12 136.0.0.29 member7-fpc13 136.0.0.30 member7-fpc14 136.0.0.31 member7-fpc15 136.0.0.32 member7-fpc16 136.0.0.33 member7-fpc17 136.0.0.34 member7-fpc18 136.0.0.35 member7-fpc19 136.0.0.36 member7-fpc20 136.0.0.37 member7-fpc21 136.0.0.38 member7-fpc22 136.0.0.39 member7-fpc23 136.0.0.40 member7-fpc24 136.0.0.41 member7-fpc25 136.0.0.42 member7-fpc26 136.0.0.43 member7-fpc27 136.0.0.44 member7-fpc28 136.0.0.45 member7-fpc29 136.0.0.46 member7-fpc30 136.0.0.47 member7-fpc31 136.0.0.6 lcc7-backup 136.0.0.16 lcc7-fpc0 136.0.0.17 lcc7-fpc1 136.0.0.18 lcc7-fpc2 136.0.0.19 lcc7-fpc3 136.0.0.20 lcc7-fpc4 136.0.0.21 lcc7-fpc5 136.0.0.22 lcc7-fpc6 136.0.0.23 lcc7-fpc7 136.0.0.48 lcc7-spmb0 136.0.0.49 lcc7-spmb1 137.0.0.6 lcc8-backup 137.0.0.16 lcc8-fpc0 137.0.0.17 lcc8-fpc1 137.0.0.18 lcc8-fpc2 137.0.0.19 lcc8-fpc3 137.0.0.20 lcc8-fpc4 137.0.0.21 lcc8-fpc5 137.0.0.22 lcc8-fpc6 137.0.0.23 lcc8-fpc7 137.0.0.48 lcc8-spmb0 137.0.0.49 lcc8-spmb1 #LCC 8 (or MEMBER 8 on Virtual Chassis) 137.0.0.1 lcc8-master member8-master member8 137.0.0.4 lcc8-re0 member8-re0 137.0.0.5 lcc8-re1 member8-re1 137.0.0.6 lcc8-backup member8-backup 137.0.0.16 member8-fpc0 137.0.0.17 member8-fpc1 137.0.0.18 member8-fpc2 137.0.0.19 member8-fpc3 137.0.0.20 member8-fpc4 137.0.0.21 member8-fpc5 137.0.0.22 member8-fpc6 137.0.0.23 member8-fpc7 137.0.0.24 member8-fpc8 137.0.0.25 member8-fpc9 137.0.0.26 member8-fpc10 137.0.0.27 member8-fpc11 137.0.0.28 member8-fpc12 137.0.0.29 member8-fpc13 137.0.0.30 member8-fpc14 137.0.0.31 member8-fpc15 137.0.0.32 member8-fpc16 137.0.0.33 member8-fpc17 137.0.0.34 member8-fpc18 137.0.0.35 member8-fpc19 137.0.0.36 member8-fpc20 137.0.0.37 member8-fpc21 137.0.0.38 member8-fpc22 137.0.0.39 member8-fpc23 137.0.0.40 member8-fpc24 137.0.0.41 member8-fpc25 137.0.0.42 member8-fpc26 137.0.0.43 member8-fpc27 137.0.0.44 member8-fpc28 137.0.0.45 member8-fpc29 137.0.0.46 member8-fpc30 137.0.0.47 member8-fpc31 138.0.0.6 lcc9-backup 138.0.0.16 lcc9-fpc0 138.0.0.17 lcc9-fpc1 138.0.0.18 lcc9-fpc2 138.0.0.19 lcc9-fpc3 138.0.0.20 lcc9-fpc4 138.0.0.21 lcc9-fpc5 138.0.0.22 lcc9-fpc6 138.0.0.23 lcc9-fpc7 138.0.0.48 lcc9-spmb0 138.0.0.49 lcc9-spmb1 #LCC 9 (or MEMBER 9 on Virtual Chassis) 138.0.0.1 lcc9-master member9-master member9 138.0.0.4 lcc9-re0 member9-re0 138.0.0.5 lcc9-re1 member9-re1 138.0.0.6 lcc9-backup member9-backup 138.0.0.16 member9-fpc0 138.0.0.17 member9-fpc1 138.0.0.18 member9-fpc2 138.0.0.19 member9-fpc3 138.0.0.20 member9-fpc4 138.0.0.21 member9-fpc5 138.0.0.22 member9-fpc6 138.0.0.23 member9-fpc7 138.0.0.24 member9-fpc8 138.0.0.25 member9-fpc9 138.0.0.26 member9-fpc10 138.0.0.27 member9-fpc11 138.0.0.28 member9-fpc12 138.0.0.29 member9-fpc13 138.0.0.30 member9-fpc14 138.0.0.31 member9-fpc15 138.0.0.32 member9-fpc16 138.0.0.33 member9-fpc17 138.0.0.34 member9-fpc18 138.0.0.35 member9-fpc19 138.0.0.36 member9-fpc20 138.0.0.37 member9-fpc21 138.0.0.38 member9-fpc22 138.0.0.39 member9-fpc23 138.0.0.40 member9-fpc24 138.0.0.41 member9-fpc25 138.0.0.42 member9-fpc26 138.0.0.43 member9-fpc27 138.0.0.44 member9-fpc28 138.0.0.45 member9-fpc29 138.0.0.46 member9-fpc30 138.0.0.47 member9-fpc31 139.0.0.6 lcc10-backup 139.0.0.16 lcc10-fpc0 139.0.0.17 lcc10-fpc1 139.0.0.18 lcc10-fpc2 139.0.0.19 lcc10-fpc3 139.0.0.20 lcc10-fpc4 139.0.0.21 lcc10-fpc5 139.0.0.22 lcc10-fpc6 139.0.0.23 lcc10-fpc7 139.0.0.48 lcc10-spmb0 139.0.0.49 lcc10-spmb1 #LCC 10 (or MEMBER 10 on Virtual Chassis) 139.0.0.1 lcc10-master member10-master 139.0.0.4 lcc10-re0 member10-re0 139.0.0.5 lcc10-re1 member10-re1 139.0.0.6 lcc10-backup member10-backup 139.0.0.16 member10-fpc0 139.0.0.17 member10-fpc1 139.0.0.18 member10-fpc2 139.0.0.19 member10-fpc3 139.0.0.20 member10-fpc4 139.0.0.21 member10-fpc5 139.0.0.22 member10-fpc6 139.0.0.23 member10-fpc7 139.0.0.24 member10-fpc8 139.0.0.25 member10-fpc9 139.0.0.26 member10-fpc10 139.0.0.27 member10-fpc11 139.0.0.28 member10-fpc12 139.0.0.29 member10-fpc13 139.0.0.30 member10-fpc14 139.0.0.31 member10-fpc15 139.0.0.32 member10-fpc16 139.0.0.33 member10-fpc17 139.0.0.34 member10-fpc18 139.0.0.35 member10-fpc19 139.0.0.36 member10-fpc20 139.0.0.37 member10-fpc21 139.0.0.38 member10-fpc22 139.0.0.39 member10-fpc23 139.0.0.40 member10-fpc24 139.0.0.41 member10-fpc25 139.0.0.42 member10-fpc26 139.0.0.43 member10-fpc27 139.0.0.44 member10-fpc28 139.0.0.45 member10-fpc29 139.0.0.46 member10-fpc30 139.0.0.47 member10-fpc31 140.0.0.6 lcc11-backup 140.0.0.16 lcc11-fpc0 140.0.0.17 lcc11-fpc1 140.0.0.18 lcc11-fpc2 140.0.0.19 lcc11-fpc3 140.0.0.20 lcc11-fpc4 140.0.0.21 lcc11-fpc5 140.0.0.22 lcc11-fpc6 140.0.0.23 lcc11-fpc7 140.0.0.48 lcc11-spmb0 140.0.0.49 lcc11-spmb1 #LCC 11 (or MEMBER 11 on Virtual Chassis) 140.0.0.1 lcc11-master member11-master 140.0.0.4 lcc11-re0 member11-re0 140.0.0.5 lcc11-re1 member11-re1 140.0.0.6 lcc11-backup member11-backup 140.0.0.16 member11-fpc0 140.0.0.17 member11-fpc1 140.0.0.18 member11-fpc2 140.0.0.19 member11-fpc3 140.0.0.20 member11-fpc4 140.0.0.21 member11-fpc5 140.0.0.22 member11-fpc6 140.0.0.23 member11-fpc7 140.0.0.24 member11-fpc8 140.0.0.25 member11-fpc9 140.0.0.26 member11-fpc10 140.0.0.27 member11-fpc11 140.0.0.28 member11-fpc12 140.0.0.29 member11-fpc13 140.0.0.30 member11-fpc14 140.0.0.31 member11-fpc15 140.0.0.32 member11-fpc16 140.0.0.33 member11-fpc17 140.0.0.34 member11-fpc18 140.0.0.35 member11-fpc19 140.0.0.36 member11-fpc20 140.0.0.37 member11-fpc21 140.0.0.38 member11-fpc22 140.0.0.39 member11-fpc23 140.0.0.40 member11-fpc24 140.0.0.41 member11-fpc25 140.0.0.42 member11-fpc26 140.0.0.43 member11-fpc27 140.0.0.44 member11-fpc28 140.0.0.45 member11-fpc29 140.0.0.46 member11-fpc30 140.0.0.47 member11-fpc31 141.0.0.6 lcc12-backup 141.0.0.16 lcc12-fpc0 141.0.0.17 lcc12-fpc1 141.0.0.18 lcc12-fpc2 141.0.0.19 lcc12-fpc3 141.0.0.20 lcc12-fpc4 141.0.0.21 lcc12-fpc5 141.0.0.22 lcc12-fpc6 141.0.0.23 lcc12-fpc7 141.0.0.48 lcc12-spmb0 141.0.0.49 lcc12-spmb1 #LCC 12 (or MEMBER 12 on Virtual Chassis) 141.0.0.1 lcc12-master member12-master 141.0.0.4 lcc12-re0 member12-re0 141.0.0.5 lcc12-re1 member12-re1 141.0.0.6 lcc12-backup member12-backup 141.0.0.16 member12-fpc0 141.0.0.17 member12-fpc1 141.0.0.18 member12-fpc2 141.0.0.19 member12-fpc3 141.0.0.20 member12-fpc4 141.0.0.21 member12-fpc5 141.0.0.22 member12-fpc6 141.0.0.23 member12-fpc7 141.0.0.24 member12-fpc8 141.0.0.25 member12-fpc9 141.0.0.26 member12-fpc10 141.0.0.27 member12-fpc11 141.0.0.28 member12-fpc12 141.0.0.29 member12-fpc13 141.0.0.30 member12-fpc14 141.0.0.31 member12-fpc15 141.0.0.32 member12-fpc16 141.0.0.33 member12-fpc17 141.0.0.34 member12-fpc18 141.0.0.35 member12-fpc19 141.0.0.36 member12-fpc20 141.0.0.37 member12-fpc21 141.0.0.38 member12-fpc22 141.0.0.39 member12-fpc23 141.0.0.40 member12-fpc24 141.0.0.41 member12-fpc25 141.0.0.42 member12-fpc26 141.0.0.43 member12-fpc27 141.0.0.44 member12-fpc28 141.0.0.45 member12-fpc29 141.0.0.46 member12-fpc30 141.0.0.47 member12-fpc31 142.0.0.6 lcc13-backup 142.0.0.16 lcc13-fpc0 142.0.0.17 lcc13-fpc1 142.0.0.18 lcc13-fpc2 142.0.0.19 lcc13-fpc3 142.0.0.20 lcc13-fpc4 142.0.0.21 lcc13-fpc5 142.0.0.22 lcc13-fpc6 142.0.0.23 lcc13-fpc7 142.0.0.48 lcc13-spmb0 142.0.0.49 lcc13-spmb1 #LCC 13 (or MEMBER 13 on Virtual Chassis) 142.0.0.1 lcc13-master member13-master 142.0.0.4 lcc13-re0 member13-re0 142.0.0.5 lcc13-re1 member13-re1 142.0.0.6 lcc13-backup member13-backup 142.0.0.16 member13-fpc0 142.0.0.17 member13-fpc1 142.0.0.18 member13-fpc2 142.0.0.19 member13-fpc3 142.0.0.20 member13-fpc4 142.0.0.21 member13-fpc5 142.0.0.22 member13-fpc6 142.0.0.23 member13-fpc7 142.0.0.24 member13-fpc8 142.0.0.25 member13-fpc9 142.0.0.26 member13-fpc10 142.0.0.27 member13-fpc11 142.0.0.28 member13-fpc12 142.0.0.29 member13-fpc13 142.0.0.30 member13-fpc14 142.0.0.31 member13-fpc15 142.0.0.32 member13-fpc16 142.0.0.33 member13-fpc17 142.0.0.34 member13-fpc18 142.0.0.35 member13-fpc19 142.0.0.36 member13-fpc20 142.0.0.37 member13-fpc21 142.0.0.38 member13-fpc22 142.0.0.39 member13-fpc23 142.0.0.40 member13-fpc24 142.0.0.41 member13-fpc25 142.0.0.42 member13-fpc26 142.0.0.43 member13-fpc27 142.0.0.44 member13-fpc28 142.0.0.45 member13-fpc29 142.0.0.46 member13-fpc30 142.0.0.47 member13-fpc31 143.0.0.6 lcc14-backup 143.0.0.16 lcc14-fpc0 143.0.0.17 lcc14-fpc1 143.0.0.18 lcc14-fpc2 143.0.0.19 lcc14-fpc3 143.0.0.20 lcc14-fpc4 143.0.0.21 lcc14-fpc5 143.0.0.22 lcc14-fpc6 143.0.0.23 lcc14-fpc7 143.0.0.48 lcc14-spmb0 143.0.0.49 lcc14-spmb1 #LCC 14 (or MEMBER 14 on Virtual Chassis) 143.0.0.1 lcc14-master member14-master 143.0.0.4 lcc14-re0 member14-re0 143.0.0.5 lcc14-re1 member14-re1 143.0.0.6 lcc14-backup member14-backup 143.0.0.16 member14-fpc0 143.0.0.17 member14-fpc1 143.0.0.18 member14-fpc2 143.0.0.19 member14-fpc3 143.0.0.20 member14-fpc4 143.0.0.21 member14-fpc5 143.0.0.22 member14-fpc6 143.0.0.23 member14-fpc7 143.0.0.24 member14-fpc8 143.0.0.25 member14-fpc9 143.0.0.26 member14-fpc10 143.0.0.27 member14-fpc11 143.0.0.28 member14-fpc12 143.0.0.29 member14-fpc13 143.0.0.30 member14-fpc14 143.0.0.31 member14-fpc15 143.0.0.32 member14-fpc16 143.0.0.33 member14-fpc17 143.0.0.34 member14-fpc18 143.0.0.35 member14-fpc19 143.0.0.36 member14-fpc20 143.0.0.37 member14-fpc21 143.0.0.38 member14-fpc22 143.0.0.39 member14-fpc23 143.0.0.40 member14-fpc24 143.0.0.41 member14-fpc25 143.0.0.42 member14-fpc26 143.0.0.43 member14-fpc27 143.0.0.44 member14-fpc28 143.0.0.45 member14-fpc29 143.0.0.46 member14-fpc30 143.0.0.47 member14-fpc31 144.0.0.6 lcc15-backup 144.0.0.16 lcc15-fpc0 144.0.0.17 lcc15-fpc1 144.0.0.18 lcc15-fpc2 144.0.0.19 lcc15-fpc3 144.0.0.20 lcc15-fpc4 144.0.0.21 lcc15-fpc5 144.0.0.22 lcc15-fpc6 144.0.0.23 lcc15-fpc7 144.0.0.48 lcc15-spmb0 144.0.0.49 lcc15-spmb1 #LCC 15 (or MEMBER 15 on Virtual Chassis) 144.0.0.1 lcc15-master member15-master 144.0.0.4 lcc15-re0 member15-re0 144.0.0.5 lcc15-re1 member15-re1 144.0.0.6 lcc15-backup member15-backup 144.0.0.16 member15-fpc0 144.0.0.17 member15-fpc1 144.0.0.18 member15-fpc2 144.0.0.19 member15-fpc3 144.0.0.20 member15-fpc4 144.0.0.21 member15-fpc5 144.0.0.22 member15-fpc6 144.0.0.23 member15-fpc7 144.0.0.24 member15-fpc8 144.0.0.25 member15-fpc9 144.0.0.26 member15-fpc10 144.0.0.27 member15-fpc11 144.0.0.28 member15-fpc12 144.0.0.29 member15-fpc13 144.0.0.30 member15-fpc14 144.0.0.31 member15-fpc15 144.0.0.32 member15-fpc16 144.0.0.33 member15-fpc17 144.0.0.34 member15-fpc18 144.0.0.35 member15-fpc19 144.0.0.36 member15-fpc20 144.0.0.37 member15-fpc21 144.0.0.38 member15-fpc22 144.0.0.39 member15-fpc23 144.0.0.40 member15-fpc24 144.0.0.41 member15-fpc25 144.0.0.42 member15-fpc26 144.0.0.43 member15-fpc27 144.0.0.44 member15-fpc28 144.0.0.45 member15-fpc29 144.0.0.46 member15-fpc30 144.0.0.47 member15-fpc31 #LCC 16 (or MEMBER 16 on Virtual Chassis) 145.0.0.1 lcc16-master member16-master 145.0.0.4 lcc16-re0 member16-re0 145.0.0.5 lcc16-re1 member16-re1 145.0.0.6 lcc16-backup member16-backup 145.0.0.16 member16-fpc0 145.0.0.17 member16-fpc1 145.0.0.18 member16-fpc2 145.0.0.19 member16-fpc3 145.0.0.20 member16-fpc4 145.0.0.21 member16-fpc5 145.0.0.22 member16-fpc6 145.0.0.23 member16-fpc7 145.0.0.24 member16-fpc8 145.0.0.25 member16-fpc9 145.0.0.26 member16-fpc10 145.0.0.27 member16-fpc11 145.0.0.28 member16-fpc12 145.0.0.29 member16-fpc13 145.0.0.30 member16-fpc14 145.0.0.31 member16-fpc15 145.0.0.32 member16-fpc16 145.0.0.33 member16-fpc17 145.0.0.34 member16-fpc18 145.0.0.35 member16-fpc19 145.0.0.36 member16-fpc20 145.0.0.37 member16-fpc21 145.0.0.38 member16-fpc22 145.0.0.39 member16-fpc23 145.0.0.40 member16-fpc24 145.0.0.41 member16-fpc25 145.0.0.42 member16-fpc26 145.0.0.43 member16-fpc27 145.0.0.44 member16-fpc28 145.0.0.45 member16-fpc29 145.0.0.46 member16-fpc30 145.0.0.47 member16-fpc31 #LCC 17 (or MEMBER 17 on Virtual Chassis) 146.0.0.1 lcc17-master member17-master 146.0.0.4 lcc17-re0 member17-re0 146.0.0.5 lcc17-re1 member17-re1 146.0.0.6 lcc17-backup member17-backup 146.0.0.16 member17-fpc0 146.0.0.17 member17-fpc1 146.0.0.18 member17-fpc2 146.0.0.19 member17-fpc3 146.0.0.20 member17-fpc4 146.0.0.21 member17-fpc5 146.0.0.22 member17-fpc6 146.0.0.23 member17-fpc7 146.0.0.24 member17-fpc8 146.0.0.25 member17-fpc9 146.0.0.26 member17-fpc10 146.0.0.27 member17-fpc11 146.0.0.28 member17-fpc12 146.0.0.29 member17-fpc13 146.0.0.30 member17-fpc14 146.0.0.31 member17-fpc15 146.0.0.32 member17-fpc16 146.0.0.33 member17-fpc17 146.0.0.34 member17-fpc18 146.0.0.35 member17-fpc19 146.0.0.36 member17-fpc20 146.0.0.37 member17-fpc21 146.0.0.38 member17-fpc22 146.0.0.39 member17-fpc23 146.0.0.40 member17-fpc24 146.0.0.41 member17-fpc25 146.0.0.42 member17-fpc26 146.0.0.43 member17-fpc27 146.0.0.44 member17-fpc28 146.0.0.45 member17-fpc29 146.0.0.46 member17-fpc30 146.0.0.47 member17-fpc31 #LCC 18 (or MEMBER 18 on Virtual Chassis) 147.0.0.1 lcc18-master member18-master 147.0.0.4 lcc18-re0 member18-re0 147.0.0.5 lcc18-re1 member18-re1 147.0.0.6 lcc18-backup member18-backup 147.0.0.16 member18-fpc0 147.0.0.17 member18-fpc1 147.0.0.18 member18-fpc2 147.0.0.19 member18-fpc3 147.0.0.20 member18-fpc4 147.0.0.21 member18-fpc5 147.0.0.22 member18-fpc6 147.0.0.23 member18-fpc7 147.0.0.24 member18-fpc8 147.0.0.25 member18-fpc9 147.0.0.26 member18-fpc10 147.0.0.27 member18-fpc11 147.0.0.28 member18-fpc12 147.0.0.29 member18-fpc13 147.0.0.30 member18-fpc14 147.0.0.31 member18-fpc15 147.0.0.32 member18-fpc16 147.0.0.33 member18-fpc17 147.0.0.34 member18-fpc18 147.0.0.35 member18-fpc19 147.0.0.36 member18-fpc20 147.0.0.37 member18-fpc21 147.0.0.38 member18-fpc22 147.0.0.39 member18-fpc23 147.0.0.40 member18-fpc24 147.0.0.41 member18-fpc25 147.0.0.42 member18-fpc26 147.0.0.43 member18-fpc27 147.0.0.44 member18-fpc28 147.0.0.45 member18-fpc29 147.0.0.46 member18-fpc30 147.0.0.47 member18-fpc31 #LCC 19 (or MEMBER 19 on Virtual Chassis) 148.0.0.1 lcc19-master member19-master 148.0.0.4 lcc19-re0 member19-re0 148.0.0.5 lcc19-re1 member19-re1 148.0.0.6 lcc19-backup member19-backup 148.0.0.16 member19-fpc0 148.0.0.17 member19-fpc1 148.0.0.18 member19-fpc2 148.0.0.19 member19-fpc3 148.0.0.20 member19-fpc4 148.0.0.21 member19-fpc5 148.0.0.22 member19-fpc6 148.0.0.23 member19-fpc7 148.0.0.24 member19-fpc8 148.0.0.25 member19-fpc9 148.0.0.26 member19-fpc10 148.0.0.27 member19-fpc11 148.0.0.28 member19-fpc12 148.0.0.29 member19-fpc13 148.0.0.30 member19-fpc14 148.0.0.31 member19-fpc15 148.0.0.32 member19-fpc16 148.0.0.33 member19-fpc17 148.0.0.34 member19-fpc18 148.0.0.35 member19-fpc19 148.0.0.36 member19-fpc20 148.0.0.37 member19-fpc21 148.0.0.38 member19-fpc22 148.0.0.39 member19-fpc23 148.0.0.40 member19-fpc24 148.0.0.41 member19-fpc25 148.0.0.42 member19-fpc26 148.0.0.43 member19-fpc27 148.0.0.44 member19-fpc28 148.0.0.45 member19-fpc29 148.0.0.46 member19-fpc30 148.0.0.47 member19-fpc31 #LCC 20 (or MEMBER 20 on Virtual Chassis) 149.0.0.1 lcc20-master member20-master 149.0.0.4 lcc20-re0 member20-re0 149.0.0.5 lcc20-re1 member20-re1 149.0.0.6 lcc20-backup member20-backup 149.0.0.16 member20-fpc0 149.0.0.17 member20-fpc1 149.0.0.18 member20-fpc2 149.0.0.19 member20-fpc3 149.0.0.20 member20-fpc4 149.0.0.21 member20-fpc5 149.0.0.22 member20-fpc6 149.0.0.23 member20-fpc7 149.0.0.24 member20-fpc8 149.0.0.25 member20-fpc9 149.0.0.26 member20-fpc10 149.0.0.27 member20-fpc11 149.0.0.28 member20-fpc12 149.0.0.29 member20-fpc13 149.0.0.30 member20-fpc14 149.0.0.31 member20-fpc15 149.0.0.32 member20-fpc16 149.0.0.33 member20-fpc17 149.0.0.34 member20-fpc18 149.0.0.35 member20-fpc19 149.0.0.36 member20-fpc20 149.0.0.37 member20-fpc21 149.0.0.38 member20-fpc22 149.0.0.39 member20-fpc23 149.0.0.40 member20-fpc24 149.0.0.41 member20-fpc25 149.0.0.42 member20-fpc26 149.0.0.43 member20-fpc27 149.0.0.44 member20-fpc28 149.0.0.45 member20-fpc29 149.0.0.46 member20-fpc30 149.0.0.47 member20-fpc31 #LCC 21 (or MEMBER 21 on Virtual Chassis) 150.0.0.1 lcc21-master member21-master 150.0.0.4 lcc21-re0 member21-re0 150.0.0.5 lcc21-re1 member21-re1 150.0.0.6 lcc21-backup member21-backup 150.0.0.16 member21-fpc0 150.0.0.17 member21-fpc1 150.0.0.18 member21-fpc2 150.0.0.19 member21-fpc3 150.0.0.20 member21-fpc4 150.0.0.21 member21-fpc5 150.0.0.22 member21-fpc6 150.0.0.23 member21-fpc7 150.0.0.24 member21-fpc8 150.0.0.25 member21-fpc9 150.0.0.26 member21-fpc10 150.0.0.27 member21-fpc11 150.0.0.28 member21-fpc12 150.0.0.29 member21-fpc13 150.0.0.30 member21-fpc14 150.0.0.31 member21-fpc15 150.0.0.32 member21-fpc16 150.0.0.33 member21-fpc17 150.0.0.34 member21-fpc18 150.0.0.35 member21-fpc19 150.0.0.36 member21-fpc20 150.0.0.37 member21-fpc21 150.0.0.38 member21-fpc22 150.0.0.39 member21-fpc23 150.0.0.40 member21-fpc24 150.0.0.41 member21-fpc25 150.0.0.42 member21-fpc26 150.0.0.43 member21-fpc27 150.0.0.44 member21-fpc28 150.0.0.45 member21-fpc29 150.0.0.46 member21-fpc30 150.0.0.47 member21-fpc31 #LCC 22 (or MEMBER 22 on Virtual Chassis) 151.0.0.1 lcc22-master member22-master 151.0.0.4 lcc22-re0 member22-re0 151.0.0.5 lcc22-re1 member22-re1 151.0.0.6 lcc22-backup member22-backup 151.0.0.16 member22-fpc0 151.0.0.17 member22-fpc1 151.0.0.18 member22-fpc2 151.0.0.19 member22-fpc3 151.0.0.20 member22-fpc4 151.0.0.21 member22-fpc5 151.0.0.22 member22-fpc6 151.0.0.23 member22-fpc7 151.0.0.24 member22-fpc8 151.0.0.25 member22-fpc9 151.0.0.26 member22-fpc10 151.0.0.27 member22-fpc11 151.0.0.28 member22-fpc12 151.0.0.29 member22-fpc13 151.0.0.30 member22-fpc14 151.0.0.31 member22-fpc15 151.0.0.32 member22-fpc16 151.0.0.33 member22-fpc17 151.0.0.34 member22-fpc18 151.0.0.35 member22-fpc19 151.0.0.36 member22-fpc20 151.0.0.37 member22-fpc21 151.0.0.38 member22-fpc22 151.0.0.39 member22-fpc23 151.0.0.40 member22-fpc24 151.0.0.41 member22-fpc25 151.0.0.42 member22-fpc26 151.0.0.43 member22-fpc27 151.0.0.44 member22-fpc28 151.0.0.45 member22-fpc29 151.0.0.46 member22-fpc30 151.0.0.47 member22-fpc31 #LCC 23 (or MEMBER 23 on Virtual Chassis) 152.0.0.1 lcc23-master member23-master 152.0.0.4 lcc23-re0 member23-re0 152.0.0.5 lcc23-re1 member23-re1 152.0.0.6 lcc23-backup member23-backup 152.0.0.16 member23-fpc0 152.0.0.17 member23-fpc1 152.0.0.18 member23-fpc2 152.0.0.19 member23-fpc3 152.0.0.20 member23-fpc4 152.0.0.21 member23-fpc5 152.0.0.22 member23-fpc6 152.0.0.23 member23-fpc7 152.0.0.24 member23-fpc8 152.0.0.25 member23-fpc9 152.0.0.26 member23-fpc10 152.0.0.27 member23-fpc11 152.0.0.28 member23-fpc12 152.0.0.29 member23-fpc13 152.0.0.30 member23-fpc14 152.0.0.31 member23-fpc15 152.0.0.32 member23-fpc16 152.0.0.33 member23-fpc17 152.0.0.34 member23-fpc18 152.0.0.35 member23-fpc19 152.0.0.36 member23-fpc20 152.0.0.37 member23-fpc21 152.0.0.38 member23-fpc22 152.0.0.39 member23-fpc23 152.0.0.40 member23-fpc24 152.0.0.41 member23-fpc25 152.0.0.42 member23-fpc26 152.0.0.43 member23-fpc27 152.0.0.44 member23-fpc28 152.0.0.45 member23-fpc29 152.0.0.46 member23-fpc30 152.0.0.47 member23-fpc31 #LCC 24 (or MEMBER 24 on Virtual Chassis) 153.0.0.1 lcc24-master member24-master 153.0.0.4 lcc24-re0 member24-re0 153.0.0.5 lcc24-re1 member24-re1 153.0.0.6 lcc24-backup member24-backup 153.0.0.16 member24-fpc0 153.0.0.17 member24-fpc1 153.0.0.18 member24-fpc2 153.0.0.19 member24-fpc3 153.0.0.20 member24-fpc4 153.0.0.21 member24-fpc5 153.0.0.22 member24-fpc6 153.0.0.23 member24-fpc7 153.0.0.24 member24-fpc8 153.0.0.25 member24-fpc9 153.0.0.26 member24-fpc10 153.0.0.27 member24-fpc11 153.0.0.28 member24-fpc12 153.0.0.29 member24-fpc13 153.0.0.30 member24-fpc14 153.0.0.31 member24-fpc15 153.0.0.32 member24-fpc16 153.0.0.33 member24-fpc17 153.0.0.34 member24-fpc18 153.0.0.35 member24-fpc19 153.0.0.36 member24-fpc20 153.0.0.37 member24-fpc21 153.0.0.38 member24-fpc22 153.0.0.39 member24-fpc23 153.0.0.40 member24-fpc24 153.0.0.41 member24-fpc25 153.0.0.42 member24-fpc26 153.0.0.43 member24-fpc27 153.0.0.44 member24-fpc28 153.0.0.45 member24-fpc29 153.0.0.46 member24-fpc30 153.0.0.47 member24-fpc31 #LCC 25 (or MEMBER 25 on Virtual Chassis) 154.0.0.1 lcc25-master member25-master 154.0.0.4 lcc25-re0 member25-re0 154.0.0.5 lcc25-re1 member25-re1 154.0.0.6 lcc25-backup member25-backup 154.0.0.16 member25-fpc0 154.0.0.17 member25-fpc1 154.0.0.18 member25-fpc2 154.0.0.19 member25-fpc3 154.0.0.20 member25-fpc4 154.0.0.21 member25-fpc5 154.0.0.22 member25-fpc6 154.0.0.23 member25-fpc7 154.0.0.24 member25-fpc8 154.0.0.25 member25-fpc9 154.0.0.26 member25-fpc10 154.0.0.27 member25-fpc11 154.0.0.28 member25-fpc12 154.0.0.29 member25-fpc13 154.0.0.30 member25-fpc14 154.0.0.31 member25-fpc15 154.0.0.32 member25-fpc16 154.0.0.33 member25-fpc17 154.0.0.34 member25-fpc18 154.0.0.35 member25-fpc19 154.0.0.36 member25-fpc20 154.0.0.37 member25-fpc21 154.0.0.38 member25-fpc22 154.0.0.39 member25-fpc23 154.0.0.40 member25-fpc24 154.0.0.41 member25-fpc25 154.0.0.42 member25-fpc26 154.0.0.43 member25-fpc27 154.0.0.44 member25-fpc28 154.0.0.45 member25-fpc29 154.0.0.46 member25-fpc30 154.0.0.47 member25-fpc31 #LCC 26 (or MEMBER 26 on Virtual Chassis) 155.0.0.1 lcc26-master member26-master 155.0.0.4 lcc26-re0 member26-re0 155.0.0.5 lcc26-re1 member26-re1 155.0.0.6 lcc26-backup member26-backup 155.0.0.16 member26-fpc0 155.0.0.17 member26-fpc1 155.0.0.18 member26-fpc2 155.0.0.19 member26-fpc3 155.0.0.20 member26-fpc4 155.0.0.21 member26-fpc5 155.0.0.22 member26-fpc6 155.0.0.23 member26-fpc7 155.0.0.24 member26-fpc8 155.0.0.25 member26-fpc9 155.0.0.26 member26-fpc10 155.0.0.27 member26-fpc11 155.0.0.28 member26-fpc12 155.0.0.29 member26-fpc13 155.0.0.30 member26-fpc14 155.0.0.31 member26-fpc15 155.0.0.32 member26-fpc16 155.0.0.33 member26-fpc17 155.0.0.34 member26-fpc18 155.0.0.35 member26-fpc19 155.0.0.36 member26-fpc20 155.0.0.37 member26-fpc21 155.0.0.38 member26-fpc22 155.0.0.39 member26-fpc23 155.0.0.40 member26-fpc24 155.0.0.41 member26-fpc25 155.0.0.42 member26-fpc26 155.0.0.43 member26-fpc27 155.0.0.44 member26-fpc28 155.0.0.45 member26-fpc29 155.0.0.46 member26-fpc30 155.0.0.47 member26-fpc31 #LCC 27 (or MEMBER 27 on Virtual Chassis) 156.0.0.1 lcc27-master member27-master 156.0.0.4 lcc27-re0 member27-re0 156.0.0.5 lcc27-re1 member27-re1 156.0.0.6 lcc27-backup member27-backup 156.0.0.16 member27-fpc0 156.0.0.17 member27-fpc1 156.0.0.18 member27-fpc2 156.0.0.19 member27-fpc3 156.0.0.20 member27-fpc4 156.0.0.21 member27-fpc5 156.0.0.22 member27-fpc6 156.0.0.23 member27-fpc7 156.0.0.24 member27-fpc8 156.0.0.25 member27-fpc9 156.0.0.26 member27-fpc10 156.0.0.27 member27-fpc11 156.0.0.28 member27-fpc12 156.0.0.29 member27-fpc13 156.0.0.30 member27-fpc14 156.0.0.31 member27-fpc15 156.0.0.32 member27-fpc16 156.0.0.33 member27-fpc17 156.0.0.34 member27-fpc18 156.0.0.35 member27-fpc19 156.0.0.36 member27-fpc20 156.0.0.37 member27-fpc21 156.0.0.38 member27-fpc22 156.0.0.39 member27-fpc23 156.0.0.40 member27-fpc24 156.0.0.41 member27-fpc25 156.0.0.42 member27-fpc26 156.0.0.43 member27-fpc27 156.0.0.44 member27-fpc28 156.0.0.45 member27-fpc29 156.0.0.46 member27-fpc30 156.0.0.47 member27-fpc31 #LCC 28 (or MEMBER 28 on Virtual Chassis) 157.0.0.1 lcc28-master member28-master 157.0.0.4 lcc28-re0 member28-re0 157.0.0.5 lcc28-re1 member28-re1 157.0.0.6 lcc28-backup member28-backup 157.0.0.16 member28-fpc0 157.0.0.17 member28-fpc1 157.0.0.18 member28-fpc2 157.0.0.19 member28-fpc3 157.0.0.20 member28-fpc4 157.0.0.21 member28-fpc5 157.0.0.22 member28-fpc6 157.0.0.23 member28-fpc7 157.0.0.24 member28-fpc8 157.0.0.25 member28-fpc9 157.0.0.26 member28-fpc10 157.0.0.27 member28-fpc11 157.0.0.28 member28-fpc12 157.0.0.29 member28-fpc13 157.0.0.30 member28-fpc14 157.0.0.31 member28-fpc15 157.0.0.32 member28-fpc16 157.0.0.33 member28-fpc17 157.0.0.34 member28-fpc18 157.0.0.35 member28-fpc19 157.0.0.36 member28-fpc20 157.0.0.37 member28-fpc21 157.0.0.38 member28-fpc22 157.0.0.39 member28-fpc23 157.0.0.40 member28-fpc24 157.0.0.41 member28-fpc25 157.0.0.42 member28-fpc26 157.0.0.43 member28-fpc27 157.0.0.44 member28-fpc28 157.0.0.45 member28-fpc29 157.0.0.46 member28-fpc30 157.0.0.47 member28-fpc31 #LCC 29 (or MEMBER 29 on Virtual Chassis) 158.0.0.1 lcc29-master member29-master 158.0.0.4 lcc29-re0 member29-re0 158.0.0.5 lcc29-re1 member29-re1 158.0.0.6 lcc29-backup member29-backup 158.0.0.16 member29-fpc0 158.0.0.17 member29-fpc1 158.0.0.18 member29-fpc2 158.0.0.19 member29-fpc3 158.0.0.20 member29-fpc4 158.0.0.21 member29-fpc5 158.0.0.22 member29-fpc6 158.0.0.23 member29-fpc7 158.0.0.24 member29-fpc8 158.0.0.25 member29-fpc9 158.0.0.26 member29-fpc10 158.0.0.27 member29-fpc11 158.0.0.28 member29-fpc12 158.0.0.29 member29-fpc13 158.0.0.30 member29-fpc14 158.0.0.31 member29-fpc15 158.0.0.32 member29-fpc16 158.0.0.33 member29-fpc17 158.0.0.34 member29-fpc18 158.0.0.35 member29-fpc19 158.0.0.36 member29-fpc20 158.0.0.37 member29-fpc21 158.0.0.38 member29-fpc22 158.0.0.39 member29-fpc23 158.0.0.40 member29-fpc24 158.0.0.41 member29-fpc25 158.0.0.42 member29-fpc26 158.0.0.43 member29-fpc27 158.0.0.44 member29-fpc28 158.0.0.45 member29-fpc29 158.0.0.46 member29-fpc30 158.0.0.47 member29-fpc31 #LCC 30 (or MEMBER 30 on Virtual Chassis) 159.0.0.1 lcc30-master member30-master 159.0.0.4 lcc30-re0 member30-re0 159.0.0.5 lcc30-re1 member30-re1 159.0.0.6 lcc30-backup member30-backup 159.0.0.16 member30-fpc0 159.0.0.17 member30-fpc1 159.0.0.18 member30-fpc2 159.0.0.19 member30-fpc3 159.0.0.20 member30-fpc4 159.0.0.21 member30-fpc5 159.0.0.22 member30-fpc6 159.0.0.23 member30-fpc7 159.0.0.24 member30-fpc8 159.0.0.25 member30-fpc9 159.0.0.26 member30-fpc10 159.0.0.27 member30-fpc11 159.0.0.28 member30-fpc12 159.0.0.29 member30-fpc13 159.0.0.30 member30-fpc14 159.0.0.31 member30-fpc15 159.0.0.32 member30-fpc16 159.0.0.33 member30-fpc17 159.0.0.34 member30-fpc18 159.0.0.35 member30-fpc19 159.0.0.36 member30-fpc20 159.0.0.37 member30-fpc21 159.0.0.38 member30-fpc22 159.0.0.39 member30-fpc23 159.0.0.40 member30-fpc24 159.0.0.41 member30-fpc25 159.0.0.42 member30-fpc26 159.0.0.43 member30-fpc27 159.0.0.44 member30-fpc28 159.0.0.45 member30-fpc29 159.0.0.46 member30-fpc30 159.0.0.47 member30-fpc31 #LCC 31 (or MEMBER 31 on Virtual Chassis) 160.0.0.1 lcc31-master member31-master 160.0.0.4 lcc31-re0 member31-re0 160.0.0.5 lcc31-re1 member31-re1 160.0.0.6 lcc31-backup member31-backup 160.0.0.16 member31-fpc0 160.0.0.17 member31-fpc1 160.0.0.18 member31-fpc2 160.0.0.19 member31-fpc3 160.0.0.20 member31-fpc4 160.0.0.21 member31-fpc5 160.0.0.22 member31-fpc6 160.0.0.23 member31-fpc7 160.0.0.24 member31-fpc8 160.0.0.25 member31-fpc9 160.0.0.26 member31-fpc10 160.0.0.27 member31-fpc11 160.0.0.28 member31-fpc12 160.0.0.29 member31-fpc13 160.0.0.30 member31-fpc14 160.0.0.31 member31-fpc15 160.0.0.32 member31-fpc16 160.0.0.33 member31-fpc17 160.0.0.34 member31-fpc18 160.0.0.35 member31-fpc19 160.0.0.36 member31-fpc20 160.0.0.37 member31-fpc21 160.0.0.38 member31-fpc22 160.0.0.39 member31-fpc23 160.0.0.40 member31-fpc24 160.0.0.41 member31-fpc25 160.0.0.42 member31-fpc26 160.0.0.43 member31-fpc27 160.0.0.44 member31-fpc28 160.0.0.45 member31-fpc29 160.0.0.46 member31-fpc30 160.0.0.47 member31-fpc31 #VIRT SC 161.0.0.1 sc-master 161.0.0.4 sc-re0 161.0.0.5 sc-re1 161.0.0.6 sc-backup #SFC 0 162.0.0.1 sfc0-master 162.0.0.4 sfc0-re0 162.0.0.5 sfc0-re1 162.0.0.6 sfc0-backup 162.0.0.48 sfc0-spmb0 162.0.0.49 sfc0-spmb1 #SFC 1 163.0.0.1 sfc1-master 163.0.0.4 sfc1-re0 163.0.0.5 sfc1-re1 163.0.0.6 sfc1-backup 163.0.0.48 sfc1-spmb0 163.0.0.49 sfc1-spmb1 #SFC 2 164.0.0.1 sfc2-master 164.0.0.4 sfc2-re0 164.0.0.5 sfc2-re1 164.0.0.6 sfc2-backup 164.0.0.48 sfc2-spmb0 164.0.0.49 sfc2-spmb1 #SFC 3 165.0.0.1 sfc3-master 165.0.0.4 sfc3-re0 165.0.0.5 sfc3-re1 165.0.0.6 sfc3-backup 165.0.0.48 sfc3-spmb0 165.0.0.49 sfc3-spmb1 #SFC 4 166.0.0.1 sfc4-master 166.0.0.4 sfc4-re0 166.0.0.5 sfc4-re1 166.0.0.6 sfc4-backup 166.0.0.48 sfc4-spmb0 166.0.0.49 sfc4-spmb1 #JCS 190.0.0.1 psd%d-master 190.0.0.4 psd%d-re0 190.0.0.5 psd%d-re1 190.0.0.6 psd%d-backup # Old IP address format (RT_IRS_V2) # # Single Chassis Hostnames # 10.0.0.1 master 10.0.0.4 re0 10.0.0.5 re1 10.0.0.16 fpc0 10.0.0.17 fpc1 10.0.0.18 fpc2 10.0.0.19 fpc3 10.0.0.20 fpc4 10.0.0.21 fpc5 10.0.0.22 fpc6 10.0.0.23 fpc7 10.0.0.24 fpc8 10.0.0.25 fpc9 10.0.0.26 fpc10 10.0.0.27 fpc11 10.0.0.28 fpc12 10.0.0.29 fpc13 10.0.0.30 fpc14 10.0.0.31 fpc15 # # Multi Chassis Hostnames # #SCC 10.16.0.1 scc-master 10.16.0.4 scc-re0 10.16.0.5 scc-re1 #LCC 0 10.1.0.1 lcc0-master member0-master 10.1.0.4 lcc0-re0 member0-re0 10.1.0.5 lcc0-re1 member0-re1 10.1.0.6 lcc0-backup member0-backup #LCC 1 10.2.0.1 lcc1-master member1-master 10.2.0.4 lcc1-re0 member1-re0 10.2.0.5 lcc1-re1 member1-re1 10.2.0.6 lcc1-backup member1-backup #LCC 2 10.3.0.1 lcc2-master member2-master 10.3.0.4 lcc2-re0 member2-re0 10.3.0.5 lcc2-re1 member2-re1 10.3.0.6 lcc2-backup member2-backup #LCC 3 10.4.0.1 lcc3-master member3-master 10.4.0.4 lcc3-re0 member3-re0 10.4.0.5 lcc3-re1 member3-re1 10.4.0.6 lcc3-backup member3-backup #LCC 4 10.5.0.1 lcc4-master member4-master 10.5.0.4 lcc4-re0 member4-re0 10.5.0.5 lcc4-re1 member4-re1 10.5.0.6 lcc4-backup member4-backup #LCC 5 10.6.0.1 lcc5-master member5-master 10.6.0.4 lcc5-re0 member5-re0 10.6.0.5 lcc5-re1 member5-re1 10.6.0.6 lcc5-backup member5-backup #LCC 6 10.7.0.1 lcc6-master member6-master 10.7.0.4 lcc6-re0 member6-re0 10.7.0.5 lcc6-re1 member6-re1 10.7.0.6 lcc6-backup member6-backup #LCC 7 10.8.0.1 lcc7-master member7-master 10.8.0.4 lcc7-re0 member7-re0 10.8.0.5 lcc7-re1 member7-re1 10.8.0.6 lcc7-backup member7-backup #LCC 8 10.9.0.1 lcc8-master member8-master 10.9.0.4 lcc8-re0 member8-re0 10.9.0.5 lcc8-re1 member8-re1 10.9.0.6 lcc8-backup member8-backup #LCC 9 10.10.0.1 lcc9-master member9-master 10.10.0.4 lcc9-re0 member9-re0 10.10.0.5 lcc9-re1 member9-re1 10.10.0.6 lcc9-backup member9-backup #LCC 10 10.11.0.1 lcc10-master member10-master 10.11.0.4 lcc10-re0 member10-re0 10.11.0.5 lcc10-re1 member10-re1 10.11.0.6 lcc10-backup member10-backup #LCC 11 10.12.0.1 lcc11-master member11-master 10.12.0.4 lcc11-re0 member11-re0 10.12.0.5 lcc11-re1 member11-re1 10.12.0.6 lcc11-backup member11-backup #LCC 12 10.13.0.1 lcc12-master member12-master 10.13.0.4 lcc12-re0 member12-re0 10.13.0.5 lcc12-re1 member12-re1 10.13.0.6 lcc12-backup member12-backup #LCC 13 10.14.0.1 lcc13-master member13-master 10.14.0.4 lcc13-re0 member13-re0 10.14.0.5 lcc13-re1 member13-re1 10.14.0.6 lcc13-backup member13-backup #LCC 14 10.15.0.1 lcc14-master member14-master 10.15.0.4 lcc14-re0 member14-re0 10.15.0.5 lcc14-re1 member14-re1 10.15.0.6 lcc14-backup member14-backup #LCC 15 10.16.0.1 lcc15-master member15-master 10.16.0.4 lcc15-re0 member15-re0 10.16.0.5 lcc15-re1 member15-re1 10.16.0.6 lcc15-backup member15-backup #SFC 0 10.34.0.1 sfc0-master 10.34.0.4 sfc0-re0 10.34.0.5 sfc0-re1 #SFC 1 10.35.0.1 sfc1-master 10.35.0.4 sfc1-re0 10.35.0.5 sfc1-re1 #SFC 2 10.36.0.1 sfc2-master 10.36.0.4 sfc2-re0 10.36.0.5 sfc2-re1 #SFC 3 10.37.0.1 sfc3-master 10.37.0.4 sfc3-re0 10.37.0.5 sfc3-re1 #SFC 4 10.38.0.1 sfc4-master 10.38.0.4 sfc4-re0 10.38.0.5 sfc4-re1 # End of internal names py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/current_re_get-interface-information.xml000066400000000000000000000316651475361112400314330ustar00rootroot00000000000000 lc-0/0/0.32769 up up vpls pfe-0/0/0.16383 up up inet inet6 pfh-0/0/0.16383 up up inet lc-0/1/0.32769 up up vpls pfe-0/1/0.16383 up up inet inet6 lc-1/0/0.32769 up up vpls pfe-1/0/0.16383 up up inet inet6 pfh-1/0/0.16383 up up inet lc-1/1/0.32769 up up vpls pfe-1/1/0.16383 up up inet inet6 em0.0 up up inet 10.0.0.4/8 128.0.0.1/2 128.0.0.4/2 inet6 fe80::200:ff:fe00:4/64 fec0::a:0:0:4/64 tnp 0x4 em1.0 up up inet 10.0.0.4/8 128.0.0.1/2 128.0.0.4/2 inet6 fe80::200:1ff:fe00:4/64 fec0::a:0:0:4/64 tnp 0x4 lo0.16385 up up inet py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/current_re_jdm_get-software-information.xml000066400000000000000000000021421475361112400321430ustar00rootroot00000000000000 jdm junos_node_slicing pvi-model Server slot Server slot : 0 JDM package version JDM package version : 1.0 JUNOS version JUNOS version : 17.4-20170718_dev_common.1-secure Host Software Host Software [Red Hat Enterprise Linux] JDM container Software JDM container Software [Ubuntu 14.04.1 LTS] py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/current_re_srx_index_err_file-show.xml000066400000000000000000002043121475361112400312120ustar00rootroot00000000000000 #$Id: hosts.junos,v 1.7.72.1 2009-04-16 05:22:03 kdickman Exp $ # # File mapping AF_INET/AF_INET6 hostnames for REs on Single and Multichassis # systems # # This file is looked at before /etc/hosts by gethostbyname(3), # gethostbyname2(3) and getaddrinfo(3) # # The IP addresses in this file are only used for communication between REs # over the Internal Routing Instances # # WARNING: # # The names in this file are effectively reserved for internal use. # # New IP address format (RT_IRS_V3) # # Single Chassis Hostnames # 128.0.0.1 master 128.0.0.1 node 128.0.0.1 fwdd 128.0.0.1 member 128.0.0.1 pfem 128.0.0.2 scb 128.0.0.2 sbr 128.0.0.2 ssb 128.0.0.2 feb 128.0.0.2 cfeb0 128.0.0.2 cfeb 128.0.0.2 cpp0 128.0.0.3 cfeb1 128.0.0.3 cpp1 128.0.0.4 re0 128.0.0.5 re1 128.0.0.6 backup 128.0.0.8 sfm0 128.0.0.9 sfm1 128.0.0.10 sfm2 128.0.0.16 fpc0 128.0.0.17 fpc1 128.0.0.18 fpc2 128.0.0.19 fpc3 128.0.0.20 fpc4 128.0.0.21 fpc5 128.0.0.22 fpc6 128.0.0.23 fpc7 128.0.0.24 fpc8 128.0.0.25 fpc9 128.0.0.26 fpc10 128.0.0.27 fpc11 128.0.0.28 fpc12 128.0.0.29 fpc13 128.0.0.30 fpc14 128.0.0.31 fpc15 128.0.0.32 feb0 128.0.0.32 fpc16 128.0.0.33 feb1 128.0.0.33 fpc17 128.0.0.34 feb2 128.0.0.34 fpc18 128.0.0.35 feb3 128.0.0.35 fpc19 128.0.0.36 fpc20 128.0.0.36 feb4 128.0.0.37 feb5 128.0.0.37 fpc21 128.0.0.38 fpc22 128.0.0.39 fpc23 128.0.0.40 fpc24 128.0.0.41 fpc25 128.0.0.42 fpc26 128.0.0.43 fpc27 128.0.0.44 fpc28 128.0.0.45 fpc29 128.0.0.46 fpc30 128.0.0.47 fpc31 128.0.0.48 spmb0 128.0.0.49 spmb1 128.0.0.50 tfeb0 128.0.0.50 afeb0 128.0.0.53 esc0 128.0.0.54 esc1 128.0.0.55 esc0-ipmi 128.0.0.56 esc1-ipmi 128.0.1.16 fpc0.pic0 128.0.1.17 fpc1.pic0 128.0.1.18 fpc2.pic0 128.0.1.19 fpc3.pic0 128.0.1.20 fpc4.pic0 128.0.1.21 fpc5.pic0 128.0.1.22 fpc6.pic0 128.0.1.23 fpc7.pic0 128.0.1.24 fpc8.pic0 128.0.1.25 fpc9.pic0 128.0.1.26 fpc10.pic0 128.0.1.27 fpc11.pic0 128.0.1.28 fpc12.pic0 128.0.1.29 fpc13.pic0 128.0.1.30 fpc14.pic0 128.0.1.31 fpc15.pic0 128.0.1.32 fpc16.pic0 128.0.1.33 fpc17.pic0 128.0.1.34 fpc18.pic0 128.0.1.35 fpc19.pic0 128.0.1.36 fpc20.pic0 128.0.1.37 fpc21.pic0 128.0.1.38 fpc22.pic0 128.0.1.39 fpc23.pic0 128.0.1.40 fpc24.pic0 128.0.1.41 fpc25.pic0 128.0.1.42 fpc26.pic0 128.0.1.43 fpc27.pic0 128.0.1.44 fpc28.pic0 128.0.1.45 fpc29.pic0 128.0.1.46 fpc30.pic0 128.0.1.47 fpc31.pic0 128.0.2.16 fpc0.pic1 128.0.2.17 fpc1.pic1 128.0.2.18 fpc2.pic1 128.0.2.19 fpc3.pic1 128.0.2.20 fpc4.pic1 128.0.2.21 fpc5.pic1 128.0.2.22 fpc6.pic1 128.0.2.23 fpc7.pic1 128.0.2.24 fpc8.pic1 128.0.2.25 fpc9.pic1 128.0.2.26 fpc10.pic1 128.0.2.27 fpc11.pic1 128.0.2.28 fpc12.pic1 128.0.2.29 fpc13.pic1 128.0.2.30 fpc14.pic1 128.0.2.31 fpc15.pic1 128.0.2.32 fpc16.pic1 128.0.2.33 fpc17.pic1 128.0.2.34 fpc18.pic1 128.0.2.35 fpc19.pic1 128.0.2.36 fpc20.pic1 128.0.2.37 fpc21.pic1 128.0.2.38 fpc22.pic1 128.0.2.39 fpc23.pic1 128.0.2.40 fpc24.pic1 128.0.2.41 fpc25.pic1 128.0.2.42 fpc26.pic1 128.0.2.43 fpc27.pic1 128.0.2.44 fpc28.pic1 128.0.2.45 fpc29.pic1 128.0.2.46 fpc30.pic1 128.0.2.47 fpc31.pic1 128.0.3.16 fpc0.pic2 128.0.3.17 fpc1.pic2 128.0.3.18 fpc2.pic2 128.0.3.19 fpc3.pic2 128.0.3.20 fpc4.pic2 128.0.3.21 fpc5.pic2 128.0.3.22 fpc6.pic2 128.0.3.23 fpc7.pic2 128.0.3.24 fpc8.pic2 128.0.3.25 fpc9.pic2 128.0.3.26 fpc10.pic2 128.0.3.27 fpc11.pic2 128.0.3.28 fpc12.pic2 128.0.3.29 fpc13.pic2 128.0.3.30 fpc14.pic2 128.0.3.31 fpc15.pic2 128.0.4.16 fpc0.pic3 128.0.4.17 fpc1.pic3 128.0.4.18 fpc2.pic3 128.0.4.19 fpc3.pic3 128.0.4.20 fpc4.pic3 128.0.4.21 fpc5.pic3 128.0.4.22 fpc6.pic3 128.0.4.23 fpc7.pic3 128.0.4.24 fpc8.pic3 128.0.4.25 fpc9.pic3 128.0.4.26 fpc10.pic3 128.0.4.27 fpc11.pic3 128.0.4.28 fpc12.pic3 128.0.4.29 fpc13.pic3 128.0.4.30 fpc14.pic3 128.0.4.31 fpc15.pic3 # # DCF-Root Hostname # 128.0.130.2 dcf-root # # Multi Chassis Hostnames # #SCC 144.0.0.1 scc-master 144.0.0.4 scc-re0 144.0.0.5 scc-re1 144.0.0.6 scc-backup 144.0.0.48 scc-spmb0 144.0.0.49 scc-spmb1 #LCC 0 (or MEMBER 0 on Virtual Chassis) 129.0.0.1 lcc0-master member0-master member0 129.0.0.4 lcc0-re0 member0-re0 129.0.0.5 lcc0-re1 member0-re1 129.0.0.6 lcc0-backup member0-backup 129.0.0.16 member0-fpc0 129.0.0.17 member0-fpc1 129.0.0.18 member0-fpc2 129.0.0.19 member0-fpc3 129.0.0.20 member0-fpc4 129.0.0.21 member0-fpc5 129.0.0.22 member0-fpc6 129.0.0.23 member0-fpc7 129.0.0.24 member0-fpc8 129.0.0.25 member0-fpc9 129.0.0.26 member0-fpc10 129.0.0.27 member0-fpc11 129.0.0.28 member0-fpc12 129.0.0.29 member0-fpc13 129.0.0.30 member0-fpc14 129.0.0.31 member0-fpc15 129.0.0.32 member0-fpc16 129.0.0.33 member0-fpc17 129.0.0.34 member0-fpc18 129.0.0.35 member0-fpc19 129.0.0.36 member0-fpc20 129.0.0.37 member0-fpc21 129.0.0.38 member0-fpc22 129.0.0.39 member0-fpc23 129.0.0.40 member0-fpc24 129.0.0.41 member0-fpc25 129.0.0.42 member0-fpc26 129.0.0.43 member0-fpc27 129.0.0.44 member0-fpc28 129.0.0.45 member0-fpc29 129.0.0.46 member0-fpc30 129.0.0.47 member0-fpc31 129.0.0.6 lcc0-backup 129.0.0.16 lcc0-fpc0 129.0.0.17 lcc0-fpc1 129.0.0.18 lcc0-fpc2 129.0.0.19 lcc0-fpc3 129.0.0.20 lcc0-fpc4 129.0.0.21 lcc0-fpc5 129.0.0.22 lcc0-fpc6 129.0.0.23 lcc0-fpc7 129.0.0.48 lcc0-spmb0 129.0.0.49 lcc0-spmb1 #LCC 1 (or MEMBER 1 on Virtual Chassis) 130.0.0.1 lcc1-master member1-master member1 130.0.0.4 lcc1-re0 member1-re0 130.0.0.5 lcc1-re1 member1-re1 130.0.0.6 lcc1-backup member1-backup 130.0.0.16 member1-fpc0 130.0.0.17 member1-fpc1 130.0.0.18 member1-fpc2 130.0.0.19 member1-fpc3 130.0.0.20 member1-fpc4 130.0.0.21 member1-fpc5 130.0.0.22 member1-fpc6 130.0.0.23 member1-fpc7 130.0.0.24 member1-fpc8 130.0.0.25 member1-fpc9 130.0.0.26 member1-fpc10 130.0.0.27 member1-fpc11 130.0.0.28 member1-fpc12 130.0.0.29 member1-fpc13 130.0.0.30 member1-fpc14 130.0.0.31 member1-fpc15 130.0.0.32 member1-fpc16 130.0.0.33 member1-fpc17 130.0.0.34 member1-fpc18 130.0.0.35 member1-fpc19 130.0.0.36 member1-fpc20 130.0.0.37 member1-fpc21 130.0.0.38 member1-fpc22 130.0.0.39 member1-fpc23 130.0.0.40 member1-fpc24 130.0.0.41 member1-fpc25 130.0.0.42 member1-fpc26 130.0.0.43 member1-fpc27 130.0.0.44 member1-fpc28 130.0.0.45 member1-fpc29 130.0.0.46 member1-fpc30 130.0.0.47 member1-fpc31 130.0.0.6 lcc1-backup 130.0.0.16 lcc1-fpc0 130.0.0.17 lcc1-fpc1 130.0.0.18 lcc1-fpc2 130.0.0.19 lcc1-fpc3 130.0.0.20 lcc1-fpc4 130.0.0.21 lcc1-fpc5 130.0.0.22 lcc1-fpc6 130.0.0.23 lcc1-fpc7 130.0.0.48 lcc1-spmb0 130.0.0.49 lcc1-spmb1 #LCC 2 (or MEMBER 2 on Virtual Chassis) 131.0.0.1 lcc2-master member2-master member2 131.0.0.4 lcc2-re0 member2-re0 131.0.0.5 lcc2-re1 member2-re1 131.0.0.6 lcc2-backup member2-backup 131.0.0.16 member2-fpc0 131.0.0.17 member2-fpc1 131.0.0.18 member2-fpc2 131.0.0.19 member2-fpc3 131.0.0.20 member2-fpc4 131.0.0.21 member2-fpc5 131.0.0.22 member2-fpc6 131.0.0.23 member2-fpc7 131.0.0.24 member2-fpc8 131.0.0.25 member2-fpc9 131.0.0.26 member2-fpc10 131.0.0.27 member2-fpc11 131.0.0.28 member2-fpc12 131.0.0.29 member2-fpc13 131.0.0.30 member2-fpc14 131.0.0.31 member2-fpc15 131.0.0.32 member2-fpc16 131.0.0.33 member2-fpc17 131.0.0.34 member2-fpc18 131.0.0.35 member2-fpc19 131.0.0.36 member2-fpc20 131.0.0.37 member2-fpc21 131.0.0.38 member2-fpc22 131.0.0.39 member2-fpc23 131.0.0.40 member2-fpc24 131.0.0.41 member2-fpc25 131.0.0.42 member2-fpc26 131.0.0.43 member2-fpc27 131.0.0.44 member2-fpc28 131.0.0.45 member2-fpc29 131.0.0.46 member2-fpc30 131.0.0.47 member2-fpc31 131.0.0.6 lcc2-backup 131.0.0.16 lcc2-fpc0 131.0.0.17 lcc2-fpc1 131.0.0.18 lcc2-fpc2 131.0.0.19 lcc2-fpc3 131.0.0.20 lcc2-fpc4 131.0.0.21 lcc2-fpc5 131.0.0.22 lcc2-fpc6 131.0.0.23 lcc2-fpc7 131.0.0.48 lcc2-spmb0 131.0.0.49 lcc20-spmb1 #LCC 3 (or MEMBER 3 on Virtual Chassis) 132.0.0.1 lcc3-master member3-master member3 132.0.0.4 lcc3-re0 member3-re0 132.0.0.5 lcc3-re1 member3-re1 132.0.0.6 lcc3-backup member3-backup 132.0.0.16 member3-fpc0 132.0.0.17 member3-fpc1 132.0.0.18 member3-fpc2 132.0.0.19 member3-fpc3 132.0.0.20 member3-fpc4 132.0.0.21 member3-fpc5 132.0.0.22 member3-fpc6 132.0.0.23 member3-fpc7 132.0.0.24 member3-fpc8 132.0.0.25 member3-fpc9 132.0.0.26 member3-fpc10 132.0.0.27 member3-fpc11 132.0.0.28 member3-fpc12 132.0.0.29 member3-fpc13 132.0.0.30 member3-fpc14 132.0.0.31 member3-fpc15 132.0.0.32 member3-fpc16 132.0.0.33 member3-fpc17 132.0.0.34 member3-fpc18 132.0.0.35 member3-fpc19 132.0.0.36 member3-fpc20 132.0.0.37 member3-fpc21 132.0.0.38 member3-fpc22 132.0.0.39 member3-fpc23 132.0.0.40 member3-fpc24 132.0.0.41 member3-fpc25 132.0.0.42 member3-fpc26 132.0.0.43 member3-fpc27 132.0.0.44 member3-fpc28 132.0.0.45 member3-fpc29 132.0.0.46 member3-fpc30 132.0.0.47 member3-fpc31 132.0.0.6 lcc3-backup 132.0.0.16 lcc3-fpc0 132.0.0.17 lcc3-fpc1 132.0.0.18 lcc3-fpc2 132.0.0.19 lcc3-fpc3 132.0.0.20 lcc3-fpc4 132.0.0.21 lcc3-fpc5 132.0.0.22 lcc3-fpc6 132.0.0.23 lcc3-fpc7 132.0.0.48 lcc3-spmb0 132.0.0.49 lcc3-spmb1 #LCC 4 (or MEMBER 4 on Virtual Chassis) 133.0.0.1 lcc4-master member4-master member4 133.0.0.4 lcc4-re0 member4-re0 133.0.0.5 lcc4-re1 member4-re1 133.0.0.6 lcc4-backup member4-backup 133.0.0.16 member4-fpc0 133.0.0.17 member4-fpc1 133.0.0.18 member4-fpc2 133.0.0.19 member4-fpc3 133.0.0.20 member4-fpc4 133.0.0.21 member4-fpc5 133.0.0.22 member4-fpc6 133.0.0.23 member4-fpc7 133.0.0.24 member4-fpc8 133.0.0.25 member4-fpc9 133.0.0.26 member4-fpc10 133.0.0.27 member4-fpc11 133.0.0.28 member4-fpc12 133.0.0.29 member4-fpc13 133.0.0.30 member4-fpc14 133.0.0.31 member4-fpc15 133.0.0.32 member4-fpc16 133.0.0.33 member4-fpc17 133.0.0.34 member4-fpc18 133.0.0.35 member4-fpc19 133.0.0.36 member4-fpc20 133.0.0.37 member4-fpc21 133.0.0.38 member4-fpc22 133.0.0.39 member4-fpc23 133.0.0.40 member4-fpc24 133.0.0.41 member4-fpc25 133.0.0.42 member4-fpc26 133.0.0.43 member4-fpc27 133.0.0.44 member4-fpc28 133.0.0.45 member4-fpc29 133.0.0.46 member4-fpc30 133.0.0.47 member4-fpc31 133.0.0.6 lcc4-backup 133.0.0.16 lcc4-fpc0 133.0.0.17 lcc4-fpc1 133.0.0.18 lcc4-fpc2 133.0.0.19 lcc4-fpc3 133.0.0.20 lcc4-fpc4 133.0.0.21 lcc4-fpc5 133.0.0.22 lcc4-fpc6 133.0.0.23 lcc4-fpc7 133.0.0.48 lcc4-spmb0 133.0.0.49 lcc4-spmb1 #LCC 5 (or MEMBER 5 on Virtual Chassis) 134.0.0.1 lcc5-master member5-master member5 134.0.0.4 lcc5-re0 member5-re0 134.0.0.5 lcc5-re1 member5-re1 134.0.0.6 lcc5-backup member5-backup 134.0.0.16 member5-fpc0 134.0.0.17 member5-fpc1 134.0.0.18 member5-fpc2 134.0.0.19 member5-fpc3 134.0.0.20 member5-fpc4 134.0.0.21 member5-fpc5 134.0.0.22 member5-fpc6 134.0.0.23 member5-fpc7 134.0.0.24 member5-fpc8 134.0.0.25 member5-fpc9 134.0.0.26 member5-fpc10 134.0.0.27 member5-fpc11 134.0.0.28 member5-fpc12 134.0.0.29 member5-fpc13 134.0.0.30 member5-fpc14 134.0.0.31 member5-fpc15 134.0.0.32 member5-fpc16 134.0.0.33 member5-fpc17 134.0.0.34 member5-fpc18 134.0.0.35 member5-fpc19 134.0.0.36 member5-fpc20 134.0.0.37 member5-fpc21 134.0.0.38 member5-fpc22 134.0.0.39 member5-fpc23 134.0.0.40 member5-fpc24 134.0.0.41 member5-fpc25 134.0.0.42 member5-fpc26 134.0.0.43 member5-fpc27 134.0.0.44 member5-fpc28 134.0.0.45 member5-fpc29 134.0.0.46 member5-fpc30 134.0.0.47 member5-fpc31 134.0.0.6 lcc5-backup 134.0.0.16 lcc5-fpc0 134.0.0.17 lcc5-fpc1 134.0.0.18 lcc5-fpc2 134.0.0.19 lcc5-fpc3 134.0.0.20 lcc5-fpc4 134.0.0.21 lcc5-fpc5 134.0.0.22 lcc5-fpc6 134.0.0.23 lcc5-fpc7 134.0.0.48 lcc5-spmb0 134.0.0.49 lcc5-spmb1 #LCC 6 (or MEMBER 6 on Virtual Chassis) 135.0.0.1 lcc6-master member6-master member6 135.0.0.4 lcc6-re0 member6-re0 135.0.0.5 lcc6-re1 member6-re1 135.0.0.6 lcc6-backup member6-backup 135.0.0.16 member6-fpc0 135.0.0.17 member6-fpc1 135.0.0.18 member6-fpc2 135.0.0.19 member6-fpc3 135.0.0.20 member6-fpc4 135.0.0.21 member6-fpc5 135.0.0.22 member6-fpc6 135.0.0.23 member6-fpc7 135.0.0.24 member6-fpc8 135.0.0.25 member6-fpc9 135.0.0.26 member6-fpc10 135.0.0.27 member6-fpc11 135.0.0.28 member6-fpc12 135.0.0.29 member6-fpc13 135.0.0.30 member6-fpc14 135.0.0.31 member6-fpc15 135.0.0.32 member6-fpc16 135.0.0.33 member6-fpc17 135.0.0.34 member6-fpc18 135.0.0.35 member6-fpc19 135.0.0.36 member6-fpc20 135.0.0.37 member6-fpc21 135.0.0.38 member6-fpc22 135.0.0.39 member6-fpc23 135.0.0.40 member6-fpc24 135.0.0.41 member6-fpc25 135.0.0.42 member6-fpc26 135.0.0.43 member6-fpc27 135.0.0.44 member6-fpc28 135.0.0.45 member6-fpc29 135.0.0.46 member6-fpc30 135.0.0.47 member6-fpc31 135.0.0.6 lcc6-backup 135.0.0.16 lcc6-fpc0 135.0.0.17 lcc6-fpc1 135.0.0.18 lcc6-fpc2 135.0.0.19 lcc6-fpc3 135.0.0.20 lcc6-fpc4 135.0.0.21 lcc6-fpc5 135.0.0.22 lcc6-fpc6 135.0.0.23 lcc6-fpc7 135.0.0.48 lcc6-spmb0 135.0.0.49 lcc6-spmb1 #LCC 7 (or MEMBER 7 on Virtual Chassis) 136.0.0.1 lcc7-master member7-master member7 136.0.0.4 lcc7-re0 member7-re0 136.0.0.5 lcc7-re1 member7-re1 136.0.0.6 lcc7-backup member7-backup 136.0.0.16 member7-fpc0 136.0.0.17 member7-fpc1 136.0.0.18 member7-fpc2 136.0.0.19 member7-fpc3 136.0.0.20 member7-fpc4 136.0.0.21 member7-fpc5 136.0.0.22 member7-fpc6 136.0.0.23 member7-fpc7 136.0.0.24 member7-fpc8 136.0.0.25 member7-fpc9 136.0.0.26 member7-fpc10 136.0.0.27 member7-fpc11 136.0.0.28 member7-fpc12 136.0.0.29 member7-fpc13 136.0.0.30 member7-fpc14 136.0.0.31 member7-fpc15 136.0.0.32 member7-fpc16 136.0.0.33 member7-fpc17 136.0.0.34 member7-fpc18 136.0.0.35 member7-fpc19 136.0.0.36 member7-fpc20 136.0.0.37 member7-fpc21 136.0.0.38 member7-fpc22 136.0.0.39 member7-fpc23 136.0.0.40 member7-fpc24 136.0.0.41 member7-fpc25 136.0.0.42 member7-fpc26 136.0.0.43 member7-fpc27 136.0.0.44 member7-fpc28 136.0.0.45 member7-fpc29 136.0.0.46 member7-fpc30 136.0.0.47 member7-fpc31 136.0.0.6 lcc7-backup 136.0.0.16 lcc7-fpc0 136.0.0.17 lcc7-fpc1 136.0.0.18 lcc7-fpc2 136.0.0.19 lcc7-fpc3 136.0.0.20 lcc7-fpc4 136.0.0.21 lcc7-fpc5 136.0.0.22 lcc7-fpc6 136.0.0.23 lcc7-fpc7 136.0.0.48 lcc7-spmb0 136.0.0.49 lcc7-spmb1 137.0.0.6 lcc8-backup 137.0.0.16 lcc8-fpc0 137.0.0.17 lcc8-fpc1 137.0.0.18 lcc8-fpc2 137.0.0.19 lcc8-fpc3 137.0.0.20 lcc8-fpc4 137.0.0.21 lcc8-fpc5 137.0.0.22 lcc8-fpc6 137.0.0.23 lcc8-fpc7 137.0.0.48 lcc8-spmb0 137.0.0.49 lcc8-spmb1 #LCC 8 (or MEMBER 8 on Virtual Chassis) 137.0.0.1 lcc8-master member8-master member8 137.0.0.4 lcc8-re0 member8-re0 137.0.0.5 lcc8-re1 member8-re1 137.0.0.6 lcc8-backup member8-backup 137.0.0.16 member8-fpc0 137.0.0.17 member8-fpc1 137.0.0.18 member8-fpc2 137.0.0.19 member8-fpc3 137.0.0.20 member8-fpc4 137.0.0.21 member8-fpc5 137.0.0.22 member8-fpc6 137.0.0.23 member8-fpc7 137.0.0.24 member8-fpc8 137.0.0.25 member8-fpc9 137.0.0.26 member8-fpc10 137.0.0.27 member8-fpc11 137.0.0.28 member8-fpc12 137.0.0.29 member8-fpc13 137.0.0.30 member8-fpc14 137.0.0.31 member8-fpc15 137.0.0.32 member8-fpc16 137.0.0.33 member8-fpc17 137.0.0.34 member8-fpc18 137.0.0.35 member8-fpc19 137.0.0.36 member8-fpc20 137.0.0.37 member8-fpc21 137.0.0.38 member8-fpc22 137.0.0.39 member8-fpc23 137.0.0.40 member8-fpc24 137.0.0.41 member8-fpc25 137.0.0.42 member8-fpc26 137.0.0.43 member8-fpc27 137.0.0.44 member8-fpc28 137.0.0.45 member8-fpc29 137.0.0.46 member8-fpc30 137.0.0.47 member8-fpc31 138.0.0.6 lcc9-backup 138.0.0.16 lcc9-fpc0 138.0.0.17 lcc9-fpc1 138.0.0.18 lcc9-fpc2 138.0.0.19 lcc9-fpc3 138.0.0.20 lcc9-fpc4 138.0.0.21 lcc9-fpc5 138.0.0.22 lcc9-fpc6 138.0.0.23 lcc9-fpc7 138.0.0.48 lcc9-spmb0 138.0.0.49 lcc9-spmb1 #LCC 9 (or MEMBER 9 on Virtual Chassis) 138.0.0.1 lcc9-master member9-master member9 138.0.0.4 lcc9-re0 member9-re0 138.0.0.5 lcc9-re1 member9-re1 138.0.0.6 lcc9-backup member9-backup 138.0.0.16 member9-fpc0 138.0.0.17 member9-fpc1 138.0.0.18 member9-fpc2 138.0.0.19 member9-fpc3 138.0.0.20 member9-fpc4 138.0.0.21 member9-fpc5 138.0.0.22 member9-fpc6 138.0.0.23 member9-fpc7 138.0.0.24 member9-fpc8 138.0.0.25 member9-fpc9 138.0.0.26 member9-fpc10 138.0.0.27 member9-fpc11 138.0.0.28 member9-fpc12 138.0.0.29 member9-fpc13 138.0.0.30 member9-fpc14 138.0.0.31 member9-fpc15 138.0.0.32 member9-fpc16 138.0.0.33 member9-fpc17 138.0.0.34 member9-fpc18 138.0.0.35 member9-fpc19 138.0.0.36 member9-fpc20 138.0.0.37 member9-fpc21 138.0.0.38 member9-fpc22 138.0.0.39 member9-fpc23 138.0.0.40 member9-fpc24 138.0.0.41 member9-fpc25 138.0.0.42 member9-fpc26 138.0.0.43 member9-fpc27 138.0.0.44 member9-fpc28 138.0.0.45 member9-fpc29 138.0.0.46 member9-fpc30 138.0.0.47 member9-fpc31 139.0.0.6 lcc10-backup 139.0.0.16 lcc10-fpc0 139.0.0.17 lcc10-fpc1 139.0.0.18 lcc10-fpc2 139.0.0.19 lcc10-fpc3 139.0.0.20 lcc10-fpc4 139.0.0.21 lcc10-fpc5 139.0.0.22 lcc10-fpc6 139.0.0.23 lcc10-fpc7 139.0.0.48 lcc10-spmb0 139.0.0.49 lcc10-spmb1 #LCC 10 (or MEMBER 10 on Virtual Chassis) 139.0.0.1 lcc10-master member10-master 139.0.0.4 lcc10-re0 member10-re0 139.0.0.5 lcc10-re1 member10-re1 139.0.0.6 lcc10-backup member10-backup 139.0.0.16 member10-fpc0 139.0.0.17 member10-fpc1 139.0.0.18 member10-fpc2 139.0.0.19 member10-fpc3 139.0.0.20 member10-fpc4 139.0.0.21 member10-fpc5 139.0.0.22 member10-fpc6 139.0.0.23 member10-fpc7 139.0.0.24 member10-fpc8 139.0.0.25 member10-fpc9 139.0.0.26 member10-fpc10 139.0.0.27 member10-fpc11 139.0.0.28 member10-fpc12 139.0.0.29 member10-fpc13 139.0.0.30 member10-fpc14 139.0.0.31 member10-fpc15 139.0.0.32 member10-fpc16 139.0.0.33 member10-fpc17 139.0.0.34 member10-fpc18 139.0.0.35 member10-fpc19 139.0.0.36 member10-fpc20 139.0.0.37 member10-fpc21 139.0.0.38 member10-fpc22 139.0.0.39 member10-fpc23 139.0.0.40 member10-fpc24 139.0.0.41 member10-fpc25 139.0.0.42 member10-fpc26 139.0.0.43 member10-fpc27 139.0.0.44 member10-fpc28 139.0.0.45 member10-fpc29 139.0.0.46 member10-fpc30 139.0.0.47 member10-fpc31 140.0.0.6 lcc11-backup 140.0.0.16 lcc11-fpc0 140.0.0.17 lcc11-fpc1 140.0.0.18 lcc11-fpc2 140.0.0.19 lcc11-fpc3 140.0.0.20 lcc11-fpc4 140.0.0.21 lcc11-fpc5 140.0.0.22 lcc11-fpc6 140.0.0.23 lcc11-fpc7 140.0.0.48 lcc11-spmb0 140.0.0.49 lcc11-spmb1 #LCC 11 (or MEMBER 11 on Virtual Chassis) 140.0.0.1 lcc11-master member11-master 140.0.0.4 lcc11-re0 member11-re0 140.0.0.5 lcc11-re1 member11-re1 140.0.0.6 lcc11-backup member11-backup 140.0.0.16 member11-fpc0 140.0.0.17 member11-fpc1 140.0.0.18 member11-fpc2 140.0.0.19 member11-fpc3 140.0.0.20 member11-fpc4 140.0.0.21 member11-fpc5 140.0.0.22 member11-fpc6 140.0.0.23 member11-fpc7 140.0.0.24 member11-fpc8 140.0.0.25 member11-fpc9 140.0.0.26 member11-fpc10 140.0.0.27 member11-fpc11 140.0.0.28 member11-fpc12 140.0.0.29 member11-fpc13 140.0.0.30 member11-fpc14 140.0.0.31 member11-fpc15 140.0.0.32 member11-fpc16 140.0.0.33 member11-fpc17 140.0.0.34 member11-fpc18 140.0.0.35 member11-fpc19 140.0.0.36 member11-fpc20 140.0.0.37 member11-fpc21 140.0.0.38 member11-fpc22 140.0.0.39 member11-fpc23 140.0.0.40 member11-fpc24 140.0.0.41 member11-fpc25 140.0.0.42 member11-fpc26 140.0.0.43 member11-fpc27 140.0.0.44 member11-fpc28 140.0.0.45 member11-fpc29 140.0.0.46 member11-fpc30 140.0.0.47 member11-fpc31 141.0.0.6 lcc12-backup 141.0.0.16 lcc12-fpc0 141.0.0.17 lcc12-fpc1 141.0.0.18 lcc12-fpc2 141.0.0.19 lcc12-fpc3 141.0.0.20 lcc12-fpc4 141.0.0.21 lcc12-fpc5 141.0.0.22 lcc12-fpc6 141.0.0.23 lcc12-fpc7 141.0.0.48 lcc12-spmb0 141.0.0.49 lcc12-spmb1 #LCC 12 (or MEMBER 12 on Virtual Chassis) 141.0.0.1 lcc12-master member12-master 141.0.0.4 lcc12-re0 member12-re0 141.0.0.5 lcc12-re1 member12-re1 141.0.0.6 lcc12-backup member12-backup 141.0.0.16 member12-fpc0 141.0.0.17 member12-fpc1 141.0.0.18 member12-fpc2 141.0.0.19 member12-fpc3 141.0.0.20 member12-fpc4 141.0.0.21 member12-fpc5 141.0.0.22 member12-fpc6 141.0.0.23 member12-fpc7 141.0.0.24 member12-fpc8 141.0.0.25 member12-fpc9 141.0.0.26 member12-fpc10 141.0.0.27 member12-fpc11 141.0.0.28 member12-fpc12 141.0.0.29 member12-fpc13 141.0.0.30 member12-fpc14 141.0.0.31 member12-fpc15 141.0.0.32 member12-fpc16 141.0.0.33 member12-fpc17 141.0.0.34 member12-fpc18 141.0.0.35 member12-fpc19 141.0.0.36 member12-fpc20 141.0.0.37 member12-fpc21 141.0.0.38 member12-fpc22 141.0.0.39 member12-fpc23 141.0.0.40 member12-fpc24 141.0.0.41 member12-fpc25 141.0.0.42 member12-fpc26 141.0.0.43 member12-fpc27 141.0.0.44 member12-fpc28 141.0.0.45 member12-fpc29 141.0.0.46 member12-fpc30 141.0.0.47 member12-fpc31 142.0.0.6 lcc13-backup 142.0.0.16 lcc13-fpc0 142.0.0.17 lcc13-fpc1 142.0.0.18 lcc13-fpc2 142.0.0.19 lcc13-fpc3 142.0.0.20 lcc13-fpc4 142.0.0.21 lcc13-fpc5 142.0.0.22 lcc13-fpc6 142.0.0.23 lcc13-fpc7 142.0.0.48 lcc13-spmb0 142.0.0.49 lcc13-spmb1 #LCC 13 (or MEMBER 13 on Virtual Chassis) 142.0.0.1 lcc13-master member13-master 142.0.0.4 lcc13-re0 member13-re0 142.0.0.5 lcc13-re1 member13-re1 142.0.0.6 lcc13-backup member13-backup 142.0.0.16 member13-fpc0 142.0.0.17 member13-fpc1 142.0.0.18 member13-fpc2 142.0.0.19 member13-fpc3 142.0.0.20 member13-fpc4 142.0.0.21 member13-fpc5 142.0.0.22 member13-fpc6 142.0.0.23 member13-fpc7 142.0.0.24 member13-fpc8 142.0.0.25 member13-fpc9 142.0.0.26 member13-fpc10 142.0.0.27 member13-fpc11 142.0.0.28 member13-fpc12 142.0.0.29 member13-fpc13 142.0.0.30 member13-fpc14 142.0.0.31 member13-fpc15 142.0.0.32 member13-fpc16 142.0.0.33 member13-fpc17 142.0.0.34 member13-fpc18 142.0.0.35 member13-fpc19 142.0.0.36 member13-fpc20 142.0.0.37 member13-fpc21 142.0.0.38 member13-fpc22 142.0.0.39 member13-fpc23 142.0.0.40 member13-fpc24 142.0.0.41 member13-fpc25 142.0.0.42 member13-fpc26 142.0.0.43 member13-fpc27 142.0.0.44 member13-fpc28 142.0.0.45 member13-fpc29 142.0.0.46 member13-fpc30 142.0.0.47 member13-fpc31 143.0.0.6 lcc14-backup 143.0.0.16 lcc14-fpc0 143.0.0.17 lcc14-fpc1 143.0.0.18 lcc14-fpc2 143.0.0.19 lcc14-fpc3 143.0.0.20 lcc14-fpc4 143.0.0.21 lcc14-fpc5 143.0.0.22 lcc14-fpc6 143.0.0.23 lcc14-fpc7 143.0.0.48 lcc14-spmb0 143.0.0.49 lcc14-spmb1 #LCC 14 (or MEMBER 14 on Virtual Chassis) 143.0.0.1 lcc14-master member14-master 143.0.0.4 lcc14-re0 member14-re0 143.0.0.5 lcc14-re1 member14-re1 143.0.0.6 lcc14-backup member14-backup 143.0.0.16 member14-fpc0 143.0.0.17 member14-fpc1 143.0.0.18 member14-fpc2 143.0.0.19 member14-fpc3 143.0.0.20 member14-fpc4 143.0.0.21 member14-fpc5 143.0.0.22 member14-fpc6 143.0.0.23 member14-fpc7 143.0.0.24 member14-fpc8 143.0.0.25 member14-fpc9 143.0.0.26 member14-fpc10 143.0.0.27 member14-fpc11 143.0.0.28 member14-fpc12 143.0.0.29 member14-fpc13 143.0.0.30 member14-fpc14 143.0.0.31 member14-fpc15 143.0.0.32 member14-fpc16 143.0.0.33 member14-fpc17 143.0.0.34 member14-fpc18 143.0.0.35 member14-fpc19 143.0.0.36 member14-fpc20 143.0.0.37 member14-fpc21 143.0.0.38 member14-fpc22 143.0.0.39 member14-fpc23 143.0.0.40 member14-fpc24 143.0.0.41 member14-fpc25 143.0.0.42 member14-fpc26 143.0.0.43 member14-fpc27 143.0.0.44 member14-fpc28 143.0.0.45 member14-fpc29 143.0.0.46 member14-fpc30 143.0.0.47 member14-fpc31 144.0.0.6 lcc15-backup 144.0.0.16 lcc15-fpc0 144.0.0.17 lcc15-fpc1 144.0.0.18 lcc15-fpc2 144.0.0.19 lcc15-fpc3 144.0.0.20 lcc15-fpc4 144.0.0.21 lcc15-fpc5 144.0.0.22 lcc15-fpc6 144.0.0.23 lcc15-fpc7 144.0.0.48 lcc15-spmb0 144.0.0.49 lcc15-spmb1 #LCC 15 (or MEMBER 15 on Virtual Chassis) 144.0.0.1 lcc15-master member15-master 144.0.0.4 lcc15-re0 member15-re0 144.0.0.5 lcc15-re1 member15-re1 144.0.0.6 lcc15-backup member15-backup 144.0.0.16 member15-fpc0 144.0.0.17 member15-fpc1 144.0.0.18 member15-fpc2 144.0.0.19 member15-fpc3 144.0.0.20 member15-fpc4 144.0.0.21 member15-fpc5 144.0.0.22 member15-fpc6 144.0.0.23 member15-fpc7 144.0.0.24 member15-fpc8 144.0.0.25 member15-fpc9 144.0.0.26 member15-fpc10 144.0.0.27 member15-fpc11 144.0.0.28 member15-fpc12 144.0.0.29 member15-fpc13 144.0.0.30 member15-fpc14 144.0.0.31 member15-fpc15 144.0.0.32 member15-fpc16 144.0.0.33 member15-fpc17 144.0.0.34 member15-fpc18 144.0.0.35 member15-fpc19 144.0.0.36 member15-fpc20 144.0.0.37 member15-fpc21 144.0.0.38 member15-fpc22 144.0.0.39 member15-fpc23 144.0.0.40 member15-fpc24 144.0.0.41 member15-fpc25 144.0.0.42 member15-fpc26 144.0.0.43 member15-fpc27 144.0.0.44 member15-fpc28 144.0.0.45 member15-fpc29 144.0.0.46 member15-fpc30 144.0.0.47 member15-fpc31 #LCC 16 (or MEMBER 16 on Virtual Chassis) 145.0.0.1 lcc16-master member16-master 145.0.0.4 lcc16-re0 member16-re0 145.0.0.5 lcc16-re1 member16-re1 145.0.0.6 lcc16-backup member16-backup 145.0.0.16 member16-fpc0 145.0.0.17 member16-fpc1 145.0.0.18 member16-fpc2 145.0.0.19 member16-fpc3 145.0.0.20 member16-fpc4 145.0.0.21 member16-fpc5 145.0.0.22 member16-fpc6 145.0.0.23 member16-fpc7 145.0.0.24 member16-fpc8 145.0.0.25 member16-fpc9 145.0.0.26 member16-fpc10 145.0.0.27 member16-fpc11 145.0.0.28 member16-fpc12 145.0.0.29 member16-fpc13 145.0.0.30 member16-fpc14 145.0.0.31 member16-fpc15 145.0.0.32 member16-fpc16 145.0.0.33 member16-fpc17 145.0.0.34 member16-fpc18 145.0.0.35 member16-fpc19 145.0.0.36 member16-fpc20 145.0.0.37 member16-fpc21 145.0.0.38 member16-fpc22 145.0.0.39 member16-fpc23 145.0.0.40 member16-fpc24 145.0.0.41 member16-fpc25 145.0.0.42 member16-fpc26 145.0.0.43 member16-fpc27 145.0.0.44 member16-fpc28 145.0.0.45 member16-fpc29 145.0.0.46 member16-fpc30 145.0.0.47 member16-fpc31 #LCC 17 (or MEMBER 17 on Virtual Chassis) 146.0.0.1 lcc17-master member17-master 146.0.0.4 lcc17-re0 member17-re0 146.0.0.5 lcc17-re1 member17-re1 146.0.0.6 lcc17-backup member17-backup 146.0.0.16 member17-fpc0 146.0.0.17 member17-fpc1 146.0.0.18 member17-fpc2 146.0.0.19 member17-fpc3 146.0.0.20 member17-fpc4 146.0.0.21 member17-fpc5 146.0.0.22 member17-fpc6 146.0.0.23 member17-fpc7 146.0.0.24 member17-fpc8 146.0.0.25 member17-fpc9 146.0.0.26 member17-fpc10 146.0.0.27 member17-fpc11 146.0.0.28 member17-fpc12 146.0.0.29 member17-fpc13 146.0.0.30 member17-fpc14 146.0.0.31 member17-fpc15 146.0.0.32 member17-fpc16 146.0.0.33 member17-fpc17 146.0.0.34 member17-fpc18 146.0.0.35 member17-fpc19 146.0.0.36 member17-fpc20 146.0.0.37 member17-fpc21 146.0.0.38 member17-fpc22 146.0.0.39 member17-fpc23 146.0.0.40 member17-fpc24 146.0.0.41 member17-fpc25 146.0.0.42 member17-fpc26 146.0.0.43 member17-fpc27 146.0.0.44 member17-fpc28 146.0.0.45 member17-fpc29 146.0.0.46 member17-fpc30 146.0.0.47 member17-fpc31 #LCC 18 (or MEMBER 18 on Virtual Chassis) 147.0.0.1 lcc18-master member18-master 147.0.0.4 lcc18-re0 member18-re0 147.0.0.5 lcc18-re1 member18-re1 147.0.0.6 lcc18-backup member18-backup 147.0.0.16 member18-fpc0 147.0.0.17 member18-fpc1 147.0.0.18 member18-fpc2 147.0.0.19 member18-fpc3 147.0.0.20 member18-fpc4 147.0.0.21 member18-fpc5 147.0.0.22 member18-fpc6 147.0.0.23 member18-fpc7 147.0.0.24 member18-fpc8 147.0.0.25 member18-fpc9 147.0.0.26 member18-fpc10 147.0.0.27 member18-fpc11 147.0.0.28 member18-fpc12 147.0.0.29 member18-fpc13 147.0.0.30 member18-fpc14 147.0.0.31 member18-fpc15 147.0.0.32 member18-fpc16 147.0.0.33 member18-fpc17 147.0.0.34 member18-fpc18 147.0.0.35 member18-fpc19 147.0.0.36 member18-fpc20 147.0.0.37 member18-fpc21 147.0.0.38 member18-fpc22 147.0.0.39 member18-fpc23 147.0.0.40 member18-fpc24 147.0.0.41 member18-fpc25 147.0.0.42 member18-fpc26 147.0.0.43 member18-fpc27 147.0.0.44 member18-fpc28 147.0.0.45 member18-fpc29 147.0.0.46 member18-fpc30 147.0.0.47 member18-fpc31 #LCC 19 (or MEMBER 19 on Virtual Chassis) 148.0.0.1 lcc19-master member19-master 148.0.0.4 lcc19-re0 member19-re0 148.0.0.5 lcc19-re1 member19-re1 148.0.0.6 lcc19-backup member19-backup 148.0.0.16 member19-fpc0 148.0.0.17 member19-fpc1 148.0.0.18 member19-fpc2 148.0.0.19 member19-fpc3 148.0.0.20 member19-fpc4 148.0.0.21 member19-fpc5 148.0.0.22 member19-fpc6 148.0.0.23 member19-fpc7 148.0.0.24 member19-fpc8 148.0.0.25 member19-fpc9 148.0.0.26 member19-fpc10 148.0.0.27 member19-fpc11 148.0.0.28 member19-fpc12 148.0.0.29 member19-fpc13 148.0.0.30 member19-fpc14 148.0.0.31 member19-fpc15 148.0.0.32 member19-fpc16 148.0.0.33 member19-fpc17 148.0.0.34 member19-fpc18 148.0.0.35 member19-fpc19 148.0.0.36 member19-fpc20 148.0.0.37 member19-fpc21 148.0.0.38 member19-fpc22 148.0.0.39 member19-fpc23 148.0.0.40 member19-fpc24 148.0.0.41 member19-fpc25 148.0.0.42 member19-fpc26 148.0.0.43 member19-fpc27 148.0.0.44 member19-fpc28 148.0.0.45 member19-fpc29 148.0.0.46 member19-fpc30 148.0.0.47 member19-fpc31 #LCC 20 (or MEMBER 20 on Virtual Chassis) 149.0.0.1 lcc20-master member20-master 149.0.0.4 lcc20-re0 member20-re0 149.0.0.5 lcc20-re1 member20-re1 149.0.0.6 lcc20-backup member20-backup 149.0.0.16 member20-fpc0 149.0.0.17 member20-fpc1 149.0.0.18 member20-fpc2 149.0.0.19 member20-fpc3 149.0.0.20 member20-fpc4 149.0.0.21 member20-fpc5 149.0.0.22 member20-fpc6 149.0.0.23 member20-fpc7 149.0.0.24 member20-fpc8 149.0.0.25 member20-fpc9 149.0.0.26 member20-fpc10 149.0.0.27 member20-fpc11 149.0.0.28 member20-fpc12 149.0.0.29 member20-fpc13 149.0.0.30 member20-fpc14 149.0.0.31 member20-fpc15 149.0.0.32 member20-fpc16 149.0.0.33 member20-fpc17 149.0.0.34 member20-fpc18 149.0.0.35 member20-fpc19 149.0.0.36 member20-fpc20 149.0.0.37 member20-fpc21 149.0.0.38 member20-fpc22 149.0.0.39 member20-fpc23 149.0.0.40 member20-fpc24 149.0.0.41 member20-fpc25 149.0.0.42 member20-fpc26 149.0.0.43 member20-fpc27 149.0.0.44 member20-fpc28 149.0.0.45 member20-fpc29 149.0.0.46 member20-fpc30 149.0.0.47 member20-fpc31 #LCC 21 (or MEMBER 21 on Virtual Chassis) 150.0.0.1 lcc21-master member21-master 150.0.0.4 lcc21-re0 member21-re0 150.0.0.5 lcc21-re1 member21-re1 150.0.0.6 lcc21-backup member21-backup 150.0.0.16 member21-fpc0 150.0.0.17 member21-fpc1 150.0.0.18 member21-fpc2 150.0.0.19 member21-fpc3 150.0.0.20 member21-fpc4 150.0.0.21 member21-fpc5 150.0.0.22 member21-fpc6 150.0.0.23 member21-fpc7 150.0.0.24 member21-fpc8 150.0.0.25 member21-fpc9 150.0.0.26 member21-fpc10 150.0.0.27 member21-fpc11 150.0.0.28 member21-fpc12 150.0.0.29 member21-fpc13 150.0.0.30 member21-fpc14 150.0.0.31 member21-fpc15 150.0.0.32 member21-fpc16 150.0.0.33 member21-fpc17 150.0.0.34 member21-fpc18 150.0.0.35 member21-fpc19 150.0.0.36 member21-fpc20 150.0.0.37 member21-fpc21 150.0.0.38 member21-fpc22 150.0.0.39 member21-fpc23 150.0.0.40 member21-fpc24 150.0.0.41 member21-fpc25 150.0.0.42 member21-fpc26 150.0.0.43 member21-fpc27 150.0.0.44 member21-fpc28 150.0.0.45 member21-fpc29 150.0.0.46 member21-fpc30 150.0.0.47 member21-fpc31 #LCC 22 (or MEMBER 22 on Virtual Chassis) 151.0.0.1 lcc22-master member22-master 151.0.0.4 lcc22-re0 member22-re0 151.0.0.5 lcc22-re1 member22-re1 151.0.0.6 lcc22-backup member22-backup 151.0.0.16 member22-fpc0 151.0.0.17 member22-fpc1 151.0.0.18 member22-fpc2 151.0.0.19 member22-fpc3 151.0.0.20 member22-fpc4 151.0.0.21 member22-fpc5 151.0.0.22 member22-fpc6 151.0.0.23 member22-fpc7 151.0.0.24 member22-fpc8 151.0.0.25 member22-fpc9 151.0.0.26 member22-fpc10 151.0.0.27 member22-fpc11 151.0.0.28 member22-fpc12 151.0.0.29 member22-fpc13 151.0.0.30 member22-fpc14 151.0.0.31 member22-fpc15 151.0.0.32 member22-fpc16 151.0.0.33 member22-fpc17 151.0.0.34 member22-fpc18 151.0.0.35 member22-fpc19 151.0.0.36 member22-fpc20 151.0.0.37 member22-fpc21 151.0.0.38 member22-fpc22 151.0.0.39 member22-fpc23 151.0.0.40 member22-fpc24 151.0.0.41 member22-fpc25 151.0.0.42 member22-fpc26 151.0.0.43 member22-fpc27 151.0.0.44 member22-fpc28 151.0.0.45 member22-fpc29 151.0.0.46 member22-fpc30 151.0.0.47 member22-fpc31 #LCC 23 (or MEMBER 23 on Virtual Chassis) 152.0.0.1 lcc23-master member23-master 152.0.0.4 lcc23-re0 member23-re0 152.0.0.5 lcc23-re1 member23-re1 152.0.0.6 lcc23-backup member23-backup 152.0.0.16 member23-fpc0 152.0.0.17 member23-fpc1 152.0.0.18 member23-fpc2 152.0.0.19 member23-fpc3 152.0.0.20 member23-fpc4 152.0.0.21 member23-fpc5 152.0.0.22 member23-fpc6 152.0.0.23 member23-fpc7 152.0.0.24 member23-fpc8 152.0.0.25 member23-fpc9 152.0.0.26 member23-fpc10 152.0.0.27 member23-fpc11 152.0.0.28 member23-fpc12 152.0.0.29 member23-fpc13 152.0.0.30 member23-fpc14 152.0.0.31 member23-fpc15 152.0.0.32 member23-fpc16 152.0.0.33 member23-fpc17 152.0.0.34 member23-fpc18 152.0.0.35 member23-fpc19 152.0.0.36 member23-fpc20 152.0.0.37 member23-fpc21 152.0.0.38 member23-fpc22 152.0.0.39 member23-fpc23 152.0.0.40 member23-fpc24 152.0.0.41 member23-fpc25 152.0.0.42 member23-fpc26 152.0.0.43 member23-fpc27 152.0.0.44 member23-fpc28 152.0.0.45 member23-fpc29 152.0.0.46 member23-fpc30 152.0.0.47 member23-fpc31 #LCC 24 (or MEMBER 24 on Virtual Chassis) 153.0.0.1 lcc24-master member24-master 153.0.0.4 lcc24-re0 member24-re0 153.0.0.5 lcc24-re1 member24-re1 153.0.0.6 lcc24-backup member24-backup 153.0.0.16 member24-fpc0 153.0.0.17 member24-fpc1 153.0.0.18 member24-fpc2 153.0.0.19 member24-fpc3 153.0.0.20 member24-fpc4 153.0.0.21 member24-fpc5 153.0.0.22 member24-fpc6 153.0.0.23 member24-fpc7 153.0.0.24 member24-fpc8 153.0.0.25 member24-fpc9 153.0.0.26 member24-fpc10 153.0.0.27 member24-fpc11 153.0.0.28 member24-fpc12 153.0.0.29 member24-fpc13 153.0.0.30 member24-fpc14 153.0.0.31 member24-fpc15 153.0.0.32 member24-fpc16 153.0.0.33 member24-fpc17 153.0.0.34 member24-fpc18 153.0.0.35 member24-fpc19 153.0.0.36 member24-fpc20 153.0.0.37 member24-fpc21 153.0.0.38 member24-fpc22 153.0.0.39 member24-fpc23 153.0.0.40 member24-fpc24 153.0.0.41 member24-fpc25 153.0.0.42 member24-fpc26 153.0.0.43 member24-fpc27 153.0.0.44 member24-fpc28 153.0.0.45 member24-fpc29 153.0.0.46 member24-fpc30 153.0.0.47 member24-fpc31 #LCC 25 (or MEMBER 25 on Virtual Chassis) 154.0.0.1 lcc25-master member25-master 154.0.0.4 lcc25-re0 member25-re0 154.0.0.5 lcc25-re1 member25-re1 154.0.0.6 lcc25-backup member25-backup 154.0.0.16 member25-fpc0 154.0.0.17 member25-fpc1 154.0.0.18 member25-fpc2 154.0.0.19 member25-fpc3 154.0.0.20 member25-fpc4 154.0.0.21 member25-fpc5 154.0.0.22 member25-fpc6 154.0.0.23 member25-fpc7 154.0.0.24 member25-fpc8 154.0.0.25 member25-fpc9 154.0.0.26 member25-fpc10 154.0.0.27 member25-fpc11 154.0.0.28 member25-fpc12 154.0.0.29 member25-fpc13 154.0.0.30 member25-fpc14 154.0.0.31 member25-fpc15 154.0.0.32 member25-fpc16 154.0.0.33 member25-fpc17 154.0.0.34 member25-fpc18 154.0.0.35 member25-fpc19 154.0.0.36 member25-fpc20 154.0.0.37 member25-fpc21 154.0.0.38 member25-fpc22 154.0.0.39 member25-fpc23 154.0.0.40 member25-fpc24 154.0.0.41 member25-fpc25 154.0.0.42 member25-fpc26 154.0.0.43 member25-fpc27 154.0.0.44 member25-fpc28 154.0.0.45 member25-fpc29 154.0.0.46 member25-fpc30 154.0.0.47 member25-fpc31 #LCC 26 (or MEMBER 26 on Virtual Chassis) 155.0.0.1 lcc26-master member26-master 155.0.0.4 lcc26-re0 member26-re0 155.0.0.5 lcc26-re1 member26-re1 155.0.0.6 lcc26-backup member26-backup 155.0.0.16 member26-fpc0 155.0.0.17 member26-fpc1 155.0.0.18 member26-fpc2 155.0.0.19 member26-fpc3 155.0.0.20 member26-fpc4 155.0.0.21 member26-fpc5 155.0.0.22 member26-fpc6 155.0.0.23 member26-fpc7 155.0.0.24 member26-fpc8 155.0.0.25 member26-fpc9 155.0.0.26 member26-fpc10 155.0.0.27 member26-fpc11 155.0.0.28 member26-fpc12 155.0.0.29 member26-fpc13 155.0.0.30 member26-fpc14 155.0.0.31 member26-fpc15 155.0.0.32 member26-fpc16 155.0.0.33 member26-fpc17 155.0.0.34 member26-fpc18 155.0.0.35 member26-fpc19 155.0.0.36 member26-fpc20 155.0.0.37 member26-fpc21 155.0.0.38 member26-fpc22 155.0.0.39 member26-fpc23 155.0.0.40 member26-fpc24 155.0.0.41 member26-fpc25 155.0.0.42 member26-fpc26 155.0.0.43 member26-fpc27 155.0.0.44 member26-fpc28 155.0.0.45 member26-fpc29 155.0.0.46 member26-fpc30 155.0.0.47 member26-fpc31 #LCC 27 (or MEMBER 27 on Virtual Chassis) 156.0.0.1 lcc27-master member27-master 156.0.0.4 lcc27-re0 member27-re0 156.0.0.5 lcc27-re1 member27-re1 156.0.0.6 lcc27-backup member27-backup 156.0.0.16 member27-fpc0 156.0.0.17 member27-fpc1 156.0.0.18 member27-fpc2 156.0.0.19 member27-fpc3 156.0.0.20 member27-fpc4 156.0.0.21 member27-fpc5 156.0.0.22 member27-fpc6 156.0.0.23 member27-fpc7 156.0.0.24 member27-fpc8 156.0.0.25 member27-fpc9 156.0.0.26 member27-fpc10 156.0.0.27 member27-fpc11 156.0.0.28 member27-fpc12 156.0.0.29 member27-fpc13 156.0.0.30 member27-fpc14 156.0.0.31 member27-fpc15 156.0.0.32 member27-fpc16 156.0.0.33 member27-fpc17 156.0.0.34 member27-fpc18 156.0.0.35 member27-fpc19 156.0.0.36 member27-fpc20 156.0.0.37 member27-fpc21 156.0.0.38 member27-fpc22 156.0.0.39 member27-fpc23 156.0.0.40 member27-fpc24 156.0.0.41 member27-fpc25 156.0.0.42 member27-fpc26 156.0.0.43 member27-fpc27 156.0.0.44 member27-fpc28 156.0.0.45 member27-fpc29 156.0.0.46 member27-fpc30 156.0.0.47 member27-fpc31 #LCC 28 (or MEMBER 28 on Virtual Chassis) 157.0.0.1 lcc28-master member28-master 157.0.0.4 lcc28-re0 member28-re0 157.0.0.5 lcc28-re1 member28-re1 157.0.0.6 lcc28-backup member28-backup 157.0.0.16 member28-fpc0 157.0.0.17 member28-fpc1 157.0.0.18 member28-fpc2 157.0.0.19 member28-fpc3 157.0.0.20 member28-fpc4 157.0.0.21 member28-fpc5 157.0.0.22 member28-fpc6 157.0.0.23 member28-fpc7 157.0.0.24 member28-fpc8 157.0.0.25 member28-fpc9 157.0.0.26 member28-fpc10 157.0.0.27 member28-fpc11 157.0.0.28 member28-fpc12 157.0.0.29 member28-fpc13 157.0.0.30 member28-fpc14 157.0.0.31 member28-fpc15 157.0.0.32 member28-fpc16 157.0.0.33 member28-fpc17 157.0.0.34 member28-fpc18 157.0.0.35 member28-fpc19 157.0.0.36 member28-fpc20 157.0.0.37 member28-fpc21 157.0.0.38 member28-fpc22 157.0.0.39 member28-fpc23 157.0.0.40 member28-fpc24 157.0.0.41 member28-fpc25 157.0.0.42 member28-fpc26 157.0.0.43 member28-fpc27 157.0.0.44 member28-fpc28 157.0.0.45 member28-fpc29 157.0.0.46 member28-fpc30 157.0.0.47 member28-fpc31 #LCC 29 (or MEMBER 29 on Virtual Chassis) 158.0.0.1 lcc29-master member29-master 158.0.0.4 lcc29-re0 member29-re0 158.0.0.5 lcc29-re1 member29-re1 158.0.0.6 lcc29-backup member29-backup 158.0.0.16 member29-fpc0 158.0.0.17 member29-fpc1 158.0.0.18 member29-fpc2 158.0.0.19 member29-fpc3 158.0.0.20 member29-fpc4 158.0.0.21 member29-fpc5 158.0.0.22 member29-fpc6 158.0.0.23 member29-fpc7 158.0.0.24 member29-fpc8 158.0.0.25 member29-fpc9 158.0.0.26 member29-fpc10 158.0.0.27 member29-fpc11 158.0.0.28 member29-fpc12 158.0.0.29 member29-fpc13 158.0.0.30 member29-fpc14 158.0.0.31 member29-fpc15 158.0.0.32 member29-fpc16 158.0.0.33 member29-fpc17 158.0.0.34 member29-fpc18 158.0.0.35 member29-fpc19 158.0.0.36 member29-fpc20 158.0.0.37 member29-fpc21 158.0.0.38 member29-fpc22 158.0.0.39 member29-fpc23 158.0.0.40 member29-fpc24 158.0.0.41 member29-fpc25 158.0.0.42 member29-fpc26 158.0.0.43 member29-fpc27 158.0.0.44 member29-fpc28 158.0.0.45 member29-fpc29 158.0.0.46 member29-fpc30 158.0.0.47 member29-fpc31 #LCC 30 (or MEMBER 30 on Virtual Chassis) 159.0.0.1 lcc30-master member30-master 159.0.0.4 lcc30-re0 member30-re0 159.0.0.5 lcc30-re1 member30-re1 159.0.0.6 lcc30-backup member30-backup 159.0.0.16 member30-fpc0 159.0.0.17 member30-fpc1 159.0.0.18 member30-fpc2 159.0.0.19 member30-fpc3 159.0.0.20 member30-fpc4 159.0.0.21 member30-fpc5 159.0.0.22 member30-fpc6 159.0.0.23 member30-fpc7 159.0.0.24 member30-fpc8 159.0.0.25 member30-fpc9 159.0.0.26 member30-fpc10 159.0.0.27 member30-fpc11 159.0.0.28 member30-fpc12 159.0.0.29 member30-fpc13 159.0.0.30 member30-fpc14 159.0.0.31 member30-fpc15 159.0.0.32 member30-fpc16 159.0.0.33 member30-fpc17 159.0.0.34 member30-fpc18 159.0.0.35 member30-fpc19 159.0.0.36 member30-fpc20 159.0.0.37 member30-fpc21 159.0.0.38 member30-fpc22 159.0.0.39 member30-fpc23 159.0.0.40 member30-fpc24 159.0.0.41 member30-fpc25 159.0.0.42 member30-fpc26 159.0.0.43 member30-fpc27 159.0.0.44 member30-fpc28 159.0.0.45 member30-fpc29 159.0.0.46 member30-fpc30 159.0.0.47 member30-fpc31 #LCC 31 (or MEMBER 31 on Virtual Chassis) 160.0.0.1 lcc31-master member31-master 160.0.0.4 lcc31-re0 member31-re0 160.0.0.5 lcc31-re1 member31-re1 160.0.0.6 lcc31-backup member31-backup 160.0.0.16 member31-fpc0 160.0.0.17 member31-fpc1 160.0.0.18 member31-fpc2 160.0.0.19 member31-fpc3 160.0.0.20 member31-fpc4 160.0.0.21 member31-fpc5 160.0.0.22 member31-fpc6 160.0.0.23 member31-fpc7 160.0.0.24 member31-fpc8 160.0.0.25 member31-fpc9 160.0.0.26 member31-fpc10 160.0.0.27 member31-fpc11 160.0.0.28 member31-fpc12 160.0.0.29 member31-fpc13 160.0.0.30 member31-fpc14 160.0.0.31 member31-fpc15 160.0.0.32 member31-fpc16 160.0.0.33 member31-fpc17 160.0.0.34 member31-fpc18 160.0.0.35 member31-fpc19 160.0.0.36 member31-fpc20 160.0.0.37 member31-fpc21 160.0.0.38 member31-fpc22 160.0.0.39 member31-fpc23 160.0.0.40 member31-fpc24 160.0.0.41 member31-fpc25 160.0.0.42 member31-fpc26 160.0.0.43 member31-fpc27 160.0.0.44 member31-fpc28 160.0.0.45 member31-fpc29 160.0.0.46 member31-fpc30 160.0.0.47 member31-fpc31 #VIRT SC 161.0.0.1 sc-master 161.0.0.4 sc-re0 161.0.0.5 sc-re1 161.0.0.6 sc-backup #SFC 0 162.0.0.1 sfc0-master 162.0.0.4 sfc0-re0 162.0.0.5 sfc0-re1 162.0.0.6 sfc0-backup 162.0.0.48 sfc0-spmb0 162.0.0.49 sfc0-spmb1 #SFC 1 163.0.0.1 sfc1-master 163.0.0.4 sfc1-re0 163.0.0.5 sfc1-re1 163.0.0.6 sfc1-backup 163.0.0.48 sfc1-spmb0 163.0.0.49 sfc1-spmb1 #SFC 2 164.0.0.1 sfc2-master 164.0.0.4 sfc2-re0 164.0.0.5 sfc2-re1 164.0.0.6 sfc2-backup 164.0.0.48 sfc2-spmb0 164.0.0.49 sfc2-spmb1 #SFC 3 165.0.0.1 sfc3-master 165.0.0.4 sfc3-re0 165.0.0.5 sfc3-re1 165.0.0.6 sfc3-backup 165.0.0.48 sfc3-spmb0 165.0.0.49 sfc3-spmb1 #SFC 4 166.0.0.1 sfc4-master 166.0.0.4 sfc4-re0 166.0.0.5 sfc4-re1 166.0.0.6 sfc4-backup 166.0.0.48 sfc4-spmb0 166.0.0.49 sfc4-spmb1 #JCS 190.0.0.1 psd%d-master 190.0.0.4 psd%d-re0 190.0.0.5 psd%d-re1 190.0.0.6 psd%d-backup # Old IP address format (RT_IRS_V2) # # Single Chassis Hostnames # 10.0.0.1 master 10.0.0.4 re0 10.0.0.5 re1 10.0.0.16 fpc0 10.0.0.17 fpc1 10.0.0.18 fpc2 10.0.0.19 fpc3 10.0.0.20 fpc4 10.0.0.21 fpc5 10.0.0.22 fpc6 10.0.0.23 fpc7 10.0.0.24 fpc8 10.0.0.25 fpc9 10.0.0.26 fpc10 10.0.0.27 fpc11 10.0.0.28 fpc12 10.0.0.29 fpc13 10.0.0.30 fpc14 10.0.0.31 fpc15 # # Multi Chassis Hostnames # #SCC 10.16.0.1 scc-master 10.16.0.4 scc-re0 10.16.0.5 scc-re1 #LCC 0 10.1.0.1 lcc0-master member0-master 10.1.0.4 lcc0-re0 member0-re0 10.1.0.5 lcc0-re1 member0-re1 10.1.0.6 lcc0-backup member0-backup #LCC 1 10.2.0.1 lcc1-master member1-master 10.2.0.4 lcc1-re0 member1-re0 10.2.0.5 lcc1-re1 member1-re1 10.2.0.6 lcc1-backup member1-backup #LCC 2 10.3.0.1 lcc2-master member2-master 10.3.0.4 lcc2-re0 member2-re0 10.3.0.5 lcc2-re1 member2-re1 10.3.0.6 lcc2-backup member2-backup #LCC 3 10.4.0.1 lcc3-master member3-master 10.4.0.4 lcc3-re0 member3-re0 10.4.0.5 lcc3-re1 member3-re1 10.4.0.6 lcc3-backup member3-backup #LCC 4 10.5.0.1 lcc4-master member4-master 10.5.0.4 lcc4-re0 member4-re0 10.5.0.5 lcc4-re1 member4-re1 10.5.0.6 lcc4-backup member4-backup #LCC 5 10.6.0.1 lcc5-master member5-master 10.6.0.4 lcc5-re0 member5-re0 10.6.0.5 lcc5-re1 member5-re1 10.6.0.6 lcc5-backup member5-backup #LCC 6 10.7.0.1 lcc6-master member6-master 10.7.0.4 lcc6-re0 member6-re0 10.7.0.5 lcc6-re1 member6-re1 10.7.0.6 lcc6-backup member6-backup #LCC 7 10.8.0.1 lcc7-master member7-master 10.8.0.4 lcc7-re0 member7-re0 10.8.0.5 lcc7-re1 member7-re1 10.8.0.6 lcc7-backup member7-backup #LCC 8 10.9.0.1 lcc8-master member8-master 10.9.0.4 lcc8-re0 member8-re0 10.9.0.5 lcc8-re1 member8-re1 10.9.0.6 lcc8-backup member8-backup #LCC 9 10.10.0.1 lcc9-master member9-master 10.10.0.4 lcc9-re0 member9-re0 10.10.0.5 lcc9-re1 member9-re1 10.10.0.6 lcc9-backup member9-backup #LCC 10 10.11.0.1 lcc10-master member10-master 10.11.0.4 lcc10-re0 member10-re0 10.11.0.5 lcc10-re1 member10-re1 10.11.0.6 lcc10-backup member10-backup #LCC 11 10.12.0.1 lcc11-master member11-master 10.12.0.4 lcc11-re0 member11-re0 10.12.0.5 lcc11-re1 member11-re1 10.12.0.6 lcc11-backup member11-backup #LCC 12 10.13.0.1 lcc12-master member12-master 10.13.0.4 lcc12-re0 member12-re0 10.13.0.5 lcc12-re1 member12-re1 10.13.0.6 lcc12-backup member12-backup #LCC 13 10.14.0.1 lcc13-master member13-master 10.14.0.4 lcc13-re0 member13-re0 10.14.0.5 lcc13-re1 member13-re1 10.14.0.6 lcc13-backup member13-backup #LCC 14 10.15.0.1 lcc14-master member14-master 10.15.0.4 lcc14-re0 member14-re0 10.15.0.5 lcc14-re1 member14-re1 10.15.0.6 lcc14-backup member14-backup #LCC 15 10.16.0.1 lcc15-master member15-master 10.16.0.4 lcc15-re0 member15-re0 10.16.0.5 lcc15-re1 member15-re1 10.16.0.6 lcc15-backup member15-backup #SFC 0 10.34.0.1 sfc0-master 10.34.0.4 sfc0-re0 10.34.0.5 sfc0-re1 #SFC 1 10.35.0.1 sfc1-master 10.35.0.4 sfc1-re0 10.35.0.5 sfc1-re1 #SFC 2 10.36.0.1 sfc2-master 10.36.0.4 sfc2-re0 10.36.0.5 sfc2-re1 #SFC 3 10.37.0.1 sfc3-master 10.37.0.4 sfc3-re0 10.37.0.5 sfc3-re1 #SFC 4 10.38.0.1 sfc4-master 10.38.0.4 sfc4-re0 10.38.0.5 sfc4-re1 # End of internal names {primary:node0} current_re_srx_index_err_get-interface-information.xml000066400000000000000000000262211475361112400342770ustar00rootroot00000000000000py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply avs1.0 up up inet 254.0.0.254 0/0 inet6 fe80::199 em0.0 up up inet 130.240.0/2 tnp 0x2f00004 em1.0 up up inet 130.240.0/2 tnp 0x2f00004 fab0.0 up up inet 30.241.0.200/24 fab1.0 up up inet 30.242.0.200/24 lo0.16385 up up inet {secondary:node1} py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/current_re_srx_primary_file-show.xml000066400000000000000000002043121475361112400307160ustar00rootroot00000000000000 #$Id: hosts.junos,v 1.7.72.1 2009-04-16 05:22:03 kdickman Exp $ # # File mapping AF_INET/AF_INET6 hostnames for REs on Single and Multichassis # systems # # This file is looked at before /etc/hosts by gethostbyname(3), # gethostbyname2(3) and getaddrinfo(3) # # The IP addresses in this file are only used for communication between REs # over the Internal Routing Instances # # WARNING: # # The names in this file are effectively reserved for internal use. # # New IP address format (RT_IRS_V3) # # Single Chassis Hostnames # 128.0.0.1 master 128.0.0.1 node 128.0.0.1 fwdd 128.0.0.1 member 128.0.0.1 pfem 128.0.0.2 scb 128.0.0.2 sbr 128.0.0.2 ssb 128.0.0.2 feb 128.0.0.2 cfeb0 128.0.0.2 cfeb 128.0.0.2 cpp0 128.0.0.3 cfeb1 128.0.0.3 cpp1 128.0.0.4 re0 128.0.0.5 re1 128.0.0.6 backup 128.0.0.8 sfm0 128.0.0.9 sfm1 128.0.0.10 sfm2 128.0.0.16 fpc0 128.0.0.17 fpc1 128.0.0.18 fpc2 128.0.0.19 fpc3 128.0.0.20 fpc4 128.0.0.21 fpc5 128.0.0.22 fpc6 128.0.0.23 fpc7 128.0.0.24 fpc8 128.0.0.25 fpc9 128.0.0.26 fpc10 128.0.0.27 fpc11 128.0.0.28 fpc12 128.0.0.29 fpc13 128.0.0.30 fpc14 128.0.0.31 fpc15 128.0.0.32 feb0 128.0.0.32 fpc16 128.0.0.33 feb1 128.0.0.33 fpc17 128.0.0.34 feb2 128.0.0.34 fpc18 128.0.0.35 feb3 128.0.0.35 fpc19 128.0.0.36 fpc20 128.0.0.36 feb4 128.0.0.37 feb5 128.0.0.37 fpc21 128.0.0.38 fpc22 128.0.0.39 fpc23 128.0.0.40 fpc24 128.0.0.41 fpc25 128.0.0.42 fpc26 128.0.0.43 fpc27 128.0.0.44 fpc28 128.0.0.45 fpc29 128.0.0.46 fpc30 128.0.0.47 fpc31 128.0.0.48 spmb0 128.0.0.49 spmb1 128.0.0.50 tfeb0 128.0.0.50 afeb0 128.0.0.53 esc0 128.0.0.54 esc1 128.0.0.55 esc0-ipmi 128.0.0.56 esc1-ipmi 128.0.1.16 fpc0.pic0 128.0.1.17 fpc1.pic0 128.0.1.18 fpc2.pic0 128.0.1.19 fpc3.pic0 128.0.1.20 fpc4.pic0 128.0.1.21 fpc5.pic0 128.0.1.22 fpc6.pic0 128.0.1.23 fpc7.pic0 128.0.1.24 fpc8.pic0 128.0.1.25 fpc9.pic0 128.0.1.26 fpc10.pic0 128.0.1.27 fpc11.pic0 128.0.1.28 fpc12.pic0 128.0.1.29 fpc13.pic0 128.0.1.30 fpc14.pic0 128.0.1.31 fpc15.pic0 128.0.1.32 fpc16.pic0 128.0.1.33 fpc17.pic0 128.0.1.34 fpc18.pic0 128.0.1.35 fpc19.pic0 128.0.1.36 fpc20.pic0 128.0.1.37 fpc21.pic0 128.0.1.38 fpc22.pic0 128.0.1.39 fpc23.pic0 128.0.1.40 fpc24.pic0 128.0.1.41 fpc25.pic0 128.0.1.42 fpc26.pic0 128.0.1.43 fpc27.pic0 128.0.1.44 fpc28.pic0 128.0.1.45 fpc29.pic0 128.0.1.46 fpc30.pic0 128.0.1.47 fpc31.pic0 128.0.2.16 fpc0.pic1 128.0.2.17 fpc1.pic1 128.0.2.18 fpc2.pic1 128.0.2.19 fpc3.pic1 128.0.2.20 fpc4.pic1 128.0.2.21 fpc5.pic1 128.0.2.22 fpc6.pic1 128.0.2.23 fpc7.pic1 128.0.2.24 fpc8.pic1 128.0.2.25 fpc9.pic1 128.0.2.26 fpc10.pic1 128.0.2.27 fpc11.pic1 128.0.2.28 fpc12.pic1 128.0.2.29 fpc13.pic1 128.0.2.30 fpc14.pic1 128.0.2.31 fpc15.pic1 128.0.2.32 fpc16.pic1 128.0.2.33 fpc17.pic1 128.0.2.34 fpc18.pic1 128.0.2.35 fpc19.pic1 128.0.2.36 fpc20.pic1 128.0.2.37 fpc21.pic1 128.0.2.38 fpc22.pic1 128.0.2.39 fpc23.pic1 128.0.2.40 fpc24.pic1 128.0.2.41 fpc25.pic1 128.0.2.42 fpc26.pic1 128.0.2.43 fpc27.pic1 128.0.2.44 fpc28.pic1 128.0.2.45 fpc29.pic1 128.0.2.46 fpc30.pic1 128.0.2.47 fpc31.pic1 128.0.3.16 fpc0.pic2 128.0.3.17 fpc1.pic2 128.0.3.18 fpc2.pic2 128.0.3.19 fpc3.pic2 128.0.3.20 fpc4.pic2 128.0.3.21 fpc5.pic2 128.0.3.22 fpc6.pic2 128.0.3.23 fpc7.pic2 128.0.3.24 fpc8.pic2 128.0.3.25 fpc9.pic2 128.0.3.26 fpc10.pic2 128.0.3.27 fpc11.pic2 128.0.3.28 fpc12.pic2 128.0.3.29 fpc13.pic2 128.0.3.30 fpc14.pic2 128.0.3.31 fpc15.pic2 128.0.4.16 fpc0.pic3 128.0.4.17 fpc1.pic3 128.0.4.18 fpc2.pic3 128.0.4.19 fpc3.pic3 128.0.4.20 fpc4.pic3 128.0.4.21 fpc5.pic3 128.0.4.22 fpc6.pic3 128.0.4.23 fpc7.pic3 128.0.4.24 fpc8.pic3 128.0.4.25 fpc9.pic3 128.0.4.26 fpc10.pic3 128.0.4.27 fpc11.pic3 128.0.4.28 fpc12.pic3 128.0.4.29 fpc13.pic3 128.0.4.30 fpc14.pic3 128.0.4.31 fpc15.pic3 # # DCF-Root Hostname # 128.0.130.2 dcf-root # # Multi Chassis Hostnames # #SCC 144.0.0.1 scc-master 144.0.0.4 scc-re0 144.0.0.5 scc-re1 144.0.0.6 scc-backup 144.0.0.48 scc-spmb0 144.0.0.49 scc-spmb1 #LCC 0 (or MEMBER 0 on Virtual Chassis) 129.0.0.1 lcc0-master member0-master member0 129.0.0.4 lcc0-re0 member0-re0 129.0.0.5 lcc0-re1 member0-re1 129.0.0.6 lcc0-backup member0-backup 129.0.0.16 member0-fpc0 129.0.0.17 member0-fpc1 129.0.0.18 member0-fpc2 129.0.0.19 member0-fpc3 129.0.0.20 member0-fpc4 129.0.0.21 member0-fpc5 129.0.0.22 member0-fpc6 129.0.0.23 member0-fpc7 129.0.0.24 member0-fpc8 129.0.0.25 member0-fpc9 129.0.0.26 member0-fpc10 129.0.0.27 member0-fpc11 129.0.0.28 member0-fpc12 129.0.0.29 member0-fpc13 129.0.0.30 member0-fpc14 129.0.0.31 member0-fpc15 129.0.0.32 member0-fpc16 129.0.0.33 member0-fpc17 129.0.0.34 member0-fpc18 129.0.0.35 member0-fpc19 129.0.0.36 member0-fpc20 129.0.0.37 member0-fpc21 129.0.0.38 member0-fpc22 129.0.0.39 member0-fpc23 129.0.0.40 member0-fpc24 129.0.0.41 member0-fpc25 129.0.0.42 member0-fpc26 129.0.0.43 member0-fpc27 129.0.0.44 member0-fpc28 129.0.0.45 member0-fpc29 129.0.0.46 member0-fpc30 129.0.0.47 member0-fpc31 129.0.0.6 lcc0-backup 129.0.0.16 lcc0-fpc0 129.0.0.17 lcc0-fpc1 129.0.0.18 lcc0-fpc2 129.0.0.19 lcc0-fpc3 129.0.0.20 lcc0-fpc4 129.0.0.21 lcc0-fpc5 129.0.0.22 lcc0-fpc6 129.0.0.23 lcc0-fpc7 129.0.0.48 lcc0-spmb0 129.0.0.49 lcc0-spmb1 #LCC 1 (or MEMBER 1 on Virtual Chassis) 130.0.0.1 lcc1-master member1-master member1 130.0.0.4 lcc1-re0 member1-re0 130.0.0.5 lcc1-re1 member1-re1 130.0.0.6 lcc1-backup member1-backup 130.0.0.16 member1-fpc0 130.0.0.17 member1-fpc1 130.0.0.18 member1-fpc2 130.0.0.19 member1-fpc3 130.0.0.20 member1-fpc4 130.0.0.21 member1-fpc5 130.0.0.22 member1-fpc6 130.0.0.23 member1-fpc7 130.0.0.24 member1-fpc8 130.0.0.25 member1-fpc9 130.0.0.26 member1-fpc10 130.0.0.27 member1-fpc11 130.0.0.28 member1-fpc12 130.0.0.29 member1-fpc13 130.0.0.30 member1-fpc14 130.0.0.31 member1-fpc15 130.0.0.32 member1-fpc16 130.0.0.33 member1-fpc17 130.0.0.34 member1-fpc18 130.0.0.35 member1-fpc19 130.0.0.36 member1-fpc20 130.0.0.37 member1-fpc21 130.0.0.38 member1-fpc22 130.0.0.39 member1-fpc23 130.0.0.40 member1-fpc24 130.0.0.41 member1-fpc25 130.0.0.42 member1-fpc26 130.0.0.43 member1-fpc27 130.0.0.44 member1-fpc28 130.0.0.45 member1-fpc29 130.0.0.46 member1-fpc30 130.0.0.47 member1-fpc31 130.0.0.6 lcc1-backup 130.0.0.16 lcc1-fpc0 130.0.0.17 lcc1-fpc1 130.0.0.18 lcc1-fpc2 130.0.0.19 lcc1-fpc3 130.0.0.20 lcc1-fpc4 130.0.0.21 lcc1-fpc5 130.0.0.22 lcc1-fpc6 130.0.0.23 lcc1-fpc7 130.0.0.48 lcc1-spmb0 130.0.0.49 lcc1-spmb1 #LCC 2 (or MEMBER 2 on Virtual Chassis) 131.0.0.1 lcc2-master member2-master member2 131.0.0.4 lcc2-re0 member2-re0 131.0.0.5 lcc2-re1 member2-re1 131.0.0.6 lcc2-backup member2-backup 131.0.0.16 member2-fpc0 131.0.0.17 member2-fpc1 131.0.0.18 member2-fpc2 131.0.0.19 member2-fpc3 131.0.0.20 member2-fpc4 131.0.0.21 member2-fpc5 131.0.0.22 member2-fpc6 131.0.0.23 member2-fpc7 131.0.0.24 member2-fpc8 131.0.0.25 member2-fpc9 131.0.0.26 member2-fpc10 131.0.0.27 member2-fpc11 131.0.0.28 member2-fpc12 131.0.0.29 member2-fpc13 131.0.0.30 member2-fpc14 131.0.0.31 member2-fpc15 131.0.0.32 member2-fpc16 131.0.0.33 member2-fpc17 131.0.0.34 member2-fpc18 131.0.0.35 member2-fpc19 131.0.0.36 member2-fpc20 131.0.0.37 member2-fpc21 131.0.0.38 member2-fpc22 131.0.0.39 member2-fpc23 131.0.0.40 member2-fpc24 131.0.0.41 member2-fpc25 131.0.0.42 member2-fpc26 131.0.0.43 member2-fpc27 131.0.0.44 member2-fpc28 131.0.0.45 member2-fpc29 131.0.0.46 member2-fpc30 131.0.0.47 member2-fpc31 131.0.0.6 lcc2-backup 131.0.0.16 lcc2-fpc0 131.0.0.17 lcc2-fpc1 131.0.0.18 lcc2-fpc2 131.0.0.19 lcc2-fpc3 131.0.0.20 lcc2-fpc4 131.0.0.21 lcc2-fpc5 131.0.0.22 lcc2-fpc6 131.0.0.23 lcc2-fpc7 131.0.0.48 lcc2-spmb0 131.0.0.49 lcc20-spmb1 #LCC 3 (or MEMBER 3 on Virtual Chassis) 132.0.0.1 lcc3-master member3-master member3 132.0.0.4 lcc3-re0 member3-re0 132.0.0.5 lcc3-re1 member3-re1 132.0.0.6 lcc3-backup member3-backup 132.0.0.16 member3-fpc0 132.0.0.17 member3-fpc1 132.0.0.18 member3-fpc2 132.0.0.19 member3-fpc3 132.0.0.20 member3-fpc4 132.0.0.21 member3-fpc5 132.0.0.22 member3-fpc6 132.0.0.23 member3-fpc7 132.0.0.24 member3-fpc8 132.0.0.25 member3-fpc9 132.0.0.26 member3-fpc10 132.0.0.27 member3-fpc11 132.0.0.28 member3-fpc12 132.0.0.29 member3-fpc13 132.0.0.30 member3-fpc14 132.0.0.31 member3-fpc15 132.0.0.32 member3-fpc16 132.0.0.33 member3-fpc17 132.0.0.34 member3-fpc18 132.0.0.35 member3-fpc19 132.0.0.36 member3-fpc20 132.0.0.37 member3-fpc21 132.0.0.38 member3-fpc22 132.0.0.39 member3-fpc23 132.0.0.40 member3-fpc24 132.0.0.41 member3-fpc25 132.0.0.42 member3-fpc26 132.0.0.43 member3-fpc27 132.0.0.44 member3-fpc28 132.0.0.45 member3-fpc29 132.0.0.46 member3-fpc30 132.0.0.47 member3-fpc31 132.0.0.6 lcc3-backup 132.0.0.16 lcc3-fpc0 132.0.0.17 lcc3-fpc1 132.0.0.18 lcc3-fpc2 132.0.0.19 lcc3-fpc3 132.0.0.20 lcc3-fpc4 132.0.0.21 lcc3-fpc5 132.0.0.22 lcc3-fpc6 132.0.0.23 lcc3-fpc7 132.0.0.48 lcc3-spmb0 132.0.0.49 lcc3-spmb1 #LCC 4 (or MEMBER 4 on Virtual Chassis) 133.0.0.1 lcc4-master member4-master member4 133.0.0.4 lcc4-re0 member4-re0 133.0.0.5 lcc4-re1 member4-re1 133.0.0.6 lcc4-backup member4-backup 133.0.0.16 member4-fpc0 133.0.0.17 member4-fpc1 133.0.0.18 member4-fpc2 133.0.0.19 member4-fpc3 133.0.0.20 member4-fpc4 133.0.0.21 member4-fpc5 133.0.0.22 member4-fpc6 133.0.0.23 member4-fpc7 133.0.0.24 member4-fpc8 133.0.0.25 member4-fpc9 133.0.0.26 member4-fpc10 133.0.0.27 member4-fpc11 133.0.0.28 member4-fpc12 133.0.0.29 member4-fpc13 133.0.0.30 member4-fpc14 133.0.0.31 member4-fpc15 133.0.0.32 member4-fpc16 133.0.0.33 member4-fpc17 133.0.0.34 member4-fpc18 133.0.0.35 member4-fpc19 133.0.0.36 member4-fpc20 133.0.0.37 member4-fpc21 133.0.0.38 member4-fpc22 133.0.0.39 member4-fpc23 133.0.0.40 member4-fpc24 133.0.0.41 member4-fpc25 133.0.0.42 member4-fpc26 133.0.0.43 member4-fpc27 133.0.0.44 member4-fpc28 133.0.0.45 member4-fpc29 133.0.0.46 member4-fpc30 133.0.0.47 member4-fpc31 133.0.0.6 lcc4-backup 133.0.0.16 lcc4-fpc0 133.0.0.17 lcc4-fpc1 133.0.0.18 lcc4-fpc2 133.0.0.19 lcc4-fpc3 133.0.0.20 lcc4-fpc4 133.0.0.21 lcc4-fpc5 133.0.0.22 lcc4-fpc6 133.0.0.23 lcc4-fpc7 133.0.0.48 lcc4-spmb0 133.0.0.49 lcc4-spmb1 #LCC 5 (or MEMBER 5 on Virtual Chassis) 134.0.0.1 lcc5-master member5-master member5 134.0.0.4 lcc5-re0 member5-re0 134.0.0.5 lcc5-re1 member5-re1 134.0.0.6 lcc5-backup member5-backup 134.0.0.16 member5-fpc0 134.0.0.17 member5-fpc1 134.0.0.18 member5-fpc2 134.0.0.19 member5-fpc3 134.0.0.20 member5-fpc4 134.0.0.21 member5-fpc5 134.0.0.22 member5-fpc6 134.0.0.23 member5-fpc7 134.0.0.24 member5-fpc8 134.0.0.25 member5-fpc9 134.0.0.26 member5-fpc10 134.0.0.27 member5-fpc11 134.0.0.28 member5-fpc12 134.0.0.29 member5-fpc13 134.0.0.30 member5-fpc14 134.0.0.31 member5-fpc15 134.0.0.32 member5-fpc16 134.0.0.33 member5-fpc17 134.0.0.34 member5-fpc18 134.0.0.35 member5-fpc19 134.0.0.36 member5-fpc20 134.0.0.37 member5-fpc21 134.0.0.38 member5-fpc22 134.0.0.39 member5-fpc23 134.0.0.40 member5-fpc24 134.0.0.41 member5-fpc25 134.0.0.42 member5-fpc26 134.0.0.43 member5-fpc27 134.0.0.44 member5-fpc28 134.0.0.45 member5-fpc29 134.0.0.46 member5-fpc30 134.0.0.47 member5-fpc31 134.0.0.6 lcc5-backup 134.0.0.16 lcc5-fpc0 134.0.0.17 lcc5-fpc1 134.0.0.18 lcc5-fpc2 134.0.0.19 lcc5-fpc3 134.0.0.20 lcc5-fpc4 134.0.0.21 lcc5-fpc5 134.0.0.22 lcc5-fpc6 134.0.0.23 lcc5-fpc7 134.0.0.48 lcc5-spmb0 134.0.0.49 lcc5-spmb1 #LCC 6 (or MEMBER 6 on Virtual Chassis) 135.0.0.1 lcc6-master member6-master member6 135.0.0.4 lcc6-re0 member6-re0 135.0.0.5 lcc6-re1 member6-re1 135.0.0.6 lcc6-backup member6-backup 135.0.0.16 member6-fpc0 135.0.0.17 member6-fpc1 135.0.0.18 member6-fpc2 135.0.0.19 member6-fpc3 135.0.0.20 member6-fpc4 135.0.0.21 member6-fpc5 135.0.0.22 member6-fpc6 135.0.0.23 member6-fpc7 135.0.0.24 member6-fpc8 135.0.0.25 member6-fpc9 135.0.0.26 member6-fpc10 135.0.0.27 member6-fpc11 135.0.0.28 member6-fpc12 135.0.0.29 member6-fpc13 135.0.0.30 member6-fpc14 135.0.0.31 member6-fpc15 135.0.0.32 member6-fpc16 135.0.0.33 member6-fpc17 135.0.0.34 member6-fpc18 135.0.0.35 member6-fpc19 135.0.0.36 member6-fpc20 135.0.0.37 member6-fpc21 135.0.0.38 member6-fpc22 135.0.0.39 member6-fpc23 135.0.0.40 member6-fpc24 135.0.0.41 member6-fpc25 135.0.0.42 member6-fpc26 135.0.0.43 member6-fpc27 135.0.0.44 member6-fpc28 135.0.0.45 member6-fpc29 135.0.0.46 member6-fpc30 135.0.0.47 member6-fpc31 135.0.0.6 lcc6-backup 135.0.0.16 lcc6-fpc0 135.0.0.17 lcc6-fpc1 135.0.0.18 lcc6-fpc2 135.0.0.19 lcc6-fpc3 135.0.0.20 lcc6-fpc4 135.0.0.21 lcc6-fpc5 135.0.0.22 lcc6-fpc6 135.0.0.23 lcc6-fpc7 135.0.0.48 lcc6-spmb0 135.0.0.49 lcc6-spmb1 #LCC 7 (or MEMBER 7 on Virtual Chassis) 136.0.0.1 lcc7-master member7-master member7 136.0.0.4 lcc7-re0 member7-re0 136.0.0.5 lcc7-re1 member7-re1 136.0.0.6 lcc7-backup member7-backup 136.0.0.16 member7-fpc0 136.0.0.17 member7-fpc1 136.0.0.18 member7-fpc2 136.0.0.19 member7-fpc3 136.0.0.20 member7-fpc4 136.0.0.21 member7-fpc5 136.0.0.22 member7-fpc6 136.0.0.23 member7-fpc7 136.0.0.24 member7-fpc8 136.0.0.25 member7-fpc9 136.0.0.26 member7-fpc10 136.0.0.27 member7-fpc11 136.0.0.28 member7-fpc12 136.0.0.29 member7-fpc13 136.0.0.30 member7-fpc14 136.0.0.31 member7-fpc15 136.0.0.32 member7-fpc16 136.0.0.33 member7-fpc17 136.0.0.34 member7-fpc18 136.0.0.35 member7-fpc19 136.0.0.36 member7-fpc20 136.0.0.37 member7-fpc21 136.0.0.38 member7-fpc22 136.0.0.39 member7-fpc23 136.0.0.40 member7-fpc24 136.0.0.41 member7-fpc25 136.0.0.42 member7-fpc26 136.0.0.43 member7-fpc27 136.0.0.44 member7-fpc28 136.0.0.45 member7-fpc29 136.0.0.46 member7-fpc30 136.0.0.47 member7-fpc31 136.0.0.6 lcc7-backup 136.0.0.16 lcc7-fpc0 136.0.0.17 lcc7-fpc1 136.0.0.18 lcc7-fpc2 136.0.0.19 lcc7-fpc3 136.0.0.20 lcc7-fpc4 136.0.0.21 lcc7-fpc5 136.0.0.22 lcc7-fpc6 136.0.0.23 lcc7-fpc7 136.0.0.48 lcc7-spmb0 136.0.0.49 lcc7-spmb1 137.0.0.6 lcc8-backup 137.0.0.16 lcc8-fpc0 137.0.0.17 lcc8-fpc1 137.0.0.18 lcc8-fpc2 137.0.0.19 lcc8-fpc3 137.0.0.20 lcc8-fpc4 137.0.0.21 lcc8-fpc5 137.0.0.22 lcc8-fpc6 137.0.0.23 lcc8-fpc7 137.0.0.48 lcc8-spmb0 137.0.0.49 lcc8-spmb1 #LCC 8 (or MEMBER 8 on Virtual Chassis) 137.0.0.1 lcc8-master member8-master member8 137.0.0.4 lcc8-re0 member8-re0 137.0.0.5 lcc8-re1 member8-re1 137.0.0.6 lcc8-backup member8-backup 137.0.0.16 member8-fpc0 137.0.0.17 member8-fpc1 137.0.0.18 member8-fpc2 137.0.0.19 member8-fpc3 137.0.0.20 member8-fpc4 137.0.0.21 member8-fpc5 137.0.0.22 member8-fpc6 137.0.0.23 member8-fpc7 137.0.0.24 member8-fpc8 137.0.0.25 member8-fpc9 137.0.0.26 member8-fpc10 137.0.0.27 member8-fpc11 137.0.0.28 member8-fpc12 137.0.0.29 member8-fpc13 137.0.0.30 member8-fpc14 137.0.0.31 member8-fpc15 137.0.0.32 member8-fpc16 137.0.0.33 member8-fpc17 137.0.0.34 member8-fpc18 137.0.0.35 member8-fpc19 137.0.0.36 member8-fpc20 137.0.0.37 member8-fpc21 137.0.0.38 member8-fpc22 137.0.0.39 member8-fpc23 137.0.0.40 member8-fpc24 137.0.0.41 member8-fpc25 137.0.0.42 member8-fpc26 137.0.0.43 member8-fpc27 137.0.0.44 member8-fpc28 137.0.0.45 member8-fpc29 137.0.0.46 member8-fpc30 137.0.0.47 member8-fpc31 138.0.0.6 lcc9-backup 138.0.0.16 lcc9-fpc0 138.0.0.17 lcc9-fpc1 138.0.0.18 lcc9-fpc2 138.0.0.19 lcc9-fpc3 138.0.0.20 lcc9-fpc4 138.0.0.21 lcc9-fpc5 138.0.0.22 lcc9-fpc6 138.0.0.23 lcc9-fpc7 138.0.0.48 lcc9-spmb0 138.0.0.49 lcc9-spmb1 #LCC 9 (or MEMBER 9 on Virtual Chassis) 138.0.0.1 lcc9-master member9-master member9 138.0.0.4 lcc9-re0 member9-re0 138.0.0.5 lcc9-re1 member9-re1 138.0.0.6 lcc9-backup member9-backup 138.0.0.16 member9-fpc0 138.0.0.17 member9-fpc1 138.0.0.18 member9-fpc2 138.0.0.19 member9-fpc3 138.0.0.20 member9-fpc4 138.0.0.21 member9-fpc5 138.0.0.22 member9-fpc6 138.0.0.23 member9-fpc7 138.0.0.24 member9-fpc8 138.0.0.25 member9-fpc9 138.0.0.26 member9-fpc10 138.0.0.27 member9-fpc11 138.0.0.28 member9-fpc12 138.0.0.29 member9-fpc13 138.0.0.30 member9-fpc14 138.0.0.31 member9-fpc15 138.0.0.32 member9-fpc16 138.0.0.33 member9-fpc17 138.0.0.34 member9-fpc18 138.0.0.35 member9-fpc19 138.0.0.36 member9-fpc20 138.0.0.37 member9-fpc21 138.0.0.38 member9-fpc22 138.0.0.39 member9-fpc23 138.0.0.40 member9-fpc24 138.0.0.41 member9-fpc25 138.0.0.42 member9-fpc26 138.0.0.43 member9-fpc27 138.0.0.44 member9-fpc28 138.0.0.45 member9-fpc29 138.0.0.46 member9-fpc30 138.0.0.47 member9-fpc31 139.0.0.6 lcc10-backup 139.0.0.16 lcc10-fpc0 139.0.0.17 lcc10-fpc1 139.0.0.18 lcc10-fpc2 139.0.0.19 lcc10-fpc3 139.0.0.20 lcc10-fpc4 139.0.0.21 lcc10-fpc5 139.0.0.22 lcc10-fpc6 139.0.0.23 lcc10-fpc7 139.0.0.48 lcc10-spmb0 139.0.0.49 lcc10-spmb1 #LCC 10 (or MEMBER 10 on Virtual Chassis) 139.0.0.1 lcc10-master member10-master 139.0.0.4 lcc10-re0 member10-re0 139.0.0.5 lcc10-re1 member10-re1 139.0.0.6 lcc10-backup member10-backup 139.0.0.16 member10-fpc0 139.0.0.17 member10-fpc1 139.0.0.18 member10-fpc2 139.0.0.19 member10-fpc3 139.0.0.20 member10-fpc4 139.0.0.21 member10-fpc5 139.0.0.22 member10-fpc6 139.0.0.23 member10-fpc7 139.0.0.24 member10-fpc8 139.0.0.25 member10-fpc9 139.0.0.26 member10-fpc10 139.0.0.27 member10-fpc11 139.0.0.28 member10-fpc12 139.0.0.29 member10-fpc13 139.0.0.30 member10-fpc14 139.0.0.31 member10-fpc15 139.0.0.32 member10-fpc16 139.0.0.33 member10-fpc17 139.0.0.34 member10-fpc18 139.0.0.35 member10-fpc19 139.0.0.36 member10-fpc20 139.0.0.37 member10-fpc21 139.0.0.38 member10-fpc22 139.0.0.39 member10-fpc23 139.0.0.40 member10-fpc24 139.0.0.41 member10-fpc25 139.0.0.42 member10-fpc26 139.0.0.43 member10-fpc27 139.0.0.44 member10-fpc28 139.0.0.45 member10-fpc29 139.0.0.46 member10-fpc30 139.0.0.47 member10-fpc31 140.0.0.6 lcc11-backup 140.0.0.16 lcc11-fpc0 140.0.0.17 lcc11-fpc1 140.0.0.18 lcc11-fpc2 140.0.0.19 lcc11-fpc3 140.0.0.20 lcc11-fpc4 140.0.0.21 lcc11-fpc5 140.0.0.22 lcc11-fpc6 140.0.0.23 lcc11-fpc7 140.0.0.48 lcc11-spmb0 140.0.0.49 lcc11-spmb1 #LCC 11 (or MEMBER 11 on Virtual Chassis) 140.0.0.1 lcc11-master member11-master 140.0.0.4 lcc11-re0 member11-re0 140.0.0.5 lcc11-re1 member11-re1 140.0.0.6 lcc11-backup member11-backup 140.0.0.16 member11-fpc0 140.0.0.17 member11-fpc1 140.0.0.18 member11-fpc2 140.0.0.19 member11-fpc3 140.0.0.20 member11-fpc4 140.0.0.21 member11-fpc5 140.0.0.22 member11-fpc6 140.0.0.23 member11-fpc7 140.0.0.24 member11-fpc8 140.0.0.25 member11-fpc9 140.0.0.26 member11-fpc10 140.0.0.27 member11-fpc11 140.0.0.28 member11-fpc12 140.0.0.29 member11-fpc13 140.0.0.30 member11-fpc14 140.0.0.31 member11-fpc15 140.0.0.32 member11-fpc16 140.0.0.33 member11-fpc17 140.0.0.34 member11-fpc18 140.0.0.35 member11-fpc19 140.0.0.36 member11-fpc20 140.0.0.37 member11-fpc21 140.0.0.38 member11-fpc22 140.0.0.39 member11-fpc23 140.0.0.40 member11-fpc24 140.0.0.41 member11-fpc25 140.0.0.42 member11-fpc26 140.0.0.43 member11-fpc27 140.0.0.44 member11-fpc28 140.0.0.45 member11-fpc29 140.0.0.46 member11-fpc30 140.0.0.47 member11-fpc31 141.0.0.6 lcc12-backup 141.0.0.16 lcc12-fpc0 141.0.0.17 lcc12-fpc1 141.0.0.18 lcc12-fpc2 141.0.0.19 lcc12-fpc3 141.0.0.20 lcc12-fpc4 141.0.0.21 lcc12-fpc5 141.0.0.22 lcc12-fpc6 141.0.0.23 lcc12-fpc7 141.0.0.48 lcc12-spmb0 141.0.0.49 lcc12-spmb1 #LCC 12 (or MEMBER 12 on Virtual Chassis) 141.0.0.1 lcc12-master member12-master 141.0.0.4 lcc12-re0 member12-re0 141.0.0.5 lcc12-re1 member12-re1 141.0.0.6 lcc12-backup member12-backup 141.0.0.16 member12-fpc0 141.0.0.17 member12-fpc1 141.0.0.18 member12-fpc2 141.0.0.19 member12-fpc3 141.0.0.20 member12-fpc4 141.0.0.21 member12-fpc5 141.0.0.22 member12-fpc6 141.0.0.23 member12-fpc7 141.0.0.24 member12-fpc8 141.0.0.25 member12-fpc9 141.0.0.26 member12-fpc10 141.0.0.27 member12-fpc11 141.0.0.28 member12-fpc12 141.0.0.29 member12-fpc13 141.0.0.30 member12-fpc14 141.0.0.31 member12-fpc15 141.0.0.32 member12-fpc16 141.0.0.33 member12-fpc17 141.0.0.34 member12-fpc18 141.0.0.35 member12-fpc19 141.0.0.36 member12-fpc20 141.0.0.37 member12-fpc21 141.0.0.38 member12-fpc22 141.0.0.39 member12-fpc23 141.0.0.40 member12-fpc24 141.0.0.41 member12-fpc25 141.0.0.42 member12-fpc26 141.0.0.43 member12-fpc27 141.0.0.44 member12-fpc28 141.0.0.45 member12-fpc29 141.0.0.46 member12-fpc30 141.0.0.47 member12-fpc31 142.0.0.6 lcc13-backup 142.0.0.16 lcc13-fpc0 142.0.0.17 lcc13-fpc1 142.0.0.18 lcc13-fpc2 142.0.0.19 lcc13-fpc3 142.0.0.20 lcc13-fpc4 142.0.0.21 lcc13-fpc5 142.0.0.22 lcc13-fpc6 142.0.0.23 lcc13-fpc7 142.0.0.48 lcc13-spmb0 142.0.0.49 lcc13-spmb1 #LCC 13 (or MEMBER 13 on Virtual Chassis) 142.0.0.1 lcc13-master member13-master 142.0.0.4 lcc13-re0 member13-re0 142.0.0.5 lcc13-re1 member13-re1 142.0.0.6 lcc13-backup member13-backup 142.0.0.16 member13-fpc0 142.0.0.17 member13-fpc1 142.0.0.18 member13-fpc2 142.0.0.19 member13-fpc3 142.0.0.20 member13-fpc4 142.0.0.21 member13-fpc5 142.0.0.22 member13-fpc6 142.0.0.23 member13-fpc7 142.0.0.24 member13-fpc8 142.0.0.25 member13-fpc9 142.0.0.26 member13-fpc10 142.0.0.27 member13-fpc11 142.0.0.28 member13-fpc12 142.0.0.29 member13-fpc13 142.0.0.30 member13-fpc14 142.0.0.31 member13-fpc15 142.0.0.32 member13-fpc16 142.0.0.33 member13-fpc17 142.0.0.34 member13-fpc18 142.0.0.35 member13-fpc19 142.0.0.36 member13-fpc20 142.0.0.37 member13-fpc21 142.0.0.38 member13-fpc22 142.0.0.39 member13-fpc23 142.0.0.40 member13-fpc24 142.0.0.41 member13-fpc25 142.0.0.42 member13-fpc26 142.0.0.43 member13-fpc27 142.0.0.44 member13-fpc28 142.0.0.45 member13-fpc29 142.0.0.46 member13-fpc30 142.0.0.47 member13-fpc31 143.0.0.6 lcc14-backup 143.0.0.16 lcc14-fpc0 143.0.0.17 lcc14-fpc1 143.0.0.18 lcc14-fpc2 143.0.0.19 lcc14-fpc3 143.0.0.20 lcc14-fpc4 143.0.0.21 lcc14-fpc5 143.0.0.22 lcc14-fpc6 143.0.0.23 lcc14-fpc7 143.0.0.48 lcc14-spmb0 143.0.0.49 lcc14-spmb1 #LCC 14 (or MEMBER 14 on Virtual Chassis) 143.0.0.1 lcc14-master member14-master 143.0.0.4 lcc14-re0 member14-re0 143.0.0.5 lcc14-re1 member14-re1 143.0.0.6 lcc14-backup member14-backup 143.0.0.16 member14-fpc0 143.0.0.17 member14-fpc1 143.0.0.18 member14-fpc2 143.0.0.19 member14-fpc3 143.0.0.20 member14-fpc4 143.0.0.21 member14-fpc5 143.0.0.22 member14-fpc6 143.0.0.23 member14-fpc7 143.0.0.24 member14-fpc8 143.0.0.25 member14-fpc9 143.0.0.26 member14-fpc10 143.0.0.27 member14-fpc11 143.0.0.28 member14-fpc12 143.0.0.29 member14-fpc13 143.0.0.30 member14-fpc14 143.0.0.31 member14-fpc15 143.0.0.32 member14-fpc16 143.0.0.33 member14-fpc17 143.0.0.34 member14-fpc18 143.0.0.35 member14-fpc19 143.0.0.36 member14-fpc20 143.0.0.37 member14-fpc21 143.0.0.38 member14-fpc22 143.0.0.39 member14-fpc23 143.0.0.40 member14-fpc24 143.0.0.41 member14-fpc25 143.0.0.42 member14-fpc26 143.0.0.43 member14-fpc27 143.0.0.44 member14-fpc28 143.0.0.45 member14-fpc29 143.0.0.46 member14-fpc30 143.0.0.47 member14-fpc31 144.0.0.6 lcc15-backup 144.0.0.16 lcc15-fpc0 144.0.0.17 lcc15-fpc1 144.0.0.18 lcc15-fpc2 144.0.0.19 lcc15-fpc3 144.0.0.20 lcc15-fpc4 144.0.0.21 lcc15-fpc5 144.0.0.22 lcc15-fpc6 144.0.0.23 lcc15-fpc7 144.0.0.48 lcc15-spmb0 144.0.0.49 lcc15-spmb1 #LCC 15 (or MEMBER 15 on Virtual Chassis) 144.0.0.1 lcc15-master member15-master 144.0.0.4 lcc15-re0 member15-re0 144.0.0.5 lcc15-re1 member15-re1 144.0.0.6 lcc15-backup member15-backup 144.0.0.16 member15-fpc0 144.0.0.17 member15-fpc1 144.0.0.18 member15-fpc2 144.0.0.19 member15-fpc3 144.0.0.20 member15-fpc4 144.0.0.21 member15-fpc5 144.0.0.22 member15-fpc6 144.0.0.23 member15-fpc7 144.0.0.24 member15-fpc8 144.0.0.25 member15-fpc9 144.0.0.26 member15-fpc10 144.0.0.27 member15-fpc11 144.0.0.28 member15-fpc12 144.0.0.29 member15-fpc13 144.0.0.30 member15-fpc14 144.0.0.31 member15-fpc15 144.0.0.32 member15-fpc16 144.0.0.33 member15-fpc17 144.0.0.34 member15-fpc18 144.0.0.35 member15-fpc19 144.0.0.36 member15-fpc20 144.0.0.37 member15-fpc21 144.0.0.38 member15-fpc22 144.0.0.39 member15-fpc23 144.0.0.40 member15-fpc24 144.0.0.41 member15-fpc25 144.0.0.42 member15-fpc26 144.0.0.43 member15-fpc27 144.0.0.44 member15-fpc28 144.0.0.45 member15-fpc29 144.0.0.46 member15-fpc30 144.0.0.47 member15-fpc31 #LCC 16 (or MEMBER 16 on Virtual Chassis) 145.0.0.1 lcc16-master member16-master 145.0.0.4 lcc16-re0 member16-re0 145.0.0.5 lcc16-re1 member16-re1 145.0.0.6 lcc16-backup member16-backup 145.0.0.16 member16-fpc0 145.0.0.17 member16-fpc1 145.0.0.18 member16-fpc2 145.0.0.19 member16-fpc3 145.0.0.20 member16-fpc4 145.0.0.21 member16-fpc5 145.0.0.22 member16-fpc6 145.0.0.23 member16-fpc7 145.0.0.24 member16-fpc8 145.0.0.25 member16-fpc9 145.0.0.26 member16-fpc10 145.0.0.27 member16-fpc11 145.0.0.28 member16-fpc12 145.0.0.29 member16-fpc13 145.0.0.30 member16-fpc14 145.0.0.31 member16-fpc15 145.0.0.32 member16-fpc16 145.0.0.33 member16-fpc17 145.0.0.34 member16-fpc18 145.0.0.35 member16-fpc19 145.0.0.36 member16-fpc20 145.0.0.37 member16-fpc21 145.0.0.38 member16-fpc22 145.0.0.39 member16-fpc23 145.0.0.40 member16-fpc24 145.0.0.41 member16-fpc25 145.0.0.42 member16-fpc26 145.0.0.43 member16-fpc27 145.0.0.44 member16-fpc28 145.0.0.45 member16-fpc29 145.0.0.46 member16-fpc30 145.0.0.47 member16-fpc31 #LCC 17 (or MEMBER 17 on Virtual Chassis) 146.0.0.1 lcc17-master member17-master 146.0.0.4 lcc17-re0 member17-re0 146.0.0.5 lcc17-re1 member17-re1 146.0.0.6 lcc17-backup member17-backup 146.0.0.16 member17-fpc0 146.0.0.17 member17-fpc1 146.0.0.18 member17-fpc2 146.0.0.19 member17-fpc3 146.0.0.20 member17-fpc4 146.0.0.21 member17-fpc5 146.0.0.22 member17-fpc6 146.0.0.23 member17-fpc7 146.0.0.24 member17-fpc8 146.0.0.25 member17-fpc9 146.0.0.26 member17-fpc10 146.0.0.27 member17-fpc11 146.0.0.28 member17-fpc12 146.0.0.29 member17-fpc13 146.0.0.30 member17-fpc14 146.0.0.31 member17-fpc15 146.0.0.32 member17-fpc16 146.0.0.33 member17-fpc17 146.0.0.34 member17-fpc18 146.0.0.35 member17-fpc19 146.0.0.36 member17-fpc20 146.0.0.37 member17-fpc21 146.0.0.38 member17-fpc22 146.0.0.39 member17-fpc23 146.0.0.40 member17-fpc24 146.0.0.41 member17-fpc25 146.0.0.42 member17-fpc26 146.0.0.43 member17-fpc27 146.0.0.44 member17-fpc28 146.0.0.45 member17-fpc29 146.0.0.46 member17-fpc30 146.0.0.47 member17-fpc31 #LCC 18 (or MEMBER 18 on Virtual Chassis) 147.0.0.1 lcc18-master member18-master 147.0.0.4 lcc18-re0 member18-re0 147.0.0.5 lcc18-re1 member18-re1 147.0.0.6 lcc18-backup member18-backup 147.0.0.16 member18-fpc0 147.0.0.17 member18-fpc1 147.0.0.18 member18-fpc2 147.0.0.19 member18-fpc3 147.0.0.20 member18-fpc4 147.0.0.21 member18-fpc5 147.0.0.22 member18-fpc6 147.0.0.23 member18-fpc7 147.0.0.24 member18-fpc8 147.0.0.25 member18-fpc9 147.0.0.26 member18-fpc10 147.0.0.27 member18-fpc11 147.0.0.28 member18-fpc12 147.0.0.29 member18-fpc13 147.0.0.30 member18-fpc14 147.0.0.31 member18-fpc15 147.0.0.32 member18-fpc16 147.0.0.33 member18-fpc17 147.0.0.34 member18-fpc18 147.0.0.35 member18-fpc19 147.0.0.36 member18-fpc20 147.0.0.37 member18-fpc21 147.0.0.38 member18-fpc22 147.0.0.39 member18-fpc23 147.0.0.40 member18-fpc24 147.0.0.41 member18-fpc25 147.0.0.42 member18-fpc26 147.0.0.43 member18-fpc27 147.0.0.44 member18-fpc28 147.0.0.45 member18-fpc29 147.0.0.46 member18-fpc30 147.0.0.47 member18-fpc31 #LCC 19 (or MEMBER 19 on Virtual Chassis) 148.0.0.1 lcc19-master member19-master 148.0.0.4 lcc19-re0 member19-re0 148.0.0.5 lcc19-re1 member19-re1 148.0.0.6 lcc19-backup member19-backup 148.0.0.16 member19-fpc0 148.0.0.17 member19-fpc1 148.0.0.18 member19-fpc2 148.0.0.19 member19-fpc3 148.0.0.20 member19-fpc4 148.0.0.21 member19-fpc5 148.0.0.22 member19-fpc6 148.0.0.23 member19-fpc7 148.0.0.24 member19-fpc8 148.0.0.25 member19-fpc9 148.0.0.26 member19-fpc10 148.0.0.27 member19-fpc11 148.0.0.28 member19-fpc12 148.0.0.29 member19-fpc13 148.0.0.30 member19-fpc14 148.0.0.31 member19-fpc15 148.0.0.32 member19-fpc16 148.0.0.33 member19-fpc17 148.0.0.34 member19-fpc18 148.0.0.35 member19-fpc19 148.0.0.36 member19-fpc20 148.0.0.37 member19-fpc21 148.0.0.38 member19-fpc22 148.0.0.39 member19-fpc23 148.0.0.40 member19-fpc24 148.0.0.41 member19-fpc25 148.0.0.42 member19-fpc26 148.0.0.43 member19-fpc27 148.0.0.44 member19-fpc28 148.0.0.45 member19-fpc29 148.0.0.46 member19-fpc30 148.0.0.47 member19-fpc31 #LCC 20 (or MEMBER 20 on Virtual Chassis) 149.0.0.1 lcc20-master member20-master 149.0.0.4 lcc20-re0 member20-re0 149.0.0.5 lcc20-re1 member20-re1 149.0.0.6 lcc20-backup member20-backup 149.0.0.16 member20-fpc0 149.0.0.17 member20-fpc1 149.0.0.18 member20-fpc2 149.0.0.19 member20-fpc3 149.0.0.20 member20-fpc4 149.0.0.21 member20-fpc5 149.0.0.22 member20-fpc6 149.0.0.23 member20-fpc7 149.0.0.24 member20-fpc8 149.0.0.25 member20-fpc9 149.0.0.26 member20-fpc10 149.0.0.27 member20-fpc11 149.0.0.28 member20-fpc12 149.0.0.29 member20-fpc13 149.0.0.30 member20-fpc14 149.0.0.31 member20-fpc15 149.0.0.32 member20-fpc16 149.0.0.33 member20-fpc17 149.0.0.34 member20-fpc18 149.0.0.35 member20-fpc19 149.0.0.36 member20-fpc20 149.0.0.37 member20-fpc21 149.0.0.38 member20-fpc22 149.0.0.39 member20-fpc23 149.0.0.40 member20-fpc24 149.0.0.41 member20-fpc25 149.0.0.42 member20-fpc26 149.0.0.43 member20-fpc27 149.0.0.44 member20-fpc28 149.0.0.45 member20-fpc29 149.0.0.46 member20-fpc30 149.0.0.47 member20-fpc31 #LCC 21 (or MEMBER 21 on Virtual Chassis) 150.0.0.1 lcc21-master member21-master 150.0.0.4 lcc21-re0 member21-re0 150.0.0.5 lcc21-re1 member21-re1 150.0.0.6 lcc21-backup member21-backup 150.0.0.16 member21-fpc0 150.0.0.17 member21-fpc1 150.0.0.18 member21-fpc2 150.0.0.19 member21-fpc3 150.0.0.20 member21-fpc4 150.0.0.21 member21-fpc5 150.0.0.22 member21-fpc6 150.0.0.23 member21-fpc7 150.0.0.24 member21-fpc8 150.0.0.25 member21-fpc9 150.0.0.26 member21-fpc10 150.0.0.27 member21-fpc11 150.0.0.28 member21-fpc12 150.0.0.29 member21-fpc13 150.0.0.30 member21-fpc14 150.0.0.31 member21-fpc15 150.0.0.32 member21-fpc16 150.0.0.33 member21-fpc17 150.0.0.34 member21-fpc18 150.0.0.35 member21-fpc19 150.0.0.36 member21-fpc20 150.0.0.37 member21-fpc21 150.0.0.38 member21-fpc22 150.0.0.39 member21-fpc23 150.0.0.40 member21-fpc24 150.0.0.41 member21-fpc25 150.0.0.42 member21-fpc26 150.0.0.43 member21-fpc27 150.0.0.44 member21-fpc28 150.0.0.45 member21-fpc29 150.0.0.46 member21-fpc30 150.0.0.47 member21-fpc31 #LCC 22 (or MEMBER 22 on Virtual Chassis) 151.0.0.1 lcc22-master member22-master 151.0.0.4 lcc22-re0 member22-re0 151.0.0.5 lcc22-re1 member22-re1 151.0.0.6 lcc22-backup member22-backup 151.0.0.16 member22-fpc0 151.0.0.17 member22-fpc1 151.0.0.18 member22-fpc2 151.0.0.19 member22-fpc3 151.0.0.20 member22-fpc4 151.0.0.21 member22-fpc5 151.0.0.22 member22-fpc6 151.0.0.23 member22-fpc7 151.0.0.24 member22-fpc8 151.0.0.25 member22-fpc9 151.0.0.26 member22-fpc10 151.0.0.27 member22-fpc11 151.0.0.28 member22-fpc12 151.0.0.29 member22-fpc13 151.0.0.30 member22-fpc14 151.0.0.31 member22-fpc15 151.0.0.32 member22-fpc16 151.0.0.33 member22-fpc17 151.0.0.34 member22-fpc18 151.0.0.35 member22-fpc19 151.0.0.36 member22-fpc20 151.0.0.37 member22-fpc21 151.0.0.38 member22-fpc22 151.0.0.39 member22-fpc23 151.0.0.40 member22-fpc24 151.0.0.41 member22-fpc25 151.0.0.42 member22-fpc26 151.0.0.43 member22-fpc27 151.0.0.44 member22-fpc28 151.0.0.45 member22-fpc29 151.0.0.46 member22-fpc30 151.0.0.47 member22-fpc31 #LCC 23 (or MEMBER 23 on Virtual Chassis) 152.0.0.1 lcc23-master member23-master 152.0.0.4 lcc23-re0 member23-re0 152.0.0.5 lcc23-re1 member23-re1 152.0.0.6 lcc23-backup member23-backup 152.0.0.16 member23-fpc0 152.0.0.17 member23-fpc1 152.0.0.18 member23-fpc2 152.0.0.19 member23-fpc3 152.0.0.20 member23-fpc4 152.0.0.21 member23-fpc5 152.0.0.22 member23-fpc6 152.0.0.23 member23-fpc7 152.0.0.24 member23-fpc8 152.0.0.25 member23-fpc9 152.0.0.26 member23-fpc10 152.0.0.27 member23-fpc11 152.0.0.28 member23-fpc12 152.0.0.29 member23-fpc13 152.0.0.30 member23-fpc14 152.0.0.31 member23-fpc15 152.0.0.32 member23-fpc16 152.0.0.33 member23-fpc17 152.0.0.34 member23-fpc18 152.0.0.35 member23-fpc19 152.0.0.36 member23-fpc20 152.0.0.37 member23-fpc21 152.0.0.38 member23-fpc22 152.0.0.39 member23-fpc23 152.0.0.40 member23-fpc24 152.0.0.41 member23-fpc25 152.0.0.42 member23-fpc26 152.0.0.43 member23-fpc27 152.0.0.44 member23-fpc28 152.0.0.45 member23-fpc29 152.0.0.46 member23-fpc30 152.0.0.47 member23-fpc31 #LCC 24 (or MEMBER 24 on Virtual Chassis) 153.0.0.1 lcc24-master member24-master 153.0.0.4 lcc24-re0 member24-re0 153.0.0.5 lcc24-re1 member24-re1 153.0.0.6 lcc24-backup member24-backup 153.0.0.16 member24-fpc0 153.0.0.17 member24-fpc1 153.0.0.18 member24-fpc2 153.0.0.19 member24-fpc3 153.0.0.20 member24-fpc4 153.0.0.21 member24-fpc5 153.0.0.22 member24-fpc6 153.0.0.23 member24-fpc7 153.0.0.24 member24-fpc8 153.0.0.25 member24-fpc9 153.0.0.26 member24-fpc10 153.0.0.27 member24-fpc11 153.0.0.28 member24-fpc12 153.0.0.29 member24-fpc13 153.0.0.30 member24-fpc14 153.0.0.31 member24-fpc15 153.0.0.32 member24-fpc16 153.0.0.33 member24-fpc17 153.0.0.34 member24-fpc18 153.0.0.35 member24-fpc19 153.0.0.36 member24-fpc20 153.0.0.37 member24-fpc21 153.0.0.38 member24-fpc22 153.0.0.39 member24-fpc23 153.0.0.40 member24-fpc24 153.0.0.41 member24-fpc25 153.0.0.42 member24-fpc26 153.0.0.43 member24-fpc27 153.0.0.44 member24-fpc28 153.0.0.45 member24-fpc29 153.0.0.46 member24-fpc30 153.0.0.47 member24-fpc31 #LCC 25 (or MEMBER 25 on Virtual Chassis) 154.0.0.1 lcc25-master member25-master 154.0.0.4 lcc25-re0 member25-re0 154.0.0.5 lcc25-re1 member25-re1 154.0.0.6 lcc25-backup member25-backup 154.0.0.16 member25-fpc0 154.0.0.17 member25-fpc1 154.0.0.18 member25-fpc2 154.0.0.19 member25-fpc3 154.0.0.20 member25-fpc4 154.0.0.21 member25-fpc5 154.0.0.22 member25-fpc6 154.0.0.23 member25-fpc7 154.0.0.24 member25-fpc8 154.0.0.25 member25-fpc9 154.0.0.26 member25-fpc10 154.0.0.27 member25-fpc11 154.0.0.28 member25-fpc12 154.0.0.29 member25-fpc13 154.0.0.30 member25-fpc14 154.0.0.31 member25-fpc15 154.0.0.32 member25-fpc16 154.0.0.33 member25-fpc17 154.0.0.34 member25-fpc18 154.0.0.35 member25-fpc19 154.0.0.36 member25-fpc20 154.0.0.37 member25-fpc21 154.0.0.38 member25-fpc22 154.0.0.39 member25-fpc23 154.0.0.40 member25-fpc24 154.0.0.41 member25-fpc25 154.0.0.42 member25-fpc26 154.0.0.43 member25-fpc27 154.0.0.44 member25-fpc28 154.0.0.45 member25-fpc29 154.0.0.46 member25-fpc30 154.0.0.47 member25-fpc31 #LCC 26 (or MEMBER 26 on Virtual Chassis) 155.0.0.1 lcc26-master member26-master 155.0.0.4 lcc26-re0 member26-re0 155.0.0.5 lcc26-re1 member26-re1 155.0.0.6 lcc26-backup member26-backup 155.0.0.16 member26-fpc0 155.0.0.17 member26-fpc1 155.0.0.18 member26-fpc2 155.0.0.19 member26-fpc3 155.0.0.20 member26-fpc4 155.0.0.21 member26-fpc5 155.0.0.22 member26-fpc6 155.0.0.23 member26-fpc7 155.0.0.24 member26-fpc8 155.0.0.25 member26-fpc9 155.0.0.26 member26-fpc10 155.0.0.27 member26-fpc11 155.0.0.28 member26-fpc12 155.0.0.29 member26-fpc13 155.0.0.30 member26-fpc14 155.0.0.31 member26-fpc15 155.0.0.32 member26-fpc16 155.0.0.33 member26-fpc17 155.0.0.34 member26-fpc18 155.0.0.35 member26-fpc19 155.0.0.36 member26-fpc20 155.0.0.37 member26-fpc21 155.0.0.38 member26-fpc22 155.0.0.39 member26-fpc23 155.0.0.40 member26-fpc24 155.0.0.41 member26-fpc25 155.0.0.42 member26-fpc26 155.0.0.43 member26-fpc27 155.0.0.44 member26-fpc28 155.0.0.45 member26-fpc29 155.0.0.46 member26-fpc30 155.0.0.47 member26-fpc31 #LCC 27 (or MEMBER 27 on Virtual Chassis) 156.0.0.1 lcc27-master member27-master 156.0.0.4 lcc27-re0 member27-re0 156.0.0.5 lcc27-re1 member27-re1 156.0.0.6 lcc27-backup member27-backup 156.0.0.16 member27-fpc0 156.0.0.17 member27-fpc1 156.0.0.18 member27-fpc2 156.0.0.19 member27-fpc3 156.0.0.20 member27-fpc4 156.0.0.21 member27-fpc5 156.0.0.22 member27-fpc6 156.0.0.23 member27-fpc7 156.0.0.24 member27-fpc8 156.0.0.25 member27-fpc9 156.0.0.26 member27-fpc10 156.0.0.27 member27-fpc11 156.0.0.28 member27-fpc12 156.0.0.29 member27-fpc13 156.0.0.30 member27-fpc14 156.0.0.31 member27-fpc15 156.0.0.32 member27-fpc16 156.0.0.33 member27-fpc17 156.0.0.34 member27-fpc18 156.0.0.35 member27-fpc19 156.0.0.36 member27-fpc20 156.0.0.37 member27-fpc21 156.0.0.38 member27-fpc22 156.0.0.39 member27-fpc23 156.0.0.40 member27-fpc24 156.0.0.41 member27-fpc25 156.0.0.42 member27-fpc26 156.0.0.43 member27-fpc27 156.0.0.44 member27-fpc28 156.0.0.45 member27-fpc29 156.0.0.46 member27-fpc30 156.0.0.47 member27-fpc31 #LCC 28 (or MEMBER 28 on Virtual Chassis) 157.0.0.1 lcc28-master member28-master 157.0.0.4 lcc28-re0 member28-re0 157.0.0.5 lcc28-re1 member28-re1 157.0.0.6 lcc28-backup member28-backup 157.0.0.16 member28-fpc0 157.0.0.17 member28-fpc1 157.0.0.18 member28-fpc2 157.0.0.19 member28-fpc3 157.0.0.20 member28-fpc4 157.0.0.21 member28-fpc5 157.0.0.22 member28-fpc6 157.0.0.23 member28-fpc7 157.0.0.24 member28-fpc8 157.0.0.25 member28-fpc9 157.0.0.26 member28-fpc10 157.0.0.27 member28-fpc11 157.0.0.28 member28-fpc12 157.0.0.29 member28-fpc13 157.0.0.30 member28-fpc14 157.0.0.31 member28-fpc15 157.0.0.32 member28-fpc16 157.0.0.33 member28-fpc17 157.0.0.34 member28-fpc18 157.0.0.35 member28-fpc19 157.0.0.36 member28-fpc20 157.0.0.37 member28-fpc21 157.0.0.38 member28-fpc22 157.0.0.39 member28-fpc23 157.0.0.40 member28-fpc24 157.0.0.41 member28-fpc25 157.0.0.42 member28-fpc26 157.0.0.43 member28-fpc27 157.0.0.44 member28-fpc28 157.0.0.45 member28-fpc29 157.0.0.46 member28-fpc30 157.0.0.47 member28-fpc31 #LCC 29 (or MEMBER 29 on Virtual Chassis) 158.0.0.1 lcc29-master member29-master 158.0.0.4 lcc29-re0 member29-re0 158.0.0.5 lcc29-re1 member29-re1 158.0.0.6 lcc29-backup member29-backup 158.0.0.16 member29-fpc0 158.0.0.17 member29-fpc1 158.0.0.18 member29-fpc2 158.0.0.19 member29-fpc3 158.0.0.20 member29-fpc4 158.0.0.21 member29-fpc5 158.0.0.22 member29-fpc6 158.0.0.23 member29-fpc7 158.0.0.24 member29-fpc8 158.0.0.25 member29-fpc9 158.0.0.26 member29-fpc10 158.0.0.27 member29-fpc11 158.0.0.28 member29-fpc12 158.0.0.29 member29-fpc13 158.0.0.30 member29-fpc14 158.0.0.31 member29-fpc15 158.0.0.32 member29-fpc16 158.0.0.33 member29-fpc17 158.0.0.34 member29-fpc18 158.0.0.35 member29-fpc19 158.0.0.36 member29-fpc20 158.0.0.37 member29-fpc21 158.0.0.38 member29-fpc22 158.0.0.39 member29-fpc23 158.0.0.40 member29-fpc24 158.0.0.41 member29-fpc25 158.0.0.42 member29-fpc26 158.0.0.43 member29-fpc27 158.0.0.44 member29-fpc28 158.0.0.45 member29-fpc29 158.0.0.46 member29-fpc30 158.0.0.47 member29-fpc31 #LCC 30 (or MEMBER 30 on Virtual Chassis) 159.0.0.1 lcc30-master member30-master 159.0.0.4 lcc30-re0 member30-re0 159.0.0.5 lcc30-re1 member30-re1 159.0.0.6 lcc30-backup member30-backup 159.0.0.16 member30-fpc0 159.0.0.17 member30-fpc1 159.0.0.18 member30-fpc2 159.0.0.19 member30-fpc3 159.0.0.20 member30-fpc4 159.0.0.21 member30-fpc5 159.0.0.22 member30-fpc6 159.0.0.23 member30-fpc7 159.0.0.24 member30-fpc8 159.0.0.25 member30-fpc9 159.0.0.26 member30-fpc10 159.0.0.27 member30-fpc11 159.0.0.28 member30-fpc12 159.0.0.29 member30-fpc13 159.0.0.30 member30-fpc14 159.0.0.31 member30-fpc15 159.0.0.32 member30-fpc16 159.0.0.33 member30-fpc17 159.0.0.34 member30-fpc18 159.0.0.35 member30-fpc19 159.0.0.36 member30-fpc20 159.0.0.37 member30-fpc21 159.0.0.38 member30-fpc22 159.0.0.39 member30-fpc23 159.0.0.40 member30-fpc24 159.0.0.41 member30-fpc25 159.0.0.42 member30-fpc26 159.0.0.43 member30-fpc27 159.0.0.44 member30-fpc28 159.0.0.45 member30-fpc29 159.0.0.46 member30-fpc30 159.0.0.47 member30-fpc31 #LCC 31 (or MEMBER 31 on Virtual Chassis) 160.0.0.1 lcc31-master member31-master 160.0.0.4 lcc31-re0 member31-re0 160.0.0.5 lcc31-re1 member31-re1 160.0.0.6 lcc31-backup member31-backup 160.0.0.16 member31-fpc0 160.0.0.17 member31-fpc1 160.0.0.18 member31-fpc2 160.0.0.19 member31-fpc3 160.0.0.20 member31-fpc4 160.0.0.21 member31-fpc5 160.0.0.22 member31-fpc6 160.0.0.23 member31-fpc7 160.0.0.24 member31-fpc8 160.0.0.25 member31-fpc9 160.0.0.26 member31-fpc10 160.0.0.27 member31-fpc11 160.0.0.28 member31-fpc12 160.0.0.29 member31-fpc13 160.0.0.30 member31-fpc14 160.0.0.31 member31-fpc15 160.0.0.32 member31-fpc16 160.0.0.33 member31-fpc17 160.0.0.34 member31-fpc18 160.0.0.35 member31-fpc19 160.0.0.36 member31-fpc20 160.0.0.37 member31-fpc21 160.0.0.38 member31-fpc22 160.0.0.39 member31-fpc23 160.0.0.40 member31-fpc24 160.0.0.41 member31-fpc25 160.0.0.42 member31-fpc26 160.0.0.43 member31-fpc27 160.0.0.44 member31-fpc28 160.0.0.45 member31-fpc29 160.0.0.46 member31-fpc30 160.0.0.47 member31-fpc31 #VIRT SC 161.0.0.1 sc-master 161.0.0.4 sc-re0 161.0.0.5 sc-re1 161.0.0.6 sc-backup #SFC 0 162.0.0.1 sfc0-master 162.0.0.4 sfc0-re0 162.0.0.5 sfc0-re1 162.0.0.6 sfc0-backup 162.0.0.48 sfc0-spmb0 162.0.0.49 sfc0-spmb1 #SFC 1 163.0.0.1 sfc1-master 163.0.0.4 sfc1-re0 163.0.0.5 sfc1-re1 163.0.0.6 sfc1-backup 163.0.0.48 sfc1-spmb0 163.0.0.49 sfc1-spmb1 #SFC 2 164.0.0.1 sfc2-master 164.0.0.4 sfc2-re0 164.0.0.5 sfc2-re1 164.0.0.6 sfc2-backup 164.0.0.48 sfc2-spmb0 164.0.0.49 sfc2-spmb1 #SFC 3 165.0.0.1 sfc3-master 165.0.0.4 sfc3-re0 165.0.0.5 sfc3-re1 165.0.0.6 sfc3-backup 165.0.0.48 sfc3-spmb0 165.0.0.49 sfc3-spmb1 #SFC 4 166.0.0.1 sfc4-master 166.0.0.4 sfc4-re0 166.0.0.5 sfc4-re1 166.0.0.6 sfc4-backup 166.0.0.48 sfc4-spmb0 166.0.0.49 sfc4-spmb1 #JCS 190.0.0.1 psd%d-master 190.0.0.4 psd%d-re0 190.0.0.5 psd%d-re1 190.0.0.6 psd%d-backup # Old IP address format (RT_IRS_V2) # # Single Chassis Hostnames # 10.0.0.1 master 10.0.0.4 re0 10.0.0.5 re1 10.0.0.16 fpc0 10.0.0.17 fpc1 10.0.0.18 fpc2 10.0.0.19 fpc3 10.0.0.20 fpc4 10.0.0.21 fpc5 10.0.0.22 fpc6 10.0.0.23 fpc7 10.0.0.24 fpc8 10.0.0.25 fpc9 10.0.0.26 fpc10 10.0.0.27 fpc11 10.0.0.28 fpc12 10.0.0.29 fpc13 10.0.0.30 fpc14 10.0.0.31 fpc15 # # Multi Chassis Hostnames # #SCC 10.16.0.1 scc-master 10.16.0.4 scc-re0 10.16.0.5 scc-re1 #LCC 0 10.1.0.1 lcc0-master member0-master 10.1.0.4 lcc0-re0 member0-re0 10.1.0.5 lcc0-re1 member0-re1 10.1.0.6 lcc0-backup member0-backup #LCC 1 10.2.0.1 lcc1-master member1-master 10.2.0.4 lcc1-re0 member1-re0 10.2.0.5 lcc1-re1 member1-re1 10.2.0.6 lcc1-backup member1-backup #LCC 2 10.3.0.1 lcc2-master member2-master 10.3.0.4 lcc2-re0 member2-re0 10.3.0.5 lcc2-re1 member2-re1 10.3.0.6 lcc2-backup member2-backup #LCC 3 10.4.0.1 lcc3-master member3-master 10.4.0.4 lcc3-re0 member3-re0 10.4.0.5 lcc3-re1 member3-re1 10.4.0.6 lcc3-backup member3-backup #LCC 4 10.5.0.1 lcc4-master member4-master 10.5.0.4 lcc4-re0 member4-re0 10.5.0.5 lcc4-re1 member4-re1 10.5.0.6 lcc4-backup member4-backup #LCC 5 10.6.0.1 lcc5-master member5-master 10.6.0.4 lcc5-re0 member5-re0 10.6.0.5 lcc5-re1 member5-re1 10.6.0.6 lcc5-backup member5-backup #LCC 6 10.7.0.1 lcc6-master member6-master 10.7.0.4 lcc6-re0 member6-re0 10.7.0.5 lcc6-re1 member6-re1 10.7.0.6 lcc6-backup member6-backup #LCC 7 10.8.0.1 lcc7-master member7-master 10.8.0.4 lcc7-re0 member7-re0 10.8.0.5 lcc7-re1 member7-re1 10.8.0.6 lcc7-backup member7-backup #LCC 8 10.9.0.1 lcc8-master member8-master 10.9.0.4 lcc8-re0 member8-re0 10.9.0.5 lcc8-re1 member8-re1 10.9.0.6 lcc8-backup member8-backup #LCC 9 10.10.0.1 lcc9-master member9-master 10.10.0.4 lcc9-re0 member9-re0 10.10.0.5 lcc9-re1 member9-re1 10.10.0.6 lcc9-backup member9-backup #LCC 10 10.11.0.1 lcc10-master member10-master 10.11.0.4 lcc10-re0 member10-re0 10.11.0.5 lcc10-re1 member10-re1 10.11.0.6 lcc10-backup member10-backup #LCC 11 10.12.0.1 lcc11-master member11-master 10.12.0.4 lcc11-re0 member11-re0 10.12.0.5 lcc11-re1 member11-re1 10.12.0.6 lcc11-backup member11-backup #LCC 12 10.13.0.1 lcc12-master member12-master 10.13.0.4 lcc12-re0 member12-re0 10.13.0.5 lcc12-re1 member12-re1 10.13.0.6 lcc12-backup member12-backup #LCC 13 10.14.0.1 lcc13-master member13-master 10.14.0.4 lcc13-re0 member13-re0 10.14.0.5 lcc13-re1 member13-re1 10.14.0.6 lcc13-backup member13-backup #LCC 14 10.15.0.1 lcc14-master member14-master 10.15.0.4 lcc14-re0 member14-re0 10.15.0.5 lcc14-re1 member14-re1 10.15.0.6 lcc14-backup member14-backup #LCC 15 10.16.0.1 lcc15-master member15-master 10.16.0.4 lcc15-re0 member15-re0 10.16.0.5 lcc15-re1 member15-re1 10.16.0.6 lcc15-backup member15-backup #SFC 0 10.34.0.1 sfc0-master 10.34.0.4 sfc0-re0 10.34.0.5 sfc0-re1 #SFC 1 10.35.0.1 sfc1-master 10.35.0.4 sfc1-re0 10.35.0.5 sfc1-re1 #SFC 2 10.36.0.1 sfc2-master 10.36.0.4 sfc2-re0 10.36.0.5 sfc2-re1 #SFC 3 10.37.0.1 sfc3-master 10.37.0.4 sfc3-re0 10.37.0.5 sfc3-re1 #SFC 4 10.38.0.1 sfc4-master 10.38.0.4 sfc4-re0 10.38.0.5 sfc4-re1 # End of internal names {primary:node0} py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/current_re_srx_primary_get-interface-information.xml000066400000000000000000000271621475361112400340670ustar00rootroot00000000000000 avs1.0 up up inet 254.0.0.254 0/0 inet6 fe80::199 em0.0 up up inet 129.240.0.1/2 143.240.0.1/2 tnp 0x1f00004 em1.0 up up inet 129.240.0.1/2 129.16.0.1/2 143.240.0.1/2 tnp 0x1f00004 fab0.0 up up inet 30.241.0.200/24 fab1.0 up up inet 30.242.0.200/24 lo0.16385 up up inet {primary:node0} py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/current_re_srx_secondary_file-show.xml000066400000000000000000002043121475361112400312220ustar00rootroot00000000000000 #$Id: hosts.junos,v 1.7.72.1 2009-04-16 05:22:03 kdickman Exp $ # # File mapping AF_INET/AF_INET6 hostnames for REs on Single and Multichassis # systems # # This file is looked at before /etc/hosts by gethostbyname(3), # gethostbyname2(3) and getaddrinfo(3) # # The IP addresses in this file are only used for communication between REs # over the Internal Routing Instances # # WARNING: # # The names in this file are effectively reserved for internal use. # # New IP address format (RT_IRS_V3) # # Single Chassis Hostnames # 128.0.0.1 master 128.0.0.1 node 128.0.0.1 fwdd 128.0.0.1 member 128.0.0.1 pfem 128.0.0.2 scb 128.0.0.2 sbr 128.0.0.2 ssb 128.0.0.2 feb 128.0.0.2 cfeb0 128.0.0.2 cfeb 128.0.0.2 cpp0 128.0.0.3 cfeb1 128.0.0.3 cpp1 128.0.0.4 re0 128.0.0.5 re1 128.0.0.6 backup 128.0.0.8 sfm0 128.0.0.9 sfm1 128.0.0.10 sfm2 128.0.0.16 fpc0 128.0.0.17 fpc1 128.0.0.18 fpc2 128.0.0.19 fpc3 128.0.0.20 fpc4 128.0.0.21 fpc5 128.0.0.22 fpc6 128.0.0.23 fpc7 128.0.0.24 fpc8 128.0.0.25 fpc9 128.0.0.26 fpc10 128.0.0.27 fpc11 128.0.0.28 fpc12 128.0.0.29 fpc13 128.0.0.30 fpc14 128.0.0.31 fpc15 128.0.0.32 feb0 128.0.0.32 fpc16 128.0.0.33 feb1 128.0.0.33 fpc17 128.0.0.34 feb2 128.0.0.34 fpc18 128.0.0.35 feb3 128.0.0.35 fpc19 128.0.0.36 fpc20 128.0.0.36 feb4 128.0.0.37 feb5 128.0.0.37 fpc21 128.0.0.38 fpc22 128.0.0.39 fpc23 128.0.0.40 fpc24 128.0.0.41 fpc25 128.0.0.42 fpc26 128.0.0.43 fpc27 128.0.0.44 fpc28 128.0.0.45 fpc29 128.0.0.46 fpc30 128.0.0.47 fpc31 128.0.0.48 spmb0 128.0.0.49 spmb1 128.0.0.50 tfeb0 128.0.0.50 afeb0 128.0.0.53 esc0 128.0.0.54 esc1 128.0.0.55 esc0-ipmi 128.0.0.56 esc1-ipmi 128.0.1.16 fpc0.pic0 128.0.1.17 fpc1.pic0 128.0.1.18 fpc2.pic0 128.0.1.19 fpc3.pic0 128.0.1.20 fpc4.pic0 128.0.1.21 fpc5.pic0 128.0.1.22 fpc6.pic0 128.0.1.23 fpc7.pic0 128.0.1.24 fpc8.pic0 128.0.1.25 fpc9.pic0 128.0.1.26 fpc10.pic0 128.0.1.27 fpc11.pic0 128.0.1.28 fpc12.pic0 128.0.1.29 fpc13.pic0 128.0.1.30 fpc14.pic0 128.0.1.31 fpc15.pic0 128.0.1.32 fpc16.pic0 128.0.1.33 fpc17.pic0 128.0.1.34 fpc18.pic0 128.0.1.35 fpc19.pic0 128.0.1.36 fpc20.pic0 128.0.1.37 fpc21.pic0 128.0.1.38 fpc22.pic0 128.0.1.39 fpc23.pic0 128.0.1.40 fpc24.pic0 128.0.1.41 fpc25.pic0 128.0.1.42 fpc26.pic0 128.0.1.43 fpc27.pic0 128.0.1.44 fpc28.pic0 128.0.1.45 fpc29.pic0 128.0.1.46 fpc30.pic0 128.0.1.47 fpc31.pic0 128.0.2.16 fpc0.pic1 128.0.2.17 fpc1.pic1 128.0.2.18 fpc2.pic1 128.0.2.19 fpc3.pic1 128.0.2.20 fpc4.pic1 128.0.2.21 fpc5.pic1 128.0.2.22 fpc6.pic1 128.0.2.23 fpc7.pic1 128.0.2.24 fpc8.pic1 128.0.2.25 fpc9.pic1 128.0.2.26 fpc10.pic1 128.0.2.27 fpc11.pic1 128.0.2.28 fpc12.pic1 128.0.2.29 fpc13.pic1 128.0.2.30 fpc14.pic1 128.0.2.31 fpc15.pic1 128.0.2.32 fpc16.pic1 128.0.2.33 fpc17.pic1 128.0.2.34 fpc18.pic1 128.0.2.35 fpc19.pic1 128.0.2.36 fpc20.pic1 128.0.2.37 fpc21.pic1 128.0.2.38 fpc22.pic1 128.0.2.39 fpc23.pic1 128.0.2.40 fpc24.pic1 128.0.2.41 fpc25.pic1 128.0.2.42 fpc26.pic1 128.0.2.43 fpc27.pic1 128.0.2.44 fpc28.pic1 128.0.2.45 fpc29.pic1 128.0.2.46 fpc30.pic1 128.0.2.47 fpc31.pic1 128.0.3.16 fpc0.pic2 128.0.3.17 fpc1.pic2 128.0.3.18 fpc2.pic2 128.0.3.19 fpc3.pic2 128.0.3.20 fpc4.pic2 128.0.3.21 fpc5.pic2 128.0.3.22 fpc6.pic2 128.0.3.23 fpc7.pic2 128.0.3.24 fpc8.pic2 128.0.3.25 fpc9.pic2 128.0.3.26 fpc10.pic2 128.0.3.27 fpc11.pic2 128.0.3.28 fpc12.pic2 128.0.3.29 fpc13.pic2 128.0.3.30 fpc14.pic2 128.0.3.31 fpc15.pic2 128.0.4.16 fpc0.pic3 128.0.4.17 fpc1.pic3 128.0.4.18 fpc2.pic3 128.0.4.19 fpc3.pic3 128.0.4.20 fpc4.pic3 128.0.4.21 fpc5.pic3 128.0.4.22 fpc6.pic3 128.0.4.23 fpc7.pic3 128.0.4.24 fpc8.pic3 128.0.4.25 fpc9.pic3 128.0.4.26 fpc10.pic3 128.0.4.27 fpc11.pic3 128.0.4.28 fpc12.pic3 128.0.4.29 fpc13.pic3 128.0.4.30 fpc14.pic3 128.0.4.31 fpc15.pic3 # # DCF-Root Hostname # 128.0.130.2 dcf-root # # Multi Chassis Hostnames # #SCC 144.0.0.1 scc-master 144.0.0.4 scc-re0 144.0.0.5 scc-re1 144.0.0.6 scc-backup 144.0.0.48 scc-spmb0 144.0.0.49 scc-spmb1 #LCC 0 (or MEMBER 0 on Virtual Chassis) 129.0.0.1 lcc0-master member0-master member0 129.0.0.4 lcc0-re0 member0-re0 129.0.0.5 lcc0-re1 member0-re1 129.0.0.6 lcc0-backup member0-backup 129.0.0.16 member0-fpc0 129.0.0.17 member0-fpc1 129.0.0.18 member0-fpc2 129.0.0.19 member0-fpc3 129.0.0.20 member0-fpc4 129.0.0.21 member0-fpc5 129.0.0.22 member0-fpc6 129.0.0.23 member0-fpc7 129.0.0.24 member0-fpc8 129.0.0.25 member0-fpc9 129.0.0.26 member0-fpc10 129.0.0.27 member0-fpc11 129.0.0.28 member0-fpc12 129.0.0.29 member0-fpc13 129.0.0.30 member0-fpc14 129.0.0.31 member0-fpc15 129.0.0.32 member0-fpc16 129.0.0.33 member0-fpc17 129.0.0.34 member0-fpc18 129.0.0.35 member0-fpc19 129.0.0.36 member0-fpc20 129.0.0.37 member0-fpc21 129.0.0.38 member0-fpc22 129.0.0.39 member0-fpc23 129.0.0.40 member0-fpc24 129.0.0.41 member0-fpc25 129.0.0.42 member0-fpc26 129.0.0.43 member0-fpc27 129.0.0.44 member0-fpc28 129.0.0.45 member0-fpc29 129.0.0.46 member0-fpc30 129.0.0.47 member0-fpc31 129.0.0.6 lcc0-backup 129.0.0.16 lcc0-fpc0 129.0.0.17 lcc0-fpc1 129.0.0.18 lcc0-fpc2 129.0.0.19 lcc0-fpc3 129.0.0.20 lcc0-fpc4 129.0.0.21 lcc0-fpc5 129.0.0.22 lcc0-fpc6 129.0.0.23 lcc0-fpc7 129.0.0.48 lcc0-spmb0 129.0.0.49 lcc0-spmb1 #LCC 1 (or MEMBER 1 on Virtual Chassis) 130.0.0.1 lcc1-master member1-master member1 130.0.0.4 lcc1-re0 member1-re0 130.0.0.5 lcc1-re1 member1-re1 130.0.0.6 lcc1-backup member1-backup 130.0.0.16 member1-fpc0 130.0.0.17 member1-fpc1 130.0.0.18 member1-fpc2 130.0.0.19 member1-fpc3 130.0.0.20 member1-fpc4 130.0.0.21 member1-fpc5 130.0.0.22 member1-fpc6 130.0.0.23 member1-fpc7 130.0.0.24 member1-fpc8 130.0.0.25 member1-fpc9 130.0.0.26 member1-fpc10 130.0.0.27 member1-fpc11 130.0.0.28 member1-fpc12 130.0.0.29 member1-fpc13 130.0.0.30 member1-fpc14 130.0.0.31 member1-fpc15 130.0.0.32 member1-fpc16 130.0.0.33 member1-fpc17 130.0.0.34 member1-fpc18 130.0.0.35 member1-fpc19 130.0.0.36 member1-fpc20 130.0.0.37 member1-fpc21 130.0.0.38 member1-fpc22 130.0.0.39 member1-fpc23 130.0.0.40 member1-fpc24 130.0.0.41 member1-fpc25 130.0.0.42 member1-fpc26 130.0.0.43 member1-fpc27 130.0.0.44 member1-fpc28 130.0.0.45 member1-fpc29 130.0.0.46 member1-fpc30 130.0.0.47 member1-fpc31 130.0.0.6 lcc1-backup 130.0.0.16 lcc1-fpc0 130.0.0.17 lcc1-fpc1 130.0.0.18 lcc1-fpc2 130.0.0.19 lcc1-fpc3 130.0.0.20 lcc1-fpc4 130.0.0.21 lcc1-fpc5 130.0.0.22 lcc1-fpc6 130.0.0.23 lcc1-fpc7 130.0.0.48 lcc1-spmb0 130.0.0.49 lcc1-spmb1 #LCC 2 (or MEMBER 2 on Virtual Chassis) 131.0.0.1 lcc2-master member2-master member2 131.0.0.4 lcc2-re0 member2-re0 131.0.0.5 lcc2-re1 member2-re1 131.0.0.6 lcc2-backup member2-backup 131.0.0.16 member2-fpc0 131.0.0.17 member2-fpc1 131.0.0.18 member2-fpc2 131.0.0.19 member2-fpc3 131.0.0.20 member2-fpc4 131.0.0.21 member2-fpc5 131.0.0.22 member2-fpc6 131.0.0.23 member2-fpc7 131.0.0.24 member2-fpc8 131.0.0.25 member2-fpc9 131.0.0.26 member2-fpc10 131.0.0.27 member2-fpc11 131.0.0.28 member2-fpc12 131.0.0.29 member2-fpc13 131.0.0.30 member2-fpc14 131.0.0.31 member2-fpc15 131.0.0.32 member2-fpc16 131.0.0.33 member2-fpc17 131.0.0.34 member2-fpc18 131.0.0.35 member2-fpc19 131.0.0.36 member2-fpc20 131.0.0.37 member2-fpc21 131.0.0.38 member2-fpc22 131.0.0.39 member2-fpc23 131.0.0.40 member2-fpc24 131.0.0.41 member2-fpc25 131.0.0.42 member2-fpc26 131.0.0.43 member2-fpc27 131.0.0.44 member2-fpc28 131.0.0.45 member2-fpc29 131.0.0.46 member2-fpc30 131.0.0.47 member2-fpc31 131.0.0.6 lcc2-backup 131.0.0.16 lcc2-fpc0 131.0.0.17 lcc2-fpc1 131.0.0.18 lcc2-fpc2 131.0.0.19 lcc2-fpc3 131.0.0.20 lcc2-fpc4 131.0.0.21 lcc2-fpc5 131.0.0.22 lcc2-fpc6 131.0.0.23 lcc2-fpc7 131.0.0.48 lcc2-spmb0 131.0.0.49 lcc20-spmb1 #LCC 3 (or MEMBER 3 on Virtual Chassis) 132.0.0.1 lcc3-master member3-master member3 132.0.0.4 lcc3-re0 member3-re0 132.0.0.5 lcc3-re1 member3-re1 132.0.0.6 lcc3-backup member3-backup 132.0.0.16 member3-fpc0 132.0.0.17 member3-fpc1 132.0.0.18 member3-fpc2 132.0.0.19 member3-fpc3 132.0.0.20 member3-fpc4 132.0.0.21 member3-fpc5 132.0.0.22 member3-fpc6 132.0.0.23 member3-fpc7 132.0.0.24 member3-fpc8 132.0.0.25 member3-fpc9 132.0.0.26 member3-fpc10 132.0.0.27 member3-fpc11 132.0.0.28 member3-fpc12 132.0.0.29 member3-fpc13 132.0.0.30 member3-fpc14 132.0.0.31 member3-fpc15 132.0.0.32 member3-fpc16 132.0.0.33 member3-fpc17 132.0.0.34 member3-fpc18 132.0.0.35 member3-fpc19 132.0.0.36 member3-fpc20 132.0.0.37 member3-fpc21 132.0.0.38 member3-fpc22 132.0.0.39 member3-fpc23 132.0.0.40 member3-fpc24 132.0.0.41 member3-fpc25 132.0.0.42 member3-fpc26 132.0.0.43 member3-fpc27 132.0.0.44 member3-fpc28 132.0.0.45 member3-fpc29 132.0.0.46 member3-fpc30 132.0.0.47 member3-fpc31 132.0.0.6 lcc3-backup 132.0.0.16 lcc3-fpc0 132.0.0.17 lcc3-fpc1 132.0.0.18 lcc3-fpc2 132.0.0.19 lcc3-fpc3 132.0.0.20 lcc3-fpc4 132.0.0.21 lcc3-fpc5 132.0.0.22 lcc3-fpc6 132.0.0.23 lcc3-fpc7 132.0.0.48 lcc3-spmb0 132.0.0.49 lcc3-spmb1 #LCC 4 (or MEMBER 4 on Virtual Chassis) 133.0.0.1 lcc4-master member4-master member4 133.0.0.4 lcc4-re0 member4-re0 133.0.0.5 lcc4-re1 member4-re1 133.0.0.6 lcc4-backup member4-backup 133.0.0.16 member4-fpc0 133.0.0.17 member4-fpc1 133.0.0.18 member4-fpc2 133.0.0.19 member4-fpc3 133.0.0.20 member4-fpc4 133.0.0.21 member4-fpc5 133.0.0.22 member4-fpc6 133.0.0.23 member4-fpc7 133.0.0.24 member4-fpc8 133.0.0.25 member4-fpc9 133.0.0.26 member4-fpc10 133.0.0.27 member4-fpc11 133.0.0.28 member4-fpc12 133.0.0.29 member4-fpc13 133.0.0.30 member4-fpc14 133.0.0.31 member4-fpc15 133.0.0.32 member4-fpc16 133.0.0.33 member4-fpc17 133.0.0.34 member4-fpc18 133.0.0.35 member4-fpc19 133.0.0.36 member4-fpc20 133.0.0.37 member4-fpc21 133.0.0.38 member4-fpc22 133.0.0.39 member4-fpc23 133.0.0.40 member4-fpc24 133.0.0.41 member4-fpc25 133.0.0.42 member4-fpc26 133.0.0.43 member4-fpc27 133.0.0.44 member4-fpc28 133.0.0.45 member4-fpc29 133.0.0.46 member4-fpc30 133.0.0.47 member4-fpc31 133.0.0.6 lcc4-backup 133.0.0.16 lcc4-fpc0 133.0.0.17 lcc4-fpc1 133.0.0.18 lcc4-fpc2 133.0.0.19 lcc4-fpc3 133.0.0.20 lcc4-fpc4 133.0.0.21 lcc4-fpc5 133.0.0.22 lcc4-fpc6 133.0.0.23 lcc4-fpc7 133.0.0.48 lcc4-spmb0 133.0.0.49 lcc4-spmb1 #LCC 5 (or MEMBER 5 on Virtual Chassis) 134.0.0.1 lcc5-master member5-master member5 134.0.0.4 lcc5-re0 member5-re0 134.0.0.5 lcc5-re1 member5-re1 134.0.0.6 lcc5-backup member5-backup 134.0.0.16 member5-fpc0 134.0.0.17 member5-fpc1 134.0.0.18 member5-fpc2 134.0.0.19 member5-fpc3 134.0.0.20 member5-fpc4 134.0.0.21 member5-fpc5 134.0.0.22 member5-fpc6 134.0.0.23 member5-fpc7 134.0.0.24 member5-fpc8 134.0.0.25 member5-fpc9 134.0.0.26 member5-fpc10 134.0.0.27 member5-fpc11 134.0.0.28 member5-fpc12 134.0.0.29 member5-fpc13 134.0.0.30 member5-fpc14 134.0.0.31 member5-fpc15 134.0.0.32 member5-fpc16 134.0.0.33 member5-fpc17 134.0.0.34 member5-fpc18 134.0.0.35 member5-fpc19 134.0.0.36 member5-fpc20 134.0.0.37 member5-fpc21 134.0.0.38 member5-fpc22 134.0.0.39 member5-fpc23 134.0.0.40 member5-fpc24 134.0.0.41 member5-fpc25 134.0.0.42 member5-fpc26 134.0.0.43 member5-fpc27 134.0.0.44 member5-fpc28 134.0.0.45 member5-fpc29 134.0.0.46 member5-fpc30 134.0.0.47 member5-fpc31 134.0.0.6 lcc5-backup 134.0.0.16 lcc5-fpc0 134.0.0.17 lcc5-fpc1 134.0.0.18 lcc5-fpc2 134.0.0.19 lcc5-fpc3 134.0.0.20 lcc5-fpc4 134.0.0.21 lcc5-fpc5 134.0.0.22 lcc5-fpc6 134.0.0.23 lcc5-fpc7 134.0.0.48 lcc5-spmb0 134.0.0.49 lcc5-spmb1 #LCC 6 (or MEMBER 6 on Virtual Chassis) 135.0.0.1 lcc6-master member6-master member6 135.0.0.4 lcc6-re0 member6-re0 135.0.0.5 lcc6-re1 member6-re1 135.0.0.6 lcc6-backup member6-backup 135.0.0.16 member6-fpc0 135.0.0.17 member6-fpc1 135.0.0.18 member6-fpc2 135.0.0.19 member6-fpc3 135.0.0.20 member6-fpc4 135.0.0.21 member6-fpc5 135.0.0.22 member6-fpc6 135.0.0.23 member6-fpc7 135.0.0.24 member6-fpc8 135.0.0.25 member6-fpc9 135.0.0.26 member6-fpc10 135.0.0.27 member6-fpc11 135.0.0.28 member6-fpc12 135.0.0.29 member6-fpc13 135.0.0.30 member6-fpc14 135.0.0.31 member6-fpc15 135.0.0.32 member6-fpc16 135.0.0.33 member6-fpc17 135.0.0.34 member6-fpc18 135.0.0.35 member6-fpc19 135.0.0.36 member6-fpc20 135.0.0.37 member6-fpc21 135.0.0.38 member6-fpc22 135.0.0.39 member6-fpc23 135.0.0.40 member6-fpc24 135.0.0.41 member6-fpc25 135.0.0.42 member6-fpc26 135.0.0.43 member6-fpc27 135.0.0.44 member6-fpc28 135.0.0.45 member6-fpc29 135.0.0.46 member6-fpc30 135.0.0.47 member6-fpc31 135.0.0.6 lcc6-backup 135.0.0.16 lcc6-fpc0 135.0.0.17 lcc6-fpc1 135.0.0.18 lcc6-fpc2 135.0.0.19 lcc6-fpc3 135.0.0.20 lcc6-fpc4 135.0.0.21 lcc6-fpc5 135.0.0.22 lcc6-fpc6 135.0.0.23 lcc6-fpc7 135.0.0.48 lcc6-spmb0 135.0.0.49 lcc6-spmb1 #LCC 7 (or MEMBER 7 on Virtual Chassis) 136.0.0.1 lcc7-master member7-master member7 136.0.0.4 lcc7-re0 member7-re0 136.0.0.5 lcc7-re1 member7-re1 136.0.0.6 lcc7-backup member7-backup 136.0.0.16 member7-fpc0 136.0.0.17 member7-fpc1 136.0.0.18 member7-fpc2 136.0.0.19 member7-fpc3 136.0.0.20 member7-fpc4 136.0.0.21 member7-fpc5 136.0.0.22 member7-fpc6 136.0.0.23 member7-fpc7 136.0.0.24 member7-fpc8 136.0.0.25 member7-fpc9 136.0.0.26 member7-fpc10 136.0.0.27 member7-fpc11 136.0.0.28 member7-fpc12 136.0.0.29 member7-fpc13 136.0.0.30 member7-fpc14 136.0.0.31 member7-fpc15 136.0.0.32 member7-fpc16 136.0.0.33 member7-fpc17 136.0.0.34 member7-fpc18 136.0.0.35 member7-fpc19 136.0.0.36 member7-fpc20 136.0.0.37 member7-fpc21 136.0.0.38 member7-fpc22 136.0.0.39 member7-fpc23 136.0.0.40 member7-fpc24 136.0.0.41 member7-fpc25 136.0.0.42 member7-fpc26 136.0.0.43 member7-fpc27 136.0.0.44 member7-fpc28 136.0.0.45 member7-fpc29 136.0.0.46 member7-fpc30 136.0.0.47 member7-fpc31 136.0.0.6 lcc7-backup 136.0.0.16 lcc7-fpc0 136.0.0.17 lcc7-fpc1 136.0.0.18 lcc7-fpc2 136.0.0.19 lcc7-fpc3 136.0.0.20 lcc7-fpc4 136.0.0.21 lcc7-fpc5 136.0.0.22 lcc7-fpc6 136.0.0.23 lcc7-fpc7 136.0.0.48 lcc7-spmb0 136.0.0.49 lcc7-spmb1 137.0.0.6 lcc8-backup 137.0.0.16 lcc8-fpc0 137.0.0.17 lcc8-fpc1 137.0.0.18 lcc8-fpc2 137.0.0.19 lcc8-fpc3 137.0.0.20 lcc8-fpc4 137.0.0.21 lcc8-fpc5 137.0.0.22 lcc8-fpc6 137.0.0.23 lcc8-fpc7 137.0.0.48 lcc8-spmb0 137.0.0.49 lcc8-spmb1 #LCC 8 (or MEMBER 8 on Virtual Chassis) 137.0.0.1 lcc8-master member8-master member8 137.0.0.4 lcc8-re0 member8-re0 137.0.0.5 lcc8-re1 member8-re1 137.0.0.6 lcc8-backup member8-backup 137.0.0.16 member8-fpc0 137.0.0.17 member8-fpc1 137.0.0.18 member8-fpc2 137.0.0.19 member8-fpc3 137.0.0.20 member8-fpc4 137.0.0.21 member8-fpc5 137.0.0.22 member8-fpc6 137.0.0.23 member8-fpc7 137.0.0.24 member8-fpc8 137.0.0.25 member8-fpc9 137.0.0.26 member8-fpc10 137.0.0.27 member8-fpc11 137.0.0.28 member8-fpc12 137.0.0.29 member8-fpc13 137.0.0.30 member8-fpc14 137.0.0.31 member8-fpc15 137.0.0.32 member8-fpc16 137.0.0.33 member8-fpc17 137.0.0.34 member8-fpc18 137.0.0.35 member8-fpc19 137.0.0.36 member8-fpc20 137.0.0.37 member8-fpc21 137.0.0.38 member8-fpc22 137.0.0.39 member8-fpc23 137.0.0.40 member8-fpc24 137.0.0.41 member8-fpc25 137.0.0.42 member8-fpc26 137.0.0.43 member8-fpc27 137.0.0.44 member8-fpc28 137.0.0.45 member8-fpc29 137.0.0.46 member8-fpc30 137.0.0.47 member8-fpc31 138.0.0.6 lcc9-backup 138.0.0.16 lcc9-fpc0 138.0.0.17 lcc9-fpc1 138.0.0.18 lcc9-fpc2 138.0.0.19 lcc9-fpc3 138.0.0.20 lcc9-fpc4 138.0.0.21 lcc9-fpc5 138.0.0.22 lcc9-fpc6 138.0.0.23 lcc9-fpc7 138.0.0.48 lcc9-spmb0 138.0.0.49 lcc9-spmb1 #LCC 9 (or MEMBER 9 on Virtual Chassis) 138.0.0.1 lcc9-master member9-master member9 138.0.0.4 lcc9-re0 member9-re0 138.0.0.5 lcc9-re1 member9-re1 138.0.0.6 lcc9-backup member9-backup 138.0.0.16 member9-fpc0 138.0.0.17 member9-fpc1 138.0.0.18 member9-fpc2 138.0.0.19 member9-fpc3 138.0.0.20 member9-fpc4 138.0.0.21 member9-fpc5 138.0.0.22 member9-fpc6 138.0.0.23 member9-fpc7 138.0.0.24 member9-fpc8 138.0.0.25 member9-fpc9 138.0.0.26 member9-fpc10 138.0.0.27 member9-fpc11 138.0.0.28 member9-fpc12 138.0.0.29 member9-fpc13 138.0.0.30 member9-fpc14 138.0.0.31 member9-fpc15 138.0.0.32 member9-fpc16 138.0.0.33 member9-fpc17 138.0.0.34 member9-fpc18 138.0.0.35 member9-fpc19 138.0.0.36 member9-fpc20 138.0.0.37 member9-fpc21 138.0.0.38 member9-fpc22 138.0.0.39 member9-fpc23 138.0.0.40 member9-fpc24 138.0.0.41 member9-fpc25 138.0.0.42 member9-fpc26 138.0.0.43 member9-fpc27 138.0.0.44 member9-fpc28 138.0.0.45 member9-fpc29 138.0.0.46 member9-fpc30 138.0.0.47 member9-fpc31 139.0.0.6 lcc10-backup 139.0.0.16 lcc10-fpc0 139.0.0.17 lcc10-fpc1 139.0.0.18 lcc10-fpc2 139.0.0.19 lcc10-fpc3 139.0.0.20 lcc10-fpc4 139.0.0.21 lcc10-fpc5 139.0.0.22 lcc10-fpc6 139.0.0.23 lcc10-fpc7 139.0.0.48 lcc10-spmb0 139.0.0.49 lcc10-spmb1 #LCC 10 (or MEMBER 10 on Virtual Chassis) 139.0.0.1 lcc10-master member10-master 139.0.0.4 lcc10-re0 member10-re0 139.0.0.5 lcc10-re1 member10-re1 139.0.0.6 lcc10-backup member10-backup 139.0.0.16 member10-fpc0 139.0.0.17 member10-fpc1 139.0.0.18 member10-fpc2 139.0.0.19 member10-fpc3 139.0.0.20 member10-fpc4 139.0.0.21 member10-fpc5 139.0.0.22 member10-fpc6 139.0.0.23 member10-fpc7 139.0.0.24 member10-fpc8 139.0.0.25 member10-fpc9 139.0.0.26 member10-fpc10 139.0.0.27 member10-fpc11 139.0.0.28 member10-fpc12 139.0.0.29 member10-fpc13 139.0.0.30 member10-fpc14 139.0.0.31 member10-fpc15 139.0.0.32 member10-fpc16 139.0.0.33 member10-fpc17 139.0.0.34 member10-fpc18 139.0.0.35 member10-fpc19 139.0.0.36 member10-fpc20 139.0.0.37 member10-fpc21 139.0.0.38 member10-fpc22 139.0.0.39 member10-fpc23 139.0.0.40 member10-fpc24 139.0.0.41 member10-fpc25 139.0.0.42 member10-fpc26 139.0.0.43 member10-fpc27 139.0.0.44 member10-fpc28 139.0.0.45 member10-fpc29 139.0.0.46 member10-fpc30 139.0.0.47 member10-fpc31 140.0.0.6 lcc11-backup 140.0.0.16 lcc11-fpc0 140.0.0.17 lcc11-fpc1 140.0.0.18 lcc11-fpc2 140.0.0.19 lcc11-fpc3 140.0.0.20 lcc11-fpc4 140.0.0.21 lcc11-fpc5 140.0.0.22 lcc11-fpc6 140.0.0.23 lcc11-fpc7 140.0.0.48 lcc11-spmb0 140.0.0.49 lcc11-spmb1 #LCC 11 (or MEMBER 11 on Virtual Chassis) 140.0.0.1 lcc11-master member11-master 140.0.0.4 lcc11-re0 member11-re0 140.0.0.5 lcc11-re1 member11-re1 140.0.0.6 lcc11-backup member11-backup 140.0.0.16 member11-fpc0 140.0.0.17 member11-fpc1 140.0.0.18 member11-fpc2 140.0.0.19 member11-fpc3 140.0.0.20 member11-fpc4 140.0.0.21 member11-fpc5 140.0.0.22 member11-fpc6 140.0.0.23 member11-fpc7 140.0.0.24 member11-fpc8 140.0.0.25 member11-fpc9 140.0.0.26 member11-fpc10 140.0.0.27 member11-fpc11 140.0.0.28 member11-fpc12 140.0.0.29 member11-fpc13 140.0.0.30 member11-fpc14 140.0.0.31 member11-fpc15 140.0.0.32 member11-fpc16 140.0.0.33 member11-fpc17 140.0.0.34 member11-fpc18 140.0.0.35 member11-fpc19 140.0.0.36 member11-fpc20 140.0.0.37 member11-fpc21 140.0.0.38 member11-fpc22 140.0.0.39 member11-fpc23 140.0.0.40 member11-fpc24 140.0.0.41 member11-fpc25 140.0.0.42 member11-fpc26 140.0.0.43 member11-fpc27 140.0.0.44 member11-fpc28 140.0.0.45 member11-fpc29 140.0.0.46 member11-fpc30 140.0.0.47 member11-fpc31 141.0.0.6 lcc12-backup 141.0.0.16 lcc12-fpc0 141.0.0.17 lcc12-fpc1 141.0.0.18 lcc12-fpc2 141.0.0.19 lcc12-fpc3 141.0.0.20 lcc12-fpc4 141.0.0.21 lcc12-fpc5 141.0.0.22 lcc12-fpc6 141.0.0.23 lcc12-fpc7 141.0.0.48 lcc12-spmb0 141.0.0.49 lcc12-spmb1 #LCC 12 (or MEMBER 12 on Virtual Chassis) 141.0.0.1 lcc12-master member12-master 141.0.0.4 lcc12-re0 member12-re0 141.0.0.5 lcc12-re1 member12-re1 141.0.0.6 lcc12-backup member12-backup 141.0.0.16 member12-fpc0 141.0.0.17 member12-fpc1 141.0.0.18 member12-fpc2 141.0.0.19 member12-fpc3 141.0.0.20 member12-fpc4 141.0.0.21 member12-fpc5 141.0.0.22 member12-fpc6 141.0.0.23 member12-fpc7 141.0.0.24 member12-fpc8 141.0.0.25 member12-fpc9 141.0.0.26 member12-fpc10 141.0.0.27 member12-fpc11 141.0.0.28 member12-fpc12 141.0.0.29 member12-fpc13 141.0.0.30 member12-fpc14 141.0.0.31 member12-fpc15 141.0.0.32 member12-fpc16 141.0.0.33 member12-fpc17 141.0.0.34 member12-fpc18 141.0.0.35 member12-fpc19 141.0.0.36 member12-fpc20 141.0.0.37 member12-fpc21 141.0.0.38 member12-fpc22 141.0.0.39 member12-fpc23 141.0.0.40 member12-fpc24 141.0.0.41 member12-fpc25 141.0.0.42 member12-fpc26 141.0.0.43 member12-fpc27 141.0.0.44 member12-fpc28 141.0.0.45 member12-fpc29 141.0.0.46 member12-fpc30 141.0.0.47 member12-fpc31 142.0.0.6 lcc13-backup 142.0.0.16 lcc13-fpc0 142.0.0.17 lcc13-fpc1 142.0.0.18 lcc13-fpc2 142.0.0.19 lcc13-fpc3 142.0.0.20 lcc13-fpc4 142.0.0.21 lcc13-fpc5 142.0.0.22 lcc13-fpc6 142.0.0.23 lcc13-fpc7 142.0.0.48 lcc13-spmb0 142.0.0.49 lcc13-spmb1 #LCC 13 (or MEMBER 13 on Virtual Chassis) 142.0.0.1 lcc13-master member13-master 142.0.0.4 lcc13-re0 member13-re0 142.0.0.5 lcc13-re1 member13-re1 142.0.0.6 lcc13-backup member13-backup 142.0.0.16 member13-fpc0 142.0.0.17 member13-fpc1 142.0.0.18 member13-fpc2 142.0.0.19 member13-fpc3 142.0.0.20 member13-fpc4 142.0.0.21 member13-fpc5 142.0.0.22 member13-fpc6 142.0.0.23 member13-fpc7 142.0.0.24 member13-fpc8 142.0.0.25 member13-fpc9 142.0.0.26 member13-fpc10 142.0.0.27 member13-fpc11 142.0.0.28 member13-fpc12 142.0.0.29 member13-fpc13 142.0.0.30 member13-fpc14 142.0.0.31 member13-fpc15 142.0.0.32 member13-fpc16 142.0.0.33 member13-fpc17 142.0.0.34 member13-fpc18 142.0.0.35 member13-fpc19 142.0.0.36 member13-fpc20 142.0.0.37 member13-fpc21 142.0.0.38 member13-fpc22 142.0.0.39 member13-fpc23 142.0.0.40 member13-fpc24 142.0.0.41 member13-fpc25 142.0.0.42 member13-fpc26 142.0.0.43 member13-fpc27 142.0.0.44 member13-fpc28 142.0.0.45 member13-fpc29 142.0.0.46 member13-fpc30 142.0.0.47 member13-fpc31 143.0.0.6 lcc14-backup 143.0.0.16 lcc14-fpc0 143.0.0.17 lcc14-fpc1 143.0.0.18 lcc14-fpc2 143.0.0.19 lcc14-fpc3 143.0.0.20 lcc14-fpc4 143.0.0.21 lcc14-fpc5 143.0.0.22 lcc14-fpc6 143.0.0.23 lcc14-fpc7 143.0.0.48 lcc14-spmb0 143.0.0.49 lcc14-spmb1 #LCC 14 (or MEMBER 14 on Virtual Chassis) 143.0.0.1 lcc14-master member14-master 143.0.0.4 lcc14-re0 member14-re0 143.0.0.5 lcc14-re1 member14-re1 143.0.0.6 lcc14-backup member14-backup 143.0.0.16 member14-fpc0 143.0.0.17 member14-fpc1 143.0.0.18 member14-fpc2 143.0.0.19 member14-fpc3 143.0.0.20 member14-fpc4 143.0.0.21 member14-fpc5 143.0.0.22 member14-fpc6 143.0.0.23 member14-fpc7 143.0.0.24 member14-fpc8 143.0.0.25 member14-fpc9 143.0.0.26 member14-fpc10 143.0.0.27 member14-fpc11 143.0.0.28 member14-fpc12 143.0.0.29 member14-fpc13 143.0.0.30 member14-fpc14 143.0.0.31 member14-fpc15 143.0.0.32 member14-fpc16 143.0.0.33 member14-fpc17 143.0.0.34 member14-fpc18 143.0.0.35 member14-fpc19 143.0.0.36 member14-fpc20 143.0.0.37 member14-fpc21 143.0.0.38 member14-fpc22 143.0.0.39 member14-fpc23 143.0.0.40 member14-fpc24 143.0.0.41 member14-fpc25 143.0.0.42 member14-fpc26 143.0.0.43 member14-fpc27 143.0.0.44 member14-fpc28 143.0.0.45 member14-fpc29 143.0.0.46 member14-fpc30 143.0.0.47 member14-fpc31 144.0.0.6 lcc15-backup 144.0.0.16 lcc15-fpc0 144.0.0.17 lcc15-fpc1 144.0.0.18 lcc15-fpc2 144.0.0.19 lcc15-fpc3 144.0.0.20 lcc15-fpc4 144.0.0.21 lcc15-fpc5 144.0.0.22 lcc15-fpc6 144.0.0.23 lcc15-fpc7 144.0.0.48 lcc15-spmb0 144.0.0.49 lcc15-spmb1 #LCC 15 (or MEMBER 15 on Virtual Chassis) 144.0.0.1 lcc15-master member15-master 144.0.0.4 lcc15-re0 member15-re0 144.0.0.5 lcc15-re1 member15-re1 144.0.0.6 lcc15-backup member15-backup 144.0.0.16 member15-fpc0 144.0.0.17 member15-fpc1 144.0.0.18 member15-fpc2 144.0.0.19 member15-fpc3 144.0.0.20 member15-fpc4 144.0.0.21 member15-fpc5 144.0.0.22 member15-fpc6 144.0.0.23 member15-fpc7 144.0.0.24 member15-fpc8 144.0.0.25 member15-fpc9 144.0.0.26 member15-fpc10 144.0.0.27 member15-fpc11 144.0.0.28 member15-fpc12 144.0.0.29 member15-fpc13 144.0.0.30 member15-fpc14 144.0.0.31 member15-fpc15 144.0.0.32 member15-fpc16 144.0.0.33 member15-fpc17 144.0.0.34 member15-fpc18 144.0.0.35 member15-fpc19 144.0.0.36 member15-fpc20 144.0.0.37 member15-fpc21 144.0.0.38 member15-fpc22 144.0.0.39 member15-fpc23 144.0.0.40 member15-fpc24 144.0.0.41 member15-fpc25 144.0.0.42 member15-fpc26 144.0.0.43 member15-fpc27 144.0.0.44 member15-fpc28 144.0.0.45 member15-fpc29 144.0.0.46 member15-fpc30 144.0.0.47 member15-fpc31 #LCC 16 (or MEMBER 16 on Virtual Chassis) 145.0.0.1 lcc16-master member16-master 145.0.0.4 lcc16-re0 member16-re0 145.0.0.5 lcc16-re1 member16-re1 145.0.0.6 lcc16-backup member16-backup 145.0.0.16 member16-fpc0 145.0.0.17 member16-fpc1 145.0.0.18 member16-fpc2 145.0.0.19 member16-fpc3 145.0.0.20 member16-fpc4 145.0.0.21 member16-fpc5 145.0.0.22 member16-fpc6 145.0.0.23 member16-fpc7 145.0.0.24 member16-fpc8 145.0.0.25 member16-fpc9 145.0.0.26 member16-fpc10 145.0.0.27 member16-fpc11 145.0.0.28 member16-fpc12 145.0.0.29 member16-fpc13 145.0.0.30 member16-fpc14 145.0.0.31 member16-fpc15 145.0.0.32 member16-fpc16 145.0.0.33 member16-fpc17 145.0.0.34 member16-fpc18 145.0.0.35 member16-fpc19 145.0.0.36 member16-fpc20 145.0.0.37 member16-fpc21 145.0.0.38 member16-fpc22 145.0.0.39 member16-fpc23 145.0.0.40 member16-fpc24 145.0.0.41 member16-fpc25 145.0.0.42 member16-fpc26 145.0.0.43 member16-fpc27 145.0.0.44 member16-fpc28 145.0.0.45 member16-fpc29 145.0.0.46 member16-fpc30 145.0.0.47 member16-fpc31 #LCC 17 (or MEMBER 17 on Virtual Chassis) 146.0.0.1 lcc17-master member17-master 146.0.0.4 lcc17-re0 member17-re0 146.0.0.5 lcc17-re1 member17-re1 146.0.0.6 lcc17-backup member17-backup 146.0.0.16 member17-fpc0 146.0.0.17 member17-fpc1 146.0.0.18 member17-fpc2 146.0.0.19 member17-fpc3 146.0.0.20 member17-fpc4 146.0.0.21 member17-fpc5 146.0.0.22 member17-fpc6 146.0.0.23 member17-fpc7 146.0.0.24 member17-fpc8 146.0.0.25 member17-fpc9 146.0.0.26 member17-fpc10 146.0.0.27 member17-fpc11 146.0.0.28 member17-fpc12 146.0.0.29 member17-fpc13 146.0.0.30 member17-fpc14 146.0.0.31 member17-fpc15 146.0.0.32 member17-fpc16 146.0.0.33 member17-fpc17 146.0.0.34 member17-fpc18 146.0.0.35 member17-fpc19 146.0.0.36 member17-fpc20 146.0.0.37 member17-fpc21 146.0.0.38 member17-fpc22 146.0.0.39 member17-fpc23 146.0.0.40 member17-fpc24 146.0.0.41 member17-fpc25 146.0.0.42 member17-fpc26 146.0.0.43 member17-fpc27 146.0.0.44 member17-fpc28 146.0.0.45 member17-fpc29 146.0.0.46 member17-fpc30 146.0.0.47 member17-fpc31 #LCC 18 (or MEMBER 18 on Virtual Chassis) 147.0.0.1 lcc18-master member18-master 147.0.0.4 lcc18-re0 member18-re0 147.0.0.5 lcc18-re1 member18-re1 147.0.0.6 lcc18-backup member18-backup 147.0.0.16 member18-fpc0 147.0.0.17 member18-fpc1 147.0.0.18 member18-fpc2 147.0.0.19 member18-fpc3 147.0.0.20 member18-fpc4 147.0.0.21 member18-fpc5 147.0.0.22 member18-fpc6 147.0.0.23 member18-fpc7 147.0.0.24 member18-fpc8 147.0.0.25 member18-fpc9 147.0.0.26 member18-fpc10 147.0.0.27 member18-fpc11 147.0.0.28 member18-fpc12 147.0.0.29 member18-fpc13 147.0.0.30 member18-fpc14 147.0.0.31 member18-fpc15 147.0.0.32 member18-fpc16 147.0.0.33 member18-fpc17 147.0.0.34 member18-fpc18 147.0.0.35 member18-fpc19 147.0.0.36 member18-fpc20 147.0.0.37 member18-fpc21 147.0.0.38 member18-fpc22 147.0.0.39 member18-fpc23 147.0.0.40 member18-fpc24 147.0.0.41 member18-fpc25 147.0.0.42 member18-fpc26 147.0.0.43 member18-fpc27 147.0.0.44 member18-fpc28 147.0.0.45 member18-fpc29 147.0.0.46 member18-fpc30 147.0.0.47 member18-fpc31 #LCC 19 (or MEMBER 19 on Virtual Chassis) 148.0.0.1 lcc19-master member19-master 148.0.0.4 lcc19-re0 member19-re0 148.0.0.5 lcc19-re1 member19-re1 148.0.0.6 lcc19-backup member19-backup 148.0.0.16 member19-fpc0 148.0.0.17 member19-fpc1 148.0.0.18 member19-fpc2 148.0.0.19 member19-fpc3 148.0.0.20 member19-fpc4 148.0.0.21 member19-fpc5 148.0.0.22 member19-fpc6 148.0.0.23 member19-fpc7 148.0.0.24 member19-fpc8 148.0.0.25 member19-fpc9 148.0.0.26 member19-fpc10 148.0.0.27 member19-fpc11 148.0.0.28 member19-fpc12 148.0.0.29 member19-fpc13 148.0.0.30 member19-fpc14 148.0.0.31 member19-fpc15 148.0.0.32 member19-fpc16 148.0.0.33 member19-fpc17 148.0.0.34 member19-fpc18 148.0.0.35 member19-fpc19 148.0.0.36 member19-fpc20 148.0.0.37 member19-fpc21 148.0.0.38 member19-fpc22 148.0.0.39 member19-fpc23 148.0.0.40 member19-fpc24 148.0.0.41 member19-fpc25 148.0.0.42 member19-fpc26 148.0.0.43 member19-fpc27 148.0.0.44 member19-fpc28 148.0.0.45 member19-fpc29 148.0.0.46 member19-fpc30 148.0.0.47 member19-fpc31 #LCC 20 (or MEMBER 20 on Virtual Chassis) 149.0.0.1 lcc20-master member20-master 149.0.0.4 lcc20-re0 member20-re0 149.0.0.5 lcc20-re1 member20-re1 149.0.0.6 lcc20-backup member20-backup 149.0.0.16 member20-fpc0 149.0.0.17 member20-fpc1 149.0.0.18 member20-fpc2 149.0.0.19 member20-fpc3 149.0.0.20 member20-fpc4 149.0.0.21 member20-fpc5 149.0.0.22 member20-fpc6 149.0.0.23 member20-fpc7 149.0.0.24 member20-fpc8 149.0.0.25 member20-fpc9 149.0.0.26 member20-fpc10 149.0.0.27 member20-fpc11 149.0.0.28 member20-fpc12 149.0.0.29 member20-fpc13 149.0.0.30 member20-fpc14 149.0.0.31 member20-fpc15 149.0.0.32 member20-fpc16 149.0.0.33 member20-fpc17 149.0.0.34 member20-fpc18 149.0.0.35 member20-fpc19 149.0.0.36 member20-fpc20 149.0.0.37 member20-fpc21 149.0.0.38 member20-fpc22 149.0.0.39 member20-fpc23 149.0.0.40 member20-fpc24 149.0.0.41 member20-fpc25 149.0.0.42 member20-fpc26 149.0.0.43 member20-fpc27 149.0.0.44 member20-fpc28 149.0.0.45 member20-fpc29 149.0.0.46 member20-fpc30 149.0.0.47 member20-fpc31 #LCC 21 (or MEMBER 21 on Virtual Chassis) 150.0.0.1 lcc21-master member21-master 150.0.0.4 lcc21-re0 member21-re0 150.0.0.5 lcc21-re1 member21-re1 150.0.0.6 lcc21-backup member21-backup 150.0.0.16 member21-fpc0 150.0.0.17 member21-fpc1 150.0.0.18 member21-fpc2 150.0.0.19 member21-fpc3 150.0.0.20 member21-fpc4 150.0.0.21 member21-fpc5 150.0.0.22 member21-fpc6 150.0.0.23 member21-fpc7 150.0.0.24 member21-fpc8 150.0.0.25 member21-fpc9 150.0.0.26 member21-fpc10 150.0.0.27 member21-fpc11 150.0.0.28 member21-fpc12 150.0.0.29 member21-fpc13 150.0.0.30 member21-fpc14 150.0.0.31 member21-fpc15 150.0.0.32 member21-fpc16 150.0.0.33 member21-fpc17 150.0.0.34 member21-fpc18 150.0.0.35 member21-fpc19 150.0.0.36 member21-fpc20 150.0.0.37 member21-fpc21 150.0.0.38 member21-fpc22 150.0.0.39 member21-fpc23 150.0.0.40 member21-fpc24 150.0.0.41 member21-fpc25 150.0.0.42 member21-fpc26 150.0.0.43 member21-fpc27 150.0.0.44 member21-fpc28 150.0.0.45 member21-fpc29 150.0.0.46 member21-fpc30 150.0.0.47 member21-fpc31 #LCC 22 (or MEMBER 22 on Virtual Chassis) 151.0.0.1 lcc22-master member22-master 151.0.0.4 lcc22-re0 member22-re0 151.0.0.5 lcc22-re1 member22-re1 151.0.0.6 lcc22-backup member22-backup 151.0.0.16 member22-fpc0 151.0.0.17 member22-fpc1 151.0.0.18 member22-fpc2 151.0.0.19 member22-fpc3 151.0.0.20 member22-fpc4 151.0.0.21 member22-fpc5 151.0.0.22 member22-fpc6 151.0.0.23 member22-fpc7 151.0.0.24 member22-fpc8 151.0.0.25 member22-fpc9 151.0.0.26 member22-fpc10 151.0.0.27 member22-fpc11 151.0.0.28 member22-fpc12 151.0.0.29 member22-fpc13 151.0.0.30 member22-fpc14 151.0.0.31 member22-fpc15 151.0.0.32 member22-fpc16 151.0.0.33 member22-fpc17 151.0.0.34 member22-fpc18 151.0.0.35 member22-fpc19 151.0.0.36 member22-fpc20 151.0.0.37 member22-fpc21 151.0.0.38 member22-fpc22 151.0.0.39 member22-fpc23 151.0.0.40 member22-fpc24 151.0.0.41 member22-fpc25 151.0.0.42 member22-fpc26 151.0.0.43 member22-fpc27 151.0.0.44 member22-fpc28 151.0.0.45 member22-fpc29 151.0.0.46 member22-fpc30 151.0.0.47 member22-fpc31 #LCC 23 (or MEMBER 23 on Virtual Chassis) 152.0.0.1 lcc23-master member23-master 152.0.0.4 lcc23-re0 member23-re0 152.0.0.5 lcc23-re1 member23-re1 152.0.0.6 lcc23-backup member23-backup 152.0.0.16 member23-fpc0 152.0.0.17 member23-fpc1 152.0.0.18 member23-fpc2 152.0.0.19 member23-fpc3 152.0.0.20 member23-fpc4 152.0.0.21 member23-fpc5 152.0.0.22 member23-fpc6 152.0.0.23 member23-fpc7 152.0.0.24 member23-fpc8 152.0.0.25 member23-fpc9 152.0.0.26 member23-fpc10 152.0.0.27 member23-fpc11 152.0.0.28 member23-fpc12 152.0.0.29 member23-fpc13 152.0.0.30 member23-fpc14 152.0.0.31 member23-fpc15 152.0.0.32 member23-fpc16 152.0.0.33 member23-fpc17 152.0.0.34 member23-fpc18 152.0.0.35 member23-fpc19 152.0.0.36 member23-fpc20 152.0.0.37 member23-fpc21 152.0.0.38 member23-fpc22 152.0.0.39 member23-fpc23 152.0.0.40 member23-fpc24 152.0.0.41 member23-fpc25 152.0.0.42 member23-fpc26 152.0.0.43 member23-fpc27 152.0.0.44 member23-fpc28 152.0.0.45 member23-fpc29 152.0.0.46 member23-fpc30 152.0.0.47 member23-fpc31 #LCC 24 (or MEMBER 24 on Virtual Chassis) 153.0.0.1 lcc24-master member24-master 153.0.0.4 lcc24-re0 member24-re0 153.0.0.5 lcc24-re1 member24-re1 153.0.0.6 lcc24-backup member24-backup 153.0.0.16 member24-fpc0 153.0.0.17 member24-fpc1 153.0.0.18 member24-fpc2 153.0.0.19 member24-fpc3 153.0.0.20 member24-fpc4 153.0.0.21 member24-fpc5 153.0.0.22 member24-fpc6 153.0.0.23 member24-fpc7 153.0.0.24 member24-fpc8 153.0.0.25 member24-fpc9 153.0.0.26 member24-fpc10 153.0.0.27 member24-fpc11 153.0.0.28 member24-fpc12 153.0.0.29 member24-fpc13 153.0.0.30 member24-fpc14 153.0.0.31 member24-fpc15 153.0.0.32 member24-fpc16 153.0.0.33 member24-fpc17 153.0.0.34 member24-fpc18 153.0.0.35 member24-fpc19 153.0.0.36 member24-fpc20 153.0.0.37 member24-fpc21 153.0.0.38 member24-fpc22 153.0.0.39 member24-fpc23 153.0.0.40 member24-fpc24 153.0.0.41 member24-fpc25 153.0.0.42 member24-fpc26 153.0.0.43 member24-fpc27 153.0.0.44 member24-fpc28 153.0.0.45 member24-fpc29 153.0.0.46 member24-fpc30 153.0.0.47 member24-fpc31 #LCC 25 (or MEMBER 25 on Virtual Chassis) 154.0.0.1 lcc25-master member25-master 154.0.0.4 lcc25-re0 member25-re0 154.0.0.5 lcc25-re1 member25-re1 154.0.0.6 lcc25-backup member25-backup 154.0.0.16 member25-fpc0 154.0.0.17 member25-fpc1 154.0.0.18 member25-fpc2 154.0.0.19 member25-fpc3 154.0.0.20 member25-fpc4 154.0.0.21 member25-fpc5 154.0.0.22 member25-fpc6 154.0.0.23 member25-fpc7 154.0.0.24 member25-fpc8 154.0.0.25 member25-fpc9 154.0.0.26 member25-fpc10 154.0.0.27 member25-fpc11 154.0.0.28 member25-fpc12 154.0.0.29 member25-fpc13 154.0.0.30 member25-fpc14 154.0.0.31 member25-fpc15 154.0.0.32 member25-fpc16 154.0.0.33 member25-fpc17 154.0.0.34 member25-fpc18 154.0.0.35 member25-fpc19 154.0.0.36 member25-fpc20 154.0.0.37 member25-fpc21 154.0.0.38 member25-fpc22 154.0.0.39 member25-fpc23 154.0.0.40 member25-fpc24 154.0.0.41 member25-fpc25 154.0.0.42 member25-fpc26 154.0.0.43 member25-fpc27 154.0.0.44 member25-fpc28 154.0.0.45 member25-fpc29 154.0.0.46 member25-fpc30 154.0.0.47 member25-fpc31 #LCC 26 (or MEMBER 26 on Virtual Chassis) 155.0.0.1 lcc26-master member26-master 155.0.0.4 lcc26-re0 member26-re0 155.0.0.5 lcc26-re1 member26-re1 155.0.0.6 lcc26-backup member26-backup 155.0.0.16 member26-fpc0 155.0.0.17 member26-fpc1 155.0.0.18 member26-fpc2 155.0.0.19 member26-fpc3 155.0.0.20 member26-fpc4 155.0.0.21 member26-fpc5 155.0.0.22 member26-fpc6 155.0.0.23 member26-fpc7 155.0.0.24 member26-fpc8 155.0.0.25 member26-fpc9 155.0.0.26 member26-fpc10 155.0.0.27 member26-fpc11 155.0.0.28 member26-fpc12 155.0.0.29 member26-fpc13 155.0.0.30 member26-fpc14 155.0.0.31 member26-fpc15 155.0.0.32 member26-fpc16 155.0.0.33 member26-fpc17 155.0.0.34 member26-fpc18 155.0.0.35 member26-fpc19 155.0.0.36 member26-fpc20 155.0.0.37 member26-fpc21 155.0.0.38 member26-fpc22 155.0.0.39 member26-fpc23 155.0.0.40 member26-fpc24 155.0.0.41 member26-fpc25 155.0.0.42 member26-fpc26 155.0.0.43 member26-fpc27 155.0.0.44 member26-fpc28 155.0.0.45 member26-fpc29 155.0.0.46 member26-fpc30 155.0.0.47 member26-fpc31 #LCC 27 (or MEMBER 27 on Virtual Chassis) 156.0.0.1 lcc27-master member27-master 156.0.0.4 lcc27-re0 member27-re0 156.0.0.5 lcc27-re1 member27-re1 156.0.0.6 lcc27-backup member27-backup 156.0.0.16 member27-fpc0 156.0.0.17 member27-fpc1 156.0.0.18 member27-fpc2 156.0.0.19 member27-fpc3 156.0.0.20 member27-fpc4 156.0.0.21 member27-fpc5 156.0.0.22 member27-fpc6 156.0.0.23 member27-fpc7 156.0.0.24 member27-fpc8 156.0.0.25 member27-fpc9 156.0.0.26 member27-fpc10 156.0.0.27 member27-fpc11 156.0.0.28 member27-fpc12 156.0.0.29 member27-fpc13 156.0.0.30 member27-fpc14 156.0.0.31 member27-fpc15 156.0.0.32 member27-fpc16 156.0.0.33 member27-fpc17 156.0.0.34 member27-fpc18 156.0.0.35 member27-fpc19 156.0.0.36 member27-fpc20 156.0.0.37 member27-fpc21 156.0.0.38 member27-fpc22 156.0.0.39 member27-fpc23 156.0.0.40 member27-fpc24 156.0.0.41 member27-fpc25 156.0.0.42 member27-fpc26 156.0.0.43 member27-fpc27 156.0.0.44 member27-fpc28 156.0.0.45 member27-fpc29 156.0.0.46 member27-fpc30 156.0.0.47 member27-fpc31 #LCC 28 (or MEMBER 28 on Virtual Chassis) 157.0.0.1 lcc28-master member28-master 157.0.0.4 lcc28-re0 member28-re0 157.0.0.5 lcc28-re1 member28-re1 157.0.0.6 lcc28-backup member28-backup 157.0.0.16 member28-fpc0 157.0.0.17 member28-fpc1 157.0.0.18 member28-fpc2 157.0.0.19 member28-fpc3 157.0.0.20 member28-fpc4 157.0.0.21 member28-fpc5 157.0.0.22 member28-fpc6 157.0.0.23 member28-fpc7 157.0.0.24 member28-fpc8 157.0.0.25 member28-fpc9 157.0.0.26 member28-fpc10 157.0.0.27 member28-fpc11 157.0.0.28 member28-fpc12 157.0.0.29 member28-fpc13 157.0.0.30 member28-fpc14 157.0.0.31 member28-fpc15 157.0.0.32 member28-fpc16 157.0.0.33 member28-fpc17 157.0.0.34 member28-fpc18 157.0.0.35 member28-fpc19 157.0.0.36 member28-fpc20 157.0.0.37 member28-fpc21 157.0.0.38 member28-fpc22 157.0.0.39 member28-fpc23 157.0.0.40 member28-fpc24 157.0.0.41 member28-fpc25 157.0.0.42 member28-fpc26 157.0.0.43 member28-fpc27 157.0.0.44 member28-fpc28 157.0.0.45 member28-fpc29 157.0.0.46 member28-fpc30 157.0.0.47 member28-fpc31 #LCC 29 (or MEMBER 29 on Virtual Chassis) 158.0.0.1 lcc29-master member29-master 158.0.0.4 lcc29-re0 member29-re0 158.0.0.5 lcc29-re1 member29-re1 158.0.0.6 lcc29-backup member29-backup 158.0.0.16 member29-fpc0 158.0.0.17 member29-fpc1 158.0.0.18 member29-fpc2 158.0.0.19 member29-fpc3 158.0.0.20 member29-fpc4 158.0.0.21 member29-fpc5 158.0.0.22 member29-fpc6 158.0.0.23 member29-fpc7 158.0.0.24 member29-fpc8 158.0.0.25 member29-fpc9 158.0.0.26 member29-fpc10 158.0.0.27 member29-fpc11 158.0.0.28 member29-fpc12 158.0.0.29 member29-fpc13 158.0.0.30 member29-fpc14 158.0.0.31 member29-fpc15 158.0.0.32 member29-fpc16 158.0.0.33 member29-fpc17 158.0.0.34 member29-fpc18 158.0.0.35 member29-fpc19 158.0.0.36 member29-fpc20 158.0.0.37 member29-fpc21 158.0.0.38 member29-fpc22 158.0.0.39 member29-fpc23 158.0.0.40 member29-fpc24 158.0.0.41 member29-fpc25 158.0.0.42 member29-fpc26 158.0.0.43 member29-fpc27 158.0.0.44 member29-fpc28 158.0.0.45 member29-fpc29 158.0.0.46 member29-fpc30 158.0.0.47 member29-fpc31 #LCC 30 (or MEMBER 30 on Virtual Chassis) 159.0.0.1 lcc30-master member30-master 159.0.0.4 lcc30-re0 member30-re0 159.0.0.5 lcc30-re1 member30-re1 159.0.0.6 lcc30-backup member30-backup 159.0.0.16 member30-fpc0 159.0.0.17 member30-fpc1 159.0.0.18 member30-fpc2 159.0.0.19 member30-fpc3 159.0.0.20 member30-fpc4 159.0.0.21 member30-fpc5 159.0.0.22 member30-fpc6 159.0.0.23 member30-fpc7 159.0.0.24 member30-fpc8 159.0.0.25 member30-fpc9 159.0.0.26 member30-fpc10 159.0.0.27 member30-fpc11 159.0.0.28 member30-fpc12 159.0.0.29 member30-fpc13 159.0.0.30 member30-fpc14 159.0.0.31 member30-fpc15 159.0.0.32 member30-fpc16 159.0.0.33 member30-fpc17 159.0.0.34 member30-fpc18 159.0.0.35 member30-fpc19 159.0.0.36 member30-fpc20 159.0.0.37 member30-fpc21 159.0.0.38 member30-fpc22 159.0.0.39 member30-fpc23 159.0.0.40 member30-fpc24 159.0.0.41 member30-fpc25 159.0.0.42 member30-fpc26 159.0.0.43 member30-fpc27 159.0.0.44 member30-fpc28 159.0.0.45 member30-fpc29 159.0.0.46 member30-fpc30 159.0.0.47 member30-fpc31 #LCC 31 (or MEMBER 31 on Virtual Chassis) 160.0.0.1 lcc31-master member31-master 160.0.0.4 lcc31-re0 member31-re0 160.0.0.5 lcc31-re1 member31-re1 160.0.0.6 lcc31-backup member31-backup 160.0.0.16 member31-fpc0 160.0.0.17 member31-fpc1 160.0.0.18 member31-fpc2 160.0.0.19 member31-fpc3 160.0.0.20 member31-fpc4 160.0.0.21 member31-fpc5 160.0.0.22 member31-fpc6 160.0.0.23 member31-fpc7 160.0.0.24 member31-fpc8 160.0.0.25 member31-fpc9 160.0.0.26 member31-fpc10 160.0.0.27 member31-fpc11 160.0.0.28 member31-fpc12 160.0.0.29 member31-fpc13 160.0.0.30 member31-fpc14 160.0.0.31 member31-fpc15 160.0.0.32 member31-fpc16 160.0.0.33 member31-fpc17 160.0.0.34 member31-fpc18 160.0.0.35 member31-fpc19 160.0.0.36 member31-fpc20 160.0.0.37 member31-fpc21 160.0.0.38 member31-fpc22 160.0.0.39 member31-fpc23 160.0.0.40 member31-fpc24 160.0.0.41 member31-fpc25 160.0.0.42 member31-fpc26 160.0.0.43 member31-fpc27 160.0.0.44 member31-fpc28 160.0.0.45 member31-fpc29 160.0.0.46 member31-fpc30 160.0.0.47 member31-fpc31 #VIRT SC 161.0.0.1 sc-master 161.0.0.4 sc-re0 161.0.0.5 sc-re1 161.0.0.6 sc-backup #SFC 0 162.0.0.1 sfc0-master 162.0.0.4 sfc0-re0 162.0.0.5 sfc0-re1 162.0.0.6 sfc0-backup 162.0.0.48 sfc0-spmb0 162.0.0.49 sfc0-spmb1 #SFC 1 163.0.0.1 sfc1-master 163.0.0.4 sfc1-re0 163.0.0.5 sfc1-re1 163.0.0.6 sfc1-backup 163.0.0.48 sfc1-spmb0 163.0.0.49 sfc1-spmb1 #SFC 2 164.0.0.1 sfc2-master 164.0.0.4 sfc2-re0 164.0.0.5 sfc2-re1 164.0.0.6 sfc2-backup 164.0.0.48 sfc2-spmb0 164.0.0.49 sfc2-spmb1 #SFC 3 165.0.0.1 sfc3-master 165.0.0.4 sfc3-re0 165.0.0.5 sfc3-re1 165.0.0.6 sfc3-backup 165.0.0.48 sfc3-spmb0 165.0.0.49 sfc3-spmb1 #SFC 4 166.0.0.1 sfc4-master 166.0.0.4 sfc4-re0 166.0.0.5 sfc4-re1 166.0.0.6 sfc4-backup 166.0.0.48 sfc4-spmb0 166.0.0.49 sfc4-spmb1 #JCS 190.0.0.1 psd%d-master 190.0.0.4 psd%d-re0 190.0.0.5 psd%d-re1 190.0.0.6 psd%d-backup # Old IP address format (RT_IRS_V2) # # Single Chassis Hostnames # 10.0.0.1 master 10.0.0.4 re0 10.0.0.5 re1 10.0.0.16 fpc0 10.0.0.17 fpc1 10.0.0.18 fpc2 10.0.0.19 fpc3 10.0.0.20 fpc4 10.0.0.21 fpc5 10.0.0.22 fpc6 10.0.0.23 fpc7 10.0.0.24 fpc8 10.0.0.25 fpc9 10.0.0.26 fpc10 10.0.0.27 fpc11 10.0.0.28 fpc12 10.0.0.29 fpc13 10.0.0.30 fpc14 10.0.0.31 fpc15 # # Multi Chassis Hostnames # #SCC 10.16.0.1 scc-master 10.16.0.4 scc-re0 10.16.0.5 scc-re1 #LCC 0 10.1.0.1 lcc0-master member0-master 10.1.0.4 lcc0-re0 member0-re0 10.1.0.5 lcc0-re1 member0-re1 10.1.0.6 lcc0-backup member0-backup #LCC 1 10.2.0.1 lcc1-master member1-master 10.2.0.4 lcc1-re0 member1-re0 10.2.0.5 lcc1-re1 member1-re1 10.2.0.6 lcc1-backup member1-backup #LCC 2 10.3.0.1 lcc2-master member2-master 10.3.0.4 lcc2-re0 member2-re0 10.3.0.5 lcc2-re1 member2-re1 10.3.0.6 lcc2-backup member2-backup #LCC 3 10.4.0.1 lcc3-master member3-master 10.4.0.4 lcc3-re0 member3-re0 10.4.0.5 lcc3-re1 member3-re1 10.4.0.6 lcc3-backup member3-backup #LCC 4 10.5.0.1 lcc4-master member4-master 10.5.0.4 lcc4-re0 member4-re0 10.5.0.5 lcc4-re1 member4-re1 10.5.0.6 lcc4-backup member4-backup #LCC 5 10.6.0.1 lcc5-master member5-master 10.6.0.4 lcc5-re0 member5-re0 10.6.0.5 lcc5-re1 member5-re1 10.6.0.6 lcc5-backup member5-backup #LCC 6 10.7.0.1 lcc6-master member6-master 10.7.0.4 lcc6-re0 member6-re0 10.7.0.5 lcc6-re1 member6-re1 10.7.0.6 lcc6-backup member6-backup #LCC 7 10.8.0.1 lcc7-master member7-master 10.8.0.4 lcc7-re0 member7-re0 10.8.0.5 lcc7-re1 member7-re1 10.8.0.6 lcc7-backup member7-backup #LCC 8 10.9.0.1 lcc8-master member8-master 10.9.0.4 lcc8-re0 member8-re0 10.9.0.5 lcc8-re1 member8-re1 10.9.0.6 lcc8-backup member8-backup #LCC 9 10.10.0.1 lcc9-master member9-master 10.10.0.4 lcc9-re0 member9-re0 10.10.0.5 lcc9-re1 member9-re1 10.10.0.6 lcc9-backup member9-backup #LCC 10 10.11.0.1 lcc10-master member10-master 10.11.0.4 lcc10-re0 member10-re0 10.11.0.5 lcc10-re1 member10-re1 10.11.0.6 lcc10-backup member10-backup #LCC 11 10.12.0.1 lcc11-master member11-master 10.12.0.4 lcc11-re0 member11-re0 10.12.0.5 lcc11-re1 member11-re1 10.12.0.6 lcc11-backup member11-backup #LCC 12 10.13.0.1 lcc12-master member12-master 10.13.0.4 lcc12-re0 member12-re0 10.13.0.5 lcc12-re1 member12-re1 10.13.0.6 lcc12-backup member12-backup #LCC 13 10.14.0.1 lcc13-master member13-master 10.14.0.4 lcc13-re0 member13-re0 10.14.0.5 lcc13-re1 member13-re1 10.14.0.6 lcc13-backup member13-backup #LCC 14 10.15.0.1 lcc14-master member14-master 10.15.0.4 lcc14-re0 member14-re0 10.15.0.5 lcc14-re1 member14-re1 10.15.0.6 lcc14-backup member14-backup #LCC 15 10.16.0.1 lcc15-master member15-master 10.16.0.4 lcc15-re0 member15-re0 10.16.0.5 lcc15-re1 member15-re1 10.16.0.6 lcc15-backup member15-backup #SFC 0 10.34.0.1 sfc0-master 10.34.0.4 sfc0-re0 10.34.0.5 sfc0-re1 #SFC 1 10.35.0.1 sfc1-master 10.35.0.4 sfc1-re0 10.35.0.5 sfc1-re1 #SFC 2 10.36.0.1 sfc2-master 10.36.0.4 sfc2-re0 10.36.0.5 sfc2-re1 #SFC 3 10.37.0.1 sfc3-master 10.37.0.4 sfc3-re0 10.37.0.5 sfc3-re1 #SFC 4 10.38.0.1 sfc4-master 10.38.0.4 sfc4-re0 10.38.0.5 sfc4-re1 # End of internal names {primary:node0} current_re_srx_secondary_get-interface-information.xml000066400000000000000000000262251475361112400343130ustar00rootroot00000000000000py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply avs1.0 up up inet 254.0.0.254 0/0 inet6 fe80::199 em0.0 up up inet 130.240.0.1/2 tnp 0x2f00004 em1.0 up up inet 130.240.0.1/2 tnp 0x2f00004 fab0.0 up up inet 30.241.0.200/24 fab1.0 up up inet 30.242.0.200/24 lo0.16385 up up inet {secondary:node1} py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/domain_config_command.xml000066400000000000000000000320201475361112400264170ustar00rootroot00000000000000 re0 r0 mx960 mx960 16.1R1.11 os-kernel JUNOS OS Kernel 64-bit [20160624.329953_builder_stable_10] os-libs JUNOS OS libs [20160624.329953_builder_stable_10] os-runtime JUNOS OS runtime [20160624.329953_builder_stable_10] zoneinfo JUNOS OS time zone information [20160624.329953_builder_stable_10] netstack JUNOS network stack and utilities [20160722.024316_builder_junos_161_r1] junos-modules JUNOS modules [20160722.024316_builder_junos_161_r1] junos-modules-platform JUNOS mx modules [20160722.024316_builder_junos_161_r1] junos-libs JUNOS libs [20160722.024316_builder_junos_161_r1] os-libs-compat32 JUNOS OS libs compat32 [20160624.329953_builder_stable_10] os-compat32 JUNOS OS 32-bit compatibility [20160624.329953_builder_stable_10] junos-libs-compat32 JUNOS libs compat32 [20160722.024316_builder_junos_161_r1] junos-runtime JUNOS runtime [20160722.024316_builder_junos_161_r1] vmguest JUNOS Packet Forwarding Engine Simulation Package [20160722.024316_builder_junos_161_r1] py-extensions JUNOS py extensions [20160722.024316_builder_junos_161_r1] py-base JUNOS py base [20160722.024316_builder_junos_161_r1] os-vmguest JUNOS OS vmguest [20160624.329953_builder_stable_10] os-crypto JUNOS OS crypto [20160624.329953_builder_stable_10] junos-libs-compat32-platform JUNOS mx libs compat32 [20160722.024316_builder_junos_161_r1] junos-runtime-platform JUNOS mx runtime [20160722.024316_builder_junos_161_r1] junos-platform JUNOS common platform support [20160722.024316_builder_junos_161_r1] junos-libs-platform JUNOS mx libs [20160722.024316_builder_junos_161_r1] junos-dp-crypto-support JUNOS Data Plane Crypto Support [20160722.024316_builder_junos_161_r1] junos-dp-crypto-support-platform JUNOS mtx Data Plane Crypto Support [20160722.024316_builder_junos_161_r1] junos-daemons JUNOS daemons [20160722.024316_builder_junos_161_r1] junos-daemons-platform JUNOS mx daemons [20160722.024316_builder_junos_161_r1] jservices-voice JUNOS Voice Services Container package [20160722.024316_builder_junos_161_r1] jservices-ssl JUNOS Services SSL [20160722.024316_builder_junos_161_r1] jservices-sfw JUNOS Services Stateful Firewall [20160722.024316_builder_junos_161_r1] jservices-rpm JUNOS Services RPM [20160722.024316_builder_junos_161_r1] jservices-ptsp JUNOS Services PTSP Container package [20160722.024316_builder_junos_161_r1] jservices-pcef JUNOS Services PCEF package [20160722.024316_builder_junos_161_r1] jservices-nat JUNOS Services NAT [20160722.024316_builder_junos_161_r1] jservices-mss JUNOS Services Mobile Subscriber Service Container package [20160722.024316_builder_junos_161_r1] jservices-mobile JUNOS Services MobileNext Software package [20160722.024316_builder_junos_161_r1] jservices-lrf JUNOS Services Logging Report Framework package [20160722.024316_builder_junos_161_r1] jservices-llpdf JUNOS Services LL-PDF Container package [20160722.024316_builder_junos_161_r1] jservices-jflow JUNOS Services Jflow Container package [20160722.024316_builder_junos_161_r1] jservices-jdpi JUNOS Services Deep Packet Inspection package [20160722.024316_builder_junos_161_r1] jservices-ipsec JUNOS Services IPSec [20160722.024316_builder_junos_161_r1] jservices-idp JUNOS IDP Services [20160722.024316_builder_junos_161_r1] jservices-hcm JUNOS Services HTTP Content Management package [20160722.024316_builder_junos_161_r1] jservices-crypto-base JUNOS Services Crypto [20160722.024316_builder_junos_161_r1] jservices-cpcd JUNOS Services Captive Portal and Content Delivery Container package [20160722.024316_builder_junos_161_r1] jservices-bgf JUNOS Border Gateway Function package [20160722.024316_builder_junos_161_r1] jservices-appid JUNOS AppId Services [20160722.024316_builder_junos_161_r1] jservices-alg JUNOS Services Application Level Gateways [20160722.024316_builder_junos_161_r1] jservices-aacl JUNOS Services AACL Container package [20160722.024316_builder_junos_161_r1] jsdn JUNOS SDN Software Suite [20160722.024316_builder_junos_161_r1] jsd JUNOS Extension Toolkit [20160722.024316_builder_junos_161_r1] jpfe-wrlinux JUNOS Packet Forwarding Engine Support (wrlinux) [20160722.024316_builder_junos_161_r1] jpfe-platform JUNOS Packet Forwarding Engine Support (MX/EX92XX Common) [20160722.024316_builder_junos_161_r1] jpfe-common JUNOS Packet Forwarding Engine Support (M/T Common) [20160722.024316_builder_junos_161_r1] jdocs JUNOS Online Documentation [20160722.024316_builder_junos_161_r1] fips-mode JUNOS FIPS mode utilities [20160722.024316_builder_junos_161_r1] py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/domain_config_file-show.xml000066400000000000000000002045501475361112400267070ustar00rootroot00000000000000 #$Id: hosts.junos,v 1.7.72.1 2009-04-16 05:22:03 kdickman Exp $ # # File mapping AF_INET/AF_INET6 hostnames for REs on Single and Multichassis # systems # # This file is looked at before /etc/hosts by gethostbyname(3), # gethostbyname2(3) and getaddrinfo(3) # # The IP addresses in this file are only used for communication between REs # over the Internal Routing Instances # # WARNING: # # The names in this file are effectively reserved for internal use. # # New IP address format (RT_IRS_V3) # # Single Chassis Hostnames # 128.0.0.1 master 128.0.0.1 node 128.0.0.1 fwdd 128.0.0.1 member 128.0.0.1 pfem 128.0.0.2 scb 128.0.0.2 sbr 128.0.0.2 ssb 128.0.0.2 feb 128.0.0.2 cfeb0 128.0.0.2 cfeb 128.0.0.2 cpp0 128.0.0.3 cfeb1 128.0.0.3 cpp1 128.0.0.4 re0 128.0.0.5 re1 128.0.0.6 backup 128.0.0.8 sfm0 128.0.0.9 sfm1 128.0.0.10 sfm2 128.0.0.16 fpc0 128.0.0.17 fpc1 128.0.0.18 fpc2 128.0.0.19 fpc3 128.0.0.20 fpc4 128.0.0.21 fpc5 128.0.0.22 fpc6 128.0.0.23 fpc7 128.0.0.24 fpc8 128.0.0.25 fpc9 128.0.0.26 fpc10 128.0.0.27 fpc11 128.0.0.28 fpc12 128.0.0.29 fpc13 128.0.0.30 fpc14 128.0.0.31 fpc15 128.0.0.32 feb0 128.0.0.32 fpc16 128.0.0.33 feb1 128.0.0.33 fpc17 128.0.0.34 feb2 128.0.0.34 fpc18 128.0.0.35 feb3 128.0.0.35 fpc19 128.0.0.36 fpc20 128.0.0.36 feb4 128.0.0.37 feb5 128.0.0.37 fpc21 128.0.0.38 fpc22 128.0.0.39 fpc23 128.0.0.40 fpc24 128.0.0.41 fpc25 128.0.0.42 fpc26 128.0.0.43 fpc27 128.0.0.44 fpc28 128.0.0.45 fpc29 128.0.0.46 fpc30 128.0.0.47 fpc31 128.0.0.48 spmb0 128.0.0.49 spmb1 128.0.0.50 tfeb0 128.0.0.50 afeb0 128.0.0.53 esc0 128.0.0.54 esc1 128.0.0.55 esc0-ipmi 128.0.0.56 esc1-ipmi 128.0.1.16 fpc0.pic0 128.0.1.17 fpc1.pic0 128.0.1.18 fpc2.pic0 128.0.1.19 fpc3.pic0 128.0.1.20 fpc4.pic0 128.0.1.21 fpc5.pic0 128.0.1.22 fpc6.pic0 128.0.1.23 fpc7.pic0 128.0.1.24 fpc8.pic0 128.0.1.25 fpc9.pic0 128.0.1.26 fpc10.pic0 128.0.1.27 fpc11.pic0 128.0.1.28 fpc12.pic0 128.0.1.29 fpc13.pic0 128.0.1.30 fpc14.pic0 128.0.1.31 fpc15.pic0 128.0.1.32 fpc16.pic0 128.0.1.33 fpc17.pic0 128.0.1.34 fpc18.pic0 128.0.1.35 fpc19.pic0 128.0.1.36 fpc20.pic0 128.0.1.37 fpc21.pic0 128.0.1.38 fpc22.pic0 128.0.1.39 fpc23.pic0 128.0.1.40 fpc24.pic0 128.0.1.41 fpc25.pic0 128.0.1.42 fpc26.pic0 128.0.1.43 fpc27.pic0 128.0.1.44 fpc28.pic0 128.0.1.45 fpc29.pic0 128.0.1.46 fpc30.pic0 128.0.1.47 fpc31.pic0 128.0.2.16 fpc0.pic1 128.0.2.17 fpc1.pic1 128.0.2.18 fpc2.pic1 128.0.2.19 fpc3.pic1 128.0.2.20 fpc4.pic1 128.0.2.21 fpc5.pic1 128.0.2.22 fpc6.pic1 128.0.2.23 fpc7.pic1 128.0.2.24 fpc8.pic1 128.0.2.25 fpc9.pic1 128.0.2.26 fpc10.pic1 128.0.2.27 fpc11.pic1 128.0.2.28 fpc12.pic1 128.0.2.29 fpc13.pic1 128.0.2.30 fpc14.pic1 128.0.2.31 fpc15.pic1 128.0.2.32 fpc16.pic1 128.0.2.33 fpc17.pic1 128.0.2.34 fpc18.pic1 128.0.2.35 fpc19.pic1 128.0.2.36 fpc20.pic1 128.0.2.37 fpc21.pic1 128.0.2.38 fpc22.pic1 128.0.2.39 fpc23.pic1 128.0.2.40 fpc24.pic1 128.0.2.41 fpc25.pic1 128.0.2.42 fpc26.pic1 128.0.2.43 fpc27.pic1 128.0.2.44 fpc28.pic1 128.0.2.45 fpc29.pic1 128.0.2.46 fpc30.pic1 128.0.2.47 fpc31.pic1 128.0.3.16 fpc0.pic2 128.0.3.17 fpc1.pic2 128.0.3.18 fpc2.pic2 128.0.3.19 fpc3.pic2 128.0.3.20 fpc4.pic2 128.0.3.21 fpc5.pic2 128.0.3.22 fpc6.pic2 128.0.3.23 fpc7.pic2 128.0.3.24 fpc8.pic2 128.0.3.25 fpc9.pic2 128.0.3.26 fpc10.pic2 128.0.3.27 fpc11.pic2 128.0.3.28 fpc12.pic2 128.0.3.29 fpc13.pic2 128.0.3.30 fpc14.pic2 128.0.3.31 fpc15.pic2 128.0.4.16 fpc0.pic3 128.0.4.17 fpc1.pic3 128.0.4.18 fpc2.pic3 128.0.4.19 fpc3.pic3 128.0.4.20 fpc4.pic3 128.0.4.21 fpc5.pic3 128.0.4.22 fpc6.pic3 128.0.4.23 fpc7.pic3 128.0.4.24 fpc8.pic3 128.0.4.25 fpc9.pic3 128.0.4.26 fpc10.pic3 128.0.4.27 fpc11.pic3 128.0.4.28 fpc12.pic3 128.0.4.29 fpc13.pic3 128.0.4.30 fpc14.pic3 128.0.4.31 fpc15.pic3 # # DCF-Root Hostname # 128.0.130.2 dcf-root # # Multi Chassis Hostnames # #SCC 144.0.0.1 scc-master 144.0.0.4 scc-re0 144.0.0.5 scc-re1 144.0.0.6 scc-backup 144.0.0.48 scc-spmb0 144.0.0.49 scc-spmb1 #LCC 0 (or MEMBER 0 on Virtual Chassis) 129.0.0.1 lcc0-master member0-master member0 129.0.0.4 lcc0-re0 member0-re0 129.0.0.5 lcc0-re1 member0-re1 129.0.0.6 lcc0-backup member0-backup 129.0.0.16 member0-fpc0 129.0.0.17 member0-fpc1 129.0.0.18 member0-fpc2 129.0.0.19 member0-fpc3 129.0.0.20 member0-fpc4 129.0.0.21 member0-fpc5 129.0.0.22 member0-fpc6 129.0.0.23 member0-fpc7 129.0.0.24 member0-fpc8 129.0.0.25 member0-fpc9 129.0.0.26 member0-fpc10 129.0.0.27 member0-fpc11 129.0.0.28 member0-fpc12 129.0.0.29 member0-fpc13 129.0.0.30 member0-fpc14 129.0.0.31 member0-fpc15 129.0.0.32 member0-fpc16 129.0.0.33 member0-fpc17 129.0.0.34 member0-fpc18 129.0.0.35 member0-fpc19 129.0.0.36 member0-fpc20 129.0.0.37 member0-fpc21 129.0.0.38 member0-fpc22 129.0.0.39 member0-fpc23 129.0.0.40 member0-fpc24 129.0.0.41 member0-fpc25 129.0.0.42 member0-fpc26 129.0.0.43 member0-fpc27 129.0.0.44 member0-fpc28 129.0.0.45 member0-fpc29 129.0.0.46 member0-fpc30 129.0.0.47 member0-fpc31 129.0.0.6 lcc0-backup 129.0.0.16 lcc0-fpc0 129.0.0.17 lcc0-fpc1 129.0.0.18 lcc0-fpc2 129.0.0.19 lcc0-fpc3 129.0.0.20 lcc0-fpc4 129.0.0.21 lcc0-fpc5 129.0.0.22 lcc0-fpc6 129.0.0.23 lcc0-fpc7 129.0.0.48 lcc0-spmb0 129.0.0.49 lcc0-spmb1 #LCC 1 (or MEMBER 1 on Virtual Chassis) 130.0.0.1 lcc1-master member1-master member1 130.0.0.4 lcc1-re0 member1-re0 130.0.0.5 lcc1-re1 member1-re1 130.0.0.6 lcc1-backup member1-backup 130.0.0.16 member1-fpc0 130.0.0.17 member1-fpc1 130.0.0.18 member1-fpc2 130.0.0.19 member1-fpc3 130.0.0.20 member1-fpc4 130.0.0.21 member1-fpc5 130.0.0.22 member1-fpc6 130.0.0.23 member1-fpc7 130.0.0.24 member1-fpc8 130.0.0.25 member1-fpc9 130.0.0.26 member1-fpc10 130.0.0.27 member1-fpc11 130.0.0.28 member1-fpc12 130.0.0.29 member1-fpc13 130.0.0.30 member1-fpc14 130.0.0.31 member1-fpc15 130.0.0.32 member1-fpc16 130.0.0.33 member1-fpc17 130.0.0.34 member1-fpc18 130.0.0.35 member1-fpc19 130.0.0.36 member1-fpc20 130.0.0.37 member1-fpc21 130.0.0.38 member1-fpc22 130.0.0.39 member1-fpc23 130.0.0.40 member1-fpc24 130.0.0.41 member1-fpc25 130.0.0.42 member1-fpc26 130.0.0.43 member1-fpc27 130.0.0.44 member1-fpc28 130.0.0.45 member1-fpc29 130.0.0.46 member1-fpc30 130.0.0.47 member1-fpc31 130.0.0.6 lcc1-backup 130.0.0.16 lcc1-fpc0 130.0.0.17 lcc1-fpc1 130.0.0.18 lcc1-fpc2 130.0.0.19 lcc1-fpc3 130.0.0.20 lcc1-fpc4 130.0.0.21 lcc1-fpc5 130.0.0.22 lcc1-fpc6 130.0.0.23 lcc1-fpc7 130.0.0.48 lcc1-spmb0 130.0.0.49 lcc1-spmb1 #LCC 2 (or MEMBER 2 on Virtual Chassis) 131.0.0.1 lcc2-master member2-master member2 131.0.0.4 lcc2-re0 member2-re0 131.0.0.5 lcc2-re1 member2-re1 131.0.0.6 lcc2-backup member2-backup 131.0.0.16 member2-fpc0 131.0.0.17 member2-fpc1 131.0.0.18 member2-fpc2 131.0.0.19 member2-fpc3 131.0.0.20 member2-fpc4 131.0.0.21 member2-fpc5 131.0.0.22 member2-fpc6 131.0.0.23 member2-fpc7 131.0.0.24 member2-fpc8 131.0.0.25 member2-fpc9 131.0.0.26 member2-fpc10 131.0.0.27 member2-fpc11 131.0.0.28 member2-fpc12 131.0.0.29 member2-fpc13 131.0.0.30 member2-fpc14 131.0.0.31 member2-fpc15 131.0.0.32 member2-fpc16 131.0.0.33 member2-fpc17 131.0.0.34 member2-fpc18 131.0.0.35 member2-fpc19 131.0.0.36 member2-fpc20 131.0.0.37 member2-fpc21 131.0.0.38 member2-fpc22 131.0.0.39 member2-fpc23 131.0.0.40 member2-fpc24 131.0.0.41 member2-fpc25 131.0.0.42 member2-fpc26 131.0.0.43 member2-fpc27 131.0.0.44 member2-fpc28 131.0.0.45 member2-fpc29 131.0.0.46 member2-fpc30 131.0.0.47 member2-fpc31 131.0.0.6 lcc2-backup 131.0.0.16 lcc2-fpc0 131.0.0.17 lcc2-fpc1 131.0.0.18 lcc2-fpc2 131.0.0.19 lcc2-fpc3 131.0.0.20 lcc2-fpc4 131.0.0.21 lcc2-fpc5 131.0.0.22 lcc2-fpc6 131.0.0.23 lcc2-fpc7 131.0.0.48 lcc2-spmb0 131.0.0.49 lcc20-spmb1 #LCC 3 (or MEMBER 3 on Virtual Chassis) 132.0.0.1 lcc3-master member3-master member3 132.0.0.4 lcc3-re0 member3-re0 132.0.0.5 lcc3-re1 member3-re1 132.0.0.6 lcc3-backup member3-backup 132.0.0.16 member3-fpc0 132.0.0.17 member3-fpc1 132.0.0.18 member3-fpc2 132.0.0.19 member3-fpc3 132.0.0.20 member3-fpc4 132.0.0.21 member3-fpc5 132.0.0.22 member3-fpc6 132.0.0.23 member3-fpc7 132.0.0.24 member3-fpc8 132.0.0.25 member3-fpc9 132.0.0.26 member3-fpc10 132.0.0.27 member3-fpc11 132.0.0.28 member3-fpc12 132.0.0.29 member3-fpc13 132.0.0.30 member3-fpc14 132.0.0.31 member3-fpc15 132.0.0.32 member3-fpc16 132.0.0.33 member3-fpc17 132.0.0.34 member3-fpc18 132.0.0.35 member3-fpc19 132.0.0.36 member3-fpc20 132.0.0.37 member3-fpc21 132.0.0.38 member3-fpc22 132.0.0.39 member3-fpc23 132.0.0.40 member3-fpc24 132.0.0.41 member3-fpc25 132.0.0.42 member3-fpc26 132.0.0.43 member3-fpc27 132.0.0.44 member3-fpc28 132.0.0.45 member3-fpc29 132.0.0.46 member3-fpc30 132.0.0.47 member3-fpc31 132.0.0.6 lcc3-backup 132.0.0.16 lcc3-fpc0 132.0.0.17 lcc3-fpc1 132.0.0.18 lcc3-fpc2 132.0.0.19 lcc3-fpc3 132.0.0.20 lcc3-fpc4 132.0.0.21 lcc3-fpc5 132.0.0.22 lcc3-fpc6 132.0.0.23 lcc3-fpc7 132.0.0.48 lcc3-spmb0 132.0.0.49 lcc3-spmb1 #LCC 4 (or MEMBER 4 on Virtual Chassis) 133.0.0.1 lcc4-master member4-master member4 133.0.0.4 lcc4-re0 member4-re0 133.0.0.5 lcc4-re1 member4-re1 133.0.0.6 lcc4-backup member4-backup 133.0.0.16 member4-fpc0 133.0.0.17 member4-fpc1 133.0.0.18 member4-fpc2 133.0.0.19 member4-fpc3 133.0.0.20 member4-fpc4 133.0.0.21 member4-fpc5 133.0.0.22 member4-fpc6 133.0.0.23 member4-fpc7 133.0.0.24 member4-fpc8 133.0.0.25 member4-fpc9 133.0.0.26 member4-fpc10 133.0.0.27 member4-fpc11 133.0.0.28 member4-fpc12 133.0.0.29 member4-fpc13 133.0.0.30 member4-fpc14 133.0.0.31 member4-fpc15 133.0.0.32 member4-fpc16 133.0.0.33 member4-fpc17 133.0.0.34 member4-fpc18 133.0.0.35 member4-fpc19 133.0.0.36 member4-fpc20 133.0.0.37 member4-fpc21 133.0.0.38 member4-fpc22 133.0.0.39 member4-fpc23 133.0.0.40 member4-fpc24 133.0.0.41 member4-fpc25 133.0.0.42 member4-fpc26 133.0.0.43 member4-fpc27 133.0.0.44 member4-fpc28 133.0.0.45 member4-fpc29 133.0.0.46 member4-fpc30 133.0.0.47 member4-fpc31 133.0.0.6 lcc4-backup 133.0.0.16 lcc4-fpc0 133.0.0.17 lcc4-fpc1 133.0.0.18 lcc4-fpc2 133.0.0.19 lcc4-fpc3 133.0.0.20 lcc4-fpc4 133.0.0.21 lcc4-fpc5 133.0.0.22 lcc4-fpc6 133.0.0.23 lcc4-fpc7 133.0.0.48 lcc4-spmb0 133.0.0.49 lcc4-spmb1 #LCC 5 (or MEMBER 5 on Virtual Chassis) 134.0.0.1 lcc5-master member5-master member5 134.0.0.4 lcc5-re0 member5-re0 134.0.0.5 lcc5-re1 member5-re1 134.0.0.6 lcc5-backup member5-backup 134.0.0.16 member5-fpc0 134.0.0.17 member5-fpc1 134.0.0.18 member5-fpc2 134.0.0.19 member5-fpc3 134.0.0.20 member5-fpc4 134.0.0.21 member5-fpc5 134.0.0.22 member5-fpc6 134.0.0.23 member5-fpc7 134.0.0.24 member5-fpc8 134.0.0.25 member5-fpc9 134.0.0.26 member5-fpc10 134.0.0.27 member5-fpc11 134.0.0.28 member5-fpc12 134.0.0.29 member5-fpc13 134.0.0.30 member5-fpc14 134.0.0.31 member5-fpc15 134.0.0.32 member5-fpc16 134.0.0.33 member5-fpc17 134.0.0.34 member5-fpc18 134.0.0.35 member5-fpc19 134.0.0.36 member5-fpc20 134.0.0.37 member5-fpc21 134.0.0.38 member5-fpc22 134.0.0.39 member5-fpc23 134.0.0.40 member5-fpc24 134.0.0.41 member5-fpc25 134.0.0.42 member5-fpc26 134.0.0.43 member5-fpc27 134.0.0.44 member5-fpc28 134.0.0.45 member5-fpc29 134.0.0.46 member5-fpc30 134.0.0.47 member5-fpc31 134.0.0.6 lcc5-backup 134.0.0.16 lcc5-fpc0 134.0.0.17 lcc5-fpc1 134.0.0.18 lcc5-fpc2 134.0.0.19 lcc5-fpc3 134.0.0.20 lcc5-fpc4 134.0.0.21 lcc5-fpc5 134.0.0.22 lcc5-fpc6 134.0.0.23 lcc5-fpc7 134.0.0.48 lcc5-spmb0 134.0.0.49 lcc5-spmb1 #LCC 6 (or MEMBER 6 on Virtual Chassis) 135.0.0.1 lcc6-master member6-master member6 135.0.0.4 lcc6-re0 member6-re0 135.0.0.5 lcc6-re1 member6-re1 135.0.0.6 lcc6-backup member6-backup 135.0.0.16 member6-fpc0 135.0.0.17 member6-fpc1 135.0.0.18 member6-fpc2 135.0.0.19 member6-fpc3 135.0.0.20 member6-fpc4 135.0.0.21 member6-fpc5 135.0.0.22 member6-fpc6 135.0.0.23 member6-fpc7 135.0.0.24 member6-fpc8 135.0.0.25 member6-fpc9 135.0.0.26 member6-fpc10 135.0.0.27 member6-fpc11 135.0.0.28 member6-fpc12 135.0.0.29 member6-fpc13 135.0.0.30 member6-fpc14 135.0.0.31 member6-fpc15 135.0.0.32 member6-fpc16 135.0.0.33 member6-fpc17 135.0.0.34 member6-fpc18 135.0.0.35 member6-fpc19 135.0.0.36 member6-fpc20 135.0.0.37 member6-fpc21 135.0.0.38 member6-fpc22 135.0.0.39 member6-fpc23 135.0.0.40 member6-fpc24 135.0.0.41 member6-fpc25 135.0.0.42 member6-fpc26 135.0.0.43 member6-fpc27 135.0.0.44 member6-fpc28 135.0.0.45 member6-fpc29 135.0.0.46 member6-fpc30 135.0.0.47 member6-fpc31 135.0.0.6 lcc6-backup 135.0.0.16 lcc6-fpc0 135.0.0.17 lcc6-fpc1 135.0.0.18 lcc6-fpc2 135.0.0.19 lcc6-fpc3 135.0.0.20 lcc6-fpc4 135.0.0.21 lcc6-fpc5 135.0.0.22 lcc6-fpc6 135.0.0.23 lcc6-fpc7 135.0.0.48 lcc6-spmb0 135.0.0.49 lcc6-spmb1 #LCC 7 (or MEMBER 7 on Virtual Chassis) 136.0.0.1 lcc7-master member7-master member7 136.0.0.4 lcc7-re0 member7-re0 136.0.0.5 lcc7-re1 member7-re1 136.0.0.6 lcc7-backup member7-backup 136.0.0.16 member7-fpc0 136.0.0.17 member7-fpc1 136.0.0.18 member7-fpc2 136.0.0.19 member7-fpc3 136.0.0.20 member7-fpc4 136.0.0.21 member7-fpc5 136.0.0.22 member7-fpc6 136.0.0.23 member7-fpc7 136.0.0.24 member7-fpc8 136.0.0.25 member7-fpc9 136.0.0.26 member7-fpc10 136.0.0.27 member7-fpc11 136.0.0.28 member7-fpc12 136.0.0.29 member7-fpc13 136.0.0.30 member7-fpc14 136.0.0.31 member7-fpc15 136.0.0.32 member7-fpc16 136.0.0.33 member7-fpc17 136.0.0.34 member7-fpc18 136.0.0.35 member7-fpc19 136.0.0.36 member7-fpc20 136.0.0.37 member7-fpc21 136.0.0.38 member7-fpc22 136.0.0.39 member7-fpc23 136.0.0.40 member7-fpc24 136.0.0.41 member7-fpc25 136.0.0.42 member7-fpc26 136.0.0.43 member7-fpc27 136.0.0.44 member7-fpc28 136.0.0.45 member7-fpc29 136.0.0.46 member7-fpc30 136.0.0.47 member7-fpc31 136.0.0.6 lcc7-backup 136.0.0.16 lcc7-fpc0 136.0.0.17 lcc7-fpc1 136.0.0.18 lcc7-fpc2 136.0.0.19 lcc7-fpc3 136.0.0.20 lcc7-fpc4 136.0.0.21 lcc7-fpc5 136.0.0.22 lcc7-fpc6 136.0.0.23 lcc7-fpc7 136.0.0.48 lcc7-spmb0 136.0.0.49 lcc7-spmb1 137.0.0.6 lcc8-backup 137.0.0.16 lcc8-fpc0 137.0.0.17 lcc8-fpc1 137.0.0.18 lcc8-fpc2 137.0.0.19 lcc8-fpc3 137.0.0.20 lcc8-fpc4 137.0.0.21 lcc8-fpc5 137.0.0.22 lcc8-fpc6 137.0.0.23 lcc8-fpc7 137.0.0.48 lcc8-spmb0 137.0.0.49 lcc8-spmb1 #LCC 8 (or MEMBER 8 on Virtual Chassis) 137.0.0.1 lcc8-master member8-master member8 137.0.0.4 lcc8-re0 member8-re0 137.0.0.5 lcc8-re1 member8-re1 137.0.0.6 lcc8-backup member8-backup 137.0.0.16 member8-fpc0 137.0.0.17 member8-fpc1 137.0.0.18 member8-fpc2 137.0.0.19 member8-fpc3 137.0.0.20 member8-fpc4 137.0.0.21 member8-fpc5 137.0.0.22 member8-fpc6 137.0.0.23 member8-fpc7 137.0.0.24 member8-fpc8 137.0.0.25 member8-fpc9 137.0.0.26 member8-fpc10 137.0.0.27 member8-fpc11 137.0.0.28 member8-fpc12 137.0.0.29 member8-fpc13 137.0.0.30 member8-fpc14 137.0.0.31 member8-fpc15 137.0.0.32 member8-fpc16 137.0.0.33 member8-fpc17 137.0.0.34 member8-fpc18 137.0.0.35 member8-fpc19 137.0.0.36 member8-fpc20 137.0.0.37 member8-fpc21 137.0.0.38 member8-fpc22 137.0.0.39 member8-fpc23 137.0.0.40 member8-fpc24 137.0.0.41 member8-fpc25 137.0.0.42 member8-fpc26 137.0.0.43 member8-fpc27 137.0.0.44 member8-fpc28 137.0.0.45 member8-fpc29 137.0.0.46 member8-fpc30 137.0.0.47 member8-fpc31 138.0.0.6 lcc9-backup 138.0.0.16 lcc9-fpc0 138.0.0.17 lcc9-fpc1 138.0.0.18 lcc9-fpc2 138.0.0.19 lcc9-fpc3 138.0.0.20 lcc9-fpc4 138.0.0.21 lcc9-fpc5 138.0.0.22 lcc9-fpc6 138.0.0.23 lcc9-fpc7 138.0.0.48 lcc9-spmb0 138.0.0.49 lcc9-spmb1 #LCC 9 (or MEMBER 9 on Virtual Chassis) 138.0.0.1 lcc9-master member9-master member9 138.0.0.4 lcc9-re0 member9-re0 138.0.0.5 lcc9-re1 member9-re1 138.0.0.6 lcc9-backup member9-backup 138.0.0.16 member9-fpc0 138.0.0.17 member9-fpc1 138.0.0.18 member9-fpc2 138.0.0.19 member9-fpc3 138.0.0.20 member9-fpc4 138.0.0.21 member9-fpc5 138.0.0.22 member9-fpc6 138.0.0.23 member9-fpc7 138.0.0.24 member9-fpc8 138.0.0.25 member9-fpc9 138.0.0.26 member9-fpc10 138.0.0.27 member9-fpc11 138.0.0.28 member9-fpc12 138.0.0.29 member9-fpc13 138.0.0.30 member9-fpc14 138.0.0.31 member9-fpc15 138.0.0.32 member9-fpc16 138.0.0.33 member9-fpc17 138.0.0.34 member9-fpc18 138.0.0.35 member9-fpc19 138.0.0.36 member9-fpc20 138.0.0.37 member9-fpc21 138.0.0.38 member9-fpc22 138.0.0.39 member9-fpc23 138.0.0.40 member9-fpc24 138.0.0.41 member9-fpc25 138.0.0.42 member9-fpc26 138.0.0.43 member9-fpc27 138.0.0.44 member9-fpc28 138.0.0.45 member9-fpc29 138.0.0.46 member9-fpc30 138.0.0.47 member9-fpc31 139.0.0.6 lcc10-backup 139.0.0.16 lcc10-fpc0 139.0.0.17 lcc10-fpc1 139.0.0.18 lcc10-fpc2 139.0.0.19 lcc10-fpc3 139.0.0.20 lcc10-fpc4 139.0.0.21 lcc10-fpc5 139.0.0.22 lcc10-fpc6 139.0.0.23 lcc10-fpc7 139.0.0.48 lcc10-spmb0 139.0.0.49 lcc10-spmb1 #LCC 10 (or MEMBER 10 on Virtual Chassis) 139.0.0.1 lcc10-master member10-master 139.0.0.4 lcc10-re0 member10-re0 139.0.0.5 lcc10-re1 member10-re1 139.0.0.6 lcc10-backup member10-backup 139.0.0.16 member10-fpc0 139.0.0.17 member10-fpc1 139.0.0.18 member10-fpc2 139.0.0.19 member10-fpc3 139.0.0.20 member10-fpc4 139.0.0.21 member10-fpc5 139.0.0.22 member10-fpc6 139.0.0.23 member10-fpc7 139.0.0.24 member10-fpc8 139.0.0.25 member10-fpc9 139.0.0.26 member10-fpc10 139.0.0.27 member10-fpc11 139.0.0.28 member10-fpc12 139.0.0.29 member10-fpc13 139.0.0.30 member10-fpc14 139.0.0.31 member10-fpc15 139.0.0.32 member10-fpc16 139.0.0.33 member10-fpc17 139.0.0.34 member10-fpc18 139.0.0.35 member10-fpc19 139.0.0.36 member10-fpc20 139.0.0.37 member10-fpc21 139.0.0.38 member10-fpc22 139.0.0.39 member10-fpc23 139.0.0.40 member10-fpc24 139.0.0.41 member10-fpc25 139.0.0.42 member10-fpc26 139.0.0.43 member10-fpc27 139.0.0.44 member10-fpc28 139.0.0.45 member10-fpc29 139.0.0.46 member10-fpc30 139.0.0.47 member10-fpc31 140.0.0.6 lcc11-backup 140.0.0.16 lcc11-fpc0 140.0.0.17 lcc11-fpc1 140.0.0.18 lcc11-fpc2 140.0.0.19 lcc11-fpc3 140.0.0.20 lcc11-fpc4 140.0.0.21 lcc11-fpc5 140.0.0.22 lcc11-fpc6 140.0.0.23 lcc11-fpc7 140.0.0.48 lcc11-spmb0 140.0.0.49 lcc11-spmb1 #LCC 11 (or MEMBER 11 on Virtual Chassis) 140.0.0.1 lcc11-master member11-master 140.0.0.4 lcc11-re0 member11-re0 140.0.0.5 lcc11-re1 member11-re1 140.0.0.6 lcc11-backup member11-backup 140.0.0.16 member11-fpc0 140.0.0.17 member11-fpc1 140.0.0.18 member11-fpc2 140.0.0.19 member11-fpc3 140.0.0.20 member11-fpc4 140.0.0.21 member11-fpc5 140.0.0.22 member11-fpc6 140.0.0.23 member11-fpc7 140.0.0.24 member11-fpc8 140.0.0.25 member11-fpc9 140.0.0.26 member11-fpc10 140.0.0.27 member11-fpc11 140.0.0.28 member11-fpc12 140.0.0.29 member11-fpc13 140.0.0.30 member11-fpc14 140.0.0.31 member11-fpc15 140.0.0.32 member11-fpc16 140.0.0.33 member11-fpc17 140.0.0.34 member11-fpc18 140.0.0.35 member11-fpc19 140.0.0.36 member11-fpc20 140.0.0.37 member11-fpc21 140.0.0.38 member11-fpc22 140.0.0.39 member11-fpc23 140.0.0.40 member11-fpc24 140.0.0.41 member11-fpc25 140.0.0.42 member11-fpc26 140.0.0.43 member11-fpc27 140.0.0.44 member11-fpc28 140.0.0.45 member11-fpc29 140.0.0.46 member11-fpc30 140.0.0.47 member11-fpc31 141.0.0.6 lcc12-backup 141.0.0.16 lcc12-fpc0 141.0.0.17 lcc12-fpc1 141.0.0.18 lcc12-fpc2 141.0.0.19 lcc12-fpc3 141.0.0.20 lcc12-fpc4 141.0.0.21 lcc12-fpc5 141.0.0.22 lcc12-fpc6 141.0.0.23 lcc12-fpc7 141.0.0.48 lcc12-spmb0 141.0.0.49 lcc12-spmb1 #LCC 12 (or MEMBER 12 on Virtual Chassis) 141.0.0.1 lcc12-master member12-master 141.0.0.4 lcc12-re0 member12-re0 141.0.0.5 lcc12-re1 member12-re1 141.0.0.6 lcc12-backup member12-backup 141.0.0.16 member12-fpc0 141.0.0.17 member12-fpc1 141.0.0.18 member12-fpc2 141.0.0.19 member12-fpc3 141.0.0.20 member12-fpc4 141.0.0.21 member12-fpc5 141.0.0.22 member12-fpc6 141.0.0.23 member12-fpc7 141.0.0.24 member12-fpc8 141.0.0.25 member12-fpc9 141.0.0.26 member12-fpc10 141.0.0.27 member12-fpc11 141.0.0.28 member12-fpc12 141.0.0.29 member12-fpc13 141.0.0.30 member12-fpc14 141.0.0.31 member12-fpc15 141.0.0.32 member12-fpc16 141.0.0.33 member12-fpc17 141.0.0.34 member12-fpc18 141.0.0.35 member12-fpc19 141.0.0.36 member12-fpc20 141.0.0.37 member12-fpc21 141.0.0.38 member12-fpc22 141.0.0.39 member12-fpc23 141.0.0.40 member12-fpc24 141.0.0.41 member12-fpc25 141.0.0.42 member12-fpc26 141.0.0.43 member12-fpc27 141.0.0.44 member12-fpc28 141.0.0.45 member12-fpc29 141.0.0.46 member12-fpc30 141.0.0.47 member12-fpc31 142.0.0.6 lcc13-backup 142.0.0.16 lcc13-fpc0 142.0.0.17 lcc13-fpc1 142.0.0.18 lcc13-fpc2 142.0.0.19 lcc13-fpc3 142.0.0.20 lcc13-fpc4 142.0.0.21 lcc13-fpc5 142.0.0.22 lcc13-fpc6 142.0.0.23 lcc13-fpc7 142.0.0.48 lcc13-spmb0 142.0.0.49 lcc13-spmb1 #LCC 13 (or MEMBER 13 on Virtual Chassis) 142.0.0.1 lcc13-master member13-master 142.0.0.4 lcc13-re0 member13-re0 142.0.0.5 lcc13-re1 member13-re1 142.0.0.6 lcc13-backup member13-backup 142.0.0.16 member13-fpc0 142.0.0.17 member13-fpc1 142.0.0.18 member13-fpc2 142.0.0.19 member13-fpc3 142.0.0.20 member13-fpc4 142.0.0.21 member13-fpc5 142.0.0.22 member13-fpc6 142.0.0.23 member13-fpc7 142.0.0.24 member13-fpc8 142.0.0.25 member13-fpc9 142.0.0.26 member13-fpc10 142.0.0.27 member13-fpc11 142.0.0.28 member13-fpc12 142.0.0.29 member13-fpc13 142.0.0.30 member13-fpc14 142.0.0.31 member13-fpc15 142.0.0.32 member13-fpc16 142.0.0.33 member13-fpc17 142.0.0.34 member13-fpc18 142.0.0.35 member13-fpc19 142.0.0.36 member13-fpc20 142.0.0.37 member13-fpc21 142.0.0.38 member13-fpc22 142.0.0.39 member13-fpc23 142.0.0.40 member13-fpc24 142.0.0.41 member13-fpc25 142.0.0.42 member13-fpc26 142.0.0.43 member13-fpc27 142.0.0.44 member13-fpc28 142.0.0.45 member13-fpc29 142.0.0.46 member13-fpc30 142.0.0.47 member13-fpc31 143.0.0.6 lcc14-backup 143.0.0.16 lcc14-fpc0 143.0.0.17 lcc14-fpc1 143.0.0.18 lcc14-fpc2 143.0.0.19 lcc14-fpc3 143.0.0.20 lcc14-fpc4 143.0.0.21 lcc14-fpc5 143.0.0.22 lcc14-fpc6 143.0.0.23 lcc14-fpc7 143.0.0.48 lcc14-spmb0 143.0.0.49 lcc14-spmb1 #LCC 14 (or MEMBER 14 on Virtual Chassis) 143.0.0.1 lcc14-master member14-master 143.0.0.4 lcc14-re0 member14-re0 143.0.0.5 lcc14-re1 member14-re1 143.0.0.6 lcc14-backup member14-backup 143.0.0.16 member14-fpc0 143.0.0.17 member14-fpc1 143.0.0.18 member14-fpc2 143.0.0.19 member14-fpc3 143.0.0.20 member14-fpc4 143.0.0.21 member14-fpc5 143.0.0.22 member14-fpc6 143.0.0.23 member14-fpc7 143.0.0.24 member14-fpc8 143.0.0.25 member14-fpc9 143.0.0.26 member14-fpc10 143.0.0.27 member14-fpc11 143.0.0.28 member14-fpc12 143.0.0.29 member14-fpc13 143.0.0.30 member14-fpc14 143.0.0.31 member14-fpc15 143.0.0.32 member14-fpc16 143.0.0.33 member14-fpc17 143.0.0.34 member14-fpc18 143.0.0.35 member14-fpc19 143.0.0.36 member14-fpc20 143.0.0.37 member14-fpc21 143.0.0.38 member14-fpc22 143.0.0.39 member14-fpc23 143.0.0.40 member14-fpc24 143.0.0.41 member14-fpc25 143.0.0.42 member14-fpc26 143.0.0.43 member14-fpc27 143.0.0.44 member14-fpc28 143.0.0.45 member14-fpc29 143.0.0.46 member14-fpc30 143.0.0.47 member14-fpc31 144.0.0.6 lcc15-backup 144.0.0.16 lcc15-fpc0 144.0.0.17 lcc15-fpc1 144.0.0.18 lcc15-fpc2 144.0.0.19 lcc15-fpc3 144.0.0.20 lcc15-fpc4 144.0.0.21 lcc15-fpc5 144.0.0.22 lcc15-fpc6 144.0.0.23 lcc15-fpc7 144.0.0.48 lcc15-spmb0 144.0.0.49 lcc15-spmb1 #LCC 15 (or MEMBER 15 on Virtual Chassis) 144.0.0.1 lcc15-master member15-master 144.0.0.4 lcc15-re0 member15-re0 144.0.0.5 lcc15-re1 member15-re1 144.0.0.6 lcc15-backup member15-backup 144.0.0.16 member15-fpc0 144.0.0.17 member15-fpc1 144.0.0.18 member15-fpc2 144.0.0.19 member15-fpc3 144.0.0.20 member15-fpc4 144.0.0.21 member15-fpc5 144.0.0.22 member15-fpc6 144.0.0.23 member15-fpc7 144.0.0.24 member15-fpc8 144.0.0.25 member15-fpc9 144.0.0.26 member15-fpc10 144.0.0.27 member15-fpc11 144.0.0.28 member15-fpc12 144.0.0.29 member15-fpc13 144.0.0.30 member15-fpc14 144.0.0.31 member15-fpc15 144.0.0.32 member15-fpc16 144.0.0.33 member15-fpc17 144.0.0.34 member15-fpc18 144.0.0.35 member15-fpc19 144.0.0.36 member15-fpc20 144.0.0.37 member15-fpc21 144.0.0.38 member15-fpc22 144.0.0.39 member15-fpc23 144.0.0.40 member15-fpc24 144.0.0.41 member15-fpc25 144.0.0.42 member15-fpc26 144.0.0.43 member15-fpc27 144.0.0.44 member15-fpc28 144.0.0.45 member15-fpc29 144.0.0.46 member15-fpc30 144.0.0.47 member15-fpc31 #LCC 16 (or MEMBER 16 on Virtual Chassis) 145.0.0.1 lcc16-master member16-master 145.0.0.4 lcc16-re0 member16-re0 145.0.0.5 lcc16-re1 member16-re1 145.0.0.6 lcc16-backup member16-backup 145.0.0.16 member16-fpc0 145.0.0.17 member16-fpc1 145.0.0.18 member16-fpc2 145.0.0.19 member16-fpc3 145.0.0.20 member16-fpc4 145.0.0.21 member16-fpc5 145.0.0.22 member16-fpc6 145.0.0.23 member16-fpc7 145.0.0.24 member16-fpc8 145.0.0.25 member16-fpc9 145.0.0.26 member16-fpc10 145.0.0.27 member16-fpc11 145.0.0.28 member16-fpc12 145.0.0.29 member16-fpc13 145.0.0.30 member16-fpc14 145.0.0.31 member16-fpc15 145.0.0.32 member16-fpc16 145.0.0.33 member16-fpc17 145.0.0.34 member16-fpc18 145.0.0.35 member16-fpc19 145.0.0.36 member16-fpc20 145.0.0.37 member16-fpc21 145.0.0.38 member16-fpc22 145.0.0.39 member16-fpc23 145.0.0.40 member16-fpc24 145.0.0.41 member16-fpc25 145.0.0.42 member16-fpc26 145.0.0.43 member16-fpc27 145.0.0.44 member16-fpc28 145.0.0.45 member16-fpc29 145.0.0.46 member16-fpc30 145.0.0.47 member16-fpc31 #LCC 17 (or MEMBER 17 on Virtual Chassis) 146.0.0.1 lcc17-master member17-master 146.0.0.4 lcc17-re0 member17-re0 146.0.0.5 lcc17-re1 member17-re1 146.0.0.6 lcc17-backup member17-backup 146.0.0.16 member17-fpc0 146.0.0.17 member17-fpc1 146.0.0.18 member17-fpc2 146.0.0.19 member17-fpc3 146.0.0.20 member17-fpc4 146.0.0.21 member17-fpc5 146.0.0.22 member17-fpc6 146.0.0.23 member17-fpc7 146.0.0.24 member17-fpc8 146.0.0.25 member17-fpc9 146.0.0.26 member17-fpc10 146.0.0.27 member17-fpc11 146.0.0.28 member17-fpc12 146.0.0.29 member17-fpc13 146.0.0.30 member17-fpc14 146.0.0.31 member17-fpc15 146.0.0.32 member17-fpc16 146.0.0.33 member17-fpc17 146.0.0.34 member17-fpc18 146.0.0.35 member17-fpc19 146.0.0.36 member17-fpc20 146.0.0.37 member17-fpc21 146.0.0.38 member17-fpc22 146.0.0.39 member17-fpc23 146.0.0.40 member17-fpc24 146.0.0.41 member17-fpc25 146.0.0.42 member17-fpc26 146.0.0.43 member17-fpc27 146.0.0.44 member17-fpc28 146.0.0.45 member17-fpc29 146.0.0.46 member17-fpc30 146.0.0.47 member17-fpc31 #LCC 18 (or MEMBER 18 on Virtual Chassis) 147.0.0.1 lcc18-master member18-master 147.0.0.4 lcc18-re0 member18-re0 147.0.0.5 lcc18-re1 member18-re1 147.0.0.6 lcc18-backup member18-backup 147.0.0.16 member18-fpc0 147.0.0.17 member18-fpc1 147.0.0.18 member18-fpc2 147.0.0.19 member18-fpc3 147.0.0.20 member18-fpc4 147.0.0.21 member18-fpc5 147.0.0.22 member18-fpc6 147.0.0.23 member18-fpc7 147.0.0.24 member18-fpc8 147.0.0.25 member18-fpc9 147.0.0.26 member18-fpc10 147.0.0.27 member18-fpc11 147.0.0.28 member18-fpc12 147.0.0.29 member18-fpc13 147.0.0.30 member18-fpc14 147.0.0.31 member18-fpc15 147.0.0.32 member18-fpc16 147.0.0.33 member18-fpc17 147.0.0.34 member18-fpc18 147.0.0.35 member18-fpc19 147.0.0.36 member18-fpc20 147.0.0.37 member18-fpc21 147.0.0.38 member18-fpc22 147.0.0.39 member18-fpc23 147.0.0.40 member18-fpc24 147.0.0.41 member18-fpc25 147.0.0.42 member18-fpc26 147.0.0.43 member18-fpc27 147.0.0.44 member18-fpc28 147.0.0.45 member18-fpc29 147.0.0.46 member18-fpc30 147.0.0.47 member18-fpc31 #LCC 19 (or MEMBER 19 on Virtual Chassis) 148.0.0.1 lcc19-master member19-master 148.0.0.4 lcc19-re0 member19-re0 148.0.0.5 lcc19-re1 member19-re1 148.0.0.6 lcc19-backup member19-backup 148.0.0.16 member19-fpc0 148.0.0.17 member19-fpc1 148.0.0.18 member19-fpc2 148.0.0.19 member19-fpc3 148.0.0.20 member19-fpc4 148.0.0.21 member19-fpc5 148.0.0.22 member19-fpc6 148.0.0.23 member19-fpc7 148.0.0.24 member19-fpc8 148.0.0.25 member19-fpc9 148.0.0.26 member19-fpc10 148.0.0.27 member19-fpc11 148.0.0.28 member19-fpc12 148.0.0.29 member19-fpc13 148.0.0.30 member19-fpc14 148.0.0.31 member19-fpc15 148.0.0.32 member19-fpc16 148.0.0.33 member19-fpc17 148.0.0.34 member19-fpc18 148.0.0.35 member19-fpc19 148.0.0.36 member19-fpc20 148.0.0.37 member19-fpc21 148.0.0.38 member19-fpc22 148.0.0.39 member19-fpc23 148.0.0.40 member19-fpc24 148.0.0.41 member19-fpc25 148.0.0.42 member19-fpc26 148.0.0.43 member19-fpc27 148.0.0.44 member19-fpc28 148.0.0.45 member19-fpc29 148.0.0.46 member19-fpc30 148.0.0.47 member19-fpc31 #LCC 20 (or MEMBER 20 on Virtual Chassis) 149.0.0.1 lcc20-master member20-master 149.0.0.4 lcc20-re0 member20-re0 149.0.0.5 lcc20-re1 member20-re1 149.0.0.6 lcc20-backup member20-backup 149.0.0.16 member20-fpc0 149.0.0.17 member20-fpc1 149.0.0.18 member20-fpc2 149.0.0.19 member20-fpc3 149.0.0.20 member20-fpc4 149.0.0.21 member20-fpc5 149.0.0.22 member20-fpc6 149.0.0.23 member20-fpc7 149.0.0.24 member20-fpc8 149.0.0.25 member20-fpc9 149.0.0.26 member20-fpc10 149.0.0.27 member20-fpc11 149.0.0.28 member20-fpc12 149.0.0.29 member20-fpc13 149.0.0.30 member20-fpc14 149.0.0.31 member20-fpc15 149.0.0.32 member20-fpc16 149.0.0.33 member20-fpc17 149.0.0.34 member20-fpc18 149.0.0.35 member20-fpc19 149.0.0.36 member20-fpc20 149.0.0.37 member20-fpc21 149.0.0.38 member20-fpc22 149.0.0.39 member20-fpc23 149.0.0.40 member20-fpc24 149.0.0.41 member20-fpc25 149.0.0.42 member20-fpc26 149.0.0.43 member20-fpc27 149.0.0.44 member20-fpc28 149.0.0.45 member20-fpc29 149.0.0.46 member20-fpc30 149.0.0.47 member20-fpc31 #LCC 21 (or MEMBER 21 on Virtual Chassis) 150.0.0.1 lcc21-master member21-master 150.0.0.4 lcc21-re0 member21-re0 150.0.0.5 lcc21-re1 member21-re1 150.0.0.6 lcc21-backup member21-backup 150.0.0.16 member21-fpc0 150.0.0.17 member21-fpc1 150.0.0.18 member21-fpc2 150.0.0.19 member21-fpc3 150.0.0.20 member21-fpc4 150.0.0.21 member21-fpc5 150.0.0.22 member21-fpc6 150.0.0.23 member21-fpc7 150.0.0.24 member21-fpc8 150.0.0.25 member21-fpc9 150.0.0.26 member21-fpc10 150.0.0.27 member21-fpc11 150.0.0.28 member21-fpc12 150.0.0.29 member21-fpc13 150.0.0.30 member21-fpc14 150.0.0.31 member21-fpc15 150.0.0.32 member21-fpc16 150.0.0.33 member21-fpc17 150.0.0.34 member21-fpc18 150.0.0.35 member21-fpc19 150.0.0.36 member21-fpc20 150.0.0.37 member21-fpc21 150.0.0.38 member21-fpc22 150.0.0.39 member21-fpc23 150.0.0.40 member21-fpc24 150.0.0.41 member21-fpc25 150.0.0.42 member21-fpc26 150.0.0.43 member21-fpc27 150.0.0.44 member21-fpc28 150.0.0.45 member21-fpc29 150.0.0.46 member21-fpc30 150.0.0.47 member21-fpc31 #LCC 22 (or MEMBER 22 on Virtual Chassis) 151.0.0.1 lcc22-master member22-master 151.0.0.4 lcc22-re0 member22-re0 151.0.0.5 lcc22-re1 member22-re1 151.0.0.6 lcc22-backup member22-backup 151.0.0.16 member22-fpc0 151.0.0.17 member22-fpc1 151.0.0.18 member22-fpc2 151.0.0.19 member22-fpc3 151.0.0.20 member22-fpc4 151.0.0.21 member22-fpc5 151.0.0.22 member22-fpc6 151.0.0.23 member22-fpc7 151.0.0.24 member22-fpc8 151.0.0.25 member22-fpc9 151.0.0.26 member22-fpc10 151.0.0.27 member22-fpc11 151.0.0.28 member22-fpc12 151.0.0.29 member22-fpc13 151.0.0.30 member22-fpc14 151.0.0.31 member22-fpc15 151.0.0.32 member22-fpc16 151.0.0.33 member22-fpc17 151.0.0.34 member22-fpc18 151.0.0.35 member22-fpc19 151.0.0.36 member22-fpc20 151.0.0.37 member22-fpc21 151.0.0.38 member22-fpc22 151.0.0.39 member22-fpc23 151.0.0.40 member22-fpc24 151.0.0.41 member22-fpc25 151.0.0.42 member22-fpc26 151.0.0.43 member22-fpc27 151.0.0.44 member22-fpc28 151.0.0.45 member22-fpc29 151.0.0.46 member22-fpc30 151.0.0.47 member22-fpc31 #LCC 23 (or MEMBER 23 on Virtual Chassis) 152.0.0.1 lcc23-master member23-master 152.0.0.4 lcc23-re0 member23-re0 152.0.0.5 lcc23-re1 member23-re1 152.0.0.6 lcc23-backup member23-backup 152.0.0.16 member23-fpc0 152.0.0.17 member23-fpc1 152.0.0.18 member23-fpc2 152.0.0.19 member23-fpc3 152.0.0.20 member23-fpc4 152.0.0.21 member23-fpc5 152.0.0.22 member23-fpc6 152.0.0.23 member23-fpc7 152.0.0.24 member23-fpc8 152.0.0.25 member23-fpc9 152.0.0.26 member23-fpc10 152.0.0.27 member23-fpc11 152.0.0.28 member23-fpc12 152.0.0.29 member23-fpc13 152.0.0.30 member23-fpc14 152.0.0.31 member23-fpc15 152.0.0.32 member23-fpc16 152.0.0.33 member23-fpc17 152.0.0.34 member23-fpc18 152.0.0.35 member23-fpc19 152.0.0.36 member23-fpc20 152.0.0.37 member23-fpc21 152.0.0.38 member23-fpc22 152.0.0.39 member23-fpc23 152.0.0.40 member23-fpc24 152.0.0.41 member23-fpc25 152.0.0.42 member23-fpc26 152.0.0.43 member23-fpc27 152.0.0.44 member23-fpc28 152.0.0.45 member23-fpc29 152.0.0.46 member23-fpc30 152.0.0.47 member23-fpc31 #LCC 24 (or MEMBER 24 on Virtual Chassis) 153.0.0.1 lcc24-master member24-master 153.0.0.4 lcc24-re0 member24-re0 153.0.0.5 lcc24-re1 member24-re1 153.0.0.6 lcc24-backup member24-backup 153.0.0.16 member24-fpc0 153.0.0.17 member24-fpc1 153.0.0.18 member24-fpc2 153.0.0.19 member24-fpc3 153.0.0.20 member24-fpc4 153.0.0.21 member24-fpc5 153.0.0.22 member24-fpc6 153.0.0.23 member24-fpc7 153.0.0.24 member24-fpc8 153.0.0.25 member24-fpc9 153.0.0.26 member24-fpc10 153.0.0.27 member24-fpc11 153.0.0.28 member24-fpc12 153.0.0.29 member24-fpc13 153.0.0.30 member24-fpc14 153.0.0.31 member24-fpc15 153.0.0.32 member24-fpc16 153.0.0.33 member24-fpc17 153.0.0.34 member24-fpc18 153.0.0.35 member24-fpc19 153.0.0.36 member24-fpc20 153.0.0.37 member24-fpc21 153.0.0.38 member24-fpc22 153.0.0.39 member24-fpc23 153.0.0.40 member24-fpc24 153.0.0.41 member24-fpc25 153.0.0.42 member24-fpc26 153.0.0.43 member24-fpc27 153.0.0.44 member24-fpc28 153.0.0.45 member24-fpc29 153.0.0.46 member24-fpc30 153.0.0.47 member24-fpc31 #LCC 25 (or MEMBER 25 on Virtual Chassis) 154.0.0.1 lcc25-master member25-master 154.0.0.4 lcc25-re0 member25-re0 154.0.0.5 lcc25-re1 member25-re1 154.0.0.6 lcc25-backup member25-backup 154.0.0.16 member25-fpc0 154.0.0.17 member25-fpc1 154.0.0.18 member25-fpc2 154.0.0.19 member25-fpc3 154.0.0.20 member25-fpc4 154.0.0.21 member25-fpc5 154.0.0.22 member25-fpc6 154.0.0.23 member25-fpc7 154.0.0.24 member25-fpc8 154.0.0.25 member25-fpc9 154.0.0.26 member25-fpc10 154.0.0.27 member25-fpc11 154.0.0.28 member25-fpc12 154.0.0.29 member25-fpc13 154.0.0.30 member25-fpc14 154.0.0.31 member25-fpc15 154.0.0.32 member25-fpc16 154.0.0.33 member25-fpc17 154.0.0.34 member25-fpc18 154.0.0.35 member25-fpc19 154.0.0.36 member25-fpc20 154.0.0.37 member25-fpc21 154.0.0.38 member25-fpc22 154.0.0.39 member25-fpc23 154.0.0.40 member25-fpc24 154.0.0.41 member25-fpc25 154.0.0.42 member25-fpc26 154.0.0.43 member25-fpc27 154.0.0.44 member25-fpc28 154.0.0.45 member25-fpc29 154.0.0.46 member25-fpc30 154.0.0.47 member25-fpc31 #LCC 26 (or MEMBER 26 on Virtual Chassis) 155.0.0.1 lcc26-master member26-master 155.0.0.4 lcc26-re0 member26-re0 155.0.0.5 lcc26-re1 member26-re1 155.0.0.6 lcc26-backup member26-backup 155.0.0.16 member26-fpc0 155.0.0.17 member26-fpc1 155.0.0.18 member26-fpc2 155.0.0.19 member26-fpc3 155.0.0.20 member26-fpc4 155.0.0.21 member26-fpc5 155.0.0.22 member26-fpc6 155.0.0.23 member26-fpc7 155.0.0.24 member26-fpc8 155.0.0.25 member26-fpc9 155.0.0.26 member26-fpc10 155.0.0.27 member26-fpc11 155.0.0.28 member26-fpc12 155.0.0.29 member26-fpc13 155.0.0.30 member26-fpc14 155.0.0.31 member26-fpc15 155.0.0.32 member26-fpc16 155.0.0.33 member26-fpc17 155.0.0.34 member26-fpc18 155.0.0.35 member26-fpc19 155.0.0.36 member26-fpc20 155.0.0.37 member26-fpc21 155.0.0.38 member26-fpc22 155.0.0.39 member26-fpc23 155.0.0.40 member26-fpc24 155.0.0.41 member26-fpc25 155.0.0.42 member26-fpc26 155.0.0.43 member26-fpc27 155.0.0.44 member26-fpc28 155.0.0.45 member26-fpc29 155.0.0.46 member26-fpc30 155.0.0.47 member26-fpc31 #LCC 27 (or MEMBER 27 on Virtual Chassis) 156.0.0.1 lcc27-master member27-master 156.0.0.4 lcc27-re0 member27-re0 156.0.0.5 lcc27-re1 member27-re1 156.0.0.6 lcc27-backup member27-backup 156.0.0.16 member27-fpc0 156.0.0.17 member27-fpc1 156.0.0.18 member27-fpc2 156.0.0.19 member27-fpc3 156.0.0.20 member27-fpc4 156.0.0.21 member27-fpc5 156.0.0.22 member27-fpc6 156.0.0.23 member27-fpc7 156.0.0.24 member27-fpc8 156.0.0.25 member27-fpc9 156.0.0.26 member27-fpc10 156.0.0.27 member27-fpc11 156.0.0.28 member27-fpc12 156.0.0.29 member27-fpc13 156.0.0.30 member27-fpc14 156.0.0.31 member27-fpc15 156.0.0.32 member27-fpc16 156.0.0.33 member27-fpc17 156.0.0.34 member27-fpc18 156.0.0.35 member27-fpc19 156.0.0.36 member27-fpc20 156.0.0.37 member27-fpc21 156.0.0.38 member27-fpc22 156.0.0.39 member27-fpc23 156.0.0.40 member27-fpc24 156.0.0.41 member27-fpc25 156.0.0.42 member27-fpc26 156.0.0.43 member27-fpc27 156.0.0.44 member27-fpc28 156.0.0.45 member27-fpc29 156.0.0.46 member27-fpc30 156.0.0.47 member27-fpc31 #LCC 28 (or MEMBER 28 on Virtual Chassis) 157.0.0.1 lcc28-master member28-master 157.0.0.4 lcc28-re0 member28-re0 157.0.0.5 lcc28-re1 member28-re1 157.0.0.6 lcc28-backup member28-backup 157.0.0.16 member28-fpc0 157.0.0.17 member28-fpc1 157.0.0.18 member28-fpc2 157.0.0.19 member28-fpc3 157.0.0.20 member28-fpc4 157.0.0.21 member28-fpc5 157.0.0.22 member28-fpc6 157.0.0.23 member28-fpc7 157.0.0.24 member28-fpc8 157.0.0.25 member28-fpc9 157.0.0.26 member28-fpc10 157.0.0.27 member28-fpc11 157.0.0.28 member28-fpc12 157.0.0.29 member28-fpc13 157.0.0.30 member28-fpc14 157.0.0.31 member28-fpc15 157.0.0.32 member28-fpc16 157.0.0.33 member28-fpc17 157.0.0.34 member28-fpc18 157.0.0.35 member28-fpc19 157.0.0.36 member28-fpc20 157.0.0.37 member28-fpc21 157.0.0.38 member28-fpc22 157.0.0.39 member28-fpc23 157.0.0.40 member28-fpc24 157.0.0.41 member28-fpc25 157.0.0.42 member28-fpc26 157.0.0.43 member28-fpc27 157.0.0.44 member28-fpc28 157.0.0.45 member28-fpc29 157.0.0.46 member28-fpc30 157.0.0.47 member28-fpc31 #LCC 29 (or MEMBER 29 on Virtual Chassis) 158.0.0.1 lcc29-master member29-master 158.0.0.4 lcc29-re0 member29-re0 158.0.0.5 lcc29-re1 member29-re1 158.0.0.6 lcc29-backup member29-backup 158.0.0.16 member29-fpc0 158.0.0.17 member29-fpc1 158.0.0.18 member29-fpc2 158.0.0.19 member29-fpc3 158.0.0.20 member29-fpc4 158.0.0.21 member29-fpc5 158.0.0.22 member29-fpc6 158.0.0.23 member29-fpc7 158.0.0.24 member29-fpc8 158.0.0.25 member29-fpc9 158.0.0.26 member29-fpc10 158.0.0.27 member29-fpc11 158.0.0.28 member29-fpc12 158.0.0.29 member29-fpc13 158.0.0.30 member29-fpc14 158.0.0.31 member29-fpc15 158.0.0.32 member29-fpc16 158.0.0.33 member29-fpc17 158.0.0.34 member29-fpc18 158.0.0.35 member29-fpc19 158.0.0.36 member29-fpc20 158.0.0.37 member29-fpc21 158.0.0.38 member29-fpc22 158.0.0.39 member29-fpc23 158.0.0.40 member29-fpc24 158.0.0.41 member29-fpc25 158.0.0.42 member29-fpc26 158.0.0.43 member29-fpc27 158.0.0.44 member29-fpc28 158.0.0.45 member29-fpc29 158.0.0.46 member29-fpc30 158.0.0.47 member29-fpc31 #LCC 30 (or MEMBER 30 on Virtual Chassis) 159.0.0.1 lcc30-master member30-master 159.0.0.4 lcc30-re0 member30-re0 159.0.0.5 lcc30-re1 member30-re1 159.0.0.6 lcc30-backup member30-backup 159.0.0.16 member30-fpc0 159.0.0.17 member30-fpc1 159.0.0.18 member30-fpc2 159.0.0.19 member30-fpc3 159.0.0.20 member30-fpc4 159.0.0.21 member30-fpc5 159.0.0.22 member30-fpc6 159.0.0.23 member30-fpc7 159.0.0.24 member30-fpc8 159.0.0.25 member30-fpc9 159.0.0.26 member30-fpc10 159.0.0.27 member30-fpc11 159.0.0.28 member30-fpc12 159.0.0.29 member30-fpc13 159.0.0.30 member30-fpc14 159.0.0.31 member30-fpc15 159.0.0.32 member30-fpc16 159.0.0.33 member30-fpc17 159.0.0.34 member30-fpc18 159.0.0.35 member30-fpc19 159.0.0.36 member30-fpc20 159.0.0.37 member30-fpc21 159.0.0.38 member30-fpc22 159.0.0.39 member30-fpc23 159.0.0.40 member30-fpc24 159.0.0.41 member30-fpc25 159.0.0.42 member30-fpc26 159.0.0.43 member30-fpc27 159.0.0.44 member30-fpc28 159.0.0.45 member30-fpc29 159.0.0.46 member30-fpc30 159.0.0.47 member30-fpc31 #LCC 31 (or MEMBER 31 on Virtual Chassis) 160.0.0.1 lcc31-master member31-master 160.0.0.4 lcc31-re0 member31-re0 160.0.0.5 lcc31-re1 member31-re1 160.0.0.6 lcc31-backup member31-backup 160.0.0.16 member31-fpc0 160.0.0.17 member31-fpc1 160.0.0.18 member31-fpc2 160.0.0.19 member31-fpc3 160.0.0.20 member31-fpc4 160.0.0.21 member31-fpc5 160.0.0.22 member31-fpc6 160.0.0.23 member31-fpc7 160.0.0.24 member31-fpc8 160.0.0.25 member31-fpc9 160.0.0.26 member31-fpc10 160.0.0.27 member31-fpc11 160.0.0.28 member31-fpc12 160.0.0.29 member31-fpc13 160.0.0.30 member31-fpc14 160.0.0.31 member31-fpc15 160.0.0.32 member31-fpc16 160.0.0.33 member31-fpc17 160.0.0.34 member31-fpc18 160.0.0.35 member31-fpc19 160.0.0.36 member31-fpc20 160.0.0.37 member31-fpc21 160.0.0.38 member31-fpc22 160.0.0.39 member31-fpc23 160.0.0.40 member31-fpc24 160.0.0.41 member31-fpc25 160.0.0.42 member31-fpc26 160.0.0.43 member31-fpc27 160.0.0.44 member31-fpc28 160.0.0.45 member31-fpc29 160.0.0.46 member31-fpc30 160.0.0.47 member31-fpc31 #VIRT SC 161.0.0.1 sc-master 161.0.0.4 sc-re0 161.0.0.5 sc-re1 161.0.0.6 sc-backup #SFC 0 162.0.0.1 sfc0-master 162.0.0.4 sfc0-re0 162.0.0.5 sfc0-re1 162.0.0.6 sfc0-backup 162.0.0.48 sfc0-spmb0 162.0.0.49 sfc0-spmb1 #SFC 1 163.0.0.1 sfc1-master 163.0.0.4 sfc1-re0 163.0.0.5 sfc1-re1 163.0.0.6 sfc1-backup 163.0.0.48 sfc1-spmb0 163.0.0.49 sfc1-spmb1 #SFC 2 164.0.0.1 sfc2-master 164.0.0.4 sfc2-re0 164.0.0.5 sfc2-re1 164.0.0.6 sfc2-backup 164.0.0.48 sfc2-spmb0 164.0.0.49 sfc2-spmb1 #SFC 3 165.0.0.1 sfc3-master 165.0.0.4 sfc3-re0 165.0.0.5 sfc3-re1 165.0.0.6 sfc3-backup 165.0.0.48 sfc3-spmb0 165.0.0.49 sfc3-spmb1 #SFC 4 166.0.0.1 sfc4-master 166.0.0.4 sfc4-re0 166.0.0.5 sfc4-re1 166.0.0.6 sfc4-backup 166.0.0.48 sfc4-spmb0 166.0.0.49 sfc4-spmb1 #JCS 190.0.0.1 psd%d-master 190.0.0.4 psd%d-re0 190.0.0.5 psd%d-re1 190.0.0.6 psd%d-backup # Old IP address format (RT_IRS_V2) # # Single Chassis Hostnames # 10.0.0.1 master 10.0.0.4 re0 10.0.0.5 re1 10.0.0.16 fpc0 10.0.0.17 fpc1 10.0.0.18 fpc2 10.0.0.19 fpc3 10.0.0.20 fpc4 10.0.0.21 fpc5 10.0.0.22 fpc6 10.0.0.23 fpc7 10.0.0.24 fpc8 10.0.0.25 fpc9 10.0.0.26 fpc10 10.0.0.27 fpc11 10.0.0.28 fpc12 10.0.0.29 fpc13 10.0.0.30 fpc14 10.0.0.31 fpc15 # # Multi Chassis Hostnames # #SCC 10.16.0.1 scc-master 10.16.0.4 scc-re0 10.16.0.5 scc-re1 #LCC 0 10.1.0.1 lcc0-master member0-master 10.1.0.4 lcc0-re0 member0-re0 10.1.0.5 lcc0-re1 member0-re1 10.1.0.6 lcc0-backup member0-backup #LCC 1 10.2.0.1 lcc1-master member1-master 10.2.0.4 lcc1-re0 member1-re0 10.2.0.5 lcc1-re1 member1-re1 10.2.0.6 lcc1-backup member1-backup #LCC 2 10.3.0.1 lcc2-master member2-master 10.3.0.4 lcc2-re0 member2-re0 10.3.0.5 lcc2-re1 member2-re1 10.3.0.6 lcc2-backup member2-backup #LCC 3 10.4.0.1 lcc3-master member3-master 10.4.0.4 lcc3-re0 member3-re0 10.4.0.5 lcc3-re1 member3-re1 10.4.0.6 lcc3-backup member3-backup #LCC 4 10.5.0.1 lcc4-master member4-master 10.5.0.4 lcc4-re0 member4-re0 10.5.0.5 lcc4-re1 member4-re1 10.5.0.6 lcc4-backup member4-backup #LCC 5 10.6.0.1 lcc5-master member5-master 10.6.0.4 lcc5-re0 member5-re0 10.6.0.5 lcc5-re1 member5-re1 10.6.0.6 lcc5-backup member5-backup #LCC 6 10.7.0.1 lcc6-master member6-master 10.7.0.4 lcc6-re0 member6-re0 10.7.0.5 lcc6-re1 member6-re1 10.7.0.6 lcc6-backup member6-backup #LCC 7 10.8.0.1 lcc7-master member7-master 10.8.0.4 lcc7-re0 member7-re0 10.8.0.5 lcc7-re1 member7-re1 10.8.0.6 lcc7-backup member7-backup #LCC 8 10.9.0.1 lcc8-master member8-master 10.9.0.4 lcc8-re0 member8-re0 10.9.0.5 lcc8-re1 member8-re1 10.9.0.6 lcc8-backup member8-backup #LCC 9 10.10.0.1 lcc9-master member9-master 10.10.0.4 lcc9-re0 member9-re0 10.10.0.5 lcc9-re1 member9-re1 10.10.0.6 lcc9-backup member9-backup #LCC 10 10.11.0.1 lcc10-master member10-master 10.11.0.4 lcc10-re0 member10-re0 10.11.0.5 lcc10-re1 member10-re1 10.11.0.6 lcc10-backup member10-backup #LCC 11 10.12.0.1 lcc11-master member11-master 10.12.0.4 lcc11-re0 member11-re0 10.12.0.5 lcc11-re1 member11-re1 10.12.0.6 lcc11-backup member11-backup #LCC 12 10.13.0.1 lcc12-master member12-master 10.13.0.4 lcc12-re0 member12-re0 10.13.0.5 lcc12-re1 member12-re1 10.13.0.6 lcc12-backup member12-backup #LCC 13 10.14.0.1 lcc13-master member13-master 10.14.0.4 lcc13-re0 member13-re0 10.14.0.5 lcc13-re1 member13-re1 10.14.0.6 lcc13-backup member13-backup #LCC 14 10.15.0.1 lcc14-master member14-master 10.15.0.4 lcc14-re0 member14-re0 10.15.0.5 lcc14-re1 member14-re1 10.15.0.6 lcc14-backup member14-backup #LCC 15 10.16.0.1 lcc15-master member15-master 10.16.0.4 lcc15-re0 member15-re0 10.16.0.5 lcc15-re1 member15-re1 10.16.0.6 lcc15-backup member15-backup #SFC 0 10.34.0.1 sfc0-master 10.34.0.4 sfc0-re0 10.34.0.5 sfc0-re1 #SFC 1 10.35.0.1 sfc1-master 10.35.0.4 sfc1-re0 10.35.0.5 sfc1-re1 #SFC 2 10.36.0.1 sfc2-master 10.36.0.4 sfc2-re0 10.36.0.5 sfc2-re1 #SFC 3 10.37.0.1 sfc3-master 10.37.0.4 sfc3-re0 10.37.0.5 sfc3-re1 #SFC 4 10.38.0.1 sfc4-master 10.38.0.4 sfc4-re0 10.38.0.5 sfc4-re1 # End of internal names py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/domain_config_get-configuration.xml000066400000000000000000000005501475361112400304300ustar00rootroot00000000000000 juniper.net py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/domain_config_get-interface-information.xml000066400000000000000000000316651475361112400320570ustar00rootroot00000000000000 lc-0/0/0.32769 up up vpls pfe-0/0/0.16383 up up inet inet6 pfh-0/0/0.16383 up up inet lc-0/1/0.32769 up up vpls pfe-0/1/0.16383 up up inet inet6 lc-1/0/0.32769 up up vpls pfe-1/0/0.16383 up up inet inet6 pfh-1/0/0.16383 up up inet lc-1/1/0.32769 up up vpls pfe-1/1/0.16383 up up inet inet6 em0.0 up up inet 10.0.0.4/8 128.0.0.1/2 128.0.0.4/2 inet6 fe80::200:ff:fe00:4/64 fec0::a:0:0:4/64 tnp 0x4 em1.0 up up inet 10.0.0.4/8 128.0.0.1/2 128.0.0.4/2 inet6 fe80::200:1ff:fe00:4/64 fec0::a:0:0:4/64 tnp 0x4 lo0.16385 up up inet py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/domain_file_command.xml000066400000000000000000000320201475361112400260710ustar00rootroot00000000000000 re0 r0 mx960 mx960 16.1R1.11 os-kernel JUNOS OS Kernel 64-bit [20160624.329953_builder_stable_10] os-libs JUNOS OS libs [20160624.329953_builder_stable_10] os-runtime JUNOS OS runtime [20160624.329953_builder_stable_10] zoneinfo JUNOS OS time zone information [20160624.329953_builder_stable_10] netstack JUNOS network stack and utilities [20160722.024316_builder_junos_161_r1] junos-modules JUNOS modules [20160722.024316_builder_junos_161_r1] junos-modules-platform JUNOS mx modules [20160722.024316_builder_junos_161_r1] junos-libs JUNOS libs [20160722.024316_builder_junos_161_r1] os-libs-compat32 JUNOS OS libs compat32 [20160624.329953_builder_stable_10] os-compat32 JUNOS OS 32-bit compatibility [20160624.329953_builder_stable_10] junos-libs-compat32 JUNOS libs compat32 [20160722.024316_builder_junos_161_r1] junos-runtime JUNOS runtime [20160722.024316_builder_junos_161_r1] vmguest JUNOS Packet Forwarding Engine Simulation Package [20160722.024316_builder_junos_161_r1] py-extensions JUNOS py extensions [20160722.024316_builder_junos_161_r1] py-base JUNOS py base [20160722.024316_builder_junos_161_r1] os-vmguest JUNOS OS vmguest [20160624.329953_builder_stable_10] os-crypto JUNOS OS crypto [20160624.329953_builder_stable_10] junos-libs-compat32-platform JUNOS mx libs compat32 [20160722.024316_builder_junos_161_r1] junos-runtime-platform JUNOS mx runtime [20160722.024316_builder_junos_161_r1] junos-platform JUNOS common platform support [20160722.024316_builder_junos_161_r1] junos-libs-platform JUNOS mx libs [20160722.024316_builder_junos_161_r1] junos-dp-crypto-support JUNOS Data Plane Crypto Support [20160722.024316_builder_junos_161_r1] junos-dp-crypto-support-platform JUNOS mtx Data Plane Crypto Support [20160722.024316_builder_junos_161_r1] junos-daemons JUNOS daemons [20160722.024316_builder_junos_161_r1] junos-daemons-platform JUNOS mx daemons [20160722.024316_builder_junos_161_r1] jservices-voice JUNOS Voice Services Container package [20160722.024316_builder_junos_161_r1] jservices-ssl JUNOS Services SSL [20160722.024316_builder_junos_161_r1] jservices-sfw JUNOS Services Stateful Firewall [20160722.024316_builder_junos_161_r1] jservices-rpm JUNOS Services RPM [20160722.024316_builder_junos_161_r1] jservices-ptsp JUNOS Services PTSP Container package [20160722.024316_builder_junos_161_r1] jservices-pcef JUNOS Services PCEF package [20160722.024316_builder_junos_161_r1] jservices-nat JUNOS Services NAT [20160722.024316_builder_junos_161_r1] jservices-mss JUNOS Services Mobile Subscriber Service Container package [20160722.024316_builder_junos_161_r1] jservices-mobile JUNOS Services MobileNext Software package [20160722.024316_builder_junos_161_r1] jservices-lrf JUNOS Services Logging Report Framework package [20160722.024316_builder_junos_161_r1] jservices-llpdf JUNOS Services LL-PDF Container package [20160722.024316_builder_junos_161_r1] jservices-jflow JUNOS Services Jflow Container package [20160722.024316_builder_junos_161_r1] jservices-jdpi JUNOS Services Deep Packet Inspection package [20160722.024316_builder_junos_161_r1] jservices-ipsec JUNOS Services IPSec [20160722.024316_builder_junos_161_r1] jservices-idp JUNOS IDP Services [20160722.024316_builder_junos_161_r1] jservices-hcm JUNOS Services HTTP Content Management package [20160722.024316_builder_junos_161_r1] jservices-crypto-base JUNOS Services Crypto [20160722.024316_builder_junos_161_r1] jservices-cpcd JUNOS Services Captive Portal and Content Delivery Container package [20160722.024316_builder_junos_161_r1] jservices-bgf JUNOS Border Gateway Function package [20160722.024316_builder_junos_161_r1] jservices-appid JUNOS AppId Services [20160722.024316_builder_junos_161_r1] jservices-alg JUNOS Services Application Level Gateways [20160722.024316_builder_junos_161_r1] jservices-aacl JUNOS Services AACL Container package [20160722.024316_builder_junos_161_r1] jsdn JUNOS SDN Software Suite [20160722.024316_builder_junos_161_r1] jsd JUNOS Extension Toolkit [20160722.024316_builder_junos_161_r1] jpfe-wrlinux JUNOS Packet Forwarding Engine Support (wrlinux) [20160722.024316_builder_junos_161_r1] jpfe-platform JUNOS Packet Forwarding Engine Support (MX/EX92XX Common) [20160722.024316_builder_junos_161_r1] jpfe-common JUNOS Packet Forwarding Engine Support (M/T Common) [20160722.024316_builder_junos_161_r1] jdocs JUNOS Online Documentation [20160722.024316_builder_junos_161_r1] fips-mode JUNOS FIPS mode utilities [20160722.024316_builder_junos_161_r1] py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/domain_file_file-show.xml000066400000000000000000000005071475361112400263550ustar00rootroot00000000000000 search juniper.net jnpr.net nameserver 10.0.0.1 nameserver 10.0.0.2 # domain juniper.net py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/domain_file_get-configuration.xml000066400000000000000000000005711475361112400301050ustar00rootroot00000000000000 protocol operation-failed error permission denied system py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/domain_file_get-interface-information.xml000066400000000000000000000316651475361112400315310ustar00rootroot00000000000000 lc-0/0/0.32769 up up vpls pfe-0/0/0.16383 up up inet inet6 pfh-0/0/0.16383 up up inet lc-0/1/0.32769 up up vpls pfe-0/1/0.16383 up up inet inet6 lc-1/0/0.32769 up up vpls pfe-1/0/0.16383 up up inet inet6 pfh-1/0/0.16383 up up inet lc-1/1/0.32769 up up vpls pfe-1/1/0.16383 up up inet inet6 em0.0 up up inet 10.0.0.4/8 128.0.0.1/2 128.0.0.4/2 inet6 fe80::200:ff:fe00:4/64 fec0::a:0:0:4/64 tnp 0x4 em1.0 up up inet 10.0.0.4/8 128.0.0.1/2 128.0.0.4/2 inet6 fe80::200:1ff:fe00:4/64 fec0::a:0:0:4/64 tnp 0x4 lo0.16385 up up inet py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/els_get-ethernet-switching-table-information.xml000066400000000000000000000006621475361112400327770ustar00rootroot00000000000000 0 0 py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/file_list2_file-list.xml000066400000000000000000000017051475361112400261370ustar00rootroot00000000000000 /var/home/user/ 28 .ssh baseline.config change.config junos_comment_config.xml 3 py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/file_list_file-list.xml000066400000000000000000000016521475361112400260560ustar00rootroot00000000000000 /var/home/user/ 28 .ssh baseline.config change.config junos_comment_config.xml 3 py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/ifd_style_classic_command.xml000066400000000000000000000313671475361112400273230ustar00rootroot00000000000000 re0 r0 mx960 mx960 16.1R1.11 os-kernel JUNOS OS Kernel 64-bit [20160624.329953_builder_stable_10] os-libs JUNOS OS libs [20160624.329953_builder_stable_10] os-runtime JUNOS OS runtime [20160624.329953_builder_stable_10] zoneinfo JUNOS OS time zone information [20160624.329953_builder_stable_10] netstack JUNOS network stack and utilities [20160722.024316_builder_junos_161_r1] junos-modules JUNOS modules [20160722.024316_builder_junos_161_r1] junos-modules-platform JUNOS mx modules [20160722.024316_builder_junos_161_r1] junos-libs JUNOS libs [20160722.024316_builder_junos_161_r1] os-libs-compat32 JUNOS OS libs compat32 [20160624.329953_builder_stable_10] os-compat32 JUNOS OS 32-bit compatibility [20160624.329953_builder_stable_10] junos-libs-compat32 JUNOS libs compat32 [20160722.024316_builder_junos_161_r1] junos-runtime JUNOS runtime [20160722.024316_builder_junos_161_r1] vmguest JUNOS Packet Forwarding Engine Simulation Package [20160722.024316_builder_junos_161_r1] py-extensions JUNOS py extensions [20160722.024316_builder_junos_161_r1] py-base JUNOS py base [20160722.024316_builder_junos_161_r1] os-vmguest JUNOS OS vmguest [20160624.329953_builder_stable_10] os-crypto JUNOS OS crypto [20160624.329953_builder_stable_10] junos-libs-compat32-platform JUNOS mx libs compat32 [20160722.024316_builder_junos_161_r1] junos-runtime-platform JUNOS mx runtime [20160722.024316_builder_junos_161_r1] junos-platform JUNOS common platform support [20160722.024316_builder_junos_161_r1] junos-libs-platform JUNOS mx libs [20160722.024316_builder_junos_161_r1] junos-dp-crypto-support JUNOS Data Plane Crypto Support [20160722.024316_builder_junos_161_r1] junos-dp-crypto-support-platform JUNOS mtx Data Plane Crypto Support [20160722.024316_builder_junos_161_r1] junos-daemons JUNOS daemons [20160722.024316_builder_junos_161_r1] junos-daemons-platform JUNOS mx daemons [20160722.024316_builder_junos_161_r1] jservices-voice JUNOS Voice Services Container package [20160722.024316_builder_junos_161_r1] jservices-ssl JUNOS Services SSL [20160722.024316_builder_junos_161_r1] jservices-sfw JUNOS Services Stateful Firewall [20160722.024316_builder_junos_161_r1] jservices-rpm JUNOS Services RPM [20160722.024316_builder_junos_161_r1] jservices-ptsp JUNOS Services PTSP Container package [20160722.024316_builder_junos_161_r1] jservices-pcef JUNOS Services PCEF package [20160722.024316_builder_junos_161_r1] jservices-nat JUNOS Services NAT [20160722.024316_builder_junos_161_r1] jservices-mss JUNOS Services Mobile Subscriber Service Container package [20160722.024316_builder_junos_161_r1] jservices-mobile JUNOS Services MobileNext Software package [20160722.024316_builder_junos_161_r1] jservices-lrf JUNOS Services Logging Report Framework package [20160722.024316_builder_junos_161_r1] jservices-llpdf JUNOS Services LL-PDF Container package [20160722.024316_builder_junos_161_r1] jservices-jflow JUNOS Services Jflow Container package [20160722.024316_builder_junos_161_r1] jservices-jdpi JUNOS Services Deep Packet Inspection package [20160722.024316_builder_junos_161_r1] jservices-ipsec JUNOS Services IPSec [20160722.024316_builder_junos_161_r1] jservices-idp JUNOS IDP Services [20160722.024316_builder_junos_161_r1] jservices-hcm JUNOS Services HTTP Content Management package [20160722.024316_builder_junos_161_r1] jservices-crypto-base JUNOS Services Crypto [20160722.024316_builder_junos_161_r1] jservices-cpcd JUNOS Services Captive Portal and Content Delivery Container package [20160722.024316_builder_junos_161_r1] jservices-bgf JUNOS Border Gateway Function package [20160722.024316_builder_junos_161_r1] jservices-appid JUNOS AppId Services [20160722.024316_builder_junos_161_r1] jservices-alg JUNOS Services Application Level Gateways [20160722.024316_builder_junos_161_r1] jservices-aacl JUNOS Services AACL Container package [20160722.024316_builder_junos_161_r1] jsdn JUNOS SDN Software Suite [20160722.024316_builder_junos_161_r1] jsd JUNOS Extension Toolkit [20160722.024316_builder_junos_161_r1] jpfe-wrlinux JUNOS Packet Forwarding Engine Support (wrlinux) [20160722.024316_builder_junos_161_r1] jpfe-platform JUNOS Packet Forwarding Engine Support (MX/EX92XX Common) [20160722.024316_builder_junos_161_r1] jpfe-common JUNOS Packet Forwarding Engine Support (M/T Common) [20160722.024316_builder_junos_161_r1] jdocs JUNOS Online Documentation [20160722.024316_builder_junos_161_r1] fips-mode JUNOS FIPS mode utilities [20160722.024316_builder_junos_161_r1] py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/ifd_style_classic_file-show.xml000066400000000000000000002045501475361112400275760ustar00rootroot00000000000000 #$Id: hosts.junos,v 1.7.72.1 2009-04-16 05:22:03 kdickman Exp $ # # File mapping AF_INET/AF_INET6 hostnames for REs on Single and Multichassis # systems # # This file is looked at before /etc/hosts by gethostbyname(3), # gethostbyname2(3) and getaddrinfo(3) # # The IP addresses in this file are only used for communication between REs # over the Internal Routing Instances # # WARNING: # # The names in this file are effectively reserved for internal use. # # New IP address format (RT_IRS_V3) # # Single Chassis Hostnames # 128.0.0.1 master 128.0.0.1 node 128.0.0.1 fwdd 128.0.0.1 member 128.0.0.1 pfem 128.0.0.2 scb 128.0.0.2 sbr 128.0.0.2 ssb 128.0.0.2 feb 128.0.0.2 cfeb0 128.0.0.2 cfeb 128.0.0.2 cpp0 128.0.0.3 cfeb1 128.0.0.3 cpp1 128.0.0.4 re0 128.0.0.5 re1 128.0.0.6 backup 128.0.0.8 sfm0 128.0.0.9 sfm1 128.0.0.10 sfm2 128.0.0.16 fpc0 128.0.0.17 fpc1 128.0.0.18 fpc2 128.0.0.19 fpc3 128.0.0.20 fpc4 128.0.0.21 fpc5 128.0.0.22 fpc6 128.0.0.23 fpc7 128.0.0.24 fpc8 128.0.0.25 fpc9 128.0.0.26 fpc10 128.0.0.27 fpc11 128.0.0.28 fpc12 128.0.0.29 fpc13 128.0.0.30 fpc14 128.0.0.31 fpc15 128.0.0.32 feb0 128.0.0.32 fpc16 128.0.0.33 feb1 128.0.0.33 fpc17 128.0.0.34 feb2 128.0.0.34 fpc18 128.0.0.35 feb3 128.0.0.35 fpc19 128.0.0.36 fpc20 128.0.0.36 feb4 128.0.0.37 feb5 128.0.0.37 fpc21 128.0.0.38 fpc22 128.0.0.39 fpc23 128.0.0.40 fpc24 128.0.0.41 fpc25 128.0.0.42 fpc26 128.0.0.43 fpc27 128.0.0.44 fpc28 128.0.0.45 fpc29 128.0.0.46 fpc30 128.0.0.47 fpc31 128.0.0.48 spmb0 128.0.0.49 spmb1 128.0.0.50 tfeb0 128.0.0.50 afeb0 128.0.0.53 esc0 128.0.0.54 esc1 128.0.0.55 esc0-ipmi 128.0.0.56 esc1-ipmi 128.0.1.16 fpc0.pic0 128.0.1.17 fpc1.pic0 128.0.1.18 fpc2.pic0 128.0.1.19 fpc3.pic0 128.0.1.20 fpc4.pic0 128.0.1.21 fpc5.pic0 128.0.1.22 fpc6.pic0 128.0.1.23 fpc7.pic0 128.0.1.24 fpc8.pic0 128.0.1.25 fpc9.pic0 128.0.1.26 fpc10.pic0 128.0.1.27 fpc11.pic0 128.0.1.28 fpc12.pic0 128.0.1.29 fpc13.pic0 128.0.1.30 fpc14.pic0 128.0.1.31 fpc15.pic0 128.0.1.32 fpc16.pic0 128.0.1.33 fpc17.pic0 128.0.1.34 fpc18.pic0 128.0.1.35 fpc19.pic0 128.0.1.36 fpc20.pic0 128.0.1.37 fpc21.pic0 128.0.1.38 fpc22.pic0 128.0.1.39 fpc23.pic0 128.0.1.40 fpc24.pic0 128.0.1.41 fpc25.pic0 128.0.1.42 fpc26.pic0 128.0.1.43 fpc27.pic0 128.0.1.44 fpc28.pic0 128.0.1.45 fpc29.pic0 128.0.1.46 fpc30.pic0 128.0.1.47 fpc31.pic0 128.0.2.16 fpc0.pic1 128.0.2.17 fpc1.pic1 128.0.2.18 fpc2.pic1 128.0.2.19 fpc3.pic1 128.0.2.20 fpc4.pic1 128.0.2.21 fpc5.pic1 128.0.2.22 fpc6.pic1 128.0.2.23 fpc7.pic1 128.0.2.24 fpc8.pic1 128.0.2.25 fpc9.pic1 128.0.2.26 fpc10.pic1 128.0.2.27 fpc11.pic1 128.0.2.28 fpc12.pic1 128.0.2.29 fpc13.pic1 128.0.2.30 fpc14.pic1 128.0.2.31 fpc15.pic1 128.0.2.32 fpc16.pic1 128.0.2.33 fpc17.pic1 128.0.2.34 fpc18.pic1 128.0.2.35 fpc19.pic1 128.0.2.36 fpc20.pic1 128.0.2.37 fpc21.pic1 128.0.2.38 fpc22.pic1 128.0.2.39 fpc23.pic1 128.0.2.40 fpc24.pic1 128.0.2.41 fpc25.pic1 128.0.2.42 fpc26.pic1 128.0.2.43 fpc27.pic1 128.0.2.44 fpc28.pic1 128.0.2.45 fpc29.pic1 128.0.2.46 fpc30.pic1 128.0.2.47 fpc31.pic1 128.0.3.16 fpc0.pic2 128.0.3.17 fpc1.pic2 128.0.3.18 fpc2.pic2 128.0.3.19 fpc3.pic2 128.0.3.20 fpc4.pic2 128.0.3.21 fpc5.pic2 128.0.3.22 fpc6.pic2 128.0.3.23 fpc7.pic2 128.0.3.24 fpc8.pic2 128.0.3.25 fpc9.pic2 128.0.3.26 fpc10.pic2 128.0.3.27 fpc11.pic2 128.0.3.28 fpc12.pic2 128.0.3.29 fpc13.pic2 128.0.3.30 fpc14.pic2 128.0.3.31 fpc15.pic2 128.0.4.16 fpc0.pic3 128.0.4.17 fpc1.pic3 128.0.4.18 fpc2.pic3 128.0.4.19 fpc3.pic3 128.0.4.20 fpc4.pic3 128.0.4.21 fpc5.pic3 128.0.4.22 fpc6.pic3 128.0.4.23 fpc7.pic3 128.0.4.24 fpc8.pic3 128.0.4.25 fpc9.pic3 128.0.4.26 fpc10.pic3 128.0.4.27 fpc11.pic3 128.0.4.28 fpc12.pic3 128.0.4.29 fpc13.pic3 128.0.4.30 fpc14.pic3 128.0.4.31 fpc15.pic3 # # DCF-Root Hostname # 128.0.130.2 dcf-root # # Multi Chassis Hostnames # #SCC 144.0.0.1 scc-master 144.0.0.4 scc-re0 144.0.0.5 scc-re1 144.0.0.6 scc-backup 144.0.0.48 scc-spmb0 144.0.0.49 scc-spmb1 #LCC 0 (or MEMBER 0 on Virtual Chassis) 129.0.0.1 lcc0-master member0-master member0 129.0.0.4 lcc0-re0 member0-re0 129.0.0.5 lcc0-re1 member0-re1 129.0.0.6 lcc0-backup member0-backup 129.0.0.16 member0-fpc0 129.0.0.17 member0-fpc1 129.0.0.18 member0-fpc2 129.0.0.19 member0-fpc3 129.0.0.20 member0-fpc4 129.0.0.21 member0-fpc5 129.0.0.22 member0-fpc6 129.0.0.23 member0-fpc7 129.0.0.24 member0-fpc8 129.0.0.25 member0-fpc9 129.0.0.26 member0-fpc10 129.0.0.27 member0-fpc11 129.0.0.28 member0-fpc12 129.0.0.29 member0-fpc13 129.0.0.30 member0-fpc14 129.0.0.31 member0-fpc15 129.0.0.32 member0-fpc16 129.0.0.33 member0-fpc17 129.0.0.34 member0-fpc18 129.0.0.35 member0-fpc19 129.0.0.36 member0-fpc20 129.0.0.37 member0-fpc21 129.0.0.38 member0-fpc22 129.0.0.39 member0-fpc23 129.0.0.40 member0-fpc24 129.0.0.41 member0-fpc25 129.0.0.42 member0-fpc26 129.0.0.43 member0-fpc27 129.0.0.44 member0-fpc28 129.0.0.45 member0-fpc29 129.0.0.46 member0-fpc30 129.0.0.47 member0-fpc31 129.0.0.6 lcc0-backup 129.0.0.16 lcc0-fpc0 129.0.0.17 lcc0-fpc1 129.0.0.18 lcc0-fpc2 129.0.0.19 lcc0-fpc3 129.0.0.20 lcc0-fpc4 129.0.0.21 lcc0-fpc5 129.0.0.22 lcc0-fpc6 129.0.0.23 lcc0-fpc7 129.0.0.48 lcc0-spmb0 129.0.0.49 lcc0-spmb1 #LCC 1 (or MEMBER 1 on Virtual Chassis) 130.0.0.1 lcc1-master member1-master member1 130.0.0.4 lcc1-re0 member1-re0 130.0.0.5 lcc1-re1 member1-re1 130.0.0.6 lcc1-backup member1-backup 130.0.0.16 member1-fpc0 130.0.0.17 member1-fpc1 130.0.0.18 member1-fpc2 130.0.0.19 member1-fpc3 130.0.0.20 member1-fpc4 130.0.0.21 member1-fpc5 130.0.0.22 member1-fpc6 130.0.0.23 member1-fpc7 130.0.0.24 member1-fpc8 130.0.0.25 member1-fpc9 130.0.0.26 member1-fpc10 130.0.0.27 member1-fpc11 130.0.0.28 member1-fpc12 130.0.0.29 member1-fpc13 130.0.0.30 member1-fpc14 130.0.0.31 member1-fpc15 130.0.0.32 member1-fpc16 130.0.0.33 member1-fpc17 130.0.0.34 member1-fpc18 130.0.0.35 member1-fpc19 130.0.0.36 member1-fpc20 130.0.0.37 member1-fpc21 130.0.0.38 member1-fpc22 130.0.0.39 member1-fpc23 130.0.0.40 member1-fpc24 130.0.0.41 member1-fpc25 130.0.0.42 member1-fpc26 130.0.0.43 member1-fpc27 130.0.0.44 member1-fpc28 130.0.0.45 member1-fpc29 130.0.0.46 member1-fpc30 130.0.0.47 member1-fpc31 130.0.0.6 lcc1-backup 130.0.0.16 lcc1-fpc0 130.0.0.17 lcc1-fpc1 130.0.0.18 lcc1-fpc2 130.0.0.19 lcc1-fpc3 130.0.0.20 lcc1-fpc4 130.0.0.21 lcc1-fpc5 130.0.0.22 lcc1-fpc6 130.0.0.23 lcc1-fpc7 130.0.0.48 lcc1-spmb0 130.0.0.49 lcc1-spmb1 #LCC 2 (or MEMBER 2 on Virtual Chassis) 131.0.0.1 lcc2-master member2-master member2 131.0.0.4 lcc2-re0 member2-re0 131.0.0.5 lcc2-re1 member2-re1 131.0.0.6 lcc2-backup member2-backup 131.0.0.16 member2-fpc0 131.0.0.17 member2-fpc1 131.0.0.18 member2-fpc2 131.0.0.19 member2-fpc3 131.0.0.20 member2-fpc4 131.0.0.21 member2-fpc5 131.0.0.22 member2-fpc6 131.0.0.23 member2-fpc7 131.0.0.24 member2-fpc8 131.0.0.25 member2-fpc9 131.0.0.26 member2-fpc10 131.0.0.27 member2-fpc11 131.0.0.28 member2-fpc12 131.0.0.29 member2-fpc13 131.0.0.30 member2-fpc14 131.0.0.31 member2-fpc15 131.0.0.32 member2-fpc16 131.0.0.33 member2-fpc17 131.0.0.34 member2-fpc18 131.0.0.35 member2-fpc19 131.0.0.36 member2-fpc20 131.0.0.37 member2-fpc21 131.0.0.38 member2-fpc22 131.0.0.39 member2-fpc23 131.0.0.40 member2-fpc24 131.0.0.41 member2-fpc25 131.0.0.42 member2-fpc26 131.0.0.43 member2-fpc27 131.0.0.44 member2-fpc28 131.0.0.45 member2-fpc29 131.0.0.46 member2-fpc30 131.0.0.47 member2-fpc31 131.0.0.6 lcc2-backup 131.0.0.16 lcc2-fpc0 131.0.0.17 lcc2-fpc1 131.0.0.18 lcc2-fpc2 131.0.0.19 lcc2-fpc3 131.0.0.20 lcc2-fpc4 131.0.0.21 lcc2-fpc5 131.0.0.22 lcc2-fpc6 131.0.0.23 lcc2-fpc7 131.0.0.48 lcc2-spmb0 131.0.0.49 lcc20-spmb1 #LCC 3 (or MEMBER 3 on Virtual Chassis) 132.0.0.1 lcc3-master member3-master member3 132.0.0.4 lcc3-re0 member3-re0 132.0.0.5 lcc3-re1 member3-re1 132.0.0.6 lcc3-backup member3-backup 132.0.0.16 member3-fpc0 132.0.0.17 member3-fpc1 132.0.0.18 member3-fpc2 132.0.0.19 member3-fpc3 132.0.0.20 member3-fpc4 132.0.0.21 member3-fpc5 132.0.0.22 member3-fpc6 132.0.0.23 member3-fpc7 132.0.0.24 member3-fpc8 132.0.0.25 member3-fpc9 132.0.0.26 member3-fpc10 132.0.0.27 member3-fpc11 132.0.0.28 member3-fpc12 132.0.0.29 member3-fpc13 132.0.0.30 member3-fpc14 132.0.0.31 member3-fpc15 132.0.0.32 member3-fpc16 132.0.0.33 member3-fpc17 132.0.0.34 member3-fpc18 132.0.0.35 member3-fpc19 132.0.0.36 member3-fpc20 132.0.0.37 member3-fpc21 132.0.0.38 member3-fpc22 132.0.0.39 member3-fpc23 132.0.0.40 member3-fpc24 132.0.0.41 member3-fpc25 132.0.0.42 member3-fpc26 132.0.0.43 member3-fpc27 132.0.0.44 member3-fpc28 132.0.0.45 member3-fpc29 132.0.0.46 member3-fpc30 132.0.0.47 member3-fpc31 132.0.0.6 lcc3-backup 132.0.0.16 lcc3-fpc0 132.0.0.17 lcc3-fpc1 132.0.0.18 lcc3-fpc2 132.0.0.19 lcc3-fpc3 132.0.0.20 lcc3-fpc4 132.0.0.21 lcc3-fpc5 132.0.0.22 lcc3-fpc6 132.0.0.23 lcc3-fpc7 132.0.0.48 lcc3-spmb0 132.0.0.49 lcc3-spmb1 #LCC 4 (or MEMBER 4 on Virtual Chassis) 133.0.0.1 lcc4-master member4-master member4 133.0.0.4 lcc4-re0 member4-re0 133.0.0.5 lcc4-re1 member4-re1 133.0.0.6 lcc4-backup member4-backup 133.0.0.16 member4-fpc0 133.0.0.17 member4-fpc1 133.0.0.18 member4-fpc2 133.0.0.19 member4-fpc3 133.0.0.20 member4-fpc4 133.0.0.21 member4-fpc5 133.0.0.22 member4-fpc6 133.0.0.23 member4-fpc7 133.0.0.24 member4-fpc8 133.0.0.25 member4-fpc9 133.0.0.26 member4-fpc10 133.0.0.27 member4-fpc11 133.0.0.28 member4-fpc12 133.0.0.29 member4-fpc13 133.0.0.30 member4-fpc14 133.0.0.31 member4-fpc15 133.0.0.32 member4-fpc16 133.0.0.33 member4-fpc17 133.0.0.34 member4-fpc18 133.0.0.35 member4-fpc19 133.0.0.36 member4-fpc20 133.0.0.37 member4-fpc21 133.0.0.38 member4-fpc22 133.0.0.39 member4-fpc23 133.0.0.40 member4-fpc24 133.0.0.41 member4-fpc25 133.0.0.42 member4-fpc26 133.0.0.43 member4-fpc27 133.0.0.44 member4-fpc28 133.0.0.45 member4-fpc29 133.0.0.46 member4-fpc30 133.0.0.47 member4-fpc31 133.0.0.6 lcc4-backup 133.0.0.16 lcc4-fpc0 133.0.0.17 lcc4-fpc1 133.0.0.18 lcc4-fpc2 133.0.0.19 lcc4-fpc3 133.0.0.20 lcc4-fpc4 133.0.0.21 lcc4-fpc5 133.0.0.22 lcc4-fpc6 133.0.0.23 lcc4-fpc7 133.0.0.48 lcc4-spmb0 133.0.0.49 lcc4-spmb1 #LCC 5 (or MEMBER 5 on Virtual Chassis) 134.0.0.1 lcc5-master member5-master member5 134.0.0.4 lcc5-re0 member5-re0 134.0.0.5 lcc5-re1 member5-re1 134.0.0.6 lcc5-backup member5-backup 134.0.0.16 member5-fpc0 134.0.0.17 member5-fpc1 134.0.0.18 member5-fpc2 134.0.0.19 member5-fpc3 134.0.0.20 member5-fpc4 134.0.0.21 member5-fpc5 134.0.0.22 member5-fpc6 134.0.0.23 member5-fpc7 134.0.0.24 member5-fpc8 134.0.0.25 member5-fpc9 134.0.0.26 member5-fpc10 134.0.0.27 member5-fpc11 134.0.0.28 member5-fpc12 134.0.0.29 member5-fpc13 134.0.0.30 member5-fpc14 134.0.0.31 member5-fpc15 134.0.0.32 member5-fpc16 134.0.0.33 member5-fpc17 134.0.0.34 member5-fpc18 134.0.0.35 member5-fpc19 134.0.0.36 member5-fpc20 134.0.0.37 member5-fpc21 134.0.0.38 member5-fpc22 134.0.0.39 member5-fpc23 134.0.0.40 member5-fpc24 134.0.0.41 member5-fpc25 134.0.0.42 member5-fpc26 134.0.0.43 member5-fpc27 134.0.0.44 member5-fpc28 134.0.0.45 member5-fpc29 134.0.0.46 member5-fpc30 134.0.0.47 member5-fpc31 134.0.0.6 lcc5-backup 134.0.0.16 lcc5-fpc0 134.0.0.17 lcc5-fpc1 134.0.0.18 lcc5-fpc2 134.0.0.19 lcc5-fpc3 134.0.0.20 lcc5-fpc4 134.0.0.21 lcc5-fpc5 134.0.0.22 lcc5-fpc6 134.0.0.23 lcc5-fpc7 134.0.0.48 lcc5-spmb0 134.0.0.49 lcc5-spmb1 #LCC 6 (or MEMBER 6 on Virtual Chassis) 135.0.0.1 lcc6-master member6-master member6 135.0.0.4 lcc6-re0 member6-re0 135.0.0.5 lcc6-re1 member6-re1 135.0.0.6 lcc6-backup member6-backup 135.0.0.16 member6-fpc0 135.0.0.17 member6-fpc1 135.0.0.18 member6-fpc2 135.0.0.19 member6-fpc3 135.0.0.20 member6-fpc4 135.0.0.21 member6-fpc5 135.0.0.22 member6-fpc6 135.0.0.23 member6-fpc7 135.0.0.24 member6-fpc8 135.0.0.25 member6-fpc9 135.0.0.26 member6-fpc10 135.0.0.27 member6-fpc11 135.0.0.28 member6-fpc12 135.0.0.29 member6-fpc13 135.0.0.30 member6-fpc14 135.0.0.31 member6-fpc15 135.0.0.32 member6-fpc16 135.0.0.33 member6-fpc17 135.0.0.34 member6-fpc18 135.0.0.35 member6-fpc19 135.0.0.36 member6-fpc20 135.0.0.37 member6-fpc21 135.0.0.38 member6-fpc22 135.0.0.39 member6-fpc23 135.0.0.40 member6-fpc24 135.0.0.41 member6-fpc25 135.0.0.42 member6-fpc26 135.0.0.43 member6-fpc27 135.0.0.44 member6-fpc28 135.0.0.45 member6-fpc29 135.0.0.46 member6-fpc30 135.0.0.47 member6-fpc31 135.0.0.6 lcc6-backup 135.0.0.16 lcc6-fpc0 135.0.0.17 lcc6-fpc1 135.0.0.18 lcc6-fpc2 135.0.0.19 lcc6-fpc3 135.0.0.20 lcc6-fpc4 135.0.0.21 lcc6-fpc5 135.0.0.22 lcc6-fpc6 135.0.0.23 lcc6-fpc7 135.0.0.48 lcc6-spmb0 135.0.0.49 lcc6-spmb1 #LCC 7 (or MEMBER 7 on Virtual Chassis) 136.0.0.1 lcc7-master member7-master member7 136.0.0.4 lcc7-re0 member7-re0 136.0.0.5 lcc7-re1 member7-re1 136.0.0.6 lcc7-backup member7-backup 136.0.0.16 member7-fpc0 136.0.0.17 member7-fpc1 136.0.0.18 member7-fpc2 136.0.0.19 member7-fpc3 136.0.0.20 member7-fpc4 136.0.0.21 member7-fpc5 136.0.0.22 member7-fpc6 136.0.0.23 member7-fpc7 136.0.0.24 member7-fpc8 136.0.0.25 member7-fpc9 136.0.0.26 member7-fpc10 136.0.0.27 member7-fpc11 136.0.0.28 member7-fpc12 136.0.0.29 member7-fpc13 136.0.0.30 member7-fpc14 136.0.0.31 member7-fpc15 136.0.0.32 member7-fpc16 136.0.0.33 member7-fpc17 136.0.0.34 member7-fpc18 136.0.0.35 member7-fpc19 136.0.0.36 member7-fpc20 136.0.0.37 member7-fpc21 136.0.0.38 member7-fpc22 136.0.0.39 member7-fpc23 136.0.0.40 member7-fpc24 136.0.0.41 member7-fpc25 136.0.0.42 member7-fpc26 136.0.0.43 member7-fpc27 136.0.0.44 member7-fpc28 136.0.0.45 member7-fpc29 136.0.0.46 member7-fpc30 136.0.0.47 member7-fpc31 136.0.0.6 lcc7-backup 136.0.0.16 lcc7-fpc0 136.0.0.17 lcc7-fpc1 136.0.0.18 lcc7-fpc2 136.0.0.19 lcc7-fpc3 136.0.0.20 lcc7-fpc4 136.0.0.21 lcc7-fpc5 136.0.0.22 lcc7-fpc6 136.0.0.23 lcc7-fpc7 136.0.0.48 lcc7-spmb0 136.0.0.49 lcc7-spmb1 137.0.0.6 lcc8-backup 137.0.0.16 lcc8-fpc0 137.0.0.17 lcc8-fpc1 137.0.0.18 lcc8-fpc2 137.0.0.19 lcc8-fpc3 137.0.0.20 lcc8-fpc4 137.0.0.21 lcc8-fpc5 137.0.0.22 lcc8-fpc6 137.0.0.23 lcc8-fpc7 137.0.0.48 lcc8-spmb0 137.0.0.49 lcc8-spmb1 #LCC 8 (or MEMBER 8 on Virtual Chassis) 137.0.0.1 lcc8-master member8-master member8 137.0.0.4 lcc8-re0 member8-re0 137.0.0.5 lcc8-re1 member8-re1 137.0.0.6 lcc8-backup member8-backup 137.0.0.16 member8-fpc0 137.0.0.17 member8-fpc1 137.0.0.18 member8-fpc2 137.0.0.19 member8-fpc3 137.0.0.20 member8-fpc4 137.0.0.21 member8-fpc5 137.0.0.22 member8-fpc6 137.0.0.23 member8-fpc7 137.0.0.24 member8-fpc8 137.0.0.25 member8-fpc9 137.0.0.26 member8-fpc10 137.0.0.27 member8-fpc11 137.0.0.28 member8-fpc12 137.0.0.29 member8-fpc13 137.0.0.30 member8-fpc14 137.0.0.31 member8-fpc15 137.0.0.32 member8-fpc16 137.0.0.33 member8-fpc17 137.0.0.34 member8-fpc18 137.0.0.35 member8-fpc19 137.0.0.36 member8-fpc20 137.0.0.37 member8-fpc21 137.0.0.38 member8-fpc22 137.0.0.39 member8-fpc23 137.0.0.40 member8-fpc24 137.0.0.41 member8-fpc25 137.0.0.42 member8-fpc26 137.0.0.43 member8-fpc27 137.0.0.44 member8-fpc28 137.0.0.45 member8-fpc29 137.0.0.46 member8-fpc30 137.0.0.47 member8-fpc31 138.0.0.6 lcc9-backup 138.0.0.16 lcc9-fpc0 138.0.0.17 lcc9-fpc1 138.0.0.18 lcc9-fpc2 138.0.0.19 lcc9-fpc3 138.0.0.20 lcc9-fpc4 138.0.0.21 lcc9-fpc5 138.0.0.22 lcc9-fpc6 138.0.0.23 lcc9-fpc7 138.0.0.48 lcc9-spmb0 138.0.0.49 lcc9-spmb1 #LCC 9 (or MEMBER 9 on Virtual Chassis) 138.0.0.1 lcc9-master member9-master member9 138.0.0.4 lcc9-re0 member9-re0 138.0.0.5 lcc9-re1 member9-re1 138.0.0.6 lcc9-backup member9-backup 138.0.0.16 member9-fpc0 138.0.0.17 member9-fpc1 138.0.0.18 member9-fpc2 138.0.0.19 member9-fpc3 138.0.0.20 member9-fpc4 138.0.0.21 member9-fpc5 138.0.0.22 member9-fpc6 138.0.0.23 member9-fpc7 138.0.0.24 member9-fpc8 138.0.0.25 member9-fpc9 138.0.0.26 member9-fpc10 138.0.0.27 member9-fpc11 138.0.0.28 member9-fpc12 138.0.0.29 member9-fpc13 138.0.0.30 member9-fpc14 138.0.0.31 member9-fpc15 138.0.0.32 member9-fpc16 138.0.0.33 member9-fpc17 138.0.0.34 member9-fpc18 138.0.0.35 member9-fpc19 138.0.0.36 member9-fpc20 138.0.0.37 member9-fpc21 138.0.0.38 member9-fpc22 138.0.0.39 member9-fpc23 138.0.0.40 member9-fpc24 138.0.0.41 member9-fpc25 138.0.0.42 member9-fpc26 138.0.0.43 member9-fpc27 138.0.0.44 member9-fpc28 138.0.0.45 member9-fpc29 138.0.0.46 member9-fpc30 138.0.0.47 member9-fpc31 139.0.0.6 lcc10-backup 139.0.0.16 lcc10-fpc0 139.0.0.17 lcc10-fpc1 139.0.0.18 lcc10-fpc2 139.0.0.19 lcc10-fpc3 139.0.0.20 lcc10-fpc4 139.0.0.21 lcc10-fpc5 139.0.0.22 lcc10-fpc6 139.0.0.23 lcc10-fpc7 139.0.0.48 lcc10-spmb0 139.0.0.49 lcc10-spmb1 #LCC 10 (or MEMBER 10 on Virtual Chassis) 139.0.0.1 lcc10-master member10-master 139.0.0.4 lcc10-re0 member10-re0 139.0.0.5 lcc10-re1 member10-re1 139.0.0.6 lcc10-backup member10-backup 139.0.0.16 member10-fpc0 139.0.0.17 member10-fpc1 139.0.0.18 member10-fpc2 139.0.0.19 member10-fpc3 139.0.0.20 member10-fpc4 139.0.0.21 member10-fpc5 139.0.0.22 member10-fpc6 139.0.0.23 member10-fpc7 139.0.0.24 member10-fpc8 139.0.0.25 member10-fpc9 139.0.0.26 member10-fpc10 139.0.0.27 member10-fpc11 139.0.0.28 member10-fpc12 139.0.0.29 member10-fpc13 139.0.0.30 member10-fpc14 139.0.0.31 member10-fpc15 139.0.0.32 member10-fpc16 139.0.0.33 member10-fpc17 139.0.0.34 member10-fpc18 139.0.0.35 member10-fpc19 139.0.0.36 member10-fpc20 139.0.0.37 member10-fpc21 139.0.0.38 member10-fpc22 139.0.0.39 member10-fpc23 139.0.0.40 member10-fpc24 139.0.0.41 member10-fpc25 139.0.0.42 member10-fpc26 139.0.0.43 member10-fpc27 139.0.0.44 member10-fpc28 139.0.0.45 member10-fpc29 139.0.0.46 member10-fpc30 139.0.0.47 member10-fpc31 140.0.0.6 lcc11-backup 140.0.0.16 lcc11-fpc0 140.0.0.17 lcc11-fpc1 140.0.0.18 lcc11-fpc2 140.0.0.19 lcc11-fpc3 140.0.0.20 lcc11-fpc4 140.0.0.21 lcc11-fpc5 140.0.0.22 lcc11-fpc6 140.0.0.23 lcc11-fpc7 140.0.0.48 lcc11-spmb0 140.0.0.49 lcc11-spmb1 #LCC 11 (or MEMBER 11 on Virtual Chassis) 140.0.0.1 lcc11-master member11-master 140.0.0.4 lcc11-re0 member11-re0 140.0.0.5 lcc11-re1 member11-re1 140.0.0.6 lcc11-backup member11-backup 140.0.0.16 member11-fpc0 140.0.0.17 member11-fpc1 140.0.0.18 member11-fpc2 140.0.0.19 member11-fpc3 140.0.0.20 member11-fpc4 140.0.0.21 member11-fpc5 140.0.0.22 member11-fpc6 140.0.0.23 member11-fpc7 140.0.0.24 member11-fpc8 140.0.0.25 member11-fpc9 140.0.0.26 member11-fpc10 140.0.0.27 member11-fpc11 140.0.0.28 member11-fpc12 140.0.0.29 member11-fpc13 140.0.0.30 member11-fpc14 140.0.0.31 member11-fpc15 140.0.0.32 member11-fpc16 140.0.0.33 member11-fpc17 140.0.0.34 member11-fpc18 140.0.0.35 member11-fpc19 140.0.0.36 member11-fpc20 140.0.0.37 member11-fpc21 140.0.0.38 member11-fpc22 140.0.0.39 member11-fpc23 140.0.0.40 member11-fpc24 140.0.0.41 member11-fpc25 140.0.0.42 member11-fpc26 140.0.0.43 member11-fpc27 140.0.0.44 member11-fpc28 140.0.0.45 member11-fpc29 140.0.0.46 member11-fpc30 140.0.0.47 member11-fpc31 141.0.0.6 lcc12-backup 141.0.0.16 lcc12-fpc0 141.0.0.17 lcc12-fpc1 141.0.0.18 lcc12-fpc2 141.0.0.19 lcc12-fpc3 141.0.0.20 lcc12-fpc4 141.0.0.21 lcc12-fpc5 141.0.0.22 lcc12-fpc6 141.0.0.23 lcc12-fpc7 141.0.0.48 lcc12-spmb0 141.0.0.49 lcc12-spmb1 #LCC 12 (or MEMBER 12 on Virtual Chassis) 141.0.0.1 lcc12-master member12-master 141.0.0.4 lcc12-re0 member12-re0 141.0.0.5 lcc12-re1 member12-re1 141.0.0.6 lcc12-backup member12-backup 141.0.0.16 member12-fpc0 141.0.0.17 member12-fpc1 141.0.0.18 member12-fpc2 141.0.0.19 member12-fpc3 141.0.0.20 member12-fpc4 141.0.0.21 member12-fpc5 141.0.0.22 member12-fpc6 141.0.0.23 member12-fpc7 141.0.0.24 member12-fpc8 141.0.0.25 member12-fpc9 141.0.0.26 member12-fpc10 141.0.0.27 member12-fpc11 141.0.0.28 member12-fpc12 141.0.0.29 member12-fpc13 141.0.0.30 member12-fpc14 141.0.0.31 member12-fpc15 141.0.0.32 member12-fpc16 141.0.0.33 member12-fpc17 141.0.0.34 member12-fpc18 141.0.0.35 member12-fpc19 141.0.0.36 member12-fpc20 141.0.0.37 member12-fpc21 141.0.0.38 member12-fpc22 141.0.0.39 member12-fpc23 141.0.0.40 member12-fpc24 141.0.0.41 member12-fpc25 141.0.0.42 member12-fpc26 141.0.0.43 member12-fpc27 141.0.0.44 member12-fpc28 141.0.0.45 member12-fpc29 141.0.0.46 member12-fpc30 141.0.0.47 member12-fpc31 142.0.0.6 lcc13-backup 142.0.0.16 lcc13-fpc0 142.0.0.17 lcc13-fpc1 142.0.0.18 lcc13-fpc2 142.0.0.19 lcc13-fpc3 142.0.0.20 lcc13-fpc4 142.0.0.21 lcc13-fpc5 142.0.0.22 lcc13-fpc6 142.0.0.23 lcc13-fpc7 142.0.0.48 lcc13-spmb0 142.0.0.49 lcc13-spmb1 #LCC 13 (or MEMBER 13 on Virtual Chassis) 142.0.0.1 lcc13-master member13-master 142.0.0.4 lcc13-re0 member13-re0 142.0.0.5 lcc13-re1 member13-re1 142.0.0.6 lcc13-backup member13-backup 142.0.0.16 member13-fpc0 142.0.0.17 member13-fpc1 142.0.0.18 member13-fpc2 142.0.0.19 member13-fpc3 142.0.0.20 member13-fpc4 142.0.0.21 member13-fpc5 142.0.0.22 member13-fpc6 142.0.0.23 member13-fpc7 142.0.0.24 member13-fpc8 142.0.0.25 member13-fpc9 142.0.0.26 member13-fpc10 142.0.0.27 member13-fpc11 142.0.0.28 member13-fpc12 142.0.0.29 member13-fpc13 142.0.0.30 member13-fpc14 142.0.0.31 member13-fpc15 142.0.0.32 member13-fpc16 142.0.0.33 member13-fpc17 142.0.0.34 member13-fpc18 142.0.0.35 member13-fpc19 142.0.0.36 member13-fpc20 142.0.0.37 member13-fpc21 142.0.0.38 member13-fpc22 142.0.0.39 member13-fpc23 142.0.0.40 member13-fpc24 142.0.0.41 member13-fpc25 142.0.0.42 member13-fpc26 142.0.0.43 member13-fpc27 142.0.0.44 member13-fpc28 142.0.0.45 member13-fpc29 142.0.0.46 member13-fpc30 142.0.0.47 member13-fpc31 143.0.0.6 lcc14-backup 143.0.0.16 lcc14-fpc0 143.0.0.17 lcc14-fpc1 143.0.0.18 lcc14-fpc2 143.0.0.19 lcc14-fpc3 143.0.0.20 lcc14-fpc4 143.0.0.21 lcc14-fpc5 143.0.0.22 lcc14-fpc6 143.0.0.23 lcc14-fpc7 143.0.0.48 lcc14-spmb0 143.0.0.49 lcc14-spmb1 #LCC 14 (or MEMBER 14 on Virtual Chassis) 143.0.0.1 lcc14-master member14-master 143.0.0.4 lcc14-re0 member14-re0 143.0.0.5 lcc14-re1 member14-re1 143.0.0.6 lcc14-backup member14-backup 143.0.0.16 member14-fpc0 143.0.0.17 member14-fpc1 143.0.0.18 member14-fpc2 143.0.0.19 member14-fpc3 143.0.0.20 member14-fpc4 143.0.0.21 member14-fpc5 143.0.0.22 member14-fpc6 143.0.0.23 member14-fpc7 143.0.0.24 member14-fpc8 143.0.0.25 member14-fpc9 143.0.0.26 member14-fpc10 143.0.0.27 member14-fpc11 143.0.0.28 member14-fpc12 143.0.0.29 member14-fpc13 143.0.0.30 member14-fpc14 143.0.0.31 member14-fpc15 143.0.0.32 member14-fpc16 143.0.0.33 member14-fpc17 143.0.0.34 member14-fpc18 143.0.0.35 member14-fpc19 143.0.0.36 member14-fpc20 143.0.0.37 member14-fpc21 143.0.0.38 member14-fpc22 143.0.0.39 member14-fpc23 143.0.0.40 member14-fpc24 143.0.0.41 member14-fpc25 143.0.0.42 member14-fpc26 143.0.0.43 member14-fpc27 143.0.0.44 member14-fpc28 143.0.0.45 member14-fpc29 143.0.0.46 member14-fpc30 143.0.0.47 member14-fpc31 144.0.0.6 lcc15-backup 144.0.0.16 lcc15-fpc0 144.0.0.17 lcc15-fpc1 144.0.0.18 lcc15-fpc2 144.0.0.19 lcc15-fpc3 144.0.0.20 lcc15-fpc4 144.0.0.21 lcc15-fpc5 144.0.0.22 lcc15-fpc6 144.0.0.23 lcc15-fpc7 144.0.0.48 lcc15-spmb0 144.0.0.49 lcc15-spmb1 #LCC 15 (or MEMBER 15 on Virtual Chassis) 144.0.0.1 lcc15-master member15-master 144.0.0.4 lcc15-re0 member15-re0 144.0.0.5 lcc15-re1 member15-re1 144.0.0.6 lcc15-backup member15-backup 144.0.0.16 member15-fpc0 144.0.0.17 member15-fpc1 144.0.0.18 member15-fpc2 144.0.0.19 member15-fpc3 144.0.0.20 member15-fpc4 144.0.0.21 member15-fpc5 144.0.0.22 member15-fpc6 144.0.0.23 member15-fpc7 144.0.0.24 member15-fpc8 144.0.0.25 member15-fpc9 144.0.0.26 member15-fpc10 144.0.0.27 member15-fpc11 144.0.0.28 member15-fpc12 144.0.0.29 member15-fpc13 144.0.0.30 member15-fpc14 144.0.0.31 member15-fpc15 144.0.0.32 member15-fpc16 144.0.0.33 member15-fpc17 144.0.0.34 member15-fpc18 144.0.0.35 member15-fpc19 144.0.0.36 member15-fpc20 144.0.0.37 member15-fpc21 144.0.0.38 member15-fpc22 144.0.0.39 member15-fpc23 144.0.0.40 member15-fpc24 144.0.0.41 member15-fpc25 144.0.0.42 member15-fpc26 144.0.0.43 member15-fpc27 144.0.0.44 member15-fpc28 144.0.0.45 member15-fpc29 144.0.0.46 member15-fpc30 144.0.0.47 member15-fpc31 #LCC 16 (or MEMBER 16 on Virtual Chassis) 145.0.0.1 lcc16-master member16-master 145.0.0.4 lcc16-re0 member16-re0 145.0.0.5 lcc16-re1 member16-re1 145.0.0.6 lcc16-backup member16-backup 145.0.0.16 member16-fpc0 145.0.0.17 member16-fpc1 145.0.0.18 member16-fpc2 145.0.0.19 member16-fpc3 145.0.0.20 member16-fpc4 145.0.0.21 member16-fpc5 145.0.0.22 member16-fpc6 145.0.0.23 member16-fpc7 145.0.0.24 member16-fpc8 145.0.0.25 member16-fpc9 145.0.0.26 member16-fpc10 145.0.0.27 member16-fpc11 145.0.0.28 member16-fpc12 145.0.0.29 member16-fpc13 145.0.0.30 member16-fpc14 145.0.0.31 member16-fpc15 145.0.0.32 member16-fpc16 145.0.0.33 member16-fpc17 145.0.0.34 member16-fpc18 145.0.0.35 member16-fpc19 145.0.0.36 member16-fpc20 145.0.0.37 member16-fpc21 145.0.0.38 member16-fpc22 145.0.0.39 member16-fpc23 145.0.0.40 member16-fpc24 145.0.0.41 member16-fpc25 145.0.0.42 member16-fpc26 145.0.0.43 member16-fpc27 145.0.0.44 member16-fpc28 145.0.0.45 member16-fpc29 145.0.0.46 member16-fpc30 145.0.0.47 member16-fpc31 #LCC 17 (or MEMBER 17 on Virtual Chassis) 146.0.0.1 lcc17-master member17-master 146.0.0.4 lcc17-re0 member17-re0 146.0.0.5 lcc17-re1 member17-re1 146.0.0.6 lcc17-backup member17-backup 146.0.0.16 member17-fpc0 146.0.0.17 member17-fpc1 146.0.0.18 member17-fpc2 146.0.0.19 member17-fpc3 146.0.0.20 member17-fpc4 146.0.0.21 member17-fpc5 146.0.0.22 member17-fpc6 146.0.0.23 member17-fpc7 146.0.0.24 member17-fpc8 146.0.0.25 member17-fpc9 146.0.0.26 member17-fpc10 146.0.0.27 member17-fpc11 146.0.0.28 member17-fpc12 146.0.0.29 member17-fpc13 146.0.0.30 member17-fpc14 146.0.0.31 member17-fpc15 146.0.0.32 member17-fpc16 146.0.0.33 member17-fpc17 146.0.0.34 member17-fpc18 146.0.0.35 member17-fpc19 146.0.0.36 member17-fpc20 146.0.0.37 member17-fpc21 146.0.0.38 member17-fpc22 146.0.0.39 member17-fpc23 146.0.0.40 member17-fpc24 146.0.0.41 member17-fpc25 146.0.0.42 member17-fpc26 146.0.0.43 member17-fpc27 146.0.0.44 member17-fpc28 146.0.0.45 member17-fpc29 146.0.0.46 member17-fpc30 146.0.0.47 member17-fpc31 #LCC 18 (or MEMBER 18 on Virtual Chassis) 147.0.0.1 lcc18-master member18-master 147.0.0.4 lcc18-re0 member18-re0 147.0.0.5 lcc18-re1 member18-re1 147.0.0.6 lcc18-backup member18-backup 147.0.0.16 member18-fpc0 147.0.0.17 member18-fpc1 147.0.0.18 member18-fpc2 147.0.0.19 member18-fpc3 147.0.0.20 member18-fpc4 147.0.0.21 member18-fpc5 147.0.0.22 member18-fpc6 147.0.0.23 member18-fpc7 147.0.0.24 member18-fpc8 147.0.0.25 member18-fpc9 147.0.0.26 member18-fpc10 147.0.0.27 member18-fpc11 147.0.0.28 member18-fpc12 147.0.0.29 member18-fpc13 147.0.0.30 member18-fpc14 147.0.0.31 member18-fpc15 147.0.0.32 member18-fpc16 147.0.0.33 member18-fpc17 147.0.0.34 member18-fpc18 147.0.0.35 member18-fpc19 147.0.0.36 member18-fpc20 147.0.0.37 member18-fpc21 147.0.0.38 member18-fpc22 147.0.0.39 member18-fpc23 147.0.0.40 member18-fpc24 147.0.0.41 member18-fpc25 147.0.0.42 member18-fpc26 147.0.0.43 member18-fpc27 147.0.0.44 member18-fpc28 147.0.0.45 member18-fpc29 147.0.0.46 member18-fpc30 147.0.0.47 member18-fpc31 #LCC 19 (or MEMBER 19 on Virtual Chassis) 148.0.0.1 lcc19-master member19-master 148.0.0.4 lcc19-re0 member19-re0 148.0.0.5 lcc19-re1 member19-re1 148.0.0.6 lcc19-backup member19-backup 148.0.0.16 member19-fpc0 148.0.0.17 member19-fpc1 148.0.0.18 member19-fpc2 148.0.0.19 member19-fpc3 148.0.0.20 member19-fpc4 148.0.0.21 member19-fpc5 148.0.0.22 member19-fpc6 148.0.0.23 member19-fpc7 148.0.0.24 member19-fpc8 148.0.0.25 member19-fpc9 148.0.0.26 member19-fpc10 148.0.0.27 member19-fpc11 148.0.0.28 member19-fpc12 148.0.0.29 member19-fpc13 148.0.0.30 member19-fpc14 148.0.0.31 member19-fpc15 148.0.0.32 member19-fpc16 148.0.0.33 member19-fpc17 148.0.0.34 member19-fpc18 148.0.0.35 member19-fpc19 148.0.0.36 member19-fpc20 148.0.0.37 member19-fpc21 148.0.0.38 member19-fpc22 148.0.0.39 member19-fpc23 148.0.0.40 member19-fpc24 148.0.0.41 member19-fpc25 148.0.0.42 member19-fpc26 148.0.0.43 member19-fpc27 148.0.0.44 member19-fpc28 148.0.0.45 member19-fpc29 148.0.0.46 member19-fpc30 148.0.0.47 member19-fpc31 #LCC 20 (or MEMBER 20 on Virtual Chassis) 149.0.0.1 lcc20-master member20-master 149.0.0.4 lcc20-re0 member20-re0 149.0.0.5 lcc20-re1 member20-re1 149.0.0.6 lcc20-backup member20-backup 149.0.0.16 member20-fpc0 149.0.0.17 member20-fpc1 149.0.0.18 member20-fpc2 149.0.0.19 member20-fpc3 149.0.0.20 member20-fpc4 149.0.0.21 member20-fpc5 149.0.0.22 member20-fpc6 149.0.0.23 member20-fpc7 149.0.0.24 member20-fpc8 149.0.0.25 member20-fpc9 149.0.0.26 member20-fpc10 149.0.0.27 member20-fpc11 149.0.0.28 member20-fpc12 149.0.0.29 member20-fpc13 149.0.0.30 member20-fpc14 149.0.0.31 member20-fpc15 149.0.0.32 member20-fpc16 149.0.0.33 member20-fpc17 149.0.0.34 member20-fpc18 149.0.0.35 member20-fpc19 149.0.0.36 member20-fpc20 149.0.0.37 member20-fpc21 149.0.0.38 member20-fpc22 149.0.0.39 member20-fpc23 149.0.0.40 member20-fpc24 149.0.0.41 member20-fpc25 149.0.0.42 member20-fpc26 149.0.0.43 member20-fpc27 149.0.0.44 member20-fpc28 149.0.0.45 member20-fpc29 149.0.0.46 member20-fpc30 149.0.0.47 member20-fpc31 #LCC 21 (or MEMBER 21 on Virtual Chassis) 150.0.0.1 lcc21-master member21-master 150.0.0.4 lcc21-re0 member21-re0 150.0.0.5 lcc21-re1 member21-re1 150.0.0.6 lcc21-backup member21-backup 150.0.0.16 member21-fpc0 150.0.0.17 member21-fpc1 150.0.0.18 member21-fpc2 150.0.0.19 member21-fpc3 150.0.0.20 member21-fpc4 150.0.0.21 member21-fpc5 150.0.0.22 member21-fpc6 150.0.0.23 member21-fpc7 150.0.0.24 member21-fpc8 150.0.0.25 member21-fpc9 150.0.0.26 member21-fpc10 150.0.0.27 member21-fpc11 150.0.0.28 member21-fpc12 150.0.0.29 member21-fpc13 150.0.0.30 member21-fpc14 150.0.0.31 member21-fpc15 150.0.0.32 member21-fpc16 150.0.0.33 member21-fpc17 150.0.0.34 member21-fpc18 150.0.0.35 member21-fpc19 150.0.0.36 member21-fpc20 150.0.0.37 member21-fpc21 150.0.0.38 member21-fpc22 150.0.0.39 member21-fpc23 150.0.0.40 member21-fpc24 150.0.0.41 member21-fpc25 150.0.0.42 member21-fpc26 150.0.0.43 member21-fpc27 150.0.0.44 member21-fpc28 150.0.0.45 member21-fpc29 150.0.0.46 member21-fpc30 150.0.0.47 member21-fpc31 #LCC 22 (or MEMBER 22 on Virtual Chassis) 151.0.0.1 lcc22-master member22-master 151.0.0.4 lcc22-re0 member22-re0 151.0.0.5 lcc22-re1 member22-re1 151.0.0.6 lcc22-backup member22-backup 151.0.0.16 member22-fpc0 151.0.0.17 member22-fpc1 151.0.0.18 member22-fpc2 151.0.0.19 member22-fpc3 151.0.0.20 member22-fpc4 151.0.0.21 member22-fpc5 151.0.0.22 member22-fpc6 151.0.0.23 member22-fpc7 151.0.0.24 member22-fpc8 151.0.0.25 member22-fpc9 151.0.0.26 member22-fpc10 151.0.0.27 member22-fpc11 151.0.0.28 member22-fpc12 151.0.0.29 member22-fpc13 151.0.0.30 member22-fpc14 151.0.0.31 member22-fpc15 151.0.0.32 member22-fpc16 151.0.0.33 member22-fpc17 151.0.0.34 member22-fpc18 151.0.0.35 member22-fpc19 151.0.0.36 member22-fpc20 151.0.0.37 member22-fpc21 151.0.0.38 member22-fpc22 151.0.0.39 member22-fpc23 151.0.0.40 member22-fpc24 151.0.0.41 member22-fpc25 151.0.0.42 member22-fpc26 151.0.0.43 member22-fpc27 151.0.0.44 member22-fpc28 151.0.0.45 member22-fpc29 151.0.0.46 member22-fpc30 151.0.0.47 member22-fpc31 #LCC 23 (or MEMBER 23 on Virtual Chassis) 152.0.0.1 lcc23-master member23-master 152.0.0.4 lcc23-re0 member23-re0 152.0.0.5 lcc23-re1 member23-re1 152.0.0.6 lcc23-backup member23-backup 152.0.0.16 member23-fpc0 152.0.0.17 member23-fpc1 152.0.0.18 member23-fpc2 152.0.0.19 member23-fpc3 152.0.0.20 member23-fpc4 152.0.0.21 member23-fpc5 152.0.0.22 member23-fpc6 152.0.0.23 member23-fpc7 152.0.0.24 member23-fpc8 152.0.0.25 member23-fpc9 152.0.0.26 member23-fpc10 152.0.0.27 member23-fpc11 152.0.0.28 member23-fpc12 152.0.0.29 member23-fpc13 152.0.0.30 member23-fpc14 152.0.0.31 member23-fpc15 152.0.0.32 member23-fpc16 152.0.0.33 member23-fpc17 152.0.0.34 member23-fpc18 152.0.0.35 member23-fpc19 152.0.0.36 member23-fpc20 152.0.0.37 member23-fpc21 152.0.0.38 member23-fpc22 152.0.0.39 member23-fpc23 152.0.0.40 member23-fpc24 152.0.0.41 member23-fpc25 152.0.0.42 member23-fpc26 152.0.0.43 member23-fpc27 152.0.0.44 member23-fpc28 152.0.0.45 member23-fpc29 152.0.0.46 member23-fpc30 152.0.0.47 member23-fpc31 #LCC 24 (or MEMBER 24 on Virtual Chassis) 153.0.0.1 lcc24-master member24-master 153.0.0.4 lcc24-re0 member24-re0 153.0.0.5 lcc24-re1 member24-re1 153.0.0.6 lcc24-backup member24-backup 153.0.0.16 member24-fpc0 153.0.0.17 member24-fpc1 153.0.0.18 member24-fpc2 153.0.0.19 member24-fpc3 153.0.0.20 member24-fpc4 153.0.0.21 member24-fpc5 153.0.0.22 member24-fpc6 153.0.0.23 member24-fpc7 153.0.0.24 member24-fpc8 153.0.0.25 member24-fpc9 153.0.0.26 member24-fpc10 153.0.0.27 member24-fpc11 153.0.0.28 member24-fpc12 153.0.0.29 member24-fpc13 153.0.0.30 member24-fpc14 153.0.0.31 member24-fpc15 153.0.0.32 member24-fpc16 153.0.0.33 member24-fpc17 153.0.0.34 member24-fpc18 153.0.0.35 member24-fpc19 153.0.0.36 member24-fpc20 153.0.0.37 member24-fpc21 153.0.0.38 member24-fpc22 153.0.0.39 member24-fpc23 153.0.0.40 member24-fpc24 153.0.0.41 member24-fpc25 153.0.0.42 member24-fpc26 153.0.0.43 member24-fpc27 153.0.0.44 member24-fpc28 153.0.0.45 member24-fpc29 153.0.0.46 member24-fpc30 153.0.0.47 member24-fpc31 #LCC 25 (or MEMBER 25 on Virtual Chassis) 154.0.0.1 lcc25-master member25-master 154.0.0.4 lcc25-re0 member25-re0 154.0.0.5 lcc25-re1 member25-re1 154.0.0.6 lcc25-backup member25-backup 154.0.0.16 member25-fpc0 154.0.0.17 member25-fpc1 154.0.0.18 member25-fpc2 154.0.0.19 member25-fpc3 154.0.0.20 member25-fpc4 154.0.0.21 member25-fpc5 154.0.0.22 member25-fpc6 154.0.0.23 member25-fpc7 154.0.0.24 member25-fpc8 154.0.0.25 member25-fpc9 154.0.0.26 member25-fpc10 154.0.0.27 member25-fpc11 154.0.0.28 member25-fpc12 154.0.0.29 member25-fpc13 154.0.0.30 member25-fpc14 154.0.0.31 member25-fpc15 154.0.0.32 member25-fpc16 154.0.0.33 member25-fpc17 154.0.0.34 member25-fpc18 154.0.0.35 member25-fpc19 154.0.0.36 member25-fpc20 154.0.0.37 member25-fpc21 154.0.0.38 member25-fpc22 154.0.0.39 member25-fpc23 154.0.0.40 member25-fpc24 154.0.0.41 member25-fpc25 154.0.0.42 member25-fpc26 154.0.0.43 member25-fpc27 154.0.0.44 member25-fpc28 154.0.0.45 member25-fpc29 154.0.0.46 member25-fpc30 154.0.0.47 member25-fpc31 #LCC 26 (or MEMBER 26 on Virtual Chassis) 155.0.0.1 lcc26-master member26-master 155.0.0.4 lcc26-re0 member26-re0 155.0.0.5 lcc26-re1 member26-re1 155.0.0.6 lcc26-backup member26-backup 155.0.0.16 member26-fpc0 155.0.0.17 member26-fpc1 155.0.0.18 member26-fpc2 155.0.0.19 member26-fpc3 155.0.0.20 member26-fpc4 155.0.0.21 member26-fpc5 155.0.0.22 member26-fpc6 155.0.0.23 member26-fpc7 155.0.0.24 member26-fpc8 155.0.0.25 member26-fpc9 155.0.0.26 member26-fpc10 155.0.0.27 member26-fpc11 155.0.0.28 member26-fpc12 155.0.0.29 member26-fpc13 155.0.0.30 member26-fpc14 155.0.0.31 member26-fpc15 155.0.0.32 member26-fpc16 155.0.0.33 member26-fpc17 155.0.0.34 member26-fpc18 155.0.0.35 member26-fpc19 155.0.0.36 member26-fpc20 155.0.0.37 member26-fpc21 155.0.0.38 member26-fpc22 155.0.0.39 member26-fpc23 155.0.0.40 member26-fpc24 155.0.0.41 member26-fpc25 155.0.0.42 member26-fpc26 155.0.0.43 member26-fpc27 155.0.0.44 member26-fpc28 155.0.0.45 member26-fpc29 155.0.0.46 member26-fpc30 155.0.0.47 member26-fpc31 #LCC 27 (or MEMBER 27 on Virtual Chassis) 156.0.0.1 lcc27-master member27-master 156.0.0.4 lcc27-re0 member27-re0 156.0.0.5 lcc27-re1 member27-re1 156.0.0.6 lcc27-backup member27-backup 156.0.0.16 member27-fpc0 156.0.0.17 member27-fpc1 156.0.0.18 member27-fpc2 156.0.0.19 member27-fpc3 156.0.0.20 member27-fpc4 156.0.0.21 member27-fpc5 156.0.0.22 member27-fpc6 156.0.0.23 member27-fpc7 156.0.0.24 member27-fpc8 156.0.0.25 member27-fpc9 156.0.0.26 member27-fpc10 156.0.0.27 member27-fpc11 156.0.0.28 member27-fpc12 156.0.0.29 member27-fpc13 156.0.0.30 member27-fpc14 156.0.0.31 member27-fpc15 156.0.0.32 member27-fpc16 156.0.0.33 member27-fpc17 156.0.0.34 member27-fpc18 156.0.0.35 member27-fpc19 156.0.0.36 member27-fpc20 156.0.0.37 member27-fpc21 156.0.0.38 member27-fpc22 156.0.0.39 member27-fpc23 156.0.0.40 member27-fpc24 156.0.0.41 member27-fpc25 156.0.0.42 member27-fpc26 156.0.0.43 member27-fpc27 156.0.0.44 member27-fpc28 156.0.0.45 member27-fpc29 156.0.0.46 member27-fpc30 156.0.0.47 member27-fpc31 #LCC 28 (or MEMBER 28 on Virtual Chassis) 157.0.0.1 lcc28-master member28-master 157.0.0.4 lcc28-re0 member28-re0 157.0.0.5 lcc28-re1 member28-re1 157.0.0.6 lcc28-backup member28-backup 157.0.0.16 member28-fpc0 157.0.0.17 member28-fpc1 157.0.0.18 member28-fpc2 157.0.0.19 member28-fpc3 157.0.0.20 member28-fpc4 157.0.0.21 member28-fpc5 157.0.0.22 member28-fpc6 157.0.0.23 member28-fpc7 157.0.0.24 member28-fpc8 157.0.0.25 member28-fpc9 157.0.0.26 member28-fpc10 157.0.0.27 member28-fpc11 157.0.0.28 member28-fpc12 157.0.0.29 member28-fpc13 157.0.0.30 member28-fpc14 157.0.0.31 member28-fpc15 157.0.0.32 member28-fpc16 157.0.0.33 member28-fpc17 157.0.0.34 member28-fpc18 157.0.0.35 member28-fpc19 157.0.0.36 member28-fpc20 157.0.0.37 member28-fpc21 157.0.0.38 member28-fpc22 157.0.0.39 member28-fpc23 157.0.0.40 member28-fpc24 157.0.0.41 member28-fpc25 157.0.0.42 member28-fpc26 157.0.0.43 member28-fpc27 157.0.0.44 member28-fpc28 157.0.0.45 member28-fpc29 157.0.0.46 member28-fpc30 157.0.0.47 member28-fpc31 #LCC 29 (or MEMBER 29 on Virtual Chassis) 158.0.0.1 lcc29-master member29-master 158.0.0.4 lcc29-re0 member29-re0 158.0.0.5 lcc29-re1 member29-re1 158.0.0.6 lcc29-backup member29-backup 158.0.0.16 member29-fpc0 158.0.0.17 member29-fpc1 158.0.0.18 member29-fpc2 158.0.0.19 member29-fpc3 158.0.0.20 member29-fpc4 158.0.0.21 member29-fpc5 158.0.0.22 member29-fpc6 158.0.0.23 member29-fpc7 158.0.0.24 member29-fpc8 158.0.0.25 member29-fpc9 158.0.0.26 member29-fpc10 158.0.0.27 member29-fpc11 158.0.0.28 member29-fpc12 158.0.0.29 member29-fpc13 158.0.0.30 member29-fpc14 158.0.0.31 member29-fpc15 158.0.0.32 member29-fpc16 158.0.0.33 member29-fpc17 158.0.0.34 member29-fpc18 158.0.0.35 member29-fpc19 158.0.0.36 member29-fpc20 158.0.0.37 member29-fpc21 158.0.0.38 member29-fpc22 158.0.0.39 member29-fpc23 158.0.0.40 member29-fpc24 158.0.0.41 member29-fpc25 158.0.0.42 member29-fpc26 158.0.0.43 member29-fpc27 158.0.0.44 member29-fpc28 158.0.0.45 member29-fpc29 158.0.0.46 member29-fpc30 158.0.0.47 member29-fpc31 #LCC 30 (or MEMBER 30 on Virtual Chassis) 159.0.0.1 lcc30-master member30-master 159.0.0.4 lcc30-re0 member30-re0 159.0.0.5 lcc30-re1 member30-re1 159.0.0.6 lcc30-backup member30-backup 159.0.0.16 member30-fpc0 159.0.0.17 member30-fpc1 159.0.0.18 member30-fpc2 159.0.0.19 member30-fpc3 159.0.0.20 member30-fpc4 159.0.0.21 member30-fpc5 159.0.0.22 member30-fpc6 159.0.0.23 member30-fpc7 159.0.0.24 member30-fpc8 159.0.0.25 member30-fpc9 159.0.0.26 member30-fpc10 159.0.0.27 member30-fpc11 159.0.0.28 member30-fpc12 159.0.0.29 member30-fpc13 159.0.0.30 member30-fpc14 159.0.0.31 member30-fpc15 159.0.0.32 member30-fpc16 159.0.0.33 member30-fpc17 159.0.0.34 member30-fpc18 159.0.0.35 member30-fpc19 159.0.0.36 member30-fpc20 159.0.0.37 member30-fpc21 159.0.0.38 member30-fpc22 159.0.0.39 member30-fpc23 159.0.0.40 member30-fpc24 159.0.0.41 member30-fpc25 159.0.0.42 member30-fpc26 159.0.0.43 member30-fpc27 159.0.0.44 member30-fpc28 159.0.0.45 member30-fpc29 159.0.0.46 member30-fpc30 159.0.0.47 member30-fpc31 #LCC 31 (or MEMBER 31 on Virtual Chassis) 160.0.0.1 lcc31-master member31-master 160.0.0.4 lcc31-re0 member31-re0 160.0.0.5 lcc31-re1 member31-re1 160.0.0.6 lcc31-backup member31-backup 160.0.0.16 member31-fpc0 160.0.0.17 member31-fpc1 160.0.0.18 member31-fpc2 160.0.0.19 member31-fpc3 160.0.0.20 member31-fpc4 160.0.0.21 member31-fpc5 160.0.0.22 member31-fpc6 160.0.0.23 member31-fpc7 160.0.0.24 member31-fpc8 160.0.0.25 member31-fpc9 160.0.0.26 member31-fpc10 160.0.0.27 member31-fpc11 160.0.0.28 member31-fpc12 160.0.0.29 member31-fpc13 160.0.0.30 member31-fpc14 160.0.0.31 member31-fpc15 160.0.0.32 member31-fpc16 160.0.0.33 member31-fpc17 160.0.0.34 member31-fpc18 160.0.0.35 member31-fpc19 160.0.0.36 member31-fpc20 160.0.0.37 member31-fpc21 160.0.0.38 member31-fpc22 160.0.0.39 member31-fpc23 160.0.0.40 member31-fpc24 160.0.0.41 member31-fpc25 160.0.0.42 member31-fpc26 160.0.0.43 member31-fpc27 160.0.0.44 member31-fpc28 160.0.0.45 member31-fpc29 160.0.0.46 member31-fpc30 160.0.0.47 member31-fpc31 #VIRT SC 161.0.0.1 sc-master 161.0.0.4 sc-re0 161.0.0.5 sc-re1 161.0.0.6 sc-backup #SFC 0 162.0.0.1 sfc0-master 162.0.0.4 sfc0-re0 162.0.0.5 sfc0-re1 162.0.0.6 sfc0-backup 162.0.0.48 sfc0-spmb0 162.0.0.49 sfc0-spmb1 #SFC 1 163.0.0.1 sfc1-master 163.0.0.4 sfc1-re0 163.0.0.5 sfc1-re1 163.0.0.6 sfc1-backup 163.0.0.48 sfc1-spmb0 163.0.0.49 sfc1-spmb1 #SFC 2 164.0.0.1 sfc2-master 164.0.0.4 sfc2-re0 164.0.0.5 sfc2-re1 164.0.0.6 sfc2-backup 164.0.0.48 sfc2-spmb0 164.0.0.49 sfc2-spmb1 #SFC 3 165.0.0.1 sfc3-master 165.0.0.4 sfc3-re0 165.0.0.5 sfc3-re1 165.0.0.6 sfc3-backup 165.0.0.48 sfc3-spmb0 165.0.0.49 sfc3-spmb1 #SFC 4 166.0.0.1 sfc4-master 166.0.0.4 sfc4-re0 166.0.0.5 sfc4-re1 166.0.0.6 sfc4-backup 166.0.0.48 sfc4-spmb0 166.0.0.49 sfc4-spmb1 #JCS 190.0.0.1 psd%d-master 190.0.0.4 psd%d-re0 190.0.0.5 psd%d-re1 190.0.0.6 psd%d-backup # Old IP address format (RT_IRS_V2) # # Single Chassis Hostnames # 10.0.0.1 master 10.0.0.4 re0 10.0.0.5 re1 10.0.0.16 fpc0 10.0.0.17 fpc1 10.0.0.18 fpc2 10.0.0.19 fpc3 10.0.0.20 fpc4 10.0.0.21 fpc5 10.0.0.22 fpc6 10.0.0.23 fpc7 10.0.0.24 fpc8 10.0.0.25 fpc9 10.0.0.26 fpc10 10.0.0.27 fpc11 10.0.0.28 fpc12 10.0.0.29 fpc13 10.0.0.30 fpc14 10.0.0.31 fpc15 # # Multi Chassis Hostnames # #SCC 10.16.0.1 scc-master 10.16.0.4 scc-re0 10.16.0.5 scc-re1 #LCC 0 10.1.0.1 lcc0-master member0-master 10.1.0.4 lcc0-re0 member0-re0 10.1.0.5 lcc0-re1 member0-re1 10.1.0.6 lcc0-backup member0-backup #LCC 1 10.2.0.1 lcc1-master member1-master 10.2.0.4 lcc1-re0 member1-re0 10.2.0.5 lcc1-re1 member1-re1 10.2.0.6 lcc1-backup member1-backup #LCC 2 10.3.0.1 lcc2-master member2-master 10.3.0.4 lcc2-re0 member2-re0 10.3.0.5 lcc2-re1 member2-re1 10.3.0.6 lcc2-backup member2-backup #LCC 3 10.4.0.1 lcc3-master member3-master 10.4.0.4 lcc3-re0 member3-re0 10.4.0.5 lcc3-re1 member3-re1 10.4.0.6 lcc3-backup member3-backup #LCC 4 10.5.0.1 lcc4-master member4-master 10.5.0.4 lcc4-re0 member4-re0 10.5.0.5 lcc4-re1 member4-re1 10.5.0.6 lcc4-backup member4-backup #LCC 5 10.6.0.1 lcc5-master member5-master 10.6.0.4 lcc5-re0 member5-re0 10.6.0.5 lcc5-re1 member5-re1 10.6.0.6 lcc5-backup member5-backup #LCC 6 10.7.0.1 lcc6-master member6-master 10.7.0.4 lcc6-re0 member6-re0 10.7.0.5 lcc6-re1 member6-re1 10.7.0.6 lcc6-backup member6-backup #LCC 7 10.8.0.1 lcc7-master member7-master 10.8.0.4 lcc7-re0 member7-re0 10.8.0.5 lcc7-re1 member7-re1 10.8.0.6 lcc7-backup member7-backup #LCC 8 10.9.0.1 lcc8-master member8-master 10.9.0.4 lcc8-re0 member8-re0 10.9.0.5 lcc8-re1 member8-re1 10.9.0.6 lcc8-backup member8-backup #LCC 9 10.10.0.1 lcc9-master member9-master 10.10.0.4 lcc9-re0 member9-re0 10.10.0.5 lcc9-re1 member9-re1 10.10.0.6 lcc9-backup member9-backup #LCC 10 10.11.0.1 lcc10-master member10-master 10.11.0.4 lcc10-re0 member10-re0 10.11.0.5 lcc10-re1 member10-re1 10.11.0.6 lcc10-backup member10-backup #LCC 11 10.12.0.1 lcc11-master member11-master 10.12.0.4 lcc11-re0 member11-re0 10.12.0.5 lcc11-re1 member11-re1 10.12.0.6 lcc11-backup member11-backup #LCC 12 10.13.0.1 lcc12-master member12-master 10.13.0.4 lcc12-re0 member12-re0 10.13.0.5 lcc12-re1 member12-re1 10.13.0.6 lcc12-backup member12-backup #LCC 13 10.14.0.1 lcc13-master member13-master 10.14.0.4 lcc13-re0 member13-re0 10.14.0.5 lcc13-re1 member13-re1 10.14.0.6 lcc13-backup member13-backup #LCC 14 10.15.0.1 lcc14-master member14-master 10.15.0.4 lcc14-re0 member14-re0 10.15.0.5 lcc14-re1 member14-re1 10.15.0.6 lcc14-backup member14-backup #LCC 15 10.16.0.1 lcc15-master member15-master 10.16.0.4 lcc15-re0 member15-re0 10.16.0.5 lcc15-re1 member15-re1 10.16.0.6 lcc15-backup member15-backup #SFC 0 10.34.0.1 sfc0-master 10.34.0.4 sfc0-re0 10.34.0.5 sfc0-re1 #SFC 1 10.35.0.1 sfc1-master 10.35.0.4 sfc1-re0 10.35.0.5 sfc1-re1 #SFC 2 10.36.0.1 sfc2-master 10.36.0.4 sfc2-re0 10.36.0.5 sfc2-re1 #SFC 3 10.37.0.1 sfc3-master 10.37.0.4 sfc3-re0 10.37.0.5 sfc3-re1 #SFC 4 10.38.0.1 sfc4-master 10.38.0.4 sfc4-re0 10.38.0.5 sfc4-re1 # End of internal names py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/ifd_style_classic_get-interface-information.xml000066400000000000000000000145051475361112400327400ustar00rootroot00000000000000 lc-0/0/0.32769 up up vpls pfe-0/0/0.16383 up up inet inet6 pfh-0/0/0.16383 up up inet em1.0 up up inet 10.0.0.4/8 128.0.0.1/2 128.0.0.4/2 inet6 fe80::5668:a3ff:fe17:f08/64 fec0::a:0:0:4/64 tnp 0x4 lo0.16385 up up inet py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/ifd_style_switch_file-show.xml000066400000000000000000000730761475361112400274650ustar00rootroot00000000000000 #$Id: hosts.junos,v 1.7.72.1 2009-04-16 05:22:03 kdickman Exp $ # # File mapping AF_INET/AF_INET6 hostnames for REs on Single and Multichassis # systems # # This file is looked at before /etc/hosts by gethostbyname(3), # gethostbyname2(3) and getaddrinfo(3) # # The IP addresses in this file are only used for communication between REs # over the Internal Routing Instances # # WARNING: # # The names in this file are effectively reserved for internal use. # # New IP address format (RT_IRS_V3) # # Single Chassis Hostnames # 128.0.0.1 master 128.0.0.1 node 128.0.0.1 fwdd 128.0.0.1 member 128.0.0.1 pfem 128.0.0.2 scb 128.0.0.2 sbr 128.0.0.2 ssb 128.0.0.2 feb 128.0.0.2 cfeb0 128.0.0.2 cfeb 128.0.0.2 cpp0 128.0.0.3 cfeb1 128.0.0.3 cpp1 128.0.0.4 re0 128.0.0.5 re1 128.0.0.6 backup 128.0.0.8 sfm0 128.0.0.9 sfm1 128.0.0.10 sfm2 128.0.0.16 fpc0 128.0.0.17 fpc1 128.0.0.18 fpc2 128.0.0.19 fpc3 128.0.0.20 fpc4 128.0.0.21 fpc5 128.0.0.22 fpc6 128.0.0.23 fpc7 128.0.0.24 fpc8 128.0.0.25 fpc9 128.0.0.26 fpc10 128.0.0.27 fpc11 128.0.0.28 fpc12 128.0.0.29 fpc13 128.0.0.30 fpc14 128.0.0.31 fpc15 128.0.0.32 feb0 128.0.0.33 feb1 128.0.0.34 feb2 128.0.0.35 feb3 128.0.0.36 feb4 128.0.0.37 feb5 128.0.0.48 spmb0 128.0.0.49 spmb1 128.0.0.50 tfeb0 128.0.1.16 fpc0.pic0 128.0.1.17 fpc1.pic0 128.0.1.18 fpc2.pic0 128.0.1.19 fpc3.pic0 128.0.1.20 fpc4.pic0 128.0.1.21 fpc5.pic0 128.0.1.22 fpc6.pic0 128.0.1.23 fpc7.pic0 128.0.1.24 fpc8.pic0 128.0.1.25 fpc9.pic0 128.0.1.26 fpc10.pic0 128.0.1.27 fpc11.pic0 128.0.1.28 fpc12.pic0 128.0.1.29 fpc13.pic0 128.0.1.30 fpc14.pic0 128.0.1.31 fpc15.pic0 128.0.2.16 fpc0.pic1 128.0.2.17 fpc1.pic1 128.0.2.18 fpc2.pic1 128.0.2.19 fpc3.pic1 128.0.2.20 fpc4.pic1 128.0.2.21 fpc5.pic1 128.0.2.22 fpc6.pic1 128.0.2.23 fpc7.pic1 128.0.2.24 fpc8.pic1 128.0.2.25 fpc9.pic1 128.0.2.26 fpc10.pic1 128.0.2.27 fpc11.pic1 128.0.2.28 fpc12.pic1 128.0.2.29 fpc13.pic1 128.0.2.30 fpc14.pic1 128.0.2.31 fpc15.pic1 # # DCF-Root Hostname # 128.0.130.2 dcf-root # # Multi Chassis Hostnames # #SCC 144.0.0.1 scc-master 144.0.0.4 scc-re0 144.0.0.5 scc-re1 144.0.0.6 scc-backup 144.0.0.48 scc-spmb0 144.0.0.49 scc-spmb1 #LCC 0 (or MEMBER 0 on Virtual Chassis) 129.0.0.1 lcc0-master member0-master member0 129.0.0.4 lcc0-re0 member0-re0 129.0.0.5 lcc0-re1 member0-re1 129.0.0.6 lcc0-backup member0-backup 129.0.0.16 member0-fpc0 129.0.0.17 member0-fpc1 129.0.0.18 member0-fpc2 129.0.0.19 member0-fpc3 129.0.0.20 member0-fpc4 129.0.0.21 member0-fpc5 129.0.0.22 member0-fpc6 129.0.0.23 member0-fpc7 129.0.0.24 member0-fpc8 129.0.0.25 member0-fpc9 129.0.0.26 member0-fpc10 129.0.0.27 member0-fpc11 129.0.0.28 member0-fpc12 129.0.0.29 member0-fpc13 129.0.0.30 member0-fpc14 129.0.0.31 member0-fpc15 129.0.0.6 lcc0-backup 129.0.0.16 lcc0-fpc0 129.0.0.17 lcc0-fpc1 129.0.0.18 lcc0-fpc2 129.0.0.19 lcc0-fpc3 129.0.0.20 lcc0-fpc4 129.0.0.21 lcc0-fpc5 129.0.0.22 lcc0-fpc6 129.0.0.23 lcc0-fpc7 129.0.0.48 lcc0-spmb0 129.0.0.49 lcc0-spmb1 #LCC 1 (or MEMBER 1 on Virtual Chassis) 130.0.0.1 lcc1-master member1-master member1 130.0.0.4 lcc1-re0 member1-re0 130.0.0.5 lcc1-re1 member1-re1 130.0.0.6 lcc1-backup member1-backup 130.0.0.16 member1-fpc0 130.0.0.17 member1-fpc1 130.0.0.18 member1-fpc2 130.0.0.19 member1-fpc3 130.0.0.20 member1-fpc4 130.0.0.21 member1-fpc5 130.0.0.22 member1-fpc6 130.0.0.23 member1-fpc7 130.0.0.24 member1-fpc8 130.0.0.25 member1-fpc9 130.0.0.26 member1-fpc10 130.0.0.27 member1-fpc11 130.0.0.28 member1-fpc12 130.0.0.29 member1-fpc13 130.0.0.30 member1-fpc14 130.0.0.31 member1-fpc15 130.0.0.6 lcc1-backup 130.0.0.16 lcc1-fpc0 130.0.0.17 lcc1-fpc1 130.0.0.18 lcc1-fpc2 130.0.0.19 lcc1-fpc3 130.0.0.20 lcc1-fpc4 130.0.0.21 lcc1-fpc5 130.0.0.22 lcc1-fpc6 130.0.0.23 lcc1-fpc7 130.0.0.48 lcc1-spmb0 130.0.0.49 lcc1-spmb1 #LCC 2 (or MEMBER 2 on Virtual Chassis) 131.0.0.1 lcc2-master member2-master member2 131.0.0.4 lcc2-re0 member2-re0 131.0.0.5 lcc2-re1 member2-re1 131.0.0.6 lcc2-backup member2-backup 131.0.0.16 member2-fpc0 131.0.0.17 member2-fpc1 131.0.0.18 member2-fpc2 131.0.0.19 member2-fpc3 131.0.0.20 member2-fpc4 131.0.0.21 member2-fpc5 131.0.0.22 member2-fpc6 131.0.0.23 member2-fpc7 131.0.0.24 member2-fpc8 131.0.0.25 member2-fpc9 131.0.0.26 member2-fpc10 131.0.0.27 member2-fpc11 131.0.0.28 member2-fpc12 131.0.0.29 member2-fpc13 131.0.0.30 member2-fpc14 131.0.0.31 member2-fpc15 131.0.0.6 lcc2-backup 131.0.0.16 lcc2-fpc0 131.0.0.17 lcc2-fpc1 131.0.0.18 lcc2-fpc2 131.0.0.19 lcc2-fpc3 131.0.0.20 lcc2-fpc4 131.0.0.21 lcc2-fpc5 131.0.0.22 lcc2-fpc6 131.0.0.23 lcc2-fpc7 131.0.0.48 lcc2-spmb0 131.0.0.49 lcc20-spmb1 #LCC 3 (or MEMBER 3 on Virtual Chassis) 132.0.0.1 lcc3-master member3-master member3 132.0.0.4 lcc3-re0 member3-re0 132.0.0.5 lcc3-re1 member3-re1 132.0.0.6 lcc3-backup member3-backup 132.0.0.16 member3-fpc0 132.0.0.17 member3-fpc1 132.0.0.18 member3-fpc2 132.0.0.19 member3-fpc3 132.0.0.20 member3-fpc4 132.0.0.21 member3-fpc5 132.0.0.22 member3-fpc6 132.0.0.23 member3-fpc7 132.0.0.24 member3-fpc8 132.0.0.25 member3-fpc9 132.0.0.26 member3-fpc10 132.0.0.27 member3-fpc11 132.0.0.28 member3-fpc12 132.0.0.29 member3-fpc13 132.0.0.30 member3-fpc14 132.0.0.31 member3-fpc15 132.0.0.6 lcc3-backup 132.0.0.16 lcc3-fpc0 132.0.0.17 lcc3-fpc1 132.0.0.18 lcc3-fpc2 132.0.0.19 lcc3-fpc3 132.0.0.20 lcc3-fpc4 132.0.0.21 lcc3-fpc5 132.0.0.22 lcc3-fpc6 132.0.0.23 lcc3-fpc7 132.0.0.48 lcc3-spmb0 132.0.0.49 lcc3-spmb1 #LCC 4 (or MEMBER 4 on Virtual Chassis) 133.0.0.1 lcc4-master member4-master member4 133.0.0.4 lcc4-re0 member4-re0 133.0.0.5 lcc4-re1 member4-re1 133.0.0.6 lcc4-backup member4-backup 133.0.0.16 member4-fpc0 133.0.0.17 member4-fpc1 133.0.0.18 member4-fpc2 133.0.0.19 member4-fpc3 133.0.0.20 member4-fpc4 133.0.0.21 member4-fpc5 133.0.0.22 member4-fpc6 133.0.0.23 member4-fpc7 133.0.0.24 member4-fpc8 133.0.0.25 member4-fpc9 133.0.0.26 member4-fpc10 133.0.0.27 member4-fpc11 133.0.0.28 member4-fpc12 133.0.0.29 member4-fpc13 133.0.0.30 member4-fpc14 133.0.0.31 member4-fpc15 133.0.0.6 lcc4-backup 133.0.0.16 lcc4-fpc0 133.0.0.17 lcc4-fpc1 133.0.0.18 lcc4-fpc2 133.0.0.19 lcc4-fpc3 133.0.0.20 lcc4-fpc4 133.0.0.21 lcc4-fpc5 133.0.0.22 lcc4-fpc6 133.0.0.23 lcc4-fpc7 133.0.0.48 lcc4-spmb0 133.0.0.49 lcc4-spmb1 #LCC 5 (or MEMBER 5 on Virtual Chassis) 134.0.0.1 lcc5-master member5-master member5 134.0.0.4 lcc5-re0 member5-re0 134.0.0.5 lcc5-re1 member5-re1 134.0.0.6 lcc5-backup member5-backup 134.0.0.16 member5-fpc0 134.0.0.17 member5-fpc1 134.0.0.18 member5-fpc2 134.0.0.19 member5-fpc3 134.0.0.20 member5-fpc4 134.0.0.21 member5-fpc5 134.0.0.22 member5-fpc6 134.0.0.23 member5-fpc7 134.0.0.24 member5-fpc8 134.0.0.25 member5-fpc9 134.0.0.26 member5-fpc10 134.0.0.27 member5-fpc11 134.0.0.28 member5-fpc12 134.0.0.29 member5-fpc13 134.0.0.30 member5-fpc14 134.0.0.31 member5-fpc15 134.0.0.6 lcc5-backup 134.0.0.16 lcc5-fpc0 134.0.0.17 lcc5-fpc1 134.0.0.18 lcc5-fpc2 134.0.0.19 lcc5-fpc3 134.0.0.20 lcc5-fpc4 134.0.0.21 lcc5-fpc5 134.0.0.22 lcc5-fpc6 134.0.0.23 lcc5-fpc7 134.0.0.48 lcc5-spmb0 134.0.0.49 lcc5-spmb1 #LCC 6 (or MEMBER 6 on Virtual Chassis) 135.0.0.1 lcc6-master member6-master member6 135.0.0.4 lcc6-re0 member6-re0 135.0.0.5 lcc6-re1 member6-re1 135.0.0.6 lcc6-backup member6-backup 135.0.0.16 member6-fpc0 135.0.0.17 member6-fpc1 135.0.0.18 member6-fpc2 135.0.0.19 member6-fpc3 135.0.0.20 member6-fpc4 135.0.0.21 member6-fpc5 135.0.0.22 member6-fpc6 135.0.0.23 member6-fpc7 135.0.0.24 member6-fpc8 135.0.0.25 member6-fpc9 135.0.0.26 member6-fpc10 135.0.0.27 member6-fpc11 135.0.0.28 member6-fpc12 135.0.0.29 member6-fpc13 135.0.0.30 member6-fpc14 135.0.0.31 member6-fpc15 135.0.0.6 lcc6-backup 135.0.0.16 lcc6-fpc0 135.0.0.17 lcc6-fpc1 135.0.0.18 lcc6-fpc2 135.0.0.19 lcc6-fpc3 135.0.0.20 lcc6-fpc4 135.0.0.21 lcc6-fpc5 135.0.0.22 lcc6-fpc6 135.0.0.23 lcc6-fpc7 135.0.0.48 lcc6-spmb0 135.0.0.49 lcc6-spmb1 #LCC 7 (or MEMBER 7 on Virtual Chassis) 136.0.0.1 lcc7-master member7-master member7 136.0.0.4 lcc7-re0 member7-re0 136.0.0.5 lcc7-re1 member7-re1 136.0.0.6 lcc7-backup member7-backup 136.0.0.16 member7-fpc0 136.0.0.17 member7-fpc1 136.0.0.18 member7-fpc2 136.0.0.19 member7-fpc3 136.0.0.20 member7-fpc4 136.0.0.21 member7-fpc5 136.0.0.22 member7-fpc6 136.0.0.23 member7-fpc7 136.0.0.24 member7-fpc8 136.0.0.25 member7-fpc9 136.0.0.26 member7-fpc10 136.0.0.27 member7-fpc11 136.0.0.28 member7-fpc12 136.0.0.29 member7-fpc13 136.0.0.30 member7-fpc14 136.0.0.31 member7-fpc15 136.0.0.6 lcc7-backup 136.0.0.16 lcc7-fpc0 136.0.0.17 lcc7-fpc1 136.0.0.18 lcc7-fpc2 136.0.0.19 lcc7-fpc3 136.0.0.20 lcc7-fpc4 136.0.0.21 lcc7-fpc5 136.0.0.22 lcc7-fpc6 136.0.0.23 lcc7-fpc7 136.0.0.48 lcc7-spmb0 136.0.0.49 lcc7-spmb1 137.0.0.6 lcc8-backup 137.0.0.16 lcc8-fpc0 137.0.0.17 lcc8-fpc1 137.0.0.18 lcc8-fpc2 137.0.0.19 lcc8-fpc3 137.0.0.20 lcc8-fpc4 137.0.0.21 lcc8-fpc5 137.0.0.22 lcc8-fpc6 137.0.0.23 lcc8-fpc7 137.0.0.48 lcc8-spmb0 137.0.0.49 lcc8-spmb1 #LCC 8 (or MEMBER 8 on Virtual Chassis) 137.0.0.1 lcc8-master member8-master member8 137.0.0.4 lcc8-re0 member8-re0 137.0.0.5 lcc8-re1 member8-re1 137.0.0.6 lcc8-backup member8-backup 137.0.0.16 member8-fpc0 137.0.0.17 member8-fpc1 137.0.0.18 member8-fpc2 137.0.0.19 member8-fpc3 137.0.0.20 member8-fpc4 137.0.0.21 member8-fpc5 137.0.0.22 member8-fpc6 137.0.0.23 member8-fpc7 137.0.0.24 member8-fpc8 137.0.0.25 member8-fpc9 137.0.0.26 member8-fpc10 137.0.0.27 member8-fpc11 137.0.0.28 member8-fpc12 137.0.0.29 member8-fpc13 137.0.0.30 member8-fpc14 137.0.0.31 member8-fpc15 138.0.0.6 lcc9-backup 138.0.0.16 lcc9-fpc0 138.0.0.17 lcc9-fpc1 138.0.0.18 lcc9-fpc2 138.0.0.19 lcc9-fpc3 138.0.0.20 lcc9-fpc4 138.0.0.21 lcc9-fpc5 138.0.0.22 lcc9-fpc6 138.0.0.23 lcc9-fpc7 138.0.0.48 lcc9-spmb0 138.0.0.49 lcc9-spmb1 #LCC 9 (or MEMBER 9 on Virtual Chassis) 138.0.0.1 lcc9-master member9-master member9 138.0.0.4 lcc9-re0 member9-re0 138.0.0.5 lcc9-re1 member9-re1 138.0.0.6 lcc9-backup member9-backup 138.0.0.16 member9-fpc0 138.0.0.17 member9-fpc1 138.0.0.18 member9-fpc2 138.0.0.19 member9-fpc3 138.0.0.20 member9-fpc4 138.0.0.21 member9-fpc5 138.0.0.22 member9-fpc6 138.0.0.23 member9-fpc7 138.0.0.24 member9-fpc8 138.0.0.25 member9-fpc9 138.0.0.26 member9-fpc10 138.0.0.27 member9-fpc11 138.0.0.28 member9-fpc12 138.0.0.29 member9-fpc13 138.0.0.30 member9-fpc14 138.0.0.31 member9-fpc15 139.0.0.6 lcc10-backup 139.0.0.16 lcc10-fpc0 139.0.0.17 lcc10-fpc1 139.0.0.18 lcc10-fpc2 139.0.0.19 lcc10-fpc3 139.0.0.20 lcc10-fpc4 139.0.0.21 lcc10-fpc5 139.0.0.22 lcc10-fpc6 139.0.0.23 lcc10-fpc7 139.0.0.48 lcc10-spmb0 139.0.0.49 lcc10-spmb1 #LCC 10 (or MEMBER 10 on Virtual Chassis) 139.0.0.1 lcc10-master member10-master 139.0.0.4 lcc10-re0 member10-re0 139.0.0.5 lcc10-re1 member10-re1 139.0.0.6 lcc10-backup member10-backup 139.0.0.16 member10-fpc0 139.0.0.17 member10-fpc1 139.0.0.18 member10-fpc2 139.0.0.19 member10-fpc3 139.0.0.20 member10-fpc4 139.0.0.21 member10-fpc5 139.0.0.22 member10-fpc6 139.0.0.23 member10-fpc7 139.0.0.24 member10-fpc8 139.0.0.25 member10-fpc9 139.0.0.26 member10-fpc10 139.0.0.27 member10-fpc11 139.0.0.28 member10-fpc12 139.0.0.29 member10-fpc13 139.0.0.30 member10-fpc14 139.0.0.31 member10-fpc15 140.0.0.6 lcc11-backup 140.0.0.16 lcc11-fpc0 140.0.0.17 lcc11-fpc1 140.0.0.18 lcc11-fpc2 140.0.0.19 lcc11-fpc3 140.0.0.20 lcc11-fpc4 140.0.0.21 lcc11-fpc5 140.0.0.22 lcc11-fpc6 140.0.0.23 lcc11-fpc7 140.0.0.48 lcc11-spmb0 140.0.0.49 lcc11-spmb1 #LCC 11 (or MEMBER 11 on Virtual Chassis) 140.0.0.1 lcc11-master member11-master 140.0.0.4 lcc11-re0 member11-re0 140.0.0.5 lcc11-re1 member11-re1 140.0.0.6 lcc11-backup member11-backup 140.0.0.16 member11-fpc0 140.0.0.17 member11-fpc1 140.0.0.18 member11-fpc2 140.0.0.19 member11-fpc3 140.0.0.20 member11-fpc4 140.0.0.21 member11-fpc5 140.0.0.22 member11-fpc6 140.0.0.23 member11-fpc7 140.0.0.24 member11-fpc8 140.0.0.25 member11-fpc9 140.0.0.26 member11-fpc10 140.0.0.27 member11-fpc11 140.0.0.28 member11-fpc12 140.0.0.29 member11-fpc13 140.0.0.30 member11-fpc14 140.0.0.31 member11-fpc15 141.0.0.6 lcc12-backup 141.0.0.16 lcc12-fpc0 141.0.0.17 lcc12-fpc1 141.0.0.18 lcc12-fpc2 141.0.0.19 lcc12-fpc3 141.0.0.20 lcc12-fpc4 141.0.0.21 lcc12-fpc5 141.0.0.22 lcc12-fpc6 141.0.0.23 lcc12-fpc7 141.0.0.48 lcc12-spmb0 141.0.0.49 lcc12-spmb1 #LCC 12 (or MEMBER 12 on Virtual Chassis) 141.0.0.1 lcc12-master member12-master 141.0.0.4 lcc12-re0 member12-re0 141.0.0.5 lcc12-re1 member12-re1 141.0.0.6 lcc12-backup member12-backup 141.0.0.16 member12-fpc0 141.0.0.17 member12-fpc1 141.0.0.18 member12-fpc2 141.0.0.19 member12-fpc3 141.0.0.20 member12-fpc4 141.0.0.21 member12-fpc5 141.0.0.22 member12-fpc6 141.0.0.23 member12-fpc7 141.0.0.24 member12-fpc8 141.0.0.25 member12-fpc9 141.0.0.26 member12-fpc10 141.0.0.27 member12-fpc11 141.0.0.28 member12-fpc12 141.0.0.29 member12-fpc13 141.0.0.30 member12-fpc14 141.0.0.31 member12-fpc15 142.0.0.6 lcc13-backup 142.0.0.16 lcc13-fpc0 142.0.0.17 lcc13-fpc1 142.0.0.18 lcc13-fpc2 142.0.0.19 lcc13-fpc3 142.0.0.20 lcc13-fpc4 142.0.0.21 lcc13-fpc5 142.0.0.22 lcc13-fpc6 142.0.0.23 lcc13-fpc7 142.0.0.48 lcc13-spmb0 142.0.0.49 lcc13-spmb1 #LCC 13 (or MEMBER 13 on Virtual Chassis) 142.0.0.1 lcc13-master member13-master 142.0.0.4 lcc13-re0 member13-re0 142.0.0.5 lcc13-re1 member13-re1 142.0.0.6 lcc13-backup member13-backup 142.0.0.16 member13-fpc0 142.0.0.17 member13-fpc1 142.0.0.18 member13-fpc2 142.0.0.19 member13-fpc3 142.0.0.20 member13-fpc4 142.0.0.21 member13-fpc5 142.0.0.22 member13-fpc6 142.0.0.23 member13-fpc7 142.0.0.24 member13-fpc8 142.0.0.25 member13-fpc9 142.0.0.26 member13-fpc10 142.0.0.27 member13-fpc11 142.0.0.28 member13-fpc12 142.0.0.29 member13-fpc13 142.0.0.30 member13-fpc14 142.0.0.31 member13-fpc15 143.0.0.6 lcc14-backup 143.0.0.16 lcc14-fpc0 143.0.0.17 lcc14-fpc1 143.0.0.18 lcc14-fpc2 143.0.0.19 lcc14-fpc3 143.0.0.20 lcc14-fpc4 143.0.0.21 lcc14-fpc5 143.0.0.22 lcc14-fpc6 143.0.0.23 lcc14-fpc7 143.0.0.48 lcc14-spmb0 143.0.0.49 lcc14-spmb1 #LCC 14 (or MEMBER 14 on Virtual Chassis) 143.0.0.1 lcc14-master member14-master 143.0.0.4 lcc14-re0 member14-re0 143.0.0.5 lcc14-re1 member14-re1 143.0.0.6 lcc14-backup member14-backup 143.0.0.16 member14-fpc0 143.0.0.17 member14-fpc1 143.0.0.18 member14-fpc2 143.0.0.19 member14-fpc3 143.0.0.20 member14-fpc4 143.0.0.21 member14-fpc5 143.0.0.22 member14-fpc6 143.0.0.23 member14-fpc7 143.0.0.24 member14-fpc8 143.0.0.25 member14-fpc9 143.0.0.26 member14-fpc10 143.0.0.27 member14-fpc11 143.0.0.28 member14-fpc12 143.0.0.29 member14-fpc13 143.0.0.30 member14-fpc14 143.0.0.31 member14-fpc15 144.0.0.6 lcc15-backup 144.0.0.16 lcc15-fpc0 144.0.0.17 lcc15-fpc1 144.0.0.18 lcc15-fpc2 144.0.0.19 lcc15-fpc3 144.0.0.20 lcc15-fpc4 144.0.0.21 lcc15-fpc5 144.0.0.22 lcc15-fpc6 144.0.0.23 lcc15-fpc7 144.0.0.48 lcc15-spmb0 144.0.0.49 lcc15-spmb1 #LCC 15 (or MEMBER 15 on Virtual Chassis) 144.0.0.1 lcc15-master member15-master 144.0.0.4 lcc15-re0 member15-re0 144.0.0.5 lcc15-re1 member15-re1 144.0.0.6 lcc15-backup member15-backup 144.0.0.16 member15-fpc0 144.0.0.17 member15-fpc1 144.0.0.18 member15-fpc2 144.0.0.19 member15-fpc3 144.0.0.20 member15-fpc4 144.0.0.21 member15-fpc5 144.0.0.22 member15-fpc6 144.0.0.23 member15-fpc7 144.0.0.24 member15-fpc8 144.0.0.25 member15-fpc9 144.0.0.26 member15-fpc10 144.0.0.27 member15-fpc11 144.0.0.28 member15-fpc12 144.0.0.29 member15-fpc13 144.0.0.30 member15-fpc14 144.0.0.31 member15-fpc15 #VIRT SC 161.0.0.1 sc-master 161.0.0.4 sc-re0 161.0.0.5 sc-re1 161.0.0.6 sc-backup #SFC 0 162.0.0.1 sfc0-master 162.0.0.4 sfc0-re0 162.0.0.5 sfc0-re1 162.0.0.6 sfc0-backup 162.0.0.48 sfc0-spmb0 162.0.0.49 sfc0-spmb1 #SFC 1 163.0.0.1 sfc1-master 163.0.0.4 sfc1-re0 163.0.0.5 sfc1-re1 163.0.0.6 sfc1-backup 163.0.0.48 sfc1-spmb0 163.0.0.49 sfc1-spmb1 #SFC 2 164.0.0.1 sfc2-master 164.0.0.4 sfc2-re0 164.0.0.5 sfc2-re1 164.0.0.6 sfc2-backup 164.0.0.48 sfc2-spmb0 164.0.0.49 sfc2-spmb1 #SFC 3 165.0.0.1 sfc3-master 165.0.0.4 sfc3-re0 165.0.0.5 sfc3-re1 165.0.0.6 sfc3-backup 165.0.0.48 sfc3-spmb0 165.0.0.49 sfc3-spmb1 #SFC 4 166.0.0.1 sfc4-master 166.0.0.4 sfc4-re0 166.0.0.5 sfc4-re1 166.0.0.6 sfc4-backup 166.0.0.48 sfc4-spmb0 166.0.0.49 sfc4-spmb1 #JCS 190.0.0.1 psd%d-master 190.0.0.4 psd%d-re0 190.0.0.5 psd%d-re1 190.0.0.6 psd%d-backup # Old IP address format (RT_IRS_V2) # # Single Chassis Hostnames # 10.0.0.1 master 10.0.0.4 re0 10.0.0.5 re1 # # Multi Chassis Hostnames # #SCC 10.16.0.1 scc-master 10.16.0.4 scc-re0 10.16.0.5 scc-re1 #LCC 0 10.1.0.1 lcc0-master member0-master 10.1.0.4 lcc0-re0 member0-re0 10.1.0.5 lcc0-re1 member0-re1 10.1.0.6 lcc0-backup member0-backup #LCC 1 10.2.0.1 lcc1-master member1-master 10.2.0.4 lcc1-re0 member1-re0 10.2.0.5 lcc1-re1 member1-re1 10.2.0.6 lcc1-backup member1-backup #LCC 2 10.3.0.1 lcc2-master member2-master 10.3.0.4 lcc2-re0 member2-re0 10.3.0.5 lcc2-re1 member2-re1 10.3.0.6 lcc2-backup member2-backup #LCC 3 10.4.0.1 lcc3-master member3-master 10.4.0.4 lcc3-re0 member3-re0 10.4.0.5 lcc3-re1 member3-re1 10.4.0.6 lcc3-backup member3-backup #LCC 4 10.5.0.1 lcc4-master member4-master 10.5.0.4 lcc4-re0 member4-re0 10.5.0.5 lcc4-re1 member4-re1 10.5.0.6 lcc4-backup member4-backup #LCC 5 10.6.0.1 lcc5-master member5-master 10.6.0.4 lcc5-re0 member5-re0 10.6.0.5 lcc5-re1 member5-re1 10.6.0.6 lcc5-backup member5-backup #LCC 6 10.7.0.1 lcc6-master member6-master 10.7.0.4 lcc6-re0 member6-re0 10.7.0.5 lcc6-re1 member6-re1 10.7.0.6 lcc6-backup member6-backup #LCC 7 10.8.0.1 lcc7-master member7-master 10.8.0.4 lcc7-re0 member7-re0 10.8.0.5 lcc7-re1 member7-re1 10.8.0.6 lcc7-backup member7-backup #LCC 8 10.9.0.1 lcc8-master member8-master 10.9.0.4 lcc8-re0 member8-re0 10.9.0.5 lcc8-re1 member8-re1 10.9.0.6 lcc8-backup member8-backup #LCC 9 10.10.0.1 lcc9-master member9-master 10.10.0.4 lcc9-re0 member9-re0 10.10.0.5 lcc9-re1 member9-re1 10.10.0.6 lcc9-backup member9-backup #LCC 10 10.11.0.1 lcc10-master member10-master 10.11.0.4 lcc10-re0 member10-re0 10.11.0.5 lcc10-re1 member10-re1 10.11.0.6 lcc10-backup member10-backup #LCC 11 10.12.0.1 lcc11-master member11-master 10.12.0.4 lcc11-re0 member11-re0 10.12.0.5 lcc11-re1 member11-re1 10.12.0.6 lcc11-backup member11-backup #LCC 12 10.13.0.1 lcc12-master member12-master 10.13.0.4 lcc12-re0 member12-re0 10.13.0.5 lcc12-re1 member12-re1 10.13.0.6 lcc12-backup member12-backup #LCC 13 10.14.0.1 lcc13-master member13-master 10.14.0.4 lcc13-re0 member13-re0 10.14.0.5 lcc13-re1 member13-re1 10.14.0.6 lcc13-backup member13-backup #LCC 14 10.15.0.1 lcc14-master member14-master 10.15.0.4 lcc14-re0 member14-re0 10.15.0.5 lcc14-re1 member14-re1 10.15.0.6 lcc14-backup member14-backup #LCC 15 10.16.0.1 lcc15-master member15-master 10.16.0.4 lcc15-re0 member15-re0 10.16.0.5 lcc15-re1 member15-re1 10.16.0.6 lcc15-backup member15-backup #SFC 0 10.34.0.1 sfc0-master 10.34.0.4 sfc0-re0 10.34.0.5 sfc0-re1 #SFC 1 10.35.0.1 sfc1-master 10.35.0.4 sfc1-re0 10.35.0.5 sfc1-re1 #SFC 2 10.36.0.1 sfc2-master 10.36.0.4 sfc2-re0 10.36.0.5 sfc2-re1 #SFC 3 10.37.0.1 sfc3-master 10.37.0.4 sfc3-re0 10.37.0.5 sfc3-re1 #SFC 4 10.38.0.1 sfc4-master 10.38.0.4 sfc4-re0 10.38.0.5 sfc4-re1 # End of internal names py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/ifd_style_switch_get-interface-information.xml000066400000000000000000000060331475361112400326150ustar00rootroot00000000000000 bme0.32768 up up inet 128.0.0.1/2 128.0.0.16/2 128.0.0.32/2 tnp 0x10 py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/ifd_style_switch_get-software-information.xml000066400000000000000000000034541475361112400325130ustar00rootroot00000000000000 sw1 ex2200-c-12t-2g ex2200-c-12t-2g junos JUNOS Base OS boot [11.4R1.6] jbase JUNOS Base OS Software Suite [11.4R1.6] jkernel-ex-2200 JUNOS Kernel Software Suite [11.4R1.6] jcrypto-ex JUNOS Crypto Software Suite [11.4R1.6] jdocs-ex JUNOS Online Documentation [11.4R1.6] jswitch-ex JUNOS Enterprise Software Suite [11.4R1.6] jpfe-ex22x JUNOS Packet Forwarding Engine Enterprise Software Suite [11.4R1.6] jroute-ex JUNOS Routing Software Suite [11.4R1.6] jweb-ex JUNOS Web Management [11.4R1.6] py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/ifd_style_switch_get-virtual-chassis-information.xml000066400000000000000000000053141475361112400337770ustar00rootroot00000000000000 737a.74f6.9e99 Prsnt 0 (FPC 0- 11) JN1230B3FAFC mx240 129 NA VC Master* 1 vcp-1/0/1 1 vcp-1/0/2 1 vcp-1/0/3 Prsnt 1 (FPC 12- 23) JN122D0FEAFC mx240 129 NA VC Backup 0 vcp-1/0/1 0 vcp-1/0/2 0 vcp-1/0/3 py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/iri_mapping2_file-show.xml000066400000000000000000000005561475361112400264730ustar00rootroot00000000000000 #JCS 190.0.0.1 gnf%d-master 190.0.0.4 gnf%d-re0 190.0.0.5 gnf%d-re1 190.0.0.6 gnf%d-backup py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/iri_mapping_file-show.xml000066400000000000000000002035741475361112400264160ustar00rootroot00000000000000 #$Id: hosts.junos,v 1.7.72.1 2009-04-16 05:22:03 kdickman Exp $ # # File mapping AF_INET/AF_INET6 hostnames for REs on Single and Multichassis # systems # # This file is looked at before /etc/hosts by gethostbyname(3), # gethostbyname2(3) and getaddrinfo(3) # # The IP addresses in this file are only used for communication between REs # over the Internal Routing Instances # # WARNING: # # The names in this file are effectively reserved for internal use. # # New IP address format (RT_IRS_V3) # # Single Chassis Hostnames # 128.0.0.1 master 128.0.0.1 node 128.0.0.1 fwdd 128.0.0.1 member 128.0.0.1 pfem 128.0.0.2 scb 128.0.0.2 sbr 128.0.0.2 ssb 128.0.0.2 feb 128.0.0.2 cfeb0 128.0.0.2 cfeb 128.0.0.2 cpp0 128.0.0.3 cfeb1 128.0.0.3 cpp1 128.0.0.4 re0 128.0.0.5 re1 128.0.0.6 backup 128.0.0.8 sfm0 128.0.0.9 sfm1 128.0.0.10 sfm2 128.0.0.16 fpc0 128.0.0.17 fpc1 128.0.0.18 fpc2 128.0.0.19 fpc3 128.0.0.20 fpc4 128.0.0.21 fpc5 128.0.0.22 fpc6 128.0.0.23 fpc7 128.0.0.24 fpc8 128.0.0.25 fpc9 128.0.0.26 fpc10 128.0.0.27 fpc11 128.0.0.28 fpc12 128.0.0.29 fpc13 128.0.0.30 fpc14 128.0.0.31 fpc15 128.0.0.32 feb0 128.0.0.32 fpc16 128.0.0.33 feb1 128.0.0.33 fpc17 128.0.0.34 feb2 128.0.0.34 fpc18 128.0.0.35 feb3 128.0.0.35 fpc19 128.0.0.36 fpc20 128.0.0.36 feb4 128.0.0.37 feb5 128.0.0.37 fpc21 128.0.0.38 fpc22 128.0.0.39 fpc23 128.0.0.40 fpc24 128.0.0.41 fpc25 128.0.0.42 fpc26 128.0.0.43 fpc27 128.0.0.44 fpc28 128.0.0.45 fpc29 128.0.0.46 fpc30 128.0.0.47 fpc31 128.0.0.48 spmb0 128.0.0.49 spmb1 128.0.0.50 tfeb0 128.0.0.50 afeb0 128.0.0.53 esc0 128.0.0.54 esc1 128.0.0.55 esc0-ipmi 128.0.0.56 esc1-ipmi 128.0.0.63 localre 128.0.1.16 fpc0.pic0 128.0.1.17 fpc1.pic0 128.0.1.18 fpc2.pic0 128.0.1.19 fpc3.pic0 128.0.1.20 fpc4.pic0 128.0.1.21 fpc5.pic0 128.0.1.22 fpc6.pic0 128.0.1.23 fpc7.pic0 128.0.1.24 fpc8.pic0 128.0.1.25 fpc9.pic0 128.0.1.26 fpc10.pic0 128.0.1.27 fpc11.pic0 128.0.1.28 fpc12.pic0 128.0.1.29 fpc13.pic0 128.0.1.30 fpc14.pic0 128.0.1.31 fpc15.pic0 128.0.1.32 fpc16.pic0 128.0.1.33 fpc17.pic0 128.0.1.34 fpc18.pic0 128.0.1.35 fpc19.pic0 128.0.1.36 fpc20.pic0 128.0.1.37 fpc21.pic0 128.0.1.38 fpc22.pic0 128.0.1.39 fpc23.pic0 128.0.1.40 fpc24.pic0 128.0.1.41 fpc25.pic0 128.0.1.42 fpc26.pic0 128.0.1.43 fpc27.pic0 128.0.1.44 fpc28.pic0 128.0.1.45 fpc29.pic0 128.0.1.46 fpc30.pic0 128.0.1.47 fpc31.pic0 128.0.2.16 fpc0.pic1 128.0.2.17 fpc1.pic1 128.0.2.18 fpc2.pic1 128.0.2.19 fpc3.pic1 128.0.2.20 fpc4.pic1 128.0.2.21 fpc5.pic1 128.0.2.22 fpc6.pic1 128.0.2.23 fpc7.pic1 128.0.2.24 fpc8.pic1 128.0.2.25 fpc9.pic1 128.0.2.26 fpc10.pic1 128.0.2.27 fpc11.pic1 128.0.2.28 fpc12.pic1 128.0.2.29 fpc13.pic1 128.0.2.30 fpc14.pic1 128.0.2.31 fpc15.pic1 128.0.2.32 fpc16.pic1 128.0.2.33 fpc17.pic1 128.0.2.34 fpc18.pic1 128.0.2.35 fpc19.pic1 128.0.2.36 fpc20.pic1 128.0.2.37 fpc21.pic1 128.0.2.38 fpc22.pic1 128.0.2.39 fpc23.pic1 128.0.2.40 fpc24.pic1 128.0.2.41 fpc25.pic1 128.0.2.42 fpc26.pic1 128.0.2.43 fpc27.pic1 128.0.2.44 fpc28.pic1 128.0.2.45 fpc29.pic1 128.0.2.46 fpc30.pic1 128.0.2.47 fpc31.pic1 128.0.3.16 fpc0.pic2 128.0.3.17 fpc1.pic2 128.0.3.18 fpc2.pic2 128.0.3.19 fpc3.pic2 128.0.3.20 fpc4.pic2 128.0.3.21 fpc5.pic2 128.0.3.22 fpc6.pic2 128.0.3.23 fpc7.pic2 128.0.3.24 fpc8.pic2 128.0.3.25 fpc9.pic2 128.0.3.26 fpc10.pic2 128.0.3.27 fpc11.pic2 128.0.3.28 fpc12.pic2 128.0.3.29 fpc13.pic2 128.0.3.30 fpc14.pic2 128.0.3.31 fpc15.pic2 128.0.4.16 fpc0.pic3 128.0.4.17 fpc1.pic3 128.0.4.18 fpc2.pic3 128.0.4.19 fpc3.pic3 128.0.4.20 fpc4.pic3 128.0.4.21 fpc5.pic3 128.0.4.22 fpc6.pic3 128.0.4.23 fpc7.pic3 128.0.4.24 fpc8.pic3 128.0.4.25 fpc9.pic3 128.0.4.26 fpc10.pic3 128.0.4.27 fpc11.pic3 128.0.4.28 fpc12.pic3 128.0.4.29 fpc13.pic3 128.0.4.30 fpc14.pic3 128.0.4.31 fpc15.pic3 # # DCF-Root Hostname # 128.0.130.2 dcf-root # # Multi Chassis Hostnames # #SCC 144.0.0.1 scc-master 144.0.0.4 scc-re0 144.0.0.5 scc-re1 144.0.0.6 scc-backup 144.0.0.48 scc-spmb0 144.0.0.49 scc-spmb1 #LCC 0 (or MEMBER 0 on Virtual Chassis) 129.0.0.1 lcc0-master member0-master member0 129.0.0.4 lcc0-re0 member0-re0 129.0.0.5 lcc0-re1 member0-re1 129.0.0.6 lcc0-backup member0-backup 129.0.0.16 member0-fpc0 129.0.0.17 member0-fpc1 129.0.0.18 member0-fpc2 129.0.0.19 member0-fpc3 129.0.0.20 member0-fpc4 129.0.0.21 member0-fpc5 129.0.0.22 member0-fpc6 129.0.0.23 member0-fpc7 129.0.0.24 member0-fpc8 129.0.0.25 member0-fpc9 129.0.0.26 member0-fpc10 129.0.0.27 member0-fpc11 129.0.0.28 member0-fpc12 129.0.0.29 member0-fpc13 129.0.0.30 member0-fpc14 129.0.0.31 member0-fpc15 129.0.0.32 member0-fpc16 129.0.0.33 member0-fpc17 129.0.0.34 member0-fpc18 129.0.0.35 member0-fpc19 129.0.0.36 member0-fpc20 129.0.0.37 member0-fpc21 129.0.0.38 member0-fpc22 129.0.0.39 member0-fpc23 129.0.0.40 member0-fpc24 129.0.0.41 member0-fpc25 129.0.0.42 member0-fpc26 129.0.0.43 member0-fpc27 129.0.0.44 member0-fpc28 129.0.0.45 member0-fpc29 129.0.0.46 member0-fpc30 129.0.0.47 member0-fpc31 129.0.0.6 lcc0-backup 129.0.0.16 lcc0-fpc0 129.0.0.17 lcc0-fpc1 129.0.0.18 lcc0-fpc2 129.0.0.19 lcc0-fpc3 129.0.0.20 lcc0-fpc4 129.0.0.21 lcc0-fpc5 129.0.0.22 lcc0-fpc6 129.0.0.23 lcc0-fpc7 129.0.0.48 lcc0-spmb0 129.0.0.49 lcc0-spmb1 #LCC 1 (or MEMBER 1 on Virtual Chassis) 130.0.0.1 lcc1-master member1-master member1 130.0.0.4 lcc1-re0 member1-re0 130.0.0.5 lcc1-re1 member1-re1 130.0.0.6 lcc1-backup member1-backup 130.0.0.16 member1-fpc0 130.0.0.17 member1-fpc1 130.0.0.18 member1-fpc2 130.0.0.19 member1-fpc3 130.0.0.20 member1-fpc4 130.0.0.21 member1-fpc5 130.0.0.22 member1-fpc6 130.0.0.23 member1-fpc7 130.0.0.24 member1-fpc8 130.0.0.25 member1-fpc9 130.0.0.26 member1-fpc10 130.0.0.27 member1-fpc11 130.0.0.28 member1-fpc12 130.0.0.29 member1-fpc13 130.0.0.30 member1-fpc14 130.0.0.31 member1-fpc15 130.0.0.32 member1-fpc16 130.0.0.33 member1-fpc17 130.0.0.34 member1-fpc18 130.0.0.35 member1-fpc19 130.0.0.36 member1-fpc20 130.0.0.37 member1-fpc21 130.0.0.38 member1-fpc22 130.0.0.39 member1-fpc23 130.0.0.40 member1-fpc24 130.0.0.41 member1-fpc25 130.0.0.42 member1-fpc26 130.0.0.43 member1-fpc27 130.0.0.44 member1-fpc28 130.0.0.45 member1-fpc29 130.0.0.46 member1-fpc30 130.0.0.47 member1-fpc31 130.0.0.6 lcc1-backup 130.0.0.16 lcc1-fpc0 130.0.0.17 lcc1-fpc1 130.0.0.18 lcc1-fpc2 130.0.0.19 lcc1-fpc3 130.0.0.20 lcc1-fpc4 130.0.0.21 lcc1-fpc5 130.0.0.22 lcc1-fpc6 130.0.0.23 lcc1-fpc7 130.0.0.48 lcc1-spmb0 130.0.0.49 lcc1-spmb1 #LCC 2 (or MEMBER 2 on Virtual Chassis) 131.0.0.1 lcc2-master member2-master member2 131.0.0.4 lcc2-re0 member2-re0 131.0.0.5 lcc2-re1 member2-re1 131.0.0.6 lcc2-backup member2-backup 131.0.0.16 member2-fpc0 131.0.0.17 member2-fpc1 131.0.0.18 member2-fpc2 131.0.0.19 member2-fpc3 131.0.0.20 member2-fpc4 131.0.0.21 member2-fpc5 131.0.0.22 member2-fpc6 131.0.0.23 member2-fpc7 131.0.0.24 member2-fpc8 131.0.0.25 member2-fpc9 131.0.0.26 member2-fpc10 131.0.0.27 member2-fpc11 131.0.0.28 member2-fpc12 131.0.0.29 member2-fpc13 131.0.0.30 member2-fpc14 131.0.0.31 member2-fpc15 131.0.0.32 member2-fpc16 131.0.0.33 member2-fpc17 131.0.0.34 member2-fpc18 131.0.0.35 member2-fpc19 131.0.0.36 member2-fpc20 131.0.0.37 member2-fpc21 131.0.0.38 member2-fpc22 131.0.0.39 member2-fpc23 131.0.0.40 member2-fpc24 131.0.0.41 member2-fpc25 131.0.0.42 member2-fpc26 131.0.0.43 member2-fpc27 131.0.0.44 member2-fpc28 131.0.0.45 member2-fpc29 131.0.0.46 member2-fpc30 131.0.0.47 member2-fpc31 131.0.0.6 lcc2-backup 131.0.0.16 lcc2-fpc0 131.0.0.17 lcc2-fpc1 131.0.0.18 lcc2-fpc2 131.0.0.19 lcc2-fpc3 131.0.0.20 lcc2-fpc4 131.0.0.21 lcc2-fpc5 131.0.0.22 lcc2-fpc6 131.0.0.23 lcc2-fpc7 131.0.0.48 lcc2-spmb0 131.0.0.49 lcc20-spmb1 #LCC 3 (or MEMBER 3 on Virtual Chassis) 132.0.0.1 lcc3-master member3-master member3 132.0.0.4 lcc3-re0 member3-re0 132.0.0.5 lcc3-re1 member3-re1 132.0.0.6 lcc3-backup member3-backup 132.0.0.16 member3-fpc0 132.0.0.17 member3-fpc1 132.0.0.18 member3-fpc2 132.0.0.19 member3-fpc3 132.0.0.20 member3-fpc4 132.0.0.21 member3-fpc5 132.0.0.22 member3-fpc6 132.0.0.23 member3-fpc7 132.0.0.24 member3-fpc8 132.0.0.25 member3-fpc9 132.0.0.26 member3-fpc10 132.0.0.27 member3-fpc11 132.0.0.28 member3-fpc12 132.0.0.29 member3-fpc13 132.0.0.30 member3-fpc14 132.0.0.31 member3-fpc15 132.0.0.32 member3-fpc16 132.0.0.33 member3-fpc17 132.0.0.34 member3-fpc18 132.0.0.35 member3-fpc19 132.0.0.36 member3-fpc20 132.0.0.37 member3-fpc21 132.0.0.38 member3-fpc22 132.0.0.39 member3-fpc23 132.0.0.40 member3-fpc24 132.0.0.41 member3-fpc25 132.0.0.42 member3-fpc26 132.0.0.43 member3-fpc27 132.0.0.44 member3-fpc28 132.0.0.45 member3-fpc29 132.0.0.46 member3-fpc30 132.0.0.47 member3-fpc31 132.0.0.6 lcc3-backup 132.0.0.16 lcc3-fpc0 132.0.0.17 lcc3-fpc1 132.0.0.18 lcc3-fpc2 132.0.0.19 lcc3-fpc3 132.0.0.20 lcc3-fpc4 132.0.0.21 lcc3-fpc5 132.0.0.22 lcc3-fpc6 132.0.0.23 lcc3-fpc7 132.0.0.48 lcc3-spmb0 132.0.0.49 lcc3-spmb1 #LCC 4 (or MEMBER 4 on Virtual Chassis) 133.0.0.1 lcc4-master member4-master member4 133.0.0.4 lcc4-re0 member4-re0 133.0.0.5 lcc4-re1 member4-re1 133.0.0.6 lcc4-backup member4-backup 133.0.0.16 member4-fpc0 133.0.0.17 member4-fpc1 133.0.0.18 member4-fpc2 133.0.0.19 member4-fpc3 133.0.0.20 member4-fpc4 133.0.0.21 member4-fpc5 133.0.0.22 member4-fpc6 133.0.0.23 member4-fpc7 133.0.0.24 member4-fpc8 133.0.0.25 member4-fpc9 133.0.0.26 member4-fpc10 133.0.0.27 member4-fpc11 133.0.0.28 member4-fpc12 133.0.0.29 member4-fpc13 133.0.0.30 member4-fpc14 133.0.0.31 member4-fpc15 133.0.0.32 member4-fpc16 133.0.0.33 member4-fpc17 133.0.0.34 member4-fpc18 133.0.0.35 member4-fpc19 133.0.0.36 member4-fpc20 133.0.0.37 member4-fpc21 133.0.0.38 member4-fpc22 133.0.0.39 member4-fpc23 133.0.0.40 member4-fpc24 133.0.0.41 member4-fpc25 133.0.0.42 member4-fpc26 133.0.0.43 member4-fpc27 133.0.0.44 member4-fpc28 133.0.0.45 member4-fpc29 133.0.0.46 member4-fpc30 133.0.0.47 member4-fpc31 133.0.0.6 lcc4-backup 133.0.0.16 lcc4-fpc0 133.0.0.17 lcc4-fpc1 133.0.0.18 lcc4-fpc2 133.0.0.19 lcc4-fpc3 133.0.0.20 lcc4-fpc4 133.0.0.21 lcc4-fpc5 133.0.0.22 lcc4-fpc6 133.0.0.23 lcc4-fpc7 133.0.0.48 lcc4-spmb0 133.0.0.49 lcc4-spmb1 #LCC 5 (or MEMBER 5 on Virtual Chassis) 134.0.0.1 lcc5-master member5-master member5 134.0.0.4 lcc5-re0 member5-re0 134.0.0.5 lcc5-re1 member5-re1 134.0.0.6 lcc5-backup member5-backup 134.0.0.16 member5-fpc0 134.0.0.17 member5-fpc1 134.0.0.18 member5-fpc2 134.0.0.19 member5-fpc3 134.0.0.20 member5-fpc4 134.0.0.21 member5-fpc5 134.0.0.22 member5-fpc6 134.0.0.23 member5-fpc7 134.0.0.24 member5-fpc8 134.0.0.25 member5-fpc9 134.0.0.26 member5-fpc10 134.0.0.27 member5-fpc11 134.0.0.28 member5-fpc12 134.0.0.29 member5-fpc13 134.0.0.30 member5-fpc14 134.0.0.31 member5-fpc15 134.0.0.32 member5-fpc16 134.0.0.33 member5-fpc17 134.0.0.34 member5-fpc18 134.0.0.35 member5-fpc19 134.0.0.36 member5-fpc20 134.0.0.37 member5-fpc21 134.0.0.38 member5-fpc22 134.0.0.39 member5-fpc23 134.0.0.40 member5-fpc24 134.0.0.41 member5-fpc25 134.0.0.42 member5-fpc26 134.0.0.43 member5-fpc27 134.0.0.44 member5-fpc28 134.0.0.45 member5-fpc29 134.0.0.46 member5-fpc30 134.0.0.47 member5-fpc31 134.0.0.6 lcc5-backup 134.0.0.16 lcc5-fpc0 134.0.0.17 lcc5-fpc1 134.0.0.18 lcc5-fpc2 134.0.0.19 lcc5-fpc3 134.0.0.20 lcc5-fpc4 134.0.0.21 lcc5-fpc5 134.0.0.22 lcc5-fpc6 134.0.0.23 lcc5-fpc7 134.0.0.48 lcc5-spmb0 134.0.0.49 lcc5-spmb1 #LCC 6 (or MEMBER 6 on Virtual Chassis) 135.0.0.1 lcc6-master member6-master member6 135.0.0.4 lcc6-re0 member6-re0 135.0.0.5 lcc6-re1 member6-re1 135.0.0.6 lcc6-backup member6-backup 135.0.0.16 member6-fpc0 135.0.0.17 member6-fpc1 135.0.0.18 member6-fpc2 135.0.0.19 member6-fpc3 135.0.0.20 member6-fpc4 135.0.0.21 member6-fpc5 135.0.0.22 member6-fpc6 135.0.0.23 member6-fpc7 135.0.0.24 member6-fpc8 135.0.0.25 member6-fpc9 135.0.0.26 member6-fpc10 135.0.0.27 member6-fpc11 135.0.0.28 member6-fpc12 135.0.0.29 member6-fpc13 135.0.0.30 member6-fpc14 135.0.0.31 member6-fpc15 135.0.0.32 member6-fpc16 135.0.0.33 member6-fpc17 135.0.0.34 member6-fpc18 135.0.0.35 member6-fpc19 135.0.0.36 member6-fpc20 135.0.0.37 member6-fpc21 135.0.0.38 member6-fpc22 135.0.0.39 member6-fpc23 135.0.0.40 member6-fpc24 135.0.0.41 member6-fpc25 135.0.0.42 member6-fpc26 135.0.0.43 member6-fpc27 135.0.0.44 member6-fpc28 135.0.0.45 member6-fpc29 135.0.0.46 member6-fpc30 135.0.0.47 member6-fpc31 135.0.0.6 lcc6-backup 135.0.0.16 lcc6-fpc0 135.0.0.17 lcc6-fpc1 135.0.0.18 lcc6-fpc2 135.0.0.19 lcc6-fpc3 135.0.0.20 lcc6-fpc4 135.0.0.21 lcc6-fpc5 135.0.0.22 lcc6-fpc6 135.0.0.23 lcc6-fpc7 135.0.0.48 lcc6-spmb0 135.0.0.49 lcc6-spmb1 #LCC 7 (or MEMBER 7 on Virtual Chassis) 136.0.0.1 lcc7-master member7-master member7 136.0.0.4 lcc7-re0 member7-re0 136.0.0.5 lcc7-re1 member7-re1 136.0.0.6 lcc7-backup member7-backup 136.0.0.16 member7-fpc0 136.0.0.17 member7-fpc1 136.0.0.18 member7-fpc2 136.0.0.19 member7-fpc3 136.0.0.20 member7-fpc4 136.0.0.21 member7-fpc5 136.0.0.22 member7-fpc6 136.0.0.23 member7-fpc7 136.0.0.24 member7-fpc8 136.0.0.25 member7-fpc9 136.0.0.26 member7-fpc10 136.0.0.27 member7-fpc11 136.0.0.28 member7-fpc12 136.0.0.29 member7-fpc13 136.0.0.30 member7-fpc14 136.0.0.31 member7-fpc15 136.0.0.32 member7-fpc16 136.0.0.33 member7-fpc17 136.0.0.34 member7-fpc18 136.0.0.35 member7-fpc19 136.0.0.36 member7-fpc20 136.0.0.37 member7-fpc21 136.0.0.38 member7-fpc22 136.0.0.39 member7-fpc23 136.0.0.40 member7-fpc24 136.0.0.41 member7-fpc25 136.0.0.42 member7-fpc26 136.0.0.43 member7-fpc27 136.0.0.44 member7-fpc28 136.0.0.45 member7-fpc29 136.0.0.46 member7-fpc30 136.0.0.47 member7-fpc31 136.0.0.6 lcc7-backup 136.0.0.16 lcc7-fpc0 136.0.0.17 lcc7-fpc1 136.0.0.18 lcc7-fpc2 136.0.0.19 lcc7-fpc3 136.0.0.20 lcc7-fpc4 136.0.0.21 lcc7-fpc5 136.0.0.22 lcc7-fpc6 136.0.0.23 lcc7-fpc7 136.0.0.48 lcc7-spmb0 136.0.0.49 lcc7-spmb1 137.0.0.6 lcc8-backup 137.0.0.16 lcc8-fpc0 137.0.0.17 lcc8-fpc1 137.0.0.18 lcc8-fpc2 137.0.0.19 lcc8-fpc3 137.0.0.20 lcc8-fpc4 137.0.0.21 lcc8-fpc5 137.0.0.22 lcc8-fpc6 137.0.0.23 lcc8-fpc7 137.0.0.48 lcc8-spmb0 137.0.0.49 lcc8-spmb1 #LCC 8 (or MEMBER 8 on Virtual Chassis) 137.0.0.1 lcc8-master member8-master member8 137.0.0.4 lcc8-re0 member8-re0 137.0.0.5 lcc8-re1 member8-re1 137.0.0.6 lcc8-backup member8-backup 137.0.0.16 member8-fpc0 137.0.0.17 member8-fpc1 137.0.0.18 member8-fpc2 137.0.0.19 member8-fpc3 137.0.0.20 member8-fpc4 137.0.0.21 member8-fpc5 137.0.0.22 member8-fpc6 137.0.0.23 member8-fpc7 137.0.0.24 member8-fpc8 137.0.0.25 member8-fpc9 137.0.0.26 member8-fpc10 137.0.0.27 member8-fpc11 137.0.0.28 member8-fpc12 137.0.0.29 member8-fpc13 137.0.0.30 member8-fpc14 137.0.0.31 member8-fpc15 137.0.0.32 member8-fpc16 137.0.0.33 member8-fpc17 137.0.0.34 member8-fpc18 137.0.0.35 member8-fpc19 137.0.0.36 member8-fpc20 137.0.0.37 member8-fpc21 137.0.0.38 member8-fpc22 137.0.0.39 member8-fpc23 137.0.0.40 member8-fpc24 137.0.0.41 member8-fpc25 137.0.0.42 member8-fpc26 137.0.0.43 member8-fpc27 137.0.0.44 member8-fpc28 137.0.0.45 member8-fpc29 137.0.0.46 member8-fpc30 137.0.0.47 member8-fpc31 138.0.0.6 lcc9-backup 138.0.0.16 lcc9-fpc0 138.0.0.17 lcc9-fpc1 138.0.0.18 lcc9-fpc2 138.0.0.19 lcc9-fpc3 138.0.0.20 lcc9-fpc4 138.0.0.21 lcc9-fpc5 138.0.0.22 lcc9-fpc6 138.0.0.23 lcc9-fpc7 138.0.0.48 lcc9-spmb0 138.0.0.49 lcc9-spmb1 #LCC 9 (or MEMBER 9 on Virtual Chassis) 138.0.0.1 lcc9-master member9-master member9 138.0.0.4 lcc9-re0 member9-re0 138.0.0.5 lcc9-re1 member9-re1 138.0.0.6 lcc9-backup member9-backup 138.0.0.16 member9-fpc0 138.0.0.17 member9-fpc1 138.0.0.18 member9-fpc2 138.0.0.19 member9-fpc3 138.0.0.20 member9-fpc4 138.0.0.21 member9-fpc5 138.0.0.22 member9-fpc6 138.0.0.23 member9-fpc7 138.0.0.24 member9-fpc8 138.0.0.25 member9-fpc9 138.0.0.26 member9-fpc10 138.0.0.27 member9-fpc11 138.0.0.28 member9-fpc12 138.0.0.29 member9-fpc13 138.0.0.30 member9-fpc14 138.0.0.31 member9-fpc15 138.0.0.32 member9-fpc16 138.0.0.33 member9-fpc17 138.0.0.34 member9-fpc18 138.0.0.35 member9-fpc19 138.0.0.36 member9-fpc20 138.0.0.37 member9-fpc21 138.0.0.38 member9-fpc22 138.0.0.39 member9-fpc23 138.0.0.40 member9-fpc24 138.0.0.41 member9-fpc25 138.0.0.42 member9-fpc26 138.0.0.43 member9-fpc27 138.0.0.44 member9-fpc28 138.0.0.45 member9-fpc29 138.0.0.46 member9-fpc30 138.0.0.47 member9-fpc31 139.0.0.6 lcc10-backup 139.0.0.16 lcc10-fpc0 139.0.0.17 lcc10-fpc1 139.0.0.18 lcc10-fpc2 139.0.0.19 lcc10-fpc3 139.0.0.20 lcc10-fpc4 139.0.0.21 lcc10-fpc5 139.0.0.22 lcc10-fpc6 139.0.0.23 lcc10-fpc7 139.0.0.48 lcc10-spmb0 139.0.0.49 lcc10-spmb1 #LCC 10 (or MEMBER 10 on Virtual Chassis) 139.0.0.1 lcc10-master member10-master 139.0.0.4 lcc10-re0 member10-re0 139.0.0.5 lcc10-re1 member10-re1 139.0.0.6 lcc10-backup member10-backup 139.0.0.16 member10-fpc0 139.0.0.17 member10-fpc1 139.0.0.18 member10-fpc2 139.0.0.19 member10-fpc3 139.0.0.20 member10-fpc4 139.0.0.21 member10-fpc5 139.0.0.22 member10-fpc6 139.0.0.23 member10-fpc7 139.0.0.24 member10-fpc8 139.0.0.25 member10-fpc9 139.0.0.26 member10-fpc10 139.0.0.27 member10-fpc11 139.0.0.28 member10-fpc12 139.0.0.29 member10-fpc13 139.0.0.30 member10-fpc14 139.0.0.31 member10-fpc15 139.0.0.32 member10-fpc16 139.0.0.33 member10-fpc17 139.0.0.34 member10-fpc18 139.0.0.35 member10-fpc19 139.0.0.36 member10-fpc20 139.0.0.37 member10-fpc21 139.0.0.38 member10-fpc22 139.0.0.39 member10-fpc23 139.0.0.40 member10-fpc24 139.0.0.41 member10-fpc25 139.0.0.42 member10-fpc26 139.0.0.43 member10-fpc27 139.0.0.44 member10-fpc28 139.0.0.45 member10-fpc29 139.0.0.46 member10-fpc30 139.0.0.47 member10-fpc31 140.0.0.6 lcc11-backup 140.0.0.16 lcc11-fpc0 140.0.0.17 lcc11-fpc1 140.0.0.18 lcc11-fpc2 140.0.0.19 lcc11-fpc3 140.0.0.20 lcc11-fpc4 140.0.0.21 lcc11-fpc5 140.0.0.22 lcc11-fpc6 140.0.0.23 lcc11-fpc7 140.0.0.48 lcc11-spmb0 140.0.0.49 lcc11-spmb1 #LCC 11 (or MEMBER 11 on Virtual Chassis) 140.0.0.1 lcc11-master member11-master 140.0.0.4 lcc11-re0 member11-re0 140.0.0.5 lcc11-re1 member11-re1 140.0.0.6 lcc11-backup member11-backup 140.0.0.16 member11-fpc0 140.0.0.17 member11-fpc1 140.0.0.18 member11-fpc2 140.0.0.19 member11-fpc3 140.0.0.20 member11-fpc4 140.0.0.21 member11-fpc5 140.0.0.22 member11-fpc6 140.0.0.23 member11-fpc7 140.0.0.24 member11-fpc8 140.0.0.25 member11-fpc9 140.0.0.26 member11-fpc10 140.0.0.27 member11-fpc11 140.0.0.28 member11-fpc12 140.0.0.29 member11-fpc13 140.0.0.30 member11-fpc14 140.0.0.31 member11-fpc15 140.0.0.32 member11-fpc16 140.0.0.33 member11-fpc17 140.0.0.34 member11-fpc18 140.0.0.35 member11-fpc19 140.0.0.36 member11-fpc20 140.0.0.37 member11-fpc21 140.0.0.38 member11-fpc22 140.0.0.39 member11-fpc23 140.0.0.40 member11-fpc24 140.0.0.41 member11-fpc25 140.0.0.42 member11-fpc26 140.0.0.43 member11-fpc27 140.0.0.44 member11-fpc28 140.0.0.45 member11-fpc29 140.0.0.46 member11-fpc30 140.0.0.47 member11-fpc31 141.0.0.6 lcc12-backup 141.0.0.16 lcc12-fpc0 141.0.0.17 lcc12-fpc1 141.0.0.18 lcc12-fpc2 141.0.0.19 lcc12-fpc3 141.0.0.20 lcc12-fpc4 141.0.0.21 lcc12-fpc5 141.0.0.22 lcc12-fpc6 141.0.0.23 lcc12-fpc7 141.0.0.48 lcc12-spmb0 141.0.0.49 lcc12-spmb1 #LCC 12 (or MEMBER 12 on Virtual Chassis) 141.0.0.1 lcc12-master member12-master 141.0.0.4 lcc12-re0 member12-re0 141.0.0.5 lcc12-re1 member12-re1 141.0.0.6 lcc12-backup member12-backup 141.0.0.16 member12-fpc0 141.0.0.17 member12-fpc1 141.0.0.18 member12-fpc2 141.0.0.19 member12-fpc3 141.0.0.20 member12-fpc4 141.0.0.21 member12-fpc5 141.0.0.22 member12-fpc6 141.0.0.23 member12-fpc7 141.0.0.24 member12-fpc8 141.0.0.25 member12-fpc9 141.0.0.26 member12-fpc10 141.0.0.27 member12-fpc11 141.0.0.28 member12-fpc12 141.0.0.29 member12-fpc13 141.0.0.30 member12-fpc14 141.0.0.31 member12-fpc15 141.0.0.32 member12-fpc16 141.0.0.33 member12-fpc17 141.0.0.34 member12-fpc18 141.0.0.35 member12-fpc19 141.0.0.36 member12-fpc20 141.0.0.37 member12-fpc21 141.0.0.38 member12-fpc22 141.0.0.39 member12-fpc23 141.0.0.40 member12-fpc24 141.0.0.41 member12-fpc25 141.0.0.42 member12-fpc26 141.0.0.43 member12-fpc27 141.0.0.44 member12-fpc28 141.0.0.45 member12-fpc29 141.0.0.46 member12-fpc30 141.0.0.47 member12-fpc31 142.0.0.6 lcc13-backup 142.0.0.16 lcc13-fpc0 142.0.0.17 lcc13-fpc1 142.0.0.18 lcc13-fpc2 142.0.0.19 lcc13-fpc3 142.0.0.20 lcc13-fpc4 142.0.0.21 lcc13-fpc5 142.0.0.22 lcc13-fpc6 142.0.0.23 lcc13-fpc7 142.0.0.48 lcc13-spmb0 142.0.0.49 lcc13-spmb1 #LCC 13 (or MEMBER 13 on Virtual Chassis) 142.0.0.1 lcc13-master member13-master 142.0.0.4 lcc13-re0 member13-re0 142.0.0.5 lcc13-re1 member13-re1 142.0.0.6 lcc13-backup member13-backup 142.0.0.16 member13-fpc0 142.0.0.17 member13-fpc1 142.0.0.18 member13-fpc2 142.0.0.19 member13-fpc3 142.0.0.20 member13-fpc4 142.0.0.21 member13-fpc5 142.0.0.22 member13-fpc6 142.0.0.23 member13-fpc7 142.0.0.24 member13-fpc8 142.0.0.25 member13-fpc9 142.0.0.26 member13-fpc10 142.0.0.27 member13-fpc11 142.0.0.28 member13-fpc12 142.0.0.29 member13-fpc13 142.0.0.30 member13-fpc14 142.0.0.31 member13-fpc15 142.0.0.32 member13-fpc16 142.0.0.33 member13-fpc17 142.0.0.34 member13-fpc18 142.0.0.35 member13-fpc19 142.0.0.36 member13-fpc20 142.0.0.37 member13-fpc21 142.0.0.38 member13-fpc22 142.0.0.39 member13-fpc23 142.0.0.40 member13-fpc24 142.0.0.41 member13-fpc25 142.0.0.42 member13-fpc26 142.0.0.43 member13-fpc27 142.0.0.44 member13-fpc28 142.0.0.45 member13-fpc29 142.0.0.46 member13-fpc30 142.0.0.47 member13-fpc31 143.0.0.6 lcc14-backup 143.0.0.16 lcc14-fpc0 143.0.0.17 lcc14-fpc1 143.0.0.18 lcc14-fpc2 143.0.0.19 lcc14-fpc3 143.0.0.20 lcc14-fpc4 143.0.0.21 lcc14-fpc5 143.0.0.22 lcc14-fpc6 143.0.0.23 lcc14-fpc7 143.0.0.48 lcc14-spmb0 143.0.0.49 lcc14-spmb1 #LCC 14 (or MEMBER 14 on Virtual Chassis) 143.0.0.1 lcc14-master member14-master 143.0.0.4 lcc14-re0 member14-re0 143.0.0.5 lcc14-re1 member14-re1 143.0.0.6 lcc14-backup member14-backup 143.0.0.16 member14-fpc0 143.0.0.17 member14-fpc1 143.0.0.18 member14-fpc2 143.0.0.19 member14-fpc3 143.0.0.20 member14-fpc4 143.0.0.21 member14-fpc5 143.0.0.22 member14-fpc6 143.0.0.23 member14-fpc7 143.0.0.24 member14-fpc8 143.0.0.25 member14-fpc9 143.0.0.26 member14-fpc10 143.0.0.27 member14-fpc11 143.0.0.28 member14-fpc12 143.0.0.29 member14-fpc13 143.0.0.30 member14-fpc14 143.0.0.31 member14-fpc15 143.0.0.32 member14-fpc16 143.0.0.33 member14-fpc17 143.0.0.34 member14-fpc18 143.0.0.35 member14-fpc19 143.0.0.36 member14-fpc20 143.0.0.37 member14-fpc21 143.0.0.38 member14-fpc22 143.0.0.39 member14-fpc23 143.0.0.40 member14-fpc24 143.0.0.41 member14-fpc25 143.0.0.42 member14-fpc26 143.0.0.43 member14-fpc27 143.0.0.44 member14-fpc28 143.0.0.45 member14-fpc29 143.0.0.46 member14-fpc30 143.0.0.47 member14-fpc31 144.0.0.6 lcc15-backup 144.0.0.16 lcc15-fpc0 144.0.0.17 lcc15-fpc1 144.0.0.18 lcc15-fpc2 144.0.0.19 lcc15-fpc3 144.0.0.20 lcc15-fpc4 144.0.0.21 lcc15-fpc5 144.0.0.22 lcc15-fpc6 144.0.0.23 lcc15-fpc7 144.0.0.48 lcc15-spmb0 144.0.0.49 lcc15-spmb1 #LCC 15 (or MEMBER 15 on Virtual Chassis) 144.0.0.1 lcc15-master member15-master 144.0.0.4 lcc15-re0 member15-re0 144.0.0.5 lcc15-re1 member15-re1 144.0.0.6 lcc15-backup member15-backup 144.0.0.16 member15-fpc0 144.0.0.17 member15-fpc1 144.0.0.18 member15-fpc2 144.0.0.19 member15-fpc3 144.0.0.20 member15-fpc4 144.0.0.21 member15-fpc5 144.0.0.22 member15-fpc6 144.0.0.23 member15-fpc7 144.0.0.24 member15-fpc8 144.0.0.25 member15-fpc9 144.0.0.26 member15-fpc10 144.0.0.27 member15-fpc11 144.0.0.28 member15-fpc12 144.0.0.29 member15-fpc13 144.0.0.30 member15-fpc14 144.0.0.31 member15-fpc15 144.0.0.32 member15-fpc16 144.0.0.33 member15-fpc17 144.0.0.34 member15-fpc18 144.0.0.35 member15-fpc19 144.0.0.36 member15-fpc20 144.0.0.37 member15-fpc21 144.0.0.38 member15-fpc22 144.0.0.39 member15-fpc23 144.0.0.40 member15-fpc24 144.0.0.41 member15-fpc25 144.0.0.42 member15-fpc26 144.0.0.43 member15-fpc27 144.0.0.44 member15-fpc28 144.0.0.45 member15-fpc29 144.0.0.46 member15-fpc30 144.0.0.47 member15-fpc31 #LCC 16 (or MEMBER 16 on Virtual Chassis) 145.0.0.1 lcc16-master member16-master 145.0.0.4 lcc16-re0 member16-re0 145.0.0.5 lcc16-re1 member16-re1 145.0.0.6 lcc16-backup member16-backup 145.0.0.16 member16-fpc0 145.0.0.17 member16-fpc1 145.0.0.18 member16-fpc2 145.0.0.19 member16-fpc3 145.0.0.20 member16-fpc4 145.0.0.21 member16-fpc5 145.0.0.22 member16-fpc6 145.0.0.23 member16-fpc7 145.0.0.24 member16-fpc8 145.0.0.25 member16-fpc9 145.0.0.26 member16-fpc10 145.0.0.27 member16-fpc11 145.0.0.28 member16-fpc12 145.0.0.29 member16-fpc13 145.0.0.30 member16-fpc14 145.0.0.31 member16-fpc15 145.0.0.32 member16-fpc16 145.0.0.33 member16-fpc17 145.0.0.34 member16-fpc18 145.0.0.35 member16-fpc19 145.0.0.36 member16-fpc20 145.0.0.37 member16-fpc21 145.0.0.38 member16-fpc22 145.0.0.39 member16-fpc23 145.0.0.40 member16-fpc24 145.0.0.41 member16-fpc25 145.0.0.42 member16-fpc26 145.0.0.43 member16-fpc27 145.0.0.44 member16-fpc28 145.0.0.45 member16-fpc29 145.0.0.46 member16-fpc30 145.0.0.47 member16-fpc31 #LCC 17 (or MEMBER 17 on Virtual Chassis) 146.0.0.1 lcc17-master member17-master 146.0.0.4 lcc17-re0 member17-re0 146.0.0.5 lcc17-re1 member17-re1 146.0.0.6 lcc17-backup member17-backup 146.0.0.16 member17-fpc0 146.0.0.17 member17-fpc1 146.0.0.18 member17-fpc2 146.0.0.19 member17-fpc3 146.0.0.20 member17-fpc4 146.0.0.21 member17-fpc5 146.0.0.22 member17-fpc6 146.0.0.23 member17-fpc7 146.0.0.24 member17-fpc8 146.0.0.25 member17-fpc9 146.0.0.26 member17-fpc10 146.0.0.27 member17-fpc11 146.0.0.28 member17-fpc12 146.0.0.29 member17-fpc13 146.0.0.30 member17-fpc14 146.0.0.31 member17-fpc15 146.0.0.32 member17-fpc16 146.0.0.33 member17-fpc17 146.0.0.34 member17-fpc18 146.0.0.35 member17-fpc19 146.0.0.36 member17-fpc20 146.0.0.37 member17-fpc21 146.0.0.38 member17-fpc22 146.0.0.39 member17-fpc23 146.0.0.40 member17-fpc24 146.0.0.41 member17-fpc25 146.0.0.42 member17-fpc26 146.0.0.43 member17-fpc27 146.0.0.44 member17-fpc28 146.0.0.45 member17-fpc29 146.0.0.46 member17-fpc30 146.0.0.47 member17-fpc31 #LCC 18 (or MEMBER 18 on Virtual Chassis) 147.0.0.1 lcc18-master member18-master 147.0.0.4 lcc18-re0 member18-re0 147.0.0.5 lcc18-re1 member18-re1 147.0.0.6 lcc18-backup member18-backup 147.0.0.16 member18-fpc0 147.0.0.17 member18-fpc1 147.0.0.18 member18-fpc2 147.0.0.19 member18-fpc3 147.0.0.20 member18-fpc4 147.0.0.21 member18-fpc5 147.0.0.22 member18-fpc6 147.0.0.23 member18-fpc7 147.0.0.24 member18-fpc8 147.0.0.25 member18-fpc9 147.0.0.26 member18-fpc10 147.0.0.27 member18-fpc11 147.0.0.28 member18-fpc12 147.0.0.29 member18-fpc13 147.0.0.30 member18-fpc14 147.0.0.31 member18-fpc15 147.0.0.32 member18-fpc16 147.0.0.33 member18-fpc17 147.0.0.34 member18-fpc18 147.0.0.35 member18-fpc19 147.0.0.36 member18-fpc20 147.0.0.37 member18-fpc21 147.0.0.38 member18-fpc22 147.0.0.39 member18-fpc23 147.0.0.40 member18-fpc24 147.0.0.41 member18-fpc25 147.0.0.42 member18-fpc26 147.0.0.43 member18-fpc27 147.0.0.44 member18-fpc28 147.0.0.45 member18-fpc29 147.0.0.46 member18-fpc30 147.0.0.47 member18-fpc31 #LCC 19 (or MEMBER 19 on Virtual Chassis) 148.0.0.1 lcc19-master member19-master 148.0.0.4 lcc19-re0 member19-re0 148.0.0.5 lcc19-re1 member19-re1 148.0.0.6 lcc19-backup member19-backup 148.0.0.16 member19-fpc0 148.0.0.17 member19-fpc1 148.0.0.18 member19-fpc2 148.0.0.19 member19-fpc3 148.0.0.20 member19-fpc4 148.0.0.21 member19-fpc5 148.0.0.22 member19-fpc6 148.0.0.23 member19-fpc7 148.0.0.24 member19-fpc8 148.0.0.25 member19-fpc9 148.0.0.26 member19-fpc10 148.0.0.27 member19-fpc11 148.0.0.28 member19-fpc12 148.0.0.29 member19-fpc13 148.0.0.30 member19-fpc14 148.0.0.31 member19-fpc15 148.0.0.32 member19-fpc16 148.0.0.33 member19-fpc17 148.0.0.34 member19-fpc18 148.0.0.35 member19-fpc19 148.0.0.36 member19-fpc20 148.0.0.37 member19-fpc21 148.0.0.38 member19-fpc22 148.0.0.39 member19-fpc23 148.0.0.40 member19-fpc24 148.0.0.41 member19-fpc25 148.0.0.42 member19-fpc26 148.0.0.43 member19-fpc27 148.0.0.44 member19-fpc28 148.0.0.45 member19-fpc29 148.0.0.46 member19-fpc30 148.0.0.47 member19-fpc31 #LCC 20 (or MEMBER 20 on Virtual Chassis) 149.0.0.1 lcc20-master member20-master 149.0.0.4 lcc20-re0 member20-re0 149.0.0.5 lcc20-re1 member20-re1 149.0.0.6 lcc20-backup member20-backup 149.0.0.16 member20-fpc0 149.0.0.17 member20-fpc1 149.0.0.18 member20-fpc2 149.0.0.19 member20-fpc3 149.0.0.20 member20-fpc4 149.0.0.21 member20-fpc5 149.0.0.22 member20-fpc6 149.0.0.23 member20-fpc7 149.0.0.24 member20-fpc8 149.0.0.25 member20-fpc9 149.0.0.26 member20-fpc10 149.0.0.27 member20-fpc11 149.0.0.28 member20-fpc12 149.0.0.29 member20-fpc13 149.0.0.30 member20-fpc14 149.0.0.31 member20-fpc15 149.0.0.32 member20-fpc16 149.0.0.33 member20-fpc17 149.0.0.34 member20-fpc18 149.0.0.35 member20-fpc19 149.0.0.36 member20-fpc20 149.0.0.37 member20-fpc21 149.0.0.38 member20-fpc22 149.0.0.39 member20-fpc23 149.0.0.40 member20-fpc24 149.0.0.41 member20-fpc25 149.0.0.42 member20-fpc26 149.0.0.43 member20-fpc27 149.0.0.44 member20-fpc28 149.0.0.45 member20-fpc29 149.0.0.46 member20-fpc30 149.0.0.47 member20-fpc31 #LCC 21 (or MEMBER 21 on Virtual Chassis) 150.0.0.1 lcc21-master member21-master 150.0.0.4 lcc21-re0 member21-re0 150.0.0.5 lcc21-re1 member21-re1 150.0.0.6 lcc21-backup member21-backup 150.0.0.16 member21-fpc0 150.0.0.17 member21-fpc1 150.0.0.18 member21-fpc2 150.0.0.19 member21-fpc3 150.0.0.20 member21-fpc4 150.0.0.21 member21-fpc5 150.0.0.22 member21-fpc6 150.0.0.23 member21-fpc7 150.0.0.24 member21-fpc8 150.0.0.25 member21-fpc9 150.0.0.26 member21-fpc10 150.0.0.27 member21-fpc11 150.0.0.28 member21-fpc12 150.0.0.29 member21-fpc13 150.0.0.30 member21-fpc14 150.0.0.31 member21-fpc15 150.0.0.32 member21-fpc16 150.0.0.33 member21-fpc17 150.0.0.34 member21-fpc18 150.0.0.35 member21-fpc19 150.0.0.36 member21-fpc20 150.0.0.37 member21-fpc21 150.0.0.38 member21-fpc22 150.0.0.39 member21-fpc23 150.0.0.40 member21-fpc24 150.0.0.41 member21-fpc25 150.0.0.42 member21-fpc26 150.0.0.43 member21-fpc27 150.0.0.44 member21-fpc28 150.0.0.45 member21-fpc29 150.0.0.46 member21-fpc30 150.0.0.47 member21-fpc31 #LCC 22 (or MEMBER 22 on Virtual Chassis) 151.0.0.1 lcc22-master member22-master 151.0.0.4 lcc22-re0 member22-re0 151.0.0.5 lcc22-re1 member22-re1 151.0.0.6 lcc22-backup member22-backup 151.0.0.16 member22-fpc0 151.0.0.17 member22-fpc1 151.0.0.18 member22-fpc2 151.0.0.19 member22-fpc3 151.0.0.20 member22-fpc4 151.0.0.21 member22-fpc5 151.0.0.22 member22-fpc6 151.0.0.23 member22-fpc7 151.0.0.24 member22-fpc8 151.0.0.25 member22-fpc9 151.0.0.26 member22-fpc10 151.0.0.27 member22-fpc11 151.0.0.28 member22-fpc12 151.0.0.29 member22-fpc13 151.0.0.30 member22-fpc14 151.0.0.31 member22-fpc15 151.0.0.32 member22-fpc16 151.0.0.33 member22-fpc17 151.0.0.34 member22-fpc18 151.0.0.35 member22-fpc19 151.0.0.36 member22-fpc20 151.0.0.37 member22-fpc21 151.0.0.38 member22-fpc22 151.0.0.39 member22-fpc23 151.0.0.40 member22-fpc24 151.0.0.41 member22-fpc25 151.0.0.42 member22-fpc26 151.0.0.43 member22-fpc27 151.0.0.44 member22-fpc28 151.0.0.45 member22-fpc29 151.0.0.46 member22-fpc30 151.0.0.47 member22-fpc31 #LCC 23 (or MEMBER 23 on Virtual Chassis) 152.0.0.1 lcc23-master member23-master 152.0.0.4 lcc23-re0 member23-re0 152.0.0.5 lcc23-re1 member23-re1 152.0.0.6 lcc23-backup member23-backup 152.0.0.16 member23-fpc0 152.0.0.17 member23-fpc1 152.0.0.18 member23-fpc2 152.0.0.19 member23-fpc3 152.0.0.20 member23-fpc4 152.0.0.21 member23-fpc5 152.0.0.22 member23-fpc6 152.0.0.23 member23-fpc7 152.0.0.24 member23-fpc8 152.0.0.25 member23-fpc9 152.0.0.26 member23-fpc10 152.0.0.27 member23-fpc11 152.0.0.28 member23-fpc12 152.0.0.29 member23-fpc13 152.0.0.30 member23-fpc14 152.0.0.31 member23-fpc15 152.0.0.32 member23-fpc16 152.0.0.33 member23-fpc17 152.0.0.34 member23-fpc18 152.0.0.35 member23-fpc19 152.0.0.36 member23-fpc20 152.0.0.37 member23-fpc21 152.0.0.38 member23-fpc22 152.0.0.39 member23-fpc23 152.0.0.40 member23-fpc24 152.0.0.41 member23-fpc25 152.0.0.42 member23-fpc26 152.0.0.43 member23-fpc27 152.0.0.44 member23-fpc28 152.0.0.45 member23-fpc29 152.0.0.46 member23-fpc30 152.0.0.47 member23-fpc31 #LCC 24 (or MEMBER 24 on Virtual Chassis) 153.0.0.1 lcc24-master member24-master 153.0.0.4 lcc24-re0 member24-re0 153.0.0.5 lcc24-re1 member24-re1 153.0.0.6 lcc24-backup member24-backup 153.0.0.16 member24-fpc0 153.0.0.17 member24-fpc1 153.0.0.18 member24-fpc2 153.0.0.19 member24-fpc3 153.0.0.20 member24-fpc4 153.0.0.21 member24-fpc5 153.0.0.22 member24-fpc6 153.0.0.23 member24-fpc7 153.0.0.24 member24-fpc8 153.0.0.25 member24-fpc9 153.0.0.26 member24-fpc10 153.0.0.27 member24-fpc11 153.0.0.28 member24-fpc12 153.0.0.29 member24-fpc13 153.0.0.30 member24-fpc14 153.0.0.31 member24-fpc15 153.0.0.32 member24-fpc16 153.0.0.33 member24-fpc17 153.0.0.34 member24-fpc18 153.0.0.35 member24-fpc19 153.0.0.36 member24-fpc20 153.0.0.37 member24-fpc21 153.0.0.38 member24-fpc22 153.0.0.39 member24-fpc23 153.0.0.40 member24-fpc24 153.0.0.41 member24-fpc25 153.0.0.42 member24-fpc26 153.0.0.43 member24-fpc27 153.0.0.44 member24-fpc28 153.0.0.45 member24-fpc29 153.0.0.46 member24-fpc30 153.0.0.47 member24-fpc31 #LCC 25 (or MEMBER 25 on Virtual Chassis) 154.0.0.1 lcc25-master member25-master 154.0.0.4 lcc25-re0 member25-re0 154.0.0.5 lcc25-re1 member25-re1 154.0.0.6 lcc25-backup member25-backup 154.0.0.16 member25-fpc0 154.0.0.17 member25-fpc1 154.0.0.18 member25-fpc2 154.0.0.19 member25-fpc3 154.0.0.20 member25-fpc4 154.0.0.21 member25-fpc5 154.0.0.22 member25-fpc6 154.0.0.23 member25-fpc7 154.0.0.24 member25-fpc8 154.0.0.25 member25-fpc9 154.0.0.26 member25-fpc10 154.0.0.27 member25-fpc11 154.0.0.28 member25-fpc12 154.0.0.29 member25-fpc13 154.0.0.30 member25-fpc14 154.0.0.31 member25-fpc15 154.0.0.32 member25-fpc16 154.0.0.33 member25-fpc17 154.0.0.34 member25-fpc18 154.0.0.35 member25-fpc19 154.0.0.36 member25-fpc20 154.0.0.37 member25-fpc21 154.0.0.38 member25-fpc22 154.0.0.39 member25-fpc23 154.0.0.40 member25-fpc24 154.0.0.41 member25-fpc25 154.0.0.42 member25-fpc26 154.0.0.43 member25-fpc27 154.0.0.44 member25-fpc28 154.0.0.45 member25-fpc29 154.0.0.46 member25-fpc30 154.0.0.47 member25-fpc31 #LCC 26 (or MEMBER 26 on Virtual Chassis) 155.0.0.1 lcc26-master member26-master 155.0.0.4 lcc26-re0 member26-re0 155.0.0.5 lcc26-re1 member26-re1 155.0.0.6 lcc26-backup member26-backup 155.0.0.16 member26-fpc0 155.0.0.17 member26-fpc1 155.0.0.18 member26-fpc2 155.0.0.19 member26-fpc3 155.0.0.20 member26-fpc4 155.0.0.21 member26-fpc5 155.0.0.22 member26-fpc6 155.0.0.23 member26-fpc7 155.0.0.24 member26-fpc8 155.0.0.25 member26-fpc9 155.0.0.26 member26-fpc10 155.0.0.27 member26-fpc11 155.0.0.28 member26-fpc12 155.0.0.29 member26-fpc13 155.0.0.30 member26-fpc14 155.0.0.31 member26-fpc15 155.0.0.32 member26-fpc16 155.0.0.33 member26-fpc17 155.0.0.34 member26-fpc18 155.0.0.35 member26-fpc19 155.0.0.36 member26-fpc20 155.0.0.37 member26-fpc21 155.0.0.38 member26-fpc22 155.0.0.39 member26-fpc23 155.0.0.40 member26-fpc24 155.0.0.41 member26-fpc25 155.0.0.42 member26-fpc26 155.0.0.43 member26-fpc27 155.0.0.44 member26-fpc28 155.0.0.45 member26-fpc29 155.0.0.46 member26-fpc30 155.0.0.47 member26-fpc31 #LCC 27 (or MEMBER 27 on Virtual Chassis) 156.0.0.1 lcc27-master member27-master 156.0.0.4 lcc27-re0 member27-re0 156.0.0.5 lcc27-re1 member27-re1 156.0.0.6 lcc27-backup member27-backup 156.0.0.16 member27-fpc0 156.0.0.17 member27-fpc1 156.0.0.18 member27-fpc2 156.0.0.19 member27-fpc3 156.0.0.20 member27-fpc4 156.0.0.21 member27-fpc5 156.0.0.22 member27-fpc6 156.0.0.23 member27-fpc7 156.0.0.24 member27-fpc8 156.0.0.25 member27-fpc9 156.0.0.26 member27-fpc10 156.0.0.27 member27-fpc11 156.0.0.28 member27-fpc12 156.0.0.29 member27-fpc13 156.0.0.30 member27-fpc14 156.0.0.31 member27-fpc15 156.0.0.32 member27-fpc16 156.0.0.33 member27-fpc17 156.0.0.34 member27-fpc18 156.0.0.35 member27-fpc19 156.0.0.36 member27-fpc20 156.0.0.37 member27-fpc21 156.0.0.38 member27-fpc22 156.0.0.39 member27-fpc23 156.0.0.40 member27-fpc24 156.0.0.41 member27-fpc25 156.0.0.42 member27-fpc26 156.0.0.43 member27-fpc27 156.0.0.44 member27-fpc28 156.0.0.45 member27-fpc29 156.0.0.46 member27-fpc30 156.0.0.47 member27-fpc31 #LCC 28 (or MEMBER 28 on Virtual Chassis) 157.0.0.1 lcc28-master member28-master 157.0.0.4 lcc28-re0 member28-re0 157.0.0.5 lcc28-re1 member28-re1 157.0.0.6 lcc28-backup member28-backup 157.0.0.16 member28-fpc0 157.0.0.17 member28-fpc1 157.0.0.18 member28-fpc2 157.0.0.19 member28-fpc3 157.0.0.20 member28-fpc4 157.0.0.21 member28-fpc5 157.0.0.22 member28-fpc6 157.0.0.23 member28-fpc7 157.0.0.24 member28-fpc8 157.0.0.25 member28-fpc9 157.0.0.26 member28-fpc10 157.0.0.27 member28-fpc11 157.0.0.28 member28-fpc12 157.0.0.29 member28-fpc13 157.0.0.30 member28-fpc14 157.0.0.31 member28-fpc15 157.0.0.32 member28-fpc16 157.0.0.33 member28-fpc17 157.0.0.34 member28-fpc18 157.0.0.35 member28-fpc19 157.0.0.36 member28-fpc20 157.0.0.37 member28-fpc21 157.0.0.38 member28-fpc22 157.0.0.39 member28-fpc23 157.0.0.40 member28-fpc24 157.0.0.41 member28-fpc25 157.0.0.42 member28-fpc26 157.0.0.43 member28-fpc27 157.0.0.44 member28-fpc28 157.0.0.45 member28-fpc29 157.0.0.46 member28-fpc30 157.0.0.47 member28-fpc31 #LCC 29 (or MEMBER 29 on Virtual Chassis) 158.0.0.1 lcc29-master member29-master 158.0.0.4 lcc29-re0 member29-re0 158.0.0.5 lcc29-re1 member29-re1 158.0.0.6 lcc29-backup member29-backup 158.0.0.16 member29-fpc0 158.0.0.17 member29-fpc1 158.0.0.18 member29-fpc2 158.0.0.19 member29-fpc3 158.0.0.20 member29-fpc4 158.0.0.21 member29-fpc5 158.0.0.22 member29-fpc6 158.0.0.23 member29-fpc7 158.0.0.24 member29-fpc8 158.0.0.25 member29-fpc9 158.0.0.26 member29-fpc10 158.0.0.27 member29-fpc11 158.0.0.28 member29-fpc12 158.0.0.29 member29-fpc13 158.0.0.30 member29-fpc14 158.0.0.31 member29-fpc15 158.0.0.32 member29-fpc16 158.0.0.33 member29-fpc17 158.0.0.34 member29-fpc18 158.0.0.35 member29-fpc19 158.0.0.36 member29-fpc20 158.0.0.37 member29-fpc21 158.0.0.38 member29-fpc22 158.0.0.39 member29-fpc23 158.0.0.40 member29-fpc24 158.0.0.41 member29-fpc25 158.0.0.42 member29-fpc26 158.0.0.43 member29-fpc27 158.0.0.44 member29-fpc28 158.0.0.45 member29-fpc29 158.0.0.46 member29-fpc30 158.0.0.47 member29-fpc31 #LCC 30 (or MEMBER 30 on Virtual Chassis) 159.0.0.1 lcc30-master member30-master 159.0.0.4 lcc30-re0 member30-re0 159.0.0.5 lcc30-re1 member30-re1 159.0.0.6 lcc30-backup member30-backup 159.0.0.16 member30-fpc0 159.0.0.17 member30-fpc1 159.0.0.18 member30-fpc2 159.0.0.19 member30-fpc3 159.0.0.20 member30-fpc4 159.0.0.21 member30-fpc5 159.0.0.22 member30-fpc6 159.0.0.23 member30-fpc7 159.0.0.24 member30-fpc8 159.0.0.25 member30-fpc9 159.0.0.26 member30-fpc10 159.0.0.27 member30-fpc11 159.0.0.28 member30-fpc12 159.0.0.29 member30-fpc13 159.0.0.30 member30-fpc14 159.0.0.31 member30-fpc15 159.0.0.32 member30-fpc16 159.0.0.33 member30-fpc17 159.0.0.34 member30-fpc18 159.0.0.35 member30-fpc19 159.0.0.36 member30-fpc20 159.0.0.37 member30-fpc21 159.0.0.38 member30-fpc22 159.0.0.39 member30-fpc23 159.0.0.40 member30-fpc24 159.0.0.41 member30-fpc25 159.0.0.42 member30-fpc26 159.0.0.43 member30-fpc27 159.0.0.44 member30-fpc28 159.0.0.45 member30-fpc29 159.0.0.46 member30-fpc30 159.0.0.47 member30-fpc31 #LCC 31 (or MEMBER 31 on Virtual Chassis) 160.0.0.1 lcc31-master member31-master 160.0.0.4 lcc31-re0 member31-re0 160.0.0.5 lcc31-re1 member31-re1 160.0.0.6 lcc31-backup member31-backup 160.0.0.16 member31-fpc0 160.0.0.17 member31-fpc1 160.0.0.18 member31-fpc2 160.0.0.19 member31-fpc3 160.0.0.20 member31-fpc4 160.0.0.21 member31-fpc5 160.0.0.22 member31-fpc6 160.0.0.23 member31-fpc7 160.0.0.24 member31-fpc8 160.0.0.25 member31-fpc9 160.0.0.26 member31-fpc10 160.0.0.27 member31-fpc11 160.0.0.28 member31-fpc12 160.0.0.29 member31-fpc13 160.0.0.30 member31-fpc14 160.0.0.31 member31-fpc15 160.0.0.32 member31-fpc16 160.0.0.33 member31-fpc17 160.0.0.34 member31-fpc18 160.0.0.35 member31-fpc19 160.0.0.36 member31-fpc20 160.0.0.37 member31-fpc21 160.0.0.38 member31-fpc22 160.0.0.39 member31-fpc23 160.0.0.40 member31-fpc24 160.0.0.41 member31-fpc25 160.0.0.42 member31-fpc26 160.0.0.43 member31-fpc27 160.0.0.44 member31-fpc28 160.0.0.45 member31-fpc29 160.0.0.46 member31-fpc30 160.0.0.47 member31-fpc31 #VIRT SC 161.0.0.1 sc-master 161.0.0.4 sc-re0 161.0.0.5 sc-re1 161.0.0.6 sc-backup #SFC 0 162.0.0.1 sfc0-master 162.0.0.4 sfc0-re0 162.0.0.5 sfc0-re1 162.0.0.6 sfc0-backup 162.0.0.48 sfc0-spmb0 162.0.0.49 sfc0-spmb1 #SFC 1 163.0.0.1 sfc1-master 163.0.0.4 sfc1-re0 163.0.0.5 sfc1-re1 163.0.0.6 sfc1-backup 163.0.0.48 sfc1-spmb0 163.0.0.49 sfc1-spmb1 #SFC 2 164.0.0.1 sfc2-master 164.0.0.4 sfc2-re0 164.0.0.5 sfc2-re1 164.0.0.6 sfc2-backup 164.0.0.48 sfc2-spmb0 164.0.0.49 sfc2-spmb1 #SFC 3 165.0.0.1 sfc3-master 165.0.0.4 sfc3-re0 165.0.0.5 sfc3-re1 165.0.0.6 sfc3-backup 165.0.0.48 sfc3-spmb0 165.0.0.49 sfc3-spmb1 #SFC 4 166.0.0.1 sfc4-master 166.0.0.4 sfc4-re0 166.0.0.5 sfc4-re1 166.0.0.6 sfc4-backup 166.0.0.48 sfc4-spmb0 166.0.0.49 sfc4-spmb1 #JCS 190.0.0.1 gnf%d-master 190.0.0.4 gnf%d-re0 190.0.0.5 gnf%d-re1 190.0.0.6 gnf%d-backup #JCS 190.1.0.1 gnf%d-master 190.1.0.4 gnf%d-re0 190.1.0.5 gnf%d-re1 190.1.0.6 gnf%d-backup #PSD 190.0.0.1 psd%d-master 190.0.0.4 psd%d-re0 190.0.0.5 psd%d-re1 190.0.0.6 psd%d-backup # Old IP address format (RT_IRS_V2) # # Single Chassis Hostnames # 10.0.0.1 master 10.0.0.4 re0 10.0.0.5 re1 10.0.0.16 fpc0 10.0.0.17 fpc1 10.0.0.18 fpc2 10.0.0.19 fpc3 10.0.0.20 fpc4 10.0.0.21 fpc5 10.0.0.22 fpc6 10.0.0.23 fpc7 10.0.0.24 fpc8 10.0.0.25 fpc9 10.0.0.26 fpc10 10.0.0.27 fpc11 10.0.0.28 fpc12 10.0.0.29 fpc13 10.0.0.30 fpc14 10.0.0.31 fpc15 # # Multi Chassis Hostnames # #SCC 10.16.0.1 scc-master 10.16.0.4 scc-re0 10.16.0.5 scc-re1 #LCC 0 10.1.0.1 lcc0-master member0-master 10.1.0.4 lcc0-re0 member0-re0 10.1.0.5 lcc0-re1 member0-re1 10.1.0.6 lcc0-backup member0-backup #LCC 1 10.2.0.1 lcc1-master member1-master 10.2.0.4 lcc1-re0 member1-re0 10.2.0.5 lcc1-re1 member1-re1 10.2.0.6 lcc1-backup member1-backup #LCC 2 10.3.0.1 lcc2-master member2-master 10.3.0.4 lcc2-re0 member2-re0 10.3.0.5 lcc2-re1 member2-re1 10.3.0.6 lcc2-backup member2-backup #LCC 3 10.4.0.1 lcc3-master member3-master 10.4.0.4 lcc3-re0 member3-re0 10.4.0.5 lcc3-re1 member3-re1 10.4.0.6 lcc3-backup member3-backup #LCC 4 10.5.0.1 lcc4-master member4-master 10.5.0.4 lcc4-re0 member4-re0 10.5.0.5 lcc4-re1 member4-re1 10.5.0.6 lcc4-backup member4-backup #LCC 5 10.6.0.1 lcc5-master member5-master 10.6.0.4 lcc5-re0 member5-re0 10.6.0.5 lcc5-re1 member5-re1 10.6.0.6 lcc5-backup member5-backup #LCC 6 10.7.0.1 lcc6-master member6-master 10.7.0.4 lcc6-re0 member6-re0 10.7.0.5 lcc6-re1 member6-re1 10.7.0.6 lcc6-backup member6-backup #LCC 7 10.8.0.1 lcc7-master member7-master 10.8.0.4 lcc7-re0 member7-re0 10.8.0.5 lcc7-re1 member7-re1 10.8.0.6 lcc7-backup member7-backup #LCC 8 10.9.0.1 lcc8-master member8-master 10.9.0.4 lcc8-re0 member8-re0 10.9.0.5 lcc8-re1 member8-re1 10.9.0.6 lcc8-backup member8-backup #LCC 9 10.10.0.1 lcc9-master member9-master 10.10.0.4 lcc9-re0 member9-re0 10.10.0.5 lcc9-re1 member9-re1 10.10.0.6 lcc9-backup member9-backup #LCC 10 10.11.0.1 lcc10-master member10-master 10.11.0.4 lcc10-re0 member10-re0 10.11.0.5 lcc10-re1 member10-re1 10.11.0.6 lcc10-backup member10-backup #LCC 11 10.12.0.1 lcc11-master member11-master 10.12.0.4 lcc11-re0 member11-re0 10.12.0.5 lcc11-re1 member11-re1 10.12.0.6 lcc11-backup member11-backup #LCC 12 10.13.0.1 lcc12-master member12-master 10.13.0.4 lcc12-re0 member12-re0 10.13.0.5 lcc12-re1 member12-re1 10.13.0.6 lcc12-backup member12-backup #LCC 13 10.14.0.1 lcc13-master member13-master 10.14.0.4 lcc13-re0 member13-re0 10.14.0.5 lcc13-re1 member13-re1 10.14.0.6 lcc13-backup member13-backup #LCC 14 10.15.0.1 lcc14-master member14-master 10.15.0.4 lcc14-re0 member14-re0 10.15.0.5 lcc14-re1 member14-re1 10.15.0.6 lcc14-backup member14-backup #LCC 15 10.16.0.1 lcc15-master member15-master 10.16.0.4 lcc15-re0 member15-re0 10.16.0.5 lcc15-re1 member15-re1 10.16.0.6 lcc15-backup member15-backup #SFC 0 10.34.0.1 sfc0-master 10.34.0.4 sfc0-re0 10.34.0.5 sfc0-re1 #SFC 1 10.35.0.1 sfc1-master 10.35.0.4 sfc1-re0 10.35.0.5 sfc1-re1 #SFC 2 10.36.0.1 sfc2-master 10.36.0.4 sfc2-re0 10.36.0.5 sfc2-re1 #SFC 3 10.37.0.1 sfc3-master 10.37.0.4 sfc3-re0 10.37.0.5 sfc3-re1 #SFC 4 10.38.0.1 sfc4-master 10.38.0.4 sfc4-re0 10.38.0.5 sfc4-re1 # End of internal names py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/personality_ex_command.xml000066400000000000000000000030561475361112400266770ustar00rootroot00000000000000 fpc0 rppdt-ex4200a ex4200-48t ex4200-48t 13.3R2.2 junos JUNOS EX Software Suite [13.3R2.2] fips-mode-powerpc JUNOS FIPS mode utilities [13.3R2.2] jdocs-ex JUNOS Online Documentation [13.3R2.2] junos-ex-4200 JUNOS EX 4200 Software Suite [13.3R2.2] jweb-ex JUNOS Web Management [13.3R2.2] py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/personality_ex_file-show.xml000066400000000000000000000760331475361112400271630ustar00rootroot00000000000000 #$Id: hosts.junos,v 1.7.72.1 2009-04-16 05:22:03 kdickman Exp $ # # File mapping AF_INET/AF_INET6 hostnames for REs on Single and Multichassis # systems # # This file is looked at before /etc/hosts by gethostbyname(3), # gethostbyname2(3) and getaddrinfo(3) # # The IP addresses in this file are only used for communication between REs # over the Internal Routing Instances # # WARNING: # # The names in this file are effectively reserved for internal use. # # New IP address format (RT_IRS_V3) # # Single Chassis Hostnames # 128.0.0.1 master 128.0.0.1 node 128.0.0.1 fwdd 128.0.0.1 member 128.0.0.1 pfem 128.0.0.2 scb 128.0.0.2 sbr 128.0.0.2 ssb 128.0.0.2 feb 128.0.0.2 cfeb0 128.0.0.2 cfeb 128.0.0.2 cpp0 128.0.0.3 cfeb1 128.0.0.3 cpp1 128.0.0.4 re0 128.0.0.5 re1 128.0.0.6 backup 128.0.0.8 sfm0 128.0.0.9 sfm1 128.0.0.10 sfm2 128.0.0.16 fpc0 128.0.0.17 fpc1 128.0.0.18 fpc2 128.0.0.19 fpc3 128.0.0.20 fpc4 128.0.0.21 fpc5 128.0.0.22 fpc6 128.0.0.23 fpc7 128.0.0.24 fpc8 128.0.0.25 fpc9 128.0.0.26 fpc10 128.0.0.27 fpc11 128.0.0.28 fpc12 128.0.0.29 fpc13 128.0.0.30 fpc14 128.0.0.31 fpc15 128.0.0.32 feb0 128.0.0.32 fpc16 128.0.0.33 feb1 128.0.0.33 fpc17 128.0.0.34 feb2 128.0.0.34 fpc18 128.0.0.35 feb3 128.0.0.35 fpc19 128.0.0.36 feb4 128.0.0.37 feb5 128.0.0.48 spmb0 128.0.0.49 spmb1 128.0.0.50 tfeb0 128.0.0.50 afeb0 128.0.0.53 esc0 128.0.0.54 esc1 128.0.0.55 esc0-ipmi 128.0.0.56 esc1-ipmi 128.0.1.16 fpc0.pic0 128.0.1.17 fpc1.pic0 128.0.1.18 fpc2.pic0 128.0.1.19 fpc3.pic0 128.0.1.20 fpc4.pic0 128.0.1.21 fpc5.pic0 128.0.1.22 fpc6.pic0 128.0.1.23 fpc7.pic0 128.0.1.24 fpc8.pic0 128.0.1.25 fpc9.pic0 128.0.1.26 fpc10.pic0 128.0.1.27 fpc11.pic0 128.0.1.28 fpc12.pic0 128.0.1.29 fpc13.pic0 128.0.1.30 fpc14.pic0 128.0.1.31 fpc15.pic0 128.0.2.16 fpc0.pic1 128.0.2.17 fpc1.pic1 128.0.2.18 fpc2.pic1 128.0.2.19 fpc3.pic1 128.0.2.20 fpc4.pic1 128.0.2.21 fpc5.pic1 128.0.2.22 fpc6.pic1 128.0.2.23 fpc7.pic1 128.0.2.24 fpc8.pic1 128.0.2.25 fpc9.pic1 128.0.2.26 fpc10.pic1 128.0.2.27 fpc11.pic1 128.0.2.28 fpc12.pic1 128.0.2.29 fpc13.pic1 128.0.2.30 fpc14.pic1 128.0.2.31 fpc15.pic1 128.0.3.16 fpc0.pic2 128.0.3.17 fpc1.pic2 128.0.3.18 fpc2.pic2 128.0.3.19 fpc3.pic2 128.0.3.20 fpc4.pic2 128.0.3.21 fpc5.pic2 128.0.3.22 fpc6.pic2 128.0.3.23 fpc7.pic2 128.0.3.24 fpc8.pic2 128.0.3.25 fpc9.pic2 128.0.3.26 fpc10.pic2 128.0.3.27 fpc11.pic2 128.0.3.28 fpc12.pic2 128.0.3.29 fpc13.pic2 128.0.3.30 fpc14.pic2 128.0.3.31 fpc15.pic2 128.0.4.16 fpc0.pic3 128.0.4.17 fpc1.pic3 128.0.4.18 fpc2.pic3 128.0.4.19 fpc3.pic3 128.0.4.20 fpc4.pic3 128.0.4.21 fpc5.pic3 128.0.4.22 fpc6.pic3 128.0.4.23 fpc7.pic3 128.0.4.24 fpc8.pic3 128.0.4.25 fpc9.pic3 128.0.4.26 fpc10.pic3 128.0.4.27 fpc11.pic3 128.0.4.28 fpc12.pic3 128.0.4.29 fpc13.pic3 128.0.4.30 fpc14.pic3 128.0.4.31 fpc15.pic3 # # DCF-Root Hostname # 128.0.130.2 dcf-root # # Multi Chassis Hostnames # #SCC 144.0.0.1 scc-master 144.0.0.4 scc-re0 144.0.0.5 scc-re1 144.0.0.6 scc-backup 144.0.0.48 scc-spmb0 144.0.0.49 scc-spmb1 #LCC 0 (or MEMBER 0 on Virtual Chassis) 129.0.0.1 lcc0-master member0-master member0 129.0.0.4 lcc0-re0 member0-re0 129.0.0.5 lcc0-re1 member0-re1 129.0.0.6 lcc0-backup member0-backup 129.0.0.16 member0-fpc0 129.0.0.17 member0-fpc1 129.0.0.18 member0-fpc2 129.0.0.19 member0-fpc3 129.0.0.20 member0-fpc4 129.0.0.21 member0-fpc5 129.0.0.22 member0-fpc6 129.0.0.23 member0-fpc7 129.0.0.24 member0-fpc8 129.0.0.25 member0-fpc9 129.0.0.26 member0-fpc10 129.0.0.27 member0-fpc11 129.0.0.28 member0-fpc12 129.0.0.29 member0-fpc13 129.0.0.30 member0-fpc14 129.0.0.31 member0-fpc15 129.0.0.6 lcc0-backup 129.0.0.16 lcc0-fpc0 129.0.0.17 lcc0-fpc1 129.0.0.18 lcc0-fpc2 129.0.0.19 lcc0-fpc3 129.0.0.20 lcc0-fpc4 129.0.0.21 lcc0-fpc5 129.0.0.22 lcc0-fpc6 129.0.0.23 lcc0-fpc7 129.0.0.48 lcc0-spmb0 129.0.0.49 lcc0-spmb1 #LCC 1 (or MEMBER 1 on Virtual Chassis) 130.0.0.1 lcc1-master member1-master member1 130.0.0.4 lcc1-re0 member1-re0 130.0.0.5 lcc1-re1 member1-re1 130.0.0.6 lcc1-backup member1-backup 130.0.0.16 member1-fpc0 130.0.0.17 member1-fpc1 130.0.0.18 member1-fpc2 130.0.0.19 member1-fpc3 130.0.0.20 member1-fpc4 130.0.0.21 member1-fpc5 130.0.0.22 member1-fpc6 130.0.0.23 member1-fpc7 130.0.0.24 member1-fpc8 130.0.0.25 member1-fpc9 130.0.0.26 member1-fpc10 130.0.0.27 member1-fpc11 130.0.0.28 member1-fpc12 130.0.0.29 member1-fpc13 130.0.0.30 member1-fpc14 130.0.0.31 member1-fpc15 130.0.0.6 lcc1-backup 130.0.0.16 lcc1-fpc0 130.0.0.17 lcc1-fpc1 130.0.0.18 lcc1-fpc2 130.0.0.19 lcc1-fpc3 130.0.0.20 lcc1-fpc4 130.0.0.21 lcc1-fpc5 130.0.0.22 lcc1-fpc6 130.0.0.23 lcc1-fpc7 130.0.0.48 lcc1-spmb0 130.0.0.49 lcc1-spmb1 #LCC 2 (or MEMBER 2 on Virtual Chassis) 131.0.0.1 lcc2-master member2-master member2 131.0.0.4 lcc2-re0 member2-re0 131.0.0.5 lcc2-re1 member2-re1 131.0.0.6 lcc2-backup member2-backup 131.0.0.16 member2-fpc0 131.0.0.17 member2-fpc1 131.0.0.18 member2-fpc2 131.0.0.19 member2-fpc3 131.0.0.20 member2-fpc4 131.0.0.21 member2-fpc5 131.0.0.22 member2-fpc6 131.0.0.23 member2-fpc7 131.0.0.24 member2-fpc8 131.0.0.25 member2-fpc9 131.0.0.26 member2-fpc10 131.0.0.27 member2-fpc11 131.0.0.28 member2-fpc12 131.0.0.29 member2-fpc13 131.0.0.30 member2-fpc14 131.0.0.31 member2-fpc15 131.0.0.6 lcc2-backup 131.0.0.16 lcc2-fpc0 131.0.0.17 lcc2-fpc1 131.0.0.18 lcc2-fpc2 131.0.0.19 lcc2-fpc3 131.0.0.20 lcc2-fpc4 131.0.0.21 lcc2-fpc5 131.0.0.22 lcc2-fpc6 131.0.0.23 lcc2-fpc7 131.0.0.48 lcc2-spmb0 131.0.0.49 lcc20-spmb1 #LCC 3 (or MEMBER 3 on Virtual Chassis) 132.0.0.1 lcc3-master member3-master member3 132.0.0.4 lcc3-re0 member3-re0 132.0.0.5 lcc3-re1 member3-re1 132.0.0.6 lcc3-backup member3-backup 132.0.0.16 member3-fpc0 132.0.0.17 member3-fpc1 132.0.0.18 member3-fpc2 132.0.0.19 member3-fpc3 132.0.0.20 member3-fpc4 132.0.0.21 member3-fpc5 132.0.0.22 member3-fpc6 132.0.0.23 member3-fpc7 132.0.0.24 member3-fpc8 132.0.0.25 member3-fpc9 132.0.0.26 member3-fpc10 132.0.0.27 member3-fpc11 132.0.0.28 member3-fpc12 132.0.0.29 member3-fpc13 132.0.0.30 member3-fpc14 132.0.0.31 member3-fpc15 132.0.0.6 lcc3-backup 132.0.0.16 lcc3-fpc0 132.0.0.17 lcc3-fpc1 132.0.0.18 lcc3-fpc2 132.0.0.19 lcc3-fpc3 132.0.0.20 lcc3-fpc4 132.0.0.21 lcc3-fpc5 132.0.0.22 lcc3-fpc6 132.0.0.23 lcc3-fpc7 132.0.0.48 lcc3-spmb0 132.0.0.49 lcc3-spmb1 #LCC 4 (or MEMBER 4 on Virtual Chassis) 133.0.0.1 lcc4-master member4-master member4 133.0.0.4 lcc4-re0 member4-re0 133.0.0.5 lcc4-re1 member4-re1 133.0.0.6 lcc4-backup member4-backup 133.0.0.16 member4-fpc0 133.0.0.17 member4-fpc1 133.0.0.18 member4-fpc2 133.0.0.19 member4-fpc3 133.0.0.20 member4-fpc4 133.0.0.21 member4-fpc5 133.0.0.22 member4-fpc6 133.0.0.23 member4-fpc7 133.0.0.24 member4-fpc8 133.0.0.25 member4-fpc9 133.0.0.26 member4-fpc10 133.0.0.27 member4-fpc11 133.0.0.28 member4-fpc12 133.0.0.29 member4-fpc13 133.0.0.30 member4-fpc14 133.0.0.31 member4-fpc15 133.0.0.6 lcc4-backup 133.0.0.16 lcc4-fpc0 133.0.0.17 lcc4-fpc1 133.0.0.18 lcc4-fpc2 133.0.0.19 lcc4-fpc3 133.0.0.20 lcc4-fpc4 133.0.0.21 lcc4-fpc5 133.0.0.22 lcc4-fpc6 133.0.0.23 lcc4-fpc7 133.0.0.48 lcc4-spmb0 133.0.0.49 lcc4-spmb1 #LCC 5 (or MEMBER 5 on Virtual Chassis) 134.0.0.1 lcc5-master member5-master member5 134.0.0.4 lcc5-re0 member5-re0 134.0.0.5 lcc5-re1 member5-re1 134.0.0.6 lcc5-backup member5-backup 134.0.0.16 member5-fpc0 134.0.0.17 member5-fpc1 134.0.0.18 member5-fpc2 134.0.0.19 member5-fpc3 134.0.0.20 member5-fpc4 134.0.0.21 member5-fpc5 134.0.0.22 member5-fpc6 134.0.0.23 member5-fpc7 134.0.0.24 member5-fpc8 134.0.0.25 member5-fpc9 134.0.0.26 member5-fpc10 134.0.0.27 member5-fpc11 134.0.0.28 member5-fpc12 134.0.0.29 member5-fpc13 134.0.0.30 member5-fpc14 134.0.0.31 member5-fpc15 134.0.0.6 lcc5-backup 134.0.0.16 lcc5-fpc0 134.0.0.17 lcc5-fpc1 134.0.0.18 lcc5-fpc2 134.0.0.19 lcc5-fpc3 134.0.0.20 lcc5-fpc4 134.0.0.21 lcc5-fpc5 134.0.0.22 lcc5-fpc6 134.0.0.23 lcc5-fpc7 134.0.0.48 lcc5-spmb0 134.0.0.49 lcc5-spmb1 #LCC 6 (or MEMBER 6 on Virtual Chassis) 135.0.0.1 lcc6-master member6-master member6 135.0.0.4 lcc6-re0 member6-re0 135.0.0.5 lcc6-re1 member6-re1 135.0.0.6 lcc6-backup member6-backup 135.0.0.16 member6-fpc0 135.0.0.17 member6-fpc1 135.0.0.18 member6-fpc2 135.0.0.19 member6-fpc3 135.0.0.20 member6-fpc4 135.0.0.21 member6-fpc5 135.0.0.22 member6-fpc6 135.0.0.23 member6-fpc7 135.0.0.24 member6-fpc8 135.0.0.25 member6-fpc9 135.0.0.26 member6-fpc10 135.0.0.27 member6-fpc11 135.0.0.28 member6-fpc12 135.0.0.29 member6-fpc13 135.0.0.30 member6-fpc14 135.0.0.31 member6-fpc15 135.0.0.6 lcc6-backup 135.0.0.16 lcc6-fpc0 135.0.0.17 lcc6-fpc1 135.0.0.18 lcc6-fpc2 135.0.0.19 lcc6-fpc3 135.0.0.20 lcc6-fpc4 135.0.0.21 lcc6-fpc5 135.0.0.22 lcc6-fpc6 135.0.0.23 lcc6-fpc7 135.0.0.48 lcc6-spmb0 135.0.0.49 lcc6-spmb1 #LCC 7 (or MEMBER 7 on Virtual Chassis) 136.0.0.1 lcc7-master member7-master member7 136.0.0.4 lcc7-re0 member7-re0 136.0.0.5 lcc7-re1 member7-re1 136.0.0.6 lcc7-backup member7-backup 136.0.0.16 member7-fpc0 136.0.0.17 member7-fpc1 136.0.0.18 member7-fpc2 136.0.0.19 member7-fpc3 136.0.0.20 member7-fpc4 136.0.0.21 member7-fpc5 136.0.0.22 member7-fpc6 136.0.0.23 member7-fpc7 136.0.0.24 member7-fpc8 136.0.0.25 member7-fpc9 136.0.0.26 member7-fpc10 136.0.0.27 member7-fpc11 136.0.0.28 member7-fpc12 136.0.0.29 member7-fpc13 136.0.0.30 member7-fpc14 136.0.0.31 member7-fpc15 136.0.0.6 lcc7-backup 136.0.0.16 lcc7-fpc0 136.0.0.17 lcc7-fpc1 136.0.0.18 lcc7-fpc2 136.0.0.19 lcc7-fpc3 136.0.0.20 lcc7-fpc4 136.0.0.21 lcc7-fpc5 136.0.0.22 lcc7-fpc6 136.0.0.23 lcc7-fpc7 136.0.0.48 lcc7-spmb0 136.0.0.49 lcc7-spmb1 137.0.0.6 lcc8-backup 137.0.0.16 lcc8-fpc0 137.0.0.17 lcc8-fpc1 137.0.0.18 lcc8-fpc2 137.0.0.19 lcc8-fpc3 137.0.0.20 lcc8-fpc4 137.0.0.21 lcc8-fpc5 137.0.0.22 lcc8-fpc6 137.0.0.23 lcc8-fpc7 137.0.0.48 lcc8-spmb0 137.0.0.49 lcc8-spmb1 #LCC 8 (or MEMBER 8 on Virtual Chassis) 137.0.0.1 lcc8-master member8-master member8 137.0.0.4 lcc8-re0 member8-re0 137.0.0.5 lcc8-re1 member8-re1 137.0.0.6 lcc8-backup member8-backup 137.0.0.16 member8-fpc0 137.0.0.17 member8-fpc1 137.0.0.18 member8-fpc2 137.0.0.19 member8-fpc3 137.0.0.20 member8-fpc4 137.0.0.21 member8-fpc5 137.0.0.22 member8-fpc6 137.0.0.23 member8-fpc7 137.0.0.24 member8-fpc8 137.0.0.25 member8-fpc9 137.0.0.26 member8-fpc10 137.0.0.27 member8-fpc11 137.0.0.28 member8-fpc12 137.0.0.29 member8-fpc13 137.0.0.30 member8-fpc14 137.0.0.31 member8-fpc15 138.0.0.6 lcc9-backup 138.0.0.16 lcc9-fpc0 138.0.0.17 lcc9-fpc1 138.0.0.18 lcc9-fpc2 138.0.0.19 lcc9-fpc3 138.0.0.20 lcc9-fpc4 138.0.0.21 lcc9-fpc5 138.0.0.22 lcc9-fpc6 138.0.0.23 lcc9-fpc7 138.0.0.48 lcc9-spmb0 138.0.0.49 lcc9-spmb1 #LCC 9 (or MEMBER 9 on Virtual Chassis) 138.0.0.1 lcc9-master member9-master member9 138.0.0.4 lcc9-re0 member9-re0 138.0.0.5 lcc9-re1 member9-re1 138.0.0.6 lcc9-backup member9-backup 138.0.0.16 member9-fpc0 138.0.0.17 member9-fpc1 138.0.0.18 member9-fpc2 138.0.0.19 member9-fpc3 138.0.0.20 member9-fpc4 138.0.0.21 member9-fpc5 138.0.0.22 member9-fpc6 138.0.0.23 member9-fpc7 138.0.0.24 member9-fpc8 138.0.0.25 member9-fpc9 138.0.0.26 member9-fpc10 138.0.0.27 member9-fpc11 138.0.0.28 member9-fpc12 138.0.0.29 member9-fpc13 138.0.0.30 member9-fpc14 138.0.0.31 member9-fpc15 139.0.0.6 lcc10-backup 139.0.0.16 lcc10-fpc0 139.0.0.17 lcc10-fpc1 139.0.0.18 lcc10-fpc2 139.0.0.19 lcc10-fpc3 139.0.0.20 lcc10-fpc4 139.0.0.21 lcc10-fpc5 139.0.0.22 lcc10-fpc6 139.0.0.23 lcc10-fpc7 139.0.0.48 lcc10-spmb0 139.0.0.49 lcc10-spmb1 #LCC 10 (or MEMBER 10 on Virtual Chassis) 139.0.0.1 lcc10-master member10-master 139.0.0.4 lcc10-re0 member10-re0 139.0.0.5 lcc10-re1 member10-re1 139.0.0.6 lcc10-backup member10-backup 139.0.0.16 member10-fpc0 139.0.0.17 member10-fpc1 139.0.0.18 member10-fpc2 139.0.0.19 member10-fpc3 139.0.0.20 member10-fpc4 139.0.0.21 member10-fpc5 139.0.0.22 member10-fpc6 139.0.0.23 member10-fpc7 139.0.0.24 member10-fpc8 139.0.0.25 member10-fpc9 139.0.0.26 member10-fpc10 139.0.0.27 member10-fpc11 139.0.0.28 member10-fpc12 139.0.0.29 member10-fpc13 139.0.0.30 member10-fpc14 139.0.0.31 member10-fpc15 140.0.0.6 lcc11-backup 140.0.0.16 lcc11-fpc0 140.0.0.17 lcc11-fpc1 140.0.0.18 lcc11-fpc2 140.0.0.19 lcc11-fpc3 140.0.0.20 lcc11-fpc4 140.0.0.21 lcc11-fpc5 140.0.0.22 lcc11-fpc6 140.0.0.23 lcc11-fpc7 140.0.0.48 lcc11-spmb0 140.0.0.49 lcc11-spmb1 #LCC 11 (or MEMBER 11 on Virtual Chassis) 140.0.0.1 lcc11-master member11-master 140.0.0.4 lcc11-re0 member11-re0 140.0.0.5 lcc11-re1 member11-re1 140.0.0.6 lcc11-backup member11-backup 140.0.0.16 member11-fpc0 140.0.0.17 member11-fpc1 140.0.0.18 member11-fpc2 140.0.0.19 member11-fpc3 140.0.0.20 member11-fpc4 140.0.0.21 member11-fpc5 140.0.0.22 member11-fpc6 140.0.0.23 member11-fpc7 140.0.0.24 member11-fpc8 140.0.0.25 member11-fpc9 140.0.0.26 member11-fpc10 140.0.0.27 member11-fpc11 140.0.0.28 member11-fpc12 140.0.0.29 member11-fpc13 140.0.0.30 member11-fpc14 140.0.0.31 member11-fpc15 141.0.0.6 lcc12-backup 141.0.0.16 lcc12-fpc0 141.0.0.17 lcc12-fpc1 141.0.0.18 lcc12-fpc2 141.0.0.19 lcc12-fpc3 141.0.0.20 lcc12-fpc4 141.0.0.21 lcc12-fpc5 141.0.0.22 lcc12-fpc6 141.0.0.23 lcc12-fpc7 141.0.0.48 lcc12-spmb0 141.0.0.49 lcc12-spmb1 #LCC 12 (or MEMBER 12 on Virtual Chassis) 141.0.0.1 lcc12-master member12-master 141.0.0.4 lcc12-re0 member12-re0 141.0.0.5 lcc12-re1 member12-re1 141.0.0.6 lcc12-backup member12-backup 141.0.0.16 member12-fpc0 141.0.0.17 member12-fpc1 141.0.0.18 member12-fpc2 141.0.0.19 member12-fpc3 141.0.0.20 member12-fpc4 141.0.0.21 member12-fpc5 141.0.0.22 member12-fpc6 141.0.0.23 member12-fpc7 141.0.0.24 member12-fpc8 141.0.0.25 member12-fpc9 141.0.0.26 member12-fpc10 141.0.0.27 member12-fpc11 141.0.0.28 member12-fpc12 141.0.0.29 member12-fpc13 141.0.0.30 member12-fpc14 141.0.0.31 member12-fpc15 142.0.0.6 lcc13-backup 142.0.0.16 lcc13-fpc0 142.0.0.17 lcc13-fpc1 142.0.0.18 lcc13-fpc2 142.0.0.19 lcc13-fpc3 142.0.0.20 lcc13-fpc4 142.0.0.21 lcc13-fpc5 142.0.0.22 lcc13-fpc6 142.0.0.23 lcc13-fpc7 142.0.0.48 lcc13-spmb0 142.0.0.49 lcc13-spmb1 #LCC 13 (or MEMBER 13 on Virtual Chassis) 142.0.0.1 lcc13-master member13-master 142.0.0.4 lcc13-re0 member13-re0 142.0.0.5 lcc13-re1 member13-re1 142.0.0.6 lcc13-backup member13-backup 142.0.0.16 member13-fpc0 142.0.0.17 member13-fpc1 142.0.0.18 member13-fpc2 142.0.0.19 member13-fpc3 142.0.0.20 member13-fpc4 142.0.0.21 member13-fpc5 142.0.0.22 member13-fpc6 142.0.0.23 member13-fpc7 142.0.0.24 member13-fpc8 142.0.0.25 member13-fpc9 142.0.0.26 member13-fpc10 142.0.0.27 member13-fpc11 142.0.0.28 member13-fpc12 142.0.0.29 member13-fpc13 142.0.0.30 member13-fpc14 142.0.0.31 member13-fpc15 143.0.0.6 lcc14-backup 143.0.0.16 lcc14-fpc0 143.0.0.17 lcc14-fpc1 143.0.0.18 lcc14-fpc2 143.0.0.19 lcc14-fpc3 143.0.0.20 lcc14-fpc4 143.0.0.21 lcc14-fpc5 143.0.0.22 lcc14-fpc6 143.0.0.23 lcc14-fpc7 143.0.0.48 lcc14-spmb0 143.0.0.49 lcc14-spmb1 #LCC 14 (or MEMBER 14 on Virtual Chassis) 143.0.0.1 lcc14-master member14-master 143.0.0.4 lcc14-re0 member14-re0 143.0.0.5 lcc14-re1 member14-re1 143.0.0.6 lcc14-backup member14-backup 143.0.0.16 member14-fpc0 143.0.0.17 member14-fpc1 143.0.0.18 member14-fpc2 143.0.0.19 member14-fpc3 143.0.0.20 member14-fpc4 143.0.0.21 member14-fpc5 143.0.0.22 member14-fpc6 143.0.0.23 member14-fpc7 143.0.0.24 member14-fpc8 143.0.0.25 member14-fpc9 143.0.0.26 member14-fpc10 143.0.0.27 member14-fpc11 143.0.0.28 member14-fpc12 143.0.0.29 member14-fpc13 143.0.0.30 member14-fpc14 143.0.0.31 member14-fpc15 144.0.0.6 lcc15-backup 144.0.0.16 lcc15-fpc0 144.0.0.17 lcc15-fpc1 144.0.0.18 lcc15-fpc2 144.0.0.19 lcc15-fpc3 144.0.0.20 lcc15-fpc4 144.0.0.21 lcc15-fpc5 144.0.0.22 lcc15-fpc6 144.0.0.23 lcc15-fpc7 144.0.0.48 lcc15-spmb0 144.0.0.49 lcc15-spmb1 #LCC 15 (or MEMBER 15 on Virtual Chassis) 144.0.0.1 lcc15-master member15-master 144.0.0.4 lcc15-re0 member15-re0 144.0.0.5 lcc15-re1 member15-re1 144.0.0.6 lcc15-backup member15-backup 144.0.0.16 member15-fpc0 144.0.0.17 member15-fpc1 144.0.0.18 member15-fpc2 144.0.0.19 member15-fpc3 144.0.0.20 member15-fpc4 144.0.0.21 member15-fpc5 144.0.0.22 member15-fpc6 144.0.0.23 member15-fpc7 144.0.0.24 member15-fpc8 144.0.0.25 member15-fpc9 144.0.0.26 member15-fpc10 144.0.0.27 member15-fpc11 144.0.0.28 member15-fpc12 144.0.0.29 member15-fpc13 144.0.0.30 member15-fpc14 144.0.0.31 member15-fpc15 #VIRT SC 161.0.0.1 sc-master 161.0.0.4 sc-re0 161.0.0.5 sc-re1 161.0.0.6 sc-backup #SFC 0 162.0.0.1 sfc0-master 162.0.0.4 sfc0-re0 162.0.0.5 sfc0-re1 162.0.0.6 sfc0-backup 162.0.0.48 sfc0-spmb0 162.0.0.49 sfc0-spmb1 #SFC 1 163.0.0.1 sfc1-master 163.0.0.4 sfc1-re0 163.0.0.5 sfc1-re1 163.0.0.6 sfc1-backup 163.0.0.48 sfc1-spmb0 163.0.0.49 sfc1-spmb1 #SFC 2 164.0.0.1 sfc2-master 164.0.0.4 sfc2-re0 164.0.0.5 sfc2-re1 164.0.0.6 sfc2-backup 164.0.0.48 sfc2-spmb0 164.0.0.49 sfc2-spmb1 #SFC 3 165.0.0.1 sfc3-master 165.0.0.4 sfc3-re0 165.0.0.5 sfc3-re1 165.0.0.6 sfc3-backup 165.0.0.48 sfc3-spmb0 165.0.0.49 sfc3-spmb1 #SFC 4 166.0.0.1 sfc4-master 166.0.0.4 sfc4-re0 166.0.0.5 sfc4-re1 166.0.0.6 sfc4-backup 166.0.0.48 sfc4-spmb0 166.0.0.49 sfc4-spmb1 #JCS 190.0.0.1 psd%d-master 190.0.0.4 psd%d-re0 190.0.0.5 psd%d-re1 190.0.0.6 psd%d-backup # Old IP address format (RT_IRS_V2) # # Single Chassis Hostnames # 10.0.0.1 master 10.0.0.4 re0 10.0.0.5 re1 # # Multi Chassis Hostnames # #SCC 10.16.0.1 scc-master 10.16.0.4 scc-re0 10.16.0.5 scc-re1 #LCC 0 10.1.0.1 lcc0-master member0-master 10.1.0.4 lcc0-re0 member0-re0 10.1.0.5 lcc0-re1 member0-re1 10.1.0.6 lcc0-backup member0-backup #LCC 1 10.2.0.1 lcc1-master member1-master 10.2.0.4 lcc1-re0 member1-re0 10.2.0.5 lcc1-re1 member1-re1 10.2.0.6 lcc1-backup member1-backup #LCC 2 10.3.0.1 lcc2-master member2-master 10.3.0.4 lcc2-re0 member2-re0 10.3.0.5 lcc2-re1 member2-re1 10.3.0.6 lcc2-backup member2-backup #LCC 3 10.4.0.1 lcc3-master member3-master 10.4.0.4 lcc3-re0 member3-re0 10.4.0.5 lcc3-re1 member3-re1 10.4.0.6 lcc3-backup member3-backup #LCC 4 10.5.0.1 lcc4-master member4-master 10.5.0.4 lcc4-re0 member4-re0 10.5.0.5 lcc4-re1 member4-re1 10.5.0.6 lcc4-backup member4-backup #LCC 5 10.6.0.1 lcc5-master member5-master 10.6.0.4 lcc5-re0 member5-re0 10.6.0.5 lcc5-re1 member5-re1 10.6.0.6 lcc5-backup member5-backup #LCC 6 10.7.0.1 lcc6-master member6-master 10.7.0.4 lcc6-re0 member6-re0 10.7.0.5 lcc6-re1 member6-re1 10.7.0.6 lcc6-backup member6-backup #LCC 7 10.8.0.1 lcc7-master member7-master 10.8.0.4 lcc7-re0 member7-re0 10.8.0.5 lcc7-re1 member7-re1 10.8.0.6 lcc7-backup member7-backup #LCC 8 10.9.0.1 lcc8-master member8-master 10.9.0.4 lcc8-re0 member8-re0 10.9.0.5 lcc8-re1 member8-re1 10.9.0.6 lcc8-backup member8-backup #LCC 9 10.10.0.1 lcc9-master member9-master 10.10.0.4 lcc9-re0 member9-re0 10.10.0.5 lcc9-re1 member9-re1 10.10.0.6 lcc9-backup member9-backup #LCC 10 10.11.0.1 lcc10-master member10-master 10.11.0.4 lcc10-re0 member10-re0 10.11.0.5 lcc10-re1 member10-re1 10.11.0.6 lcc10-backup member10-backup #LCC 11 10.12.0.1 lcc11-master member11-master 10.12.0.4 lcc11-re0 member11-re0 10.12.0.5 lcc11-re1 member11-re1 10.12.0.6 lcc11-backup member11-backup #LCC 12 10.13.0.1 lcc12-master member12-master 10.13.0.4 lcc12-re0 member12-re0 10.13.0.5 lcc12-re1 member12-re1 10.13.0.6 lcc12-backup member12-backup #LCC 13 10.14.0.1 lcc13-master member13-master 10.14.0.4 lcc13-re0 member13-re0 10.14.0.5 lcc13-re1 member13-re1 10.14.0.6 lcc13-backup member13-backup #LCC 14 10.15.0.1 lcc14-master member14-master 10.15.0.4 lcc14-re0 member14-re0 10.15.0.5 lcc14-re1 member14-re1 10.15.0.6 lcc14-backup member14-backup #LCC 15 10.16.0.1 lcc15-master member15-master 10.16.0.4 lcc15-re0 member15-re0 10.16.0.5 lcc15-re1 member15-re1 10.16.0.6 lcc15-backup member15-backup #SFC 0 10.34.0.1 sfc0-master 10.34.0.4 sfc0-re0 10.34.0.5 sfc0-re1 #SFC 1 10.35.0.1 sfc1-master 10.35.0.4 sfc1-re0 10.35.0.5 sfc1-re1 #SFC 2 10.36.0.1 sfc2-master 10.36.0.4 sfc2-re0 10.36.0.5 sfc2-re1 #SFC 3 10.37.0.1 sfc3-master 10.37.0.4 sfc3-re0 10.37.0.5 sfc3-re1 #SFC 4 10.38.0.1 sfc4-master 10.38.0.4 sfc4-re0 10.38.0.5 sfc4-re1 # End of internal names {master:0} py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/personality_ex_get-interface-information.xml000066400000000000000000000120541475361112400323170ustar00rootroot00000000000000 bme0.32768 up up inet 128.0.0.1/2 128.0.0.16/2 128.0.0.32/2 tnp 0x10 py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/personality_ex_get-route-engine-information.xml000066400000000000000000000026031475361112400327570ustar00rootroot00000000000000 0 master OK 38 degrees C / 100 degrees F 38 degrees C / 100 degrees F 1024 66 68 0 32 0 0 EX4200-48T, 8 POE BP0212121453 2016-07-01 18:04:17 PDT 183 days, 20 hours, 27 minutes, 41 seconds 0x1:power cycle/failure 1.98 2.16 2.20 py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/personality_ex_get-virtual-chassis-information.xml000066400000000000000000000021621475361112400334770ustar00rootroot00000000000000 33c1.0dbd.447f Enabled Prsnt 0 (FPC 0) BP0212121453 ex4200-48t 128 N Master* 1 1 py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/personality_m_command.xml000066400000000000000000000314271475361112400265220ustar00rootroot00000000000000 re0 dalian m320 m320 14.1R1.10 junos JUNOS Base OS boot [14.1R1.10] jbase JUNOS Base OS Software Suite [14.1R1.10] jkernel JUNOS Kernel Software Suite [14.1R1.10] jcrypto JUNOS Crypto Software Suite [14.1R1.10] jpfe-common JUNOS Packet Forwarding Engine Support (M/T/EX Common) [14.1R1.10] jpfe JUNOS Packet Forwarding Engine Support (M320) [14.1R1.10] jdocs JUNOS Online Documentation [14.1R1.10] jservices-aacl JUNOS Services AACL Container package [14.1R1.10] jservices-alg JUNOS Services Application Level Gateways [14.1R1.10] jservices-appid JUNOS AppId Services [14.1R1.10] jservices-bgf JUNOS Border Gateway Function package [14.1R1.10] jservices-cpcd JUNOS Services Captive Portal and Content Delivery Container package [14.1R1.10] jservices-hcm JUNOS Services HTTP Content Management package [14.1R1.10] jservices-idp JUNOS IDP Services [14.1R1.10] jservices-jflow JUNOS Services Jflow Container package [14.1R1.10] jservices-llpdf JUNOS Services LL-PDF Container package [14.1R1.10] jservices-mobile JUNOS Services MobileNext Software package [14.1R1.10] jservices-mss JUNOS Services Mobile Subscriber Service Container package [14.1R1.10] jservices-nat JUNOS Services NAT [14.1R1.10] jservices-ptsp JUNOS Services PTSP Container package [14.1R1.10] jservices-rpm JUNOS Services RPM [14.1R1.10] jservices-sfw JUNOS Services Stateful Firewall [14.1R1.10] jservices-voice JUNOS Voice Services Container package [14.1R1.10] jservices-crypto-base JUNOS Services Crypto [14.1R1.10] jservices-ssl JUNOS Services SSL [14.1R1.10] jservices-ipsec JUNOS Services IPSec [14.1R1.10] jplatform JUNOS platform Software Suite [14.1R1.10] jroute JUNOS Routing Software Suite [14.1R1.10] jruntime JUNOS Runtime Software Suite [14.1R1.10] py-base-i386 JUNOS py-base-i386 [14.1R1.10] re1 dalian1 m320 m320 junos JUNOS Base OS boot [12.3R3.4] jbase JUNOS Base OS Software Suite [12.3R3.4] jkernel JUNOS Kernel Software Suite [12.3R3.4] jcrypto JUNOS Crypto Software Suite [12.3R3.4] jpfe-common JUNOS Packet Forwarding Engine Support (M/T/EX Common) [12.3R3.4] jpfe JUNOS Packet Forwarding Engine Support (M320) [12.3R3.4] jdocs JUNOS Online Documentation [12.3R3.4] jservices-aacl JUNOS Services AACL Container package [12.3R3.4] jservices-alg JUNOS Services Application Level Gateways [12.3R3.4] jservices-appid JUNOS AppId Services [12.3R3.4] jservices-bgf JUNOS Border Gateway Function package [12.3R3.4] jservices-cpcd JUNOS Services Captive Portal and Content Delivery Container package [12.3R3.4] jservices-hcm JUNOS Services HTTP Content Management package [12.3R3.4] jservices-idp JUNOS IDP Services [12.3R3.4] jservices-llpdf JUNOS Services LL-PDF Container package [12.3R3.4] jservices-nat JUNOS Services NAT [12.3R3.4] jservices-ptsp JUNOS Services PTSP Container package [12.3R3.4] jservices-rpm JUNOS Services RPM [12.3R3.4] jservices-sfw JUNOS Services Stateful Firewall [12.3R3.4] jservices-voice JUNOS Voice Services Container package [12.3R3.4] jservices-example JUNOS Services Example Container package [12.3R3.4] jservices-crypto-base JUNOS Services Crypto [12.3R3.4] jservices-ssl JUNOS Services SSL [12.3R3.4] jservices-ipsec JUNOS Services IPSec [12.3R3.4] jruntime JUNOS Runtime Software Suite [12.3R3.4] jplatform JUNOS platform Software Suite [12.3R3.4] jroute JUNOS Routing Software Suite [12.3R3.4] jtools JUNOS Support Tools Package [12.3-20140911.0] systestelf.pkg labpkg [7.0] py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/personality_m_file-show.xml000066400000000000000000000757421475361112400270110ustar00rootroot00000000000000 #$Id: hosts.junos,v 1.7.72.1 2009-04-16 05:22:03 kdickman Exp $ # # File mapping AF_INET/AF_INET6 hostnames for REs on Single and Multichassis # systems # # This file is looked at before /etc/hosts by gethostbyname(3), # gethostbyname2(3) and getaddrinfo(3) # # The IP addresses in this file are only used for communication between REs # over the Internal Routing Instances # # WARNING: # # The names in this file are effectively reserved for internal use. # # New IP address format (RT_IRS_V3) # # Single Chassis Hostnames # 128.0.0.1 master 128.0.0.1 node 128.0.0.1 fwdd 128.0.0.1 member 128.0.0.1 pfem 128.0.0.2 scb 128.0.0.2 sbr 128.0.0.2 ssb 128.0.0.2 feb 128.0.0.2 cfeb0 128.0.0.2 cfeb 128.0.0.2 cpp0 128.0.0.3 cfeb1 128.0.0.3 cpp1 128.0.0.4 re0 128.0.0.5 re1 128.0.0.6 backup 128.0.0.8 sfm0 128.0.0.9 sfm1 128.0.0.10 sfm2 128.0.0.16 fpc0 128.0.0.17 fpc1 128.0.0.18 fpc2 128.0.0.19 fpc3 128.0.0.20 fpc4 128.0.0.21 fpc5 128.0.0.22 fpc6 128.0.0.23 fpc7 128.0.0.24 fpc8 128.0.0.25 fpc9 128.0.0.26 fpc10 128.0.0.27 fpc11 128.0.0.28 fpc12 128.0.0.29 fpc13 128.0.0.30 fpc14 128.0.0.31 fpc15 128.0.0.32 feb0 128.0.0.32 fpc16 128.0.0.33 feb1 128.0.0.33 fpc17 128.0.0.34 feb2 128.0.0.34 fpc18 128.0.0.35 feb3 128.0.0.35 fpc19 128.0.0.36 feb4 128.0.0.37 feb5 128.0.0.48 spmb0 128.0.0.49 spmb1 128.0.0.50 tfeb0 128.0.0.50 afeb0 128.0.0.53 esc0 128.0.0.54 esc1 128.0.0.55 esc0-ipmi 128.0.0.56 esc1-ipmi 128.0.1.16 fpc0.pic0 128.0.1.17 fpc1.pic0 128.0.1.18 fpc2.pic0 128.0.1.19 fpc3.pic0 128.0.1.20 fpc4.pic0 128.0.1.21 fpc5.pic0 128.0.1.22 fpc6.pic0 128.0.1.23 fpc7.pic0 128.0.1.24 fpc8.pic0 128.0.1.25 fpc9.pic0 128.0.1.26 fpc10.pic0 128.0.1.27 fpc11.pic0 128.0.1.28 fpc12.pic0 128.0.1.29 fpc13.pic0 128.0.1.30 fpc14.pic0 128.0.1.31 fpc15.pic0 128.0.2.16 fpc0.pic1 128.0.2.17 fpc1.pic1 128.0.2.18 fpc2.pic1 128.0.2.19 fpc3.pic1 128.0.2.20 fpc4.pic1 128.0.2.21 fpc5.pic1 128.0.2.22 fpc6.pic1 128.0.2.23 fpc7.pic1 128.0.2.24 fpc8.pic1 128.0.2.25 fpc9.pic1 128.0.2.26 fpc10.pic1 128.0.2.27 fpc11.pic1 128.0.2.28 fpc12.pic1 128.0.2.29 fpc13.pic1 128.0.2.30 fpc14.pic1 128.0.2.31 fpc15.pic1 128.0.3.16 fpc0.pic2 128.0.3.17 fpc1.pic2 128.0.3.18 fpc2.pic2 128.0.3.19 fpc3.pic2 128.0.3.20 fpc4.pic2 128.0.3.21 fpc5.pic2 128.0.3.22 fpc6.pic2 128.0.3.23 fpc7.pic2 128.0.3.24 fpc8.pic2 128.0.3.25 fpc9.pic2 128.0.3.26 fpc10.pic2 128.0.3.27 fpc11.pic2 128.0.3.28 fpc12.pic2 128.0.3.29 fpc13.pic2 128.0.3.30 fpc14.pic2 128.0.3.31 fpc15.pic2 128.0.4.16 fpc0.pic3 128.0.4.17 fpc1.pic3 128.0.4.18 fpc2.pic3 128.0.4.19 fpc3.pic3 128.0.4.20 fpc4.pic3 128.0.4.21 fpc5.pic3 128.0.4.22 fpc6.pic3 128.0.4.23 fpc7.pic3 128.0.4.24 fpc8.pic3 128.0.4.25 fpc9.pic3 128.0.4.26 fpc10.pic3 128.0.4.27 fpc11.pic3 128.0.4.28 fpc12.pic3 128.0.4.29 fpc13.pic3 128.0.4.30 fpc14.pic3 128.0.4.31 fpc15.pic3 # # DCF-Root Hostname # 128.0.130.2 dcf-root # # Multi Chassis Hostnames # #SCC 144.0.0.1 scc-master 144.0.0.4 scc-re0 144.0.0.5 scc-re1 144.0.0.6 scc-backup 144.0.0.48 scc-spmb0 144.0.0.49 scc-spmb1 #LCC 0 (or MEMBER 0 on Virtual Chassis) 129.0.0.1 lcc0-master member0-master member0 129.0.0.4 lcc0-re0 member0-re0 129.0.0.5 lcc0-re1 member0-re1 129.0.0.6 lcc0-backup member0-backup 129.0.0.16 member0-fpc0 129.0.0.17 member0-fpc1 129.0.0.18 member0-fpc2 129.0.0.19 member0-fpc3 129.0.0.20 member0-fpc4 129.0.0.21 member0-fpc5 129.0.0.22 member0-fpc6 129.0.0.23 member0-fpc7 129.0.0.24 member0-fpc8 129.0.0.25 member0-fpc9 129.0.0.26 member0-fpc10 129.0.0.27 member0-fpc11 129.0.0.28 member0-fpc12 129.0.0.29 member0-fpc13 129.0.0.30 member0-fpc14 129.0.0.31 member0-fpc15 129.0.0.6 lcc0-backup 129.0.0.16 lcc0-fpc0 129.0.0.17 lcc0-fpc1 129.0.0.18 lcc0-fpc2 129.0.0.19 lcc0-fpc3 129.0.0.20 lcc0-fpc4 129.0.0.21 lcc0-fpc5 129.0.0.22 lcc0-fpc6 129.0.0.23 lcc0-fpc7 129.0.0.48 lcc0-spmb0 129.0.0.49 lcc0-spmb1 #LCC 1 (or MEMBER 1 on Virtual Chassis) 130.0.0.1 lcc1-master member1-master member1 130.0.0.4 lcc1-re0 member1-re0 130.0.0.5 lcc1-re1 member1-re1 130.0.0.6 lcc1-backup member1-backup 130.0.0.16 member1-fpc0 130.0.0.17 member1-fpc1 130.0.0.18 member1-fpc2 130.0.0.19 member1-fpc3 130.0.0.20 member1-fpc4 130.0.0.21 member1-fpc5 130.0.0.22 member1-fpc6 130.0.0.23 member1-fpc7 130.0.0.24 member1-fpc8 130.0.0.25 member1-fpc9 130.0.0.26 member1-fpc10 130.0.0.27 member1-fpc11 130.0.0.28 member1-fpc12 130.0.0.29 member1-fpc13 130.0.0.30 member1-fpc14 130.0.0.31 member1-fpc15 130.0.0.6 lcc1-backup 130.0.0.16 lcc1-fpc0 130.0.0.17 lcc1-fpc1 130.0.0.18 lcc1-fpc2 130.0.0.19 lcc1-fpc3 130.0.0.20 lcc1-fpc4 130.0.0.21 lcc1-fpc5 130.0.0.22 lcc1-fpc6 130.0.0.23 lcc1-fpc7 130.0.0.48 lcc1-spmb0 130.0.0.49 lcc1-spmb1 #LCC 2 (or MEMBER 2 on Virtual Chassis) 131.0.0.1 lcc2-master member2-master member2 131.0.0.4 lcc2-re0 member2-re0 131.0.0.5 lcc2-re1 member2-re1 131.0.0.6 lcc2-backup member2-backup 131.0.0.16 member2-fpc0 131.0.0.17 member2-fpc1 131.0.0.18 member2-fpc2 131.0.0.19 member2-fpc3 131.0.0.20 member2-fpc4 131.0.0.21 member2-fpc5 131.0.0.22 member2-fpc6 131.0.0.23 member2-fpc7 131.0.0.24 member2-fpc8 131.0.0.25 member2-fpc9 131.0.0.26 member2-fpc10 131.0.0.27 member2-fpc11 131.0.0.28 member2-fpc12 131.0.0.29 member2-fpc13 131.0.0.30 member2-fpc14 131.0.0.31 member2-fpc15 131.0.0.6 lcc2-backup 131.0.0.16 lcc2-fpc0 131.0.0.17 lcc2-fpc1 131.0.0.18 lcc2-fpc2 131.0.0.19 lcc2-fpc3 131.0.0.20 lcc2-fpc4 131.0.0.21 lcc2-fpc5 131.0.0.22 lcc2-fpc6 131.0.0.23 lcc2-fpc7 131.0.0.48 lcc2-spmb0 131.0.0.49 lcc20-spmb1 #LCC 3 (or MEMBER 3 on Virtual Chassis) 132.0.0.1 lcc3-master member3-master member3 132.0.0.4 lcc3-re0 member3-re0 132.0.0.5 lcc3-re1 member3-re1 132.0.0.6 lcc3-backup member3-backup 132.0.0.16 member3-fpc0 132.0.0.17 member3-fpc1 132.0.0.18 member3-fpc2 132.0.0.19 member3-fpc3 132.0.0.20 member3-fpc4 132.0.0.21 member3-fpc5 132.0.0.22 member3-fpc6 132.0.0.23 member3-fpc7 132.0.0.24 member3-fpc8 132.0.0.25 member3-fpc9 132.0.0.26 member3-fpc10 132.0.0.27 member3-fpc11 132.0.0.28 member3-fpc12 132.0.0.29 member3-fpc13 132.0.0.30 member3-fpc14 132.0.0.31 member3-fpc15 132.0.0.6 lcc3-backup 132.0.0.16 lcc3-fpc0 132.0.0.17 lcc3-fpc1 132.0.0.18 lcc3-fpc2 132.0.0.19 lcc3-fpc3 132.0.0.20 lcc3-fpc4 132.0.0.21 lcc3-fpc5 132.0.0.22 lcc3-fpc6 132.0.0.23 lcc3-fpc7 132.0.0.48 lcc3-spmb0 132.0.0.49 lcc3-spmb1 #LCC 4 (or MEMBER 4 on Virtual Chassis) 133.0.0.1 lcc4-master member4-master member4 133.0.0.4 lcc4-re0 member4-re0 133.0.0.5 lcc4-re1 member4-re1 133.0.0.6 lcc4-backup member4-backup 133.0.0.16 member4-fpc0 133.0.0.17 member4-fpc1 133.0.0.18 member4-fpc2 133.0.0.19 member4-fpc3 133.0.0.20 member4-fpc4 133.0.0.21 member4-fpc5 133.0.0.22 member4-fpc6 133.0.0.23 member4-fpc7 133.0.0.24 member4-fpc8 133.0.0.25 member4-fpc9 133.0.0.26 member4-fpc10 133.0.0.27 member4-fpc11 133.0.0.28 member4-fpc12 133.0.0.29 member4-fpc13 133.0.0.30 member4-fpc14 133.0.0.31 member4-fpc15 133.0.0.6 lcc4-backup 133.0.0.16 lcc4-fpc0 133.0.0.17 lcc4-fpc1 133.0.0.18 lcc4-fpc2 133.0.0.19 lcc4-fpc3 133.0.0.20 lcc4-fpc4 133.0.0.21 lcc4-fpc5 133.0.0.22 lcc4-fpc6 133.0.0.23 lcc4-fpc7 133.0.0.48 lcc4-spmb0 133.0.0.49 lcc4-spmb1 #LCC 5 (or MEMBER 5 on Virtual Chassis) 134.0.0.1 lcc5-master member5-master member5 134.0.0.4 lcc5-re0 member5-re0 134.0.0.5 lcc5-re1 member5-re1 134.0.0.6 lcc5-backup member5-backup 134.0.0.16 member5-fpc0 134.0.0.17 member5-fpc1 134.0.0.18 member5-fpc2 134.0.0.19 member5-fpc3 134.0.0.20 member5-fpc4 134.0.0.21 member5-fpc5 134.0.0.22 member5-fpc6 134.0.0.23 member5-fpc7 134.0.0.24 member5-fpc8 134.0.0.25 member5-fpc9 134.0.0.26 member5-fpc10 134.0.0.27 member5-fpc11 134.0.0.28 member5-fpc12 134.0.0.29 member5-fpc13 134.0.0.30 member5-fpc14 134.0.0.31 member5-fpc15 134.0.0.6 lcc5-backup 134.0.0.16 lcc5-fpc0 134.0.0.17 lcc5-fpc1 134.0.0.18 lcc5-fpc2 134.0.0.19 lcc5-fpc3 134.0.0.20 lcc5-fpc4 134.0.0.21 lcc5-fpc5 134.0.0.22 lcc5-fpc6 134.0.0.23 lcc5-fpc7 134.0.0.48 lcc5-spmb0 134.0.0.49 lcc5-spmb1 #LCC 6 (or MEMBER 6 on Virtual Chassis) 135.0.0.1 lcc6-master member6-master member6 135.0.0.4 lcc6-re0 member6-re0 135.0.0.5 lcc6-re1 member6-re1 135.0.0.6 lcc6-backup member6-backup 135.0.0.16 member6-fpc0 135.0.0.17 member6-fpc1 135.0.0.18 member6-fpc2 135.0.0.19 member6-fpc3 135.0.0.20 member6-fpc4 135.0.0.21 member6-fpc5 135.0.0.22 member6-fpc6 135.0.0.23 member6-fpc7 135.0.0.24 member6-fpc8 135.0.0.25 member6-fpc9 135.0.0.26 member6-fpc10 135.0.0.27 member6-fpc11 135.0.0.28 member6-fpc12 135.0.0.29 member6-fpc13 135.0.0.30 member6-fpc14 135.0.0.31 member6-fpc15 135.0.0.6 lcc6-backup 135.0.0.16 lcc6-fpc0 135.0.0.17 lcc6-fpc1 135.0.0.18 lcc6-fpc2 135.0.0.19 lcc6-fpc3 135.0.0.20 lcc6-fpc4 135.0.0.21 lcc6-fpc5 135.0.0.22 lcc6-fpc6 135.0.0.23 lcc6-fpc7 135.0.0.48 lcc6-spmb0 135.0.0.49 lcc6-spmb1 #LCC 7 (or MEMBER 7 on Virtual Chassis) 136.0.0.1 lcc7-master member7-master member7 136.0.0.4 lcc7-re0 member7-re0 136.0.0.5 lcc7-re1 member7-re1 136.0.0.6 lcc7-backup member7-backup 136.0.0.16 member7-fpc0 136.0.0.17 member7-fpc1 136.0.0.18 member7-fpc2 136.0.0.19 member7-fpc3 136.0.0.20 member7-fpc4 136.0.0.21 member7-fpc5 136.0.0.22 member7-fpc6 136.0.0.23 member7-fpc7 136.0.0.24 member7-fpc8 136.0.0.25 member7-fpc9 136.0.0.26 member7-fpc10 136.0.0.27 member7-fpc11 136.0.0.28 member7-fpc12 136.0.0.29 member7-fpc13 136.0.0.30 member7-fpc14 136.0.0.31 member7-fpc15 136.0.0.6 lcc7-backup 136.0.0.16 lcc7-fpc0 136.0.0.17 lcc7-fpc1 136.0.0.18 lcc7-fpc2 136.0.0.19 lcc7-fpc3 136.0.0.20 lcc7-fpc4 136.0.0.21 lcc7-fpc5 136.0.0.22 lcc7-fpc6 136.0.0.23 lcc7-fpc7 136.0.0.48 lcc7-spmb0 136.0.0.49 lcc7-spmb1 137.0.0.6 lcc8-backup 137.0.0.16 lcc8-fpc0 137.0.0.17 lcc8-fpc1 137.0.0.18 lcc8-fpc2 137.0.0.19 lcc8-fpc3 137.0.0.20 lcc8-fpc4 137.0.0.21 lcc8-fpc5 137.0.0.22 lcc8-fpc6 137.0.0.23 lcc8-fpc7 137.0.0.48 lcc8-spmb0 137.0.0.49 lcc8-spmb1 #LCC 8 (or MEMBER 8 on Virtual Chassis) 137.0.0.1 lcc8-master member8-master member8 137.0.0.4 lcc8-re0 member8-re0 137.0.0.5 lcc8-re1 member8-re1 137.0.0.6 lcc8-backup member8-backup 137.0.0.16 member8-fpc0 137.0.0.17 member8-fpc1 137.0.0.18 member8-fpc2 137.0.0.19 member8-fpc3 137.0.0.20 member8-fpc4 137.0.0.21 member8-fpc5 137.0.0.22 member8-fpc6 137.0.0.23 member8-fpc7 137.0.0.24 member8-fpc8 137.0.0.25 member8-fpc9 137.0.0.26 member8-fpc10 137.0.0.27 member8-fpc11 137.0.0.28 member8-fpc12 137.0.0.29 member8-fpc13 137.0.0.30 member8-fpc14 137.0.0.31 member8-fpc15 138.0.0.6 lcc9-backup 138.0.0.16 lcc9-fpc0 138.0.0.17 lcc9-fpc1 138.0.0.18 lcc9-fpc2 138.0.0.19 lcc9-fpc3 138.0.0.20 lcc9-fpc4 138.0.0.21 lcc9-fpc5 138.0.0.22 lcc9-fpc6 138.0.0.23 lcc9-fpc7 138.0.0.48 lcc9-spmb0 138.0.0.49 lcc9-spmb1 #LCC 9 (or MEMBER 9 on Virtual Chassis) 138.0.0.1 lcc9-master member9-master member9 138.0.0.4 lcc9-re0 member9-re0 138.0.0.5 lcc9-re1 member9-re1 138.0.0.6 lcc9-backup member9-backup 138.0.0.16 member9-fpc0 138.0.0.17 member9-fpc1 138.0.0.18 member9-fpc2 138.0.0.19 member9-fpc3 138.0.0.20 member9-fpc4 138.0.0.21 member9-fpc5 138.0.0.22 member9-fpc6 138.0.0.23 member9-fpc7 138.0.0.24 member9-fpc8 138.0.0.25 member9-fpc9 138.0.0.26 member9-fpc10 138.0.0.27 member9-fpc11 138.0.0.28 member9-fpc12 138.0.0.29 member9-fpc13 138.0.0.30 member9-fpc14 138.0.0.31 member9-fpc15 139.0.0.6 lcc10-backup 139.0.0.16 lcc10-fpc0 139.0.0.17 lcc10-fpc1 139.0.0.18 lcc10-fpc2 139.0.0.19 lcc10-fpc3 139.0.0.20 lcc10-fpc4 139.0.0.21 lcc10-fpc5 139.0.0.22 lcc10-fpc6 139.0.0.23 lcc10-fpc7 139.0.0.48 lcc10-spmb0 139.0.0.49 lcc10-spmb1 #LCC 10 (or MEMBER 10 on Virtual Chassis) 139.0.0.1 lcc10-master member10-master 139.0.0.4 lcc10-re0 member10-re0 139.0.0.5 lcc10-re1 member10-re1 139.0.0.6 lcc10-backup member10-backup 139.0.0.16 member10-fpc0 139.0.0.17 member10-fpc1 139.0.0.18 member10-fpc2 139.0.0.19 member10-fpc3 139.0.0.20 member10-fpc4 139.0.0.21 member10-fpc5 139.0.0.22 member10-fpc6 139.0.0.23 member10-fpc7 139.0.0.24 member10-fpc8 139.0.0.25 member10-fpc9 139.0.0.26 member10-fpc10 139.0.0.27 member10-fpc11 139.0.0.28 member10-fpc12 139.0.0.29 member10-fpc13 139.0.0.30 member10-fpc14 139.0.0.31 member10-fpc15 140.0.0.6 lcc11-backup 140.0.0.16 lcc11-fpc0 140.0.0.17 lcc11-fpc1 140.0.0.18 lcc11-fpc2 140.0.0.19 lcc11-fpc3 140.0.0.20 lcc11-fpc4 140.0.0.21 lcc11-fpc5 140.0.0.22 lcc11-fpc6 140.0.0.23 lcc11-fpc7 140.0.0.48 lcc11-spmb0 140.0.0.49 lcc11-spmb1 #LCC 11 (or MEMBER 11 on Virtual Chassis) 140.0.0.1 lcc11-master member11-master 140.0.0.4 lcc11-re0 member11-re0 140.0.0.5 lcc11-re1 member11-re1 140.0.0.6 lcc11-backup member11-backup 140.0.0.16 member11-fpc0 140.0.0.17 member11-fpc1 140.0.0.18 member11-fpc2 140.0.0.19 member11-fpc3 140.0.0.20 member11-fpc4 140.0.0.21 member11-fpc5 140.0.0.22 member11-fpc6 140.0.0.23 member11-fpc7 140.0.0.24 member11-fpc8 140.0.0.25 member11-fpc9 140.0.0.26 member11-fpc10 140.0.0.27 member11-fpc11 140.0.0.28 member11-fpc12 140.0.0.29 member11-fpc13 140.0.0.30 member11-fpc14 140.0.0.31 member11-fpc15 141.0.0.6 lcc12-backup 141.0.0.16 lcc12-fpc0 141.0.0.17 lcc12-fpc1 141.0.0.18 lcc12-fpc2 141.0.0.19 lcc12-fpc3 141.0.0.20 lcc12-fpc4 141.0.0.21 lcc12-fpc5 141.0.0.22 lcc12-fpc6 141.0.0.23 lcc12-fpc7 141.0.0.48 lcc12-spmb0 141.0.0.49 lcc12-spmb1 #LCC 12 (or MEMBER 12 on Virtual Chassis) 141.0.0.1 lcc12-master member12-master 141.0.0.4 lcc12-re0 member12-re0 141.0.0.5 lcc12-re1 member12-re1 141.0.0.6 lcc12-backup member12-backup 141.0.0.16 member12-fpc0 141.0.0.17 member12-fpc1 141.0.0.18 member12-fpc2 141.0.0.19 member12-fpc3 141.0.0.20 member12-fpc4 141.0.0.21 member12-fpc5 141.0.0.22 member12-fpc6 141.0.0.23 member12-fpc7 141.0.0.24 member12-fpc8 141.0.0.25 member12-fpc9 141.0.0.26 member12-fpc10 141.0.0.27 member12-fpc11 141.0.0.28 member12-fpc12 141.0.0.29 member12-fpc13 141.0.0.30 member12-fpc14 141.0.0.31 member12-fpc15 142.0.0.6 lcc13-backup 142.0.0.16 lcc13-fpc0 142.0.0.17 lcc13-fpc1 142.0.0.18 lcc13-fpc2 142.0.0.19 lcc13-fpc3 142.0.0.20 lcc13-fpc4 142.0.0.21 lcc13-fpc5 142.0.0.22 lcc13-fpc6 142.0.0.23 lcc13-fpc7 142.0.0.48 lcc13-spmb0 142.0.0.49 lcc13-spmb1 #LCC 13 (or MEMBER 13 on Virtual Chassis) 142.0.0.1 lcc13-master member13-master 142.0.0.4 lcc13-re0 member13-re0 142.0.0.5 lcc13-re1 member13-re1 142.0.0.6 lcc13-backup member13-backup 142.0.0.16 member13-fpc0 142.0.0.17 member13-fpc1 142.0.0.18 member13-fpc2 142.0.0.19 member13-fpc3 142.0.0.20 member13-fpc4 142.0.0.21 member13-fpc5 142.0.0.22 member13-fpc6 142.0.0.23 member13-fpc7 142.0.0.24 member13-fpc8 142.0.0.25 member13-fpc9 142.0.0.26 member13-fpc10 142.0.0.27 member13-fpc11 142.0.0.28 member13-fpc12 142.0.0.29 member13-fpc13 142.0.0.30 member13-fpc14 142.0.0.31 member13-fpc15 143.0.0.6 lcc14-backup 143.0.0.16 lcc14-fpc0 143.0.0.17 lcc14-fpc1 143.0.0.18 lcc14-fpc2 143.0.0.19 lcc14-fpc3 143.0.0.20 lcc14-fpc4 143.0.0.21 lcc14-fpc5 143.0.0.22 lcc14-fpc6 143.0.0.23 lcc14-fpc7 143.0.0.48 lcc14-spmb0 143.0.0.49 lcc14-spmb1 #LCC 14 (or MEMBER 14 on Virtual Chassis) 143.0.0.1 lcc14-master member14-master 143.0.0.4 lcc14-re0 member14-re0 143.0.0.5 lcc14-re1 member14-re1 143.0.0.6 lcc14-backup member14-backup 143.0.0.16 member14-fpc0 143.0.0.17 member14-fpc1 143.0.0.18 member14-fpc2 143.0.0.19 member14-fpc3 143.0.0.20 member14-fpc4 143.0.0.21 member14-fpc5 143.0.0.22 member14-fpc6 143.0.0.23 member14-fpc7 143.0.0.24 member14-fpc8 143.0.0.25 member14-fpc9 143.0.0.26 member14-fpc10 143.0.0.27 member14-fpc11 143.0.0.28 member14-fpc12 143.0.0.29 member14-fpc13 143.0.0.30 member14-fpc14 143.0.0.31 member14-fpc15 144.0.0.6 lcc15-backup 144.0.0.16 lcc15-fpc0 144.0.0.17 lcc15-fpc1 144.0.0.18 lcc15-fpc2 144.0.0.19 lcc15-fpc3 144.0.0.20 lcc15-fpc4 144.0.0.21 lcc15-fpc5 144.0.0.22 lcc15-fpc6 144.0.0.23 lcc15-fpc7 144.0.0.48 lcc15-spmb0 144.0.0.49 lcc15-spmb1 #LCC 15 (or MEMBER 15 on Virtual Chassis) 144.0.0.1 lcc15-master member15-master 144.0.0.4 lcc15-re0 member15-re0 144.0.0.5 lcc15-re1 member15-re1 144.0.0.6 lcc15-backup member15-backup 144.0.0.16 member15-fpc0 144.0.0.17 member15-fpc1 144.0.0.18 member15-fpc2 144.0.0.19 member15-fpc3 144.0.0.20 member15-fpc4 144.0.0.21 member15-fpc5 144.0.0.22 member15-fpc6 144.0.0.23 member15-fpc7 144.0.0.24 member15-fpc8 144.0.0.25 member15-fpc9 144.0.0.26 member15-fpc10 144.0.0.27 member15-fpc11 144.0.0.28 member15-fpc12 144.0.0.29 member15-fpc13 144.0.0.30 member15-fpc14 144.0.0.31 member15-fpc15 #VIRT SC 161.0.0.1 sc-master 161.0.0.4 sc-re0 161.0.0.5 sc-re1 161.0.0.6 sc-backup #SFC 0 162.0.0.1 sfc0-master 162.0.0.4 sfc0-re0 162.0.0.5 sfc0-re1 162.0.0.6 sfc0-backup 162.0.0.48 sfc0-spmb0 162.0.0.49 sfc0-spmb1 #SFC 1 163.0.0.1 sfc1-master 163.0.0.4 sfc1-re0 163.0.0.5 sfc1-re1 163.0.0.6 sfc1-backup 163.0.0.48 sfc1-spmb0 163.0.0.49 sfc1-spmb1 #SFC 2 164.0.0.1 sfc2-master 164.0.0.4 sfc2-re0 164.0.0.5 sfc2-re1 164.0.0.6 sfc2-backup 164.0.0.48 sfc2-spmb0 164.0.0.49 sfc2-spmb1 #SFC 3 165.0.0.1 sfc3-master 165.0.0.4 sfc3-re0 165.0.0.5 sfc3-re1 165.0.0.6 sfc3-backup 165.0.0.48 sfc3-spmb0 165.0.0.49 sfc3-spmb1 #SFC 4 166.0.0.1 sfc4-master 166.0.0.4 sfc4-re0 166.0.0.5 sfc4-re1 166.0.0.6 sfc4-backup 166.0.0.48 sfc4-spmb0 166.0.0.49 sfc4-spmb1 #JCS 190.0.0.1 psd%d-master 190.0.0.4 psd%d-re0 190.0.0.5 psd%d-re1 190.0.0.6 psd%d-backup # Old IP address format (RT_IRS_V2) # # Single Chassis Hostnames # 10.0.0.1 master 10.0.0.4 re0 10.0.0.5 re1 # # Multi Chassis Hostnames # #SCC 10.16.0.1 scc-master 10.16.0.4 scc-re0 10.16.0.5 scc-re1 #LCC 0 10.1.0.1 lcc0-master member0-master 10.1.0.4 lcc0-re0 member0-re0 10.1.0.5 lcc0-re1 member0-re1 10.1.0.6 lcc0-backup member0-backup #LCC 1 10.2.0.1 lcc1-master member1-master 10.2.0.4 lcc1-re0 member1-re0 10.2.0.5 lcc1-re1 member1-re1 10.2.0.6 lcc1-backup member1-backup #LCC 2 10.3.0.1 lcc2-master member2-master 10.3.0.4 lcc2-re0 member2-re0 10.3.0.5 lcc2-re1 member2-re1 10.3.0.6 lcc2-backup member2-backup #LCC 3 10.4.0.1 lcc3-master member3-master 10.4.0.4 lcc3-re0 member3-re0 10.4.0.5 lcc3-re1 member3-re1 10.4.0.6 lcc3-backup member3-backup #LCC 4 10.5.0.1 lcc4-master member4-master 10.5.0.4 lcc4-re0 member4-re0 10.5.0.5 lcc4-re1 member4-re1 10.5.0.6 lcc4-backup member4-backup #LCC 5 10.6.0.1 lcc5-master member5-master 10.6.0.4 lcc5-re0 member5-re0 10.6.0.5 lcc5-re1 member5-re1 10.6.0.6 lcc5-backup member5-backup #LCC 6 10.7.0.1 lcc6-master member6-master 10.7.0.4 lcc6-re0 member6-re0 10.7.0.5 lcc6-re1 member6-re1 10.7.0.6 lcc6-backup member6-backup #LCC 7 10.8.0.1 lcc7-master member7-master 10.8.0.4 lcc7-re0 member7-re0 10.8.0.5 lcc7-re1 member7-re1 10.8.0.6 lcc7-backup member7-backup #LCC 8 10.9.0.1 lcc8-master member8-master 10.9.0.4 lcc8-re0 member8-re0 10.9.0.5 lcc8-re1 member8-re1 10.9.0.6 lcc8-backup member8-backup #LCC 9 10.10.0.1 lcc9-master member9-master 10.10.0.4 lcc9-re0 member9-re0 10.10.0.5 lcc9-re1 member9-re1 10.10.0.6 lcc9-backup member9-backup #LCC 10 10.11.0.1 lcc10-master member10-master 10.11.0.4 lcc10-re0 member10-re0 10.11.0.5 lcc10-re1 member10-re1 10.11.0.6 lcc10-backup member10-backup #LCC 11 10.12.0.1 lcc11-master member11-master 10.12.0.4 lcc11-re0 member11-re0 10.12.0.5 lcc11-re1 member11-re1 10.12.0.6 lcc11-backup member11-backup #LCC 12 10.13.0.1 lcc12-master member12-master 10.13.0.4 lcc12-re0 member12-re0 10.13.0.5 lcc12-re1 member12-re1 10.13.0.6 lcc12-backup member12-backup #LCC 13 10.14.0.1 lcc13-master member13-master 10.14.0.4 lcc13-re0 member13-re0 10.14.0.5 lcc13-re1 member13-re1 10.14.0.6 lcc13-backup member13-backup #LCC 14 10.15.0.1 lcc14-master member14-master 10.15.0.4 lcc14-re0 member14-re0 10.15.0.5 lcc14-re1 member14-re1 10.15.0.6 lcc14-backup member14-backup #LCC 15 10.16.0.1 lcc15-master member15-master 10.16.0.4 lcc15-re0 member15-re0 10.16.0.5 lcc15-re1 member15-re1 10.16.0.6 lcc15-backup member15-backup #SFC 0 10.34.0.1 sfc0-master 10.34.0.4 sfc0-re0 10.34.0.5 sfc0-re1 #SFC 1 10.35.0.1 sfc1-master 10.35.0.4 sfc1-re0 10.35.0.5 sfc1-re1 #SFC 2 10.36.0.1 sfc2-master 10.36.0.4 sfc2-re0 10.36.0.5 sfc2-re1 #SFC 3 10.37.0.1 sfc3-master 10.37.0.4 sfc3-re0 10.37.0.5 sfc3-re1 #SFC 4 10.38.0.1 sfc4-master 10.38.0.4 sfc4-re0 10.38.0.5 sfc4-re1 # End of internal names py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/personality_m_get-interface-information.xml000066400000000000000000010111501475361112400321340ustar00rootroot00000000000000 pfh-0/0/0.16383 up up inet pfh-1/0/0.16383 up up inet pfh-2/0/0.16383 up up inet sp-2/3/0.16383 up up inet pfh-3/0/0.16383 up up inet pfh-4/0/0.16383 up up inet sp-4/0/0.16383 up up inet pc-4/1/0.16383 up up inet pfh-6/0/0.16383 up up inet pfh-7/0/0.16383 up up inet pc-7/1/0.16383 up up inet pc-7/3/0.16383 up up inet bcm0.0 up up inet 10.0.0.4/8 128.0.0.1/2 128.0.0.4/2 inet6 fe80::200:ff:fe00:4/64 fec0::a:0:0:4/64 tnp 0x4 em0.0 up up inet 10.0.0.4/8 128.0.0.1/2 128.0.0.4/2 inet6 fe80::200:1ff:fe00:4/64 fec0::a:0:0:4/64 tnp 0x4 lo0.16385 up up inet py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/personality_m_get-route-engine-information.xml000066400000000000000000000054321475361112400326020ustar00rootroot00000000000000 0 master master OK 49 degrees C / 120 degrees F 53 degrees C / 127 degrees F 3584 4096 39 9 0 6 2 83 RE-A-2000 1000717151 2016-10-16 13:39:42 PDT 77 days, 2 hours, 7 minutes, 10 seconds 0x1:power cycle/failure 0.39 0.77 0.92 1 backup backup OK 45 degrees C / 113 degrees F 49 degrees C / 120 degrees F 3584 4096 16 0 0 0 0 99 RE-A-2000 9009037326 2007-01-21 16:00:41 PST 77 days, 2 hours, 6 minutes, 59 seconds 0x1:power cycle/failure 0.00 0.00 0.00 py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/personality_mx_command.xml000066400000000000000000000104411475361112400267030ustar00rootroot00000000000000 cots mx80 mx80 16.1-20160720.0 junos JUNOS Base OS boot [16.1-20160720.0] jbase JUNOS Base OS Software Suite [16.1-20160720.0] jcrypto JUNOS Crypto Software Suite [16.1-20160720.0] jpfe JUNOS Packet Forwarding Engine Support (MX80) [16.1-20160720.0] jweb JUNOS Web Management [16.1-20160720.0] jdocs JUNOS Online Documentation [16.1-20160720.0] jsdn-powerpc JUNOS SDN Software Suite [16.1-20160720.0] jservices-alg JUNOS Services Application Level Gateways [16.1-20160720.0] jservices-jflow JUNOS Services Jflow Container package [16.1-20160720.0] jservices-sfw JUNOS Services Stateful Firewall [16.1-20160720.0] jservices-nat JUNOS Services NAT [16.1-20160720.0] jservices-rpm JUNOS Services RPM [16.1-20160720.0] jservices-cpcd JUNOS Services Captive Portal and Content Delivery Container package [16.1-20160720.0] jmacsec JUNOS Macsec Software Suite [16.1-20160720.0] jservices-crypto-base JUNOS Services Crypto [16.1-20160720.0] jservices-ipsec JUNOS Services IPSec [16.1-20160720.0] jcrypto-dp-support JUNOS DP Crypto Software Software Suite [16.1-20160720.0] py-base-powerpc JUNOS py-base-powerpc [16.1-20160720.0] py-extensions-powerpc JUNOS py-extensions-powerpc [16.1-20160720.0] jsd JUNOS jsd [powerpc-16.1-20160720.0-jet-1] jkernel JUNOS Kernel Software Suite [16.1-20160720.0] jroute JUNOS Routing Software Suite [16.1-20160720.0] atf-base-powerpc JUNOS atf-base-powerpc [15.1I20161229_0005_cbowers] py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/personality_mx_file-show.xml000066400000000000000000002042551475361112400271720ustar00rootroot00000000000000 #$Id: hosts.junos,v 1.7.72.1 2009-04-16 05:22:03 kdickman Exp $ # # File mapping AF_INET/AF_INET6 hostnames for REs on Single and Multichassis # systems # # This file is looked at before /etc/hosts by gethostbyname(3), # gethostbyname2(3) and getaddrinfo(3) # # The IP addresses in this file are only used for communication between REs # over the Internal Routing Instances # # WARNING: # # The names in this file are effectively reserved for internal use. # # New IP address format (RT_IRS_V3) # # Single Chassis Hostnames # 128.0.0.1 master 128.0.0.1 node 128.0.0.1 fwdd 128.0.0.1 member 128.0.0.1 pfem 128.0.0.2 scb 128.0.0.2 sbr 128.0.0.2 ssb 128.0.0.2 feb 128.0.0.2 cfeb0 128.0.0.2 cfeb 128.0.0.2 cpp0 128.0.0.3 cfeb1 128.0.0.3 cpp1 128.0.0.4 re0 128.0.0.5 re1 128.0.0.6 backup 128.0.0.8 sfm0 128.0.0.9 sfm1 128.0.0.10 sfm2 128.0.0.16 fpc0 128.0.0.17 fpc1 128.0.0.18 fpc2 128.0.0.19 fpc3 128.0.0.20 fpc4 128.0.0.21 fpc5 128.0.0.22 fpc6 128.0.0.23 fpc7 128.0.0.24 fpc8 128.0.0.25 fpc9 128.0.0.26 fpc10 128.0.0.27 fpc11 128.0.0.28 fpc12 128.0.0.29 fpc13 128.0.0.30 fpc14 128.0.0.31 fpc15 128.0.0.32 feb0 128.0.0.32 fpc16 128.0.0.33 feb1 128.0.0.33 fpc17 128.0.0.34 feb2 128.0.0.34 fpc18 128.0.0.35 feb3 128.0.0.35 fpc19 128.0.0.36 fpc20 128.0.0.36 feb4 128.0.0.37 feb5 128.0.0.37 fpc21 128.0.0.38 fpc22 128.0.0.39 fpc23 128.0.0.40 fpc24 128.0.0.41 fpc25 128.0.0.42 fpc26 128.0.0.43 fpc27 128.0.0.44 fpc28 128.0.0.45 fpc29 128.0.0.46 fpc30 128.0.0.47 fpc31 128.0.0.48 spmb0 128.0.0.49 spmb1 128.0.0.50 tfeb0 128.0.0.50 afeb0 128.0.0.53 esc0 128.0.0.54 esc1 128.0.0.55 esc0-ipmi 128.0.0.56 esc1-ipmi 128.0.0.63 localre 128.0.1.16 fpc0.pic0 128.0.1.17 fpc1.pic0 128.0.1.18 fpc2.pic0 128.0.1.19 fpc3.pic0 128.0.1.20 fpc4.pic0 128.0.1.21 fpc5.pic0 128.0.1.22 fpc6.pic0 128.0.1.23 fpc7.pic0 128.0.1.24 fpc8.pic0 128.0.1.25 fpc9.pic0 128.0.1.26 fpc10.pic0 128.0.1.27 fpc11.pic0 128.0.1.28 fpc12.pic0 128.0.1.29 fpc13.pic0 128.0.1.30 fpc14.pic0 128.0.1.31 fpc15.pic0 128.0.1.32 fpc16.pic0 128.0.1.33 fpc17.pic0 128.0.1.34 fpc18.pic0 128.0.1.35 fpc19.pic0 128.0.1.36 fpc20.pic0 128.0.1.37 fpc21.pic0 128.0.1.38 fpc22.pic0 128.0.1.39 fpc23.pic0 128.0.1.40 fpc24.pic0 128.0.1.41 fpc25.pic0 128.0.1.42 fpc26.pic0 128.0.1.43 fpc27.pic0 128.0.1.44 fpc28.pic0 128.0.1.45 fpc29.pic0 128.0.1.46 fpc30.pic0 128.0.1.47 fpc31.pic0 128.0.2.16 fpc0.pic1 128.0.2.17 fpc1.pic1 128.0.2.18 fpc2.pic1 128.0.2.19 fpc3.pic1 128.0.2.20 fpc4.pic1 128.0.2.21 fpc5.pic1 128.0.2.22 fpc6.pic1 128.0.2.23 fpc7.pic1 128.0.2.24 fpc8.pic1 128.0.2.25 fpc9.pic1 128.0.2.26 fpc10.pic1 128.0.2.27 fpc11.pic1 128.0.2.28 fpc12.pic1 128.0.2.29 fpc13.pic1 128.0.2.30 fpc14.pic1 128.0.2.31 fpc15.pic1 128.0.2.32 fpc16.pic1 128.0.2.33 fpc17.pic1 128.0.2.34 fpc18.pic1 128.0.2.35 fpc19.pic1 128.0.2.36 fpc20.pic1 128.0.2.37 fpc21.pic1 128.0.2.38 fpc22.pic1 128.0.2.39 fpc23.pic1 128.0.2.40 fpc24.pic1 128.0.2.41 fpc25.pic1 128.0.2.42 fpc26.pic1 128.0.2.43 fpc27.pic1 128.0.2.44 fpc28.pic1 128.0.2.45 fpc29.pic1 128.0.2.46 fpc30.pic1 128.0.2.47 fpc31.pic1 128.0.3.16 fpc0.pic2 128.0.3.17 fpc1.pic2 128.0.3.18 fpc2.pic2 128.0.3.19 fpc3.pic2 128.0.3.20 fpc4.pic2 128.0.3.21 fpc5.pic2 128.0.3.22 fpc6.pic2 128.0.3.23 fpc7.pic2 128.0.3.24 fpc8.pic2 128.0.3.25 fpc9.pic2 128.0.3.26 fpc10.pic2 128.0.3.27 fpc11.pic2 128.0.3.28 fpc12.pic2 128.0.3.29 fpc13.pic2 128.0.3.30 fpc14.pic2 128.0.3.31 fpc15.pic2 128.0.4.16 fpc0.pic3 128.0.4.17 fpc1.pic3 128.0.4.18 fpc2.pic3 128.0.4.19 fpc3.pic3 128.0.4.20 fpc4.pic3 128.0.4.21 fpc5.pic3 128.0.4.22 fpc6.pic3 128.0.4.23 fpc7.pic3 128.0.4.24 fpc8.pic3 128.0.4.25 fpc9.pic3 128.0.4.26 fpc10.pic3 128.0.4.27 fpc11.pic3 128.0.4.28 fpc12.pic3 128.0.4.29 fpc13.pic3 128.0.4.30 fpc14.pic3 128.0.4.31 fpc15.pic3 # # DCF-Root Hostname # 128.0.130.2 dcf-root # # Multi Chassis Hostnames # #SCC 144.0.0.1 scc-master 144.0.0.4 scc-re0 144.0.0.5 scc-re1 144.0.0.6 scc-backup 144.0.0.48 scc-spmb0 144.0.0.49 scc-spmb1 #LCC 0 (or MEMBER 0 on Virtual Chassis) 129.0.0.1 lcc0-master member0-master member0 129.0.0.4 lcc0-re0 member0-re0 129.0.0.5 lcc0-re1 member0-re1 129.0.0.6 lcc0-backup member0-backup 129.0.0.16 member0-fpc0 129.0.0.17 member0-fpc1 129.0.0.18 member0-fpc2 129.0.0.19 member0-fpc3 129.0.0.20 member0-fpc4 129.0.0.21 member0-fpc5 129.0.0.22 member0-fpc6 129.0.0.23 member0-fpc7 129.0.0.24 member0-fpc8 129.0.0.25 member0-fpc9 129.0.0.26 member0-fpc10 129.0.0.27 member0-fpc11 129.0.0.28 member0-fpc12 129.0.0.29 member0-fpc13 129.0.0.30 member0-fpc14 129.0.0.31 member0-fpc15 129.0.0.32 member0-fpc16 129.0.0.33 member0-fpc17 129.0.0.34 member0-fpc18 129.0.0.35 member0-fpc19 129.0.0.36 member0-fpc20 129.0.0.37 member0-fpc21 129.0.0.38 member0-fpc22 129.0.0.39 member0-fpc23 129.0.0.40 member0-fpc24 129.0.0.41 member0-fpc25 129.0.0.42 member0-fpc26 129.0.0.43 member0-fpc27 129.0.0.44 member0-fpc28 129.0.0.45 member0-fpc29 129.0.0.46 member0-fpc30 129.0.0.47 member0-fpc31 129.0.0.6 lcc0-backup 129.0.0.16 lcc0-fpc0 129.0.0.17 lcc0-fpc1 129.0.0.18 lcc0-fpc2 129.0.0.19 lcc0-fpc3 129.0.0.20 lcc0-fpc4 129.0.0.21 lcc0-fpc5 129.0.0.22 lcc0-fpc6 129.0.0.23 lcc0-fpc7 129.0.0.48 lcc0-spmb0 129.0.0.49 lcc0-spmb1 #LCC 1 (or MEMBER 1 on Virtual Chassis) 130.0.0.1 lcc1-master member1-master member1 130.0.0.4 lcc1-re0 member1-re0 130.0.0.5 lcc1-re1 member1-re1 130.0.0.6 lcc1-backup member1-backup 130.0.0.16 member1-fpc0 130.0.0.17 member1-fpc1 130.0.0.18 member1-fpc2 130.0.0.19 member1-fpc3 130.0.0.20 member1-fpc4 130.0.0.21 member1-fpc5 130.0.0.22 member1-fpc6 130.0.0.23 member1-fpc7 130.0.0.24 member1-fpc8 130.0.0.25 member1-fpc9 130.0.0.26 member1-fpc10 130.0.0.27 member1-fpc11 130.0.0.28 member1-fpc12 130.0.0.29 member1-fpc13 130.0.0.30 member1-fpc14 130.0.0.31 member1-fpc15 130.0.0.32 member1-fpc16 130.0.0.33 member1-fpc17 130.0.0.34 member1-fpc18 130.0.0.35 member1-fpc19 130.0.0.36 member1-fpc20 130.0.0.37 member1-fpc21 130.0.0.38 member1-fpc22 130.0.0.39 member1-fpc23 130.0.0.40 member1-fpc24 130.0.0.41 member1-fpc25 130.0.0.42 member1-fpc26 130.0.0.43 member1-fpc27 130.0.0.44 member1-fpc28 130.0.0.45 member1-fpc29 130.0.0.46 member1-fpc30 130.0.0.47 member1-fpc31 130.0.0.6 lcc1-backup 130.0.0.16 lcc1-fpc0 130.0.0.17 lcc1-fpc1 130.0.0.18 lcc1-fpc2 130.0.0.19 lcc1-fpc3 130.0.0.20 lcc1-fpc4 130.0.0.21 lcc1-fpc5 130.0.0.22 lcc1-fpc6 130.0.0.23 lcc1-fpc7 130.0.0.48 lcc1-spmb0 130.0.0.49 lcc1-spmb1 #LCC 2 (or MEMBER 2 on Virtual Chassis) 131.0.0.1 lcc2-master member2-master member2 131.0.0.4 lcc2-re0 member2-re0 131.0.0.5 lcc2-re1 member2-re1 131.0.0.6 lcc2-backup member2-backup 131.0.0.16 member2-fpc0 131.0.0.17 member2-fpc1 131.0.0.18 member2-fpc2 131.0.0.19 member2-fpc3 131.0.0.20 member2-fpc4 131.0.0.21 member2-fpc5 131.0.0.22 member2-fpc6 131.0.0.23 member2-fpc7 131.0.0.24 member2-fpc8 131.0.0.25 member2-fpc9 131.0.0.26 member2-fpc10 131.0.0.27 member2-fpc11 131.0.0.28 member2-fpc12 131.0.0.29 member2-fpc13 131.0.0.30 member2-fpc14 131.0.0.31 member2-fpc15 131.0.0.32 member2-fpc16 131.0.0.33 member2-fpc17 131.0.0.34 member2-fpc18 131.0.0.35 member2-fpc19 131.0.0.36 member2-fpc20 131.0.0.37 member2-fpc21 131.0.0.38 member2-fpc22 131.0.0.39 member2-fpc23 131.0.0.40 member2-fpc24 131.0.0.41 member2-fpc25 131.0.0.42 member2-fpc26 131.0.0.43 member2-fpc27 131.0.0.44 member2-fpc28 131.0.0.45 member2-fpc29 131.0.0.46 member2-fpc30 131.0.0.47 member2-fpc31 131.0.0.6 lcc2-backup 131.0.0.16 lcc2-fpc0 131.0.0.17 lcc2-fpc1 131.0.0.18 lcc2-fpc2 131.0.0.19 lcc2-fpc3 131.0.0.20 lcc2-fpc4 131.0.0.21 lcc2-fpc5 131.0.0.22 lcc2-fpc6 131.0.0.23 lcc2-fpc7 131.0.0.48 lcc2-spmb0 131.0.0.49 lcc20-spmb1 #LCC 3 (or MEMBER 3 on Virtual Chassis) 132.0.0.1 lcc3-master member3-master member3 132.0.0.4 lcc3-re0 member3-re0 132.0.0.5 lcc3-re1 member3-re1 132.0.0.6 lcc3-backup member3-backup 132.0.0.16 member3-fpc0 132.0.0.17 member3-fpc1 132.0.0.18 member3-fpc2 132.0.0.19 member3-fpc3 132.0.0.20 member3-fpc4 132.0.0.21 member3-fpc5 132.0.0.22 member3-fpc6 132.0.0.23 member3-fpc7 132.0.0.24 member3-fpc8 132.0.0.25 member3-fpc9 132.0.0.26 member3-fpc10 132.0.0.27 member3-fpc11 132.0.0.28 member3-fpc12 132.0.0.29 member3-fpc13 132.0.0.30 member3-fpc14 132.0.0.31 member3-fpc15 132.0.0.32 member3-fpc16 132.0.0.33 member3-fpc17 132.0.0.34 member3-fpc18 132.0.0.35 member3-fpc19 132.0.0.36 member3-fpc20 132.0.0.37 member3-fpc21 132.0.0.38 member3-fpc22 132.0.0.39 member3-fpc23 132.0.0.40 member3-fpc24 132.0.0.41 member3-fpc25 132.0.0.42 member3-fpc26 132.0.0.43 member3-fpc27 132.0.0.44 member3-fpc28 132.0.0.45 member3-fpc29 132.0.0.46 member3-fpc30 132.0.0.47 member3-fpc31 132.0.0.6 lcc3-backup 132.0.0.16 lcc3-fpc0 132.0.0.17 lcc3-fpc1 132.0.0.18 lcc3-fpc2 132.0.0.19 lcc3-fpc3 132.0.0.20 lcc3-fpc4 132.0.0.21 lcc3-fpc5 132.0.0.22 lcc3-fpc6 132.0.0.23 lcc3-fpc7 132.0.0.48 lcc3-spmb0 132.0.0.49 lcc3-spmb1 #LCC 4 (or MEMBER 4 on Virtual Chassis) 133.0.0.1 lcc4-master member4-master member4 133.0.0.4 lcc4-re0 member4-re0 133.0.0.5 lcc4-re1 member4-re1 133.0.0.6 lcc4-backup member4-backup 133.0.0.16 member4-fpc0 133.0.0.17 member4-fpc1 133.0.0.18 member4-fpc2 133.0.0.19 member4-fpc3 133.0.0.20 member4-fpc4 133.0.0.21 member4-fpc5 133.0.0.22 member4-fpc6 133.0.0.23 member4-fpc7 133.0.0.24 member4-fpc8 133.0.0.25 member4-fpc9 133.0.0.26 member4-fpc10 133.0.0.27 member4-fpc11 133.0.0.28 member4-fpc12 133.0.0.29 member4-fpc13 133.0.0.30 member4-fpc14 133.0.0.31 member4-fpc15 133.0.0.32 member4-fpc16 133.0.0.33 member4-fpc17 133.0.0.34 member4-fpc18 133.0.0.35 member4-fpc19 133.0.0.36 member4-fpc20 133.0.0.37 member4-fpc21 133.0.0.38 member4-fpc22 133.0.0.39 member4-fpc23 133.0.0.40 member4-fpc24 133.0.0.41 member4-fpc25 133.0.0.42 member4-fpc26 133.0.0.43 member4-fpc27 133.0.0.44 member4-fpc28 133.0.0.45 member4-fpc29 133.0.0.46 member4-fpc30 133.0.0.47 member4-fpc31 133.0.0.6 lcc4-backup 133.0.0.16 lcc4-fpc0 133.0.0.17 lcc4-fpc1 133.0.0.18 lcc4-fpc2 133.0.0.19 lcc4-fpc3 133.0.0.20 lcc4-fpc4 133.0.0.21 lcc4-fpc5 133.0.0.22 lcc4-fpc6 133.0.0.23 lcc4-fpc7 133.0.0.48 lcc4-spmb0 133.0.0.49 lcc4-spmb1 #LCC 5 (or MEMBER 5 on Virtual Chassis) 134.0.0.1 lcc5-master member5-master member5 134.0.0.4 lcc5-re0 member5-re0 134.0.0.5 lcc5-re1 member5-re1 134.0.0.6 lcc5-backup member5-backup 134.0.0.16 member5-fpc0 134.0.0.17 member5-fpc1 134.0.0.18 member5-fpc2 134.0.0.19 member5-fpc3 134.0.0.20 member5-fpc4 134.0.0.21 member5-fpc5 134.0.0.22 member5-fpc6 134.0.0.23 member5-fpc7 134.0.0.24 member5-fpc8 134.0.0.25 member5-fpc9 134.0.0.26 member5-fpc10 134.0.0.27 member5-fpc11 134.0.0.28 member5-fpc12 134.0.0.29 member5-fpc13 134.0.0.30 member5-fpc14 134.0.0.31 member5-fpc15 134.0.0.32 member5-fpc16 134.0.0.33 member5-fpc17 134.0.0.34 member5-fpc18 134.0.0.35 member5-fpc19 134.0.0.36 member5-fpc20 134.0.0.37 member5-fpc21 134.0.0.38 member5-fpc22 134.0.0.39 member5-fpc23 134.0.0.40 member5-fpc24 134.0.0.41 member5-fpc25 134.0.0.42 member5-fpc26 134.0.0.43 member5-fpc27 134.0.0.44 member5-fpc28 134.0.0.45 member5-fpc29 134.0.0.46 member5-fpc30 134.0.0.47 member5-fpc31 134.0.0.6 lcc5-backup 134.0.0.16 lcc5-fpc0 134.0.0.17 lcc5-fpc1 134.0.0.18 lcc5-fpc2 134.0.0.19 lcc5-fpc3 134.0.0.20 lcc5-fpc4 134.0.0.21 lcc5-fpc5 134.0.0.22 lcc5-fpc6 134.0.0.23 lcc5-fpc7 134.0.0.48 lcc5-spmb0 134.0.0.49 lcc5-spmb1 #LCC 6 (or MEMBER 6 on Virtual Chassis) 135.0.0.1 lcc6-master member6-master member6 135.0.0.4 lcc6-re0 member6-re0 135.0.0.5 lcc6-re1 member6-re1 135.0.0.6 lcc6-backup member6-backup 135.0.0.16 member6-fpc0 135.0.0.17 member6-fpc1 135.0.0.18 member6-fpc2 135.0.0.19 member6-fpc3 135.0.0.20 member6-fpc4 135.0.0.21 member6-fpc5 135.0.0.22 member6-fpc6 135.0.0.23 member6-fpc7 135.0.0.24 member6-fpc8 135.0.0.25 member6-fpc9 135.0.0.26 member6-fpc10 135.0.0.27 member6-fpc11 135.0.0.28 member6-fpc12 135.0.0.29 member6-fpc13 135.0.0.30 member6-fpc14 135.0.0.31 member6-fpc15 135.0.0.32 member6-fpc16 135.0.0.33 member6-fpc17 135.0.0.34 member6-fpc18 135.0.0.35 member6-fpc19 135.0.0.36 member6-fpc20 135.0.0.37 member6-fpc21 135.0.0.38 member6-fpc22 135.0.0.39 member6-fpc23 135.0.0.40 member6-fpc24 135.0.0.41 member6-fpc25 135.0.0.42 member6-fpc26 135.0.0.43 member6-fpc27 135.0.0.44 member6-fpc28 135.0.0.45 member6-fpc29 135.0.0.46 member6-fpc30 135.0.0.47 member6-fpc31 135.0.0.6 lcc6-backup 135.0.0.16 lcc6-fpc0 135.0.0.17 lcc6-fpc1 135.0.0.18 lcc6-fpc2 135.0.0.19 lcc6-fpc3 135.0.0.20 lcc6-fpc4 135.0.0.21 lcc6-fpc5 135.0.0.22 lcc6-fpc6 135.0.0.23 lcc6-fpc7 135.0.0.48 lcc6-spmb0 135.0.0.49 lcc6-spmb1 #LCC 7 (or MEMBER 7 on Virtual Chassis) 136.0.0.1 lcc7-master member7-master member7 136.0.0.4 lcc7-re0 member7-re0 136.0.0.5 lcc7-re1 member7-re1 136.0.0.6 lcc7-backup member7-backup 136.0.0.16 member7-fpc0 136.0.0.17 member7-fpc1 136.0.0.18 member7-fpc2 136.0.0.19 member7-fpc3 136.0.0.20 member7-fpc4 136.0.0.21 member7-fpc5 136.0.0.22 member7-fpc6 136.0.0.23 member7-fpc7 136.0.0.24 member7-fpc8 136.0.0.25 member7-fpc9 136.0.0.26 member7-fpc10 136.0.0.27 member7-fpc11 136.0.0.28 member7-fpc12 136.0.0.29 member7-fpc13 136.0.0.30 member7-fpc14 136.0.0.31 member7-fpc15 136.0.0.32 member7-fpc16 136.0.0.33 member7-fpc17 136.0.0.34 member7-fpc18 136.0.0.35 member7-fpc19 136.0.0.36 member7-fpc20 136.0.0.37 member7-fpc21 136.0.0.38 member7-fpc22 136.0.0.39 member7-fpc23 136.0.0.40 member7-fpc24 136.0.0.41 member7-fpc25 136.0.0.42 member7-fpc26 136.0.0.43 member7-fpc27 136.0.0.44 member7-fpc28 136.0.0.45 member7-fpc29 136.0.0.46 member7-fpc30 136.0.0.47 member7-fpc31 136.0.0.6 lcc7-backup 136.0.0.16 lcc7-fpc0 136.0.0.17 lcc7-fpc1 136.0.0.18 lcc7-fpc2 136.0.0.19 lcc7-fpc3 136.0.0.20 lcc7-fpc4 136.0.0.21 lcc7-fpc5 136.0.0.22 lcc7-fpc6 136.0.0.23 lcc7-fpc7 136.0.0.48 lcc7-spmb0 136.0.0.49 lcc7-spmb1 137.0.0.6 lcc8-backup 137.0.0.16 lcc8-fpc0 137.0.0.17 lcc8-fpc1 137.0.0.18 lcc8-fpc2 137.0.0.19 lcc8-fpc3 137.0.0.20 lcc8-fpc4 137.0.0.21 lcc8-fpc5 137.0.0.22 lcc8-fpc6 137.0.0.23 lcc8-fpc7 137.0.0.48 lcc8-spmb0 137.0.0.49 lcc8-spmb1 #LCC 8 (or MEMBER 8 on Virtual Chassis) 137.0.0.1 lcc8-master member8-master member8 137.0.0.4 lcc8-re0 member8-re0 137.0.0.5 lcc8-re1 member8-re1 137.0.0.6 lcc8-backup member8-backup 137.0.0.16 member8-fpc0 137.0.0.17 member8-fpc1 137.0.0.18 member8-fpc2 137.0.0.19 member8-fpc3 137.0.0.20 member8-fpc4 137.0.0.21 member8-fpc5 137.0.0.22 member8-fpc6 137.0.0.23 member8-fpc7 137.0.0.24 member8-fpc8 137.0.0.25 member8-fpc9 137.0.0.26 member8-fpc10 137.0.0.27 member8-fpc11 137.0.0.28 member8-fpc12 137.0.0.29 member8-fpc13 137.0.0.30 member8-fpc14 137.0.0.31 member8-fpc15 137.0.0.32 member8-fpc16 137.0.0.33 member8-fpc17 137.0.0.34 member8-fpc18 137.0.0.35 member8-fpc19 137.0.0.36 member8-fpc20 137.0.0.37 member8-fpc21 137.0.0.38 member8-fpc22 137.0.0.39 member8-fpc23 137.0.0.40 member8-fpc24 137.0.0.41 member8-fpc25 137.0.0.42 member8-fpc26 137.0.0.43 member8-fpc27 137.0.0.44 member8-fpc28 137.0.0.45 member8-fpc29 137.0.0.46 member8-fpc30 137.0.0.47 member8-fpc31 138.0.0.6 lcc9-backup 138.0.0.16 lcc9-fpc0 138.0.0.17 lcc9-fpc1 138.0.0.18 lcc9-fpc2 138.0.0.19 lcc9-fpc3 138.0.0.20 lcc9-fpc4 138.0.0.21 lcc9-fpc5 138.0.0.22 lcc9-fpc6 138.0.0.23 lcc9-fpc7 138.0.0.48 lcc9-spmb0 138.0.0.49 lcc9-spmb1 #LCC 9 (or MEMBER 9 on Virtual Chassis) 138.0.0.1 lcc9-master member9-master member9 138.0.0.4 lcc9-re0 member9-re0 138.0.0.5 lcc9-re1 member9-re1 138.0.0.6 lcc9-backup member9-backup 138.0.0.16 member9-fpc0 138.0.0.17 member9-fpc1 138.0.0.18 member9-fpc2 138.0.0.19 member9-fpc3 138.0.0.20 member9-fpc4 138.0.0.21 member9-fpc5 138.0.0.22 member9-fpc6 138.0.0.23 member9-fpc7 138.0.0.24 member9-fpc8 138.0.0.25 member9-fpc9 138.0.0.26 member9-fpc10 138.0.0.27 member9-fpc11 138.0.0.28 member9-fpc12 138.0.0.29 member9-fpc13 138.0.0.30 member9-fpc14 138.0.0.31 member9-fpc15 138.0.0.32 member9-fpc16 138.0.0.33 member9-fpc17 138.0.0.34 member9-fpc18 138.0.0.35 member9-fpc19 138.0.0.36 member9-fpc20 138.0.0.37 member9-fpc21 138.0.0.38 member9-fpc22 138.0.0.39 member9-fpc23 138.0.0.40 member9-fpc24 138.0.0.41 member9-fpc25 138.0.0.42 member9-fpc26 138.0.0.43 member9-fpc27 138.0.0.44 member9-fpc28 138.0.0.45 member9-fpc29 138.0.0.46 member9-fpc30 138.0.0.47 member9-fpc31 139.0.0.6 lcc10-backup 139.0.0.16 lcc10-fpc0 139.0.0.17 lcc10-fpc1 139.0.0.18 lcc10-fpc2 139.0.0.19 lcc10-fpc3 139.0.0.20 lcc10-fpc4 139.0.0.21 lcc10-fpc5 139.0.0.22 lcc10-fpc6 139.0.0.23 lcc10-fpc7 139.0.0.48 lcc10-spmb0 139.0.0.49 lcc10-spmb1 #LCC 10 (or MEMBER 10 on Virtual Chassis) 139.0.0.1 lcc10-master member10-master 139.0.0.4 lcc10-re0 member10-re0 139.0.0.5 lcc10-re1 member10-re1 139.0.0.6 lcc10-backup member10-backup 139.0.0.16 member10-fpc0 139.0.0.17 member10-fpc1 139.0.0.18 member10-fpc2 139.0.0.19 member10-fpc3 139.0.0.20 member10-fpc4 139.0.0.21 member10-fpc5 139.0.0.22 member10-fpc6 139.0.0.23 member10-fpc7 139.0.0.24 member10-fpc8 139.0.0.25 member10-fpc9 139.0.0.26 member10-fpc10 139.0.0.27 member10-fpc11 139.0.0.28 member10-fpc12 139.0.0.29 member10-fpc13 139.0.0.30 member10-fpc14 139.0.0.31 member10-fpc15 139.0.0.32 member10-fpc16 139.0.0.33 member10-fpc17 139.0.0.34 member10-fpc18 139.0.0.35 member10-fpc19 139.0.0.36 member10-fpc20 139.0.0.37 member10-fpc21 139.0.0.38 member10-fpc22 139.0.0.39 member10-fpc23 139.0.0.40 member10-fpc24 139.0.0.41 member10-fpc25 139.0.0.42 member10-fpc26 139.0.0.43 member10-fpc27 139.0.0.44 member10-fpc28 139.0.0.45 member10-fpc29 139.0.0.46 member10-fpc30 139.0.0.47 member10-fpc31 140.0.0.6 lcc11-backup 140.0.0.16 lcc11-fpc0 140.0.0.17 lcc11-fpc1 140.0.0.18 lcc11-fpc2 140.0.0.19 lcc11-fpc3 140.0.0.20 lcc11-fpc4 140.0.0.21 lcc11-fpc5 140.0.0.22 lcc11-fpc6 140.0.0.23 lcc11-fpc7 140.0.0.48 lcc11-spmb0 140.0.0.49 lcc11-spmb1 #LCC 11 (or MEMBER 11 on Virtual Chassis) 140.0.0.1 lcc11-master member11-master 140.0.0.4 lcc11-re0 member11-re0 140.0.0.5 lcc11-re1 member11-re1 140.0.0.6 lcc11-backup member11-backup 140.0.0.16 member11-fpc0 140.0.0.17 member11-fpc1 140.0.0.18 member11-fpc2 140.0.0.19 member11-fpc3 140.0.0.20 member11-fpc4 140.0.0.21 member11-fpc5 140.0.0.22 member11-fpc6 140.0.0.23 member11-fpc7 140.0.0.24 member11-fpc8 140.0.0.25 member11-fpc9 140.0.0.26 member11-fpc10 140.0.0.27 member11-fpc11 140.0.0.28 member11-fpc12 140.0.0.29 member11-fpc13 140.0.0.30 member11-fpc14 140.0.0.31 member11-fpc15 140.0.0.32 member11-fpc16 140.0.0.33 member11-fpc17 140.0.0.34 member11-fpc18 140.0.0.35 member11-fpc19 140.0.0.36 member11-fpc20 140.0.0.37 member11-fpc21 140.0.0.38 member11-fpc22 140.0.0.39 member11-fpc23 140.0.0.40 member11-fpc24 140.0.0.41 member11-fpc25 140.0.0.42 member11-fpc26 140.0.0.43 member11-fpc27 140.0.0.44 member11-fpc28 140.0.0.45 member11-fpc29 140.0.0.46 member11-fpc30 140.0.0.47 member11-fpc31 141.0.0.6 lcc12-backup 141.0.0.16 lcc12-fpc0 141.0.0.17 lcc12-fpc1 141.0.0.18 lcc12-fpc2 141.0.0.19 lcc12-fpc3 141.0.0.20 lcc12-fpc4 141.0.0.21 lcc12-fpc5 141.0.0.22 lcc12-fpc6 141.0.0.23 lcc12-fpc7 141.0.0.48 lcc12-spmb0 141.0.0.49 lcc12-spmb1 #LCC 12 (or MEMBER 12 on Virtual Chassis) 141.0.0.1 lcc12-master member12-master 141.0.0.4 lcc12-re0 member12-re0 141.0.0.5 lcc12-re1 member12-re1 141.0.0.6 lcc12-backup member12-backup 141.0.0.16 member12-fpc0 141.0.0.17 member12-fpc1 141.0.0.18 member12-fpc2 141.0.0.19 member12-fpc3 141.0.0.20 member12-fpc4 141.0.0.21 member12-fpc5 141.0.0.22 member12-fpc6 141.0.0.23 member12-fpc7 141.0.0.24 member12-fpc8 141.0.0.25 member12-fpc9 141.0.0.26 member12-fpc10 141.0.0.27 member12-fpc11 141.0.0.28 member12-fpc12 141.0.0.29 member12-fpc13 141.0.0.30 member12-fpc14 141.0.0.31 member12-fpc15 141.0.0.32 member12-fpc16 141.0.0.33 member12-fpc17 141.0.0.34 member12-fpc18 141.0.0.35 member12-fpc19 141.0.0.36 member12-fpc20 141.0.0.37 member12-fpc21 141.0.0.38 member12-fpc22 141.0.0.39 member12-fpc23 141.0.0.40 member12-fpc24 141.0.0.41 member12-fpc25 141.0.0.42 member12-fpc26 141.0.0.43 member12-fpc27 141.0.0.44 member12-fpc28 141.0.0.45 member12-fpc29 141.0.0.46 member12-fpc30 141.0.0.47 member12-fpc31 142.0.0.6 lcc13-backup 142.0.0.16 lcc13-fpc0 142.0.0.17 lcc13-fpc1 142.0.0.18 lcc13-fpc2 142.0.0.19 lcc13-fpc3 142.0.0.20 lcc13-fpc4 142.0.0.21 lcc13-fpc5 142.0.0.22 lcc13-fpc6 142.0.0.23 lcc13-fpc7 142.0.0.48 lcc13-spmb0 142.0.0.49 lcc13-spmb1 #LCC 13 (or MEMBER 13 on Virtual Chassis) 142.0.0.1 lcc13-master member13-master 142.0.0.4 lcc13-re0 member13-re0 142.0.0.5 lcc13-re1 member13-re1 142.0.0.6 lcc13-backup member13-backup 142.0.0.16 member13-fpc0 142.0.0.17 member13-fpc1 142.0.0.18 member13-fpc2 142.0.0.19 member13-fpc3 142.0.0.20 member13-fpc4 142.0.0.21 member13-fpc5 142.0.0.22 member13-fpc6 142.0.0.23 member13-fpc7 142.0.0.24 member13-fpc8 142.0.0.25 member13-fpc9 142.0.0.26 member13-fpc10 142.0.0.27 member13-fpc11 142.0.0.28 member13-fpc12 142.0.0.29 member13-fpc13 142.0.0.30 member13-fpc14 142.0.0.31 member13-fpc15 142.0.0.32 member13-fpc16 142.0.0.33 member13-fpc17 142.0.0.34 member13-fpc18 142.0.0.35 member13-fpc19 142.0.0.36 member13-fpc20 142.0.0.37 member13-fpc21 142.0.0.38 member13-fpc22 142.0.0.39 member13-fpc23 142.0.0.40 member13-fpc24 142.0.0.41 member13-fpc25 142.0.0.42 member13-fpc26 142.0.0.43 member13-fpc27 142.0.0.44 member13-fpc28 142.0.0.45 member13-fpc29 142.0.0.46 member13-fpc30 142.0.0.47 member13-fpc31 143.0.0.6 lcc14-backup 143.0.0.16 lcc14-fpc0 143.0.0.17 lcc14-fpc1 143.0.0.18 lcc14-fpc2 143.0.0.19 lcc14-fpc3 143.0.0.20 lcc14-fpc4 143.0.0.21 lcc14-fpc5 143.0.0.22 lcc14-fpc6 143.0.0.23 lcc14-fpc7 143.0.0.48 lcc14-spmb0 143.0.0.49 lcc14-spmb1 #LCC 14 (or MEMBER 14 on Virtual Chassis) 143.0.0.1 lcc14-master member14-master 143.0.0.4 lcc14-re0 member14-re0 143.0.0.5 lcc14-re1 member14-re1 143.0.0.6 lcc14-backup member14-backup 143.0.0.16 member14-fpc0 143.0.0.17 member14-fpc1 143.0.0.18 member14-fpc2 143.0.0.19 member14-fpc3 143.0.0.20 member14-fpc4 143.0.0.21 member14-fpc5 143.0.0.22 member14-fpc6 143.0.0.23 member14-fpc7 143.0.0.24 member14-fpc8 143.0.0.25 member14-fpc9 143.0.0.26 member14-fpc10 143.0.0.27 member14-fpc11 143.0.0.28 member14-fpc12 143.0.0.29 member14-fpc13 143.0.0.30 member14-fpc14 143.0.0.31 member14-fpc15 143.0.0.32 member14-fpc16 143.0.0.33 member14-fpc17 143.0.0.34 member14-fpc18 143.0.0.35 member14-fpc19 143.0.0.36 member14-fpc20 143.0.0.37 member14-fpc21 143.0.0.38 member14-fpc22 143.0.0.39 member14-fpc23 143.0.0.40 member14-fpc24 143.0.0.41 member14-fpc25 143.0.0.42 member14-fpc26 143.0.0.43 member14-fpc27 143.0.0.44 member14-fpc28 143.0.0.45 member14-fpc29 143.0.0.46 member14-fpc30 143.0.0.47 member14-fpc31 144.0.0.6 lcc15-backup 144.0.0.16 lcc15-fpc0 144.0.0.17 lcc15-fpc1 144.0.0.18 lcc15-fpc2 144.0.0.19 lcc15-fpc3 144.0.0.20 lcc15-fpc4 144.0.0.21 lcc15-fpc5 144.0.0.22 lcc15-fpc6 144.0.0.23 lcc15-fpc7 144.0.0.48 lcc15-spmb0 144.0.0.49 lcc15-spmb1 #LCC 15 (or MEMBER 15 on Virtual Chassis) 144.0.0.1 lcc15-master member15-master 144.0.0.4 lcc15-re0 member15-re0 144.0.0.5 lcc15-re1 member15-re1 144.0.0.6 lcc15-backup member15-backup 144.0.0.16 member15-fpc0 144.0.0.17 member15-fpc1 144.0.0.18 member15-fpc2 144.0.0.19 member15-fpc3 144.0.0.20 member15-fpc4 144.0.0.21 member15-fpc5 144.0.0.22 member15-fpc6 144.0.0.23 member15-fpc7 144.0.0.24 member15-fpc8 144.0.0.25 member15-fpc9 144.0.0.26 member15-fpc10 144.0.0.27 member15-fpc11 144.0.0.28 member15-fpc12 144.0.0.29 member15-fpc13 144.0.0.30 member15-fpc14 144.0.0.31 member15-fpc15 144.0.0.32 member15-fpc16 144.0.0.33 member15-fpc17 144.0.0.34 member15-fpc18 144.0.0.35 member15-fpc19 144.0.0.36 member15-fpc20 144.0.0.37 member15-fpc21 144.0.0.38 member15-fpc22 144.0.0.39 member15-fpc23 144.0.0.40 member15-fpc24 144.0.0.41 member15-fpc25 144.0.0.42 member15-fpc26 144.0.0.43 member15-fpc27 144.0.0.44 member15-fpc28 144.0.0.45 member15-fpc29 144.0.0.46 member15-fpc30 144.0.0.47 member15-fpc31 #LCC 16 (or MEMBER 16 on Virtual Chassis) 145.0.0.1 lcc16-master member16-master 145.0.0.4 lcc16-re0 member16-re0 145.0.0.5 lcc16-re1 member16-re1 145.0.0.6 lcc16-backup member16-backup 145.0.0.16 member16-fpc0 145.0.0.17 member16-fpc1 145.0.0.18 member16-fpc2 145.0.0.19 member16-fpc3 145.0.0.20 member16-fpc4 145.0.0.21 member16-fpc5 145.0.0.22 member16-fpc6 145.0.0.23 member16-fpc7 145.0.0.24 member16-fpc8 145.0.0.25 member16-fpc9 145.0.0.26 member16-fpc10 145.0.0.27 member16-fpc11 145.0.0.28 member16-fpc12 145.0.0.29 member16-fpc13 145.0.0.30 member16-fpc14 145.0.0.31 member16-fpc15 145.0.0.32 member16-fpc16 145.0.0.33 member16-fpc17 145.0.0.34 member16-fpc18 145.0.0.35 member16-fpc19 145.0.0.36 member16-fpc20 145.0.0.37 member16-fpc21 145.0.0.38 member16-fpc22 145.0.0.39 member16-fpc23 145.0.0.40 member16-fpc24 145.0.0.41 member16-fpc25 145.0.0.42 member16-fpc26 145.0.0.43 member16-fpc27 145.0.0.44 member16-fpc28 145.0.0.45 member16-fpc29 145.0.0.46 member16-fpc30 145.0.0.47 member16-fpc31 #LCC 17 (or MEMBER 17 on Virtual Chassis) 146.0.0.1 lcc17-master member17-master 146.0.0.4 lcc17-re0 member17-re0 146.0.0.5 lcc17-re1 member17-re1 146.0.0.6 lcc17-backup member17-backup 146.0.0.16 member17-fpc0 146.0.0.17 member17-fpc1 146.0.0.18 member17-fpc2 146.0.0.19 member17-fpc3 146.0.0.20 member17-fpc4 146.0.0.21 member17-fpc5 146.0.0.22 member17-fpc6 146.0.0.23 member17-fpc7 146.0.0.24 member17-fpc8 146.0.0.25 member17-fpc9 146.0.0.26 member17-fpc10 146.0.0.27 member17-fpc11 146.0.0.28 member17-fpc12 146.0.0.29 member17-fpc13 146.0.0.30 member17-fpc14 146.0.0.31 member17-fpc15 146.0.0.32 member17-fpc16 146.0.0.33 member17-fpc17 146.0.0.34 member17-fpc18 146.0.0.35 member17-fpc19 146.0.0.36 member17-fpc20 146.0.0.37 member17-fpc21 146.0.0.38 member17-fpc22 146.0.0.39 member17-fpc23 146.0.0.40 member17-fpc24 146.0.0.41 member17-fpc25 146.0.0.42 member17-fpc26 146.0.0.43 member17-fpc27 146.0.0.44 member17-fpc28 146.0.0.45 member17-fpc29 146.0.0.46 member17-fpc30 146.0.0.47 member17-fpc31 #LCC 18 (or MEMBER 18 on Virtual Chassis) 147.0.0.1 lcc18-master member18-master 147.0.0.4 lcc18-re0 member18-re0 147.0.0.5 lcc18-re1 member18-re1 147.0.0.6 lcc18-backup member18-backup 147.0.0.16 member18-fpc0 147.0.0.17 member18-fpc1 147.0.0.18 member18-fpc2 147.0.0.19 member18-fpc3 147.0.0.20 member18-fpc4 147.0.0.21 member18-fpc5 147.0.0.22 member18-fpc6 147.0.0.23 member18-fpc7 147.0.0.24 member18-fpc8 147.0.0.25 member18-fpc9 147.0.0.26 member18-fpc10 147.0.0.27 member18-fpc11 147.0.0.28 member18-fpc12 147.0.0.29 member18-fpc13 147.0.0.30 member18-fpc14 147.0.0.31 member18-fpc15 147.0.0.32 member18-fpc16 147.0.0.33 member18-fpc17 147.0.0.34 member18-fpc18 147.0.0.35 member18-fpc19 147.0.0.36 member18-fpc20 147.0.0.37 member18-fpc21 147.0.0.38 member18-fpc22 147.0.0.39 member18-fpc23 147.0.0.40 member18-fpc24 147.0.0.41 member18-fpc25 147.0.0.42 member18-fpc26 147.0.0.43 member18-fpc27 147.0.0.44 member18-fpc28 147.0.0.45 member18-fpc29 147.0.0.46 member18-fpc30 147.0.0.47 member18-fpc31 #LCC 19 (or MEMBER 19 on Virtual Chassis) 148.0.0.1 lcc19-master member19-master 148.0.0.4 lcc19-re0 member19-re0 148.0.0.5 lcc19-re1 member19-re1 148.0.0.6 lcc19-backup member19-backup 148.0.0.16 member19-fpc0 148.0.0.17 member19-fpc1 148.0.0.18 member19-fpc2 148.0.0.19 member19-fpc3 148.0.0.20 member19-fpc4 148.0.0.21 member19-fpc5 148.0.0.22 member19-fpc6 148.0.0.23 member19-fpc7 148.0.0.24 member19-fpc8 148.0.0.25 member19-fpc9 148.0.0.26 member19-fpc10 148.0.0.27 member19-fpc11 148.0.0.28 member19-fpc12 148.0.0.29 member19-fpc13 148.0.0.30 member19-fpc14 148.0.0.31 member19-fpc15 148.0.0.32 member19-fpc16 148.0.0.33 member19-fpc17 148.0.0.34 member19-fpc18 148.0.0.35 member19-fpc19 148.0.0.36 member19-fpc20 148.0.0.37 member19-fpc21 148.0.0.38 member19-fpc22 148.0.0.39 member19-fpc23 148.0.0.40 member19-fpc24 148.0.0.41 member19-fpc25 148.0.0.42 member19-fpc26 148.0.0.43 member19-fpc27 148.0.0.44 member19-fpc28 148.0.0.45 member19-fpc29 148.0.0.46 member19-fpc30 148.0.0.47 member19-fpc31 #LCC 20 (or MEMBER 20 on Virtual Chassis) 149.0.0.1 lcc20-master member20-master 149.0.0.4 lcc20-re0 member20-re0 149.0.0.5 lcc20-re1 member20-re1 149.0.0.6 lcc20-backup member20-backup 149.0.0.16 member20-fpc0 149.0.0.17 member20-fpc1 149.0.0.18 member20-fpc2 149.0.0.19 member20-fpc3 149.0.0.20 member20-fpc4 149.0.0.21 member20-fpc5 149.0.0.22 member20-fpc6 149.0.0.23 member20-fpc7 149.0.0.24 member20-fpc8 149.0.0.25 member20-fpc9 149.0.0.26 member20-fpc10 149.0.0.27 member20-fpc11 149.0.0.28 member20-fpc12 149.0.0.29 member20-fpc13 149.0.0.30 member20-fpc14 149.0.0.31 member20-fpc15 149.0.0.32 member20-fpc16 149.0.0.33 member20-fpc17 149.0.0.34 member20-fpc18 149.0.0.35 member20-fpc19 149.0.0.36 member20-fpc20 149.0.0.37 member20-fpc21 149.0.0.38 member20-fpc22 149.0.0.39 member20-fpc23 149.0.0.40 member20-fpc24 149.0.0.41 member20-fpc25 149.0.0.42 member20-fpc26 149.0.0.43 member20-fpc27 149.0.0.44 member20-fpc28 149.0.0.45 member20-fpc29 149.0.0.46 member20-fpc30 149.0.0.47 member20-fpc31 #LCC 21 (or MEMBER 21 on Virtual Chassis) 150.0.0.1 lcc21-master member21-master 150.0.0.4 lcc21-re0 member21-re0 150.0.0.5 lcc21-re1 member21-re1 150.0.0.6 lcc21-backup member21-backup 150.0.0.16 member21-fpc0 150.0.0.17 member21-fpc1 150.0.0.18 member21-fpc2 150.0.0.19 member21-fpc3 150.0.0.20 member21-fpc4 150.0.0.21 member21-fpc5 150.0.0.22 member21-fpc6 150.0.0.23 member21-fpc7 150.0.0.24 member21-fpc8 150.0.0.25 member21-fpc9 150.0.0.26 member21-fpc10 150.0.0.27 member21-fpc11 150.0.0.28 member21-fpc12 150.0.0.29 member21-fpc13 150.0.0.30 member21-fpc14 150.0.0.31 member21-fpc15 150.0.0.32 member21-fpc16 150.0.0.33 member21-fpc17 150.0.0.34 member21-fpc18 150.0.0.35 member21-fpc19 150.0.0.36 member21-fpc20 150.0.0.37 member21-fpc21 150.0.0.38 member21-fpc22 150.0.0.39 member21-fpc23 150.0.0.40 member21-fpc24 150.0.0.41 member21-fpc25 150.0.0.42 member21-fpc26 150.0.0.43 member21-fpc27 150.0.0.44 member21-fpc28 150.0.0.45 member21-fpc29 150.0.0.46 member21-fpc30 150.0.0.47 member21-fpc31 #LCC 22 (or MEMBER 22 on Virtual Chassis) 151.0.0.1 lcc22-master member22-master 151.0.0.4 lcc22-re0 member22-re0 151.0.0.5 lcc22-re1 member22-re1 151.0.0.6 lcc22-backup member22-backup 151.0.0.16 member22-fpc0 151.0.0.17 member22-fpc1 151.0.0.18 member22-fpc2 151.0.0.19 member22-fpc3 151.0.0.20 member22-fpc4 151.0.0.21 member22-fpc5 151.0.0.22 member22-fpc6 151.0.0.23 member22-fpc7 151.0.0.24 member22-fpc8 151.0.0.25 member22-fpc9 151.0.0.26 member22-fpc10 151.0.0.27 member22-fpc11 151.0.0.28 member22-fpc12 151.0.0.29 member22-fpc13 151.0.0.30 member22-fpc14 151.0.0.31 member22-fpc15 151.0.0.32 member22-fpc16 151.0.0.33 member22-fpc17 151.0.0.34 member22-fpc18 151.0.0.35 member22-fpc19 151.0.0.36 member22-fpc20 151.0.0.37 member22-fpc21 151.0.0.38 member22-fpc22 151.0.0.39 member22-fpc23 151.0.0.40 member22-fpc24 151.0.0.41 member22-fpc25 151.0.0.42 member22-fpc26 151.0.0.43 member22-fpc27 151.0.0.44 member22-fpc28 151.0.0.45 member22-fpc29 151.0.0.46 member22-fpc30 151.0.0.47 member22-fpc31 #LCC 23 (or MEMBER 23 on Virtual Chassis) 152.0.0.1 lcc23-master member23-master 152.0.0.4 lcc23-re0 member23-re0 152.0.0.5 lcc23-re1 member23-re1 152.0.0.6 lcc23-backup member23-backup 152.0.0.16 member23-fpc0 152.0.0.17 member23-fpc1 152.0.0.18 member23-fpc2 152.0.0.19 member23-fpc3 152.0.0.20 member23-fpc4 152.0.0.21 member23-fpc5 152.0.0.22 member23-fpc6 152.0.0.23 member23-fpc7 152.0.0.24 member23-fpc8 152.0.0.25 member23-fpc9 152.0.0.26 member23-fpc10 152.0.0.27 member23-fpc11 152.0.0.28 member23-fpc12 152.0.0.29 member23-fpc13 152.0.0.30 member23-fpc14 152.0.0.31 member23-fpc15 152.0.0.32 member23-fpc16 152.0.0.33 member23-fpc17 152.0.0.34 member23-fpc18 152.0.0.35 member23-fpc19 152.0.0.36 member23-fpc20 152.0.0.37 member23-fpc21 152.0.0.38 member23-fpc22 152.0.0.39 member23-fpc23 152.0.0.40 member23-fpc24 152.0.0.41 member23-fpc25 152.0.0.42 member23-fpc26 152.0.0.43 member23-fpc27 152.0.0.44 member23-fpc28 152.0.0.45 member23-fpc29 152.0.0.46 member23-fpc30 152.0.0.47 member23-fpc31 #LCC 24 (or MEMBER 24 on Virtual Chassis) 153.0.0.1 lcc24-master member24-master 153.0.0.4 lcc24-re0 member24-re0 153.0.0.5 lcc24-re1 member24-re1 153.0.0.6 lcc24-backup member24-backup 153.0.0.16 member24-fpc0 153.0.0.17 member24-fpc1 153.0.0.18 member24-fpc2 153.0.0.19 member24-fpc3 153.0.0.20 member24-fpc4 153.0.0.21 member24-fpc5 153.0.0.22 member24-fpc6 153.0.0.23 member24-fpc7 153.0.0.24 member24-fpc8 153.0.0.25 member24-fpc9 153.0.0.26 member24-fpc10 153.0.0.27 member24-fpc11 153.0.0.28 member24-fpc12 153.0.0.29 member24-fpc13 153.0.0.30 member24-fpc14 153.0.0.31 member24-fpc15 153.0.0.32 member24-fpc16 153.0.0.33 member24-fpc17 153.0.0.34 member24-fpc18 153.0.0.35 member24-fpc19 153.0.0.36 member24-fpc20 153.0.0.37 member24-fpc21 153.0.0.38 member24-fpc22 153.0.0.39 member24-fpc23 153.0.0.40 member24-fpc24 153.0.0.41 member24-fpc25 153.0.0.42 member24-fpc26 153.0.0.43 member24-fpc27 153.0.0.44 member24-fpc28 153.0.0.45 member24-fpc29 153.0.0.46 member24-fpc30 153.0.0.47 member24-fpc31 #LCC 25 (or MEMBER 25 on Virtual Chassis) 154.0.0.1 lcc25-master member25-master 154.0.0.4 lcc25-re0 member25-re0 154.0.0.5 lcc25-re1 member25-re1 154.0.0.6 lcc25-backup member25-backup 154.0.0.16 member25-fpc0 154.0.0.17 member25-fpc1 154.0.0.18 member25-fpc2 154.0.0.19 member25-fpc3 154.0.0.20 member25-fpc4 154.0.0.21 member25-fpc5 154.0.0.22 member25-fpc6 154.0.0.23 member25-fpc7 154.0.0.24 member25-fpc8 154.0.0.25 member25-fpc9 154.0.0.26 member25-fpc10 154.0.0.27 member25-fpc11 154.0.0.28 member25-fpc12 154.0.0.29 member25-fpc13 154.0.0.30 member25-fpc14 154.0.0.31 member25-fpc15 154.0.0.32 member25-fpc16 154.0.0.33 member25-fpc17 154.0.0.34 member25-fpc18 154.0.0.35 member25-fpc19 154.0.0.36 member25-fpc20 154.0.0.37 member25-fpc21 154.0.0.38 member25-fpc22 154.0.0.39 member25-fpc23 154.0.0.40 member25-fpc24 154.0.0.41 member25-fpc25 154.0.0.42 member25-fpc26 154.0.0.43 member25-fpc27 154.0.0.44 member25-fpc28 154.0.0.45 member25-fpc29 154.0.0.46 member25-fpc30 154.0.0.47 member25-fpc31 #LCC 26 (or MEMBER 26 on Virtual Chassis) 155.0.0.1 lcc26-master member26-master 155.0.0.4 lcc26-re0 member26-re0 155.0.0.5 lcc26-re1 member26-re1 155.0.0.6 lcc26-backup member26-backup 155.0.0.16 member26-fpc0 155.0.0.17 member26-fpc1 155.0.0.18 member26-fpc2 155.0.0.19 member26-fpc3 155.0.0.20 member26-fpc4 155.0.0.21 member26-fpc5 155.0.0.22 member26-fpc6 155.0.0.23 member26-fpc7 155.0.0.24 member26-fpc8 155.0.0.25 member26-fpc9 155.0.0.26 member26-fpc10 155.0.0.27 member26-fpc11 155.0.0.28 member26-fpc12 155.0.0.29 member26-fpc13 155.0.0.30 member26-fpc14 155.0.0.31 member26-fpc15 155.0.0.32 member26-fpc16 155.0.0.33 member26-fpc17 155.0.0.34 member26-fpc18 155.0.0.35 member26-fpc19 155.0.0.36 member26-fpc20 155.0.0.37 member26-fpc21 155.0.0.38 member26-fpc22 155.0.0.39 member26-fpc23 155.0.0.40 member26-fpc24 155.0.0.41 member26-fpc25 155.0.0.42 member26-fpc26 155.0.0.43 member26-fpc27 155.0.0.44 member26-fpc28 155.0.0.45 member26-fpc29 155.0.0.46 member26-fpc30 155.0.0.47 member26-fpc31 #LCC 27 (or MEMBER 27 on Virtual Chassis) 156.0.0.1 lcc27-master member27-master 156.0.0.4 lcc27-re0 member27-re0 156.0.0.5 lcc27-re1 member27-re1 156.0.0.6 lcc27-backup member27-backup 156.0.0.16 member27-fpc0 156.0.0.17 member27-fpc1 156.0.0.18 member27-fpc2 156.0.0.19 member27-fpc3 156.0.0.20 member27-fpc4 156.0.0.21 member27-fpc5 156.0.0.22 member27-fpc6 156.0.0.23 member27-fpc7 156.0.0.24 member27-fpc8 156.0.0.25 member27-fpc9 156.0.0.26 member27-fpc10 156.0.0.27 member27-fpc11 156.0.0.28 member27-fpc12 156.0.0.29 member27-fpc13 156.0.0.30 member27-fpc14 156.0.0.31 member27-fpc15 156.0.0.32 member27-fpc16 156.0.0.33 member27-fpc17 156.0.0.34 member27-fpc18 156.0.0.35 member27-fpc19 156.0.0.36 member27-fpc20 156.0.0.37 member27-fpc21 156.0.0.38 member27-fpc22 156.0.0.39 member27-fpc23 156.0.0.40 member27-fpc24 156.0.0.41 member27-fpc25 156.0.0.42 member27-fpc26 156.0.0.43 member27-fpc27 156.0.0.44 member27-fpc28 156.0.0.45 member27-fpc29 156.0.0.46 member27-fpc30 156.0.0.47 member27-fpc31 #LCC 28 (or MEMBER 28 on Virtual Chassis) 157.0.0.1 lcc28-master member28-master 157.0.0.4 lcc28-re0 member28-re0 157.0.0.5 lcc28-re1 member28-re1 157.0.0.6 lcc28-backup member28-backup 157.0.0.16 member28-fpc0 157.0.0.17 member28-fpc1 157.0.0.18 member28-fpc2 157.0.0.19 member28-fpc3 157.0.0.20 member28-fpc4 157.0.0.21 member28-fpc5 157.0.0.22 member28-fpc6 157.0.0.23 member28-fpc7 157.0.0.24 member28-fpc8 157.0.0.25 member28-fpc9 157.0.0.26 member28-fpc10 157.0.0.27 member28-fpc11 157.0.0.28 member28-fpc12 157.0.0.29 member28-fpc13 157.0.0.30 member28-fpc14 157.0.0.31 member28-fpc15 157.0.0.32 member28-fpc16 157.0.0.33 member28-fpc17 157.0.0.34 member28-fpc18 157.0.0.35 member28-fpc19 157.0.0.36 member28-fpc20 157.0.0.37 member28-fpc21 157.0.0.38 member28-fpc22 157.0.0.39 member28-fpc23 157.0.0.40 member28-fpc24 157.0.0.41 member28-fpc25 157.0.0.42 member28-fpc26 157.0.0.43 member28-fpc27 157.0.0.44 member28-fpc28 157.0.0.45 member28-fpc29 157.0.0.46 member28-fpc30 157.0.0.47 member28-fpc31 #LCC 29 (or MEMBER 29 on Virtual Chassis) 158.0.0.1 lcc29-master member29-master 158.0.0.4 lcc29-re0 member29-re0 158.0.0.5 lcc29-re1 member29-re1 158.0.0.6 lcc29-backup member29-backup 158.0.0.16 member29-fpc0 158.0.0.17 member29-fpc1 158.0.0.18 member29-fpc2 158.0.0.19 member29-fpc3 158.0.0.20 member29-fpc4 158.0.0.21 member29-fpc5 158.0.0.22 member29-fpc6 158.0.0.23 member29-fpc7 158.0.0.24 member29-fpc8 158.0.0.25 member29-fpc9 158.0.0.26 member29-fpc10 158.0.0.27 member29-fpc11 158.0.0.28 member29-fpc12 158.0.0.29 member29-fpc13 158.0.0.30 member29-fpc14 158.0.0.31 member29-fpc15 158.0.0.32 member29-fpc16 158.0.0.33 member29-fpc17 158.0.0.34 member29-fpc18 158.0.0.35 member29-fpc19 158.0.0.36 member29-fpc20 158.0.0.37 member29-fpc21 158.0.0.38 member29-fpc22 158.0.0.39 member29-fpc23 158.0.0.40 member29-fpc24 158.0.0.41 member29-fpc25 158.0.0.42 member29-fpc26 158.0.0.43 member29-fpc27 158.0.0.44 member29-fpc28 158.0.0.45 member29-fpc29 158.0.0.46 member29-fpc30 158.0.0.47 member29-fpc31 #LCC 30 (or MEMBER 30 on Virtual Chassis) 159.0.0.1 lcc30-master member30-master 159.0.0.4 lcc30-re0 member30-re0 159.0.0.5 lcc30-re1 member30-re1 159.0.0.6 lcc30-backup member30-backup 159.0.0.16 member30-fpc0 159.0.0.17 member30-fpc1 159.0.0.18 member30-fpc2 159.0.0.19 member30-fpc3 159.0.0.20 member30-fpc4 159.0.0.21 member30-fpc5 159.0.0.22 member30-fpc6 159.0.0.23 member30-fpc7 159.0.0.24 member30-fpc8 159.0.0.25 member30-fpc9 159.0.0.26 member30-fpc10 159.0.0.27 member30-fpc11 159.0.0.28 member30-fpc12 159.0.0.29 member30-fpc13 159.0.0.30 member30-fpc14 159.0.0.31 member30-fpc15 159.0.0.32 member30-fpc16 159.0.0.33 member30-fpc17 159.0.0.34 member30-fpc18 159.0.0.35 member30-fpc19 159.0.0.36 member30-fpc20 159.0.0.37 member30-fpc21 159.0.0.38 member30-fpc22 159.0.0.39 member30-fpc23 159.0.0.40 member30-fpc24 159.0.0.41 member30-fpc25 159.0.0.42 member30-fpc26 159.0.0.43 member30-fpc27 159.0.0.44 member30-fpc28 159.0.0.45 member30-fpc29 159.0.0.46 member30-fpc30 159.0.0.47 member30-fpc31 #LCC 31 (or MEMBER 31 on Virtual Chassis) 160.0.0.1 lcc31-master member31-master 160.0.0.4 lcc31-re0 member31-re0 160.0.0.5 lcc31-re1 member31-re1 160.0.0.6 lcc31-backup member31-backup 160.0.0.16 member31-fpc0 160.0.0.17 member31-fpc1 160.0.0.18 member31-fpc2 160.0.0.19 member31-fpc3 160.0.0.20 member31-fpc4 160.0.0.21 member31-fpc5 160.0.0.22 member31-fpc6 160.0.0.23 member31-fpc7 160.0.0.24 member31-fpc8 160.0.0.25 member31-fpc9 160.0.0.26 member31-fpc10 160.0.0.27 member31-fpc11 160.0.0.28 member31-fpc12 160.0.0.29 member31-fpc13 160.0.0.30 member31-fpc14 160.0.0.31 member31-fpc15 160.0.0.32 member31-fpc16 160.0.0.33 member31-fpc17 160.0.0.34 member31-fpc18 160.0.0.35 member31-fpc19 160.0.0.36 member31-fpc20 160.0.0.37 member31-fpc21 160.0.0.38 member31-fpc22 160.0.0.39 member31-fpc23 160.0.0.40 member31-fpc24 160.0.0.41 member31-fpc25 160.0.0.42 member31-fpc26 160.0.0.43 member31-fpc27 160.0.0.44 member31-fpc28 160.0.0.45 member31-fpc29 160.0.0.46 member31-fpc30 160.0.0.47 member31-fpc31 #VIRT SC 161.0.0.1 sc-master 161.0.0.4 sc-re0 161.0.0.5 sc-re1 161.0.0.6 sc-backup #SFC 0 162.0.0.1 sfc0-master 162.0.0.4 sfc0-re0 162.0.0.5 sfc0-re1 162.0.0.6 sfc0-backup 162.0.0.48 sfc0-spmb0 162.0.0.49 sfc0-spmb1 #SFC 1 163.0.0.1 sfc1-master 163.0.0.4 sfc1-re0 163.0.0.5 sfc1-re1 163.0.0.6 sfc1-backup 163.0.0.48 sfc1-spmb0 163.0.0.49 sfc1-spmb1 #SFC 2 164.0.0.1 sfc2-master 164.0.0.4 sfc2-re0 164.0.0.5 sfc2-re1 164.0.0.6 sfc2-backup 164.0.0.48 sfc2-spmb0 164.0.0.49 sfc2-spmb1 #SFC 3 165.0.0.1 sfc3-master 165.0.0.4 sfc3-re0 165.0.0.5 sfc3-re1 165.0.0.6 sfc3-backup 165.0.0.48 sfc3-spmb0 165.0.0.49 sfc3-spmb1 #SFC 4 166.0.0.1 sfc4-master 166.0.0.4 sfc4-re0 166.0.0.5 sfc4-re1 166.0.0.6 sfc4-backup 166.0.0.48 sfc4-spmb0 166.0.0.49 sfc4-spmb1 #JCS 190.0.0.1 psd%d-master 190.0.0.4 psd%d-re0 190.0.0.5 psd%d-re1 190.0.0.6 psd%d-backup # Old IP address format (RT_IRS_V2) # # Single Chassis Hostnames # 10.0.0.1 master 10.0.0.4 re0 10.0.0.5 re1 10.0.0.16 fpc0 10.0.0.17 fpc1 10.0.0.18 fpc2 10.0.0.19 fpc3 10.0.0.20 fpc4 10.0.0.21 fpc5 10.0.0.22 fpc6 10.0.0.23 fpc7 10.0.0.24 fpc8 10.0.0.25 fpc9 10.0.0.26 fpc10 10.0.0.27 fpc11 10.0.0.28 fpc12 10.0.0.29 fpc13 10.0.0.30 fpc14 10.0.0.31 fpc15 # # Multi Chassis Hostnames # #SCC 10.16.0.1 scc-master 10.16.0.4 scc-re0 10.16.0.5 scc-re1 #LCC 0 10.1.0.1 lcc0-master member0-master 10.1.0.4 lcc0-re0 member0-re0 10.1.0.5 lcc0-re1 member0-re1 10.1.0.6 lcc0-backup member0-backup #LCC 1 10.2.0.1 lcc1-master member1-master 10.2.0.4 lcc1-re0 member1-re0 10.2.0.5 lcc1-re1 member1-re1 10.2.0.6 lcc1-backup member1-backup #LCC 2 10.3.0.1 lcc2-master member2-master 10.3.0.4 lcc2-re0 member2-re0 10.3.0.5 lcc2-re1 member2-re1 10.3.0.6 lcc2-backup member2-backup #LCC 3 10.4.0.1 lcc3-master member3-master 10.4.0.4 lcc3-re0 member3-re0 10.4.0.5 lcc3-re1 member3-re1 10.4.0.6 lcc3-backup member3-backup #LCC 4 10.5.0.1 lcc4-master member4-master 10.5.0.4 lcc4-re0 member4-re0 10.5.0.5 lcc4-re1 member4-re1 10.5.0.6 lcc4-backup member4-backup #LCC 5 10.6.0.1 lcc5-master member5-master 10.6.0.4 lcc5-re0 member5-re0 10.6.0.5 lcc5-re1 member5-re1 10.6.0.6 lcc5-backup member5-backup #LCC 6 10.7.0.1 lcc6-master member6-master 10.7.0.4 lcc6-re0 member6-re0 10.7.0.5 lcc6-re1 member6-re1 10.7.0.6 lcc6-backup member6-backup #LCC 7 10.8.0.1 lcc7-master member7-master 10.8.0.4 lcc7-re0 member7-re0 10.8.0.5 lcc7-re1 member7-re1 10.8.0.6 lcc7-backup member7-backup #LCC 8 10.9.0.1 lcc8-master member8-master 10.9.0.4 lcc8-re0 member8-re0 10.9.0.5 lcc8-re1 member8-re1 10.9.0.6 lcc8-backup member8-backup #LCC 9 10.10.0.1 lcc9-master member9-master 10.10.0.4 lcc9-re0 member9-re0 10.10.0.5 lcc9-re1 member9-re1 10.10.0.6 lcc9-backup member9-backup #LCC 10 10.11.0.1 lcc10-master member10-master 10.11.0.4 lcc10-re0 member10-re0 10.11.0.5 lcc10-re1 member10-re1 10.11.0.6 lcc10-backup member10-backup #LCC 11 10.12.0.1 lcc11-master member11-master 10.12.0.4 lcc11-re0 member11-re0 10.12.0.5 lcc11-re1 member11-re1 10.12.0.6 lcc11-backup member11-backup #LCC 12 10.13.0.1 lcc12-master member12-master 10.13.0.4 lcc12-re0 member12-re0 10.13.0.5 lcc12-re1 member12-re1 10.13.0.6 lcc12-backup member12-backup #LCC 13 10.14.0.1 lcc13-master member13-master 10.14.0.4 lcc13-re0 member13-re0 10.14.0.5 lcc13-re1 member13-re1 10.14.0.6 lcc13-backup member13-backup #LCC 14 10.15.0.1 lcc14-master member14-master 10.15.0.4 lcc14-re0 member14-re0 10.15.0.5 lcc14-re1 member14-re1 10.15.0.6 lcc14-backup member14-backup #LCC 15 10.16.0.1 lcc15-master member15-master 10.16.0.4 lcc15-re0 member15-re0 10.16.0.5 lcc15-re1 member15-re1 10.16.0.6 lcc15-backup member15-backup #SFC 0 10.34.0.1 sfc0-master 10.34.0.4 sfc0-re0 10.34.0.5 sfc0-re1 #SFC 1 10.35.0.1 sfc1-master 10.35.0.4 sfc1-re0 10.35.0.5 sfc1-re1 #SFC 2 10.36.0.1 sfc2-master 10.36.0.4 sfc2-re0 10.36.0.5 sfc2-re1 #SFC 3 10.37.0.1 sfc3-master 10.37.0.4 sfc3-re0 10.37.0.5 sfc3-re1 #SFC 4 10.38.0.1 sfc4-master 10.38.0.4 sfc4-re0 10.38.0.5 sfc4-re1 # End of internal names py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/personality_mx_get-interface-information.xml000066400000000000000000000167361475361112400323420ustar00rootroot00000000000000 lc-0/0/0.32769 up up vpls pfe-0/0/0.16383 up up inet inet6 pfh-0/0/0.16383 up up inet em0.0 up up inet 10.0.0.4/8 128.0.0.1/2 128.0.0.4/2 inet6 fe80::200:ff:fe00:4/64 fec0::a:0:0:4/64 tnp 0x4 em1.0 up down inet 10.0.0.1/8 128.0.0.1/2 tnp 0x4 lo0.16385 up up inet py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/personality_mx_get-route-engine-information.xml000066400000000000000000000040001475361112400327600ustar00rootroot00000000000000 OK 48 degrees C / 118 degrees F 59 degrees C / 138 degrees F 2048 MB (2048 MB installed) 50 0 0 7 0 92 1 0 7 0 92 1 0 7 0 92 1 0 7 1 92 RE-MX80 S/N ZE1056 2016-07-20 07:44:04 PDT 165 days, 6 hours, 35 minutes, 48 seconds Router rebooted after a normal shutdown. 0.04 0.07 0.08 py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/personality_olive_command.xml000066400000000000000000000127041475361112400274010ustar00rootroot00000000000000 sw-olive03 olive olive 14.1R1.10 junos JUNOS Base OS boot [14.1R1.10] jbase JUNOS Base OS Software Suite [14.1R1.10] jkernel JUNOS Kernel Software Suite [14.1R1.10] jcrypto JUNOS Crypto Software Suite [14.1R1.10] jpfe-common JUNOS Packet Forwarding Engine Support (M/T/EX Common) [14.1R1.10] jpfe JUNOS Packet Forwarding Engine Support (M20/M40) [14.1R1.10] jdocs JUNOS Online Documentation [14.1R1.10] jservices-aacl JUNOS Services AACL Container package [14.1R1.10] jservices-alg JUNOS Services Application Level Gateways [14.1R1.10] jservices-appid JUNOS AppId Services [14.1R1.10] jservices-bgf JUNOS Border Gateway Function package [14.1R1.10] jservices-cpcd JUNOS Services Captive Portal and Content Delivery Container package [14.1R1.10] jservices-hcm JUNOS Services HTTP Content Management package [14.1R1.10] jservices-idp JUNOS IDP Services [14.1R1.10] jservices-jflow JUNOS Services Jflow Container package [14.1R1.10] jservices-llpdf JUNOS Services LL-PDF Container package [14.1R1.10] jservices-mobile JUNOS Services MobileNext Software package [14.1R1.10] jservices-mss JUNOS Services Mobile Subscriber Service Container package [14.1R1.10] jservices-nat JUNOS Services NAT [14.1R1.10] jservices-ptsp JUNOS Services PTSP Container package [14.1R1.10] jservices-rpm JUNOS Services RPM [14.1R1.10] jservices-sfw JUNOS Services Stateful Firewall [14.1R1.10] jservices-voice JUNOS Voice Services Container package [14.1R1.10] jservices-crypto-base JUNOS Services Crypto [14.1R1.10] jservices-ssl JUNOS Services SSL [14.1R1.10] jservices-ipsec JUNOS Services IPSec [14.1R1.10] jplatform JUNOS platform Software Suite [14.1R1.10] jroute JUNOS Routing Software Suite [14.1R1.10] jruntime JUNOS Runtime Software Suite [14.1R1.10] py-base-i386 JUNOS py-base-i386 [14.1R1.10] py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/personality_olive_file-show.xml000066400000000000000000000757421475361112400276730ustar00rootroot00000000000000 #$Id: hosts.junos,v 1.7.72.1 2009-04-16 05:22:03 kdickman Exp $ # # File mapping AF_INET/AF_INET6 hostnames for REs on Single and Multichassis # systems # # This file is looked at before /etc/hosts by gethostbyname(3), # gethostbyname2(3) and getaddrinfo(3) # # The IP addresses in this file are only used for communication between REs # over the Internal Routing Instances # # WARNING: # # The names in this file are effectively reserved for internal use. # # New IP address format (RT_IRS_V3) # # Single Chassis Hostnames # 128.0.0.1 master 128.0.0.1 node 128.0.0.1 fwdd 128.0.0.1 member 128.0.0.1 pfem 128.0.0.2 scb 128.0.0.2 sbr 128.0.0.2 ssb 128.0.0.2 feb 128.0.0.2 cfeb0 128.0.0.2 cfeb 128.0.0.2 cpp0 128.0.0.3 cfeb1 128.0.0.3 cpp1 128.0.0.4 re0 128.0.0.5 re1 128.0.0.6 backup 128.0.0.8 sfm0 128.0.0.9 sfm1 128.0.0.10 sfm2 128.0.0.16 fpc0 128.0.0.17 fpc1 128.0.0.18 fpc2 128.0.0.19 fpc3 128.0.0.20 fpc4 128.0.0.21 fpc5 128.0.0.22 fpc6 128.0.0.23 fpc7 128.0.0.24 fpc8 128.0.0.25 fpc9 128.0.0.26 fpc10 128.0.0.27 fpc11 128.0.0.28 fpc12 128.0.0.29 fpc13 128.0.0.30 fpc14 128.0.0.31 fpc15 128.0.0.32 feb0 128.0.0.32 fpc16 128.0.0.33 feb1 128.0.0.33 fpc17 128.0.0.34 feb2 128.0.0.34 fpc18 128.0.0.35 feb3 128.0.0.35 fpc19 128.0.0.36 feb4 128.0.0.37 feb5 128.0.0.48 spmb0 128.0.0.49 spmb1 128.0.0.50 tfeb0 128.0.0.50 afeb0 128.0.0.53 esc0 128.0.0.54 esc1 128.0.0.55 esc0-ipmi 128.0.0.56 esc1-ipmi 128.0.1.16 fpc0.pic0 128.0.1.17 fpc1.pic0 128.0.1.18 fpc2.pic0 128.0.1.19 fpc3.pic0 128.0.1.20 fpc4.pic0 128.0.1.21 fpc5.pic0 128.0.1.22 fpc6.pic0 128.0.1.23 fpc7.pic0 128.0.1.24 fpc8.pic0 128.0.1.25 fpc9.pic0 128.0.1.26 fpc10.pic0 128.0.1.27 fpc11.pic0 128.0.1.28 fpc12.pic0 128.0.1.29 fpc13.pic0 128.0.1.30 fpc14.pic0 128.0.1.31 fpc15.pic0 128.0.2.16 fpc0.pic1 128.0.2.17 fpc1.pic1 128.0.2.18 fpc2.pic1 128.0.2.19 fpc3.pic1 128.0.2.20 fpc4.pic1 128.0.2.21 fpc5.pic1 128.0.2.22 fpc6.pic1 128.0.2.23 fpc7.pic1 128.0.2.24 fpc8.pic1 128.0.2.25 fpc9.pic1 128.0.2.26 fpc10.pic1 128.0.2.27 fpc11.pic1 128.0.2.28 fpc12.pic1 128.0.2.29 fpc13.pic1 128.0.2.30 fpc14.pic1 128.0.2.31 fpc15.pic1 128.0.3.16 fpc0.pic2 128.0.3.17 fpc1.pic2 128.0.3.18 fpc2.pic2 128.0.3.19 fpc3.pic2 128.0.3.20 fpc4.pic2 128.0.3.21 fpc5.pic2 128.0.3.22 fpc6.pic2 128.0.3.23 fpc7.pic2 128.0.3.24 fpc8.pic2 128.0.3.25 fpc9.pic2 128.0.3.26 fpc10.pic2 128.0.3.27 fpc11.pic2 128.0.3.28 fpc12.pic2 128.0.3.29 fpc13.pic2 128.0.3.30 fpc14.pic2 128.0.3.31 fpc15.pic2 128.0.4.16 fpc0.pic3 128.0.4.17 fpc1.pic3 128.0.4.18 fpc2.pic3 128.0.4.19 fpc3.pic3 128.0.4.20 fpc4.pic3 128.0.4.21 fpc5.pic3 128.0.4.22 fpc6.pic3 128.0.4.23 fpc7.pic3 128.0.4.24 fpc8.pic3 128.0.4.25 fpc9.pic3 128.0.4.26 fpc10.pic3 128.0.4.27 fpc11.pic3 128.0.4.28 fpc12.pic3 128.0.4.29 fpc13.pic3 128.0.4.30 fpc14.pic3 128.0.4.31 fpc15.pic3 # # DCF-Root Hostname # 128.0.130.2 dcf-root # # Multi Chassis Hostnames # #SCC 144.0.0.1 scc-master 144.0.0.4 scc-re0 144.0.0.5 scc-re1 144.0.0.6 scc-backup 144.0.0.48 scc-spmb0 144.0.0.49 scc-spmb1 #LCC 0 (or MEMBER 0 on Virtual Chassis) 129.0.0.1 lcc0-master member0-master member0 129.0.0.4 lcc0-re0 member0-re0 129.0.0.5 lcc0-re1 member0-re1 129.0.0.6 lcc0-backup member0-backup 129.0.0.16 member0-fpc0 129.0.0.17 member0-fpc1 129.0.0.18 member0-fpc2 129.0.0.19 member0-fpc3 129.0.0.20 member0-fpc4 129.0.0.21 member0-fpc5 129.0.0.22 member0-fpc6 129.0.0.23 member0-fpc7 129.0.0.24 member0-fpc8 129.0.0.25 member0-fpc9 129.0.0.26 member0-fpc10 129.0.0.27 member0-fpc11 129.0.0.28 member0-fpc12 129.0.0.29 member0-fpc13 129.0.0.30 member0-fpc14 129.0.0.31 member0-fpc15 129.0.0.6 lcc0-backup 129.0.0.16 lcc0-fpc0 129.0.0.17 lcc0-fpc1 129.0.0.18 lcc0-fpc2 129.0.0.19 lcc0-fpc3 129.0.0.20 lcc0-fpc4 129.0.0.21 lcc0-fpc5 129.0.0.22 lcc0-fpc6 129.0.0.23 lcc0-fpc7 129.0.0.48 lcc0-spmb0 129.0.0.49 lcc0-spmb1 #LCC 1 (or MEMBER 1 on Virtual Chassis) 130.0.0.1 lcc1-master member1-master member1 130.0.0.4 lcc1-re0 member1-re0 130.0.0.5 lcc1-re1 member1-re1 130.0.0.6 lcc1-backup member1-backup 130.0.0.16 member1-fpc0 130.0.0.17 member1-fpc1 130.0.0.18 member1-fpc2 130.0.0.19 member1-fpc3 130.0.0.20 member1-fpc4 130.0.0.21 member1-fpc5 130.0.0.22 member1-fpc6 130.0.0.23 member1-fpc7 130.0.0.24 member1-fpc8 130.0.0.25 member1-fpc9 130.0.0.26 member1-fpc10 130.0.0.27 member1-fpc11 130.0.0.28 member1-fpc12 130.0.0.29 member1-fpc13 130.0.0.30 member1-fpc14 130.0.0.31 member1-fpc15 130.0.0.6 lcc1-backup 130.0.0.16 lcc1-fpc0 130.0.0.17 lcc1-fpc1 130.0.0.18 lcc1-fpc2 130.0.0.19 lcc1-fpc3 130.0.0.20 lcc1-fpc4 130.0.0.21 lcc1-fpc5 130.0.0.22 lcc1-fpc6 130.0.0.23 lcc1-fpc7 130.0.0.48 lcc1-spmb0 130.0.0.49 lcc1-spmb1 #LCC 2 (or MEMBER 2 on Virtual Chassis) 131.0.0.1 lcc2-master member2-master member2 131.0.0.4 lcc2-re0 member2-re0 131.0.0.5 lcc2-re1 member2-re1 131.0.0.6 lcc2-backup member2-backup 131.0.0.16 member2-fpc0 131.0.0.17 member2-fpc1 131.0.0.18 member2-fpc2 131.0.0.19 member2-fpc3 131.0.0.20 member2-fpc4 131.0.0.21 member2-fpc5 131.0.0.22 member2-fpc6 131.0.0.23 member2-fpc7 131.0.0.24 member2-fpc8 131.0.0.25 member2-fpc9 131.0.0.26 member2-fpc10 131.0.0.27 member2-fpc11 131.0.0.28 member2-fpc12 131.0.0.29 member2-fpc13 131.0.0.30 member2-fpc14 131.0.0.31 member2-fpc15 131.0.0.6 lcc2-backup 131.0.0.16 lcc2-fpc0 131.0.0.17 lcc2-fpc1 131.0.0.18 lcc2-fpc2 131.0.0.19 lcc2-fpc3 131.0.0.20 lcc2-fpc4 131.0.0.21 lcc2-fpc5 131.0.0.22 lcc2-fpc6 131.0.0.23 lcc2-fpc7 131.0.0.48 lcc2-spmb0 131.0.0.49 lcc20-spmb1 #LCC 3 (or MEMBER 3 on Virtual Chassis) 132.0.0.1 lcc3-master member3-master member3 132.0.0.4 lcc3-re0 member3-re0 132.0.0.5 lcc3-re1 member3-re1 132.0.0.6 lcc3-backup member3-backup 132.0.0.16 member3-fpc0 132.0.0.17 member3-fpc1 132.0.0.18 member3-fpc2 132.0.0.19 member3-fpc3 132.0.0.20 member3-fpc4 132.0.0.21 member3-fpc5 132.0.0.22 member3-fpc6 132.0.0.23 member3-fpc7 132.0.0.24 member3-fpc8 132.0.0.25 member3-fpc9 132.0.0.26 member3-fpc10 132.0.0.27 member3-fpc11 132.0.0.28 member3-fpc12 132.0.0.29 member3-fpc13 132.0.0.30 member3-fpc14 132.0.0.31 member3-fpc15 132.0.0.6 lcc3-backup 132.0.0.16 lcc3-fpc0 132.0.0.17 lcc3-fpc1 132.0.0.18 lcc3-fpc2 132.0.0.19 lcc3-fpc3 132.0.0.20 lcc3-fpc4 132.0.0.21 lcc3-fpc5 132.0.0.22 lcc3-fpc6 132.0.0.23 lcc3-fpc7 132.0.0.48 lcc3-spmb0 132.0.0.49 lcc3-spmb1 #LCC 4 (or MEMBER 4 on Virtual Chassis) 133.0.0.1 lcc4-master member4-master member4 133.0.0.4 lcc4-re0 member4-re0 133.0.0.5 lcc4-re1 member4-re1 133.0.0.6 lcc4-backup member4-backup 133.0.0.16 member4-fpc0 133.0.0.17 member4-fpc1 133.0.0.18 member4-fpc2 133.0.0.19 member4-fpc3 133.0.0.20 member4-fpc4 133.0.0.21 member4-fpc5 133.0.0.22 member4-fpc6 133.0.0.23 member4-fpc7 133.0.0.24 member4-fpc8 133.0.0.25 member4-fpc9 133.0.0.26 member4-fpc10 133.0.0.27 member4-fpc11 133.0.0.28 member4-fpc12 133.0.0.29 member4-fpc13 133.0.0.30 member4-fpc14 133.0.0.31 member4-fpc15 133.0.0.6 lcc4-backup 133.0.0.16 lcc4-fpc0 133.0.0.17 lcc4-fpc1 133.0.0.18 lcc4-fpc2 133.0.0.19 lcc4-fpc3 133.0.0.20 lcc4-fpc4 133.0.0.21 lcc4-fpc5 133.0.0.22 lcc4-fpc6 133.0.0.23 lcc4-fpc7 133.0.0.48 lcc4-spmb0 133.0.0.49 lcc4-spmb1 #LCC 5 (or MEMBER 5 on Virtual Chassis) 134.0.0.1 lcc5-master member5-master member5 134.0.0.4 lcc5-re0 member5-re0 134.0.0.5 lcc5-re1 member5-re1 134.0.0.6 lcc5-backup member5-backup 134.0.0.16 member5-fpc0 134.0.0.17 member5-fpc1 134.0.0.18 member5-fpc2 134.0.0.19 member5-fpc3 134.0.0.20 member5-fpc4 134.0.0.21 member5-fpc5 134.0.0.22 member5-fpc6 134.0.0.23 member5-fpc7 134.0.0.24 member5-fpc8 134.0.0.25 member5-fpc9 134.0.0.26 member5-fpc10 134.0.0.27 member5-fpc11 134.0.0.28 member5-fpc12 134.0.0.29 member5-fpc13 134.0.0.30 member5-fpc14 134.0.0.31 member5-fpc15 134.0.0.6 lcc5-backup 134.0.0.16 lcc5-fpc0 134.0.0.17 lcc5-fpc1 134.0.0.18 lcc5-fpc2 134.0.0.19 lcc5-fpc3 134.0.0.20 lcc5-fpc4 134.0.0.21 lcc5-fpc5 134.0.0.22 lcc5-fpc6 134.0.0.23 lcc5-fpc7 134.0.0.48 lcc5-spmb0 134.0.0.49 lcc5-spmb1 #LCC 6 (or MEMBER 6 on Virtual Chassis) 135.0.0.1 lcc6-master member6-master member6 135.0.0.4 lcc6-re0 member6-re0 135.0.0.5 lcc6-re1 member6-re1 135.0.0.6 lcc6-backup member6-backup 135.0.0.16 member6-fpc0 135.0.0.17 member6-fpc1 135.0.0.18 member6-fpc2 135.0.0.19 member6-fpc3 135.0.0.20 member6-fpc4 135.0.0.21 member6-fpc5 135.0.0.22 member6-fpc6 135.0.0.23 member6-fpc7 135.0.0.24 member6-fpc8 135.0.0.25 member6-fpc9 135.0.0.26 member6-fpc10 135.0.0.27 member6-fpc11 135.0.0.28 member6-fpc12 135.0.0.29 member6-fpc13 135.0.0.30 member6-fpc14 135.0.0.31 member6-fpc15 135.0.0.6 lcc6-backup 135.0.0.16 lcc6-fpc0 135.0.0.17 lcc6-fpc1 135.0.0.18 lcc6-fpc2 135.0.0.19 lcc6-fpc3 135.0.0.20 lcc6-fpc4 135.0.0.21 lcc6-fpc5 135.0.0.22 lcc6-fpc6 135.0.0.23 lcc6-fpc7 135.0.0.48 lcc6-spmb0 135.0.0.49 lcc6-spmb1 #LCC 7 (or MEMBER 7 on Virtual Chassis) 136.0.0.1 lcc7-master member7-master member7 136.0.0.4 lcc7-re0 member7-re0 136.0.0.5 lcc7-re1 member7-re1 136.0.0.6 lcc7-backup member7-backup 136.0.0.16 member7-fpc0 136.0.0.17 member7-fpc1 136.0.0.18 member7-fpc2 136.0.0.19 member7-fpc3 136.0.0.20 member7-fpc4 136.0.0.21 member7-fpc5 136.0.0.22 member7-fpc6 136.0.0.23 member7-fpc7 136.0.0.24 member7-fpc8 136.0.0.25 member7-fpc9 136.0.0.26 member7-fpc10 136.0.0.27 member7-fpc11 136.0.0.28 member7-fpc12 136.0.0.29 member7-fpc13 136.0.0.30 member7-fpc14 136.0.0.31 member7-fpc15 136.0.0.6 lcc7-backup 136.0.0.16 lcc7-fpc0 136.0.0.17 lcc7-fpc1 136.0.0.18 lcc7-fpc2 136.0.0.19 lcc7-fpc3 136.0.0.20 lcc7-fpc4 136.0.0.21 lcc7-fpc5 136.0.0.22 lcc7-fpc6 136.0.0.23 lcc7-fpc7 136.0.0.48 lcc7-spmb0 136.0.0.49 lcc7-spmb1 137.0.0.6 lcc8-backup 137.0.0.16 lcc8-fpc0 137.0.0.17 lcc8-fpc1 137.0.0.18 lcc8-fpc2 137.0.0.19 lcc8-fpc3 137.0.0.20 lcc8-fpc4 137.0.0.21 lcc8-fpc5 137.0.0.22 lcc8-fpc6 137.0.0.23 lcc8-fpc7 137.0.0.48 lcc8-spmb0 137.0.0.49 lcc8-spmb1 #LCC 8 (or MEMBER 8 on Virtual Chassis) 137.0.0.1 lcc8-master member8-master member8 137.0.0.4 lcc8-re0 member8-re0 137.0.0.5 lcc8-re1 member8-re1 137.0.0.6 lcc8-backup member8-backup 137.0.0.16 member8-fpc0 137.0.0.17 member8-fpc1 137.0.0.18 member8-fpc2 137.0.0.19 member8-fpc3 137.0.0.20 member8-fpc4 137.0.0.21 member8-fpc5 137.0.0.22 member8-fpc6 137.0.0.23 member8-fpc7 137.0.0.24 member8-fpc8 137.0.0.25 member8-fpc9 137.0.0.26 member8-fpc10 137.0.0.27 member8-fpc11 137.0.0.28 member8-fpc12 137.0.0.29 member8-fpc13 137.0.0.30 member8-fpc14 137.0.0.31 member8-fpc15 138.0.0.6 lcc9-backup 138.0.0.16 lcc9-fpc0 138.0.0.17 lcc9-fpc1 138.0.0.18 lcc9-fpc2 138.0.0.19 lcc9-fpc3 138.0.0.20 lcc9-fpc4 138.0.0.21 lcc9-fpc5 138.0.0.22 lcc9-fpc6 138.0.0.23 lcc9-fpc7 138.0.0.48 lcc9-spmb0 138.0.0.49 lcc9-spmb1 #LCC 9 (or MEMBER 9 on Virtual Chassis) 138.0.0.1 lcc9-master member9-master member9 138.0.0.4 lcc9-re0 member9-re0 138.0.0.5 lcc9-re1 member9-re1 138.0.0.6 lcc9-backup member9-backup 138.0.0.16 member9-fpc0 138.0.0.17 member9-fpc1 138.0.0.18 member9-fpc2 138.0.0.19 member9-fpc3 138.0.0.20 member9-fpc4 138.0.0.21 member9-fpc5 138.0.0.22 member9-fpc6 138.0.0.23 member9-fpc7 138.0.0.24 member9-fpc8 138.0.0.25 member9-fpc9 138.0.0.26 member9-fpc10 138.0.0.27 member9-fpc11 138.0.0.28 member9-fpc12 138.0.0.29 member9-fpc13 138.0.0.30 member9-fpc14 138.0.0.31 member9-fpc15 139.0.0.6 lcc10-backup 139.0.0.16 lcc10-fpc0 139.0.0.17 lcc10-fpc1 139.0.0.18 lcc10-fpc2 139.0.0.19 lcc10-fpc3 139.0.0.20 lcc10-fpc4 139.0.0.21 lcc10-fpc5 139.0.0.22 lcc10-fpc6 139.0.0.23 lcc10-fpc7 139.0.0.48 lcc10-spmb0 139.0.0.49 lcc10-spmb1 #LCC 10 (or MEMBER 10 on Virtual Chassis) 139.0.0.1 lcc10-master member10-master 139.0.0.4 lcc10-re0 member10-re0 139.0.0.5 lcc10-re1 member10-re1 139.0.0.6 lcc10-backup member10-backup 139.0.0.16 member10-fpc0 139.0.0.17 member10-fpc1 139.0.0.18 member10-fpc2 139.0.0.19 member10-fpc3 139.0.0.20 member10-fpc4 139.0.0.21 member10-fpc5 139.0.0.22 member10-fpc6 139.0.0.23 member10-fpc7 139.0.0.24 member10-fpc8 139.0.0.25 member10-fpc9 139.0.0.26 member10-fpc10 139.0.0.27 member10-fpc11 139.0.0.28 member10-fpc12 139.0.0.29 member10-fpc13 139.0.0.30 member10-fpc14 139.0.0.31 member10-fpc15 140.0.0.6 lcc11-backup 140.0.0.16 lcc11-fpc0 140.0.0.17 lcc11-fpc1 140.0.0.18 lcc11-fpc2 140.0.0.19 lcc11-fpc3 140.0.0.20 lcc11-fpc4 140.0.0.21 lcc11-fpc5 140.0.0.22 lcc11-fpc6 140.0.0.23 lcc11-fpc7 140.0.0.48 lcc11-spmb0 140.0.0.49 lcc11-spmb1 #LCC 11 (or MEMBER 11 on Virtual Chassis) 140.0.0.1 lcc11-master member11-master 140.0.0.4 lcc11-re0 member11-re0 140.0.0.5 lcc11-re1 member11-re1 140.0.0.6 lcc11-backup member11-backup 140.0.0.16 member11-fpc0 140.0.0.17 member11-fpc1 140.0.0.18 member11-fpc2 140.0.0.19 member11-fpc3 140.0.0.20 member11-fpc4 140.0.0.21 member11-fpc5 140.0.0.22 member11-fpc6 140.0.0.23 member11-fpc7 140.0.0.24 member11-fpc8 140.0.0.25 member11-fpc9 140.0.0.26 member11-fpc10 140.0.0.27 member11-fpc11 140.0.0.28 member11-fpc12 140.0.0.29 member11-fpc13 140.0.0.30 member11-fpc14 140.0.0.31 member11-fpc15 141.0.0.6 lcc12-backup 141.0.0.16 lcc12-fpc0 141.0.0.17 lcc12-fpc1 141.0.0.18 lcc12-fpc2 141.0.0.19 lcc12-fpc3 141.0.0.20 lcc12-fpc4 141.0.0.21 lcc12-fpc5 141.0.0.22 lcc12-fpc6 141.0.0.23 lcc12-fpc7 141.0.0.48 lcc12-spmb0 141.0.0.49 lcc12-spmb1 #LCC 12 (or MEMBER 12 on Virtual Chassis) 141.0.0.1 lcc12-master member12-master 141.0.0.4 lcc12-re0 member12-re0 141.0.0.5 lcc12-re1 member12-re1 141.0.0.6 lcc12-backup member12-backup 141.0.0.16 member12-fpc0 141.0.0.17 member12-fpc1 141.0.0.18 member12-fpc2 141.0.0.19 member12-fpc3 141.0.0.20 member12-fpc4 141.0.0.21 member12-fpc5 141.0.0.22 member12-fpc6 141.0.0.23 member12-fpc7 141.0.0.24 member12-fpc8 141.0.0.25 member12-fpc9 141.0.0.26 member12-fpc10 141.0.0.27 member12-fpc11 141.0.0.28 member12-fpc12 141.0.0.29 member12-fpc13 141.0.0.30 member12-fpc14 141.0.0.31 member12-fpc15 142.0.0.6 lcc13-backup 142.0.0.16 lcc13-fpc0 142.0.0.17 lcc13-fpc1 142.0.0.18 lcc13-fpc2 142.0.0.19 lcc13-fpc3 142.0.0.20 lcc13-fpc4 142.0.0.21 lcc13-fpc5 142.0.0.22 lcc13-fpc6 142.0.0.23 lcc13-fpc7 142.0.0.48 lcc13-spmb0 142.0.0.49 lcc13-spmb1 #LCC 13 (or MEMBER 13 on Virtual Chassis) 142.0.0.1 lcc13-master member13-master 142.0.0.4 lcc13-re0 member13-re0 142.0.0.5 lcc13-re1 member13-re1 142.0.0.6 lcc13-backup member13-backup 142.0.0.16 member13-fpc0 142.0.0.17 member13-fpc1 142.0.0.18 member13-fpc2 142.0.0.19 member13-fpc3 142.0.0.20 member13-fpc4 142.0.0.21 member13-fpc5 142.0.0.22 member13-fpc6 142.0.0.23 member13-fpc7 142.0.0.24 member13-fpc8 142.0.0.25 member13-fpc9 142.0.0.26 member13-fpc10 142.0.0.27 member13-fpc11 142.0.0.28 member13-fpc12 142.0.0.29 member13-fpc13 142.0.0.30 member13-fpc14 142.0.0.31 member13-fpc15 143.0.0.6 lcc14-backup 143.0.0.16 lcc14-fpc0 143.0.0.17 lcc14-fpc1 143.0.0.18 lcc14-fpc2 143.0.0.19 lcc14-fpc3 143.0.0.20 lcc14-fpc4 143.0.0.21 lcc14-fpc5 143.0.0.22 lcc14-fpc6 143.0.0.23 lcc14-fpc7 143.0.0.48 lcc14-spmb0 143.0.0.49 lcc14-spmb1 #LCC 14 (or MEMBER 14 on Virtual Chassis) 143.0.0.1 lcc14-master member14-master 143.0.0.4 lcc14-re0 member14-re0 143.0.0.5 lcc14-re1 member14-re1 143.0.0.6 lcc14-backup member14-backup 143.0.0.16 member14-fpc0 143.0.0.17 member14-fpc1 143.0.0.18 member14-fpc2 143.0.0.19 member14-fpc3 143.0.0.20 member14-fpc4 143.0.0.21 member14-fpc5 143.0.0.22 member14-fpc6 143.0.0.23 member14-fpc7 143.0.0.24 member14-fpc8 143.0.0.25 member14-fpc9 143.0.0.26 member14-fpc10 143.0.0.27 member14-fpc11 143.0.0.28 member14-fpc12 143.0.0.29 member14-fpc13 143.0.0.30 member14-fpc14 143.0.0.31 member14-fpc15 144.0.0.6 lcc15-backup 144.0.0.16 lcc15-fpc0 144.0.0.17 lcc15-fpc1 144.0.0.18 lcc15-fpc2 144.0.0.19 lcc15-fpc3 144.0.0.20 lcc15-fpc4 144.0.0.21 lcc15-fpc5 144.0.0.22 lcc15-fpc6 144.0.0.23 lcc15-fpc7 144.0.0.48 lcc15-spmb0 144.0.0.49 lcc15-spmb1 #LCC 15 (or MEMBER 15 on Virtual Chassis) 144.0.0.1 lcc15-master member15-master 144.0.0.4 lcc15-re0 member15-re0 144.0.0.5 lcc15-re1 member15-re1 144.0.0.6 lcc15-backup member15-backup 144.0.0.16 member15-fpc0 144.0.0.17 member15-fpc1 144.0.0.18 member15-fpc2 144.0.0.19 member15-fpc3 144.0.0.20 member15-fpc4 144.0.0.21 member15-fpc5 144.0.0.22 member15-fpc6 144.0.0.23 member15-fpc7 144.0.0.24 member15-fpc8 144.0.0.25 member15-fpc9 144.0.0.26 member15-fpc10 144.0.0.27 member15-fpc11 144.0.0.28 member15-fpc12 144.0.0.29 member15-fpc13 144.0.0.30 member15-fpc14 144.0.0.31 member15-fpc15 #VIRT SC 161.0.0.1 sc-master 161.0.0.4 sc-re0 161.0.0.5 sc-re1 161.0.0.6 sc-backup #SFC 0 162.0.0.1 sfc0-master 162.0.0.4 sfc0-re0 162.0.0.5 sfc0-re1 162.0.0.6 sfc0-backup 162.0.0.48 sfc0-spmb0 162.0.0.49 sfc0-spmb1 #SFC 1 163.0.0.1 sfc1-master 163.0.0.4 sfc1-re0 163.0.0.5 sfc1-re1 163.0.0.6 sfc1-backup 163.0.0.48 sfc1-spmb0 163.0.0.49 sfc1-spmb1 #SFC 2 164.0.0.1 sfc2-master 164.0.0.4 sfc2-re0 164.0.0.5 sfc2-re1 164.0.0.6 sfc2-backup 164.0.0.48 sfc2-spmb0 164.0.0.49 sfc2-spmb1 #SFC 3 165.0.0.1 sfc3-master 165.0.0.4 sfc3-re0 165.0.0.5 sfc3-re1 165.0.0.6 sfc3-backup 165.0.0.48 sfc3-spmb0 165.0.0.49 sfc3-spmb1 #SFC 4 166.0.0.1 sfc4-master 166.0.0.4 sfc4-re0 166.0.0.5 sfc4-re1 166.0.0.6 sfc4-backup 166.0.0.48 sfc4-spmb0 166.0.0.49 sfc4-spmb1 #JCS 190.0.0.1 psd%d-master 190.0.0.4 psd%d-re0 190.0.0.5 psd%d-re1 190.0.0.6 psd%d-backup # Old IP address format (RT_IRS_V2) # # Single Chassis Hostnames # 10.0.0.1 master 10.0.0.4 re0 10.0.0.5 re1 # # Multi Chassis Hostnames # #SCC 10.16.0.1 scc-master 10.16.0.4 scc-re0 10.16.0.5 scc-re1 #LCC 0 10.1.0.1 lcc0-master member0-master 10.1.0.4 lcc0-re0 member0-re0 10.1.0.5 lcc0-re1 member0-re1 10.1.0.6 lcc0-backup member0-backup #LCC 1 10.2.0.1 lcc1-master member1-master 10.2.0.4 lcc1-re0 member1-re0 10.2.0.5 lcc1-re1 member1-re1 10.2.0.6 lcc1-backup member1-backup #LCC 2 10.3.0.1 lcc2-master member2-master 10.3.0.4 lcc2-re0 member2-re0 10.3.0.5 lcc2-re1 member2-re1 10.3.0.6 lcc2-backup member2-backup #LCC 3 10.4.0.1 lcc3-master member3-master 10.4.0.4 lcc3-re0 member3-re0 10.4.0.5 lcc3-re1 member3-re1 10.4.0.6 lcc3-backup member3-backup #LCC 4 10.5.0.1 lcc4-master member4-master 10.5.0.4 lcc4-re0 member4-re0 10.5.0.5 lcc4-re1 member4-re1 10.5.0.6 lcc4-backup member4-backup #LCC 5 10.6.0.1 lcc5-master member5-master 10.6.0.4 lcc5-re0 member5-re0 10.6.0.5 lcc5-re1 member5-re1 10.6.0.6 lcc5-backup member5-backup #LCC 6 10.7.0.1 lcc6-master member6-master 10.7.0.4 lcc6-re0 member6-re0 10.7.0.5 lcc6-re1 member6-re1 10.7.0.6 lcc6-backup member6-backup #LCC 7 10.8.0.1 lcc7-master member7-master 10.8.0.4 lcc7-re0 member7-re0 10.8.0.5 lcc7-re1 member7-re1 10.8.0.6 lcc7-backup member7-backup #LCC 8 10.9.0.1 lcc8-master member8-master 10.9.0.4 lcc8-re0 member8-re0 10.9.0.5 lcc8-re1 member8-re1 10.9.0.6 lcc8-backup member8-backup #LCC 9 10.10.0.1 lcc9-master member9-master 10.10.0.4 lcc9-re0 member9-re0 10.10.0.5 lcc9-re1 member9-re1 10.10.0.6 lcc9-backup member9-backup #LCC 10 10.11.0.1 lcc10-master member10-master 10.11.0.4 lcc10-re0 member10-re0 10.11.0.5 lcc10-re1 member10-re1 10.11.0.6 lcc10-backup member10-backup #LCC 11 10.12.0.1 lcc11-master member11-master 10.12.0.4 lcc11-re0 member11-re0 10.12.0.5 lcc11-re1 member11-re1 10.12.0.6 lcc11-backup member11-backup #LCC 12 10.13.0.1 lcc12-master member12-master 10.13.0.4 lcc12-re0 member12-re0 10.13.0.5 lcc12-re1 member12-re1 10.13.0.6 lcc12-backup member12-backup #LCC 13 10.14.0.1 lcc13-master member13-master 10.14.0.4 lcc13-re0 member13-re0 10.14.0.5 lcc13-re1 member13-re1 10.14.0.6 lcc13-backup member13-backup #LCC 14 10.15.0.1 lcc14-master member14-master 10.15.0.4 lcc14-re0 member14-re0 10.15.0.5 lcc14-re1 member14-re1 10.15.0.6 lcc14-backup member14-backup #LCC 15 10.16.0.1 lcc15-master member15-master 10.16.0.4 lcc15-re0 member15-re0 10.16.0.5 lcc15-re1 member15-re1 10.16.0.6 lcc15-backup member15-backup #SFC 0 10.34.0.1 sfc0-master 10.34.0.4 sfc0-re0 10.34.0.5 sfc0-re1 #SFC 1 10.35.0.1 sfc1-master 10.35.0.4 sfc1-re0 10.35.0.5 sfc1-re1 #SFC 2 10.36.0.1 sfc2-master 10.36.0.4 sfc2-re0 10.36.0.5 sfc2-re1 #SFC 3 10.37.0.1 sfc3-master 10.37.0.4 sfc3-re0 10.37.0.5 sfc3-re1 #SFC 4 10.38.0.1 sfc4-master 10.38.0.4 sfc4-re0 10.38.0.5 sfc4-re1 # End of internal names py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/personality_olive_get-interface-information.xml000066400000000000000000000044351475361112400330250ustar00rootroot00000000000000 lo0.16385 up up inet 128.0.0.4 0/0 inet6 fe80::215:170f:fcaf:fb8a py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/personality_olive_get-route-engine-information.xml000066400000000000000000000005051475361112400334600ustar00rootroot00000000000000 chassis-control Unrecognized command (chassis-control) py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/personality_ptx_command.xml000066400000000000000000000421051475361112400270740ustar00rootroot00000000000000 re0 musa ptx5000 ptx5000 16.1X70-D10.5 junos JUNOS Base OS boot [16.1X70-D10.5] jbase JUNOS Base OS Software Suite [16.1X70-D10.5] jplatform JUNOS platform Software Suite [16.1X70-D10.5] jweb JUNOS Web Management [16.1X70-D10.5] jruntime JUNOS Runtime Software Suite [16.1X70-D10.5] jdocs JUNOS Online Documentation [16.1X70-D10.5] jservices-aacl JUNOS Services AACL Container package [16.1X70-D10.5] jservices-alg JUNOS Services Application Level Gateways [16.1X70-D10.5] jservices-appid JUNOS AppId Services [16.1X70-D10.5] jservices-cpcd JUNOS Services Captive Portal and Content Delivery Container package [16.1X70-D10.5] jservices-bgf JUNOS Border Gateway Function package [16.1X70-D10.5] jservices-hcm JUNOS Services HTTP Content Management package [16.1X70-D10.5] jservices-idp JUNOS IDP Services [16.1X70-D10.5] jservices-jflow JUNOS Services Jflow Container package [16.1X70-D10.5] jservices-llpdf JUNOS Services LL-PDF Container package [16.1X70-D10.5] jservices-mobile JUNOS Services MobileNext Software package [16.1X70-D10.5] jservices-mss JUNOS Services Mobile Subscriber Service Container package [16.1X70-D10.5] jservices-pcef JUNOS Services PCEF package [16.1X70-D10.5] jservices-nat JUNOS Services NAT [16.1X70-D10.5] jservices-ptsp JUNOS Services PTSP Container package [16.1X70-D10.5] jservices-rpm JUNOS Services RPM [16.1X70-D10.5] jservices-sfw JUNOS Services Stateful Firewall [16.1X70-D10.5] jservices-voice JUNOS Voice Services Container package [16.1X70-D10.5] jservices-jdpi JUNOS Services Deep Packet Inspection package [16.1X70-D10.5] jservices-lrf JUNOS Services Logging Report Framework package [16.1X70-D10.5] jmacsec JUNOS Macsec Software Suite [16.1X70-D10.5] jservices-crypto-base JUNOS Services Crypto [16.1X70-D10.5] jservices-ssl JUNOS Services SSL [16.1X70-D10.5] jservices-ipsec JUNOS Services IPSec [16.1X70-D10.5] jcrypto-dp-support JUNOS DP Crypto Software Software Suite [16.1X70-D10.5] py-base-i386 JUNOS py-base-i386 [16.1X70-D10.5] py-extensions-i386 JUNOS py-extensions-i386 [16.1X70-D10.5] jsd JUNOS jsd [16.1X70-D10.5-jet-1] jkernel JUNOS 64-bit Kernel Software Suite [16.1X70-D10.5] jcrypto64 JUNOS Crypto Software Suite [16.1X70-D10.5] jruntime64 JUNOS 64-bit Runtime Software Suite [16.1X70-D10.5] jpfe-common JUNOS Packet Forwarding Engine Support (M/T/EX Common) [16.1X70-D10.5] jpfe JUNOS Packet Forwarding Engine Support (T-Series) [16.1X70-D10.5] jroute JUNOS Routing Software Suite [16.1X70-D10.5] re1 musa1 ptx5000 ptx5000 16.1X70-D10.5 junos JUNOS Base OS boot [16.1X70-D10.5] jbase JUNOS Base OS Software Suite [16.1X70-D10.5] jplatform JUNOS platform Software Suite [16.1X70-D10.5] jweb JUNOS Web Management [16.1X70-D10.5] jruntime JUNOS Runtime Software Suite [16.1X70-D10.5] jdocs JUNOS Online Documentation [16.1X70-D10.5] jservices-aacl JUNOS Services AACL Container package [16.1X70-D10.5] jservices-alg JUNOS Services Application Level Gateways [16.1X70-D10.5] jservices-appid JUNOS AppId Services [16.1X70-D10.5] jservices-bgf JUNOS Border Gateway Function package [16.1X70-D10.5] jservices-cpcd JUNOS Services Captive Portal and Content Delivery Container package [16.1X70-D10.5] jservices-hcm JUNOS Services HTTP Content Management package [16.1X70-D10.5] jservices-idp JUNOS IDP Services [16.1X70-D10.5] jservices-jflow JUNOS Services Jflow Container package [16.1X70-D10.5] jservices-llpdf JUNOS Services LL-PDF Container package [16.1X70-D10.5] jservices-mobile JUNOS Services MobileNext Software package [16.1X70-D10.5] jservices-mss JUNOS Services Mobile Subscriber Service Container package [16.1X70-D10.5] jservices-nat JUNOS Services NAT [16.1X70-D10.5] jservices-pcef JUNOS Services PCEF package [16.1X70-D10.5] jservices-ptsp JUNOS Services PTSP Container package [16.1X70-D10.5] jservices-rpm JUNOS Services RPM [16.1X70-D10.5] jservices-sfw JUNOS Services Stateful Firewall [16.1X70-D10.5] jservices-voice JUNOS Voice Services Container package [16.1X70-D10.5] jservices-jdpi JUNOS Services Deep Packet Inspection package [16.1X70-D10.5] jservices-lrf JUNOS Services Logging Report Framework package [16.1X70-D10.5] jmacsec JUNOS Macsec Software Suite [16.1X70-D10.5] jservices-crypto-base JUNOS Services Crypto [16.1X70-D10.5] jservices-ssl JUNOS Services SSL [16.1X70-D10.5] jservices-ipsec JUNOS Services IPSec [16.1X70-D10.5] jcrypto-dp-support JUNOS DP Crypto Software Software Suite [16.1X70-D10.5] py-base-i386 JUNOS py-base-i386 [16.1X70-D10.5] py-extensions-i386 JUNOS py-extensions-i386 [16.1X70-D10.5] jsd JUNOS jsd [16.1X70-D10.5-jet-1] jkernel JUNOS 64-bit Kernel Software Suite [16.1X70-D10.5] jcrypto64 JUNOS Crypto Software Suite [16.1X70-D10.5] jruntime64 JUNOS 64-bit Runtime Software Suite [16.1X70-D10.5] jpfe-common JUNOS Packet Forwarding Engine Support (M/T/EX Common) [16.1X70-D10.5] jpfe JUNOS Packet Forwarding Engine Support (T-Series) [16.1X70-D10.5] jroute JUNOS Routing Software Suite [16.1X70-D10.5] py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/personality_ptx_file-show.xml000066400000000000000000002042151475361112400273550ustar00rootroot00000000000000 #$Id: hosts.junos,v 1.7.72.1 2009-04-16 05:22:03 kdickman Exp $ # # File mapping AF_INET/AF_INET6 hostnames for REs on Single and Multichassis # systems # # This file is looked at before /etc/hosts by gethostbyname(3), # gethostbyname2(3) and getaddrinfo(3) # # The IP addresses in this file are only used for communication between REs # over the Internal Routing Instances # # WARNING: # # The names in this file are effectively reserved for internal use. # # New IP address format (RT_IRS_V3) # # Single Chassis Hostnames # 128.0.0.1 master 128.0.0.1 node 128.0.0.1 fwdd 128.0.0.1 member 128.0.0.1 pfem 128.0.0.2 scb 128.0.0.2 sbr 128.0.0.2 ssb 128.0.0.2 feb 128.0.0.2 cfeb0 128.0.0.2 cfeb 128.0.0.2 cpp0 128.0.0.3 cfeb1 128.0.0.3 cpp1 128.0.0.4 re0 128.0.0.5 re1 128.0.0.6 backup 128.0.0.8 sfm0 128.0.0.9 sfm1 128.0.0.10 sfm2 128.0.0.16 fpc0 128.0.0.17 fpc1 128.0.0.18 fpc2 128.0.0.19 fpc3 128.0.0.20 fpc4 128.0.0.21 fpc5 128.0.0.22 fpc6 128.0.0.23 fpc7 128.0.0.24 fpc8 128.0.0.25 fpc9 128.0.0.26 fpc10 128.0.0.27 fpc11 128.0.0.28 fpc12 128.0.0.29 fpc13 128.0.0.30 fpc14 128.0.0.31 fpc15 128.0.0.32 feb0 128.0.0.32 fpc16 128.0.0.33 feb1 128.0.0.33 fpc17 128.0.0.34 feb2 128.0.0.34 fpc18 128.0.0.35 feb3 128.0.0.35 fpc19 128.0.0.36 fpc20 128.0.0.36 feb4 128.0.0.37 feb5 128.0.0.37 fpc21 128.0.0.38 fpc22 128.0.0.39 fpc23 128.0.0.40 fpc24 128.0.0.41 fpc25 128.0.0.42 fpc26 128.0.0.43 fpc27 128.0.0.44 fpc28 128.0.0.45 fpc29 128.0.0.46 fpc30 128.0.0.47 fpc31 128.0.0.48 spmb0 128.0.0.49 spmb1 128.0.0.50 tfeb0 128.0.0.50 afeb0 128.0.0.53 esc0 128.0.0.54 esc1 128.0.0.55 esc0-ipmi 128.0.0.56 esc1-ipmi 128.0.1.16 fpc0.pic0 128.0.1.17 fpc1.pic0 128.0.1.18 fpc2.pic0 128.0.1.19 fpc3.pic0 128.0.1.20 fpc4.pic0 128.0.1.21 fpc5.pic0 128.0.1.22 fpc6.pic0 128.0.1.23 fpc7.pic0 128.0.1.24 fpc8.pic0 128.0.1.25 fpc9.pic0 128.0.1.26 fpc10.pic0 128.0.1.27 fpc11.pic0 128.0.1.28 fpc12.pic0 128.0.1.29 fpc13.pic0 128.0.1.30 fpc14.pic0 128.0.1.31 fpc15.pic0 128.0.1.32 fpc16.pic0 128.0.1.33 fpc17.pic0 128.0.1.34 fpc18.pic0 128.0.1.35 fpc19.pic0 128.0.1.36 fpc20.pic0 128.0.1.37 fpc21.pic0 128.0.1.38 fpc22.pic0 128.0.1.39 fpc23.pic0 128.0.1.40 fpc24.pic0 128.0.1.41 fpc25.pic0 128.0.1.42 fpc26.pic0 128.0.1.43 fpc27.pic0 128.0.1.44 fpc28.pic0 128.0.1.45 fpc29.pic0 128.0.1.46 fpc30.pic0 128.0.1.47 fpc31.pic0 128.0.2.16 fpc0.pic1 128.0.2.17 fpc1.pic1 128.0.2.18 fpc2.pic1 128.0.2.19 fpc3.pic1 128.0.2.20 fpc4.pic1 128.0.2.21 fpc5.pic1 128.0.2.22 fpc6.pic1 128.0.2.23 fpc7.pic1 128.0.2.24 fpc8.pic1 128.0.2.25 fpc9.pic1 128.0.2.26 fpc10.pic1 128.0.2.27 fpc11.pic1 128.0.2.28 fpc12.pic1 128.0.2.29 fpc13.pic1 128.0.2.30 fpc14.pic1 128.0.2.31 fpc15.pic1 128.0.2.32 fpc16.pic1 128.0.2.33 fpc17.pic1 128.0.2.34 fpc18.pic1 128.0.2.35 fpc19.pic1 128.0.2.36 fpc20.pic1 128.0.2.37 fpc21.pic1 128.0.2.38 fpc22.pic1 128.0.2.39 fpc23.pic1 128.0.2.40 fpc24.pic1 128.0.2.41 fpc25.pic1 128.0.2.42 fpc26.pic1 128.0.2.43 fpc27.pic1 128.0.2.44 fpc28.pic1 128.0.2.45 fpc29.pic1 128.0.2.46 fpc30.pic1 128.0.2.47 fpc31.pic1 128.0.3.16 fpc0.pic2 128.0.3.17 fpc1.pic2 128.0.3.18 fpc2.pic2 128.0.3.19 fpc3.pic2 128.0.3.20 fpc4.pic2 128.0.3.21 fpc5.pic2 128.0.3.22 fpc6.pic2 128.0.3.23 fpc7.pic2 128.0.3.24 fpc8.pic2 128.0.3.25 fpc9.pic2 128.0.3.26 fpc10.pic2 128.0.3.27 fpc11.pic2 128.0.3.28 fpc12.pic2 128.0.3.29 fpc13.pic2 128.0.3.30 fpc14.pic2 128.0.3.31 fpc15.pic2 128.0.4.16 fpc0.pic3 128.0.4.17 fpc1.pic3 128.0.4.18 fpc2.pic3 128.0.4.19 fpc3.pic3 128.0.4.20 fpc4.pic3 128.0.4.21 fpc5.pic3 128.0.4.22 fpc6.pic3 128.0.4.23 fpc7.pic3 128.0.4.24 fpc8.pic3 128.0.4.25 fpc9.pic3 128.0.4.26 fpc10.pic3 128.0.4.27 fpc11.pic3 128.0.4.28 fpc12.pic3 128.0.4.29 fpc13.pic3 128.0.4.30 fpc14.pic3 128.0.4.31 fpc15.pic3 # # DCF-Root Hostname # 128.0.130.2 dcf-root # # Multi Chassis Hostnames # #SCC 144.0.0.1 scc-master 144.0.0.4 scc-re0 144.0.0.5 scc-re1 144.0.0.6 scc-backup 144.0.0.48 scc-spmb0 144.0.0.49 scc-spmb1 #LCC 0 (or MEMBER 0 on Virtual Chassis) 129.0.0.1 lcc0-master member0-master member0 129.0.0.4 lcc0-re0 member0-re0 129.0.0.5 lcc0-re1 member0-re1 129.0.0.6 lcc0-backup member0-backup 129.0.0.16 member0-fpc0 129.0.0.17 member0-fpc1 129.0.0.18 member0-fpc2 129.0.0.19 member0-fpc3 129.0.0.20 member0-fpc4 129.0.0.21 member0-fpc5 129.0.0.22 member0-fpc6 129.0.0.23 member0-fpc7 129.0.0.24 member0-fpc8 129.0.0.25 member0-fpc9 129.0.0.26 member0-fpc10 129.0.0.27 member0-fpc11 129.0.0.28 member0-fpc12 129.0.0.29 member0-fpc13 129.0.0.30 member0-fpc14 129.0.0.31 member0-fpc15 129.0.0.32 member0-fpc16 129.0.0.33 member0-fpc17 129.0.0.34 member0-fpc18 129.0.0.35 member0-fpc19 129.0.0.36 member0-fpc20 129.0.0.37 member0-fpc21 129.0.0.38 member0-fpc22 129.0.0.39 member0-fpc23 129.0.0.40 member0-fpc24 129.0.0.41 member0-fpc25 129.0.0.42 member0-fpc26 129.0.0.43 member0-fpc27 129.0.0.44 member0-fpc28 129.0.0.45 member0-fpc29 129.0.0.46 member0-fpc30 129.0.0.47 member0-fpc31 129.0.0.6 lcc0-backup 129.0.0.16 lcc0-fpc0 129.0.0.17 lcc0-fpc1 129.0.0.18 lcc0-fpc2 129.0.0.19 lcc0-fpc3 129.0.0.20 lcc0-fpc4 129.0.0.21 lcc0-fpc5 129.0.0.22 lcc0-fpc6 129.0.0.23 lcc0-fpc7 129.0.0.48 lcc0-spmb0 129.0.0.49 lcc0-spmb1 #LCC 1 (or MEMBER 1 on Virtual Chassis) 130.0.0.1 lcc1-master member1-master member1 130.0.0.4 lcc1-re0 member1-re0 130.0.0.5 lcc1-re1 member1-re1 130.0.0.6 lcc1-backup member1-backup 130.0.0.16 member1-fpc0 130.0.0.17 member1-fpc1 130.0.0.18 member1-fpc2 130.0.0.19 member1-fpc3 130.0.0.20 member1-fpc4 130.0.0.21 member1-fpc5 130.0.0.22 member1-fpc6 130.0.0.23 member1-fpc7 130.0.0.24 member1-fpc8 130.0.0.25 member1-fpc9 130.0.0.26 member1-fpc10 130.0.0.27 member1-fpc11 130.0.0.28 member1-fpc12 130.0.0.29 member1-fpc13 130.0.0.30 member1-fpc14 130.0.0.31 member1-fpc15 130.0.0.32 member1-fpc16 130.0.0.33 member1-fpc17 130.0.0.34 member1-fpc18 130.0.0.35 member1-fpc19 130.0.0.36 member1-fpc20 130.0.0.37 member1-fpc21 130.0.0.38 member1-fpc22 130.0.0.39 member1-fpc23 130.0.0.40 member1-fpc24 130.0.0.41 member1-fpc25 130.0.0.42 member1-fpc26 130.0.0.43 member1-fpc27 130.0.0.44 member1-fpc28 130.0.0.45 member1-fpc29 130.0.0.46 member1-fpc30 130.0.0.47 member1-fpc31 130.0.0.6 lcc1-backup 130.0.0.16 lcc1-fpc0 130.0.0.17 lcc1-fpc1 130.0.0.18 lcc1-fpc2 130.0.0.19 lcc1-fpc3 130.0.0.20 lcc1-fpc4 130.0.0.21 lcc1-fpc5 130.0.0.22 lcc1-fpc6 130.0.0.23 lcc1-fpc7 130.0.0.48 lcc1-spmb0 130.0.0.49 lcc1-spmb1 #LCC 2 (or MEMBER 2 on Virtual Chassis) 131.0.0.1 lcc2-master member2-master member2 131.0.0.4 lcc2-re0 member2-re0 131.0.0.5 lcc2-re1 member2-re1 131.0.0.6 lcc2-backup member2-backup 131.0.0.16 member2-fpc0 131.0.0.17 member2-fpc1 131.0.0.18 member2-fpc2 131.0.0.19 member2-fpc3 131.0.0.20 member2-fpc4 131.0.0.21 member2-fpc5 131.0.0.22 member2-fpc6 131.0.0.23 member2-fpc7 131.0.0.24 member2-fpc8 131.0.0.25 member2-fpc9 131.0.0.26 member2-fpc10 131.0.0.27 member2-fpc11 131.0.0.28 member2-fpc12 131.0.0.29 member2-fpc13 131.0.0.30 member2-fpc14 131.0.0.31 member2-fpc15 131.0.0.32 member2-fpc16 131.0.0.33 member2-fpc17 131.0.0.34 member2-fpc18 131.0.0.35 member2-fpc19 131.0.0.36 member2-fpc20 131.0.0.37 member2-fpc21 131.0.0.38 member2-fpc22 131.0.0.39 member2-fpc23 131.0.0.40 member2-fpc24 131.0.0.41 member2-fpc25 131.0.0.42 member2-fpc26 131.0.0.43 member2-fpc27 131.0.0.44 member2-fpc28 131.0.0.45 member2-fpc29 131.0.0.46 member2-fpc30 131.0.0.47 member2-fpc31 131.0.0.6 lcc2-backup 131.0.0.16 lcc2-fpc0 131.0.0.17 lcc2-fpc1 131.0.0.18 lcc2-fpc2 131.0.0.19 lcc2-fpc3 131.0.0.20 lcc2-fpc4 131.0.0.21 lcc2-fpc5 131.0.0.22 lcc2-fpc6 131.0.0.23 lcc2-fpc7 131.0.0.48 lcc2-spmb0 131.0.0.49 lcc20-spmb1 #LCC 3 (or MEMBER 3 on Virtual Chassis) 132.0.0.1 lcc3-master member3-master member3 132.0.0.4 lcc3-re0 member3-re0 132.0.0.5 lcc3-re1 member3-re1 132.0.0.6 lcc3-backup member3-backup 132.0.0.16 member3-fpc0 132.0.0.17 member3-fpc1 132.0.0.18 member3-fpc2 132.0.0.19 member3-fpc3 132.0.0.20 member3-fpc4 132.0.0.21 member3-fpc5 132.0.0.22 member3-fpc6 132.0.0.23 member3-fpc7 132.0.0.24 member3-fpc8 132.0.0.25 member3-fpc9 132.0.0.26 member3-fpc10 132.0.0.27 member3-fpc11 132.0.0.28 member3-fpc12 132.0.0.29 member3-fpc13 132.0.0.30 member3-fpc14 132.0.0.31 member3-fpc15 132.0.0.32 member3-fpc16 132.0.0.33 member3-fpc17 132.0.0.34 member3-fpc18 132.0.0.35 member3-fpc19 132.0.0.36 member3-fpc20 132.0.0.37 member3-fpc21 132.0.0.38 member3-fpc22 132.0.0.39 member3-fpc23 132.0.0.40 member3-fpc24 132.0.0.41 member3-fpc25 132.0.0.42 member3-fpc26 132.0.0.43 member3-fpc27 132.0.0.44 member3-fpc28 132.0.0.45 member3-fpc29 132.0.0.46 member3-fpc30 132.0.0.47 member3-fpc31 132.0.0.6 lcc3-backup 132.0.0.16 lcc3-fpc0 132.0.0.17 lcc3-fpc1 132.0.0.18 lcc3-fpc2 132.0.0.19 lcc3-fpc3 132.0.0.20 lcc3-fpc4 132.0.0.21 lcc3-fpc5 132.0.0.22 lcc3-fpc6 132.0.0.23 lcc3-fpc7 132.0.0.48 lcc3-spmb0 132.0.0.49 lcc3-spmb1 #LCC 4 (or MEMBER 4 on Virtual Chassis) 133.0.0.1 lcc4-master member4-master member4 133.0.0.4 lcc4-re0 member4-re0 133.0.0.5 lcc4-re1 member4-re1 133.0.0.6 lcc4-backup member4-backup 133.0.0.16 member4-fpc0 133.0.0.17 member4-fpc1 133.0.0.18 member4-fpc2 133.0.0.19 member4-fpc3 133.0.0.20 member4-fpc4 133.0.0.21 member4-fpc5 133.0.0.22 member4-fpc6 133.0.0.23 member4-fpc7 133.0.0.24 member4-fpc8 133.0.0.25 member4-fpc9 133.0.0.26 member4-fpc10 133.0.0.27 member4-fpc11 133.0.0.28 member4-fpc12 133.0.0.29 member4-fpc13 133.0.0.30 member4-fpc14 133.0.0.31 member4-fpc15 133.0.0.32 member4-fpc16 133.0.0.33 member4-fpc17 133.0.0.34 member4-fpc18 133.0.0.35 member4-fpc19 133.0.0.36 member4-fpc20 133.0.0.37 member4-fpc21 133.0.0.38 member4-fpc22 133.0.0.39 member4-fpc23 133.0.0.40 member4-fpc24 133.0.0.41 member4-fpc25 133.0.0.42 member4-fpc26 133.0.0.43 member4-fpc27 133.0.0.44 member4-fpc28 133.0.0.45 member4-fpc29 133.0.0.46 member4-fpc30 133.0.0.47 member4-fpc31 133.0.0.6 lcc4-backup 133.0.0.16 lcc4-fpc0 133.0.0.17 lcc4-fpc1 133.0.0.18 lcc4-fpc2 133.0.0.19 lcc4-fpc3 133.0.0.20 lcc4-fpc4 133.0.0.21 lcc4-fpc5 133.0.0.22 lcc4-fpc6 133.0.0.23 lcc4-fpc7 133.0.0.48 lcc4-spmb0 133.0.0.49 lcc4-spmb1 #LCC 5 (or MEMBER 5 on Virtual Chassis) 134.0.0.1 lcc5-master member5-master member5 134.0.0.4 lcc5-re0 member5-re0 134.0.0.5 lcc5-re1 member5-re1 134.0.0.6 lcc5-backup member5-backup 134.0.0.16 member5-fpc0 134.0.0.17 member5-fpc1 134.0.0.18 member5-fpc2 134.0.0.19 member5-fpc3 134.0.0.20 member5-fpc4 134.0.0.21 member5-fpc5 134.0.0.22 member5-fpc6 134.0.0.23 member5-fpc7 134.0.0.24 member5-fpc8 134.0.0.25 member5-fpc9 134.0.0.26 member5-fpc10 134.0.0.27 member5-fpc11 134.0.0.28 member5-fpc12 134.0.0.29 member5-fpc13 134.0.0.30 member5-fpc14 134.0.0.31 member5-fpc15 134.0.0.32 member5-fpc16 134.0.0.33 member5-fpc17 134.0.0.34 member5-fpc18 134.0.0.35 member5-fpc19 134.0.0.36 member5-fpc20 134.0.0.37 member5-fpc21 134.0.0.38 member5-fpc22 134.0.0.39 member5-fpc23 134.0.0.40 member5-fpc24 134.0.0.41 member5-fpc25 134.0.0.42 member5-fpc26 134.0.0.43 member5-fpc27 134.0.0.44 member5-fpc28 134.0.0.45 member5-fpc29 134.0.0.46 member5-fpc30 134.0.0.47 member5-fpc31 134.0.0.6 lcc5-backup 134.0.0.16 lcc5-fpc0 134.0.0.17 lcc5-fpc1 134.0.0.18 lcc5-fpc2 134.0.0.19 lcc5-fpc3 134.0.0.20 lcc5-fpc4 134.0.0.21 lcc5-fpc5 134.0.0.22 lcc5-fpc6 134.0.0.23 lcc5-fpc7 134.0.0.48 lcc5-spmb0 134.0.0.49 lcc5-spmb1 #LCC 6 (or MEMBER 6 on Virtual Chassis) 135.0.0.1 lcc6-master member6-master member6 135.0.0.4 lcc6-re0 member6-re0 135.0.0.5 lcc6-re1 member6-re1 135.0.0.6 lcc6-backup member6-backup 135.0.0.16 member6-fpc0 135.0.0.17 member6-fpc1 135.0.0.18 member6-fpc2 135.0.0.19 member6-fpc3 135.0.0.20 member6-fpc4 135.0.0.21 member6-fpc5 135.0.0.22 member6-fpc6 135.0.0.23 member6-fpc7 135.0.0.24 member6-fpc8 135.0.0.25 member6-fpc9 135.0.0.26 member6-fpc10 135.0.0.27 member6-fpc11 135.0.0.28 member6-fpc12 135.0.0.29 member6-fpc13 135.0.0.30 member6-fpc14 135.0.0.31 member6-fpc15 135.0.0.32 member6-fpc16 135.0.0.33 member6-fpc17 135.0.0.34 member6-fpc18 135.0.0.35 member6-fpc19 135.0.0.36 member6-fpc20 135.0.0.37 member6-fpc21 135.0.0.38 member6-fpc22 135.0.0.39 member6-fpc23 135.0.0.40 member6-fpc24 135.0.0.41 member6-fpc25 135.0.0.42 member6-fpc26 135.0.0.43 member6-fpc27 135.0.0.44 member6-fpc28 135.0.0.45 member6-fpc29 135.0.0.46 member6-fpc30 135.0.0.47 member6-fpc31 135.0.0.6 lcc6-backup 135.0.0.16 lcc6-fpc0 135.0.0.17 lcc6-fpc1 135.0.0.18 lcc6-fpc2 135.0.0.19 lcc6-fpc3 135.0.0.20 lcc6-fpc4 135.0.0.21 lcc6-fpc5 135.0.0.22 lcc6-fpc6 135.0.0.23 lcc6-fpc7 135.0.0.48 lcc6-spmb0 135.0.0.49 lcc6-spmb1 #LCC 7 (or MEMBER 7 on Virtual Chassis) 136.0.0.1 lcc7-master member7-master member7 136.0.0.4 lcc7-re0 member7-re0 136.0.0.5 lcc7-re1 member7-re1 136.0.0.6 lcc7-backup member7-backup 136.0.0.16 member7-fpc0 136.0.0.17 member7-fpc1 136.0.0.18 member7-fpc2 136.0.0.19 member7-fpc3 136.0.0.20 member7-fpc4 136.0.0.21 member7-fpc5 136.0.0.22 member7-fpc6 136.0.0.23 member7-fpc7 136.0.0.24 member7-fpc8 136.0.0.25 member7-fpc9 136.0.0.26 member7-fpc10 136.0.0.27 member7-fpc11 136.0.0.28 member7-fpc12 136.0.0.29 member7-fpc13 136.0.0.30 member7-fpc14 136.0.0.31 member7-fpc15 136.0.0.32 member7-fpc16 136.0.0.33 member7-fpc17 136.0.0.34 member7-fpc18 136.0.0.35 member7-fpc19 136.0.0.36 member7-fpc20 136.0.0.37 member7-fpc21 136.0.0.38 member7-fpc22 136.0.0.39 member7-fpc23 136.0.0.40 member7-fpc24 136.0.0.41 member7-fpc25 136.0.0.42 member7-fpc26 136.0.0.43 member7-fpc27 136.0.0.44 member7-fpc28 136.0.0.45 member7-fpc29 136.0.0.46 member7-fpc30 136.0.0.47 member7-fpc31 136.0.0.6 lcc7-backup 136.0.0.16 lcc7-fpc0 136.0.0.17 lcc7-fpc1 136.0.0.18 lcc7-fpc2 136.0.0.19 lcc7-fpc3 136.0.0.20 lcc7-fpc4 136.0.0.21 lcc7-fpc5 136.0.0.22 lcc7-fpc6 136.0.0.23 lcc7-fpc7 136.0.0.48 lcc7-spmb0 136.0.0.49 lcc7-spmb1 137.0.0.6 lcc8-backup 137.0.0.16 lcc8-fpc0 137.0.0.17 lcc8-fpc1 137.0.0.18 lcc8-fpc2 137.0.0.19 lcc8-fpc3 137.0.0.20 lcc8-fpc4 137.0.0.21 lcc8-fpc5 137.0.0.22 lcc8-fpc6 137.0.0.23 lcc8-fpc7 137.0.0.48 lcc8-spmb0 137.0.0.49 lcc8-spmb1 #LCC 8 (or MEMBER 8 on Virtual Chassis) 137.0.0.1 lcc8-master member8-master member8 137.0.0.4 lcc8-re0 member8-re0 137.0.0.5 lcc8-re1 member8-re1 137.0.0.6 lcc8-backup member8-backup 137.0.0.16 member8-fpc0 137.0.0.17 member8-fpc1 137.0.0.18 member8-fpc2 137.0.0.19 member8-fpc3 137.0.0.20 member8-fpc4 137.0.0.21 member8-fpc5 137.0.0.22 member8-fpc6 137.0.0.23 member8-fpc7 137.0.0.24 member8-fpc8 137.0.0.25 member8-fpc9 137.0.0.26 member8-fpc10 137.0.0.27 member8-fpc11 137.0.0.28 member8-fpc12 137.0.0.29 member8-fpc13 137.0.0.30 member8-fpc14 137.0.0.31 member8-fpc15 137.0.0.32 member8-fpc16 137.0.0.33 member8-fpc17 137.0.0.34 member8-fpc18 137.0.0.35 member8-fpc19 137.0.0.36 member8-fpc20 137.0.0.37 member8-fpc21 137.0.0.38 member8-fpc22 137.0.0.39 member8-fpc23 137.0.0.40 member8-fpc24 137.0.0.41 member8-fpc25 137.0.0.42 member8-fpc26 137.0.0.43 member8-fpc27 137.0.0.44 member8-fpc28 137.0.0.45 member8-fpc29 137.0.0.46 member8-fpc30 137.0.0.47 member8-fpc31 138.0.0.6 lcc9-backup 138.0.0.16 lcc9-fpc0 138.0.0.17 lcc9-fpc1 138.0.0.18 lcc9-fpc2 138.0.0.19 lcc9-fpc3 138.0.0.20 lcc9-fpc4 138.0.0.21 lcc9-fpc5 138.0.0.22 lcc9-fpc6 138.0.0.23 lcc9-fpc7 138.0.0.48 lcc9-spmb0 138.0.0.49 lcc9-spmb1 #LCC 9 (or MEMBER 9 on Virtual Chassis) 138.0.0.1 lcc9-master member9-master member9 138.0.0.4 lcc9-re0 member9-re0 138.0.0.5 lcc9-re1 member9-re1 138.0.0.6 lcc9-backup member9-backup 138.0.0.16 member9-fpc0 138.0.0.17 member9-fpc1 138.0.0.18 member9-fpc2 138.0.0.19 member9-fpc3 138.0.0.20 member9-fpc4 138.0.0.21 member9-fpc5 138.0.0.22 member9-fpc6 138.0.0.23 member9-fpc7 138.0.0.24 member9-fpc8 138.0.0.25 member9-fpc9 138.0.0.26 member9-fpc10 138.0.0.27 member9-fpc11 138.0.0.28 member9-fpc12 138.0.0.29 member9-fpc13 138.0.0.30 member9-fpc14 138.0.0.31 member9-fpc15 138.0.0.32 member9-fpc16 138.0.0.33 member9-fpc17 138.0.0.34 member9-fpc18 138.0.0.35 member9-fpc19 138.0.0.36 member9-fpc20 138.0.0.37 member9-fpc21 138.0.0.38 member9-fpc22 138.0.0.39 member9-fpc23 138.0.0.40 member9-fpc24 138.0.0.41 member9-fpc25 138.0.0.42 member9-fpc26 138.0.0.43 member9-fpc27 138.0.0.44 member9-fpc28 138.0.0.45 member9-fpc29 138.0.0.46 member9-fpc30 138.0.0.47 member9-fpc31 139.0.0.6 lcc10-backup 139.0.0.16 lcc10-fpc0 139.0.0.17 lcc10-fpc1 139.0.0.18 lcc10-fpc2 139.0.0.19 lcc10-fpc3 139.0.0.20 lcc10-fpc4 139.0.0.21 lcc10-fpc5 139.0.0.22 lcc10-fpc6 139.0.0.23 lcc10-fpc7 139.0.0.48 lcc10-spmb0 139.0.0.49 lcc10-spmb1 #LCC 10 (or MEMBER 10 on Virtual Chassis) 139.0.0.1 lcc10-master member10-master 139.0.0.4 lcc10-re0 member10-re0 139.0.0.5 lcc10-re1 member10-re1 139.0.0.6 lcc10-backup member10-backup 139.0.0.16 member10-fpc0 139.0.0.17 member10-fpc1 139.0.0.18 member10-fpc2 139.0.0.19 member10-fpc3 139.0.0.20 member10-fpc4 139.0.0.21 member10-fpc5 139.0.0.22 member10-fpc6 139.0.0.23 member10-fpc7 139.0.0.24 member10-fpc8 139.0.0.25 member10-fpc9 139.0.0.26 member10-fpc10 139.0.0.27 member10-fpc11 139.0.0.28 member10-fpc12 139.0.0.29 member10-fpc13 139.0.0.30 member10-fpc14 139.0.0.31 member10-fpc15 139.0.0.32 member10-fpc16 139.0.0.33 member10-fpc17 139.0.0.34 member10-fpc18 139.0.0.35 member10-fpc19 139.0.0.36 member10-fpc20 139.0.0.37 member10-fpc21 139.0.0.38 member10-fpc22 139.0.0.39 member10-fpc23 139.0.0.40 member10-fpc24 139.0.0.41 member10-fpc25 139.0.0.42 member10-fpc26 139.0.0.43 member10-fpc27 139.0.0.44 member10-fpc28 139.0.0.45 member10-fpc29 139.0.0.46 member10-fpc30 139.0.0.47 member10-fpc31 140.0.0.6 lcc11-backup 140.0.0.16 lcc11-fpc0 140.0.0.17 lcc11-fpc1 140.0.0.18 lcc11-fpc2 140.0.0.19 lcc11-fpc3 140.0.0.20 lcc11-fpc4 140.0.0.21 lcc11-fpc5 140.0.0.22 lcc11-fpc6 140.0.0.23 lcc11-fpc7 140.0.0.48 lcc11-spmb0 140.0.0.49 lcc11-spmb1 #LCC 11 (or MEMBER 11 on Virtual Chassis) 140.0.0.1 lcc11-master member11-master 140.0.0.4 lcc11-re0 member11-re0 140.0.0.5 lcc11-re1 member11-re1 140.0.0.6 lcc11-backup member11-backup 140.0.0.16 member11-fpc0 140.0.0.17 member11-fpc1 140.0.0.18 member11-fpc2 140.0.0.19 member11-fpc3 140.0.0.20 member11-fpc4 140.0.0.21 member11-fpc5 140.0.0.22 member11-fpc6 140.0.0.23 member11-fpc7 140.0.0.24 member11-fpc8 140.0.0.25 member11-fpc9 140.0.0.26 member11-fpc10 140.0.0.27 member11-fpc11 140.0.0.28 member11-fpc12 140.0.0.29 member11-fpc13 140.0.0.30 member11-fpc14 140.0.0.31 member11-fpc15 140.0.0.32 member11-fpc16 140.0.0.33 member11-fpc17 140.0.0.34 member11-fpc18 140.0.0.35 member11-fpc19 140.0.0.36 member11-fpc20 140.0.0.37 member11-fpc21 140.0.0.38 member11-fpc22 140.0.0.39 member11-fpc23 140.0.0.40 member11-fpc24 140.0.0.41 member11-fpc25 140.0.0.42 member11-fpc26 140.0.0.43 member11-fpc27 140.0.0.44 member11-fpc28 140.0.0.45 member11-fpc29 140.0.0.46 member11-fpc30 140.0.0.47 member11-fpc31 141.0.0.6 lcc12-backup 141.0.0.16 lcc12-fpc0 141.0.0.17 lcc12-fpc1 141.0.0.18 lcc12-fpc2 141.0.0.19 lcc12-fpc3 141.0.0.20 lcc12-fpc4 141.0.0.21 lcc12-fpc5 141.0.0.22 lcc12-fpc6 141.0.0.23 lcc12-fpc7 141.0.0.48 lcc12-spmb0 141.0.0.49 lcc12-spmb1 #LCC 12 (or MEMBER 12 on Virtual Chassis) 141.0.0.1 lcc12-master member12-master 141.0.0.4 lcc12-re0 member12-re0 141.0.0.5 lcc12-re1 member12-re1 141.0.0.6 lcc12-backup member12-backup 141.0.0.16 member12-fpc0 141.0.0.17 member12-fpc1 141.0.0.18 member12-fpc2 141.0.0.19 member12-fpc3 141.0.0.20 member12-fpc4 141.0.0.21 member12-fpc5 141.0.0.22 member12-fpc6 141.0.0.23 member12-fpc7 141.0.0.24 member12-fpc8 141.0.0.25 member12-fpc9 141.0.0.26 member12-fpc10 141.0.0.27 member12-fpc11 141.0.0.28 member12-fpc12 141.0.0.29 member12-fpc13 141.0.0.30 member12-fpc14 141.0.0.31 member12-fpc15 141.0.0.32 member12-fpc16 141.0.0.33 member12-fpc17 141.0.0.34 member12-fpc18 141.0.0.35 member12-fpc19 141.0.0.36 member12-fpc20 141.0.0.37 member12-fpc21 141.0.0.38 member12-fpc22 141.0.0.39 member12-fpc23 141.0.0.40 member12-fpc24 141.0.0.41 member12-fpc25 141.0.0.42 member12-fpc26 141.0.0.43 member12-fpc27 141.0.0.44 member12-fpc28 141.0.0.45 member12-fpc29 141.0.0.46 member12-fpc30 141.0.0.47 member12-fpc31 142.0.0.6 lcc13-backup 142.0.0.16 lcc13-fpc0 142.0.0.17 lcc13-fpc1 142.0.0.18 lcc13-fpc2 142.0.0.19 lcc13-fpc3 142.0.0.20 lcc13-fpc4 142.0.0.21 lcc13-fpc5 142.0.0.22 lcc13-fpc6 142.0.0.23 lcc13-fpc7 142.0.0.48 lcc13-spmb0 142.0.0.49 lcc13-spmb1 #LCC 13 (or MEMBER 13 on Virtual Chassis) 142.0.0.1 lcc13-master member13-master 142.0.0.4 lcc13-re0 member13-re0 142.0.0.5 lcc13-re1 member13-re1 142.0.0.6 lcc13-backup member13-backup 142.0.0.16 member13-fpc0 142.0.0.17 member13-fpc1 142.0.0.18 member13-fpc2 142.0.0.19 member13-fpc3 142.0.0.20 member13-fpc4 142.0.0.21 member13-fpc5 142.0.0.22 member13-fpc6 142.0.0.23 member13-fpc7 142.0.0.24 member13-fpc8 142.0.0.25 member13-fpc9 142.0.0.26 member13-fpc10 142.0.0.27 member13-fpc11 142.0.0.28 member13-fpc12 142.0.0.29 member13-fpc13 142.0.0.30 member13-fpc14 142.0.0.31 member13-fpc15 142.0.0.32 member13-fpc16 142.0.0.33 member13-fpc17 142.0.0.34 member13-fpc18 142.0.0.35 member13-fpc19 142.0.0.36 member13-fpc20 142.0.0.37 member13-fpc21 142.0.0.38 member13-fpc22 142.0.0.39 member13-fpc23 142.0.0.40 member13-fpc24 142.0.0.41 member13-fpc25 142.0.0.42 member13-fpc26 142.0.0.43 member13-fpc27 142.0.0.44 member13-fpc28 142.0.0.45 member13-fpc29 142.0.0.46 member13-fpc30 142.0.0.47 member13-fpc31 143.0.0.6 lcc14-backup 143.0.0.16 lcc14-fpc0 143.0.0.17 lcc14-fpc1 143.0.0.18 lcc14-fpc2 143.0.0.19 lcc14-fpc3 143.0.0.20 lcc14-fpc4 143.0.0.21 lcc14-fpc5 143.0.0.22 lcc14-fpc6 143.0.0.23 lcc14-fpc7 143.0.0.48 lcc14-spmb0 143.0.0.49 lcc14-spmb1 #LCC 14 (or MEMBER 14 on Virtual Chassis) 143.0.0.1 lcc14-master member14-master 143.0.0.4 lcc14-re0 member14-re0 143.0.0.5 lcc14-re1 member14-re1 143.0.0.6 lcc14-backup member14-backup 143.0.0.16 member14-fpc0 143.0.0.17 member14-fpc1 143.0.0.18 member14-fpc2 143.0.0.19 member14-fpc3 143.0.0.20 member14-fpc4 143.0.0.21 member14-fpc5 143.0.0.22 member14-fpc6 143.0.0.23 member14-fpc7 143.0.0.24 member14-fpc8 143.0.0.25 member14-fpc9 143.0.0.26 member14-fpc10 143.0.0.27 member14-fpc11 143.0.0.28 member14-fpc12 143.0.0.29 member14-fpc13 143.0.0.30 member14-fpc14 143.0.0.31 member14-fpc15 143.0.0.32 member14-fpc16 143.0.0.33 member14-fpc17 143.0.0.34 member14-fpc18 143.0.0.35 member14-fpc19 143.0.0.36 member14-fpc20 143.0.0.37 member14-fpc21 143.0.0.38 member14-fpc22 143.0.0.39 member14-fpc23 143.0.0.40 member14-fpc24 143.0.0.41 member14-fpc25 143.0.0.42 member14-fpc26 143.0.0.43 member14-fpc27 143.0.0.44 member14-fpc28 143.0.0.45 member14-fpc29 143.0.0.46 member14-fpc30 143.0.0.47 member14-fpc31 144.0.0.6 lcc15-backup 144.0.0.16 lcc15-fpc0 144.0.0.17 lcc15-fpc1 144.0.0.18 lcc15-fpc2 144.0.0.19 lcc15-fpc3 144.0.0.20 lcc15-fpc4 144.0.0.21 lcc15-fpc5 144.0.0.22 lcc15-fpc6 144.0.0.23 lcc15-fpc7 144.0.0.48 lcc15-spmb0 144.0.0.49 lcc15-spmb1 #LCC 15 (or MEMBER 15 on Virtual Chassis) 144.0.0.1 lcc15-master member15-master 144.0.0.4 lcc15-re0 member15-re0 144.0.0.5 lcc15-re1 member15-re1 144.0.0.6 lcc15-backup member15-backup 144.0.0.16 member15-fpc0 144.0.0.17 member15-fpc1 144.0.0.18 member15-fpc2 144.0.0.19 member15-fpc3 144.0.0.20 member15-fpc4 144.0.0.21 member15-fpc5 144.0.0.22 member15-fpc6 144.0.0.23 member15-fpc7 144.0.0.24 member15-fpc8 144.0.0.25 member15-fpc9 144.0.0.26 member15-fpc10 144.0.0.27 member15-fpc11 144.0.0.28 member15-fpc12 144.0.0.29 member15-fpc13 144.0.0.30 member15-fpc14 144.0.0.31 member15-fpc15 144.0.0.32 member15-fpc16 144.0.0.33 member15-fpc17 144.0.0.34 member15-fpc18 144.0.0.35 member15-fpc19 144.0.0.36 member15-fpc20 144.0.0.37 member15-fpc21 144.0.0.38 member15-fpc22 144.0.0.39 member15-fpc23 144.0.0.40 member15-fpc24 144.0.0.41 member15-fpc25 144.0.0.42 member15-fpc26 144.0.0.43 member15-fpc27 144.0.0.44 member15-fpc28 144.0.0.45 member15-fpc29 144.0.0.46 member15-fpc30 144.0.0.47 member15-fpc31 #LCC 16 (or MEMBER 16 on Virtual Chassis) 145.0.0.1 lcc16-master member16-master 145.0.0.4 lcc16-re0 member16-re0 145.0.0.5 lcc16-re1 member16-re1 145.0.0.6 lcc16-backup member16-backup 145.0.0.16 member16-fpc0 145.0.0.17 member16-fpc1 145.0.0.18 member16-fpc2 145.0.0.19 member16-fpc3 145.0.0.20 member16-fpc4 145.0.0.21 member16-fpc5 145.0.0.22 member16-fpc6 145.0.0.23 member16-fpc7 145.0.0.24 member16-fpc8 145.0.0.25 member16-fpc9 145.0.0.26 member16-fpc10 145.0.0.27 member16-fpc11 145.0.0.28 member16-fpc12 145.0.0.29 member16-fpc13 145.0.0.30 member16-fpc14 145.0.0.31 member16-fpc15 145.0.0.32 member16-fpc16 145.0.0.33 member16-fpc17 145.0.0.34 member16-fpc18 145.0.0.35 member16-fpc19 145.0.0.36 member16-fpc20 145.0.0.37 member16-fpc21 145.0.0.38 member16-fpc22 145.0.0.39 member16-fpc23 145.0.0.40 member16-fpc24 145.0.0.41 member16-fpc25 145.0.0.42 member16-fpc26 145.0.0.43 member16-fpc27 145.0.0.44 member16-fpc28 145.0.0.45 member16-fpc29 145.0.0.46 member16-fpc30 145.0.0.47 member16-fpc31 #LCC 17 (or MEMBER 17 on Virtual Chassis) 146.0.0.1 lcc17-master member17-master 146.0.0.4 lcc17-re0 member17-re0 146.0.0.5 lcc17-re1 member17-re1 146.0.0.6 lcc17-backup member17-backup 146.0.0.16 member17-fpc0 146.0.0.17 member17-fpc1 146.0.0.18 member17-fpc2 146.0.0.19 member17-fpc3 146.0.0.20 member17-fpc4 146.0.0.21 member17-fpc5 146.0.0.22 member17-fpc6 146.0.0.23 member17-fpc7 146.0.0.24 member17-fpc8 146.0.0.25 member17-fpc9 146.0.0.26 member17-fpc10 146.0.0.27 member17-fpc11 146.0.0.28 member17-fpc12 146.0.0.29 member17-fpc13 146.0.0.30 member17-fpc14 146.0.0.31 member17-fpc15 146.0.0.32 member17-fpc16 146.0.0.33 member17-fpc17 146.0.0.34 member17-fpc18 146.0.0.35 member17-fpc19 146.0.0.36 member17-fpc20 146.0.0.37 member17-fpc21 146.0.0.38 member17-fpc22 146.0.0.39 member17-fpc23 146.0.0.40 member17-fpc24 146.0.0.41 member17-fpc25 146.0.0.42 member17-fpc26 146.0.0.43 member17-fpc27 146.0.0.44 member17-fpc28 146.0.0.45 member17-fpc29 146.0.0.46 member17-fpc30 146.0.0.47 member17-fpc31 #LCC 18 (or MEMBER 18 on Virtual Chassis) 147.0.0.1 lcc18-master member18-master 147.0.0.4 lcc18-re0 member18-re0 147.0.0.5 lcc18-re1 member18-re1 147.0.0.6 lcc18-backup member18-backup 147.0.0.16 member18-fpc0 147.0.0.17 member18-fpc1 147.0.0.18 member18-fpc2 147.0.0.19 member18-fpc3 147.0.0.20 member18-fpc4 147.0.0.21 member18-fpc5 147.0.0.22 member18-fpc6 147.0.0.23 member18-fpc7 147.0.0.24 member18-fpc8 147.0.0.25 member18-fpc9 147.0.0.26 member18-fpc10 147.0.0.27 member18-fpc11 147.0.0.28 member18-fpc12 147.0.0.29 member18-fpc13 147.0.0.30 member18-fpc14 147.0.0.31 member18-fpc15 147.0.0.32 member18-fpc16 147.0.0.33 member18-fpc17 147.0.0.34 member18-fpc18 147.0.0.35 member18-fpc19 147.0.0.36 member18-fpc20 147.0.0.37 member18-fpc21 147.0.0.38 member18-fpc22 147.0.0.39 member18-fpc23 147.0.0.40 member18-fpc24 147.0.0.41 member18-fpc25 147.0.0.42 member18-fpc26 147.0.0.43 member18-fpc27 147.0.0.44 member18-fpc28 147.0.0.45 member18-fpc29 147.0.0.46 member18-fpc30 147.0.0.47 member18-fpc31 #LCC 19 (or MEMBER 19 on Virtual Chassis) 148.0.0.1 lcc19-master member19-master 148.0.0.4 lcc19-re0 member19-re0 148.0.0.5 lcc19-re1 member19-re1 148.0.0.6 lcc19-backup member19-backup 148.0.0.16 member19-fpc0 148.0.0.17 member19-fpc1 148.0.0.18 member19-fpc2 148.0.0.19 member19-fpc3 148.0.0.20 member19-fpc4 148.0.0.21 member19-fpc5 148.0.0.22 member19-fpc6 148.0.0.23 member19-fpc7 148.0.0.24 member19-fpc8 148.0.0.25 member19-fpc9 148.0.0.26 member19-fpc10 148.0.0.27 member19-fpc11 148.0.0.28 member19-fpc12 148.0.0.29 member19-fpc13 148.0.0.30 member19-fpc14 148.0.0.31 member19-fpc15 148.0.0.32 member19-fpc16 148.0.0.33 member19-fpc17 148.0.0.34 member19-fpc18 148.0.0.35 member19-fpc19 148.0.0.36 member19-fpc20 148.0.0.37 member19-fpc21 148.0.0.38 member19-fpc22 148.0.0.39 member19-fpc23 148.0.0.40 member19-fpc24 148.0.0.41 member19-fpc25 148.0.0.42 member19-fpc26 148.0.0.43 member19-fpc27 148.0.0.44 member19-fpc28 148.0.0.45 member19-fpc29 148.0.0.46 member19-fpc30 148.0.0.47 member19-fpc31 #LCC 20 (or MEMBER 20 on Virtual Chassis) 149.0.0.1 lcc20-master member20-master 149.0.0.4 lcc20-re0 member20-re0 149.0.0.5 lcc20-re1 member20-re1 149.0.0.6 lcc20-backup member20-backup 149.0.0.16 member20-fpc0 149.0.0.17 member20-fpc1 149.0.0.18 member20-fpc2 149.0.0.19 member20-fpc3 149.0.0.20 member20-fpc4 149.0.0.21 member20-fpc5 149.0.0.22 member20-fpc6 149.0.0.23 member20-fpc7 149.0.0.24 member20-fpc8 149.0.0.25 member20-fpc9 149.0.0.26 member20-fpc10 149.0.0.27 member20-fpc11 149.0.0.28 member20-fpc12 149.0.0.29 member20-fpc13 149.0.0.30 member20-fpc14 149.0.0.31 member20-fpc15 149.0.0.32 member20-fpc16 149.0.0.33 member20-fpc17 149.0.0.34 member20-fpc18 149.0.0.35 member20-fpc19 149.0.0.36 member20-fpc20 149.0.0.37 member20-fpc21 149.0.0.38 member20-fpc22 149.0.0.39 member20-fpc23 149.0.0.40 member20-fpc24 149.0.0.41 member20-fpc25 149.0.0.42 member20-fpc26 149.0.0.43 member20-fpc27 149.0.0.44 member20-fpc28 149.0.0.45 member20-fpc29 149.0.0.46 member20-fpc30 149.0.0.47 member20-fpc31 #LCC 21 (or MEMBER 21 on Virtual Chassis) 150.0.0.1 lcc21-master member21-master 150.0.0.4 lcc21-re0 member21-re0 150.0.0.5 lcc21-re1 member21-re1 150.0.0.6 lcc21-backup member21-backup 150.0.0.16 member21-fpc0 150.0.0.17 member21-fpc1 150.0.0.18 member21-fpc2 150.0.0.19 member21-fpc3 150.0.0.20 member21-fpc4 150.0.0.21 member21-fpc5 150.0.0.22 member21-fpc6 150.0.0.23 member21-fpc7 150.0.0.24 member21-fpc8 150.0.0.25 member21-fpc9 150.0.0.26 member21-fpc10 150.0.0.27 member21-fpc11 150.0.0.28 member21-fpc12 150.0.0.29 member21-fpc13 150.0.0.30 member21-fpc14 150.0.0.31 member21-fpc15 150.0.0.32 member21-fpc16 150.0.0.33 member21-fpc17 150.0.0.34 member21-fpc18 150.0.0.35 member21-fpc19 150.0.0.36 member21-fpc20 150.0.0.37 member21-fpc21 150.0.0.38 member21-fpc22 150.0.0.39 member21-fpc23 150.0.0.40 member21-fpc24 150.0.0.41 member21-fpc25 150.0.0.42 member21-fpc26 150.0.0.43 member21-fpc27 150.0.0.44 member21-fpc28 150.0.0.45 member21-fpc29 150.0.0.46 member21-fpc30 150.0.0.47 member21-fpc31 #LCC 22 (or MEMBER 22 on Virtual Chassis) 151.0.0.1 lcc22-master member22-master 151.0.0.4 lcc22-re0 member22-re0 151.0.0.5 lcc22-re1 member22-re1 151.0.0.6 lcc22-backup member22-backup 151.0.0.16 member22-fpc0 151.0.0.17 member22-fpc1 151.0.0.18 member22-fpc2 151.0.0.19 member22-fpc3 151.0.0.20 member22-fpc4 151.0.0.21 member22-fpc5 151.0.0.22 member22-fpc6 151.0.0.23 member22-fpc7 151.0.0.24 member22-fpc8 151.0.0.25 member22-fpc9 151.0.0.26 member22-fpc10 151.0.0.27 member22-fpc11 151.0.0.28 member22-fpc12 151.0.0.29 member22-fpc13 151.0.0.30 member22-fpc14 151.0.0.31 member22-fpc15 151.0.0.32 member22-fpc16 151.0.0.33 member22-fpc17 151.0.0.34 member22-fpc18 151.0.0.35 member22-fpc19 151.0.0.36 member22-fpc20 151.0.0.37 member22-fpc21 151.0.0.38 member22-fpc22 151.0.0.39 member22-fpc23 151.0.0.40 member22-fpc24 151.0.0.41 member22-fpc25 151.0.0.42 member22-fpc26 151.0.0.43 member22-fpc27 151.0.0.44 member22-fpc28 151.0.0.45 member22-fpc29 151.0.0.46 member22-fpc30 151.0.0.47 member22-fpc31 #LCC 23 (or MEMBER 23 on Virtual Chassis) 152.0.0.1 lcc23-master member23-master 152.0.0.4 lcc23-re0 member23-re0 152.0.0.5 lcc23-re1 member23-re1 152.0.0.6 lcc23-backup member23-backup 152.0.0.16 member23-fpc0 152.0.0.17 member23-fpc1 152.0.0.18 member23-fpc2 152.0.0.19 member23-fpc3 152.0.0.20 member23-fpc4 152.0.0.21 member23-fpc5 152.0.0.22 member23-fpc6 152.0.0.23 member23-fpc7 152.0.0.24 member23-fpc8 152.0.0.25 member23-fpc9 152.0.0.26 member23-fpc10 152.0.0.27 member23-fpc11 152.0.0.28 member23-fpc12 152.0.0.29 member23-fpc13 152.0.0.30 member23-fpc14 152.0.0.31 member23-fpc15 152.0.0.32 member23-fpc16 152.0.0.33 member23-fpc17 152.0.0.34 member23-fpc18 152.0.0.35 member23-fpc19 152.0.0.36 member23-fpc20 152.0.0.37 member23-fpc21 152.0.0.38 member23-fpc22 152.0.0.39 member23-fpc23 152.0.0.40 member23-fpc24 152.0.0.41 member23-fpc25 152.0.0.42 member23-fpc26 152.0.0.43 member23-fpc27 152.0.0.44 member23-fpc28 152.0.0.45 member23-fpc29 152.0.0.46 member23-fpc30 152.0.0.47 member23-fpc31 #LCC 24 (or MEMBER 24 on Virtual Chassis) 153.0.0.1 lcc24-master member24-master 153.0.0.4 lcc24-re0 member24-re0 153.0.0.5 lcc24-re1 member24-re1 153.0.0.6 lcc24-backup member24-backup 153.0.0.16 member24-fpc0 153.0.0.17 member24-fpc1 153.0.0.18 member24-fpc2 153.0.0.19 member24-fpc3 153.0.0.20 member24-fpc4 153.0.0.21 member24-fpc5 153.0.0.22 member24-fpc6 153.0.0.23 member24-fpc7 153.0.0.24 member24-fpc8 153.0.0.25 member24-fpc9 153.0.0.26 member24-fpc10 153.0.0.27 member24-fpc11 153.0.0.28 member24-fpc12 153.0.0.29 member24-fpc13 153.0.0.30 member24-fpc14 153.0.0.31 member24-fpc15 153.0.0.32 member24-fpc16 153.0.0.33 member24-fpc17 153.0.0.34 member24-fpc18 153.0.0.35 member24-fpc19 153.0.0.36 member24-fpc20 153.0.0.37 member24-fpc21 153.0.0.38 member24-fpc22 153.0.0.39 member24-fpc23 153.0.0.40 member24-fpc24 153.0.0.41 member24-fpc25 153.0.0.42 member24-fpc26 153.0.0.43 member24-fpc27 153.0.0.44 member24-fpc28 153.0.0.45 member24-fpc29 153.0.0.46 member24-fpc30 153.0.0.47 member24-fpc31 #LCC 25 (or MEMBER 25 on Virtual Chassis) 154.0.0.1 lcc25-master member25-master 154.0.0.4 lcc25-re0 member25-re0 154.0.0.5 lcc25-re1 member25-re1 154.0.0.6 lcc25-backup member25-backup 154.0.0.16 member25-fpc0 154.0.0.17 member25-fpc1 154.0.0.18 member25-fpc2 154.0.0.19 member25-fpc3 154.0.0.20 member25-fpc4 154.0.0.21 member25-fpc5 154.0.0.22 member25-fpc6 154.0.0.23 member25-fpc7 154.0.0.24 member25-fpc8 154.0.0.25 member25-fpc9 154.0.0.26 member25-fpc10 154.0.0.27 member25-fpc11 154.0.0.28 member25-fpc12 154.0.0.29 member25-fpc13 154.0.0.30 member25-fpc14 154.0.0.31 member25-fpc15 154.0.0.32 member25-fpc16 154.0.0.33 member25-fpc17 154.0.0.34 member25-fpc18 154.0.0.35 member25-fpc19 154.0.0.36 member25-fpc20 154.0.0.37 member25-fpc21 154.0.0.38 member25-fpc22 154.0.0.39 member25-fpc23 154.0.0.40 member25-fpc24 154.0.0.41 member25-fpc25 154.0.0.42 member25-fpc26 154.0.0.43 member25-fpc27 154.0.0.44 member25-fpc28 154.0.0.45 member25-fpc29 154.0.0.46 member25-fpc30 154.0.0.47 member25-fpc31 #LCC 26 (or MEMBER 26 on Virtual Chassis) 155.0.0.1 lcc26-master member26-master 155.0.0.4 lcc26-re0 member26-re0 155.0.0.5 lcc26-re1 member26-re1 155.0.0.6 lcc26-backup member26-backup 155.0.0.16 member26-fpc0 155.0.0.17 member26-fpc1 155.0.0.18 member26-fpc2 155.0.0.19 member26-fpc3 155.0.0.20 member26-fpc4 155.0.0.21 member26-fpc5 155.0.0.22 member26-fpc6 155.0.0.23 member26-fpc7 155.0.0.24 member26-fpc8 155.0.0.25 member26-fpc9 155.0.0.26 member26-fpc10 155.0.0.27 member26-fpc11 155.0.0.28 member26-fpc12 155.0.0.29 member26-fpc13 155.0.0.30 member26-fpc14 155.0.0.31 member26-fpc15 155.0.0.32 member26-fpc16 155.0.0.33 member26-fpc17 155.0.0.34 member26-fpc18 155.0.0.35 member26-fpc19 155.0.0.36 member26-fpc20 155.0.0.37 member26-fpc21 155.0.0.38 member26-fpc22 155.0.0.39 member26-fpc23 155.0.0.40 member26-fpc24 155.0.0.41 member26-fpc25 155.0.0.42 member26-fpc26 155.0.0.43 member26-fpc27 155.0.0.44 member26-fpc28 155.0.0.45 member26-fpc29 155.0.0.46 member26-fpc30 155.0.0.47 member26-fpc31 #LCC 27 (or MEMBER 27 on Virtual Chassis) 156.0.0.1 lcc27-master member27-master 156.0.0.4 lcc27-re0 member27-re0 156.0.0.5 lcc27-re1 member27-re1 156.0.0.6 lcc27-backup member27-backup 156.0.0.16 member27-fpc0 156.0.0.17 member27-fpc1 156.0.0.18 member27-fpc2 156.0.0.19 member27-fpc3 156.0.0.20 member27-fpc4 156.0.0.21 member27-fpc5 156.0.0.22 member27-fpc6 156.0.0.23 member27-fpc7 156.0.0.24 member27-fpc8 156.0.0.25 member27-fpc9 156.0.0.26 member27-fpc10 156.0.0.27 member27-fpc11 156.0.0.28 member27-fpc12 156.0.0.29 member27-fpc13 156.0.0.30 member27-fpc14 156.0.0.31 member27-fpc15 156.0.0.32 member27-fpc16 156.0.0.33 member27-fpc17 156.0.0.34 member27-fpc18 156.0.0.35 member27-fpc19 156.0.0.36 member27-fpc20 156.0.0.37 member27-fpc21 156.0.0.38 member27-fpc22 156.0.0.39 member27-fpc23 156.0.0.40 member27-fpc24 156.0.0.41 member27-fpc25 156.0.0.42 member27-fpc26 156.0.0.43 member27-fpc27 156.0.0.44 member27-fpc28 156.0.0.45 member27-fpc29 156.0.0.46 member27-fpc30 156.0.0.47 member27-fpc31 #LCC 28 (or MEMBER 28 on Virtual Chassis) 157.0.0.1 lcc28-master member28-master 157.0.0.4 lcc28-re0 member28-re0 157.0.0.5 lcc28-re1 member28-re1 157.0.0.6 lcc28-backup member28-backup 157.0.0.16 member28-fpc0 157.0.0.17 member28-fpc1 157.0.0.18 member28-fpc2 157.0.0.19 member28-fpc3 157.0.0.20 member28-fpc4 157.0.0.21 member28-fpc5 157.0.0.22 member28-fpc6 157.0.0.23 member28-fpc7 157.0.0.24 member28-fpc8 157.0.0.25 member28-fpc9 157.0.0.26 member28-fpc10 157.0.0.27 member28-fpc11 157.0.0.28 member28-fpc12 157.0.0.29 member28-fpc13 157.0.0.30 member28-fpc14 157.0.0.31 member28-fpc15 157.0.0.32 member28-fpc16 157.0.0.33 member28-fpc17 157.0.0.34 member28-fpc18 157.0.0.35 member28-fpc19 157.0.0.36 member28-fpc20 157.0.0.37 member28-fpc21 157.0.0.38 member28-fpc22 157.0.0.39 member28-fpc23 157.0.0.40 member28-fpc24 157.0.0.41 member28-fpc25 157.0.0.42 member28-fpc26 157.0.0.43 member28-fpc27 157.0.0.44 member28-fpc28 157.0.0.45 member28-fpc29 157.0.0.46 member28-fpc30 157.0.0.47 member28-fpc31 #LCC 29 (or MEMBER 29 on Virtual Chassis) 158.0.0.1 lcc29-master member29-master 158.0.0.4 lcc29-re0 member29-re0 158.0.0.5 lcc29-re1 member29-re1 158.0.0.6 lcc29-backup member29-backup 158.0.0.16 member29-fpc0 158.0.0.17 member29-fpc1 158.0.0.18 member29-fpc2 158.0.0.19 member29-fpc3 158.0.0.20 member29-fpc4 158.0.0.21 member29-fpc5 158.0.0.22 member29-fpc6 158.0.0.23 member29-fpc7 158.0.0.24 member29-fpc8 158.0.0.25 member29-fpc9 158.0.0.26 member29-fpc10 158.0.0.27 member29-fpc11 158.0.0.28 member29-fpc12 158.0.0.29 member29-fpc13 158.0.0.30 member29-fpc14 158.0.0.31 member29-fpc15 158.0.0.32 member29-fpc16 158.0.0.33 member29-fpc17 158.0.0.34 member29-fpc18 158.0.0.35 member29-fpc19 158.0.0.36 member29-fpc20 158.0.0.37 member29-fpc21 158.0.0.38 member29-fpc22 158.0.0.39 member29-fpc23 158.0.0.40 member29-fpc24 158.0.0.41 member29-fpc25 158.0.0.42 member29-fpc26 158.0.0.43 member29-fpc27 158.0.0.44 member29-fpc28 158.0.0.45 member29-fpc29 158.0.0.46 member29-fpc30 158.0.0.47 member29-fpc31 #LCC 30 (or MEMBER 30 on Virtual Chassis) 159.0.0.1 lcc30-master member30-master 159.0.0.4 lcc30-re0 member30-re0 159.0.0.5 lcc30-re1 member30-re1 159.0.0.6 lcc30-backup member30-backup 159.0.0.16 member30-fpc0 159.0.0.17 member30-fpc1 159.0.0.18 member30-fpc2 159.0.0.19 member30-fpc3 159.0.0.20 member30-fpc4 159.0.0.21 member30-fpc5 159.0.0.22 member30-fpc6 159.0.0.23 member30-fpc7 159.0.0.24 member30-fpc8 159.0.0.25 member30-fpc9 159.0.0.26 member30-fpc10 159.0.0.27 member30-fpc11 159.0.0.28 member30-fpc12 159.0.0.29 member30-fpc13 159.0.0.30 member30-fpc14 159.0.0.31 member30-fpc15 159.0.0.32 member30-fpc16 159.0.0.33 member30-fpc17 159.0.0.34 member30-fpc18 159.0.0.35 member30-fpc19 159.0.0.36 member30-fpc20 159.0.0.37 member30-fpc21 159.0.0.38 member30-fpc22 159.0.0.39 member30-fpc23 159.0.0.40 member30-fpc24 159.0.0.41 member30-fpc25 159.0.0.42 member30-fpc26 159.0.0.43 member30-fpc27 159.0.0.44 member30-fpc28 159.0.0.45 member30-fpc29 159.0.0.46 member30-fpc30 159.0.0.47 member30-fpc31 #LCC 31 (or MEMBER 31 on Virtual Chassis) 160.0.0.1 lcc31-master member31-master 160.0.0.4 lcc31-re0 member31-re0 160.0.0.5 lcc31-re1 member31-re1 160.0.0.6 lcc31-backup member31-backup 160.0.0.16 member31-fpc0 160.0.0.17 member31-fpc1 160.0.0.18 member31-fpc2 160.0.0.19 member31-fpc3 160.0.0.20 member31-fpc4 160.0.0.21 member31-fpc5 160.0.0.22 member31-fpc6 160.0.0.23 member31-fpc7 160.0.0.24 member31-fpc8 160.0.0.25 member31-fpc9 160.0.0.26 member31-fpc10 160.0.0.27 member31-fpc11 160.0.0.28 member31-fpc12 160.0.0.29 member31-fpc13 160.0.0.30 member31-fpc14 160.0.0.31 member31-fpc15 160.0.0.32 member31-fpc16 160.0.0.33 member31-fpc17 160.0.0.34 member31-fpc18 160.0.0.35 member31-fpc19 160.0.0.36 member31-fpc20 160.0.0.37 member31-fpc21 160.0.0.38 member31-fpc22 160.0.0.39 member31-fpc23 160.0.0.40 member31-fpc24 160.0.0.41 member31-fpc25 160.0.0.42 member31-fpc26 160.0.0.43 member31-fpc27 160.0.0.44 member31-fpc28 160.0.0.45 member31-fpc29 160.0.0.46 member31-fpc30 160.0.0.47 member31-fpc31 #VIRT SC 161.0.0.1 sc-master 161.0.0.4 sc-re0 161.0.0.5 sc-re1 161.0.0.6 sc-backup #SFC 0 162.0.0.1 sfc0-master 162.0.0.4 sfc0-re0 162.0.0.5 sfc0-re1 162.0.0.6 sfc0-backup 162.0.0.48 sfc0-spmb0 162.0.0.49 sfc0-spmb1 #SFC 1 163.0.0.1 sfc1-master 163.0.0.4 sfc1-re0 163.0.0.5 sfc1-re1 163.0.0.6 sfc1-backup 163.0.0.48 sfc1-spmb0 163.0.0.49 sfc1-spmb1 #SFC 2 164.0.0.1 sfc2-master 164.0.0.4 sfc2-re0 164.0.0.5 sfc2-re1 164.0.0.6 sfc2-backup 164.0.0.48 sfc2-spmb0 164.0.0.49 sfc2-spmb1 #SFC 3 165.0.0.1 sfc3-master 165.0.0.4 sfc3-re0 165.0.0.5 sfc3-re1 165.0.0.6 sfc3-backup 165.0.0.48 sfc3-spmb0 165.0.0.49 sfc3-spmb1 #SFC 4 166.0.0.1 sfc4-master 166.0.0.4 sfc4-re0 166.0.0.5 sfc4-re1 166.0.0.6 sfc4-backup 166.0.0.48 sfc4-spmb0 166.0.0.49 sfc4-spmb1 #JCS 190.0.0.1 psd%d-master 190.0.0.4 psd%d-re0 190.0.0.5 psd%d-re1 190.0.0.6 psd%d-backup # Old IP address format (RT_IRS_V2) # # Single Chassis Hostnames # 10.0.0.1 master 10.0.0.4 re0 10.0.0.5 re1 10.0.0.16 fpc0 10.0.0.17 fpc1 10.0.0.18 fpc2 10.0.0.19 fpc3 10.0.0.20 fpc4 10.0.0.21 fpc5 10.0.0.22 fpc6 10.0.0.23 fpc7 10.0.0.24 fpc8 10.0.0.25 fpc9 10.0.0.26 fpc10 10.0.0.27 fpc11 10.0.0.28 fpc12 10.0.0.29 fpc13 10.0.0.30 fpc14 10.0.0.31 fpc15 # # Multi Chassis Hostnames # #SCC 10.16.0.1 scc-master 10.16.0.4 scc-re0 10.16.0.5 scc-re1 #LCC 0 10.1.0.1 lcc0-master member0-master 10.1.0.4 lcc0-re0 member0-re0 10.1.0.5 lcc0-re1 member0-re1 10.1.0.6 lcc0-backup member0-backup #LCC 1 10.2.0.1 lcc1-master member1-master 10.2.0.4 lcc1-re0 member1-re0 10.2.0.5 lcc1-re1 member1-re1 10.2.0.6 lcc1-backup member1-backup #LCC 2 10.3.0.1 lcc2-master member2-master 10.3.0.4 lcc2-re0 member2-re0 10.3.0.5 lcc2-re1 member2-re1 10.3.0.6 lcc2-backup member2-backup #LCC 3 10.4.0.1 lcc3-master member3-master 10.4.0.4 lcc3-re0 member3-re0 10.4.0.5 lcc3-re1 member3-re1 10.4.0.6 lcc3-backup member3-backup #LCC 4 10.5.0.1 lcc4-master member4-master 10.5.0.4 lcc4-re0 member4-re0 10.5.0.5 lcc4-re1 member4-re1 10.5.0.6 lcc4-backup member4-backup #LCC 5 10.6.0.1 lcc5-master member5-master 10.6.0.4 lcc5-re0 member5-re0 10.6.0.5 lcc5-re1 member5-re1 10.6.0.6 lcc5-backup member5-backup #LCC 6 10.7.0.1 lcc6-master member6-master 10.7.0.4 lcc6-re0 member6-re0 10.7.0.5 lcc6-re1 member6-re1 10.7.0.6 lcc6-backup member6-backup #LCC 7 10.8.0.1 lcc7-master member7-master 10.8.0.4 lcc7-re0 member7-re0 10.8.0.5 lcc7-re1 member7-re1 10.8.0.6 lcc7-backup member7-backup #LCC 8 10.9.0.1 lcc8-master member8-master 10.9.0.4 lcc8-re0 member8-re0 10.9.0.5 lcc8-re1 member8-re1 10.9.0.6 lcc8-backup member8-backup #LCC 9 10.10.0.1 lcc9-master member9-master 10.10.0.4 lcc9-re0 member9-re0 10.10.0.5 lcc9-re1 member9-re1 10.10.0.6 lcc9-backup member9-backup #LCC 10 10.11.0.1 lcc10-master member10-master 10.11.0.4 lcc10-re0 member10-re0 10.11.0.5 lcc10-re1 member10-re1 10.11.0.6 lcc10-backup member10-backup #LCC 11 10.12.0.1 lcc11-master member11-master 10.12.0.4 lcc11-re0 member11-re0 10.12.0.5 lcc11-re1 member11-re1 10.12.0.6 lcc11-backup member11-backup #LCC 12 10.13.0.1 lcc12-master member12-master 10.13.0.4 lcc12-re0 member12-re0 10.13.0.5 lcc12-re1 member12-re1 10.13.0.6 lcc12-backup member12-backup #LCC 13 10.14.0.1 lcc13-master member13-master 10.14.0.4 lcc13-re0 member13-re0 10.14.0.5 lcc13-re1 member13-re1 10.14.0.6 lcc13-backup member13-backup #LCC 14 10.15.0.1 lcc14-master member14-master 10.15.0.4 lcc14-re0 member14-re0 10.15.0.5 lcc14-re1 member14-re1 10.15.0.6 lcc14-backup member14-backup #LCC 15 10.16.0.1 lcc15-master member15-master 10.16.0.4 lcc15-re0 member15-re0 10.16.0.5 lcc15-re1 member15-re1 10.16.0.6 lcc15-backup member15-backup #SFC 0 10.34.0.1 sfc0-master 10.34.0.4 sfc0-re0 10.34.0.5 sfc0-re1 #SFC 1 10.35.0.1 sfc1-master 10.35.0.4 sfc1-re0 10.35.0.5 sfc1-re1 #SFC 2 10.36.0.1 sfc2-master 10.36.0.4 sfc2-re0 10.36.0.5 sfc2-re1 #SFC 3 10.37.0.1 sfc3-master 10.37.0.4 sfc3-re0 10.37.0.5 sfc3-re1 #SFC 4 10.38.0.1 sfc4-master 10.38.0.4 sfc4-re0 10.38.0.5 sfc4-re1 # End of internal names py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/personality_ptx_get-interface-information.xml000066400000000000000000000421631475361112400325220ustar00rootroot00000000000000 pfh-0/0/0.16383 up up inet pfh-1/0/0.16383 up up inet pfh-2/0/0.16383 up up inet pfh-3/0/0.16383 up up inet pfh-6/0/0.16383 up up inet ixgbe0.0 up up inet 10.0.0.4/8 128.0.0.1/2 128.0.0.4/2 inet6 fe80::200:ff:fe00:4/64 fec0::a:0:0:4/64 tnp 0x4 ixgbe1.0 up up inet 10.0.0.4/8 128.0.0.1/2 128.0.0.4/2 inet6 fe80::200:1ff:fe00:4/64 fec0::a:0:0:4/64 tnp 0x4 lo0.16385 up up inet {master} py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/personality_ptx_get-route-engine-information.xml000066400000000000000000000067541475361112400331710ustar00rootroot00000000000000 0 master master OK 56 degrees C / 132 degrees F 68 degrees C / 154 degrees F 16359 MB (16384 MB installed) 11 1 0 5 0 95 1 0 5 0 94 1 0 5 0 94 1 0 5 0 94 RE-DUO-2600 P737A-002504 2016-12-14 00:34:03 PST 18 days, 14 hours, 25 minutes, 49 seconds Router rebooted after a normal shutdown. 0.00 0.01 0.01 1 backup backup OK 58 degrees C / 136 degrees F 76 degrees C / 168 degrees F 16359 MB (16384 MB installed) 10 0 0 0 0 99 RE-DUO-2600 P737A-002518 2016-12-14 00:34:10 PST 18 days, 14 hours, 25 minutes, 24 seconds Router rebooted after a normal shutdown. 0.00 0.00 0.00 py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/personality_srx_branch_command.xml000066400000000000000000000007051475361112400304120ustar00rootroot00000000000000 usability-he2 srx210he2 srx210he2 junos JUNOS Software Release [12.1X46-D65] py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/personality_srx_branch_file-show.xml000066400000000000000000000752751475361112400307070ustar00rootroot00000000000000 #$Id: hosts.junos,v 1.7.72.1 2009-04-16 05:22:03 kdickman Exp $ # # File mapping AF_INET/AF_INET6 hostnames for REs on Single and Multichassis # systems # # This file is looked at before /etc/hosts by gethostbyname(3), # gethostbyname2(3) and getaddrinfo(3) # # The IP addresses in this file are only used for communication between REs # over the Internal Routing Instances # # WARNING: # # The names in this file are effectively reserved for internal use. # # New IP address format (RT_IRS_V3) # # Single Chassis Hostnames # 128.0.0.1 master 128.0.0.1 node 128.0.0.1 fwdd 128.0.0.1 member 128.0.0.1 pfem 128.0.0.2 scb 128.0.0.2 sbr 128.0.0.2 ssb 128.0.0.2 feb 128.0.0.2 cfeb0 128.0.0.2 cfeb 128.0.0.2 cpp0 128.0.0.3 cfeb1 128.0.0.3 cpp1 128.0.0.4 re0 128.0.0.5 re1 128.0.0.6 backup 128.0.0.8 sfm0 128.0.0.9 sfm1 128.0.0.10 sfm2 128.0.0.16 fpc0 128.0.0.17 fpc1 128.0.0.18 fpc2 128.0.0.19 fpc3 128.0.0.20 fpc4 128.0.0.21 fpc5 128.0.0.22 fpc6 128.0.0.23 fpc7 128.0.0.24 fpc8 128.0.0.25 fpc9 128.0.0.26 fpc10 128.0.0.27 fpc11 128.0.0.28 fpc12 128.0.0.29 fpc13 128.0.0.30 fpc14 128.0.0.31 fpc15 128.0.0.32 feb0 128.0.0.33 feb1 128.0.0.34 feb2 128.0.0.35 feb3 128.0.0.36 feb4 128.0.0.37 feb5 128.0.0.48 spmb0 128.0.0.49 spmb1 128.0.0.50 tfeb0 128.0.1.16 fpc0.pic0 128.0.1.17 fpc1.pic0 128.0.1.18 fpc2.pic0 128.0.1.19 fpc3.pic0 128.0.1.20 fpc4.pic0 128.0.1.21 fpc5.pic0 128.0.1.22 fpc6.pic0 128.0.1.23 fpc7.pic0 128.0.1.24 fpc8.pic0 128.0.1.25 fpc9.pic0 128.0.1.26 fpc10.pic0 128.0.1.27 fpc11.pic0 128.0.1.28 fpc12.pic0 128.0.1.29 fpc13.pic0 128.0.1.30 fpc14.pic0 128.0.1.31 fpc15.pic0 128.0.2.16 fpc0.pic1 128.0.2.17 fpc1.pic1 128.0.2.18 fpc2.pic1 128.0.2.19 fpc3.pic1 128.0.2.20 fpc4.pic1 128.0.2.21 fpc5.pic1 128.0.2.22 fpc6.pic1 128.0.2.23 fpc7.pic1 128.0.2.24 fpc8.pic1 128.0.2.25 fpc9.pic1 128.0.2.26 fpc10.pic1 128.0.2.27 fpc11.pic1 128.0.2.28 fpc12.pic1 128.0.2.29 fpc13.pic1 128.0.2.30 fpc14.pic1 128.0.2.31 fpc15.pic1 128.0.3.16 fpc0.pic2 128.0.3.17 fpc1.pic2 128.0.3.18 fpc2.pic2 128.0.3.19 fpc3.pic2 128.0.3.20 fpc4.pic2 128.0.3.21 fpc5.pic2 128.0.3.22 fpc6.pic2 128.0.3.23 fpc7.pic2 128.0.3.24 fpc8.pic2 128.0.3.25 fpc9.pic2 128.0.3.26 fpc10.pic2 128.0.3.27 fpc11.pic2 128.0.3.28 fpc12.pic2 128.0.3.29 fpc13.pic2 128.0.3.30 fpc14.pic2 128.0.3.31 fpc15.pic2 128.0.4.16 fpc0.pic3 128.0.4.17 fpc1.pic3 128.0.4.18 fpc2.pic3 128.0.4.19 fpc3.pic3 128.0.4.20 fpc4.pic3 128.0.4.21 fpc5.pic3 128.0.4.22 fpc6.pic3 128.0.4.23 fpc7.pic3 128.0.4.24 fpc8.pic3 128.0.4.25 fpc9.pic3 128.0.4.26 fpc10.pic3 128.0.4.27 fpc11.pic3 128.0.4.28 fpc12.pic3 128.0.4.29 fpc13.pic3 128.0.4.30 fpc14.pic3 128.0.4.31 fpc15.pic3 # # DCF-Root Hostname # 128.0.130.2 dcf-root # # Multi Chassis Hostnames # #SCC 144.0.0.1 scc-master 144.0.0.4 scc-re0 144.0.0.5 scc-re1 144.0.0.6 scc-backup 144.0.0.48 scc-spmb0 144.0.0.49 scc-spmb1 #LCC 0 (or MEMBER 0 on Virtual Chassis) 129.0.0.1 lcc0-master member0-master member0 129.0.0.4 lcc0-re0 member0-re0 129.0.0.5 lcc0-re1 member0-re1 129.0.0.6 lcc0-backup member0-backup 129.0.0.16 member0-fpc0 129.0.0.17 member0-fpc1 129.0.0.18 member0-fpc2 129.0.0.19 member0-fpc3 129.0.0.20 member0-fpc4 129.0.0.21 member0-fpc5 129.0.0.22 member0-fpc6 129.0.0.23 member0-fpc7 129.0.0.24 member0-fpc8 129.0.0.25 member0-fpc9 129.0.0.26 member0-fpc10 129.0.0.27 member0-fpc11 129.0.0.28 member0-fpc12 129.0.0.29 member0-fpc13 129.0.0.30 member0-fpc14 129.0.0.31 member0-fpc15 129.0.0.6 lcc0-backup 129.0.0.16 lcc0-fpc0 129.0.0.17 lcc0-fpc1 129.0.0.18 lcc0-fpc2 129.0.0.19 lcc0-fpc3 129.0.0.20 lcc0-fpc4 129.0.0.21 lcc0-fpc5 129.0.0.22 lcc0-fpc6 129.0.0.23 lcc0-fpc7 129.0.0.48 lcc0-spmb0 129.0.0.49 lcc0-spmb1 #LCC 1 (or MEMBER 1 on Virtual Chassis) 130.0.0.1 lcc1-master member1-master member1 130.0.0.4 lcc1-re0 member1-re0 130.0.0.5 lcc1-re1 member1-re1 130.0.0.6 lcc1-backup member1-backup 130.0.0.16 member1-fpc0 130.0.0.17 member1-fpc1 130.0.0.18 member1-fpc2 130.0.0.19 member1-fpc3 130.0.0.20 member1-fpc4 130.0.0.21 member1-fpc5 130.0.0.22 member1-fpc6 130.0.0.23 member1-fpc7 130.0.0.24 member1-fpc8 130.0.0.25 member1-fpc9 130.0.0.26 member1-fpc10 130.0.0.27 member1-fpc11 130.0.0.28 member1-fpc12 130.0.0.29 member1-fpc13 130.0.0.30 member1-fpc14 130.0.0.31 member1-fpc15 130.0.0.6 lcc1-backup 130.0.0.16 lcc1-fpc0 130.0.0.17 lcc1-fpc1 130.0.0.18 lcc1-fpc2 130.0.0.19 lcc1-fpc3 130.0.0.20 lcc1-fpc4 130.0.0.21 lcc1-fpc5 130.0.0.22 lcc1-fpc6 130.0.0.23 lcc1-fpc7 130.0.0.48 lcc1-spmb0 130.0.0.49 lcc1-spmb1 #LCC 2 (or MEMBER 2 on Virtual Chassis) 131.0.0.1 lcc2-master member2-master member2 131.0.0.4 lcc2-re0 member2-re0 131.0.0.5 lcc2-re1 member2-re1 131.0.0.6 lcc2-backup member2-backup 131.0.0.16 member2-fpc0 131.0.0.17 member2-fpc1 131.0.0.18 member2-fpc2 131.0.0.19 member2-fpc3 131.0.0.20 member2-fpc4 131.0.0.21 member2-fpc5 131.0.0.22 member2-fpc6 131.0.0.23 member2-fpc7 131.0.0.24 member2-fpc8 131.0.0.25 member2-fpc9 131.0.0.26 member2-fpc10 131.0.0.27 member2-fpc11 131.0.0.28 member2-fpc12 131.0.0.29 member2-fpc13 131.0.0.30 member2-fpc14 131.0.0.31 member2-fpc15 131.0.0.6 lcc2-backup 131.0.0.16 lcc2-fpc0 131.0.0.17 lcc2-fpc1 131.0.0.18 lcc2-fpc2 131.0.0.19 lcc2-fpc3 131.0.0.20 lcc2-fpc4 131.0.0.21 lcc2-fpc5 131.0.0.22 lcc2-fpc6 131.0.0.23 lcc2-fpc7 131.0.0.48 lcc2-spmb0 131.0.0.49 lcc20-spmb1 #LCC 3 (or MEMBER 3 on Virtual Chassis) 132.0.0.1 lcc3-master member3-master member3 132.0.0.4 lcc3-re0 member3-re0 132.0.0.5 lcc3-re1 member3-re1 132.0.0.6 lcc3-backup member3-backup 132.0.0.16 member3-fpc0 132.0.0.17 member3-fpc1 132.0.0.18 member3-fpc2 132.0.0.19 member3-fpc3 132.0.0.20 member3-fpc4 132.0.0.21 member3-fpc5 132.0.0.22 member3-fpc6 132.0.0.23 member3-fpc7 132.0.0.24 member3-fpc8 132.0.0.25 member3-fpc9 132.0.0.26 member3-fpc10 132.0.0.27 member3-fpc11 132.0.0.28 member3-fpc12 132.0.0.29 member3-fpc13 132.0.0.30 member3-fpc14 132.0.0.31 member3-fpc15 132.0.0.6 lcc3-backup 132.0.0.16 lcc3-fpc0 132.0.0.17 lcc3-fpc1 132.0.0.18 lcc3-fpc2 132.0.0.19 lcc3-fpc3 132.0.0.20 lcc3-fpc4 132.0.0.21 lcc3-fpc5 132.0.0.22 lcc3-fpc6 132.0.0.23 lcc3-fpc7 132.0.0.48 lcc3-spmb0 132.0.0.49 lcc3-spmb1 #LCC 4 (or MEMBER 4 on Virtual Chassis) 133.0.0.1 lcc4-master member4-master member4 133.0.0.4 lcc4-re0 member4-re0 133.0.0.5 lcc4-re1 member4-re1 133.0.0.6 lcc4-backup member4-backup 133.0.0.16 member4-fpc0 133.0.0.17 member4-fpc1 133.0.0.18 member4-fpc2 133.0.0.19 member4-fpc3 133.0.0.20 member4-fpc4 133.0.0.21 member4-fpc5 133.0.0.22 member4-fpc6 133.0.0.23 member4-fpc7 133.0.0.24 member4-fpc8 133.0.0.25 member4-fpc9 133.0.0.26 member4-fpc10 133.0.0.27 member4-fpc11 133.0.0.28 member4-fpc12 133.0.0.29 member4-fpc13 133.0.0.30 member4-fpc14 133.0.0.31 member4-fpc15 133.0.0.6 lcc4-backup 133.0.0.16 lcc4-fpc0 133.0.0.17 lcc4-fpc1 133.0.0.18 lcc4-fpc2 133.0.0.19 lcc4-fpc3 133.0.0.20 lcc4-fpc4 133.0.0.21 lcc4-fpc5 133.0.0.22 lcc4-fpc6 133.0.0.23 lcc4-fpc7 133.0.0.48 lcc4-spmb0 133.0.0.49 lcc4-spmb1 #LCC 5 (or MEMBER 5 on Virtual Chassis) 134.0.0.1 lcc5-master member5-master member5 134.0.0.4 lcc5-re0 member5-re0 134.0.0.5 lcc5-re1 member5-re1 134.0.0.6 lcc5-backup member5-backup 134.0.0.16 member5-fpc0 134.0.0.17 member5-fpc1 134.0.0.18 member5-fpc2 134.0.0.19 member5-fpc3 134.0.0.20 member5-fpc4 134.0.0.21 member5-fpc5 134.0.0.22 member5-fpc6 134.0.0.23 member5-fpc7 134.0.0.24 member5-fpc8 134.0.0.25 member5-fpc9 134.0.0.26 member5-fpc10 134.0.0.27 member5-fpc11 134.0.0.28 member5-fpc12 134.0.0.29 member5-fpc13 134.0.0.30 member5-fpc14 134.0.0.31 member5-fpc15 134.0.0.6 lcc5-backup 134.0.0.16 lcc5-fpc0 134.0.0.17 lcc5-fpc1 134.0.0.18 lcc5-fpc2 134.0.0.19 lcc5-fpc3 134.0.0.20 lcc5-fpc4 134.0.0.21 lcc5-fpc5 134.0.0.22 lcc5-fpc6 134.0.0.23 lcc5-fpc7 134.0.0.48 lcc5-spmb0 134.0.0.49 lcc5-spmb1 #LCC 6 (or MEMBER 6 on Virtual Chassis) 135.0.0.1 lcc6-master member6-master member6 135.0.0.4 lcc6-re0 member6-re0 135.0.0.5 lcc6-re1 member6-re1 135.0.0.6 lcc6-backup member6-backup 135.0.0.16 member6-fpc0 135.0.0.17 member6-fpc1 135.0.0.18 member6-fpc2 135.0.0.19 member6-fpc3 135.0.0.20 member6-fpc4 135.0.0.21 member6-fpc5 135.0.0.22 member6-fpc6 135.0.0.23 member6-fpc7 135.0.0.24 member6-fpc8 135.0.0.25 member6-fpc9 135.0.0.26 member6-fpc10 135.0.0.27 member6-fpc11 135.0.0.28 member6-fpc12 135.0.0.29 member6-fpc13 135.0.0.30 member6-fpc14 135.0.0.31 member6-fpc15 135.0.0.6 lcc6-backup 135.0.0.16 lcc6-fpc0 135.0.0.17 lcc6-fpc1 135.0.0.18 lcc6-fpc2 135.0.0.19 lcc6-fpc3 135.0.0.20 lcc6-fpc4 135.0.0.21 lcc6-fpc5 135.0.0.22 lcc6-fpc6 135.0.0.23 lcc6-fpc7 135.0.0.48 lcc6-spmb0 135.0.0.49 lcc6-spmb1 #LCC 7 (or MEMBER 7 on Virtual Chassis) 136.0.0.1 lcc7-master member7-master member7 136.0.0.4 lcc7-re0 member7-re0 136.0.0.5 lcc7-re1 member7-re1 136.0.0.6 lcc7-backup member7-backup 136.0.0.16 member7-fpc0 136.0.0.17 member7-fpc1 136.0.0.18 member7-fpc2 136.0.0.19 member7-fpc3 136.0.0.20 member7-fpc4 136.0.0.21 member7-fpc5 136.0.0.22 member7-fpc6 136.0.0.23 member7-fpc7 136.0.0.24 member7-fpc8 136.0.0.25 member7-fpc9 136.0.0.26 member7-fpc10 136.0.0.27 member7-fpc11 136.0.0.28 member7-fpc12 136.0.0.29 member7-fpc13 136.0.0.30 member7-fpc14 136.0.0.31 member7-fpc15 136.0.0.6 lcc7-backup 136.0.0.16 lcc7-fpc0 136.0.0.17 lcc7-fpc1 136.0.0.18 lcc7-fpc2 136.0.0.19 lcc7-fpc3 136.0.0.20 lcc7-fpc4 136.0.0.21 lcc7-fpc5 136.0.0.22 lcc7-fpc6 136.0.0.23 lcc7-fpc7 136.0.0.48 lcc7-spmb0 136.0.0.49 lcc7-spmb1 137.0.0.6 lcc8-backup 137.0.0.16 lcc8-fpc0 137.0.0.17 lcc8-fpc1 137.0.0.18 lcc8-fpc2 137.0.0.19 lcc8-fpc3 137.0.0.20 lcc8-fpc4 137.0.0.21 lcc8-fpc5 137.0.0.22 lcc8-fpc6 137.0.0.23 lcc8-fpc7 137.0.0.48 lcc8-spmb0 137.0.0.49 lcc8-spmb1 #LCC 8 (or MEMBER 8 on Virtual Chassis) 137.0.0.1 lcc8-master member8-master member8 137.0.0.4 lcc8-re0 member8-re0 137.0.0.5 lcc8-re1 member8-re1 137.0.0.6 lcc8-backup member8-backup 137.0.0.16 member8-fpc0 137.0.0.17 member8-fpc1 137.0.0.18 member8-fpc2 137.0.0.19 member8-fpc3 137.0.0.20 member8-fpc4 137.0.0.21 member8-fpc5 137.0.0.22 member8-fpc6 137.0.0.23 member8-fpc7 137.0.0.24 member8-fpc8 137.0.0.25 member8-fpc9 137.0.0.26 member8-fpc10 137.0.0.27 member8-fpc11 137.0.0.28 member8-fpc12 137.0.0.29 member8-fpc13 137.0.0.30 member8-fpc14 137.0.0.31 member8-fpc15 138.0.0.6 lcc9-backup 138.0.0.16 lcc9-fpc0 138.0.0.17 lcc9-fpc1 138.0.0.18 lcc9-fpc2 138.0.0.19 lcc9-fpc3 138.0.0.20 lcc9-fpc4 138.0.0.21 lcc9-fpc5 138.0.0.22 lcc9-fpc6 138.0.0.23 lcc9-fpc7 138.0.0.48 lcc9-spmb0 138.0.0.49 lcc9-spmb1 #LCC 9 (or MEMBER 9 on Virtual Chassis) 138.0.0.1 lcc9-master member9-master member9 138.0.0.4 lcc9-re0 member9-re0 138.0.0.5 lcc9-re1 member9-re1 138.0.0.6 lcc9-backup member9-backup 138.0.0.16 member9-fpc0 138.0.0.17 member9-fpc1 138.0.0.18 member9-fpc2 138.0.0.19 member9-fpc3 138.0.0.20 member9-fpc4 138.0.0.21 member9-fpc5 138.0.0.22 member9-fpc6 138.0.0.23 member9-fpc7 138.0.0.24 member9-fpc8 138.0.0.25 member9-fpc9 138.0.0.26 member9-fpc10 138.0.0.27 member9-fpc11 138.0.0.28 member9-fpc12 138.0.0.29 member9-fpc13 138.0.0.30 member9-fpc14 138.0.0.31 member9-fpc15 139.0.0.6 lcc10-backup 139.0.0.16 lcc10-fpc0 139.0.0.17 lcc10-fpc1 139.0.0.18 lcc10-fpc2 139.0.0.19 lcc10-fpc3 139.0.0.20 lcc10-fpc4 139.0.0.21 lcc10-fpc5 139.0.0.22 lcc10-fpc6 139.0.0.23 lcc10-fpc7 139.0.0.48 lcc10-spmb0 139.0.0.49 lcc10-spmb1 #LCC 10 (or MEMBER 10 on Virtual Chassis) 139.0.0.1 lcc10-master member10-master 139.0.0.4 lcc10-re0 member10-re0 139.0.0.5 lcc10-re1 member10-re1 139.0.0.6 lcc10-backup member10-backup 139.0.0.16 member10-fpc0 139.0.0.17 member10-fpc1 139.0.0.18 member10-fpc2 139.0.0.19 member10-fpc3 139.0.0.20 member10-fpc4 139.0.0.21 member10-fpc5 139.0.0.22 member10-fpc6 139.0.0.23 member10-fpc7 139.0.0.24 member10-fpc8 139.0.0.25 member10-fpc9 139.0.0.26 member10-fpc10 139.0.0.27 member10-fpc11 139.0.0.28 member10-fpc12 139.0.0.29 member10-fpc13 139.0.0.30 member10-fpc14 139.0.0.31 member10-fpc15 140.0.0.6 lcc11-backup 140.0.0.16 lcc11-fpc0 140.0.0.17 lcc11-fpc1 140.0.0.18 lcc11-fpc2 140.0.0.19 lcc11-fpc3 140.0.0.20 lcc11-fpc4 140.0.0.21 lcc11-fpc5 140.0.0.22 lcc11-fpc6 140.0.0.23 lcc11-fpc7 140.0.0.48 lcc11-spmb0 140.0.0.49 lcc11-spmb1 #LCC 11 (or MEMBER 11 on Virtual Chassis) 140.0.0.1 lcc11-master member11-master 140.0.0.4 lcc11-re0 member11-re0 140.0.0.5 lcc11-re1 member11-re1 140.0.0.6 lcc11-backup member11-backup 140.0.0.16 member11-fpc0 140.0.0.17 member11-fpc1 140.0.0.18 member11-fpc2 140.0.0.19 member11-fpc3 140.0.0.20 member11-fpc4 140.0.0.21 member11-fpc5 140.0.0.22 member11-fpc6 140.0.0.23 member11-fpc7 140.0.0.24 member11-fpc8 140.0.0.25 member11-fpc9 140.0.0.26 member11-fpc10 140.0.0.27 member11-fpc11 140.0.0.28 member11-fpc12 140.0.0.29 member11-fpc13 140.0.0.30 member11-fpc14 140.0.0.31 member11-fpc15 141.0.0.6 lcc12-backup 141.0.0.16 lcc12-fpc0 141.0.0.17 lcc12-fpc1 141.0.0.18 lcc12-fpc2 141.0.0.19 lcc12-fpc3 141.0.0.20 lcc12-fpc4 141.0.0.21 lcc12-fpc5 141.0.0.22 lcc12-fpc6 141.0.0.23 lcc12-fpc7 141.0.0.48 lcc12-spmb0 141.0.0.49 lcc12-spmb1 #LCC 12 (or MEMBER 12 on Virtual Chassis) 141.0.0.1 lcc12-master member12-master 141.0.0.4 lcc12-re0 member12-re0 141.0.0.5 lcc12-re1 member12-re1 141.0.0.6 lcc12-backup member12-backup 141.0.0.16 member12-fpc0 141.0.0.17 member12-fpc1 141.0.0.18 member12-fpc2 141.0.0.19 member12-fpc3 141.0.0.20 member12-fpc4 141.0.0.21 member12-fpc5 141.0.0.22 member12-fpc6 141.0.0.23 member12-fpc7 141.0.0.24 member12-fpc8 141.0.0.25 member12-fpc9 141.0.0.26 member12-fpc10 141.0.0.27 member12-fpc11 141.0.0.28 member12-fpc12 141.0.0.29 member12-fpc13 141.0.0.30 member12-fpc14 141.0.0.31 member12-fpc15 142.0.0.6 lcc13-backup 142.0.0.16 lcc13-fpc0 142.0.0.17 lcc13-fpc1 142.0.0.18 lcc13-fpc2 142.0.0.19 lcc13-fpc3 142.0.0.20 lcc13-fpc4 142.0.0.21 lcc13-fpc5 142.0.0.22 lcc13-fpc6 142.0.0.23 lcc13-fpc7 142.0.0.48 lcc13-spmb0 142.0.0.49 lcc13-spmb1 #LCC 13 (or MEMBER 13 on Virtual Chassis) 142.0.0.1 lcc13-master member13-master 142.0.0.4 lcc13-re0 member13-re0 142.0.0.5 lcc13-re1 member13-re1 142.0.0.6 lcc13-backup member13-backup 142.0.0.16 member13-fpc0 142.0.0.17 member13-fpc1 142.0.0.18 member13-fpc2 142.0.0.19 member13-fpc3 142.0.0.20 member13-fpc4 142.0.0.21 member13-fpc5 142.0.0.22 member13-fpc6 142.0.0.23 member13-fpc7 142.0.0.24 member13-fpc8 142.0.0.25 member13-fpc9 142.0.0.26 member13-fpc10 142.0.0.27 member13-fpc11 142.0.0.28 member13-fpc12 142.0.0.29 member13-fpc13 142.0.0.30 member13-fpc14 142.0.0.31 member13-fpc15 143.0.0.6 lcc14-backup 143.0.0.16 lcc14-fpc0 143.0.0.17 lcc14-fpc1 143.0.0.18 lcc14-fpc2 143.0.0.19 lcc14-fpc3 143.0.0.20 lcc14-fpc4 143.0.0.21 lcc14-fpc5 143.0.0.22 lcc14-fpc6 143.0.0.23 lcc14-fpc7 143.0.0.48 lcc14-spmb0 143.0.0.49 lcc14-spmb1 #LCC 14 (or MEMBER 14 on Virtual Chassis) 143.0.0.1 lcc14-master member14-master 143.0.0.4 lcc14-re0 member14-re0 143.0.0.5 lcc14-re1 member14-re1 143.0.0.6 lcc14-backup member14-backup 143.0.0.16 member14-fpc0 143.0.0.17 member14-fpc1 143.0.0.18 member14-fpc2 143.0.0.19 member14-fpc3 143.0.0.20 member14-fpc4 143.0.0.21 member14-fpc5 143.0.0.22 member14-fpc6 143.0.0.23 member14-fpc7 143.0.0.24 member14-fpc8 143.0.0.25 member14-fpc9 143.0.0.26 member14-fpc10 143.0.0.27 member14-fpc11 143.0.0.28 member14-fpc12 143.0.0.29 member14-fpc13 143.0.0.30 member14-fpc14 143.0.0.31 member14-fpc15 144.0.0.6 lcc15-backup 144.0.0.16 lcc15-fpc0 144.0.0.17 lcc15-fpc1 144.0.0.18 lcc15-fpc2 144.0.0.19 lcc15-fpc3 144.0.0.20 lcc15-fpc4 144.0.0.21 lcc15-fpc5 144.0.0.22 lcc15-fpc6 144.0.0.23 lcc15-fpc7 144.0.0.48 lcc15-spmb0 144.0.0.49 lcc15-spmb1 #LCC 15 (or MEMBER 15 on Virtual Chassis) 144.0.0.1 lcc15-master member15-master 144.0.0.4 lcc15-re0 member15-re0 144.0.0.5 lcc15-re1 member15-re1 144.0.0.6 lcc15-backup member15-backup 144.0.0.16 member15-fpc0 144.0.0.17 member15-fpc1 144.0.0.18 member15-fpc2 144.0.0.19 member15-fpc3 144.0.0.20 member15-fpc4 144.0.0.21 member15-fpc5 144.0.0.22 member15-fpc6 144.0.0.23 member15-fpc7 144.0.0.24 member15-fpc8 144.0.0.25 member15-fpc9 144.0.0.26 member15-fpc10 144.0.0.27 member15-fpc11 144.0.0.28 member15-fpc12 144.0.0.29 member15-fpc13 144.0.0.30 member15-fpc14 144.0.0.31 member15-fpc15 #VIRT SC 161.0.0.1 sc-master 161.0.0.4 sc-re0 161.0.0.5 sc-re1 161.0.0.6 sc-backup #SFC 0 162.0.0.1 sfc0-master 162.0.0.4 sfc0-re0 162.0.0.5 sfc0-re1 162.0.0.6 sfc0-backup 162.0.0.48 sfc0-spmb0 162.0.0.49 sfc0-spmb1 #SFC 1 163.0.0.1 sfc1-master 163.0.0.4 sfc1-re0 163.0.0.5 sfc1-re1 163.0.0.6 sfc1-backup 163.0.0.48 sfc1-spmb0 163.0.0.49 sfc1-spmb1 #SFC 2 164.0.0.1 sfc2-master 164.0.0.4 sfc2-re0 164.0.0.5 sfc2-re1 164.0.0.6 sfc2-backup 164.0.0.48 sfc2-spmb0 164.0.0.49 sfc2-spmb1 #SFC 3 165.0.0.1 sfc3-master 165.0.0.4 sfc3-re0 165.0.0.5 sfc3-re1 165.0.0.6 sfc3-backup 165.0.0.48 sfc3-spmb0 165.0.0.49 sfc3-spmb1 #SFC 4 166.0.0.1 sfc4-master 166.0.0.4 sfc4-re0 166.0.0.5 sfc4-re1 166.0.0.6 sfc4-backup 166.0.0.48 sfc4-spmb0 166.0.0.49 sfc4-spmb1 #JCS 190.0.0.1 psd%d-master 190.0.0.4 psd%d-re0 190.0.0.5 psd%d-re1 190.0.0.6 psd%d-backup # Old IP address format (RT_IRS_V2) # # Single Chassis Hostnames # 10.0.0.1 master 10.0.0.4 re0 10.0.0.5 re1 # # Multi Chassis Hostnames # #SCC 10.16.0.1 scc-master 10.16.0.4 scc-re0 10.16.0.5 scc-re1 #LCC 0 10.1.0.1 lcc0-master member0-master 10.1.0.4 lcc0-re0 member0-re0 10.1.0.5 lcc0-re1 member0-re1 10.1.0.6 lcc0-backup member0-backup #LCC 1 10.2.0.1 lcc1-master member1-master 10.2.0.4 lcc1-re0 member1-re0 10.2.0.5 lcc1-re1 member1-re1 10.2.0.6 lcc1-backup member1-backup #LCC 2 10.3.0.1 lcc2-master member2-master 10.3.0.4 lcc2-re0 member2-re0 10.3.0.5 lcc2-re1 member2-re1 10.3.0.6 lcc2-backup member2-backup #LCC 3 10.4.0.1 lcc3-master member3-master 10.4.0.4 lcc3-re0 member3-re0 10.4.0.5 lcc3-re1 member3-re1 10.4.0.6 lcc3-backup member3-backup #LCC 4 10.5.0.1 lcc4-master member4-master 10.5.0.4 lcc4-re0 member4-re0 10.5.0.5 lcc4-re1 member4-re1 10.5.0.6 lcc4-backup member4-backup #LCC 5 10.6.0.1 lcc5-master member5-master 10.6.0.4 lcc5-re0 member5-re0 10.6.0.5 lcc5-re1 member5-re1 10.6.0.6 lcc5-backup member5-backup #LCC 6 10.7.0.1 lcc6-master member6-master 10.7.0.4 lcc6-re0 member6-re0 10.7.0.5 lcc6-re1 member6-re1 10.7.0.6 lcc6-backup member6-backup #LCC 7 10.8.0.1 lcc7-master member7-master 10.8.0.4 lcc7-re0 member7-re0 10.8.0.5 lcc7-re1 member7-re1 10.8.0.6 lcc7-backup member7-backup #LCC 8 10.9.0.1 lcc8-master member8-master 10.9.0.4 lcc8-re0 member8-re0 10.9.0.5 lcc8-re1 member8-re1 10.9.0.6 lcc8-backup member8-backup #LCC 9 10.10.0.1 lcc9-master member9-master 10.10.0.4 lcc9-re0 member9-re0 10.10.0.5 lcc9-re1 member9-re1 10.10.0.6 lcc9-backup member9-backup #LCC 10 10.11.0.1 lcc10-master member10-master 10.11.0.4 lcc10-re0 member10-re0 10.11.0.5 lcc10-re1 member10-re1 10.11.0.6 lcc10-backup member10-backup #LCC 11 10.12.0.1 lcc11-master member11-master 10.12.0.4 lcc11-re0 member11-re0 10.12.0.5 lcc11-re1 member11-re1 10.12.0.6 lcc11-backup member11-backup #LCC 12 10.13.0.1 lcc12-master member12-master 10.13.0.4 lcc12-re0 member12-re0 10.13.0.5 lcc12-re1 member12-re1 10.13.0.6 lcc12-backup member12-backup #LCC 13 10.14.0.1 lcc13-master member13-master 10.14.0.4 lcc13-re0 member13-re0 10.14.0.5 lcc13-re1 member13-re1 10.14.0.6 lcc13-backup member13-backup #LCC 14 10.15.0.1 lcc14-master member14-master 10.15.0.4 lcc14-re0 member14-re0 10.15.0.5 lcc14-re1 member14-re1 10.15.0.6 lcc14-backup member14-backup #LCC 15 10.16.0.1 lcc15-master member15-master 10.16.0.4 lcc15-re0 member15-re0 10.16.0.5 lcc15-re1 member15-re1 10.16.0.6 lcc15-backup member15-backup #SFC 0 10.34.0.1 sfc0-master 10.34.0.4 sfc0-re0 10.34.0.5 sfc0-re1 #SFC 1 10.35.0.1 sfc1-master 10.35.0.4 sfc1-re0 10.35.0.5 sfc1-re1 #SFC 2 10.36.0.1 sfc2-master 10.36.0.4 sfc2-re0 10.36.0.5 sfc2-re1 #SFC 3 10.37.0.1 sfc3-master 10.37.0.4 sfc3-re0 10.37.0.5 sfc3-re1 #SFC 4 10.38.0.1 sfc4-master 10.38.0.4 sfc4-re0 10.38.0.5 sfc4-re1 # End of internal names py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/personality_srx_branch_get-interface-information.xml000066400000000000000000000111761475361112400340400ustar00rootroot00000000000000 sp-0/0/0.16383 up up inet 10.0.0.1 10.0.0.16 10.0.0.6 0/0 128.0.0.1 128.0.1.16 128.0.0.6 0/0 lo0.16385 up up inet 10.0.0.1 0/0 10.0.0.16 0/0 128.0.0.1 0/0 128.0.0.4 0/0 128.0.1.16 0/0 personality_srx_branch_get-route-engine-information.xml000066400000000000000000000032211475361112400344120ustar00rootroot00000000000000py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply OK 56 degrees C / 132 degrees F 2048 1044 51 1088 511 47 960 528 55 13 0 15 0 72 RE-SRX210HE2 ACKD0351 2016-12-28 17:05:44 PST 3 days, 21 hours, 24 minutes, 38 seconds 0x200:normal shutdown 0.60 0.33 0.27 py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/personality_srx_high_end_command.xml000066400000000000000000000011211475361112400307130ustar00rootroot00000000000000 lsys500 srx5400 srx5400 junos JUNOS Software Release [12.3X48-D40.5] jais AI-Scripts [6.0R2-THIN.0] py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/personality_srx_high_end_file-show.xml000066400000000000000000000754711475361112400312150ustar00rootroot00000000000000 #$Id: hosts.junos,v 1.7.72.1 2009-04-16 05:22:03 kdickman Exp $ # # File mapping AF_INET/AF_INET6 hostnames for REs on Single and Multichassis # systems # # This file is looked at before /etc/hosts by gethostbyname(3), # gethostbyname2(3) and getaddrinfo(3) # # The IP addresses in this file are only used for communication between REs # over the Internal Routing Instances # # WARNING: # # The names in this file are effectively reserved for internal use. # # New IP address format (RT_IRS_V3) # # Single Chassis Hostnames # 128.0.0.1 master 128.0.0.1 node 128.0.0.1 fwdd 128.0.0.1 member 128.0.0.1 pfem 128.0.0.2 scb 128.0.0.2 sbr 128.0.0.2 ssb 128.0.0.2 feb 128.0.0.2 cfeb0 128.0.0.2 cfeb 128.0.0.2 cpp0 128.0.0.3 cfeb1 128.0.0.3 cpp1 128.0.0.4 re0 128.0.0.5 re1 128.0.0.6 backup 128.0.0.8 sfm0 128.0.0.9 sfm1 128.0.0.10 sfm2 128.0.0.16 fpc0 128.0.0.17 fpc1 128.0.0.18 fpc2 128.0.0.19 fpc3 128.0.0.20 fpc4 128.0.0.21 fpc5 128.0.0.22 fpc6 128.0.0.23 fpc7 128.0.0.24 fpc8 128.0.0.25 fpc9 128.0.0.26 fpc10 128.0.0.27 fpc11 128.0.0.28 fpc12 128.0.0.29 fpc13 128.0.0.30 fpc14 128.0.0.31 fpc15 128.0.0.32 feb0 128.0.0.32 fpc16 128.0.0.33 feb1 128.0.0.33 fpc17 128.0.0.34 feb2 128.0.0.34 fpc18 128.0.0.35 feb3 128.0.0.35 fpc19 128.0.0.36 feb4 128.0.0.37 feb5 128.0.0.48 spmb0 128.0.0.49 spmb1 128.0.0.50 tfeb0 128.0.1.16 fpc0.pic0 128.0.1.17 fpc1.pic0 128.0.1.18 fpc2.pic0 128.0.1.19 fpc3.pic0 128.0.1.20 fpc4.pic0 128.0.1.21 fpc5.pic0 128.0.1.22 fpc6.pic0 128.0.1.23 fpc7.pic0 128.0.1.24 fpc8.pic0 128.0.1.25 fpc9.pic0 128.0.1.26 fpc10.pic0 128.0.1.27 fpc11.pic0 128.0.1.28 fpc12.pic0 128.0.1.29 fpc13.pic0 128.0.1.30 fpc14.pic0 128.0.1.31 fpc15.pic0 128.0.2.16 fpc0.pic1 128.0.2.17 fpc1.pic1 128.0.2.18 fpc2.pic1 128.0.2.19 fpc3.pic1 128.0.2.20 fpc4.pic1 128.0.2.21 fpc5.pic1 128.0.2.22 fpc6.pic1 128.0.2.23 fpc7.pic1 128.0.2.24 fpc8.pic1 128.0.2.25 fpc9.pic1 128.0.2.26 fpc10.pic1 128.0.2.27 fpc11.pic1 128.0.2.28 fpc12.pic1 128.0.2.29 fpc13.pic1 128.0.2.30 fpc14.pic1 128.0.2.31 fpc15.pic1 128.0.3.16 fpc0.pic2 128.0.3.17 fpc1.pic2 128.0.3.18 fpc2.pic2 128.0.3.19 fpc3.pic2 128.0.3.20 fpc4.pic2 128.0.3.21 fpc5.pic2 128.0.3.22 fpc6.pic2 128.0.3.23 fpc7.pic2 128.0.3.24 fpc8.pic2 128.0.3.25 fpc9.pic2 128.0.3.26 fpc10.pic2 128.0.3.27 fpc11.pic2 128.0.3.28 fpc12.pic2 128.0.3.29 fpc13.pic2 128.0.3.30 fpc14.pic2 128.0.3.31 fpc15.pic2 128.0.4.16 fpc0.pic3 128.0.4.17 fpc1.pic3 128.0.4.18 fpc2.pic3 128.0.4.19 fpc3.pic3 128.0.4.20 fpc4.pic3 128.0.4.21 fpc5.pic3 128.0.4.22 fpc6.pic3 128.0.4.23 fpc7.pic3 128.0.4.24 fpc8.pic3 128.0.4.25 fpc9.pic3 128.0.4.26 fpc10.pic3 128.0.4.27 fpc11.pic3 128.0.4.28 fpc12.pic3 128.0.4.29 fpc13.pic3 128.0.4.30 fpc14.pic3 128.0.4.31 fpc15.pic3 # # DCF-Root Hostname # 128.0.130.2 dcf-root # # Multi Chassis Hostnames # #SCC 144.0.0.1 scc-master 144.0.0.4 scc-re0 144.0.0.5 scc-re1 144.0.0.6 scc-backup 144.0.0.48 scc-spmb0 144.0.0.49 scc-spmb1 #LCC 0 (or MEMBER 0 on Virtual Chassis) 129.0.0.1 lcc0-master member0-master member0 129.0.0.4 lcc0-re0 member0-re0 129.0.0.5 lcc0-re1 member0-re1 129.0.0.6 lcc0-backup member0-backup 129.0.0.16 member0-fpc0 129.0.0.17 member0-fpc1 129.0.0.18 member0-fpc2 129.0.0.19 member0-fpc3 129.0.0.20 member0-fpc4 129.0.0.21 member0-fpc5 129.0.0.22 member0-fpc6 129.0.0.23 member0-fpc7 129.0.0.24 member0-fpc8 129.0.0.25 member0-fpc9 129.0.0.26 member0-fpc10 129.0.0.27 member0-fpc11 129.0.0.28 member0-fpc12 129.0.0.29 member0-fpc13 129.0.0.30 member0-fpc14 129.0.0.31 member0-fpc15 129.0.0.6 lcc0-backup 129.0.0.16 lcc0-fpc0 129.0.0.17 lcc0-fpc1 129.0.0.18 lcc0-fpc2 129.0.0.19 lcc0-fpc3 129.0.0.20 lcc0-fpc4 129.0.0.21 lcc0-fpc5 129.0.0.22 lcc0-fpc6 129.0.0.23 lcc0-fpc7 129.0.0.48 lcc0-spmb0 129.0.0.49 lcc0-spmb1 #LCC 1 (or MEMBER 1 on Virtual Chassis) 130.0.0.1 lcc1-master member1-master member1 130.0.0.4 lcc1-re0 member1-re0 130.0.0.5 lcc1-re1 member1-re1 130.0.0.6 lcc1-backup member1-backup 130.0.0.16 member1-fpc0 130.0.0.17 member1-fpc1 130.0.0.18 member1-fpc2 130.0.0.19 member1-fpc3 130.0.0.20 member1-fpc4 130.0.0.21 member1-fpc5 130.0.0.22 member1-fpc6 130.0.0.23 member1-fpc7 130.0.0.24 member1-fpc8 130.0.0.25 member1-fpc9 130.0.0.26 member1-fpc10 130.0.0.27 member1-fpc11 130.0.0.28 member1-fpc12 130.0.0.29 member1-fpc13 130.0.0.30 member1-fpc14 130.0.0.31 member1-fpc15 130.0.0.6 lcc1-backup 130.0.0.16 lcc1-fpc0 130.0.0.17 lcc1-fpc1 130.0.0.18 lcc1-fpc2 130.0.0.19 lcc1-fpc3 130.0.0.20 lcc1-fpc4 130.0.0.21 lcc1-fpc5 130.0.0.22 lcc1-fpc6 130.0.0.23 lcc1-fpc7 130.0.0.48 lcc1-spmb0 130.0.0.49 lcc1-spmb1 #LCC 2 (or MEMBER 2 on Virtual Chassis) 131.0.0.1 lcc2-master member2-master member2 131.0.0.4 lcc2-re0 member2-re0 131.0.0.5 lcc2-re1 member2-re1 131.0.0.6 lcc2-backup member2-backup 131.0.0.16 member2-fpc0 131.0.0.17 member2-fpc1 131.0.0.18 member2-fpc2 131.0.0.19 member2-fpc3 131.0.0.20 member2-fpc4 131.0.0.21 member2-fpc5 131.0.0.22 member2-fpc6 131.0.0.23 member2-fpc7 131.0.0.24 member2-fpc8 131.0.0.25 member2-fpc9 131.0.0.26 member2-fpc10 131.0.0.27 member2-fpc11 131.0.0.28 member2-fpc12 131.0.0.29 member2-fpc13 131.0.0.30 member2-fpc14 131.0.0.31 member2-fpc15 131.0.0.6 lcc2-backup 131.0.0.16 lcc2-fpc0 131.0.0.17 lcc2-fpc1 131.0.0.18 lcc2-fpc2 131.0.0.19 lcc2-fpc3 131.0.0.20 lcc2-fpc4 131.0.0.21 lcc2-fpc5 131.0.0.22 lcc2-fpc6 131.0.0.23 lcc2-fpc7 131.0.0.48 lcc2-spmb0 131.0.0.49 lcc20-spmb1 #LCC 3 (or MEMBER 3 on Virtual Chassis) 132.0.0.1 lcc3-master member3-master member3 132.0.0.4 lcc3-re0 member3-re0 132.0.0.5 lcc3-re1 member3-re1 132.0.0.6 lcc3-backup member3-backup 132.0.0.16 member3-fpc0 132.0.0.17 member3-fpc1 132.0.0.18 member3-fpc2 132.0.0.19 member3-fpc3 132.0.0.20 member3-fpc4 132.0.0.21 member3-fpc5 132.0.0.22 member3-fpc6 132.0.0.23 member3-fpc7 132.0.0.24 member3-fpc8 132.0.0.25 member3-fpc9 132.0.0.26 member3-fpc10 132.0.0.27 member3-fpc11 132.0.0.28 member3-fpc12 132.0.0.29 member3-fpc13 132.0.0.30 member3-fpc14 132.0.0.31 member3-fpc15 132.0.0.6 lcc3-backup 132.0.0.16 lcc3-fpc0 132.0.0.17 lcc3-fpc1 132.0.0.18 lcc3-fpc2 132.0.0.19 lcc3-fpc3 132.0.0.20 lcc3-fpc4 132.0.0.21 lcc3-fpc5 132.0.0.22 lcc3-fpc6 132.0.0.23 lcc3-fpc7 132.0.0.48 lcc3-spmb0 132.0.0.49 lcc3-spmb1 #LCC 4 (or MEMBER 4 on Virtual Chassis) 133.0.0.1 lcc4-master member4-master member4 133.0.0.4 lcc4-re0 member4-re0 133.0.0.5 lcc4-re1 member4-re1 133.0.0.6 lcc4-backup member4-backup 133.0.0.16 member4-fpc0 133.0.0.17 member4-fpc1 133.0.0.18 member4-fpc2 133.0.0.19 member4-fpc3 133.0.0.20 member4-fpc4 133.0.0.21 member4-fpc5 133.0.0.22 member4-fpc6 133.0.0.23 member4-fpc7 133.0.0.24 member4-fpc8 133.0.0.25 member4-fpc9 133.0.0.26 member4-fpc10 133.0.0.27 member4-fpc11 133.0.0.28 member4-fpc12 133.0.0.29 member4-fpc13 133.0.0.30 member4-fpc14 133.0.0.31 member4-fpc15 133.0.0.6 lcc4-backup 133.0.0.16 lcc4-fpc0 133.0.0.17 lcc4-fpc1 133.0.0.18 lcc4-fpc2 133.0.0.19 lcc4-fpc3 133.0.0.20 lcc4-fpc4 133.0.0.21 lcc4-fpc5 133.0.0.22 lcc4-fpc6 133.0.0.23 lcc4-fpc7 133.0.0.48 lcc4-spmb0 133.0.0.49 lcc4-spmb1 #LCC 5 (or MEMBER 5 on Virtual Chassis) 134.0.0.1 lcc5-master member5-master member5 134.0.0.4 lcc5-re0 member5-re0 134.0.0.5 lcc5-re1 member5-re1 134.0.0.6 lcc5-backup member5-backup 134.0.0.16 member5-fpc0 134.0.0.17 member5-fpc1 134.0.0.18 member5-fpc2 134.0.0.19 member5-fpc3 134.0.0.20 member5-fpc4 134.0.0.21 member5-fpc5 134.0.0.22 member5-fpc6 134.0.0.23 member5-fpc7 134.0.0.24 member5-fpc8 134.0.0.25 member5-fpc9 134.0.0.26 member5-fpc10 134.0.0.27 member5-fpc11 134.0.0.28 member5-fpc12 134.0.0.29 member5-fpc13 134.0.0.30 member5-fpc14 134.0.0.31 member5-fpc15 134.0.0.6 lcc5-backup 134.0.0.16 lcc5-fpc0 134.0.0.17 lcc5-fpc1 134.0.0.18 lcc5-fpc2 134.0.0.19 lcc5-fpc3 134.0.0.20 lcc5-fpc4 134.0.0.21 lcc5-fpc5 134.0.0.22 lcc5-fpc6 134.0.0.23 lcc5-fpc7 134.0.0.48 lcc5-spmb0 134.0.0.49 lcc5-spmb1 #LCC 6 (or MEMBER 6 on Virtual Chassis) 135.0.0.1 lcc6-master member6-master member6 135.0.0.4 lcc6-re0 member6-re0 135.0.0.5 lcc6-re1 member6-re1 135.0.0.6 lcc6-backup member6-backup 135.0.0.16 member6-fpc0 135.0.0.17 member6-fpc1 135.0.0.18 member6-fpc2 135.0.0.19 member6-fpc3 135.0.0.20 member6-fpc4 135.0.0.21 member6-fpc5 135.0.0.22 member6-fpc6 135.0.0.23 member6-fpc7 135.0.0.24 member6-fpc8 135.0.0.25 member6-fpc9 135.0.0.26 member6-fpc10 135.0.0.27 member6-fpc11 135.0.0.28 member6-fpc12 135.0.0.29 member6-fpc13 135.0.0.30 member6-fpc14 135.0.0.31 member6-fpc15 135.0.0.6 lcc6-backup 135.0.0.16 lcc6-fpc0 135.0.0.17 lcc6-fpc1 135.0.0.18 lcc6-fpc2 135.0.0.19 lcc6-fpc3 135.0.0.20 lcc6-fpc4 135.0.0.21 lcc6-fpc5 135.0.0.22 lcc6-fpc6 135.0.0.23 lcc6-fpc7 135.0.0.48 lcc6-spmb0 135.0.0.49 lcc6-spmb1 #LCC 7 (or MEMBER 7 on Virtual Chassis) 136.0.0.1 lcc7-master member7-master member7 136.0.0.4 lcc7-re0 member7-re0 136.0.0.5 lcc7-re1 member7-re1 136.0.0.6 lcc7-backup member7-backup 136.0.0.16 member7-fpc0 136.0.0.17 member7-fpc1 136.0.0.18 member7-fpc2 136.0.0.19 member7-fpc3 136.0.0.20 member7-fpc4 136.0.0.21 member7-fpc5 136.0.0.22 member7-fpc6 136.0.0.23 member7-fpc7 136.0.0.24 member7-fpc8 136.0.0.25 member7-fpc9 136.0.0.26 member7-fpc10 136.0.0.27 member7-fpc11 136.0.0.28 member7-fpc12 136.0.0.29 member7-fpc13 136.0.0.30 member7-fpc14 136.0.0.31 member7-fpc15 136.0.0.6 lcc7-backup 136.0.0.16 lcc7-fpc0 136.0.0.17 lcc7-fpc1 136.0.0.18 lcc7-fpc2 136.0.0.19 lcc7-fpc3 136.0.0.20 lcc7-fpc4 136.0.0.21 lcc7-fpc5 136.0.0.22 lcc7-fpc6 136.0.0.23 lcc7-fpc7 136.0.0.48 lcc7-spmb0 136.0.0.49 lcc7-spmb1 137.0.0.6 lcc8-backup 137.0.0.16 lcc8-fpc0 137.0.0.17 lcc8-fpc1 137.0.0.18 lcc8-fpc2 137.0.0.19 lcc8-fpc3 137.0.0.20 lcc8-fpc4 137.0.0.21 lcc8-fpc5 137.0.0.22 lcc8-fpc6 137.0.0.23 lcc8-fpc7 137.0.0.48 lcc8-spmb0 137.0.0.49 lcc8-spmb1 #LCC 8 (or MEMBER 8 on Virtual Chassis) 137.0.0.1 lcc8-master member8-master member8 137.0.0.4 lcc8-re0 member8-re0 137.0.0.5 lcc8-re1 member8-re1 137.0.0.6 lcc8-backup member8-backup 137.0.0.16 member8-fpc0 137.0.0.17 member8-fpc1 137.0.0.18 member8-fpc2 137.0.0.19 member8-fpc3 137.0.0.20 member8-fpc4 137.0.0.21 member8-fpc5 137.0.0.22 member8-fpc6 137.0.0.23 member8-fpc7 137.0.0.24 member8-fpc8 137.0.0.25 member8-fpc9 137.0.0.26 member8-fpc10 137.0.0.27 member8-fpc11 137.0.0.28 member8-fpc12 137.0.0.29 member8-fpc13 137.0.0.30 member8-fpc14 137.0.0.31 member8-fpc15 138.0.0.6 lcc9-backup 138.0.0.16 lcc9-fpc0 138.0.0.17 lcc9-fpc1 138.0.0.18 lcc9-fpc2 138.0.0.19 lcc9-fpc3 138.0.0.20 lcc9-fpc4 138.0.0.21 lcc9-fpc5 138.0.0.22 lcc9-fpc6 138.0.0.23 lcc9-fpc7 138.0.0.48 lcc9-spmb0 138.0.0.49 lcc9-spmb1 #LCC 9 (or MEMBER 9 on Virtual Chassis) 138.0.0.1 lcc9-master member9-master member9 138.0.0.4 lcc9-re0 member9-re0 138.0.0.5 lcc9-re1 member9-re1 138.0.0.6 lcc9-backup member9-backup 138.0.0.16 member9-fpc0 138.0.0.17 member9-fpc1 138.0.0.18 member9-fpc2 138.0.0.19 member9-fpc3 138.0.0.20 member9-fpc4 138.0.0.21 member9-fpc5 138.0.0.22 member9-fpc6 138.0.0.23 member9-fpc7 138.0.0.24 member9-fpc8 138.0.0.25 member9-fpc9 138.0.0.26 member9-fpc10 138.0.0.27 member9-fpc11 138.0.0.28 member9-fpc12 138.0.0.29 member9-fpc13 138.0.0.30 member9-fpc14 138.0.0.31 member9-fpc15 139.0.0.6 lcc10-backup 139.0.0.16 lcc10-fpc0 139.0.0.17 lcc10-fpc1 139.0.0.18 lcc10-fpc2 139.0.0.19 lcc10-fpc3 139.0.0.20 lcc10-fpc4 139.0.0.21 lcc10-fpc5 139.0.0.22 lcc10-fpc6 139.0.0.23 lcc10-fpc7 139.0.0.48 lcc10-spmb0 139.0.0.49 lcc10-spmb1 #LCC 10 (or MEMBER 10 on Virtual Chassis) 139.0.0.1 lcc10-master member10-master 139.0.0.4 lcc10-re0 member10-re0 139.0.0.5 lcc10-re1 member10-re1 139.0.0.6 lcc10-backup member10-backup 139.0.0.16 member10-fpc0 139.0.0.17 member10-fpc1 139.0.0.18 member10-fpc2 139.0.0.19 member10-fpc3 139.0.0.20 member10-fpc4 139.0.0.21 member10-fpc5 139.0.0.22 member10-fpc6 139.0.0.23 member10-fpc7 139.0.0.24 member10-fpc8 139.0.0.25 member10-fpc9 139.0.0.26 member10-fpc10 139.0.0.27 member10-fpc11 139.0.0.28 member10-fpc12 139.0.0.29 member10-fpc13 139.0.0.30 member10-fpc14 139.0.0.31 member10-fpc15 140.0.0.6 lcc11-backup 140.0.0.16 lcc11-fpc0 140.0.0.17 lcc11-fpc1 140.0.0.18 lcc11-fpc2 140.0.0.19 lcc11-fpc3 140.0.0.20 lcc11-fpc4 140.0.0.21 lcc11-fpc5 140.0.0.22 lcc11-fpc6 140.0.0.23 lcc11-fpc7 140.0.0.48 lcc11-spmb0 140.0.0.49 lcc11-spmb1 #LCC 11 (or MEMBER 11 on Virtual Chassis) 140.0.0.1 lcc11-master member11-master 140.0.0.4 lcc11-re0 member11-re0 140.0.0.5 lcc11-re1 member11-re1 140.0.0.6 lcc11-backup member11-backup 140.0.0.16 member11-fpc0 140.0.0.17 member11-fpc1 140.0.0.18 member11-fpc2 140.0.0.19 member11-fpc3 140.0.0.20 member11-fpc4 140.0.0.21 member11-fpc5 140.0.0.22 member11-fpc6 140.0.0.23 member11-fpc7 140.0.0.24 member11-fpc8 140.0.0.25 member11-fpc9 140.0.0.26 member11-fpc10 140.0.0.27 member11-fpc11 140.0.0.28 member11-fpc12 140.0.0.29 member11-fpc13 140.0.0.30 member11-fpc14 140.0.0.31 member11-fpc15 141.0.0.6 lcc12-backup 141.0.0.16 lcc12-fpc0 141.0.0.17 lcc12-fpc1 141.0.0.18 lcc12-fpc2 141.0.0.19 lcc12-fpc3 141.0.0.20 lcc12-fpc4 141.0.0.21 lcc12-fpc5 141.0.0.22 lcc12-fpc6 141.0.0.23 lcc12-fpc7 141.0.0.48 lcc12-spmb0 141.0.0.49 lcc12-spmb1 #LCC 12 (or MEMBER 12 on Virtual Chassis) 141.0.0.1 lcc12-master member12-master 141.0.0.4 lcc12-re0 member12-re0 141.0.0.5 lcc12-re1 member12-re1 141.0.0.6 lcc12-backup member12-backup 141.0.0.16 member12-fpc0 141.0.0.17 member12-fpc1 141.0.0.18 member12-fpc2 141.0.0.19 member12-fpc3 141.0.0.20 member12-fpc4 141.0.0.21 member12-fpc5 141.0.0.22 member12-fpc6 141.0.0.23 member12-fpc7 141.0.0.24 member12-fpc8 141.0.0.25 member12-fpc9 141.0.0.26 member12-fpc10 141.0.0.27 member12-fpc11 141.0.0.28 member12-fpc12 141.0.0.29 member12-fpc13 141.0.0.30 member12-fpc14 141.0.0.31 member12-fpc15 142.0.0.6 lcc13-backup 142.0.0.16 lcc13-fpc0 142.0.0.17 lcc13-fpc1 142.0.0.18 lcc13-fpc2 142.0.0.19 lcc13-fpc3 142.0.0.20 lcc13-fpc4 142.0.0.21 lcc13-fpc5 142.0.0.22 lcc13-fpc6 142.0.0.23 lcc13-fpc7 142.0.0.48 lcc13-spmb0 142.0.0.49 lcc13-spmb1 #LCC 13 (or MEMBER 13 on Virtual Chassis) 142.0.0.1 lcc13-master member13-master 142.0.0.4 lcc13-re0 member13-re0 142.0.0.5 lcc13-re1 member13-re1 142.0.0.6 lcc13-backup member13-backup 142.0.0.16 member13-fpc0 142.0.0.17 member13-fpc1 142.0.0.18 member13-fpc2 142.0.0.19 member13-fpc3 142.0.0.20 member13-fpc4 142.0.0.21 member13-fpc5 142.0.0.22 member13-fpc6 142.0.0.23 member13-fpc7 142.0.0.24 member13-fpc8 142.0.0.25 member13-fpc9 142.0.0.26 member13-fpc10 142.0.0.27 member13-fpc11 142.0.0.28 member13-fpc12 142.0.0.29 member13-fpc13 142.0.0.30 member13-fpc14 142.0.0.31 member13-fpc15 143.0.0.6 lcc14-backup 143.0.0.16 lcc14-fpc0 143.0.0.17 lcc14-fpc1 143.0.0.18 lcc14-fpc2 143.0.0.19 lcc14-fpc3 143.0.0.20 lcc14-fpc4 143.0.0.21 lcc14-fpc5 143.0.0.22 lcc14-fpc6 143.0.0.23 lcc14-fpc7 143.0.0.48 lcc14-spmb0 143.0.0.49 lcc14-spmb1 #LCC 14 (or MEMBER 14 on Virtual Chassis) 143.0.0.1 lcc14-master member14-master 143.0.0.4 lcc14-re0 member14-re0 143.0.0.5 lcc14-re1 member14-re1 143.0.0.6 lcc14-backup member14-backup 143.0.0.16 member14-fpc0 143.0.0.17 member14-fpc1 143.0.0.18 member14-fpc2 143.0.0.19 member14-fpc3 143.0.0.20 member14-fpc4 143.0.0.21 member14-fpc5 143.0.0.22 member14-fpc6 143.0.0.23 member14-fpc7 143.0.0.24 member14-fpc8 143.0.0.25 member14-fpc9 143.0.0.26 member14-fpc10 143.0.0.27 member14-fpc11 143.0.0.28 member14-fpc12 143.0.0.29 member14-fpc13 143.0.0.30 member14-fpc14 143.0.0.31 member14-fpc15 144.0.0.6 lcc15-backup 144.0.0.16 lcc15-fpc0 144.0.0.17 lcc15-fpc1 144.0.0.18 lcc15-fpc2 144.0.0.19 lcc15-fpc3 144.0.0.20 lcc15-fpc4 144.0.0.21 lcc15-fpc5 144.0.0.22 lcc15-fpc6 144.0.0.23 lcc15-fpc7 144.0.0.48 lcc15-spmb0 144.0.0.49 lcc15-spmb1 #LCC 15 (or MEMBER 15 on Virtual Chassis) 144.0.0.1 lcc15-master member15-master 144.0.0.4 lcc15-re0 member15-re0 144.0.0.5 lcc15-re1 member15-re1 144.0.0.6 lcc15-backup member15-backup 144.0.0.16 member15-fpc0 144.0.0.17 member15-fpc1 144.0.0.18 member15-fpc2 144.0.0.19 member15-fpc3 144.0.0.20 member15-fpc4 144.0.0.21 member15-fpc5 144.0.0.22 member15-fpc6 144.0.0.23 member15-fpc7 144.0.0.24 member15-fpc8 144.0.0.25 member15-fpc9 144.0.0.26 member15-fpc10 144.0.0.27 member15-fpc11 144.0.0.28 member15-fpc12 144.0.0.29 member15-fpc13 144.0.0.30 member15-fpc14 144.0.0.31 member15-fpc15 #VIRT SC 161.0.0.1 sc-master 161.0.0.4 sc-re0 161.0.0.5 sc-re1 161.0.0.6 sc-backup #SFC 0 162.0.0.1 sfc0-master 162.0.0.4 sfc0-re0 162.0.0.5 sfc0-re1 162.0.0.6 sfc0-backup 162.0.0.48 sfc0-spmb0 162.0.0.49 sfc0-spmb1 #SFC 1 163.0.0.1 sfc1-master 163.0.0.4 sfc1-re0 163.0.0.5 sfc1-re1 163.0.0.6 sfc1-backup 163.0.0.48 sfc1-spmb0 163.0.0.49 sfc1-spmb1 #SFC 2 164.0.0.1 sfc2-master 164.0.0.4 sfc2-re0 164.0.0.5 sfc2-re1 164.0.0.6 sfc2-backup 164.0.0.48 sfc2-spmb0 164.0.0.49 sfc2-spmb1 #SFC 3 165.0.0.1 sfc3-master 165.0.0.4 sfc3-re0 165.0.0.5 sfc3-re1 165.0.0.6 sfc3-backup 165.0.0.48 sfc3-spmb0 165.0.0.49 sfc3-spmb1 #SFC 4 166.0.0.1 sfc4-master 166.0.0.4 sfc4-re0 166.0.0.5 sfc4-re1 166.0.0.6 sfc4-backup 166.0.0.48 sfc4-spmb0 166.0.0.49 sfc4-spmb1 #JCS 190.0.0.1 psd%d-master 190.0.0.4 psd%d-re0 190.0.0.5 psd%d-re1 190.0.0.6 psd%d-backup # Old IP address format (RT_IRS_V2) # # Single Chassis Hostnames # 10.0.0.1 master 10.0.0.4 re0 10.0.0.5 re1 # # Multi Chassis Hostnames # #SCC 10.16.0.1 scc-master 10.16.0.4 scc-re0 10.16.0.5 scc-re1 #LCC 0 10.1.0.1 lcc0-master member0-master 10.1.0.4 lcc0-re0 member0-re0 10.1.0.5 lcc0-re1 member0-re1 10.1.0.6 lcc0-backup member0-backup #LCC 1 10.2.0.1 lcc1-master member1-master 10.2.0.4 lcc1-re0 member1-re0 10.2.0.5 lcc1-re1 member1-re1 10.2.0.6 lcc1-backup member1-backup #LCC 2 10.3.0.1 lcc2-master member2-master 10.3.0.4 lcc2-re0 member2-re0 10.3.0.5 lcc2-re1 member2-re1 10.3.0.6 lcc2-backup member2-backup #LCC 3 10.4.0.1 lcc3-master member3-master 10.4.0.4 lcc3-re0 member3-re0 10.4.0.5 lcc3-re1 member3-re1 10.4.0.6 lcc3-backup member3-backup #LCC 4 10.5.0.1 lcc4-master member4-master 10.5.0.4 lcc4-re0 member4-re0 10.5.0.5 lcc4-re1 member4-re1 10.5.0.6 lcc4-backup member4-backup #LCC 5 10.6.0.1 lcc5-master member5-master 10.6.0.4 lcc5-re0 member5-re0 10.6.0.5 lcc5-re1 member5-re1 10.6.0.6 lcc5-backup member5-backup #LCC 6 10.7.0.1 lcc6-master member6-master 10.7.0.4 lcc6-re0 member6-re0 10.7.0.5 lcc6-re1 member6-re1 10.7.0.6 lcc6-backup member6-backup #LCC 7 10.8.0.1 lcc7-master member7-master 10.8.0.4 lcc7-re0 member7-re0 10.8.0.5 lcc7-re1 member7-re1 10.8.0.6 lcc7-backup member7-backup #LCC 8 10.9.0.1 lcc8-master member8-master 10.9.0.4 lcc8-re0 member8-re0 10.9.0.5 lcc8-re1 member8-re1 10.9.0.6 lcc8-backup member8-backup #LCC 9 10.10.0.1 lcc9-master member9-master 10.10.0.4 lcc9-re0 member9-re0 10.10.0.5 lcc9-re1 member9-re1 10.10.0.6 lcc9-backup member9-backup #LCC 10 10.11.0.1 lcc10-master member10-master 10.11.0.4 lcc10-re0 member10-re0 10.11.0.5 lcc10-re1 member10-re1 10.11.0.6 lcc10-backup member10-backup #LCC 11 10.12.0.1 lcc11-master member11-master 10.12.0.4 lcc11-re0 member11-re0 10.12.0.5 lcc11-re1 member11-re1 10.12.0.6 lcc11-backup member11-backup #LCC 12 10.13.0.1 lcc12-master member12-master 10.13.0.4 lcc12-re0 member12-re0 10.13.0.5 lcc12-re1 member12-re1 10.13.0.6 lcc12-backup member12-backup #LCC 13 10.14.0.1 lcc13-master member13-master 10.14.0.4 lcc13-re0 member13-re0 10.14.0.5 lcc13-re1 member13-re1 10.14.0.6 lcc13-backup member13-backup #LCC 14 10.15.0.1 lcc14-master member14-master 10.15.0.4 lcc14-re0 member14-re0 10.15.0.5 lcc14-re1 member14-re1 10.15.0.6 lcc14-backup member14-backup #LCC 15 10.16.0.1 lcc15-master member15-master 10.16.0.4 lcc15-re0 member15-re0 10.16.0.5 lcc15-re1 member15-re1 10.16.0.6 lcc15-backup member15-backup #SFC 0 10.34.0.1 sfc0-master 10.34.0.4 sfc0-re0 10.34.0.5 sfc0-re1 #SFC 1 10.35.0.1 sfc1-master 10.35.0.4 sfc1-re0 10.35.0.5 sfc1-re1 #SFC 2 10.36.0.1 sfc2-master 10.36.0.4 sfc2-re0 10.36.0.5 sfc2-re1 #SFC 3 10.37.0.1 sfc3-master 10.37.0.4 sfc3-re0 10.37.0.5 sfc3-re1 #SFC 4 10.38.0.1 sfc4-master 10.38.0.4 sfc4-re0 10.38.0.5 sfc4-re1 # End of internal names personality_srx_high_end_get-interface-information.xml000066400000000000000000000144241475361112400342700ustar00rootroot00000000000000py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply avs1.0 up up inet 254.0.0.254 0/0 inet6 fe80::199 em0.0 up up inet 10.0.0.1/8 10.0.0.4/8 128.0.0.1/2 128.0.0.4/2 inet6 fe80::200:ff:fe00:4/64 fec0::a:0:0:4/64 tnp 0x4 em1.0 up down inet 10.0.0.1/8 10.0.0.4/8 128.0.0.1/2 128.0.0.4/2 inet6 fe80::200:1ff:fe00:4/64 fec0::a:0:0:4/64 tnp 0x4 lo0.16385 up up inet personality_srx_high_end_get-route-engine-information.xml000066400000000000000000000023761475361112400347340ustar00rootroot00000000000000py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply 0 master master (default) 1023 1023 43 0 0 4 0 96 RE-PPC-1200-A 2016-10-31 14:00:22 PDT 62 days, 43 minutes, 18 seconds Router rebooted after a normal shutdown. 0.01 0.02 0.00 py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/personality_srx_mid_range_command.xml000066400000000000000000000011211475361112400310730ustar00rootroot00000000000000 lsys500 srx3600 srx3600 junos JUNOS Software Release [12.3X48-D40.5] jais AI-Scripts [6.0R2-THIN.0] py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/personality_srx_mid_range_file-show.xml000066400000000000000000000754711475361112400313750ustar00rootroot00000000000000 #$Id: hosts.junos,v 1.7.72.1 2009-04-16 05:22:03 kdickman Exp $ # # File mapping AF_INET/AF_INET6 hostnames for REs on Single and Multichassis # systems # # This file is looked at before /etc/hosts by gethostbyname(3), # gethostbyname2(3) and getaddrinfo(3) # # The IP addresses in this file are only used for communication between REs # over the Internal Routing Instances # # WARNING: # # The names in this file are effectively reserved for internal use. # # New IP address format (RT_IRS_V3) # # Single Chassis Hostnames # 128.0.0.1 master 128.0.0.1 node 128.0.0.1 fwdd 128.0.0.1 member 128.0.0.1 pfem 128.0.0.2 scb 128.0.0.2 sbr 128.0.0.2 ssb 128.0.0.2 feb 128.0.0.2 cfeb0 128.0.0.2 cfeb 128.0.0.2 cpp0 128.0.0.3 cfeb1 128.0.0.3 cpp1 128.0.0.4 re0 128.0.0.5 re1 128.0.0.6 backup 128.0.0.8 sfm0 128.0.0.9 sfm1 128.0.0.10 sfm2 128.0.0.16 fpc0 128.0.0.17 fpc1 128.0.0.18 fpc2 128.0.0.19 fpc3 128.0.0.20 fpc4 128.0.0.21 fpc5 128.0.0.22 fpc6 128.0.0.23 fpc7 128.0.0.24 fpc8 128.0.0.25 fpc9 128.0.0.26 fpc10 128.0.0.27 fpc11 128.0.0.28 fpc12 128.0.0.29 fpc13 128.0.0.30 fpc14 128.0.0.31 fpc15 128.0.0.32 feb0 128.0.0.32 fpc16 128.0.0.33 feb1 128.0.0.33 fpc17 128.0.0.34 feb2 128.0.0.34 fpc18 128.0.0.35 feb3 128.0.0.35 fpc19 128.0.0.36 feb4 128.0.0.37 feb5 128.0.0.48 spmb0 128.0.0.49 spmb1 128.0.0.50 tfeb0 128.0.1.16 fpc0.pic0 128.0.1.17 fpc1.pic0 128.0.1.18 fpc2.pic0 128.0.1.19 fpc3.pic0 128.0.1.20 fpc4.pic0 128.0.1.21 fpc5.pic0 128.0.1.22 fpc6.pic0 128.0.1.23 fpc7.pic0 128.0.1.24 fpc8.pic0 128.0.1.25 fpc9.pic0 128.0.1.26 fpc10.pic0 128.0.1.27 fpc11.pic0 128.0.1.28 fpc12.pic0 128.0.1.29 fpc13.pic0 128.0.1.30 fpc14.pic0 128.0.1.31 fpc15.pic0 128.0.2.16 fpc0.pic1 128.0.2.17 fpc1.pic1 128.0.2.18 fpc2.pic1 128.0.2.19 fpc3.pic1 128.0.2.20 fpc4.pic1 128.0.2.21 fpc5.pic1 128.0.2.22 fpc6.pic1 128.0.2.23 fpc7.pic1 128.0.2.24 fpc8.pic1 128.0.2.25 fpc9.pic1 128.0.2.26 fpc10.pic1 128.0.2.27 fpc11.pic1 128.0.2.28 fpc12.pic1 128.0.2.29 fpc13.pic1 128.0.2.30 fpc14.pic1 128.0.2.31 fpc15.pic1 128.0.3.16 fpc0.pic2 128.0.3.17 fpc1.pic2 128.0.3.18 fpc2.pic2 128.0.3.19 fpc3.pic2 128.0.3.20 fpc4.pic2 128.0.3.21 fpc5.pic2 128.0.3.22 fpc6.pic2 128.0.3.23 fpc7.pic2 128.0.3.24 fpc8.pic2 128.0.3.25 fpc9.pic2 128.0.3.26 fpc10.pic2 128.0.3.27 fpc11.pic2 128.0.3.28 fpc12.pic2 128.0.3.29 fpc13.pic2 128.0.3.30 fpc14.pic2 128.0.3.31 fpc15.pic2 128.0.4.16 fpc0.pic3 128.0.4.17 fpc1.pic3 128.0.4.18 fpc2.pic3 128.0.4.19 fpc3.pic3 128.0.4.20 fpc4.pic3 128.0.4.21 fpc5.pic3 128.0.4.22 fpc6.pic3 128.0.4.23 fpc7.pic3 128.0.4.24 fpc8.pic3 128.0.4.25 fpc9.pic3 128.0.4.26 fpc10.pic3 128.0.4.27 fpc11.pic3 128.0.4.28 fpc12.pic3 128.0.4.29 fpc13.pic3 128.0.4.30 fpc14.pic3 128.0.4.31 fpc15.pic3 # # DCF-Root Hostname # 128.0.130.2 dcf-root # # Multi Chassis Hostnames # #SCC 144.0.0.1 scc-master 144.0.0.4 scc-re0 144.0.0.5 scc-re1 144.0.0.6 scc-backup 144.0.0.48 scc-spmb0 144.0.0.49 scc-spmb1 #LCC 0 (or MEMBER 0 on Virtual Chassis) 129.0.0.1 lcc0-master member0-master member0 129.0.0.4 lcc0-re0 member0-re0 129.0.0.5 lcc0-re1 member0-re1 129.0.0.6 lcc0-backup member0-backup 129.0.0.16 member0-fpc0 129.0.0.17 member0-fpc1 129.0.0.18 member0-fpc2 129.0.0.19 member0-fpc3 129.0.0.20 member0-fpc4 129.0.0.21 member0-fpc5 129.0.0.22 member0-fpc6 129.0.0.23 member0-fpc7 129.0.0.24 member0-fpc8 129.0.0.25 member0-fpc9 129.0.0.26 member0-fpc10 129.0.0.27 member0-fpc11 129.0.0.28 member0-fpc12 129.0.0.29 member0-fpc13 129.0.0.30 member0-fpc14 129.0.0.31 member0-fpc15 129.0.0.6 lcc0-backup 129.0.0.16 lcc0-fpc0 129.0.0.17 lcc0-fpc1 129.0.0.18 lcc0-fpc2 129.0.0.19 lcc0-fpc3 129.0.0.20 lcc0-fpc4 129.0.0.21 lcc0-fpc5 129.0.0.22 lcc0-fpc6 129.0.0.23 lcc0-fpc7 129.0.0.48 lcc0-spmb0 129.0.0.49 lcc0-spmb1 #LCC 1 (or MEMBER 1 on Virtual Chassis) 130.0.0.1 lcc1-master member1-master member1 130.0.0.4 lcc1-re0 member1-re0 130.0.0.5 lcc1-re1 member1-re1 130.0.0.6 lcc1-backup member1-backup 130.0.0.16 member1-fpc0 130.0.0.17 member1-fpc1 130.0.0.18 member1-fpc2 130.0.0.19 member1-fpc3 130.0.0.20 member1-fpc4 130.0.0.21 member1-fpc5 130.0.0.22 member1-fpc6 130.0.0.23 member1-fpc7 130.0.0.24 member1-fpc8 130.0.0.25 member1-fpc9 130.0.0.26 member1-fpc10 130.0.0.27 member1-fpc11 130.0.0.28 member1-fpc12 130.0.0.29 member1-fpc13 130.0.0.30 member1-fpc14 130.0.0.31 member1-fpc15 130.0.0.6 lcc1-backup 130.0.0.16 lcc1-fpc0 130.0.0.17 lcc1-fpc1 130.0.0.18 lcc1-fpc2 130.0.0.19 lcc1-fpc3 130.0.0.20 lcc1-fpc4 130.0.0.21 lcc1-fpc5 130.0.0.22 lcc1-fpc6 130.0.0.23 lcc1-fpc7 130.0.0.48 lcc1-spmb0 130.0.0.49 lcc1-spmb1 #LCC 2 (or MEMBER 2 on Virtual Chassis) 131.0.0.1 lcc2-master member2-master member2 131.0.0.4 lcc2-re0 member2-re0 131.0.0.5 lcc2-re1 member2-re1 131.0.0.6 lcc2-backup member2-backup 131.0.0.16 member2-fpc0 131.0.0.17 member2-fpc1 131.0.0.18 member2-fpc2 131.0.0.19 member2-fpc3 131.0.0.20 member2-fpc4 131.0.0.21 member2-fpc5 131.0.0.22 member2-fpc6 131.0.0.23 member2-fpc7 131.0.0.24 member2-fpc8 131.0.0.25 member2-fpc9 131.0.0.26 member2-fpc10 131.0.0.27 member2-fpc11 131.0.0.28 member2-fpc12 131.0.0.29 member2-fpc13 131.0.0.30 member2-fpc14 131.0.0.31 member2-fpc15 131.0.0.6 lcc2-backup 131.0.0.16 lcc2-fpc0 131.0.0.17 lcc2-fpc1 131.0.0.18 lcc2-fpc2 131.0.0.19 lcc2-fpc3 131.0.0.20 lcc2-fpc4 131.0.0.21 lcc2-fpc5 131.0.0.22 lcc2-fpc6 131.0.0.23 lcc2-fpc7 131.0.0.48 lcc2-spmb0 131.0.0.49 lcc20-spmb1 #LCC 3 (or MEMBER 3 on Virtual Chassis) 132.0.0.1 lcc3-master member3-master member3 132.0.0.4 lcc3-re0 member3-re0 132.0.0.5 lcc3-re1 member3-re1 132.0.0.6 lcc3-backup member3-backup 132.0.0.16 member3-fpc0 132.0.0.17 member3-fpc1 132.0.0.18 member3-fpc2 132.0.0.19 member3-fpc3 132.0.0.20 member3-fpc4 132.0.0.21 member3-fpc5 132.0.0.22 member3-fpc6 132.0.0.23 member3-fpc7 132.0.0.24 member3-fpc8 132.0.0.25 member3-fpc9 132.0.0.26 member3-fpc10 132.0.0.27 member3-fpc11 132.0.0.28 member3-fpc12 132.0.0.29 member3-fpc13 132.0.0.30 member3-fpc14 132.0.0.31 member3-fpc15 132.0.0.6 lcc3-backup 132.0.0.16 lcc3-fpc0 132.0.0.17 lcc3-fpc1 132.0.0.18 lcc3-fpc2 132.0.0.19 lcc3-fpc3 132.0.0.20 lcc3-fpc4 132.0.0.21 lcc3-fpc5 132.0.0.22 lcc3-fpc6 132.0.0.23 lcc3-fpc7 132.0.0.48 lcc3-spmb0 132.0.0.49 lcc3-spmb1 #LCC 4 (or MEMBER 4 on Virtual Chassis) 133.0.0.1 lcc4-master member4-master member4 133.0.0.4 lcc4-re0 member4-re0 133.0.0.5 lcc4-re1 member4-re1 133.0.0.6 lcc4-backup member4-backup 133.0.0.16 member4-fpc0 133.0.0.17 member4-fpc1 133.0.0.18 member4-fpc2 133.0.0.19 member4-fpc3 133.0.0.20 member4-fpc4 133.0.0.21 member4-fpc5 133.0.0.22 member4-fpc6 133.0.0.23 member4-fpc7 133.0.0.24 member4-fpc8 133.0.0.25 member4-fpc9 133.0.0.26 member4-fpc10 133.0.0.27 member4-fpc11 133.0.0.28 member4-fpc12 133.0.0.29 member4-fpc13 133.0.0.30 member4-fpc14 133.0.0.31 member4-fpc15 133.0.0.6 lcc4-backup 133.0.0.16 lcc4-fpc0 133.0.0.17 lcc4-fpc1 133.0.0.18 lcc4-fpc2 133.0.0.19 lcc4-fpc3 133.0.0.20 lcc4-fpc4 133.0.0.21 lcc4-fpc5 133.0.0.22 lcc4-fpc6 133.0.0.23 lcc4-fpc7 133.0.0.48 lcc4-spmb0 133.0.0.49 lcc4-spmb1 #LCC 5 (or MEMBER 5 on Virtual Chassis) 134.0.0.1 lcc5-master member5-master member5 134.0.0.4 lcc5-re0 member5-re0 134.0.0.5 lcc5-re1 member5-re1 134.0.0.6 lcc5-backup member5-backup 134.0.0.16 member5-fpc0 134.0.0.17 member5-fpc1 134.0.0.18 member5-fpc2 134.0.0.19 member5-fpc3 134.0.0.20 member5-fpc4 134.0.0.21 member5-fpc5 134.0.0.22 member5-fpc6 134.0.0.23 member5-fpc7 134.0.0.24 member5-fpc8 134.0.0.25 member5-fpc9 134.0.0.26 member5-fpc10 134.0.0.27 member5-fpc11 134.0.0.28 member5-fpc12 134.0.0.29 member5-fpc13 134.0.0.30 member5-fpc14 134.0.0.31 member5-fpc15 134.0.0.6 lcc5-backup 134.0.0.16 lcc5-fpc0 134.0.0.17 lcc5-fpc1 134.0.0.18 lcc5-fpc2 134.0.0.19 lcc5-fpc3 134.0.0.20 lcc5-fpc4 134.0.0.21 lcc5-fpc5 134.0.0.22 lcc5-fpc6 134.0.0.23 lcc5-fpc7 134.0.0.48 lcc5-spmb0 134.0.0.49 lcc5-spmb1 #LCC 6 (or MEMBER 6 on Virtual Chassis) 135.0.0.1 lcc6-master member6-master member6 135.0.0.4 lcc6-re0 member6-re0 135.0.0.5 lcc6-re1 member6-re1 135.0.0.6 lcc6-backup member6-backup 135.0.0.16 member6-fpc0 135.0.0.17 member6-fpc1 135.0.0.18 member6-fpc2 135.0.0.19 member6-fpc3 135.0.0.20 member6-fpc4 135.0.0.21 member6-fpc5 135.0.0.22 member6-fpc6 135.0.0.23 member6-fpc7 135.0.0.24 member6-fpc8 135.0.0.25 member6-fpc9 135.0.0.26 member6-fpc10 135.0.0.27 member6-fpc11 135.0.0.28 member6-fpc12 135.0.0.29 member6-fpc13 135.0.0.30 member6-fpc14 135.0.0.31 member6-fpc15 135.0.0.6 lcc6-backup 135.0.0.16 lcc6-fpc0 135.0.0.17 lcc6-fpc1 135.0.0.18 lcc6-fpc2 135.0.0.19 lcc6-fpc3 135.0.0.20 lcc6-fpc4 135.0.0.21 lcc6-fpc5 135.0.0.22 lcc6-fpc6 135.0.0.23 lcc6-fpc7 135.0.0.48 lcc6-spmb0 135.0.0.49 lcc6-spmb1 #LCC 7 (or MEMBER 7 on Virtual Chassis) 136.0.0.1 lcc7-master member7-master member7 136.0.0.4 lcc7-re0 member7-re0 136.0.0.5 lcc7-re1 member7-re1 136.0.0.6 lcc7-backup member7-backup 136.0.0.16 member7-fpc0 136.0.0.17 member7-fpc1 136.0.0.18 member7-fpc2 136.0.0.19 member7-fpc3 136.0.0.20 member7-fpc4 136.0.0.21 member7-fpc5 136.0.0.22 member7-fpc6 136.0.0.23 member7-fpc7 136.0.0.24 member7-fpc8 136.0.0.25 member7-fpc9 136.0.0.26 member7-fpc10 136.0.0.27 member7-fpc11 136.0.0.28 member7-fpc12 136.0.0.29 member7-fpc13 136.0.0.30 member7-fpc14 136.0.0.31 member7-fpc15 136.0.0.6 lcc7-backup 136.0.0.16 lcc7-fpc0 136.0.0.17 lcc7-fpc1 136.0.0.18 lcc7-fpc2 136.0.0.19 lcc7-fpc3 136.0.0.20 lcc7-fpc4 136.0.0.21 lcc7-fpc5 136.0.0.22 lcc7-fpc6 136.0.0.23 lcc7-fpc7 136.0.0.48 lcc7-spmb0 136.0.0.49 lcc7-spmb1 137.0.0.6 lcc8-backup 137.0.0.16 lcc8-fpc0 137.0.0.17 lcc8-fpc1 137.0.0.18 lcc8-fpc2 137.0.0.19 lcc8-fpc3 137.0.0.20 lcc8-fpc4 137.0.0.21 lcc8-fpc5 137.0.0.22 lcc8-fpc6 137.0.0.23 lcc8-fpc7 137.0.0.48 lcc8-spmb0 137.0.0.49 lcc8-spmb1 #LCC 8 (or MEMBER 8 on Virtual Chassis) 137.0.0.1 lcc8-master member8-master member8 137.0.0.4 lcc8-re0 member8-re0 137.0.0.5 lcc8-re1 member8-re1 137.0.0.6 lcc8-backup member8-backup 137.0.0.16 member8-fpc0 137.0.0.17 member8-fpc1 137.0.0.18 member8-fpc2 137.0.0.19 member8-fpc3 137.0.0.20 member8-fpc4 137.0.0.21 member8-fpc5 137.0.0.22 member8-fpc6 137.0.0.23 member8-fpc7 137.0.0.24 member8-fpc8 137.0.0.25 member8-fpc9 137.0.0.26 member8-fpc10 137.0.0.27 member8-fpc11 137.0.0.28 member8-fpc12 137.0.0.29 member8-fpc13 137.0.0.30 member8-fpc14 137.0.0.31 member8-fpc15 138.0.0.6 lcc9-backup 138.0.0.16 lcc9-fpc0 138.0.0.17 lcc9-fpc1 138.0.0.18 lcc9-fpc2 138.0.0.19 lcc9-fpc3 138.0.0.20 lcc9-fpc4 138.0.0.21 lcc9-fpc5 138.0.0.22 lcc9-fpc6 138.0.0.23 lcc9-fpc7 138.0.0.48 lcc9-spmb0 138.0.0.49 lcc9-spmb1 #LCC 9 (or MEMBER 9 on Virtual Chassis) 138.0.0.1 lcc9-master member9-master member9 138.0.0.4 lcc9-re0 member9-re0 138.0.0.5 lcc9-re1 member9-re1 138.0.0.6 lcc9-backup member9-backup 138.0.0.16 member9-fpc0 138.0.0.17 member9-fpc1 138.0.0.18 member9-fpc2 138.0.0.19 member9-fpc3 138.0.0.20 member9-fpc4 138.0.0.21 member9-fpc5 138.0.0.22 member9-fpc6 138.0.0.23 member9-fpc7 138.0.0.24 member9-fpc8 138.0.0.25 member9-fpc9 138.0.0.26 member9-fpc10 138.0.0.27 member9-fpc11 138.0.0.28 member9-fpc12 138.0.0.29 member9-fpc13 138.0.0.30 member9-fpc14 138.0.0.31 member9-fpc15 139.0.0.6 lcc10-backup 139.0.0.16 lcc10-fpc0 139.0.0.17 lcc10-fpc1 139.0.0.18 lcc10-fpc2 139.0.0.19 lcc10-fpc3 139.0.0.20 lcc10-fpc4 139.0.0.21 lcc10-fpc5 139.0.0.22 lcc10-fpc6 139.0.0.23 lcc10-fpc7 139.0.0.48 lcc10-spmb0 139.0.0.49 lcc10-spmb1 #LCC 10 (or MEMBER 10 on Virtual Chassis) 139.0.0.1 lcc10-master member10-master 139.0.0.4 lcc10-re0 member10-re0 139.0.0.5 lcc10-re1 member10-re1 139.0.0.6 lcc10-backup member10-backup 139.0.0.16 member10-fpc0 139.0.0.17 member10-fpc1 139.0.0.18 member10-fpc2 139.0.0.19 member10-fpc3 139.0.0.20 member10-fpc4 139.0.0.21 member10-fpc5 139.0.0.22 member10-fpc6 139.0.0.23 member10-fpc7 139.0.0.24 member10-fpc8 139.0.0.25 member10-fpc9 139.0.0.26 member10-fpc10 139.0.0.27 member10-fpc11 139.0.0.28 member10-fpc12 139.0.0.29 member10-fpc13 139.0.0.30 member10-fpc14 139.0.0.31 member10-fpc15 140.0.0.6 lcc11-backup 140.0.0.16 lcc11-fpc0 140.0.0.17 lcc11-fpc1 140.0.0.18 lcc11-fpc2 140.0.0.19 lcc11-fpc3 140.0.0.20 lcc11-fpc4 140.0.0.21 lcc11-fpc5 140.0.0.22 lcc11-fpc6 140.0.0.23 lcc11-fpc7 140.0.0.48 lcc11-spmb0 140.0.0.49 lcc11-spmb1 #LCC 11 (or MEMBER 11 on Virtual Chassis) 140.0.0.1 lcc11-master member11-master 140.0.0.4 lcc11-re0 member11-re0 140.0.0.5 lcc11-re1 member11-re1 140.0.0.6 lcc11-backup member11-backup 140.0.0.16 member11-fpc0 140.0.0.17 member11-fpc1 140.0.0.18 member11-fpc2 140.0.0.19 member11-fpc3 140.0.0.20 member11-fpc4 140.0.0.21 member11-fpc5 140.0.0.22 member11-fpc6 140.0.0.23 member11-fpc7 140.0.0.24 member11-fpc8 140.0.0.25 member11-fpc9 140.0.0.26 member11-fpc10 140.0.0.27 member11-fpc11 140.0.0.28 member11-fpc12 140.0.0.29 member11-fpc13 140.0.0.30 member11-fpc14 140.0.0.31 member11-fpc15 141.0.0.6 lcc12-backup 141.0.0.16 lcc12-fpc0 141.0.0.17 lcc12-fpc1 141.0.0.18 lcc12-fpc2 141.0.0.19 lcc12-fpc3 141.0.0.20 lcc12-fpc4 141.0.0.21 lcc12-fpc5 141.0.0.22 lcc12-fpc6 141.0.0.23 lcc12-fpc7 141.0.0.48 lcc12-spmb0 141.0.0.49 lcc12-spmb1 #LCC 12 (or MEMBER 12 on Virtual Chassis) 141.0.0.1 lcc12-master member12-master 141.0.0.4 lcc12-re0 member12-re0 141.0.0.5 lcc12-re1 member12-re1 141.0.0.6 lcc12-backup member12-backup 141.0.0.16 member12-fpc0 141.0.0.17 member12-fpc1 141.0.0.18 member12-fpc2 141.0.0.19 member12-fpc3 141.0.0.20 member12-fpc4 141.0.0.21 member12-fpc5 141.0.0.22 member12-fpc6 141.0.0.23 member12-fpc7 141.0.0.24 member12-fpc8 141.0.0.25 member12-fpc9 141.0.0.26 member12-fpc10 141.0.0.27 member12-fpc11 141.0.0.28 member12-fpc12 141.0.0.29 member12-fpc13 141.0.0.30 member12-fpc14 141.0.0.31 member12-fpc15 142.0.0.6 lcc13-backup 142.0.0.16 lcc13-fpc0 142.0.0.17 lcc13-fpc1 142.0.0.18 lcc13-fpc2 142.0.0.19 lcc13-fpc3 142.0.0.20 lcc13-fpc4 142.0.0.21 lcc13-fpc5 142.0.0.22 lcc13-fpc6 142.0.0.23 lcc13-fpc7 142.0.0.48 lcc13-spmb0 142.0.0.49 lcc13-spmb1 #LCC 13 (or MEMBER 13 on Virtual Chassis) 142.0.0.1 lcc13-master member13-master 142.0.0.4 lcc13-re0 member13-re0 142.0.0.5 lcc13-re1 member13-re1 142.0.0.6 lcc13-backup member13-backup 142.0.0.16 member13-fpc0 142.0.0.17 member13-fpc1 142.0.0.18 member13-fpc2 142.0.0.19 member13-fpc3 142.0.0.20 member13-fpc4 142.0.0.21 member13-fpc5 142.0.0.22 member13-fpc6 142.0.0.23 member13-fpc7 142.0.0.24 member13-fpc8 142.0.0.25 member13-fpc9 142.0.0.26 member13-fpc10 142.0.0.27 member13-fpc11 142.0.0.28 member13-fpc12 142.0.0.29 member13-fpc13 142.0.0.30 member13-fpc14 142.0.0.31 member13-fpc15 143.0.0.6 lcc14-backup 143.0.0.16 lcc14-fpc0 143.0.0.17 lcc14-fpc1 143.0.0.18 lcc14-fpc2 143.0.0.19 lcc14-fpc3 143.0.0.20 lcc14-fpc4 143.0.0.21 lcc14-fpc5 143.0.0.22 lcc14-fpc6 143.0.0.23 lcc14-fpc7 143.0.0.48 lcc14-spmb0 143.0.0.49 lcc14-spmb1 #LCC 14 (or MEMBER 14 on Virtual Chassis) 143.0.0.1 lcc14-master member14-master 143.0.0.4 lcc14-re0 member14-re0 143.0.0.5 lcc14-re1 member14-re1 143.0.0.6 lcc14-backup member14-backup 143.0.0.16 member14-fpc0 143.0.0.17 member14-fpc1 143.0.0.18 member14-fpc2 143.0.0.19 member14-fpc3 143.0.0.20 member14-fpc4 143.0.0.21 member14-fpc5 143.0.0.22 member14-fpc6 143.0.0.23 member14-fpc7 143.0.0.24 member14-fpc8 143.0.0.25 member14-fpc9 143.0.0.26 member14-fpc10 143.0.0.27 member14-fpc11 143.0.0.28 member14-fpc12 143.0.0.29 member14-fpc13 143.0.0.30 member14-fpc14 143.0.0.31 member14-fpc15 144.0.0.6 lcc15-backup 144.0.0.16 lcc15-fpc0 144.0.0.17 lcc15-fpc1 144.0.0.18 lcc15-fpc2 144.0.0.19 lcc15-fpc3 144.0.0.20 lcc15-fpc4 144.0.0.21 lcc15-fpc5 144.0.0.22 lcc15-fpc6 144.0.0.23 lcc15-fpc7 144.0.0.48 lcc15-spmb0 144.0.0.49 lcc15-spmb1 #LCC 15 (or MEMBER 15 on Virtual Chassis) 144.0.0.1 lcc15-master member15-master 144.0.0.4 lcc15-re0 member15-re0 144.0.0.5 lcc15-re1 member15-re1 144.0.0.6 lcc15-backup member15-backup 144.0.0.16 member15-fpc0 144.0.0.17 member15-fpc1 144.0.0.18 member15-fpc2 144.0.0.19 member15-fpc3 144.0.0.20 member15-fpc4 144.0.0.21 member15-fpc5 144.0.0.22 member15-fpc6 144.0.0.23 member15-fpc7 144.0.0.24 member15-fpc8 144.0.0.25 member15-fpc9 144.0.0.26 member15-fpc10 144.0.0.27 member15-fpc11 144.0.0.28 member15-fpc12 144.0.0.29 member15-fpc13 144.0.0.30 member15-fpc14 144.0.0.31 member15-fpc15 #VIRT SC 161.0.0.1 sc-master 161.0.0.4 sc-re0 161.0.0.5 sc-re1 161.0.0.6 sc-backup #SFC 0 162.0.0.1 sfc0-master 162.0.0.4 sfc0-re0 162.0.0.5 sfc0-re1 162.0.0.6 sfc0-backup 162.0.0.48 sfc0-spmb0 162.0.0.49 sfc0-spmb1 #SFC 1 163.0.0.1 sfc1-master 163.0.0.4 sfc1-re0 163.0.0.5 sfc1-re1 163.0.0.6 sfc1-backup 163.0.0.48 sfc1-spmb0 163.0.0.49 sfc1-spmb1 #SFC 2 164.0.0.1 sfc2-master 164.0.0.4 sfc2-re0 164.0.0.5 sfc2-re1 164.0.0.6 sfc2-backup 164.0.0.48 sfc2-spmb0 164.0.0.49 sfc2-spmb1 #SFC 3 165.0.0.1 sfc3-master 165.0.0.4 sfc3-re0 165.0.0.5 sfc3-re1 165.0.0.6 sfc3-backup 165.0.0.48 sfc3-spmb0 165.0.0.49 sfc3-spmb1 #SFC 4 166.0.0.1 sfc4-master 166.0.0.4 sfc4-re0 166.0.0.5 sfc4-re1 166.0.0.6 sfc4-backup 166.0.0.48 sfc4-spmb0 166.0.0.49 sfc4-spmb1 #JCS 190.0.0.1 psd%d-master 190.0.0.4 psd%d-re0 190.0.0.5 psd%d-re1 190.0.0.6 psd%d-backup # Old IP address format (RT_IRS_V2) # # Single Chassis Hostnames # 10.0.0.1 master 10.0.0.4 re0 10.0.0.5 re1 # # Multi Chassis Hostnames # #SCC 10.16.0.1 scc-master 10.16.0.4 scc-re0 10.16.0.5 scc-re1 #LCC 0 10.1.0.1 lcc0-master member0-master 10.1.0.4 lcc0-re0 member0-re0 10.1.0.5 lcc0-re1 member0-re1 10.1.0.6 lcc0-backup member0-backup #LCC 1 10.2.0.1 lcc1-master member1-master 10.2.0.4 lcc1-re0 member1-re0 10.2.0.5 lcc1-re1 member1-re1 10.2.0.6 lcc1-backup member1-backup #LCC 2 10.3.0.1 lcc2-master member2-master 10.3.0.4 lcc2-re0 member2-re0 10.3.0.5 lcc2-re1 member2-re1 10.3.0.6 lcc2-backup member2-backup #LCC 3 10.4.0.1 lcc3-master member3-master 10.4.0.4 lcc3-re0 member3-re0 10.4.0.5 lcc3-re1 member3-re1 10.4.0.6 lcc3-backup member3-backup #LCC 4 10.5.0.1 lcc4-master member4-master 10.5.0.4 lcc4-re0 member4-re0 10.5.0.5 lcc4-re1 member4-re1 10.5.0.6 lcc4-backup member4-backup #LCC 5 10.6.0.1 lcc5-master member5-master 10.6.0.4 lcc5-re0 member5-re0 10.6.0.5 lcc5-re1 member5-re1 10.6.0.6 lcc5-backup member5-backup #LCC 6 10.7.0.1 lcc6-master member6-master 10.7.0.4 lcc6-re0 member6-re0 10.7.0.5 lcc6-re1 member6-re1 10.7.0.6 lcc6-backup member6-backup #LCC 7 10.8.0.1 lcc7-master member7-master 10.8.0.4 lcc7-re0 member7-re0 10.8.0.5 lcc7-re1 member7-re1 10.8.0.6 lcc7-backup member7-backup #LCC 8 10.9.0.1 lcc8-master member8-master 10.9.0.4 lcc8-re0 member8-re0 10.9.0.5 lcc8-re1 member8-re1 10.9.0.6 lcc8-backup member8-backup #LCC 9 10.10.0.1 lcc9-master member9-master 10.10.0.4 lcc9-re0 member9-re0 10.10.0.5 lcc9-re1 member9-re1 10.10.0.6 lcc9-backup member9-backup #LCC 10 10.11.0.1 lcc10-master member10-master 10.11.0.4 lcc10-re0 member10-re0 10.11.0.5 lcc10-re1 member10-re1 10.11.0.6 lcc10-backup member10-backup #LCC 11 10.12.0.1 lcc11-master member11-master 10.12.0.4 lcc11-re0 member11-re0 10.12.0.5 lcc11-re1 member11-re1 10.12.0.6 lcc11-backup member11-backup #LCC 12 10.13.0.1 lcc12-master member12-master 10.13.0.4 lcc12-re0 member12-re0 10.13.0.5 lcc12-re1 member12-re1 10.13.0.6 lcc12-backup member12-backup #LCC 13 10.14.0.1 lcc13-master member13-master 10.14.0.4 lcc13-re0 member13-re0 10.14.0.5 lcc13-re1 member13-re1 10.14.0.6 lcc13-backup member13-backup #LCC 14 10.15.0.1 lcc14-master member14-master 10.15.0.4 lcc14-re0 member14-re0 10.15.0.5 lcc14-re1 member14-re1 10.15.0.6 lcc14-backup member14-backup #LCC 15 10.16.0.1 lcc15-master member15-master 10.16.0.4 lcc15-re0 member15-re0 10.16.0.5 lcc15-re1 member15-re1 10.16.0.6 lcc15-backup member15-backup #SFC 0 10.34.0.1 sfc0-master 10.34.0.4 sfc0-re0 10.34.0.5 sfc0-re1 #SFC 1 10.35.0.1 sfc1-master 10.35.0.4 sfc1-re0 10.35.0.5 sfc1-re1 #SFC 2 10.36.0.1 sfc2-master 10.36.0.4 sfc2-re0 10.36.0.5 sfc2-re1 #SFC 3 10.37.0.1 sfc3-master 10.37.0.4 sfc3-re0 10.37.0.5 sfc3-re1 #SFC 4 10.38.0.1 sfc4-master 10.38.0.4 sfc4-re0 10.38.0.5 sfc4-re1 # End of internal names personality_srx_mid_range_get-interface-information.xml000066400000000000000000000144241475361112400344500ustar00rootroot00000000000000py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply avs1.0 up up inet 254.0.0.254 0/0 inet6 fe80::199 em0.0 up up inet 10.0.0.1/8 10.0.0.4/8 128.0.0.1/2 128.0.0.4/2 inet6 fe80::200:ff:fe00:4/64 fec0::a:0:0:4/64 tnp 0x4 em1.0 up down inet 10.0.0.1/8 10.0.0.4/8 128.0.0.1/2 128.0.0.4/2 inet6 fe80::200:1ff:fe00:4/64 fec0::a:0:0:4/64 tnp 0x4 lo0.16385 up up inet personality_srx_mid_range_get-route-engine-information.xml000066400000000000000000000023761475361112400351140ustar00rootroot00000000000000py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply 0 master master (default) 1023 1023 43 0 0 4 0 96 RE-PPC-1200-A 2016-10-31 14:00:22 PDT 62 days, 43 minutes, 18 seconds Router rebooted after a normal shutdown. 0.01 0.02 0.00 py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/personality_t_command.xml000066400000000000000000000334721475361112400265330ustar00rootroot00000000000000 re0 ulam t1600 t1600 15.1R2.9 junos JUNOS Base OS boot [15.1R2.9] jbase JUNOS Base OS Software Suite [15.1R2.9] jplatform JUNOS platform Software Suite [15.1R2.9] jweb JUNOS Web Management [15.1R2.9] jruntime JUNOS Runtime Software Suite [15.1R2.9] jdocs JUNOS Online Documentation [15.1R2.9] jservices-aacl JUNOS Services AACL Container package [15.1R2.9] jservices-alg JUNOS Services Application Level Gateways [15.1R2.9] jservices-appid JUNOS AppId Services [15.1R2.9] jservices-bgf JUNOS Border Gateway Function package [15.1R2.9] jservices-cpcd JUNOS Services Captive Portal and Content Delivery Container package [15.1R2.9] jservices-hcm JUNOS Services HTTP Content Management package [15.1R2.9] jservices-idp JUNOS IDP Services [15.1R2.9] jservices-jflow JUNOS Services Jflow Container package [15.1R2.9] jservices-llpdf JUNOS Services LL-PDF Container package [15.1R2.9] jservices-mobile JUNOS Services MobileNext Software package [15.1R2.9] jservices-mss JUNOS Services Mobile Subscriber Service Container package [15.1R2.9] jservices-nat JUNOS Services NAT [15.1R2.9] jservices-ptsp JUNOS Services PTSP Container package [15.1R2.9] jservices-rpm JUNOS Services RPM [15.1R2.9] jservices-sfw JUNOS Services Stateful Firewall [15.1R2.9] jservices-voice JUNOS Voice Services Container package [15.1R2.9] jmacsec JUNOS Macsec Software Suite [15.1R2.9] jservices-crypto-base JUNOS Services Crypto [15.1R2.9] jservices-ssl JUNOS Services SSL [15.1R2.9] jservices-ipsec JUNOS Services IPSec [15.1R2.9] py-base-i386 JUNOS py-base-i386 [15.1R2.9] jkernel JUNOS Kernel Software Suite [15.1R2.9] jcrypto JUNOS Crypto Software Suite [15.1R2.9] jpfe-common JUNOS Packet Forwarding Engine Support (M/T/EX Common) [15.1R2.9] jpfe JUNOS Packet Forwarding Engine Support (T-Series) [15.1R2.9] jroute JUNOS Routing Software Suite [15.1R2.9] re1 ulam1 t1600 t1600 15.1R2.9 junos JUNOS Base OS boot [15.1R2.9] jbase JUNOS Base OS Software Suite [15.1R2.9] jplatform JUNOS platform Software Suite [15.1R2.9] jweb JUNOS Web Management [15.1R2.9] jruntime JUNOS Runtime Software Suite [15.1R2.9] jdocs JUNOS Online Documentation [15.1R2.9] jservices-aacl JUNOS Services AACL Container package [15.1R2.9] jservices-alg JUNOS Services Application Level Gateways [15.1R2.9] jservices-appid JUNOS AppId Services [15.1R2.9] jservices-bgf JUNOS Border Gateway Function package [15.1R2.9] jservices-cpcd JUNOS Services Captive Portal and Content Delivery Container package [15.1R2.9] jservices-hcm JUNOS Services HTTP Content Management package [15.1R2.9] jservices-idp JUNOS IDP Services [15.1R2.9] jservices-jflow JUNOS Services Jflow Container package [15.1R2.9] jservices-llpdf JUNOS Services LL-PDF Container package [15.1R2.9] jservices-mobile JUNOS Services MobileNext Software package [15.1R2.9] jservices-mss JUNOS Services Mobile Subscriber Service Container package [15.1R2.9] jservices-nat JUNOS Services NAT [15.1R2.9] jservices-ptsp JUNOS Services PTSP Container package [15.1R2.9] jservices-rpm JUNOS Services RPM [15.1R2.9] jservices-sfw JUNOS Services Stateful Firewall [15.1R2.9] jservices-voice JUNOS Voice Services Container package [15.1R2.9] jmacsec JUNOS Macsec Software Suite [15.1R2.9] jservices-crypto-base JUNOS Services Crypto [15.1R2.9] jservices-ssl JUNOS Services SSL [15.1R2.9] jservices-ipsec JUNOS Services IPSec [15.1R2.9] py-base-i386 JUNOS py-base-i386 [15.1R2.9] jkernel JUNOS Kernel Software Suite [15.1R2.9] jcrypto JUNOS Crypto Software Suite [15.1R2.9] jpfe-common JUNOS Packet Forwarding Engine Support (M/T/EX Common) [15.1R2.9] jpfe JUNOS Packet Forwarding Engine Support (T-Series) [15.1R2.9] jroute JUNOS Routing Software Suite [15.1R2.9] py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/personality_t_file-show.xml000066400000000000000000002042141475361112400270040ustar00rootroot00000000000000 #$Id: hosts.junos,v 1.7.72.1 2009-04-16 05:22:03 kdickman Exp $ # # File mapping AF_INET/AF_INET6 hostnames for REs on Single and Multichassis # systems # # This file is looked at before /etc/hosts by gethostbyname(3), # gethostbyname2(3) and getaddrinfo(3) # # The IP addresses in this file are only used for communication between REs # over the Internal Routing Instances # # WARNING: # # The names in this file are effectively reserved for internal use. # # New IP address format (RT_IRS_V3) # # Single Chassis Hostnames # 128.0.0.1 master 128.0.0.1 node 128.0.0.1 fwdd 128.0.0.1 member 128.0.0.1 pfem 128.0.0.2 scb 128.0.0.2 sbr 128.0.0.2 ssb 128.0.0.2 feb 128.0.0.2 cfeb0 128.0.0.2 cfeb 128.0.0.2 cpp0 128.0.0.3 cfeb1 128.0.0.3 cpp1 128.0.0.4 re0 128.0.0.5 re1 128.0.0.6 backup 128.0.0.8 sfm0 128.0.0.9 sfm1 128.0.0.10 sfm2 128.0.0.16 fpc0 128.0.0.17 fpc1 128.0.0.18 fpc2 128.0.0.19 fpc3 128.0.0.20 fpc4 128.0.0.21 fpc5 128.0.0.22 fpc6 128.0.0.23 fpc7 128.0.0.24 fpc8 128.0.0.25 fpc9 128.0.0.26 fpc10 128.0.0.27 fpc11 128.0.0.28 fpc12 128.0.0.29 fpc13 128.0.0.30 fpc14 128.0.0.31 fpc15 128.0.0.32 feb0 128.0.0.32 fpc16 128.0.0.33 feb1 128.0.0.33 fpc17 128.0.0.34 feb2 128.0.0.34 fpc18 128.0.0.35 feb3 128.0.0.35 fpc19 128.0.0.36 fpc20 128.0.0.36 feb4 128.0.0.37 feb5 128.0.0.37 fpc21 128.0.0.38 fpc22 128.0.0.39 fpc23 128.0.0.40 fpc24 128.0.0.41 fpc25 128.0.0.42 fpc26 128.0.0.43 fpc27 128.0.0.44 fpc28 128.0.0.45 fpc29 128.0.0.46 fpc30 128.0.0.47 fpc31 128.0.0.48 spmb0 128.0.0.49 spmb1 128.0.0.50 tfeb0 128.0.0.50 afeb0 128.0.0.53 esc0 128.0.0.54 esc1 128.0.0.55 esc0-ipmi 128.0.0.56 esc1-ipmi 128.0.1.16 fpc0.pic0 128.0.1.17 fpc1.pic0 128.0.1.18 fpc2.pic0 128.0.1.19 fpc3.pic0 128.0.1.20 fpc4.pic0 128.0.1.21 fpc5.pic0 128.0.1.22 fpc6.pic0 128.0.1.23 fpc7.pic0 128.0.1.24 fpc8.pic0 128.0.1.25 fpc9.pic0 128.0.1.26 fpc10.pic0 128.0.1.27 fpc11.pic0 128.0.1.28 fpc12.pic0 128.0.1.29 fpc13.pic0 128.0.1.30 fpc14.pic0 128.0.1.31 fpc15.pic0 128.0.1.32 fpc16.pic0 128.0.1.33 fpc17.pic0 128.0.1.34 fpc18.pic0 128.0.1.35 fpc19.pic0 128.0.1.36 fpc20.pic0 128.0.1.37 fpc21.pic0 128.0.1.38 fpc22.pic0 128.0.1.39 fpc23.pic0 128.0.1.40 fpc24.pic0 128.0.1.41 fpc25.pic0 128.0.1.42 fpc26.pic0 128.0.1.43 fpc27.pic0 128.0.1.44 fpc28.pic0 128.0.1.45 fpc29.pic0 128.0.1.46 fpc30.pic0 128.0.1.47 fpc31.pic0 128.0.2.16 fpc0.pic1 128.0.2.17 fpc1.pic1 128.0.2.18 fpc2.pic1 128.0.2.19 fpc3.pic1 128.0.2.20 fpc4.pic1 128.0.2.21 fpc5.pic1 128.0.2.22 fpc6.pic1 128.0.2.23 fpc7.pic1 128.0.2.24 fpc8.pic1 128.0.2.25 fpc9.pic1 128.0.2.26 fpc10.pic1 128.0.2.27 fpc11.pic1 128.0.2.28 fpc12.pic1 128.0.2.29 fpc13.pic1 128.0.2.30 fpc14.pic1 128.0.2.31 fpc15.pic1 128.0.2.32 fpc16.pic1 128.0.2.33 fpc17.pic1 128.0.2.34 fpc18.pic1 128.0.2.35 fpc19.pic1 128.0.2.36 fpc20.pic1 128.0.2.37 fpc21.pic1 128.0.2.38 fpc22.pic1 128.0.2.39 fpc23.pic1 128.0.2.40 fpc24.pic1 128.0.2.41 fpc25.pic1 128.0.2.42 fpc26.pic1 128.0.2.43 fpc27.pic1 128.0.2.44 fpc28.pic1 128.0.2.45 fpc29.pic1 128.0.2.46 fpc30.pic1 128.0.2.47 fpc31.pic1 128.0.3.16 fpc0.pic2 128.0.3.17 fpc1.pic2 128.0.3.18 fpc2.pic2 128.0.3.19 fpc3.pic2 128.0.3.20 fpc4.pic2 128.0.3.21 fpc5.pic2 128.0.3.22 fpc6.pic2 128.0.3.23 fpc7.pic2 128.0.3.24 fpc8.pic2 128.0.3.25 fpc9.pic2 128.0.3.26 fpc10.pic2 128.0.3.27 fpc11.pic2 128.0.3.28 fpc12.pic2 128.0.3.29 fpc13.pic2 128.0.3.30 fpc14.pic2 128.0.3.31 fpc15.pic2 128.0.4.16 fpc0.pic3 128.0.4.17 fpc1.pic3 128.0.4.18 fpc2.pic3 128.0.4.19 fpc3.pic3 128.0.4.20 fpc4.pic3 128.0.4.21 fpc5.pic3 128.0.4.22 fpc6.pic3 128.0.4.23 fpc7.pic3 128.0.4.24 fpc8.pic3 128.0.4.25 fpc9.pic3 128.0.4.26 fpc10.pic3 128.0.4.27 fpc11.pic3 128.0.4.28 fpc12.pic3 128.0.4.29 fpc13.pic3 128.0.4.30 fpc14.pic3 128.0.4.31 fpc15.pic3 # # DCF-Root Hostname # 128.0.130.2 dcf-root # # Multi Chassis Hostnames # #SCC 144.0.0.1 scc-master 144.0.0.4 scc-re0 144.0.0.5 scc-re1 144.0.0.6 scc-backup 144.0.0.48 scc-spmb0 144.0.0.49 scc-spmb1 #LCC 0 (or MEMBER 0 on Virtual Chassis) 129.0.0.1 lcc0-master member0-master member0 129.0.0.4 lcc0-re0 member0-re0 129.0.0.5 lcc0-re1 member0-re1 129.0.0.6 lcc0-backup member0-backup 129.0.0.16 member0-fpc0 129.0.0.17 member0-fpc1 129.0.0.18 member0-fpc2 129.0.0.19 member0-fpc3 129.0.0.20 member0-fpc4 129.0.0.21 member0-fpc5 129.0.0.22 member0-fpc6 129.0.0.23 member0-fpc7 129.0.0.24 member0-fpc8 129.0.0.25 member0-fpc9 129.0.0.26 member0-fpc10 129.0.0.27 member0-fpc11 129.0.0.28 member0-fpc12 129.0.0.29 member0-fpc13 129.0.0.30 member0-fpc14 129.0.0.31 member0-fpc15 129.0.0.32 member0-fpc16 129.0.0.33 member0-fpc17 129.0.0.34 member0-fpc18 129.0.0.35 member0-fpc19 129.0.0.36 member0-fpc20 129.0.0.37 member0-fpc21 129.0.0.38 member0-fpc22 129.0.0.39 member0-fpc23 129.0.0.40 member0-fpc24 129.0.0.41 member0-fpc25 129.0.0.42 member0-fpc26 129.0.0.43 member0-fpc27 129.0.0.44 member0-fpc28 129.0.0.45 member0-fpc29 129.0.0.46 member0-fpc30 129.0.0.47 member0-fpc31 129.0.0.6 lcc0-backup 129.0.0.16 lcc0-fpc0 129.0.0.17 lcc0-fpc1 129.0.0.18 lcc0-fpc2 129.0.0.19 lcc0-fpc3 129.0.0.20 lcc0-fpc4 129.0.0.21 lcc0-fpc5 129.0.0.22 lcc0-fpc6 129.0.0.23 lcc0-fpc7 129.0.0.48 lcc0-spmb0 129.0.0.49 lcc0-spmb1 #LCC 1 (or MEMBER 1 on Virtual Chassis) 130.0.0.1 lcc1-master member1-master member1 130.0.0.4 lcc1-re0 member1-re0 130.0.0.5 lcc1-re1 member1-re1 130.0.0.6 lcc1-backup member1-backup 130.0.0.16 member1-fpc0 130.0.0.17 member1-fpc1 130.0.0.18 member1-fpc2 130.0.0.19 member1-fpc3 130.0.0.20 member1-fpc4 130.0.0.21 member1-fpc5 130.0.0.22 member1-fpc6 130.0.0.23 member1-fpc7 130.0.0.24 member1-fpc8 130.0.0.25 member1-fpc9 130.0.0.26 member1-fpc10 130.0.0.27 member1-fpc11 130.0.0.28 member1-fpc12 130.0.0.29 member1-fpc13 130.0.0.30 member1-fpc14 130.0.0.31 member1-fpc15 130.0.0.32 member1-fpc16 130.0.0.33 member1-fpc17 130.0.0.34 member1-fpc18 130.0.0.35 member1-fpc19 130.0.0.36 member1-fpc20 130.0.0.37 member1-fpc21 130.0.0.38 member1-fpc22 130.0.0.39 member1-fpc23 130.0.0.40 member1-fpc24 130.0.0.41 member1-fpc25 130.0.0.42 member1-fpc26 130.0.0.43 member1-fpc27 130.0.0.44 member1-fpc28 130.0.0.45 member1-fpc29 130.0.0.46 member1-fpc30 130.0.0.47 member1-fpc31 130.0.0.6 lcc1-backup 130.0.0.16 lcc1-fpc0 130.0.0.17 lcc1-fpc1 130.0.0.18 lcc1-fpc2 130.0.0.19 lcc1-fpc3 130.0.0.20 lcc1-fpc4 130.0.0.21 lcc1-fpc5 130.0.0.22 lcc1-fpc6 130.0.0.23 lcc1-fpc7 130.0.0.48 lcc1-spmb0 130.0.0.49 lcc1-spmb1 #LCC 2 (or MEMBER 2 on Virtual Chassis) 131.0.0.1 lcc2-master member2-master member2 131.0.0.4 lcc2-re0 member2-re0 131.0.0.5 lcc2-re1 member2-re1 131.0.0.6 lcc2-backup member2-backup 131.0.0.16 member2-fpc0 131.0.0.17 member2-fpc1 131.0.0.18 member2-fpc2 131.0.0.19 member2-fpc3 131.0.0.20 member2-fpc4 131.0.0.21 member2-fpc5 131.0.0.22 member2-fpc6 131.0.0.23 member2-fpc7 131.0.0.24 member2-fpc8 131.0.0.25 member2-fpc9 131.0.0.26 member2-fpc10 131.0.0.27 member2-fpc11 131.0.0.28 member2-fpc12 131.0.0.29 member2-fpc13 131.0.0.30 member2-fpc14 131.0.0.31 member2-fpc15 131.0.0.32 member2-fpc16 131.0.0.33 member2-fpc17 131.0.0.34 member2-fpc18 131.0.0.35 member2-fpc19 131.0.0.36 member2-fpc20 131.0.0.37 member2-fpc21 131.0.0.38 member2-fpc22 131.0.0.39 member2-fpc23 131.0.0.40 member2-fpc24 131.0.0.41 member2-fpc25 131.0.0.42 member2-fpc26 131.0.0.43 member2-fpc27 131.0.0.44 member2-fpc28 131.0.0.45 member2-fpc29 131.0.0.46 member2-fpc30 131.0.0.47 member2-fpc31 131.0.0.6 lcc2-backup 131.0.0.16 lcc2-fpc0 131.0.0.17 lcc2-fpc1 131.0.0.18 lcc2-fpc2 131.0.0.19 lcc2-fpc3 131.0.0.20 lcc2-fpc4 131.0.0.21 lcc2-fpc5 131.0.0.22 lcc2-fpc6 131.0.0.23 lcc2-fpc7 131.0.0.48 lcc2-spmb0 131.0.0.49 lcc20-spmb1 #LCC 3 (or MEMBER 3 on Virtual Chassis) 132.0.0.1 lcc3-master member3-master member3 132.0.0.4 lcc3-re0 member3-re0 132.0.0.5 lcc3-re1 member3-re1 132.0.0.6 lcc3-backup member3-backup 132.0.0.16 member3-fpc0 132.0.0.17 member3-fpc1 132.0.0.18 member3-fpc2 132.0.0.19 member3-fpc3 132.0.0.20 member3-fpc4 132.0.0.21 member3-fpc5 132.0.0.22 member3-fpc6 132.0.0.23 member3-fpc7 132.0.0.24 member3-fpc8 132.0.0.25 member3-fpc9 132.0.0.26 member3-fpc10 132.0.0.27 member3-fpc11 132.0.0.28 member3-fpc12 132.0.0.29 member3-fpc13 132.0.0.30 member3-fpc14 132.0.0.31 member3-fpc15 132.0.0.32 member3-fpc16 132.0.0.33 member3-fpc17 132.0.0.34 member3-fpc18 132.0.0.35 member3-fpc19 132.0.0.36 member3-fpc20 132.0.0.37 member3-fpc21 132.0.0.38 member3-fpc22 132.0.0.39 member3-fpc23 132.0.0.40 member3-fpc24 132.0.0.41 member3-fpc25 132.0.0.42 member3-fpc26 132.0.0.43 member3-fpc27 132.0.0.44 member3-fpc28 132.0.0.45 member3-fpc29 132.0.0.46 member3-fpc30 132.0.0.47 member3-fpc31 132.0.0.6 lcc3-backup 132.0.0.16 lcc3-fpc0 132.0.0.17 lcc3-fpc1 132.0.0.18 lcc3-fpc2 132.0.0.19 lcc3-fpc3 132.0.0.20 lcc3-fpc4 132.0.0.21 lcc3-fpc5 132.0.0.22 lcc3-fpc6 132.0.0.23 lcc3-fpc7 132.0.0.48 lcc3-spmb0 132.0.0.49 lcc3-spmb1 #LCC 4 (or MEMBER 4 on Virtual Chassis) 133.0.0.1 lcc4-master member4-master member4 133.0.0.4 lcc4-re0 member4-re0 133.0.0.5 lcc4-re1 member4-re1 133.0.0.6 lcc4-backup member4-backup 133.0.0.16 member4-fpc0 133.0.0.17 member4-fpc1 133.0.0.18 member4-fpc2 133.0.0.19 member4-fpc3 133.0.0.20 member4-fpc4 133.0.0.21 member4-fpc5 133.0.0.22 member4-fpc6 133.0.0.23 member4-fpc7 133.0.0.24 member4-fpc8 133.0.0.25 member4-fpc9 133.0.0.26 member4-fpc10 133.0.0.27 member4-fpc11 133.0.0.28 member4-fpc12 133.0.0.29 member4-fpc13 133.0.0.30 member4-fpc14 133.0.0.31 member4-fpc15 133.0.0.32 member4-fpc16 133.0.0.33 member4-fpc17 133.0.0.34 member4-fpc18 133.0.0.35 member4-fpc19 133.0.0.36 member4-fpc20 133.0.0.37 member4-fpc21 133.0.0.38 member4-fpc22 133.0.0.39 member4-fpc23 133.0.0.40 member4-fpc24 133.0.0.41 member4-fpc25 133.0.0.42 member4-fpc26 133.0.0.43 member4-fpc27 133.0.0.44 member4-fpc28 133.0.0.45 member4-fpc29 133.0.0.46 member4-fpc30 133.0.0.47 member4-fpc31 133.0.0.6 lcc4-backup 133.0.0.16 lcc4-fpc0 133.0.0.17 lcc4-fpc1 133.0.0.18 lcc4-fpc2 133.0.0.19 lcc4-fpc3 133.0.0.20 lcc4-fpc4 133.0.0.21 lcc4-fpc5 133.0.0.22 lcc4-fpc6 133.0.0.23 lcc4-fpc7 133.0.0.48 lcc4-spmb0 133.0.0.49 lcc4-spmb1 #LCC 5 (or MEMBER 5 on Virtual Chassis) 134.0.0.1 lcc5-master member5-master member5 134.0.0.4 lcc5-re0 member5-re0 134.0.0.5 lcc5-re1 member5-re1 134.0.0.6 lcc5-backup member5-backup 134.0.0.16 member5-fpc0 134.0.0.17 member5-fpc1 134.0.0.18 member5-fpc2 134.0.0.19 member5-fpc3 134.0.0.20 member5-fpc4 134.0.0.21 member5-fpc5 134.0.0.22 member5-fpc6 134.0.0.23 member5-fpc7 134.0.0.24 member5-fpc8 134.0.0.25 member5-fpc9 134.0.0.26 member5-fpc10 134.0.0.27 member5-fpc11 134.0.0.28 member5-fpc12 134.0.0.29 member5-fpc13 134.0.0.30 member5-fpc14 134.0.0.31 member5-fpc15 134.0.0.32 member5-fpc16 134.0.0.33 member5-fpc17 134.0.0.34 member5-fpc18 134.0.0.35 member5-fpc19 134.0.0.36 member5-fpc20 134.0.0.37 member5-fpc21 134.0.0.38 member5-fpc22 134.0.0.39 member5-fpc23 134.0.0.40 member5-fpc24 134.0.0.41 member5-fpc25 134.0.0.42 member5-fpc26 134.0.0.43 member5-fpc27 134.0.0.44 member5-fpc28 134.0.0.45 member5-fpc29 134.0.0.46 member5-fpc30 134.0.0.47 member5-fpc31 134.0.0.6 lcc5-backup 134.0.0.16 lcc5-fpc0 134.0.0.17 lcc5-fpc1 134.0.0.18 lcc5-fpc2 134.0.0.19 lcc5-fpc3 134.0.0.20 lcc5-fpc4 134.0.0.21 lcc5-fpc5 134.0.0.22 lcc5-fpc6 134.0.0.23 lcc5-fpc7 134.0.0.48 lcc5-spmb0 134.0.0.49 lcc5-spmb1 #LCC 6 (or MEMBER 6 on Virtual Chassis) 135.0.0.1 lcc6-master member6-master member6 135.0.0.4 lcc6-re0 member6-re0 135.0.0.5 lcc6-re1 member6-re1 135.0.0.6 lcc6-backup member6-backup 135.0.0.16 member6-fpc0 135.0.0.17 member6-fpc1 135.0.0.18 member6-fpc2 135.0.0.19 member6-fpc3 135.0.0.20 member6-fpc4 135.0.0.21 member6-fpc5 135.0.0.22 member6-fpc6 135.0.0.23 member6-fpc7 135.0.0.24 member6-fpc8 135.0.0.25 member6-fpc9 135.0.0.26 member6-fpc10 135.0.0.27 member6-fpc11 135.0.0.28 member6-fpc12 135.0.0.29 member6-fpc13 135.0.0.30 member6-fpc14 135.0.0.31 member6-fpc15 135.0.0.32 member6-fpc16 135.0.0.33 member6-fpc17 135.0.0.34 member6-fpc18 135.0.0.35 member6-fpc19 135.0.0.36 member6-fpc20 135.0.0.37 member6-fpc21 135.0.0.38 member6-fpc22 135.0.0.39 member6-fpc23 135.0.0.40 member6-fpc24 135.0.0.41 member6-fpc25 135.0.0.42 member6-fpc26 135.0.0.43 member6-fpc27 135.0.0.44 member6-fpc28 135.0.0.45 member6-fpc29 135.0.0.46 member6-fpc30 135.0.0.47 member6-fpc31 135.0.0.6 lcc6-backup 135.0.0.16 lcc6-fpc0 135.0.0.17 lcc6-fpc1 135.0.0.18 lcc6-fpc2 135.0.0.19 lcc6-fpc3 135.0.0.20 lcc6-fpc4 135.0.0.21 lcc6-fpc5 135.0.0.22 lcc6-fpc6 135.0.0.23 lcc6-fpc7 135.0.0.48 lcc6-spmb0 135.0.0.49 lcc6-spmb1 #LCC 7 (or MEMBER 7 on Virtual Chassis) 136.0.0.1 lcc7-master member7-master member7 136.0.0.4 lcc7-re0 member7-re0 136.0.0.5 lcc7-re1 member7-re1 136.0.0.6 lcc7-backup member7-backup 136.0.0.16 member7-fpc0 136.0.0.17 member7-fpc1 136.0.0.18 member7-fpc2 136.0.0.19 member7-fpc3 136.0.0.20 member7-fpc4 136.0.0.21 member7-fpc5 136.0.0.22 member7-fpc6 136.0.0.23 member7-fpc7 136.0.0.24 member7-fpc8 136.0.0.25 member7-fpc9 136.0.0.26 member7-fpc10 136.0.0.27 member7-fpc11 136.0.0.28 member7-fpc12 136.0.0.29 member7-fpc13 136.0.0.30 member7-fpc14 136.0.0.31 member7-fpc15 136.0.0.32 member7-fpc16 136.0.0.33 member7-fpc17 136.0.0.34 member7-fpc18 136.0.0.35 member7-fpc19 136.0.0.36 member7-fpc20 136.0.0.37 member7-fpc21 136.0.0.38 member7-fpc22 136.0.0.39 member7-fpc23 136.0.0.40 member7-fpc24 136.0.0.41 member7-fpc25 136.0.0.42 member7-fpc26 136.0.0.43 member7-fpc27 136.0.0.44 member7-fpc28 136.0.0.45 member7-fpc29 136.0.0.46 member7-fpc30 136.0.0.47 member7-fpc31 136.0.0.6 lcc7-backup 136.0.0.16 lcc7-fpc0 136.0.0.17 lcc7-fpc1 136.0.0.18 lcc7-fpc2 136.0.0.19 lcc7-fpc3 136.0.0.20 lcc7-fpc4 136.0.0.21 lcc7-fpc5 136.0.0.22 lcc7-fpc6 136.0.0.23 lcc7-fpc7 136.0.0.48 lcc7-spmb0 136.0.0.49 lcc7-spmb1 137.0.0.6 lcc8-backup 137.0.0.16 lcc8-fpc0 137.0.0.17 lcc8-fpc1 137.0.0.18 lcc8-fpc2 137.0.0.19 lcc8-fpc3 137.0.0.20 lcc8-fpc4 137.0.0.21 lcc8-fpc5 137.0.0.22 lcc8-fpc6 137.0.0.23 lcc8-fpc7 137.0.0.48 lcc8-spmb0 137.0.0.49 lcc8-spmb1 #LCC 8 (or MEMBER 8 on Virtual Chassis) 137.0.0.1 lcc8-master member8-master member8 137.0.0.4 lcc8-re0 member8-re0 137.0.0.5 lcc8-re1 member8-re1 137.0.0.6 lcc8-backup member8-backup 137.0.0.16 member8-fpc0 137.0.0.17 member8-fpc1 137.0.0.18 member8-fpc2 137.0.0.19 member8-fpc3 137.0.0.20 member8-fpc4 137.0.0.21 member8-fpc5 137.0.0.22 member8-fpc6 137.0.0.23 member8-fpc7 137.0.0.24 member8-fpc8 137.0.0.25 member8-fpc9 137.0.0.26 member8-fpc10 137.0.0.27 member8-fpc11 137.0.0.28 member8-fpc12 137.0.0.29 member8-fpc13 137.0.0.30 member8-fpc14 137.0.0.31 member8-fpc15 137.0.0.32 member8-fpc16 137.0.0.33 member8-fpc17 137.0.0.34 member8-fpc18 137.0.0.35 member8-fpc19 137.0.0.36 member8-fpc20 137.0.0.37 member8-fpc21 137.0.0.38 member8-fpc22 137.0.0.39 member8-fpc23 137.0.0.40 member8-fpc24 137.0.0.41 member8-fpc25 137.0.0.42 member8-fpc26 137.0.0.43 member8-fpc27 137.0.0.44 member8-fpc28 137.0.0.45 member8-fpc29 137.0.0.46 member8-fpc30 137.0.0.47 member8-fpc31 138.0.0.6 lcc9-backup 138.0.0.16 lcc9-fpc0 138.0.0.17 lcc9-fpc1 138.0.0.18 lcc9-fpc2 138.0.0.19 lcc9-fpc3 138.0.0.20 lcc9-fpc4 138.0.0.21 lcc9-fpc5 138.0.0.22 lcc9-fpc6 138.0.0.23 lcc9-fpc7 138.0.0.48 lcc9-spmb0 138.0.0.49 lcc9-spmb1 #LCC 9 (or MEMBER 9 on Virtual Chassis) 138.0.0.1 lcc9-master member9-master member9 138.0.0.4 lcc9-re0 member9-re0 138.0.0.5 lcc9-re1 member9-re1 138.0.0.6 lcc9-backup member9-backup 138.0.0.16 member9-fpc0 138.0.0.17 member9-fpc1 138.0.0.18 member9-fpc2 138.0.0.19 member9-fpc3 138.0.0.20 member9-fpc4 138.0.0.21 member9-fpc5 138.0.0.22 member9-fpc6 138.0.0.23 member9-fpc7 138.0.0.24 member9-fpc8 138.0.0.25 member9-fpc9 138.0.0.26 member9-fpc10 138.0.0.27 member9-fpc11 138.0.0.28 member9-fpc12 138.0.0.29 member9-fpc13 138.0.0.30 member9-fpc14 138.0.0.31 member9-fpc15 138.0.0.32 member9-fpc16 138.0.0.33 member9-fpc17 138.0.0.34 member9-fpc18 138.0.0.35 member9-fpc19 138.0.0.36 member9-fpc20 138.0.0.37 member9-fpc21 138.0.0.38 member9-fpc22 138.0.0.39 member9-fpc23 138.0.0.40 member9-fpc24 138.0.0.41 member9-fpc25 138.0.0.42 member9-fpc26 138.0.0.43 member9-fpc27 138.0.0.44 member9-fpc28 138.0.0.45 member9-fpc29 138.0.0.46 member9-fpc30 138.0.0.47 member9-fpc31 139.0.0.6 lcc10-backup 139.0.0.16 lcc10-fpc0 139.0.0.17 lcc10-fpc1 139.0.0.18 lcc10-fpc2 139.0.0.19 lcc10-fpc3 139.0.0.20 lcc10-fpc4 139.0.0.21 lcc10-fpc5 139.0.0.22 lcc10-fpc6 139.0.0.23 lcc10-fpc7 139.0.0.48 lcc10-spmb0 139.0.0.49 lcc10-spmb1 #LCC 10 (or MEMBER 10 on Virtual Chassis) 139.0.0.1 lcc10-master member10-master 139.0.0.4 lcc10-re0 member10-re0 139.0.0.5 lcc10-re1 member10-re1 139.0.0.6 lcc10-backup member10-backup 139.0.0.16 member10-fpc0 139.0.0.17 member10-fpc1 139.0.0.18 member10-fpc2 139.0.0.19 member10-fpc3 139.0.0.20 member10-fpc4 139.0.0.21 member10-fpc5 139.0.0.22 member10-fpc6 139.0.0.23 member10-fpc7 139.0.0.24 member10-fpc8 139.0.0.25 member10-fpc9 139.0.0.26 member10-fpc10 139.0.0.27 member10-fpc11 139.0.0.28 member10-fpc12 139.0.0.29 member10-fpc13 139.0.0.30 member10-fpc14 139.0.0.31 member10-fpc15 139.0.0.32 member10-fpc16 139.0.0.33 member10-fpc17 139.0.0.34 member10-fpc18 139.0.0.35 member10-fpc19 139.0.0.36 member10-fpc20 139.0.0.37 member10-fpc21 139.0.0.38 member10-fpc22 139.0.0.39 member10-fpc23 139.0.0.40 member10-fpc24 139.0.0.41 member10-fpc25 139.0.0.42 member10-fpc26 139.0.0.43 member10-fpc27 139.0.0.44 member10-fpc28 139.0.0.45 member10-fpc29 139.0.0.46 member10-fpc30 139.0.0.47 member10-fpc31 140.0.0.6 lcc11-backup 140.0.0.16 lcc11-fpc0 140.0.0.17 lcc11-fpc1 140.0.0.18 lcc11-fpc2 140.0.0.19 lcc11-fpc3 140.0.0.20 lcc11-fpc4 140.0.0.21 lcc11-fpc5 140.0.0.22 lcc11-fpc6 140.0.0.23 lcc11-fpc7 140.0.0.48 lcc11-spmb0 140.0.0.49 lcc11-spmb1 #LCC 11 (or MEMBER 11 on Virtual Chassis) 140.0.0.1 lcc11-master member11-master 140.0.0.4 lcc11-re0 member11-re0 140.0.0.5 lcc11-re1 member11-re1 140.0.0.6 lcc11-backup member11-backup 140.0.0.16 member11-fpc0 140.0.0.17 member11-fpc1 140.0.0.18 member11-fpc2 140.0.0.19 member11-fpc3 140.0.0.20 member11-fpc4 140.0.0.21 member11-fpc5 140.0.0.22 member11-fpc6 140.0.0.23 member11-fpc7 140.0.0.24 member11-fpc8 140.0.0.25 member11-fpc9 140.0.0.26 member11-fpc10 140.0.0.27 member11-fpc11 140.0.0.28 member11-fpc12 140.0.0.29 member11-fpc13 140.0.0.30 member11-fpc14 140.0.0.31 member11-fpc15 140.0.0.32 member11-fpc16 140.0.0.33 member11-fpc17 140.0.0.34 member11-fpc18 140.0.0.35 member11-fpc19 140.0.0.36 member11-fpc20 140.0.0.37 member11-fpc21 140.0.0.38 member11-fpc22 140.0.0.39 member11-fpc23 140.0.0.40 member11-fpc24 140.0.0.41 member11-fpc25 140.0.0.42 member11-fpc26 140.0.0.43 member11-fpc27 140.0.0.44 member11-fpc28 140.0.0.45 member11-fpc29 140.0.0.46 member11-fpc30 140.0.0.47 member11-fpc31 141.0.0.6 lcc12-backup 141.0.0.16 lcc12-fpc0 141.0.0.17 lcc12-fpc1 141.0.0.18 lcc12-fpc2 141.0.0.19 lcc12-fpc3 141.0.0.20 lcc12-fpc4 141.0.0.21 lcc12-fpc5 141.0.0.22 lcc12-fpc6 141.0.0.23 lcc12-fpc7 141.0.0.48 lcc12-spmb0 141.0.0.49 lcc12-spmb1 #LCC 12 (or MEMBER 12 on Virtual Chassis) 141.0.0.1 lcc12-master member12-master 141.0.0.4 lcc12-re0 member12-re0 141.0.0.5 lcc12-re1 member12-re1 141.0.0.6 lcc12-backup member12-backup 141.0.0.16 member12-fpc0 141.0.0.17 member12-fpc1 141.0.0.18 member12-fpc2 141.0.0.19 member12-fpc3 141.0.0.20 member12-fpc4 141.0.0.21 member12-fpc5 141.0.0.22 member12-fpc6 141.0.0.23 member12-fpc7 141.0.0.24 member12-fpc8 141.0.0.25 member12-fpc9 141.0.0.26 member12-fpc10 141.0.0.27 member12-fpc11 141.0.0.28 member12-fpc12 141.0.0.29 member12-fpc13 141.0.0.30 member12-fpc14 141.0.0.31 member12-fpc15 141.0.0.32 member12-fpc16 141.0.0.33 member12-fpc17 141.0.0.34 member12-fpc18 141.0.0.35 member12-fpc19 141.0.0.36 member12-fpc20 141.0.0.37 member12-fpc21 141.0.0.38 member12-fpc22 141.0.0.39 member12-fpc23 141.0.0.40 member12-fpc24 141.0.0.41 member12-fpc25 141.0.0.42 member12-fpc26 141.0.0.43 member12-fpc27 141.0.0.44 member12-fpc28 141.0.0.45 member12-fpc29 141.0.0.46 member12-fpc30 141.0.0.47 member12-fpc31 142.0.0.6 lcc13-backup 142.0.0.16 lcc13-fpc0 142.0.0.17 lcc13-fpc1 142.0.0.18 lcc13-fpc2 142.0.0.19 lcc13-fpc3 142.0.0.20 lcc13-fpc4 142.0.0.21 lcc13-fpc5 142.0.0.22 lcc13-fpc6 142.0.0.23 lcc13-fpc7 142.0.0.48 lcc13-spmb0 142.0.0.49 lcc13-spmb1 #LCC 13 (or MEMBER 13 on Virtual Chassis) 142.0.0.1 lcc13-master member13-master 142.0.0.4 lcc13-re0 member13-re0 142.0.0.5 lcc13-re1 member13-re1 142.0.0.6 lcc13-backup member13-backup 142.0.0.16 member13-fpc0 142.0.0.17 member13-fpc1 142.0.0.18 member13-fpc2 142.0.0.19 member13-fpc3 142.0.0.20 member13-fpc4 142.0.0.21 member13-fpc5 142.0.0.22 member13-fpc6 142.0.0.23 member13-fpc7 142.0.0.24 member13-fpc8 142.0.0.25 member13-fpc9 142.0.0.26 member13-fpc10 142.0.0.27 member13-fpc11 142.0.0.28 member13-fpc12 142.0.0.29 member13-fpc13 142.0.0.30 member13-fpc14 142.0.0.31 member13-fpc15 142.0.0.32 member13-fpc16 142.0.0.33 member13-fpc17 142.0.0.34 member13-fpc18 142.0.0.35 member13-fpc19 142.0.0.36 member13-fpc20 142.0.0.37 member13-fpc21 142.0.0.38 member13-fpc22 142.0.0.39 member13-fpc23 142.0.0.40 member13-fpc24 142.0.0.41 member13-fpc25 142.0.0.42 member13-fpc26 142.0.0.43 member13-fpc27 142.0.0.44 member13-fpc28 142.0.0.45 member13-fpc29 142.0.0.46 member13-fpc30 142.0.0.47 member13-fpc31 143.0.0.6 lcc14-backup 143.0.0.16 lcc14-fpc0 143.0.0.17 lcc14-fpc1 143.0.0.18 lcc14-fpc2 143.0.0.19 lcc14-fpc3 143.0.0.20 lcc14-fpc4 143.0.0.21 lcc14-fpc5 143.0.0.22 lcc14-fpc6 143.0.0.23 lcc14-fpc7 143.0.0.48 lcc14-spmb0 143.0.0.49 lcc14-spmb1 #LCC 14 (or MEMBER 14 on Virtual Chassis) 143.0.0.1 lcc14-master member14-master 143.0.0.4 lcc14-re0 member14-re0 143.0.0.5 lcc14-re1 member14-re1 143.0.0.6 lcc14-backup member14-backup 143.0.0.16 member14-fpc0 143.0.0.17 member14-fpc1 143.0.0.18 member14-fpc2 143.0.0.19 member14-fpc3 143.0.0.20 member14-fpc4 143.0.0.21 member14-fpc5 143.0.0.22 member14-fpc6 143.0.0.23 member14-fpc7 143.0.0.24 member14-fpc8 143.0.0.25 member14-fpc9 143.0.0.26 member14-fpc10 143.0.0.27 member14-fpc11 143.0.0.28 member14-fpc12 143.0.0.29 member14-fpc13 143.0.0.30 member14-fpc14 143.0.0.31 member14-fpc15 143.0.0.32 member14-fpc16 143.0.0.33 member14-fpc17 143.0.0.34 member14-fpc18 143.0.0.35 member14-fpc19 143.0.0.36 member14-fpc20 143.0.0.37 member14-fpc21 143.0.0.38 member14-fpc22 143.0.0.39 member14-fpc23 143.0.0.40 member14-fpc24 143.0.0.41 member14-fpc25 143.0.0.42 member14-fpc26 143.0.0.43 member14-fpc27 143.0.0.44 member14-fpc28 143.0.0.45 member14-fpc29 143.0.0.46 member14-fpc30 143.0.0.47 member14-fpc31 144.0.0.6 lcc15-backup 144.0.0.16 lcc15-fpc0 144.0.0.17 lcc15-fpc1 144.0.0.18 lcc15-fpc2 144.0.0.19 lcc15-fpc3 144.0.0.20 lcc15-fpc4 144.0.0.21 lcc15-fpc5 144.0.0.22 lcc15-fpc6 144.0.0.23 lcc15-fpc7 144.0.0.48 lcc15-spmb0 144.0.0.49 lcc15-spmb1 #LCC 15 (or MEMBER 15 on Virtual Chassis) 144.0.0.1 lcc15-master member15-master 144.0.0.4 lcc15-re0 member15-re0 144.0.0.5 lcc15-re1 member15-re1 144.0.0.6 lcc15-backup member15-backup 144.0.0.16 member15-fpc0 144.0.0.17 member15-fpc1 144.0.0.18 member15-fpc2 144.0.0.19 member15-fpc3 144.0.0.20 member15-fpc4 144.0.0.21 member15-fpc5 144.0.0.22 member15-fpc6 144.0.0.23 member15-fpc7 144.0.0.24 member15-fpc8 144.0.0.25 member15-fpc9 144.0.0.26 member15-fpc10 144.0.0.27 member15-fpc11 144.0.0.28 member15-fpc12 144.0.0.29 member15-fpc13 144.0.0.30 member15-fpc14 144.0.0.31 member15-fpc15 144.0.0.32 member15-fpc16 144.0.0.33 member15-fpc17 144.0.0.34 member15-fpc18 144.0.0.35 member15-fpc19 144.0.0.36 member15-fpc20 144.0.0.37 member15-fpc21 144.0.0.38 member15-fpc22 144.0.0.39 member15-fpc23 144.0.0.40 member15-fpc24 144.0.0.41 member15-fpc25 144.0.0.42 member15-fpc26 144.0.0.43 member15-fpc27 144.0.0.44 member15-fpc28 144.0.0.45 member15-fpc29 144.0.0.46 member15-fpc30 144.0.0.47 member15-fpc31 #LCC 16 (or MEMBER 16 on Virtual Chassis) 145.0.0.1 lcc16-master member16-master 145.0.0.4 lcc16-re0 member16-re0 145.0.0.5 lcc16-re1 member16-re1 145.0.0.6 lcc16-backup member16-backup 145.0.0.16 member16-fpc0 145.0.0.17 member16-fpc1 145.0.0.18 member16-fpc2 145.0.0.19 member16-fpc3 145.0.0.20 member16-fpc4 145.0.0.21 member16-fpc5 145.0.0.22 member16-fpc6 145.0.0.23 member16-fpc7 145.0.0.24 member16-fpc8 145.0.0.25 member16-fpc9 145.0.0.26 member16-fpc10 145.0.0.27 member16-fpc11 145.0.0.28 member16-fpc12 145.0.0.29 member16-fpc13 145.0.0.30 member16-fpc14 145.0.0.31 member16-fpc15 145.0.0.32 member16-fpc16 145.0.0.33 member16-fpc17 145.0.0.34 member16-fpc18 145.0.0.35 member16-fpc19 145.0.0.36 member16-fpc20 145.0.0.37 member16-fpc21 145.0.0.38 member16-fpc22 145.0.0.39 member16-fpc23 145.0.0.40 member16-fpc24 145.0.0.41 member16-fpc25 145.0.0.42 member16-fpc26 145.0.0.43 member16-fpc27 145.0.0.44 member16-fpc28 145.0.0.45 member16-fpc29 145.0.0.46 member16-fpc30 145.0.0.47 member16-fpc31 #LCC 17 (or MEMBER 17 on Virtual Chassis) 146.0.0.1 lcc17-master member17-master 146.0.0.4 lcc17-re0 member17-re0 146.0.0.5 lcc17-re1 member17-re1 146.0.0.6 lcc17-backup member17-backup 146.0.0.16 member17-fpc0 146.0.0.17 member17-fpc1 146.0.0.18 member17-fpc2 146.0.0.19 member17-fpc3 146.0.0.20 member17-fpc4 146.0.0.21 member17-fpc5 146.0.0.22 member17-fpc6 146.0.0.23 member17-fpc7 146.0.0.24 member17-fpc8 146.0.0.25 member17-fpc9 146.0.0.26 member17-fpc10 146.0.0.27 member17-fpc11 146.0.0.28 member17-fpc12 146.0.0.29 member17-fpc13 146.0.0.30 member17-fpc14 146.0.0.31 member17-fpc15 146.0.0.32 member17-fpc16 146.0.0.33 member17-fpc17 146.0.0.34 member17-fpc18 146.0.0.35 member17-fpc19 146.0.0.36 member17-fpc20 146.0.0.37 member17-fpc21 146.0.0.38 member17-fpc22 146.0.0.39 member17-fpc23 146.0.0.40 member17-fpc24 146.0.0.41 member17-fpc25 146.0.0.42 member17-fpc26 146.0.0.43 member17-fpc27 146.0.0.44 member17-fpc28 146.0.0.45 member17-fpc29 146.0.0.46 member17-fpc30 146.0.0.47 member17-fpc31 #LCC 18 (or MEMBER 18 on Virtual Chassis) 147.0.0.1 lcc18-master member18-master 147.0.0.4 lcc18-re0 member18-re0 147.0.0.5 lcc18-re1 member18-re1 147.0.0.6 lcc18-backup member18-backup 147.0.0.16 member18-fpc0 147.0.0.17 member18-fpc1 147.0.0.18 member18-fpc2 147.0.0.19 member18-fpc3 147.0.0.20 member18-fpc4 147.0.0.21 member18-fpc5 147.0.0.22 member18-fpc6 147.0.0.23 member18-fpc7 147.0.0.24 member18-fpc8 147.0.0.25 member18-fpc9 147.0.0.26 member18-fpc10 147.0.0.27 member18-fpc11 147.0.0.28 member18-fpc12 147.0.0.29 member18-fpc13 147.0.0.30 member18-fpc14 147.0.0.31 member18-fpc15 147.0.0.32 member18-fpc16 147.0.0.33 member18-fpc17 147.0.0.34 member18-fpc18 147.0.0.35 member18-fpc19 147.0.0.36 member18-fpc20 147.0.0.37 member18-fpc21 147.0.0.38 member18-fpc22 147.0.0.39 member18-fpc23 147.0.0.40 member18-fpc24 147.0.0.41 member18-fpc25 147.0.0.42 member18-fpc26 147.0.0.43 member18-fpc27 147.0.0.44 member18-fpc28 147.0.0.45 member18-fpc29 147.0.0.46 member18-fpc30 147.0.0.47 member18-fpc31 #LCC 19 (or MEMBER 19 on Virtual Chassis) 148.0.0.1 lcc19-master member19-master 148.0.0.4 lcc19-re0 member19-re0 148.0.0.5 lcc19-re1 member19-re1 148.0.0.6 lcc19-backup member19-backup 148.0.0.16 member19-fpc0 148.0.0.17 member19-fpc1 148.0.0.18 member19-fpc2 148.0.0.19 member19-fpc3 148.0.0.20 member19-fpc4 148.0.0.21 member19-fpc5 148.0.0.22 member19-fpc6 148.0.0.23 member19-fpc7 148.0.0.24 member19-fpc8 148.0.0.25 member19-fpc9 148.0.0.26 member19-fpc10 148.0.0.27 member19-fpc11 148.0.0.28 member19-fpc12 148.0.0.29 member19-fpc13 148.0.0.30 member19-fpc14 148.0.0.31 member19-fpc15 148.0.0.32 member19-fpc16 148.0.0.33 member19-fpc17 148.0.0.34 member19-fpc18 148.0.0.35 member19-fpc19 148.0.0.36 member19-fpc20 148.0.0.37 member19-fpc21 148.0.0.38 member19-fpc22 148.0.0.39 member19-fpc23 148.0.0.40 member19-fpc24 148.0.0.41 member19-fpc25 148.0.0.42 member19-fpc26 148.0.0.43 member19-fpc27 148.0.0.44 member19-fpc28 148.0.0.45 member19-fpc29 148.0.0.46 member19-fpc30 148.0.0.47 member19-fpc31 #LCC 20 (or MEMBER 20 on Virtual Chassis) 149.0.0.1 lcc20-master member20-master 149.0.0.4 lcc20-re0 member20-re0 149.0.0.5 lcc20-re1 member20-re1 149.0.0.6 lcc20-backup member20-backup 149.0.0.16 member20-fpc0 149.0.0.17 member20-fpc1 149.0.0.18 member20-fpc2 149.0.0.19 member20-fpc3 149.0.0.20 member20-fpc4 149.0.0.21 member20-fpc5 149.0.0.22 member20-fpc6 149.0.0.23 member20-fpc7 149.0.0.24 member20-fpc8 149.0.0.25 member20-fpc9 149.0.0.26 member20-fpc10 149.0.0.27 member20-fpc11 149.0.0.28 member20-fpc12 149.0.0.29 member20-fpc13 149.0.0.30 member20-fpc14 149.0.0.31 member20-fpc15 149.0.0.32 member20-fpc16 149.0.0.33 member20-fpc17 149.0.0.34 member20-fpc18 149.0.0.35 member20-fpc19 149.0.0.36 member20-fpc20 149.0.0.37 member20-fpc21 149.0.0.38 member20-fpc22 149.0.0.39 member20-fpc23 149.0.0.40 member20-fpc24 149.0.0.41 member20-fpc25 149.0.0.42 member20-fpc26 149.0.0.43 member20-fpc27 149.0.0.44 member20-fpc28 149.0.0.45 member20-fpc29 149.0.0.46 member20-fpc30 149.0.0.47 member20-fpc31 #LCC 21 (or MEMBER 21 on Virtual Chassis) 150.0.0.1 lcc21-master member21-master 150.0.0.4 lcc21-re0 member21-re0 150.0.0.5 lcc21-re1 member21-re1 150.0.0.6 lcc21-backup member21-backup 150.0.0.16 member21-fpc0 150.0.0.17 member21-fpc1 150.0.0.18 member21-fpc2 150.0.0.19 member21-fpc3 150.0.0.20 member21-fpc4 150.0.0.21 member21-fpc5 150.0.0.22 member21-fpc6 150.0.0.23 member21-fpc7 150.0.0.24 member21-fpc8 150.0.0.25 member21-fpc9 150.0.0.26 member21-fpc10 150.0.0.27 member21-fpc11 150.0.0.28 member21-fpc12 150.0.0.29 member21-fpc13 150.0.0.30 member21-fpc14 150.0.0.31 member21-fpc15 150.0.0.32 member21-fpc16 150.0.0.33 member21-fpc17 150.0.0.34 member21-fpc18 150.0.0.35 member21-fpc19 150.0.0.36 member21-fpc20 150.0.0.37 member21-fpc21 150.0.0.38 member21-fpc22 150.0.0.39 member21-fpc23 150.0.0.40 member21-fpc24 150.0.0.41 member21-fpc25 150.0.0.42 member21-fpc26 150.0.0.43 member21-fpc27 150.0.0.44 member21-fpc28 150.0.0.45 member21-fpc29 150.0.0.46 member21-fpc30 150.0.0.47 member21-fpc31 #LCC 22 (or MEMBER 22 on Virtual Chassis) 151.0.0.1 lcc22-master member22-master 151.0.0.4 lcc22-re0 member22-re0 151.0.0.5 lcc22-re1 member22-re1 151.0.0.6 lcc22-backup member22-backup 151.0.0.16 member22-fpc0 151.0.0.17 member22-fpc1 151.0.0.18 member22-fpc2 151.0.0.19 member22-fpc3 151.0.0.20 member22-fpc4 151.0.0.21 member22-fpc5 151.0.0.22 member22-fpc6 151.0.0.23 member22-fpc7 151.0.0.24 member22-fpc8 151.0.0.25 member22-fpc9 151.0.0.26 member22-fpc10 151.0.0.27 member22-fpc11 151.0.0.28 member22-fpc12 151.0.0.29 member22-fpc13 151.0.0.30 member22-fpc14 151.0.0.31 member22-fpc15 151.0.0.32 member22-fpc16 151.0.0.33 member22-fpc17 151.0.0.34 member22-fpc18 151.0.0.35 member22-fpc19 151.0.0.36 member22-fpc20 151.0.0.37 member22-fpc21 151.0.0.38 member22-fpc22 151.0.0.39 member22-fpc23 151.0.0.40 member22-fpc24 151.0.0.41 member22-fpc25 151.0.0.42 member22-fpc26 151.0.0.43 member22-fpc27 151.0.0.44 member22-fpc28 151.0.0.45 member22-fpc29 151.0.0.46 member22-fpc30 151.0.0.47 member22-fpc31 #LCC 23 (or MEMBER 23 on Virtual Chassis) 152.0.0.1 lcc23-master member23-master 152.0.0.4 lcc23-re0 member23-re0 152.0.0.5 lcc23-re1 member23-re1 152.0.0.6 lcc23-backup member23-backup 152.0.0.16 member23-fpc0 152.0.0.17 member23-fpc1 152.0.0.18 member23-fpc2 152.0.0.19 member23-fpc3 152.0.0.20 member23-fpc4 152.0.0.21 member23-fpc5 152.0.0.22 member23-fpc6 152.0.0.23 member23-fpc7 152.0.0.24 member23-fpc8 152.0.0.25 member23-fpc9 152.0.0.26 member23-fpc10 152.0.0.27 member23-fpc11 152.0.0.28 member23-fpc12 152.0.0.29 member23-fpc13 152.0.0.30 member23-fpc14 152.0.0.31 member23-fpc15 152.0.0.32 member23-fpc16 152.0.0.33 member23-fpc17 152.0.0.34 member23-fpc18 152.0.0.35 member23-fpc19 152.0.0.36 member23-fpc20 152.0.0.37 member23-fpc21 152.0.0.38 member23-fpc22 152.0.0.39 member23-fpc23 152.0.0.40 member23-fpc24 152.0.0.41 member23-fpc25 152.0.0.42 member23-fpc26 152.0.0.43 member23-fpc27 152.0.0.44 member23-fpc28 152.0.0.45 member23-fpc29 152.0.0.46 member23-fpc30 152.0.0.47 member23-fpc31 #LCC 24 (or MEMBER 24 on Virtual Chassis) 153.0.0.1 lcc24-master member24-master 153.0.0.4 lcc24-re0 member24-re0 153.0.0.5 lcc24-re1 member24-re1 153.0.0.6 lcc24-backup member24-backup 153.0.0.16 member24-fpc0 153.0.0.17 member24-fpc1 153.0.0.18 member24-fpc2 153.0.0.19 member24-fpc3 153.0.0.20 member24-fpc4 153.0.0.21 member24-fpc5 153.0.0.22 member24-fpc6 153.0.0.23 member24-fpc7 153.0.0.24 member24-fpc8 153.0.0.25 member24-fpc9 153.0.0.26 member24-fpc10 153.0.0.27 member24-fpc11 153.0.0.28 member24-fpc12 153.0.0.29 member24-fpc13 153.0.0.30 member24-fpc14 153.0.0.31 member24-fpc15 153.0.0.32 member24-fpc16 153.0.0.33 member24-fpc17 153.0.0.34 member24-fpc18 153.0.0.35 member24-fpc19 153.0.0.36 member24-fpc20 153.0.0.37 member24-fpc21 153.0.0.38 member24-fpc22 153.0.0.39 member24-fpc23 153.0.0.40 member24-fpc24 153.0.0.41 member24-fpc25 153.0.0.42 member24-fpc26 153.0.0.43 member24-fpc27 153.0.0.44 member24-fpc28 153.0.0.45 member24-fpc29 153.0.0.46 member24-fpc30 153.0.0.47 member24-fpc31 #LCC 25 (or MEMBER 25 on Virtual Chassis) 154.0.0.1 lcc25-master member25-master 154.0.0.4 lcc25-re0 member25-re0 154.0.0.5 lcc25-re1 member25-re1 154.0.0.6 lcc25-backup member25-backup 154.0.0.16 member25-fpc0 154.0.0.17 member25-fpc1 154.0.0.18 member25-fpc2 154.0.0.19 member25-fpc3 154.0.0.20 member25-fpc4 154.0.0.21 member25-fpc5 154.0.0.22 member25-fpc6 154.0.0.23 member25-fpc7 154.0.0.24 member25-fpc8 154.0.0.25 member25-fpc9 154.0.0.26 member25-fpc10 154.0.0.27 member25-fpc11 154.0.0.28 member25-fpc12 154.0.0.29 member25-fpc13 154.0.0.30 member25-fpc14 154.0.0.31 member25-fpc15 154.0.0.32 member25-fpc16 154.0.0.33 member25-fpc17 154.0.0.34 member25-fpc18 154.0.0.35 member25-fpc19 154.0.0.36 member25-fpc20 154.0.0.37 member25-fpc21 154.0.0.38 member25-fpc22 154.0.0.39 member25-fpc23 154.0.0.40 member25-fpc24 154.0.0.41 member25-fpc25 154.0.0.42 member25-fpc26 154.0.0.43 member25-fpc27 154.0.0.44 member25-fpc28 154.0.0.45 member25-fpc29 154.0.0.46 member25-fpc30 154.0.0.47 member25-fpc31 #LCC 26 (or MEMBER 26 on Virtual Chassis) 155.0.0.1 lcc26-master member26-master 155.0.0.4 lcc26-re0 member26-re0 155.0.0.5 lcc26-re1 member26-re1 155.0.0.6 lcc26-backup member26-backup 155.0.0.16 member26-fpc0 155.0.0.17 member26-fpc1 155.0.0.18 member26-fpc2 155.0.0.19 member26-fpc3 155.0.0.20 member26-fpc4 155.0.0.21 member26-fpc5 155.0.0.22 member26-fpc6 155.0.0.23 member26-fpc7 155.0.0.24 member26-fpc8 155.0.0.25 member26-fpc9 155.0.0.26 member26-fpc10 155.0.0.27 member26-fpc11 155.0.0.28 member26-fpc12 155.0.0.29 member26-fpc13 155.0.0.30 member26-fpc14 155.0.0.31 member26-fpc15 155.0.0.32 member26-fpc16 155.0.0.33 member26-fpc17 155.0.0.34 member26-fpc18 155.0.0.35 member26-fpc19 155.0.0.36 member26-fpc20 155.0.0.37 member26-fpc21 155.0.0.38 member26-fpc22 155.0.0.39 member26-fpc23 155.0.0.40 member26-fpc24 155.0.0.41 member26-fpc25 155.0.0.42 member26-fpc26 155.0.0.43 member26-fpc27 155.0.0.44 member26-fpc28 155.0.0.45 member26-fpc29 155.0.0.46 member26-fpc30 155.0.0.47 member26-fpc31 #LCC 27 (or MEMBER 27 on Virtual Chassis) 156.0.0.1 lcc27-master member27-master 156.0.0.4 lcc27-re0 member27-re0 156.0.0.5 lcc27-re1 member27-re1 156.0.0.6 lcc27-backup member27-backup 156.0.0.16 member27-fpc0 156.0.0.17 member27-fpc1 156.0.0.18 member27-fpc2 156.0.0.19 member27-fpc3 156.0.0.20 member27-fpc4 156.0.0.21 member27-fpc5 156.0.0.22 member27-fpc6 156.0.0.23 member27-fpc7 156.0.0.24 member27-fpc8 156.0.0.25 member27-fpc9 156.0.0.26 member27-fpc10 156.0.0.27 member27-fpc11 156.0.0.28 member27-fpc12 156.0.0.29 member27-fpc13 156.0.0.30 member27-fpc14 156.0.0.31 member27-fpc15 156.0.0.32 member27-fpc16 156.0.0.33 member27-fpc17 156.0.0.34 member27-fpc18 156.0.0.35 member27-fpc19 156.0.0.36 member27-fpc20 156.0.0.37 member27-fpc21 156.0.0.38 member27-fpc22 156.0.0.39 member27-fpc23 156.0.0.40 member27-fpc24 156.0.0.41 member27-fpc25 156.0.0.42 member27-fpc26 156.0.0.43 member27-fpc27 156.0.0.44 member27-fpc28 156.0.0.45 member27-fpc29 156.0.0.46 member27-fpc30 156.0.0.47 member27-fpc31 #LCC 28 (or MEMBER 28 on Virtual Chassis) 157.0.0.1 lcc28-master member28-master 157.0.0.4 lcc28-re0 member28-re0 157.0.0.5 lcc28-re1 member28-re1 157.0.0.6 lcc28-backup member28-backup 157.0.0.16 member28-fpc0 157.0.0.17 member28-fpc1 157.0.0.18 member28-fpc2 157.0.0.19 member28-fpc3 157.0.0.20 member28-fpc4 157.0.0.21 member28-fpc5 157.0.0.22 member28-fpc6 157.0.0.23 member28-fpc7 157.0.0.24 member28-fpc8 157.0.0.25 member28-fpc9 157.0.0.26 member28-fpc10 157.0.0.27 member28-fpc11 157.0.0.28 member28-fpc12 157.0.0.29 member28-fpc13 157.0.0.30 member28-fpc14 157.0.0.31 member28-fpc15 157.0.0.32 member28-fpc16 157.0.0.33 member28-fpc17 157.0.0.34 member28-fpc18 157.0.0.35 member28-fpc19 157.0.0.36 member28-fpc20 157.0.0.37 member28-fpc21 157.0.0.38 member28-fpc22 157.0.0.39 member28-fpc23 157.0.0.40 member28-fpc24 157.0.0.41 member28-fpc25 157.0.0.42 member28-fpc26 157.0.0.43 member28-fpc27 157.0.0.44 member28-fpc28 157.0.0.45 member28-fpc29 157.0.0.46 member28-fpc30 157.0.0.47 member28-fpc31 #LCC 29 (or MEMBER 29 on Virtual Chassis) 158.0.0.1 lcc29-master member29-master 158.0.0.4 lcc29-re0 member29-re0 158.0.0.5 lcc29-re1 member29-re1 158.0.0.6 lcc29-backup member29-backup 158.0.0.16 member29-fpc0 158.0.0.17 member29-fpc1 158.0.0.18 member29-fpc2 158.0.0.19 member29-fpc3 158.0.0.20 member29-fpc4 158.0.0.21 member29-fpc5 158.0.0.22 member29-fpc6 158.0.0.23 member29-fpc7 158.0.0.24 member29-fpc8 158.0.0.25 member29-fpc9 158.0.0.26 member29-fpc10 158.0.0.27 member29-fpc11 158.0.0.28 member29-fpc12 158.0.0.29 member29-fpc13 158.0.0.30 member29-fpc14 158.0.0.31 member29-fpc15 158.0.0.32 member29-fpc16 158.0.0.33 member29-fpc17 158.0.0.34 member29-fpc18 158.0.0.35 member29-fpc19 158.0.0.36 member29-fpc20 158.0.0.37 member29-fpc21 158.0.0.38 member29-fpc22 158.0.0.39 member29-fpc23 158.0.0.40 member29-fpc24 158.0.0.41 member29-fpc25 158.0.0.42 member29-fpc26 158.0.0.43 member29-fpc27 158.0.0.44 member29-fpc28 158.0.0.45 member29-fpc29 158.0.0.46 member29-fpc30 158.0.0.47 member29-fpc31 #LCC 30 (or MEMBER 30 on Virtual Chassis) 159.0.0.1 lcc30-master member30-master 159.0.0.4 lcc30-re0 member30-re0 159.0.0.5 lcc30-re1 member30-re1 159.0.0.6 lcc30-backup member30-backup 159.0.0.16 member30-fpc0 159.0.0.17 member30-fpc1 159.0.0.18 member30-fpc2 159.0.0.19 member30-fpc3 159.0.0.20 member30-fpc4 159.0.0.21 member30-fpc5 159.0.0.22 member30-fpc6 159.0.0.23 member30-fpc7 159.0.0.24 member30-fpc8 159.0.0.25 member30-fpc9 159.0.0.26 member30-fpc10 159.0.0.27 member30-fpc11 159.0.0.28 member30-fpc12 159.0.0.29 member30-fpc13 159.0.0.30 member30-fpc14 159.0.0.31 member30-fpc15 159.0.0.32 member30-fpc16 159.0.0.33 member30-fpc17 159.0.0.34 member30-fpc18 159.0.0.35 member30-fpc19 159.0.0.36 member30-fpc20 159.0.0.37 member30-fpc21 159.0.0.38 member30-fpc22 159.0.0.39 member30-fpc23 159.0.0.40 member30-fpc24 159.0.0.41 member30-fpc25 159.0.0.42 member30-fpc26 159.0.0.43 member30-fpc27 159.0.0.44 member30-fpc28 159.0.0.45 member30-fpc29 159.0.0.46 member30-fpc30 159.0.0.47 member30-fpc31 #LCC 31 (or MEMBER 31 on Virtual Chassis) 160.0.0.1 lcc31-master member31-master 160.0.0.4 lcc31-re0 member31-re0 160.0.0.5 lcc31-re1 member31-re1 160.0.0.6 lcc31-backup member31-backup 160.0.0.16 member31-fpc0 160.0.0.17 member31-fpc1 160.0.0.18 member31-fpc2 160.0.0.19 member31-fpc3 160.0.0.20 member31-fpc4 160.0.0.21 member31-fpc5 160.0.0.22 member31-fpc6 160.0.0.23 member31-fpc7 160.0.0.24 member31-fpc8 160.0.0.25 member31-fpc9 160.0.0.26 member31-fpc10 160.0.0.27 member31-fpc11 160.0.0.28 member31-fpc12 160.0.0.29 member31-fpc13 160.0.0.30 member31-fpc14 160.0.0.31 member31-fpc15 160.0.0.32 member31-fpc16 160.0.0.33 member31-fpc17 160.0.0.34 member31-fpc18 160.0.0.35 member31-fpc19 160.0.0.36 member31-fpc20 160.0.0.37 member31-fpc21 160.0.0.38 member31-fpc22 160.0.0.39 member31-fpc23 160.0.0.40 member31-fpc24 160.0.0.41 member31-fpc25 160.0.0.42 member31-fpc26 160.0.0.43 member31-fpc27 160.0.0.44 member31-fpc28 160.0.0.45 member31-fpc29 160.0.0.46 member31-fpc30 160.0.0.47 member31-fpc31 #VIRT SC 161.0.0.1 sc-master 161.0.0.4 sc-re0 161.0.0.5 sc-re1 161.0.0.6 sc-backup #SFC 0 162.0.0.1 sfc0-master 162.0.0.4 sfc0-re0 162.0.0.5 sfc0-re1 162.0.0.6 sfc0-backup 162.0.0.48 sfc0-spmb0 162.0.0.49 sfc0-spmb1 #SFC 1 163.0.0.1 sfc1-master 163.0.0.4 sfc1-re0 163.0.0.5 sfc1-re1 163.0.0.6 sfc1-backup 163.0.0.48 sfc1-spmb0 163.0.0.49 sfc1-spmb1 #SFC 2 164.0.0.1 sfc2-master 164.0.0.4 sfc2-re0 164.0.0.5 sfc2-re1 164.0.0.6 sfc2-backup 164.0.0.48 sfc2-spmb0 164.0.0.49 sfc2-spmb1 #SFC 3 165.0.0.1 sfc3-master 165.0.0.4 sfc3-re0 165.0.0.5 sfc3-re1 165.0.0.6 sfc3-backup 165.0.0.48 sfc3-spmb0 165.0.0.49 sfc3-spmb1 #SFC 4 166.0.0.1 sfc4-master 166.0.0.4 sfc4-re0 166.0.0.5 sfc4-re1 166.0.0.6 sfc4-backup 166.0.0.48 sfc4-spmb0 166.0.0.49 sfc4-spmb1 #JCS 190.0.0.1 psd%d-master 190.0.0.4 psd%d-re0 190.0.0.5 psd%d-re1 190.0.0.6 psd%d-backup # Old IP address format (RT_IRS_V2) # # Single Chassis Hostnames # 10.0.0.1 master 10.0.0.4 re0 10.0.0.5 re1 10.0.0.16 fpc0 10.0.0.17 fpc1 10.0.0.18 fpc2 10.0.0.19 fpc3 10.0.0.20 fpc4 10.0.0.21 fpc5 10.0.0.22 fpc6 10.0.0.23 fpc7 10.0.0.24 fpc8 10.0.0.25 fpc9 10.0.0.26 fpc10 10.0.0.27 fpc11 10.0.0.28 fpc12 10.0.0.29 fpc13 10.0.0.30 fpc14 10.0.0.31 fpc15 # # Multi Chassis Hostnames # #SCC 10.16.0.1 scc-master 10.16.0.4 scc-re0 10.16.0.5 scc-re1 #LCC 0 10.1.0.1 lcc0-master member0-master 10.1.0.4 lcc0-re0 member0-re0 10.1.0.5 lcc0-re1 member0-re1 10.1.0.6 lcc0-backup member0-backup #LCC 1 10.2.0.1 lcc1-master member1-master 10.2.0.4 lcc1-re0 member1-re0 10.2.0.5 lcc1-re1 member1-re1 10.2.0.6 lcc1-backup member1-backup #LCC 2 10.3.0.1 lcc2-master member2-master 10.3.0.4 lcc2-re0 member2-re0 10.3.0.5 lcc2-re1 member2-re1 10.3.0.6 lcc2-backup member2-backup #LCC 3 10.4.0.1 lcc3-master member3-master 10.4.0.4 lcc3-re0 member3-re0 10.4.0.5 lcc3-re1 member3-re1 10.4.0.6 lcc3-backup member3-backup #LCC 4 10.5.0.1 lcc4-master member4-master 10.5.0.4 lcc4-re0 member4-re0 10.5.0.5 lcc4-re1 member4-re1 10.5.0.6 lcc4-backup member4-backup #LCC 5 10.6.0.1 lcc5-master member5-master 10.6.0.4 lcc5-re0 member5-re0 10.6.0.5 lcc5-re1 member5-re1 10.6.0.6 lcc5-backup member5-backup #LCC 6 10.7.0.1 lcc6-master member6-master 10.7.0.4 lcc6-re0 member6-re0 10.7.0.5 lcc6-re1 member6-re1 10.7.0.6 lcc6-backup member6-backup #LCC 7 10.8.0.1 lcc7-master member7-master 10.8.0.4 lcc7-re0 member7-re0 10.8.0.5 lcc7-re1 member7-re1 10.8.0.6 lcc7-backup member7-backup #LCC 8 10.9.0.1 lcc8-master member8-master 10.9.0.4 lcc8-re0 member8-re0 10.9.0.5 lcc8-re1 member8-re1 10.9.0.6 lcc8-backup member8-backup #LCC 9 10.10.0.1 lcc9-master member9-master 10.10.0.4 lcc9-re0 member9-re0 10.10.0.5 lcc9-re1 member9-re1 10.10.0.6 lcc9-backup member9-backup #LCC 10 10.11.0.1 lcc10-master member10-master 10.11.0.4 lcc10-re0 member10-re0 10.11.0.5 lcc10-re1 member10-re1 10.11.0.6 lcc10-backup member10-backup #LCC 11 10.12.0.1 lcc11-master member11-master 10.12.0.4 lcc11-re0 member11-re0 10.12.0.5 lcc11-re1 member11-re1 10.12.0.6 lcc11-backup member11-backup #LCC 12 10.13.0.1 lcc12-master member12-master 10.13.0.4 lcc12-re0 member12-re0 10.13.0.5 lcc12-re1 member12-re1 10.13.0.6 lcc12-backup member12-backup #LCC 13 10.14.0.1 lcc13-master member13-master 10.14.0.4 lcc13-re0 member13-re0 10.14.0.5 lcc13-re1 member13-re1 10.14.0.6 lcc13-backup member13-backup #LCC 14 10.15.0.1 lcc14-master member14-master 10.15.0.4 lcc14-re0 member14-re0 10.15.0.5 lcc14-re1 member14-re1 10.15.0.6 lcc14-backup member14-backup #LCC 15 10.16.0.1 lcc15-master member15-master 10.16.0.4 lcc15-re0 member15-re0 10.16.0.5 lcc15-re1 member15-re1 10.16.0.6 lcc15-backup member15-backup #SFC 0 10.34.0.1 sfc0-master 10.34.0.4 sfc0-re0 10.34.0.5 sfc0-re1 #SFC 1 10.35.0.1 sfc1-master 10.35.0.4 sfc1-re0 10.35.0.5 sfc1-re1 #SFC 2 10.36.0.1 sfc2-master 10.36.0.4 sfc2-re0 10.36.0.5 sfc2-re1 #SFC 3 10.37.0.1 sfc3-master 10.37.0.4 sfc3-re0 10.37.0.5 sfc3-re1 #SFC 4 10.38.0.1 sfc4-master 10.38.0.4 sfc4-re0 10.38.0.5 sfc4-re1 # End of internal names py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/personality_t_get-interface-information.xml000066400000000000000000000473401475361112400321540ustar00rootroot00000000000000 pfe-0/0/0.16383 up up inet inet6 pfh-0/0/0.16383 up up inet pfe-1/0/0.16383 up up inet inet6 pfh-1/0/0.16383 up up inet pfe-1/1/0.16383 up up inet inet6 pfh-2/0/0.16383 up up inet pc-2/1/0.16383 up up inet pc-2/2/0.16383 up up inet pc-3/0/0.16383 up up inet pfe-3/0/0.16383 up up inet inet6 pfh-3/0/0.16383 up up inet pc-4/0/0.16383 up up inet pfe-4/0/0.16383 up up inet inet6 pfh-4/0/0.16383 up up inet pc-4/1/0.16383 up up inet pc-4/2/0.16383 up up inet pfe-5/0/0.16383 up up inet inet6 pfh-5/0/0.16383 up up inet pc-5/2/0.16383 up up inet pfe-7/0/0.16383 up up inet inet6 pfh-7/0/0.16383 up up inet bcm0.0 up up inet 10.0.0.4/8 128.0.0.1/2 128.0.0.4/2 inet6 fe80::200:ff:fe00:4/64 fec0::a:0:0:4/64 tnp 0x4 em1.0 up up inet 10.0.0.4/8 128.0.0.1/2 128.0.0.4/2 inet6 fe80::200:1ff:fe00:4/64 fec0::a:0:0:4/64 tnp 0x4 lo0.16385 up up inet py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/personality_t_get-route-engine-information.xml000066400000000000000000000067571475361112400326240ustar00rootroot00000000000000 0 master master (default) OK 37 degrees C / 98 degrees F 56 degrees C / 132 degrees F 3327 MB (8192 MB installed) 25 0 0 3 0 96 0 0 3 0 96 0 0 3 0 96 0 0 3 0 96 RE-DUO-1800 737F-2045 2016-10-26 14:23:07 PDT 67 days, 1 hour, 31 minutes, 47 seconds Router rebooted after a normal shutdown. 0.01 0.03 0.00 1 backup backup (default) OK 37 degrees C / 98 degrees F 52 degrees C / 125 degrees F 3327 MB (8192 MB installed) 21 0 0 0 0 100 RE-DUO-1800 737F-1062 2016-10-26 14:08:59 PDT 67 days, 1 hour, 45 minutes, 48 seconds Router rebooted after a normal shutdown. 0.00 0.00 0.00 py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/personality_vmx_command.xml000066400000000000000000000313671475361112400271030ustar00rootroot00000000000000 re0 r0 mx960 mx960 16.1R1.11 os-kernel JUNOS OS Kernel 64-bit [20160624.329953_builder_stable_10] os-libs JUNOS OS libs [20160624.329953_builder_stable_10] os-runtime JUNOS OS runtime [20160624.329953_builder_stable_10] zoneinfo JUNOS OS time zone information [20160624.329953_builder_stable_10] netstack JUNOS network stack and utilities [20160722.024316_builder_junos_161_r1] junos-modules JUNOS modules [20160722.024316_builder_junos_161_r1] junos-modules-platform JUNOS mx modules [20160722.024316_builder_junos_161_r1] junos-libs JUNOS libs [20160722.024316_builder_junos_161_r1] os-libs-compat32 JUNOS OS libs compat32 [20160624.329953_builder_stable_10] os-compat32 JUNOS OS 32-bit compatibility [20160624.329953_builder_stable_10] junos-libs-compat32 JUNOS libs compat32 [20160722.024316_builder_junos_161_r1] junos-runtime JUNOS runtime [20160722.024316_builder_junos_161_r1] vmguest JUNOS Packet Forwarding Engine Simulation Package [20160722.024316_builder_junos_161_r1] py-extensions JUNOS py extensions [20160722.024316_builder_junos_161_r1] py-base JUNOS py base [20160722.024316_builder_junos_161_r1] os-vmguest JUNOS OS vmguest [20160624.329953_builder_stable_10] os-crypto JUNOS OS crypto [20160624.329953_builder_stable_10] junos-libs-compat32-platform JUNOS mx libs compat32 [20160722.024316_builder_junos_161_r1] junos-runtime-platform JUNOS mx runtime [20160722.024316_builder_junos_161_r1] junos-platform JUNOS common platform support [20160722.024316_builder_junos_161_r1] junos-libs-platform JUNOS mx libs [20160722.024316_builder_junos_161_r1] junos-dp-crypto-support JUNOS Data Plane Crypto Support [20160722.024316_builder_junos_161_r1] junos-dp-crypto-support-platform JUNOS mtx Data Plane Crypto Support [20160722.024316_builder_junos_161_r1] junos-daemons JUNOS daemons [20160722.024316_builder_junos_161_r1] junos-daemons-platform JUNOS mx daemons [20160722.024316_builder_junos_161_r1] jservices-voice JUNOS Voice Services Container package [20160722.024316_builder_junos_161_r1] jservices-ssl JUNOS Services SSL [20160722.024316_builder_junos_161_r1] jservices-sfw JUNOS Services Stateful Firewall [20160722.024316_builder_junos_161_r1] jservices-rpm JUNOS Services RPM [20160722.024316_builder_junos_161_r1] jservices-ptsp JUNOS Services PTSP Container package [20160722.024316_builder_junos_161_r1] jservices-pcef JUNOS Services PCEF package [20160722.024316_builder_junos_161_r1] jservices-nat JUNOS Services NAT [20160722.024316_builder_junos_161_r1] jservices-mss JUNOS Services Mobile Subscriber Service Container package [20160722.024316_builder_junos_161_r1] jservices-mobile JUNOS Services MobileNext Software package [20160722.024316_builder_junos_161_r1] jservices-lrf JUNOS Services Logging Report Framework package [20160722.024316_builder_junos_161_r1] jservices-llpdf JUNOS Services LL-PDF Container package [20160722.024316_builder_junos_161_r1] jservices-jflow JUNOS Services Jflow Container package [20160722.024316_builder_junos_161_r1] jservices-jdpi JUNOS Services Deep Packet Inspection package [20160722.024316_builder_junos_161_r1] jservices-ipsec JUNOS Services IPSec [20160722.024316_builder_junos_161_r1] jservices-idp JUNOS IDP Services [20160722.024316_builder_junos_161_r1] jservices-hcm JUNOS Services HTTP Content Management package [20160722.024316_builder_junos_161_r1] jservices-crypto-base JUNOS Services Crypto [20160722.024316_builder_junos_161_r1] jservices-cpcd JUNOS Services Captive Portal and Content Delivery Container package [20160722.024316_builder_junos_161_r1] jservices-bgf JUNOS Border Gateway Function package [20160722.024316_builder_junos_161_r1] jservices-appid JUNOS AppId Services [20160722.024316_builder_junos_161_r1] jservices-alg JUNOS Services Application Level Gateways [20160722.024316_builder_junos_161_r1] jservices-aacl JUNOS Services AACL Container package [20160722.024316_builder_junos_161_r1] jsdn JUNOS SDN Software Suite [20160722.024316_builder_junos_161_r1] jsd JUNOS Extension Toolkit [20160722.024316_builder_junos_161_r1] jpfe-wrlinux JUNOS Packet Forwarding Engine Support (wrlinux) [20160722.024316_builder_junos_161_r1] jpfe-platform JUNOS Packet Forwarding Engine Support (MX/EX92XX Common) [20160722.024316_builder_junos_161_r1] jpfe-common JUNOS Packet Forwarding Engine Support (M/T Common) [20160722.024316_builder_junos_161_r1] jdocs JUNOS Online Documentation [20160722.024316_builder_junos_161_r1] fips-mode JUNOS FIPS mode utilities [20160722.024316_builder_junos_161_r1] py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/personality_vmx_file-show.xml000066400000000000000000002045501475361112400273560ustar00rootroot00000000000000 #$Id: hosts.junos,v 1.7.72.1 2009-04-16 05:22:03 kdickman Exp $ # # File mapping AF_INET/AF_INET6 hostnames for REs on Single and Multichassis # systems # # This file is looked at before /etc/hosts by gethostbyname(3), # gethostbyname2(3) and getaddrinfo(3) # # The IP addresses in this file are only used for communication between REs # over the Internal Routing Instances # # WARNING: # # The names in this file are effectively reserved for internal use. # # New IP address format (RT_IRS_V3) # # Single Chassis Hostnames # 128.0.0.1 master 128.0.0.1 node 128.0.0.1 fwdd 128.0.0.1 member 128.0.0.1 pfem 128.0.0.2 scb 128.0.0.2 sbr 128.0.0.2 ssb 128.0.0.2 feb 128.0.0.2 cfeb0 128.0.0.2 cfeb 128.0.0.2 cpp0 128.0.0.3 cfeb1 128.0.0.3 cpp1 128.0.0.4 re0 128.0.0.5 re1 128.0.0.6 backup 128.0.0.8 sfm0 128.0.0.9 sfm1 128.0.0.10 sfm2 128.0.0.16 fpc0 128.0.0.17 fpc1 128.0.0.18 fpc2 128.0.0.19 fpc3 128.0.0.20 fpc4 128.0.0.21 fpc5 128.0.0.22 fpc6 128.0.0.23 fpc7 128.0.0.24 fpc8 128.0.0.25 fpc9 128.0.0.26 fpc10 128.0.0.27 fpc11 128.0.0.28 fpc12 128.0.0.29 fpc13 128.0.0.30 fpc14 128.0.0.31 fpc15 128.0.0.32 feb0 128.0.0.32 fpc16 128.0.0.33 feb1 128.0.0.33 fpc17 128.0.0.34 feb2 128.0.0.34 fpc18 128.0.0.35 feb3 128.0.0.35 fpc19 128.0.0.36 fpc20 128.0.0.36 feb4 128.0.0.37 feb5 128.0.0.37 fpc21 128.0.0.38 fpc22 128.0.0.39 fpc23 128.0.0.40 fpc24 128.0.0.41 fpc25 128.0.0.42 fpc26 128.0.0.43 fpc27 128.0.0.44 fpc28 128.0.0.45 fpc29 128.0.0.46 fpc30 128.0.0.47 fpc31 128.0.0.48 spmb0 128.0.0.49 spmb1 128.0.0.50 tfeb0 128.0.0.50 afeb0 128.0.0.53 esc0 128.0.0.54 esc1 128.0.0.55 esc0-ipmi 128.0.0.56 esc1-ipmi 128.0.1.16 fpc0.pic0 128.0.1.17 fpc1.pic0 128.0.1.18 fpc2.pic0 128.0.1.19 fpc3.pic0 128.0.1.20 fpc4.pic0 128.0.1.21 fpc5.pic0 128.0.1.22 fpc6.pic0 128.0.1.23 fpc7.pic0 128.0.1.24 fpc8.pic0 128.0.1.25 fpc9.pic0 128.0.1.26 fpc10.pic0 128.0.1.27 fpc11.pic0 128.0.1.28 fpc12.pic0 128.0.1.29 fpc13.pic0 128.0.1.30 fpc14.pic0 128.0.1.31 fpc15.pic0 128.0.1.32 fpc16.pic0 128.0.1.33 fpc17.pic0 128.0.1.34 fpc18.pic0 128.0.1.35 fpc19.pic0 128.0.1.36 fpc20.pic0 128.0.1.37 fpc21.pic0 128.0.1.38 fpc22.pic0 128.0.1.39 fpc23.pic0 128.0.1.40 fpc24.pic0 128.0.1.41 fpc25.pic0 128.0.1.42 fpc26.pic0 128.0.1.43 fpc27.pic0 128.0.1.44 fpc28.pic0 128.0.1.45 fpc29.pic0 128.0.1.46 fpc30.pic0 128.0.1.47 fpc31.pic0 128.0.2.16 fpc0.pic1 128.0.2.17 fpc1.pic1 128.0.2.18 fpc2.pic1 128.0.2.19 fpc3.pic1 128.0.2.20 fpc4.pic1 128.0.2.21 fpc5.pic1 128.0.2.22 fpc6.pic1 128.0.2.23 fpc7.pic1 128.0.2.24 fpc8.pic1 128.0.2.25 fpc9.pic1 128.0.2.26 fpc10.pic1 128.0.2.27 fpc11.pic1 128.0.2.28 fpc12.pic1 128.0.2.29 fpc13.pic1 128.0.2.30 fpc14.pic1 128.0.2.31 fpc15.pic1 128.0.2.32 fpc16.pic1 128.0.2.33 fpc17.pic1 128.0.2.34 fpc18.pic1 128.0.2.35 fpc19.pic1 128.0.2.36 fpc20.pic1 128.0.2.37 fpc21.pic1 128.0.2.38 fpc22.pic1 128.0.2.39 fpc23.pic1 128.0.2.40 fpc24.pic1 128.0.2.41 fpc25.pic1 128.0.2.42 fpc26.pic1 128.0.2.43 fpc27.pic1 128.0.2.44 fpc28.pic1 128.0.2.45 fpc29.pic1 128.0.2.46 fpc30.pic1 128.0.2.47 fpc31.pic1 128.0.3.16 fpc0.pic2 128.0.3.17 fpc1.pic2 128.0.3.18 fpc2.pic2 128.0.3.19 fpc3.pic2 128.0.3.20 fpc4.pic2 128.0.3.21 fpc5.pic2 128.0.3.22 fpc6.pic2 128.0.3.23 fpc7.pic2 128.0.3.24 fpc8.pic2 128.0.3.25 fpc9.pic2 128.0.3.26 fpc10.pic2 128.0.3.27 fpc11.pic2 128.0.3.28 fpc12.pic2 128.0.3.29 fpc13.pic2 128.0.3.30 fpc14.pic2 128.0.3.31 fpc15.pic2 128.0.4.16 fpc0.pic3 128.0.4.17 fpc1.pic3 128.0.4.18 fpc2.pic3 128.0.4.19 fpc3.pic3 128.0.4.20 fpc4.pic3 128.0.4.21 fpc5.pic3 128.0.4.22 fpc6.pic3 128.0.4.23 fpc7.pic3 128.0.4.24 fpc8.pic3 128.0.4.25 fpc9.pic3 128.0.4.26 fpc10.pic3 128.0.4.27 fpc11.pic3 128.0.4.28 fpc12.pic3 128.0.4.29 fpc13.pic3 128.0.4.30 fpc14.pic3 128.0.4.31 fpc15.pic3 # # DCF-Root Hostname # 128.0.130.2 dcf-root # # Multi Chassis Hostnames # #SCC 144.0.0.1 scc-master 144.0.0.4 scc-re0 144.0.0.5 scc-re1 144.0.0.6 scc-backup 144.0.0.48 scc-spmb0 144.0.0.49 scc-spmb1 #LCC 0 (or MEMBER 0 on Virtual Chassis) 129.0.0.1 lcc0-master member0-master member0 129.0.0.4 lcc0-re0 member0-re0 129.0.0.5 lcc0-re1 member0-re1 129.0.0.6 lcc0-backup member0-backup 129.0.0.16 member0-fpc0 129.0.0.17 member0-fpc1 129.0.0.18 member0-fpc2 129.0.0.19 member0-fpc3 129.0.0.20 member0-fpc4 129.0.0.21 member0-fpc5 129.0.0.22 member0-fpc6 129.0.0.23 member0-fpc7 129.0.0.24 member0-fpc8 129.0.0.25 member0-fpc9 129.0.0.26 member0-fpc10 129.0.0.27 member0-fpc11 129.0.0.28 member0-fpc12 129.0.0.29 member0-fpc13 129.0.0.30 member0-fpc14 129.0.0.31 member0-fpc15 129.0.0.32 member0-fpc16 129.0.0.33 member0-fpc17 129.0.0.34 member0-fpc18 129.0.0.35 member0-fpc19 129.0.0.36 member0-fpc20 129.0.0.37 member0-fpc21 129.0.0.38 member0-fpc22 129.0.0.39 member0-fpc23 129.0.0.40 member0-fpc24 129.0.0.41 member0-fpc25 129.0.0.42 member0-fpc26 129.0.0.43 member0-fpc27 129.0.0.44 member0-fpc28 129.0.0.45 member0-fpc29 129.0.0.46 member0-fpc30 129.0.0.47 member0-fpc31 129.0.0.6 lcc0-backup 129.0.0.16 lcc0-fpc0 129.0.0.17 lcc0-fpc1 129.0.0.18 lcc0-fpc2 129.0.0.19 lcc0-fpc3 129.0.0.20 lcc0-fpc4 129.0.0.21 lcc0-fpc5 129.0.0.22 lcc0-fpc6 129.0.0.23 lcc0-fpc7 129.0.0.48 lcc0-spmb0 129.0.0.49 lcc0-spmb1 #LCC 1 (or MEMBER 1 on Virtual Chassis) 130.0.0.1 lcc1-master member1-master member1 130.0.0.4 lcc1-re0 member1-re0 130.0.0.5 lcc1-re1 member1-re1 130.0.0.6 lcc1-backup member1-backup 130.0.0.16 member1-fpc0 130.0.0.17 member1-fpc1 130.0.0.18 member1-fpc2 130.0.0.19 member1-fpc3 130.0.0.20 member1-fpc4 130.0.0.21 member1-fpc5 130.0.0.22 member1-fpc6 130.0.0.23 member1-fpc7 130.0.0.24 member1-fpc8 130.0.0.25 member1-fpc9 130.0.0.26 member1-fpc10 130.0.0.27 member1-fpc11 130.0.0.28 member1-fpc12 130.0.0.29 member1-fpc13 130.0.0.30 member1-fpc14 130.0.0.31 member1-fpc15 130.0.0.32 member1-fpc16 130.0.0.33 member1-fpc17 130.0.0.34 member1-fpc18 130.0.0.35 member1-fpc19 130.0.0.36 member1-fpc20 130.0.0.37 member1-fpc21 130.0.0.38 member1-fpc22 130.0.0.39 member1-fpc23 130.0.0.40 member1-fpc24 130.0.0.41 member1-fpc25 130.0.0.42 member1-fpc26 130.0.0.43 member1-fpc27 130.0.0.44 member1-fpc28 130.0.0.45 member1-fpc29 130.0.0.46 member1-fpc30 130.0.0.47 member1-fpc31 130.0.0.6 lcc1-backup 130.0.0.16 lcc1-fpc0 130.0.0.17 lcc1-fpc1 130.0.0.18 lcc1-fpc2 130.0.0.19 lcc1-fpc3 130.0.0.20 lcc1-fpc4 130.0.0.21 lcc1-fpc5 130.0.0.22 lcc1-fpc6 130.0.0.23 lcc1-fpc7 130.0.0.48 lcc1-spmb0 130.0.0.49 lcc1-spmb1 #LCC 2 (or MEMBER 2 on Virtual Chassis) 131.0.0.1 lcc2-master member2-master member2 131.0.0.4 lcc2-re0 member2-re0 131.0.0.5 lcc2-re1 member2-re1 131.0.0.6 lcc2-backup member2-backup 131.0.0.16 member2-fpc0 131.0.0.17 member2-fpc1 131.0.0.18 member2-fpc2 131.0.0.19 member2-fpc3 131.0.0.20 member2-fpc4 131.0.0.21 member2-fpc5 131.0.0.22 member2-fpc6 131.0.0.23 member2-fpc7 131.0.0.24 member2-fpc8 131.0.0.25 member2-fpc9 131.0.0.26 member2-fpc10 131.0.0.27 member2-fpc11 131.0.0.28 member2-fpc12 131.0.0.29 member2-fpc13 131.0.0.30 member2-fpc14 131.0.0.31 member2-fpc15 131.0.0.32 member2-fpc16 131.0.0.33 member2-fpc17 131.0.0.34 member2-fpc18 131.0.0.35 member2-fpc19 131.0.0.36 member2-fpc20 131.0.0.37 member2-fpc21 131.0.0.38 member2-fpc22 131.0.0.39 member2-fpc23 131.0.0.40 member2-fpc24 131.0.0.41 member2-fpc25 131.0.0.42 member2-fpc26 131.0.0.43 member2-fpc27 131.0.0.44 member2-fpc28 131.0.0.45 member2-fpc29 131.0.0.46 member2-fpc30 131.0.0.47 member2-fpc31 131.0.0.6 lcc2-backup 131.0.0.16 lcc2-fpc0 131.0.0.17 lcc2-fpc1 131.0.0.18 lcc2-fpc2 131.0.0.19 lcc2-fpc3 131.0.0.20 lcc2-fpc4 131.0.0.21 lcc2-fpc5 131.0.0.22 lcc2-fpc6 131.0.0.23 lcc2-fpc7 131.0.0.48 lcc2-spmb0 131.0.0.49 lcc20-spmb1 #LCC 3 (or MEMBER 3 on Virtual Chassis) 132.0.0.1 lcc3-master member3-master member3 132.0.0.4 lcc3-re0 member3-re0 132.0.0.5 lcc3-re1 member3-re1 132.0.0.6 lcc3-backup member3-backup 132.0.0.16 member3-fpc0 132.0.0.17 member3-fpc1 132.0.0.18 member3-fpc2 132.0.0.19 member3-fpc3 132.0.0.20 member3-fpc4 132.0.0.21 member3-fpc5 132.0.0.22 member3-fpc6 132.0.0.23 member3-fpc7 132.0.0.24 member3-fpc8 132.0.0.25 member3-fpc9 132.0.0.26 member3-fpc10 132.0.0.27 member3-fpc11 132.0.0.28 member3-fpc12 132.0.0.29 member3-fpc13 132.0.0.30 member3-fpc14 132.0.0.31 member3-fpc15 132.0.0.32 member3-fpc16 132.0.0.33 member3-fpc17 132.0.0.34 member3-fpc18 132.0.0.35 member3-fpc19 132.0.0.36 member3-fpc20 132.0.0.37 member3-fpc21 132.0.0.38 member3-fpc22 132.0.0.39 member3-fpc23 132.0.0.40 member3-fpc24 132.0.0.41 member3-fpc25 132.0.0.42 member3-fpc26 132.0.0.43 member3-fpc27 132.0.0.44 member3-fpc28 132.0.0.45 member3-fpc29 132.0.0.46 member3-fpc30 132.0.0.47 member3-fpc31 132.0.0.6 lcc3-backup 132.0.0.16 lcc3-fpc0 132.0.0.17 lcc3-fpc1 132.0.0.18 lcc3-fpc2 132.0.0.19 lcc3-fpc3 132.0.0.20 lcc3-fpc4 132.0.0.21 lcc3-fpc5 132.0.0.22 lcc3-fpc6 132.0.0.23 lcc3-fpc7 132.0.0.48 lcc3-spmb0 132.0.0.49 lcc3-spmb1 #LCC 4 (or MEMBER 4 on Virtual Chassis) 133.0.0.1 lcc4-master member4-master member4 133.0.0.4 lcc4-re0 member4-re0 133.0.0.5 lcc4-re1 member4-re1 133.0.0.6 lcc4-backup member4-backup 133.0.0.16 member4-fpc0 133.0.0.17 member4-fpc1 133.0.0.18 member4-fpc2 133.0.0.19 member4-fpc3 133.0.0.20 member4-fpc4 133.0.0.21 member4-fpc5 133.0.0.22 member4-fpc6 133.0.0.23 member4-fpc7 133.0.0.24 member4-fpc8 133.0.0.25 member4-fpc9 133.0.0.26 member4-fpc10 133.0.0.27 member4-fpc11 133.0.0.28 member4-fpc12 133.0.0.29 member4-fpc13 133.0.0.30 member4-fpc14 133.0.0.31 member4-fpc15 133.0.0.32 member4-fpc16 133.0.0.33 member4-fpc17 133.0.0.34 member4-fpc18 133.0.0.35 member4-fpc19 133.0.0.36 member4-fpc20 133.0.0.37 member4-fpc21 133.0.0.38 member4-fpc22 133.0.0.39 member4-fpc23 133.0.0.40 member4-fpc24 133.0.0.41 member4-fpc25 133.0.0.42 member4-fpc26 133.0.0.43 member4-fpc27 133.0.0.44 member4-fpc28 133.0.0.45 member4-fpc29 133.0.0.46 member4-fpc30 133.0.0.47 member4-fpc31 133.0.0.6 lcc4-backup 133.0.0.16 lcc4-fpc0 133.0.0.17 lcc4-fpc1 133.0.0.18 lcc4-fpc2 133.0.0.19 lcc4-fpc3 133.0.0.20 lcc4-fpc4 133.0.0.21 lcc4-fpc5 133.0.0.22 lcc4-fpc6 133.0.0.23 lcc4-fpc7 133.0.0.48 lcc4-spmb0 133.0.0.49 lcc4-spmb1 #LCC 5 (or MEMBER 5 on Virtual Chassis) 134.0.0.1 lcc5-master member5-master member5 134.0.0.4 lcc5-re0 member5-re0 134.0.0.5 lcc5-re1 member5-re1 134.0.0.6 lcc5-backup member5-backup 134.0.0.16 member5-fpc0 134.0.0.17 member5-fpc1 134.0.0.18 member5-fpc2 134.0.0.19 member5-fpc3 134.0.0.20 member5-fpc4 134.0.0.21 member5-fpc5 134.0.0.22 member5-fpc6 134.0.0.23 member5-fpc7 134.0.0.24 member5-fpc8 134.0.0.25 member5-fpc9 134.0.0.26 member5-fpc10 134.0.0.27 member5-fpc11 134.0.0.28 member5-fpc12 134.0.0.29 member5-fpc13 134.0.0.30 member5-fpc14 134.0.0.31 member5-fpc15 134.0.0.32 member5-fpc16 134.0.0.33 member5-fpc17 134.0.0.34 member5-fpc18 134.0.0.35 member5-fpc19 134.0.0.36 member5-fpc20 134.0.0.37 member5-fpc21 134.0.0.38 member5-fpc22 134.0.0.39 member5-fpc23 134.0.0.40 member5-fpc24 134.0.0.41 member5-fpc25 134.0.0.42 member5-fpc26 134.0.0.43 member5-fpc27 134.0.0.44 member5-fpc28 134.0.0.45 member5-fpc29 134.0.0.46 member5-fpc30 134.0.0.47 member5-fpc31 134.0.0.6 lcc5-backup 134.0.0.16 lcc5-fpc0 134.0.0.17 lcc5-fpc1 134.0.0.18 lcc5-fpc2 134.0.0.19 lcc5-fpc3 134.0.0.20 lcc5-fpc4 134.0.0.21 lcc5-fpc5 134.0.0.22 lcc5-fpc6 134.0.0.23 lcc5-fpc7 134.0.0.48 lcc5-spmb0 134.0.0.49 lcc5-spmb1 #LCC 6 (or MEMBER 6 on Virtual Chassis) 135.0.0.1 lcc6-master member6-master member6 135.0.0.4 lcc6-re0 member6-re0 135.0.0.5 lcc6-re1 member6-re1 135.0.0.6 lcc6-backup member6-backup 135.0.0.16 member6-fpc0 135.0.0.17 member6-fpc1 135.0.0.18 member6-fpc2 135.0.0.19 member6-fpc3 135.0.0.20 member6-fpc4 135.0.0.21 member6-fpc5 135.0.0.22 member6-fpc6 135.0.0.23 member6-fpc7 135.0.0.24 member6-fpc8 135.0.0.25 member6-fpc9 135.0.0.26 member6-fpc10 135.0.0.27 member6-fpc11 135.0.0.28 member6-fpc12 135.0.0.29 member6-fpc13 135.0.0.30 member6-fpc14 135.0.0.31 member6-fpc15 135.0.0.32 member6-fpc16 135.0.0.33 member6-fpc17 135.0.0.34 member6-fpc18 135.0.0.35 member6-fpc19 135.0.0.36 member6-fpc20 135.0.0.37 member6-fpc21 135.0.0.38 member6-fpc22 135.0.0.39 member6-fpc23 135.0.0.40 member6-fpc24 135.0.0.41 member6-fpc25 135.0.0.42 member6-fpc26 135.0.0.43 member6-fpc27 135.0.0.44 member6-fpc28 135.0.0.45 member6-fpc29 135.0.0.46 member6-fpc30 135.0.0.47 member6-fpc31 135.0.0.6 lcc6-backup 135.0.0.16 lcc6-fpc0 135.0.0.17 lcc6-fpc1 135.0.0.18 lcc6-fpc2 135.0.0.19 lcc6-fpc3 135.0.0.20 lcc6-fpc4 135.0.0.21 lcc6-fpc5 135.0.0.22 lcc6-fpc6 135.0.0.23 lcc6-fpc7 135.0.0.48 lcc6-spmb0 135.0.0.49 lcc6-spmb1 #LCC 7 (or MEMBER 7 on Virtual Chassis) 136.0.0.1 lcc7-master member7-master member7 136.0.0.4 lcc7-re0 member7-re0 136.0.0.5 lcc7-re1 member7-re1 136.0.0.6 lcc7-backup member7-backup 136.0.0.16 member7-fpc0 136.0.0.17 member7-fpc1 136.0.0.18 member7-fpc2 136.0.0.19 member7-fpc3 136.0.0.20 member7-fpc4 136.0.0.21 member7-fpc5 136.0.0.22 member7-fpc6 136.0.0.23 member7-fpc7 136.0.0.24 member7-fpc8 136.0.0.25 member7-fpc9 136.0.0.26 member7-fpc10 136.0.0.27 member7-fpc11 136.0.0.28 member7-fpc12 136.0.0.29 member7-fpc13 136.0.0.30 member7-fpc14 136.0.0.31 member7-fpc15 136.0.0.32 member7-fpc16 136.0.0.33 member7-fpc17 136.0.0.34 member7-fpc18 136.0.0.35 member7-fpc19 136.0.0.36 member7-fpc20 136.0.0.37 member7-fpc21 136.0.0.38 member7-fpc22 136.0.0.39 member7-fpc23 136.0.0.40 member7-fpc24 136.0.0.41 member7-fpc25 136.0.0.42 member7-fpc26 136.0.0.43 member7-fpc27 136.0.0.44 member7-fpc28 136.0.0.45 member7-fpc29 136.0.0.46 member7-fpc30 136.0.0.47 member7-fpc31 136.0.0.6 lcc7-backup 136.0.0.16 lcc7-fpc0 136.0.0.17 lcc7-fpc1 136.0.0.18 lcc7-fpc2 136.0.0.19 lcc7-fpc3 136.0.0.20 lcc7-fpc4 136.0.0.21 lcc7-fpc5 136.0.0.22 lcc7-fpc6 136.0.0.23 lcc7-fpc7 136.0.0.48 lcc7-spmb0 136.0.0.49 lcc7-spmb1 137.0.0.6 lcc8-backup 137.0.0.16 lcc8-fpc0 137.0.0.17 lcc8-fpc1 137.0.0.18 lcc8-fpc2 137.0.0.19 lcc8-fpc3 137.0.0.20 lcc8-fpc4 137.0.0.21 lcc8-fpc5 137.0.0.22 lcc8-fpc6 137.0.0.23 lcc8-fpc7 137.0.0.48 lcc8-spmb0 137.0.0.49 lcc8-spmb1 #LCC 8 (or MEMBER 8 on Virtual Chassis) 137.0.0.1 lcc8-master member8-master member8 137.0.0.4 lcc8-re0 member8-re0 137.0.0.5 lcc8-re1 member8-re1 137.0.0.6 lcc8-backup member8-backup 137.0.0.16 member8-fpc0 137.0.0.17 member8-fpc1 137.0.0.18 member8-fpc2 137.0.0.19 member8-fpc3 137.0.0.20 member8-fpc4 137.0.0.21 member8-fpc5 137.0.0.22 member8-fpc6 137.0.0.23 member8-fpc7 137.0.0.24 member8-fpc8 137.0.0.25 member8-fpc9 137.0.0.26 member8-fpc10 137.0.0.27 member8-fpc11 137.0.0.28 member8-fpc12 137.0.0.29 member8-fpc13 137.0.0.30 member8-fpc14 137.0.0.31 member8-fpc15 137.0.0.32 member8-fpc16 137.0.0.33 member8-fpc17 137.0.0.34 member8-fpc18 137.0.0.35 member8-fpc19 137.0.0.36 member8-fpc20 137.0.0.37 member8-fpc21 137.0.0.38 member8-fpc22 137.0.0.39 member8-fpc23 137.0.0.40 member8-fpc24 137.0.0.41 member8-fpc25 137.0.0.42 member8-fpc26 137.0.0.43 member8-fpc27 137.0.0.44 member8-fpc28 137.0.0.45 member8-fpc29 137.0.0.46 member8-fpc30 137.0.0.47 member8-fpc31 138.0.0.6 lcc9-backup 138.0.0.16 lcc9-fpc0 138.0.0.17 lcc9-fpc1 138.0.0.18 lcc9-fpc2 138.0.0.19 lcc9-fpc3 138.0.0.20 lcc9-fpc4 138.0.0.21 lcc9-fpc5 138.0.0.22 lcc9-fpc6 138.0.0.23 lcc9-fpc7 138.0.0.48 lcc9-spmb0 138.0.0.49 lcc9-spmb1 #LCC 9 (or MEMBER 9 on Virtual Chassis) 138.0.0.1 lcc9-master member9-master member9 138.0.0.4 lcc9-re0 member9-re0 138.0.0.5 lcc9-re1 member9-re1 138.0.0.6 lcc9-backup member9-backup 138.0.0.16 member9-fpc0 138.0.0.17 member9-fpc1 138.0.0.18 member9-fpc2 138.0.0.19 member9-fpc3 138.0.0.20 member9-fpc4 138.0.0.21 member9-fpc5 138.0.0.22 member9-fpc6 138.0.0.23 member9-fpc7 138.0.0.24 member9-fpc8 138.0.0.25 member9-fpc9 138.0.0.26 member9-fpc10 138.0.0.27 member9-fpc11 138.0.0.28 member9-fpc12 138.0.0.29 member9-fpc13 138.0.0.30 member9-fpc14 138.0.0.31 member9-fpc15 138.0.0.32 member9-fpc16 138.0.0.33 member9-fpc17 138.0.0.34 member9-fpc18 138.0.0.35 member9-fpc19 138.0.0.36 member9-fpc20 138.0.0.37 member9-fpc21 138.0.0.38 member9-fpc22 138.0.0.39 member9-fpc23 138.0.0.40 member9-fpc24 138.0.0.41 member9-fpc25 138.0.0.42 member9-fpc26 138.0.0.43 member9-fpc27 138.0.0.44 member9-fpc28 138.0.0.45 member9-fpc29 138.0.0.46 member9-fpc30 138.0.0.47 member9-fpc31 139.0.0.6 lcc10-backup 139.0.0.16 lcc10-fpc0 139.0.0.17 lcc10-fpc1 139.0.0.18 lcc10-fpc2 139.0.0.19 lcc10-fpc3 139.0.0.20 lcc10-fpc4 139.0.0.21 lcc10-fpc5 139.0.0.22 lcc10-fpc6 139.0.0.23 lcc10-fpc7 139.0.0.48 lcc10-spmb0 139.0.0.49 lcc10-spmb1 #LCC 10 (or MEMBER 10 on Virtual Chassis) 139.0.0.1 lcc10-master member10-master 139.0.0.4 lcc10-re0 member10-re0 139.0.0.5 lcc10-re1 member10-re1 139.0.0.6 lcc10-backup member10-backup 139.0.0.16 member10-fpc0 139.0.0.17 member10-fpc1 139.0.0.18 member10-fpc2 139.0.0.19 member10-fpc3 139.0.0.20 member10-fpc4 139.0.0.21 member10-fpc5 139.0.0.22 member10-fpc6 139.0.0.23 member10-fpc7 139.0.0.24 member10-fpc8 139.0.0.25 member10-fpc9 139.0.0.26 member10-fpc10 139.0.0.27 member10-fpc11 139.0.0.28 member10-fpc12 139.0.0.29 member10-fpc13 139.0.0.30 member10-fpc14 139.0.0.31 member10-fpc15 139.0.0.32 member10-fpc16 139.0.0.33 member10-fpc17 139.0.0.34 member10-fpc18 139.0.0.35 member10-fpc19 139.0.0.36 member10-fpc20 139.0.0.37 member10-fpc21 139.0.0.38 member10-fpc22 139.0.0.39 member10-fpc23 139.0.0.40 member10-fpc24 139.0.0.41 member10-fpc25 139.0.0.42 member10-fpc26 139.0.0.43 member10-fpc27 139.0.0.44 member10-fpc28 139.0.0.45 member10-fpc29 139.0.0.46 member10-fpc30 139.0.0.47 member10-fpc31 140.0.0.6 lcc11-backup 140.0.0.16 lcc11-fpc0 140.0.0.17 lcc11-fpc1 140.0.0.18 lcc11-fpc2 140.0.0.19 lcc11-fpc3 140.0.0.20 lcc11-fpc4 140.0.0.21 lcc11-fpc5 140.0.0.22 lcc11-fpc6 140.0.0.23 lcc11-fpc7 140.0.0.48 lcc11-spmb0 140.0.0.49 lcc11-spmb1 #LCC 11 (or MEMBER 11 on Virtual Chassis) 140.0.0.1 lcc11-master member11-master 140.0.0.4 lcc11-re0 member11-re0 140.0.0.5 lcc11-re1 member11-re1 140.0.0.6 lcc11-backup member11-backup 140.0.0.16 member11-fpc0 140.0.0.17 member11-fpc1 140.0.0.18 member11-fpc2 140.0.0.19 member11-fpc3 140.0.0.20 member11-fpc4 140.0.0.21 member11-fpc5 140.0.0.22 member11-fpc6 140.0.0.23 member11-fpc7 140.0.0.24 member11-fpc8 140.0.0.25 member11-fpc9 140.0.0.26 member11-fpc10 140.0.0.27 member11-fpc11 140.0.0.28 member11-fpc12 140.0.0.29 member11-fpc13 140.0.0.30 member11-fpc14 140.0.0.31 member11-fpc15 140.0.0.32 member11-fpc16 140.0.0.33 member11-fpc17 140.0.0.34 member11-fpc18 140.0.0.35 member11-fpc19 140.0.0.36 member11-fpc20 140.0.0.37 member11-fpc21 140.0.0.38 member11-fpc22 140.0.0.39 member11-fpc23 140.0.0.40 member11-fpc24 140.0.0.41 member11-fpc25 140.0.0.42 member11-fpc26 140.0.0.43 member11-fpc27 140.0.0.44 member11-fpc28 140.0.0.45 member11-fpc29 140.0.0.46 member11-fpc30 140.0.0.47 member11-fpc31 141.0.0.6 lcc12-backup 141.0.0.16 lcc12-fpc0 141.0.0.17 lcc12-fpc1 141.0.0.18 lcc12-fpc2 141.0.0.19 lcc12-fpc3 141.0.0.20 lcc12-fpc4 141.0.0.21 lcc12-fpc5 141.0.0.22 lcc12-fpc6 141.0.0.23 lcc12-fpc7 141.0.0.48 lcc12-spmb0 141.0.0.49 lcc12-spmb1 #LCC 12 (or MEMBER 12 on Virtual Chassis) 141.0.0.1 lcc12-master member12-master 141.0.0.4 lcc12-re0 member12-re0 141.0.0.5 lcc12-re1 member12-re1 141.0.0.6 lcc12-backup member12-backup 141.0.0.16 member12-fpc0 141.0.0.17 member12-fpc1 141.0.0.18 member12-fpc2 141.0.0.19 member12-fpc3 141.0.0.20 member12-fpc4 141.0.0.21 member12-fpc5 141.0.0.22 member12-fpc6 141.0.0.23 member12-fpc7 141.0.0.24 member12-fpc8 141.0.0.25 member12-fpc9 141.0.0.26 member12-fpc10 141.0.0.27 member12-fpc11 141.0.0.28 member12-fpc12 141.0.0.29 member12-fpc13 141.0.0.30 member12-fpc14 141.0.0.31 member12-fpc15 141.0.0.32 member12-fpc16 141.0.0.33 member12-fpc17 141.0.0.34 member12-fpc18 141.0.0.35 member12-fpc19 141.0.0.36 member12-fpc20 141.0.0.37 member12-fpc21 141.0.0.38 member12-fpc22 141.0.0.39 member12-fpc23 141.0.0.40 member12-fpc24 141.0.0.41 member12-fpc25 141.0.0.42 member12-fpc26 141.0.0.43 member12-fpc27 141.0.0.44 member12-fpc28 141.0.0.45 member12-fpc29 141.0.0.46 member12-fpc30 141.0.0.47 member12-fpc31 142.0.0.6 lcc13-backup 142.0.0.16 lcc13-fpc0 142.0.0.17 lcc13-fpc1 142.0.0.18 lcc13-fpc2 142.0.0.19 lcc13-fpc3 142.0.0.20 lcc13-fpc4 142.0.0.21 lcc13-fpc5 142.0.0.22 lcc13-fpc6 142.0.0.23 lcc13-fpc7 142.0.0.48 lcc13-spmb0 142.0.0.49 lcc13-spmb1 #LCC 13 (or MEMBER 13 on Virtual Chassis) 142.0.0.1 lcc13-master member13-master 142.0.0.4 lcc13-re0 member13-re0 142.0.0.5 lcc13-re1 member13-re1 142.0.0.6 lcc13-backup member13-backup 142.0.0.16 member13-fpc0 142.0.0.17 member13-fpc1 142.0.0.18 member13-fpc2 142.0.0.19 member13-fpc3 142.0.0.20 member13-fpc4 142.0.0.21 member13-fpc5 142.0.0.22 member13-fpc6 142.0.0.23 member13-fpc7 142.0.0.24 member13-fpc8 142.0.0.25 member13-fpc9 142.0.0.26 member13-fpc10 142.0.0.27 member13-fpc11 142.0.0.28 member13-fpc12 142.0.0.29 member13-fpc13 142.0.0.30 member13-fpc14 142.0.0.31 member13-fpc15 142.0.0.32 member13-fpc16 142.0.0.33 member13-fpc17 142.0.0.34 member13-fpc18 142.0.0.35 member13-fpc19 142.0.0.36 member13-fpc20 142.0.0.37 member13-fpc21 142.0.0.38 member13-fpc22 142.0.0.39 member13-fpc23 142.0.0.40 member13-fpc24 142.0.0.41 member13-fpc25 142.0.0.42 member13-fpc26 142.0.0.43 member13-fpc27 142.0.0.44 member13-fpc28 142.0.0.45 member13-fpc29 142.0.0.46 member13-fpc30 142.0.0.47 member13-fpc31 143.0.0.6 lcc14-backup 143.0.0.16 lcc14-fpc0 143.0.0.17 lcc14-fpc1 143.0.0.18 lcc14-fpc2 143.0.0.19 lcc14-fpc3 143.0.0.20 lcc14-fpc4 143.0.0.21 lcc14-fpc5 143.0.0.22 lcc14-fpc6 143.0.0.23 lcc14-fpc7 143.0.0.48 lcc14-spmb0 143.0.0.49 lcc14-spmb1 #LCC 14 (or MEMBER 14 on Virtual Chassis) 143.0.0.1 lcc14-master member14-master 143.0.0.4 lcc14-re0 member14-re0 143.0.0.5 lcc14-re1 member14-re1 143.0.0.6 lcc14-backup member14-backup 143.0.0.16 member14-fpc0 143.0.0.17 member14-fpc1 143.0.0.18 member14-fpc2 143.0.0.19 member14-fpc3 143.0.0.20 member14-fpc4 143.0.0.21 member14-fpc5 143.0.0.22 member14-fpc6 143.0.0.23 member14-fpc7 143.0.0.24 member14-fpc8 143.0.0.25 member14-fpc9 143.0.0.26 member14-fpc10 143.0.0.27 member14-fpc11 143.0.0.28 member14-fpc12 143.0.0.29 member14-fpc13 143.0.0.30 member14-fpc14 143.0.0.31 member14-fpc15 143.0.0.32 member14-fpc16 143.0.0.33 member14-fpc17 143.0.0.34 member14-fpc18 143.0.0.35 member14-fpc19 143.0.0.36 member14-fpc20 143.0.0.37 member14-fpc21 143.0.0.38 member14-fpc22 143.0.0.39 member14-fpc23 143.0.0.40 member14-fpc24 143.0.0.41 member14-fpc25 143.0.0.42 member14-fpc26 143.0.0.43 member14-fpc27 143.0.0.44 member14-fpc28 143.0.0.45 member14-fpc29 143.0.0.46 member14-fpc30 143.0.0.47 member14-fpc31 144.0.0.6 lcc15-backup 144.0.0.16 lcc15-fpc0 144.0.0.17 lcc15-fpc1 144.0.0.18 lcc15-fpc2 144.0.0.19 lcc15-fpc3 144.0.0.20 lcc15-fpc4 144.0.0.21 lcc15-fpc5 144.0.0.22 lcc15-fpc6 144.0.0.23 lcc15-fpc7 144.0.0.48 lcc15-spmb0 144.0.0.49 lcc15-spmb1 #LCC 15 (or MEMBER 15 on Virtual Chassis) 144.0.0.1 lcc15-master member15-master 144.0.0.4 lcc15-re0 member15-re0 144.0.0.5 lcc15-re1 member15-re1 144.0.0.6 lcc15-backup member15-backup 144.0.0.16 member15-fpc0 144.0.0.17 member15-fpc1 144.0.0.18 member15-fpc2 144.0.0.19 member15-fpc3 144.0.0.20 member15-fpc4 144.0.0.21 member15-fpc5 144.0.0.22 member15-fpc6 144.0.0.23 member15-fpc7 144.0.0.24 member15-fpc8 144.0.0.25 member15-fpc9 144.0.0.26 member15-fpc10 144.0.0.27 member15-fpc11 144.0.0.28 member15-fpc12 144.0.0.29 member15-fpc13 144.0.0.30 member15-fpc14 144.0.0.31 member15-fpc15 144.0.0.32 member15-fpc16 144.0.0.33 member15-fpc17 144.0.0.34 member15-fpc18 144.0.0.35 member15-fpc19 144.0.0.36 member15-fpc20 144.0.0.37 member15-fpc21 144.0.0.38 member15-fpc22 144.0.0.39 member15-fpc23 144.0.0.40 member15-fpc24 144.0.0.41 member15-fpc25 144.0.0.42 member15-fpc26 144.0.0.43 member15-fpc27 144.0.0.44 member15-fpc28 144.0.0.45 member15-fpc29 144.0.0.46 member15-fpc30 144.0.0.47 member15-fpc31 #LCC 16 (or MEMBER 16 on Virtual Chassis) 145.0.0.1 lcc16-master member16-master 145.0.0.4 lcc16-re0 member16-re0 145.0.0.5 lcc16-re1 member16-re1 145.0.0.6 lcc16-backup member16-backup 145.0.0.16 member16-fpc0 145.0.0.17 member16-fpc1 145.0.0.18 member16-fpc2 145.0.0.19 member16-fpc3 145.0.0.20 member16-fpc4 145.0.0.21 member16-fpc5 145.0.0.22 member16-fpc6 145.0.0.23 member16-fpc7 145.0.0.24 member16-fpc8 145.0.0.25 member16-fpc9 145.0.0.26 member16-fpc10 145.0.0.27 member16-fpc11 145.0.0.28 member16-fpc12 145.0.0.29 member16-fpc13 145.0.0.30 member16-fpc14 145.0.0.31 member16-fpc15 145.0.0.32 member16-fpc16 145.0.0.33 member16-fpc17 145.0.0.34 member16-fpc18 145.0.0.35 member16-fpc19 145.0.0.36 member16-fpc20 145.0.0.37 member16-fpc21 145.0.0.38 member16-fpc22 145.0.0.39 member16-fpc23 145.0.0.40 member16-fpc24 145.0.0.41 member16-fpc25 145.0.0.42 member16-fpc26 145.0.0.43 member16-fpc27 145.0.0.44 member16-fpc28 145.0.0.45 member16-fpc29 145.0.0.46 member16-fpc30 145.0.0.47 member16-fpc31 #LCC 17 (or MEMBER 17 on Virtual Chassis) 146.0.0.1 lcc17-master member17-master 146.0.0.4 lcc17-re0 member17-re0 146.0.0.5 lcc17-re1 member17-re1 146.0.0.6 lcc17-backup member17-backup 146.0.0.16 member17-fpc0 146.0.0.17 member17-fpc1 146.0.0.18 member17-fpc2 146.0.0.19 member17-fpc3 146.0.0.20 member17-fpc4 146.0.0.21 member17-fpc5 146.0.0.22 member17-fpc6 146.0.0.23 member17-fpc7 146.0.0.24 member17-fpc8 146.0.0.25 member17-fpc9 146.0.0.26 member17-fpc10 146.0.0.27 member17-fpc11 146.0.0.28 member17-fpc12 146.0.0.29 member17-fpc13 146.0.0.30 member17-fpc14 146.0.0.31 member17-fpc15 146.0.0.32 member17-fpc16 146.0.0.33 member17-fpc17 146.0.0.34 member17-fpc18 146.0.0.35 member17-fpc19 146.0.0.36 member17-fpc20 146.0.0.37 member17-fpc21 146.0.0.38 member17-fpc22 146.0.0.39 member17-fpc23 146.0.0.40 member17-fpc24 146.0.0.41 member17-fpc25 146.0.0.42 member17-fpc26 146.0.0.43 member17-fpc27 146.0.0.44 member17-fpc28 146.0.0.45 member17-fpc29 146.0.0.46 member17-fpc30 146.0.0.47 member17-fpc31 #LCC 18 (or MEMBER 18 on Virtual Chassis) 147.0.0.1 lcc18-master member18-master 147.0.0.4 lcc18-re0 member18-re0 147.0.0.5 lcc18-re1 member18-re1 147.0.0.6 lcc18-backup member18-backup 147.0.0.16 member18-fpc0 147.0.0.17 member18-fpc1 147.0.0.18 member18-fpc2 147.0.0.19 member18-fpc3 147.0.0.20 member18-fpc4 147.0.0.21 member18-fpc5 147.0.0.22 member18-fpc6 147.0.0.23 member18-fpc7 147.0.0.24 member18-fpc8 147.0.0.25 member18-fpc9 147.0.0.26 member18-fpc10 147.0.0.27 member18-fpc11 147.0.0.28 member18-fpc12 147.0.0.29 member18-fpc13 147.0.0.30 member18-fpc14 147.0.0.31 member18-fpc15 147.0.0.32 member18-fpc16 147.0.0.33 member18-fpc17 147.0.0.34 member18-fpc18 147.0.0.35 member18-fpc19 147.0.0.36 member18-fpc20 147.0.0.37 member18-fpc21 147.0.0.38 member18-fpc22 147.0.0.39 member18-fpc23 147.0.0.40 member18-fpc24 147.0.0.41 member18-fpc25 147.0.0.42 member18-fpc26 147.0.0.43 member18-fpc27 147.0.0.44 member18-fpc28 147.0.0.45 member18-fpc29 147.0.0.46 member18-fpc30 147.0.0.47 member18-fpc31 #LCC 19 (or MEMBER 19 on Virtual Chassis) 148.0.0.1 lcc19-master member19-master 148.0.0.4 lcc19-re0 member19-re0 148.0.0.5 lcc19-re1 member19-re1 148.0.0.6 lcc19-backup member19-backup 148.0.0.16 member19-fpc0 148.0.0.17 member19-fpc1 148.0.0.18 member19-fpc2 148.0.0.19 member19-fpc3 148.0.0.20 member19-fpc4 148.0.0.21 member19-fpc5 148.0.0.22 member19-fpc6 148.0.0.23 member19-fpc7 148.0.0.24 member19-fpc8 148.0.0.25 member19-fpc9 148.0.0.26 member19-fpc10 148.0.0.27 member19-fpc11 148.0.0.28 member19-fpc12 148.0.0.29 member19-fpc13 148.0.0.30 member19-fpc14 148.0.0.31 member19-fpc15 148.0.0.32 member19-fpc16 148.0.0.33 member19-fpc17 148.0.0.34 member19-fpc18 148.0.0.35 member19-fpc19 148.0.0.36 member19-fpc20 148.0.0.37 member19-fpc21 148.0.0.38 member19-fpc22 148.0.0.39 member19-fpc23 148.0.0.40 member19-fpc24 148.0.0.41 member19-fpc25 148.0.0.42 member19-fpc26 148.0.0.43 member19-fpc27 148.0.0.44 member19-fpc28 148.0.0.45 member19-fpc29 148.0.0.46 member19-fpc30 148.0.0.47 member19-fpc31 #LCC 20 (or MEMBER 20 on Virtual Chassis) 149.0.0.1 lcc20-master member20-master 149.0.0.4 lcc20-re0 member20-re0 149.0.0.5 lcc20-re1 member20-re1 149.0.0.6 lcc20-backup member20-backup 149.0.0.16 member20-fpc0 149.0.0.17 member20-fpc1 149.0.0.18 member20-fpc2 149.0.0.19 member20-fpc3 149.0.0.20 member20-fpc4 149.0.0.21 member20-fpc5 149.0.0.22 member20-fpc6 149.0.0.23 member20-fpc7 149.0.0.24 member20-fpc8 149.0.0.25 member20-fpc9 149.0.0.26 member20-fpc10 149.0.0.27 member20-fpc11 149.0.0.28 member20-fpc12 149.0.0.29 member20-fpc13 149.0.0.30 member20-fpc14 149.0.0.31 member20-fpc15 149.0.0.32 member20-fpc16 149.0.0.33 member20-fpc17 149.0.0.34 member20-fpc18 149.0.0.35 member20-fpc19 149.0.0.36 member20-fpc20 149.0.0.37 member20-fpc21 149.0.0.38 member20-fpc22 149.0.0.39 member20-fpc23 149.0.0.40 member20-fpc24 149.0.0.41 member20-fpc25 149.0.0.42 member20-fpc26 149.0.0.43 member20-fpc27 149.0.0.44 member20-fpc28 149.0.0.45 member20-fpc29 149.0.0.46 member20-fpc30 149.0.0.47 member20-fpc31 #LCC 21 (or MEMBER 21 on Virtual Chassis) 150.0.0.1 lcc21-master member21-master 150.0.0.4 lcc21-re0 member21-re0 150.0.0.5 lcc21-re1 member21-re1 150.0.0.6 lcc21-backup member21-backup 150.0.0.16 member21-fpc0 150.0.0.17 member21-fpc1 150.0.0.18 member21-fpc2 150.0.0.19 member21-fpc3 150.0.0.20 member21-fpc4 150.0.0.21 member21-fpc5 150.0.0.22 member21-fpc6 150.0.0.23 member21-fpc7 150.0.0.24 member21-fpc8 150.0.0.25 member21-fpc9 150.0.0.26 member21-fpc10 150.0.0.27 member21-fpc11 150.0.0.28 member21-fpc12 150.0.0.29 member21-fpc13 150.0.0.30 member21-fpc14 150.0.0.31 member21-fpc15 150.0.0.32 member21-fpc16 150.0.0.33 member21-fpc17 150.0.0.34 member21-fpc18 150.0.0.35 member21-fpc19 150.0.0.36 member21-fpc20 150.0.0.37 member21-fpc21 150.0.0.38 member21-fpc22 150.0.0.39 member21-fpc23 150.0.0.40 member21-fpc24 150.0.0.41 member21-fpc25 150.0.0.42 member21-fpc26 150.0.0.43 member21-fpc27 150.0.0.44 member21-fpc28 150.0.0.45 member21-fpc29 150.0.0.46 member21-fpc30 150.0.0.47 member21-fpc31 #LCC 22 (or MEMBER 22 on Virtual Chassis) 151.0.0.1 lcc22-master member22-master 151.0.0.4 lcc22-re0 member22-re0 151.0.0.5 lcc22-re1 member22-re1 151.0.0.6 lcc22-backup member22-backup 151.0.0.16 member22-fpc0 151.0.0.17 member22-fpc1 151.0.0.18 member22-fpc2 151.0.0.19 member22-fpc3 151.0.0.20 member22-fpc4 151.0.0.21 member22-fpc5 151.0.0.22 member22-fpc6 151.0.0.23 member22-fpc7 151.0.0.24 member22-fpc8 151.0.0.25 member22-fpc9 151.0.0.26 member22-fpc10 151.0.0.27 member22-fpc11 151.0.0.28 member22-fpc12 151.0.0.29 member22-fpc13 151.0.0.30 member22-fpc14 151.0.0.31 member22-fpc15 151.0.0.32 member22-fpc16 151.0.0.33 member22-fpc17 151.0.0.34 member22-fpc18 151.0.0.35 member22-fpc19 151.0.0.36 member22-fpc20 151.0.0.37 member22-fpc21 151.0.0.38 member22-fpc22 151.0.0.39 member22-fpc23 151.0.0.40 member22-fpc24 151.0.0.41 member22-fpc25 151.0.0.42 member22-fpc26 151.0.0.43 member22-fpc27 151.0.0.44 member22-fpc28 151.0.0.45 member22-fpc29 151.0.0.46 member22-fpc30 151.0.0.47 member22-fpc31 #LCC 23 (or MEMBER 23 on Virtual Chassis) 152.0.0.1 lcc23-master member23-master 152.0.0.4 lcc23-re0 member23-re0 152.0.0.5 lcc23-re1 member23-re1 152.0.0.6 lcc23-backup member23-backup 152.0.0.16 member23-fpc0 152.0.0.17 member23-fpc1 152.0.0.18 member23-fpc2 152.0.0.19 member23-fpc3 152.0.0.20 member23-fpc4 152.0.0.21 member23-fpc5 152.0.0.22 member23-fpc6 152.0.0.23 member23-fpc7 152.0.0.24 member23-fpc8 152.0.0.25 member23-fpc9 152.0.0.26 member23-fpc10 152.0.0.27 member23-fpc11 152.0.0.28 member23-fpc12 152.0.0.29 member23-fpc13 152.0.0.30 member23-fpc14 152.0.0.31 member23-fpc15 152.0.0.32 member23-fpc16 152.0.0.33 member23-fpc17 152.0.0.34 member23-fpc18 152.0.0.35 member23-fpc19 152.0.0.36 member23-fpc20 152.0.0.37 member23-fpc21 152.0.0.38 member23-fpc22 152.0.0.39 member23-fpc23 152.0.0.40 member23-fpc24 152.0.0.41 member23-fpc25 152.0.0.42 member23-fpc26 152.0.0.43 member23-fpc27 152.0.0.44 member23-fpc28 152.0.0.45 member23-fpc29 152.0.0.46 member23-fpc30 152.0.0.47 member23-fpc31 #LCC 24 (or MEMBER 24 on Virtual Chassis) 153.0.0.1 lcc24-master member24-master 153.0.0.4 lcc24-re0 member24-re0 153.0.0.5 lcc24-re1 member24-re1 153.0.0.6 lcc24-backup member24-backup 153.0.0.16 member24-fpc0 153.0.0.17 member24-fpc1 153.0.0.18 member24-fpc2 153.0.0.19 member24-fpc3 153.0.0.20 member24-fpc4 153.0.0.21 member24-fpc5 153.0.0.22 member24-fpc6 153.0.0.23 member24-fpc7 153.0.0.24 member24-fpc8 153.0.0.25 member24-fpc9 153.0.0.26 member24-fpc10 153.0.0.27 member24-fpc11 153.0.0.28 member24-fpc12 153.0.0.29 member24-fpc13 153.0.0.30 member24-fpc14 153.0.0.31 member24-fpc15 153.0.0.32 member24-fpc16 153.0.0.33 member24-fpc17 153.0.0.34 member24-fpc18 153.0.0.35 member24-fpc19 153.0.0.36 member24-fpc20 153.0.0.37 member24-fpc21 153.0.0.38 member24-fpc22 153.0.0.39 member24-fpc23 153.0.0.40 member24-fpc24 153.0.0.41 member24-fpc25 153.0.0.42 member24-fpc26 153.0.0.43 member24-fpc27 153.0.0.44 member24-fpc28 153.0.0.45 member24-fpc29 153.0.0.46 member24-fpc30 153.0.0.47 member24-fpc31 #LCC 25 (or MEMBER 25 on Virtual Chassis) 154.0.0.1 lcc25-master member25-master 154.0.0.4 lcc25-re0 member25-re0 154.0.0.5 lcc25-re1 member25-re1 154.0.0.6 lcc25-backup member25-backup 154.0.0.16 member25-fpc0 154.0.0.17 member25-fpc1 154.0.0.18 member25-fpc2 154.0.0.19 member25-fpc3 154.0.0.20 member25-fpc4 154.0.0.21 member25-fpc5 154.0.0.22 member25-fpc6 154.0.0.23 member25-fpc7 154.0.0.24 member25-fpc8 154.0.0.25 member25-fpc9 154.0.0.26 member25-fpc10 154.0.0.27 member25-fpc11 154.0.0.28 member25-fpc12 154.0.0.29 member25-fpc13 154.0.0.30 member25-fpc14 154.0.0.31 member25-fpc15 154.0.0.32 member25-fpc16 154.0.0.33 member25-fpc17 154.0.0.34 member25-fpc18 154.0.0.35 member25-fpc19 154.0.0.36 member25-fpc20 154.0.0.37 member25-fpc21 154.0.0.38 member25-fpc22 154.0.0.39 member25-fpc23 154.0.0.40 member25-fpc24 154.0.0.41 member25-fpc25 154.0.0.42 member25-fpc26 154.0.0.43 member25-fpc27 154.0.0.44 member25-fpc28 154.0.0.45 member25-fpc29 154.0.0.46 member25-fpc30 154.0.0.47 member25-fpc31 #LCC 26 (or MEMBER 26 on Virtual Chassis) 155.0.0.1 lcc26-master member26-master 155.0.0.4 lcc26-re0 member26-re0 155.0.0.5 lcc26-re1 member26-re1 155.0.0.6 lcc26-backup member26-backup 155.0.0.16 member26-fpc0 155.0.0.17 member26-fpc1 155.0.0.18 member26-fpc2 155.0.0.19 member26-fpc3 155.0.0.20 member26-fpc4 155.0.0.21 member26-fpc5 155.0.0.22 member26-fpc6 155.0.0.23 member26-fpc7 155.0.0.24 member26-fpc8 155.0.0.25 member26-fpc9 155.0.0.26 member26-fpc10 155.0.0.27 member26-fpc11 155.0.0.28 member26-fpc12 155.0.0.29 member26-fpc13 155.0.0.30 member26-fpc14 155.0.0.31 member26-fpc15 155.0.0.32 member26-fpc16 155.0.0.33 member26-fpc17 155.0.0.34 member26-fpc18 155.0.0.35 member26-fpc19 155.0.0.36 member26-fpc20 155.0.0.37 member26-fpc21 155.0.0.38 member26-fpc22 155.0.0.39 member26-fpc23 155.0.0.40 member26-fpc24 155.0.0.41 member26-fpc25 155.0.0.42 member26-fpc26 155.0.0.43 member26-fpc27 155.0.0.44 member26-fpc28 155.0.0.45 member26-fpc29 155.0.0.46 member26-fpc30 155.0.0.47 member26-fpc31 #LCC 27 (or MEMBER 27 on Virtual Chassis) 156.0.0.1 lcc27-master member27-master 156.0.0.4 lcc27-re0 member27-re0 156.0.0.5 lcc27-re1 member27-re1 156.0.0.6 lcc27-backup member27-backup 156.0.0.16 member27-fpc0 156.0.0.17 member27-fpc1 156.0.0.18 member27-fpc2 156.0.0.19 member27-fpc3 156.0.0.20 member27-fpc4 156.0.0.21 member27-fpc5 156.0.0.22 member27-fpc6 156.0.0.23 member27-fpc7 156.0.0.24 member27-fpc8 156.0.0.25 member27-fpc9 156.0.0.26 member27-fpc10 156.0.0.27 member27-fpc11 156.0.0.28 member27-fpc12 156.0.0.29 member27-fpc13 156.0.0.30 member27-fpc14 156.0.0.31 member27-fpc15 156.0.0.32 member27-fpc16 156.0.0.33 member27-fpc17 156.0.0.34 member27-fpc18 156.0.0.35 member27-fpc19 156.0.0.36 member27-fpc20 156.0.0.37 member27-fpc21 156.0.0.38 member27-fpc22 156.0.0.39 member27-fpc23 156.0.0.40 member27-fpc24 156.0.0.41 member27-fpc25 156.0.0.42 member27-fpc26 156.0.0.43 member27-fpc27 156.0.0.44 member27-fpc28 156.0.0.45 member27-fpc29 156.0.0.46 member27-fpc30 156.0.0.47 member27-fpc31 #LCC 28 (or MEMBER 28 on Virtual Chassis) 157.0.0.1 lcc28-master member28-master 157.0.0.4 lcc28-re0 member28-re0 157.0.0.5 lcc28-re1 member28-re1 157.0.0.6 lcc28-backup member28-backup 157.0.0.16 member28-fpc0 157.0.0.17 member28-fpc1 157.0.0.18 member28-fpc2 157.0.0.19 member28-fpc3 157.0.0.20 member28-fpc4 157.0.0.21 member28-fpc5 157.0.0.22 member28-fpc6 157.0.0.23 member28-fpc7 157.0.0.24 member28-fpc8 157.0.0.25 member28-fpc9 157.0.0.26 member28-fpc10 157.0.0.27 member28-fpc11 157.0.0.28 member28-fpc12 157.0.0.29 member28-fpc13 157.0.0.30 member28-fpc14 157.0.0.31 member28-fpc15 157.0.0.32 member28-fpc16 157.0.0.33 member28-fpc17 157.0.0.34 member28-fpc18 157.0.0.35 member28-fpc19 157.0.0.36 member28-fpc20 157.0.0.37 member28-fpc21 157.0.0.38 member28-fpc22 157.0.0.39 member28-fpc23 157.0.0.40 member28-fpc24 157.0.0.41 member28-fpc25 157.0.0.42 member28-fpc26 157.0.0.43 member28-fpc27 157.0.0.44 member28-fpc28 157.0.0.45 member28-fpc29 157.0.0.46 member28-fpc30 157.0.0.47 member28-fpc31 #LCC 29 (or MEMBER 29 on Virtual Chassis) 158.0.0.1 lcc29-master member29-master 158.0.0.4 lcc29-re0 member29-re0 158.0.0.5 lcc29-re1 member29-re1 158.0.0.6 lcc29-backup member29-backup 158.0.0.16 member29-fpc0 158.0.0.17 member29-fpc1 158.0.0.18 member29-fpc2 158.0.0.19 member29-fpc3 158.0.0.20 member29-fpc4 158.0.0.21 member29-fpc5 158.0.0.22 member29-fpc6 158.0.0.23 member29-fpc7 158.0.0.24 member29-fpc8 158.0.0.25 member29-fpc9 158.0.0.26 member29-fpc10 158.0.0.27 member29-fpc11 158.0.0.28 member29-fpc12 158.0.0.29 member29-fpc13 158.0.0.30 member29-fpc14 158.0.0.31 member29-fpc15 158.0.0.32 member29-fpc16 158.0.0.33 member29-fpc17 158.0.0.34 member29-fpc18 158.0.0.35 member29-fpc19 158.0.0.36 member29-fpc20 158.0.0.37 member29-fpc21 158.0.0.38 member29-fpc22 158.0.0.39 member29-fpc23 158.0.0.40 member29-fpc24 158.0.0.41 member29-fpc25 158.0.0.42 member29-fpc26 158.0.0.43 member29-fpc27 158.0.0.44 member29-fpc28 158.0.0.45 member29-fpc29 158.0.0.46 member29-fpc30 158.0.0.47 member29-fpc31 #LCC 30 (or MEMBER 30 on Virtual Chassis) 159.0.0.1 lcc30-master member30-master 159.0.0.4 lcc30-re0 member30-re0 159.0.0.5 lcc30-re1 member30-re1 159.0.0.6 lcc30-backup member30-backup 159.0.0.16 member30-fpc0 159.0.0.17 member30-fpc1 159.0.0.18 member30-fpc2 159.0.0.19 member30-fpc3 159.0.0.20 member30-fpc4 159.0.0.21 member30-fpc5 159.0.0.22 member30-fpc6 159.0.0.23 member30-fpc7 159.0.0.24 member30-fpc8 159.0.0.25 member30-fpc9 159.0.0.26 member30-fpc10 159.0.0.27 member30-fpc11 159.0.0.28 member30-fpc12 159.0.0.29 member30-fpc13 159.0.0.30 member30-fpc14 159.0.0.31 member30-fpc15 159.0.0.32 member30-fpc16 159.0.0.33 member30-fpc17 159.0.0.34 member30-fpc18 159.0.0.35 member30-fpc19 159.0.0.36 member30-fpc20 159.0.0.37 member30-fpc21 159.0.0.38 member30-fpc22 159.0.0.39 member30-fpc23 159.0.0.40 member30-fpc24 159.0.0.41 member30-fpc25 159.0.0.42 member30-fpc26 159.0.0.43 member30-fpc27 159.0.0.44 member30-fpc28 159.0.0.45 member30-fpc29 159.0.0.46 member30-fpc30 159.0.0.47 member30-fpc31 #LCC 31 (or MEMBER 31 on Virtual Chassis) 160.0.0.1 lcc31-master member31-master 160.0.0.4 lcc31-re0 member31-re0 160.0.0.5 lcc31-re1 member31-re1 160.0.0.6 lcc31-backup member31-backup 160.0.0.16 member31-fpc0 160.0.0.17 member31-fpc1 160.0.0.18 member31-fpc2 160.0.0.19 member31-fpc3 160.0.0.20 member31-fpc4 160.0.0.21 member31-fpc5 160.0.0.22 member31-fpc6 160.0.0.23 member31-fpc7 160.0.0.24 member31-fpc8 160.0.0.25 member31-fpc9 160.0.0.26 member31-fpc10 160.0.0.27 member31-fpc11 160.0.0.28 member31-fpc12 160.0.0.29 member31-fpc13 160.0.0.30 member31-fpc14 160.0.0.31 member31-fpc15 160.0.0.32 member31-fpc16 160.0.0.33 member31-fpc17 160.0.0.34 member31-fpc18 160.0.0.35 member31-fpc19 160.0.0.36 member31-fpc20 160.0.0.37 member31-fpc21 160.0.0.38 member31-fpc22 160.0.0.39 member31-fpc23 160.0.0.40 member31-fpc24 160.0.0.41 member31-fpc25 160.0.0.42 member31-fpc26 160.0.0.43 member31-fpc27 160.0.0.44 member31-fpc28 160.0.0.45 member31-fpc29 160.0.0.46 member31-fpc30 160.0.0.47 member31-fpc31 #VIRT SC 161.0.0.1 sc-master 161.0.0.4 sc-re0 161.0.0.5 sc-re1 161.0.0.6 sc-backup #SFC 0 162.0.0.1 sfc0-master 162.0.0.4 sfc0-re0 162.0.0.5 sfc0-re1 162.0.0.6 sfc0-backup 162.0.0.48 sfc0-spmb0 162.0.0.49 sfc0-spmb1 #SFC 1 163.0.0.1 sfc1-master 163.0.0.4 sfc1-re0 163.0.0.5 sfc1-re1 163.0.0.6 sfc1-backup 163.0.0.48 sfc1-spmb0 163.0.0.49 sfc1-spmb1 #SFC 2 164.0.0.1 sfc2-master 164.0.0.4 sfc2-re0 164.0.0.5 sfc2-re1 164.0.0.6 sfc2-backup 164.0.0.48 sfc2-spmb0 164.0.0.49 sfc2-spmb1 #SFC 3 165.0.0.1 sfc3-master 165.0.0.4 sfc3-re0 165.0.0.5 sfc3-re1 165.0.0.6 sfc3-backup 165.0.0.48 sfc3-spmb0 165.0.0.49 sfc3-spmb1 #SFC 4 166.0.0.1 sfc4-master 166.0.0.4 sfc4-re0 166.0.0.5 sfc4-re1 166.0.0.6 sfc4-backup 166.0.0.48 sfc4-spmb0 166.0.0.49 sfc4-spmb1 #JCS 190.0.0.1 psd%d-master 190.0.0.4 psd%d-re0 190.0.0.5 psd%d-re1 190.0.0.6 psd%d-backup # Old IP address format (RT_IRS_V2) # # Single Chassis Hostnames # 10.0.0.1 master 10.0.0.4 re0 10.0.0.5 re1 10.0.0.16 fpc0 10.0.0.17 fpc1 10.0.0.18 fpc2 10.0.0.19 fpc3 10.0.0.20 fpc4 10.0.0.21 fpc5 10.0.0.22 fpc6 10.0.0.23 fpc7 10.0.0.24 fpc8 10.0.0.25 fpc9 10.0.0.26 fpc10 10.0.0.27 fpc11 10.0.0.28 fpc12 10.0.0.29 fpc13 10.0.0.30 fpc14 10.0.0.31 fpc15 # # Multi Chassis Hostnames # #SCC 10.16.0.1 scc-master 10.16.0.4 scc-re0 10.16.0.5 scc-re1 #LCC 0 10.1.0.1 lcc0-master member0-master 10.1.0.4 lcc0-re0 member0-re0 10.1.0.5 lcc0-re1 member0-re1 10.1.0.6 lcc0-backup member0-backup #LCC 1 10.2.0.1 lcc1-master member1-master 10.2.0.4 lcc1-re0 member1-re0 10.2.0.5 lcc1-re1 member1-re1 10.2.0.6 lcc1-backup member1-backup #LCC 2 10.3.0.1 lcc2-master member2-master 10.3.0.4 lcc2-re0 member2-re0 10.3.0.5 lcc2-re1 member2-re1 10.3.0.6 lcc2-backup member2-backup #LCC 3 10.4.0.1 lcc3-master member3-master 10.4.0.4 lcc3-re0 member3-re0 10.4.0.5 lcc3-re1 member3-re1 10.4.0.6 lcc3-backup member3-backup #LCC 4 10.5.0.1 lcc4-master member4-master 10.5.0.4 lcc4-re0 member4-re0 10.5.0.5 lcc4-re1 member4-re1 10.5.0.6 lcc4-backup member4-backup #LCC 5 10.6.0.1 lcc5-master member5-master 10.6.0.4 lcc5-re0 member5-re0 10.6.0.5 lcc5-re1 member5-re1 10.6.0.6 lcc5-backup member5-backup #LCC 6 10.7.0.1 lcc6-master member6-master 10.7.0.4 lcc6-re0 member6-re0 10.7.0.5 lcc6-re1 member6-re1 10.7.0.6 lcc6-backup member6-backup #LCC 7 10.8.0.1 lcc7-master member7-master 10.8.0.4 lcc7-re0 member7-re0 10.8.0.5 lcc7-re1 member7-re1 10.8.0.6 lcc7-backup member7-backup #LCC 8 10.9.0.1 lcc8-master member8-master 10.9.0.4 lcc8-re0 member8-re0 10.9.0.5 lcc8-re1 member8-re1 10.9.0.6 lcc8-backup member8-backup #LCC 9 10.10.0.1 lcc9-master member9-master 10.10.0.4 lcc9-re0 member9-re0 10.10.0.5 lcc9-re1 member9-re1 10.10.0.6 lcc9-backup member9-backup #LCC 10 10.11.0.1 lcc10-master member10-master 10.11.0.4 lcc10-re0 member10-re0 10.11.0.5 lcc10-re1 member10-re1 10.11.0.6 lcc10-backup member10-backup #LCC 11 10.12.0.1 lcc11-master member11-master 10.12.0.4 lcc11-re0 member11-re0 10.12.0.5 lcc11-re1 member11-re1 10.12.0.6 lcc11-backup member11-backup #LCC 12 10.13.0.1 lcc12-master member12-master 10.13.0.4 lcc12-re0 member12-re0 10.13.0.5 lcc12-re1 member12-re1 10.13.0.6 lcc12-backup member12-backup #LCC 13 10.14.0.1 lcc13-master member13-master 10.14.0.4 lcc13-re0 member13-re0 10.14.0.5 lcc13-re1 member13-re1 10.14.0.6 lcc13-backup member13-backup #LCC 14 10.15.0.1 lcc14-master member14-master 10.15.0.4 lcc14-re0 member14-re0 10.15.0.5 lcc14-re1 member14-re1 10.15.0.6 lcc14-backup member14-backup #LCC 15 10.16.0.1 lcc15-master member15-master 10.16.0.4 lcc15-re0 member15-re0 10.16.0.5 lcc15-re1 member15-re1 10.16.0.6 lcc15-backup member15-backup #SFC 0 10.34.0.1 sfc0-master 10.34.0.4 sfc0-re0 10.34.0.5 sfc0-re1 #SFC 1 10.35.0.1 sfc1-master 10.35.0.4 sfc1-re0 10.35.0.5 sfc1-re1 #SFC 2 10.36.0.1 sfc2-master 10.36.0.4 sfc2-re0 10.36.0.5 sfc2-re1 #SFC 3 10.37.0.1 sfc3-master 10.37.0.4 sfc3-re0 10.37.0.5 sfc3-re1 #SFC 4 10.38.0.1 sfc4-master 10.38.0.4 sfc4-re0 10.38.0.5 sfc4-re1 # End of internal names py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/personality_vmx_get-interface-information.xml000066400000000000000000000145051475361112400325200ustar00rootroot00000000000000 lc-0/0/0.32769 up up vpls pfe-0/0/0.16383 up up inet inet6 pfh-0/0/0.16383 up up inet em1.0 up up inet 10.0.0.4/8 128.0.0.1/2 128.0.0.4/2 inet6 fe80::5668:a3ff:fe17:f08/64 fec0::a:0:0:4/64 tnp 0x4 lo0.16385 up up inet py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/personality_vmx_get-route-engine-information.xml000066400000000000000000000037441475361112400331640ustar00rootroot00000000000000 0 master master (default) OK 4058 MB (4096 MB installed) 15 1 0 1 0 98 1 0 1 1 97 1 0 1 1 97 1 0 1 1 97 RE-VMX 2f15f744-b7 2016-12-01 09:14:56 PST 29 days, 22 hours, 41 minutes, 35 seconds Router rebooted after a normal shutdown. 0.49 0.36 0.37 py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/personality_vptx_command.xml000066400000000000000000000273471475361112400272750ustar00rootroot00000000000000 re0 tt-sgsingh-6000768-vm ptx5000 ptx5000 15.1F-20151115.0 junos JUNOS Base OS boot [15.1F-20151115.0] jbase JUNOS Base OS Software Suite [15.1F-20151115.0] jdocs JUNOS Online Documentation [15.1F-20151115.0] jcrypto64 JUNOS Crypto Software Suite [15.1F-20151115.0] jmacsec JUNOS Macsec Software Suite [15.1F-20151115.0] jkernel JUNOS 64-bit Kernel Software Suite [15.1F-20151115.0] jpfe JUNOS Packet Forwarding Engine Support (M320) [15.1F-20151115.0] jplatform JUNOS platform Software Suite [15.1F-20151115.0] jpfe-common JUNOS Packet Forwarding Engine Support (M/T/EX Common) [15.1F-20151115.0] jroute JUNOS Routing Software Suite [15.1F-20151115.0] jruntime JUNOS Runtime Software Suite [15.1F-20151115.0] jservices-alg-pic JUNOS Services Application Level Gateway [15.1F-20151115.0] jservices-aacl-pic JUNOS Services AACL PIC package [15.1F-20151115.0] jruntime64 JUNOS 64-bit Runtime Software Suite [15.1F-20151115.0] jservices-cpcd-pic JUNOS Services Captive Portal and Content Delivery PIC package [15.1F-20151115.0] jservices-bgf-pic JUNOS Border Gateway Function PIC package [15.1F-20151115.0] jservices-appid-xlr64 JUNOS Services AppId PIC package (xlr64) [15.1F-20151115.0] jservices-appid-pic JUNOS AppId Services PIC Package [15.1F-20151115.0] jservices-alg-xlr64 JUNOS Services Application Level Gateway (xlr64) [15.1F-20151115.0] jservices-alg-xlp64 JUNOS Services Application Level Gateway (xlp64) [15.1F-20151115.0] jservices-idp-pic JUNOS IDP Services PIC Package [15.1F-20151115.0] jservices-hcm-xlr64 JUNOS Services HTTP Content Management PIC package (xlr64) [15.1F-20151115.0] jservices-hcm-pic JUNOS Services HTTP Content Management PIC package [15.1F-20151115.0] jservices-cpcd-xlp64 JUNOS Services Captive Portal and Content Delivery (xlp64) [15.1F-20151115.0] jservices-llpdf-pic JUNOS Services LL-PDF PIC package [15.1F-20151115.0] jservices-jflow-xlp64 JUNOS Services JFLOW PIC package (xlp64) [15.1F-20151115.0] jservices-jflow-pic JUNOS Services JFLOW PIC package [15.1F-20151115.0] jservices-mobile-xlr64 JUNOS MobileNext PIC package (xlr64) [15.1F-20151115.0] jservices-mobile-pic JUNOS MobileNext PIC package [15.1F-20151115.0] jservices-nat-xlp64 JUNOS Services NAT PIC package (xlp64) [15.1F-20151115.0] jservices-nat-pic JUNOS Services NAT PIC package [15.1F-20151115.0] jservices-mss-xlr64 JUNOS Services Mobile Subscriber Service PIC package (xlr64) [15.1F-20151115.0] jservices-mss-xlr JUNOS Services Mobile Subscriber Service Container package [15.1F-20151115.0] jservices-sfw-xlr64 JUNOS Services Stateful Firewall PIC package (xlr64) [15.1F-20151115.0] jservices-sfw-xlp64 JUNOS Services Stateful Firewall PIC package (xlp64) [15.1F-20151115.0] jservices-sfw-pic JUNOS Services Stateful Firewall PIC package [15.1F-20151115.0] jservices-rpm-xlp64 JUNOS Services RPM PIC package (xlp64) [15.1F-20151115.0] jservices-rpm-pic JUNOS Services RPM PIC package [15.1F-20151115.0] jservices-ptsp-pic JUNOS Services PTSP PIC package [15.1F-20151115.0] jservices-nat-xlr64 JUNOS Services NAT PIC package (xlr64) [15.1F-20151115.0] jservices-voice-bsg JUNOS BSG PIC package [15.1F-20151115.0] jservices-crypto-base-pic JUNOS Services Crypto Base PIC package [15.1F-20151115.0] jservices-ssl-pic JUNOS Services SSL PIC package [15.1F-20151115.0] jservices-ipsec-xlr64 JUNOS Services IPSec PIC(xlr64) package [15.1F-20151115.0] jservices-ipsec-xlp64 JUNOS Services IPSec PIC package [15.1F-20151115.0] jservices-ipsec-pic JUNOS Services IPSec PIC package [15.1F-20151115.0] jservices-crypto-base-xlr64 JUNOS Services Crypto Base PIC package(xlr64) [15.1F-20151115.0] jservices-crypto-base-xlp64 JUNOS Services Crypto Base PIC package [15.1F-20151115.0] jweb JUNOS Web Management [15.1F-20151115.0] jsim64-pfe JUNOS Packet Forwarding Engine Simulation Package [15.1F-20151115.0] py-base-i386 JUNOS py-base-i386 [15.1F-20151115.0] py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/personality_vptx_file-show.xml000066400000000000000000002042141475361112400275420ustar00rootroot00000000000000 #$Id: hosts.junos,v 1.7.72.1 2009-04-16 05:22:03 kdickman Exp $ # # File mapping AF_INET/AF_INET6 hostnames for REs on Single and Multichassis # systems # # This file is looked at before /etc/hosts by gethostbyname(3), # gethostbyname2(3) and getaddrinfo(3) # # The IP addresses in this file are only used for communication between REs # over the Internal Routing Instances # # WARNING: # # The names in this file are effectively reserved for internal use. # # New IP address format (RT_IRS_V3) # # Single Chassis Hostnames # 128.0.0.1 master 128.0.0.1 node 128.0.0.1 fwdd 128.0.0.1 member 128.0.0.1 pfem 128.0.0.2 scb 128.0.0.2 sbr 128.0.0.2 ssb 128.0.0.2 feb 128.0.0.2 cfeb0 128.0.0.2 cfeb 128.0.0.2 cpp0 128.0.0.3 cfeb1 128.0.0.3 cpp1 128.0.0.4 re0 128.0.0.5 re1 128.0.0.6 backup 128.0.0.8 sfm0 128.0.0.9 sfm1 128.0.0.10 sfm2 128.0.0.16 fpc0 128.0.0.17 fpc1 128.0.0.18 fpc2 128.0.0.19 fpc3 128.0.0.20 fpc4 128.0.0.21 fpc5 128.0.0.22 fpc6 128.0.0.23 fpc7 128.0.0.24 fpc8 128.0.0.25 fpc9 128.0.0.26 fpc10 128.0.0.27 fpc11 128.0.0.28 fpc12 128.0.0.29 fpc13 128.0.0.30 fpc14 128.0.0.31 fpc15 128.0.0.32 feb0 128.0.0.32 fpc16 128.0.0.33 feb1 128.0.0.33 fpc17 128.0.0.34 feb2 128.0.0.34 fpc18 128.0.0.35 feb3 128.0.0.35 fpc19 128.0.0.36 fpc20 128.0.0.36 feb4 128.0.0.37 feb5 128.0.0.37 fpc21 128.0.0.38 fpc22 128.0.0.39 fpc23 128.0.0.40 fpc24 128.0.0.41 fpc25 128.0.0.42 fpc26 128.0.0.43 fpc27 128.0.0.44 fpc28 128.0.0.45 fpc29 128.0.0.46 fpc30 128.0.0.47 fpc31 128.0.0.48 spmb0 128.0.0.49 spmb1 128.0.0.50 tfeb0 128.0.0.50 afeb0 128.0.0.53 esc0 128.0.0.54 esc1 128.0.0.55 esc0-ipmi 128.0.0.56 esc1-ipmi 128.0.1.16 fpc0.pic0 128.0.1.17 fpc1.pic0 128.0.1.18 fpc2.pic0 128.0.1.19 fpc3.pic0 128.0.1.20 fpc4.pic0 128.0.1.21 fpc5.pic0 128.0.1.22 fpc6.pic0 128.0.1.23 fpc7.pic0 128.0.1.24 fpc8.pic0 128.0.1.25 fpc9.pic0 128.0.1.26 fpc10.pic0 128.0.1.27 fpc11.pic0 128.0.1.28 fpc12.pic0 128.0.1.29 fpc13.pic0 128.0.1.30 fpc14.pic0 128.0.1.31 fpc15.pic0 128.0.1.32 fpc16.pic0 128.0.1.33 fpc17.pic0 128.0.1.34 fpc18.pic0 128.0.1.35 fpc19.pic0 128.0.1.36 fpc20.pic0 128.0.1.37 fpc21.pic0 128.0.1.38 fpc22.pic0 128.0.1.39 fpc23.pic0 128.0.1.40 fpc24.pic0 128.0.1.41 fpc25.pic0 128.0.1.42 fpc26.pic0 128.0.1.43 fpc27.pic0 128.0.1.44 fpc28.pic0 128.0.1.45 fpc29.pic0 128.0.1.46 fpc30.pic0 128.0.1.47 fpc31.pic0 128.0.2.16 fpc0.pic1 128.0.2.17 fpc1.pic1 128.0.2.18 fpc2.pic1 128.0.2.19 fpc3.pic1 128.0.2.20 fpc4.pic1 128.0.2.21 fpc5.pic1 128.0.2.22 fpc6.pic1 128.0.2.23 fpc7.pic1 128.0.2.24 fpc8.pic1 128.0.2.25 fpc9.pic1 128.0.2.26 fpc10.pic1 128.0.2.27 fpc11.pic1 128.0.2.28 fpc12.pic1 128.0.2.29 fpc13.pic1 128.0.2.30 fpc14.pic1 128.0.2.31 fpc15.pic1 128.0.2.32 fpc16.pic1 128.0.2.33 fpc17.pic1 128.0.2.34 fpc18.pic1 128.0.2.35 fpc19.pic1 128.0.2.36 fpc20.pic1 128.0.2.37 fpc21.pic1 128.0.2.38 fpc22.pic1 128.0.2.39 fpc23.pic1 128.0.2.40 fpc24.pic1 128.0.2.41 fpc25.pic1 128.0.2.42 fpc26.pic1 128.0.2.43 fpc27.pic1 128.0.2.44 fpc28.pic1 128.0.2.45 fpc29.pic1 128.0.2.46 fpc30.pic1 128.0.2.47 fpc31.pic1 128.0.3.16 fpc0.pic2 128.0.3.17 fpc1.pic2 128.0.3.18 fpc2.pic2 128.0.3.19 fpc3.pic2 128.0.3.20 fpc4.pic2 128.0.3.21 fpc5.pic2 128.0.3.22 fpc6.pic2 128.0.3.23 fpc7.pic2 128.0.3.24 fpc8.pic2 128.0.3.25 fpc9.pic2 128.0.3.26 fpc10.pic2 128.0.3.27 fpc11.pic2 128.0.3.28 fpc12.pic2 128.0.3.29 fpc13.pic2 128.0.3.30 fpc14.pic2 128.0.3.31 fpc15.pic2 128.0.4.16 fpc0.pic3 128.0.4.17 fpc1.pic3 128.0.4.18 fpc2.pic3 128.0.4.19 fpc3.pic3 128.0.4.20 fpc4.pic3 128.0.4.21 fpc5.pic3 128.0.4.22 fpc6.pic3 128.0.4.23 fpc7.pic3 128.0.4.24 fpc8.pic3 128.0.4.25 fpc9.pic3 128.0.4.26 fpc10.pic3 128.0.4.27 fpc11.pic3 128.0.4.28 fpc12.pic3 128.0.4.29 fpc13.pic3 128.0.4.30 fpc14.pic3 128.0.4.31 fpc15.pic3 # # DCF-Root Hostname # 128.0.130.2 dcf-root # # Multi Chassis Hostnames # #SCC 144.0.0.1 scc-master 144.0.0.4 scc-re0 144.0.0.5 scc-re1 144.0.0.6 scc-backup 144.0.0.48 scc-spmb0 144.0.0.49 scc-spmb1 #LCC 0 (or MEMBER 0 on Virtual Chassis) 129.0.0.1 lcc0-master member0-master member0 129.0.0.4 lcc0-re0 member0-re0 129.0.0.5 lcc0-re1 member0-re1 129.0.0.6 lcc0-backup member0-backup 129.0.0.16 member0-fpc0 129.0.0.17 member0-fpc1 129.0.0.18 member0-fpc2 129.0.0.19 member0-fpc3 129.0.0.20 member0-fpc4 129.0.0.21 member0-fpc5 129.0.0.22 member0-fpc6 129.0.0.23 member0-fpc7 129.0.0.24 member0-fpc8 129.0.0.25 member0-fpc9 129.0.0.26 member0-fpc10 129.0.0.27 member0-fpc11 129.0.0.28 member0-fpc12 129.0.0.29 member0-fpc13 129.0.0.30 member0-fpc14 129.0.0.31 member0-fpc15 129.0.0.32 member0-fpc16 129.0.0.33 member0-fpc17 129.0.0.34 member0-fpc18 129.0.0.35 member0-fpc19 129.0.0.36 member0-fpc20 129.0.0.37 member0-fpc21 129.0.0.38 member0-fpc22 129.0.0.39 member0-fpc23 129.0.0.40 member0-fpc24 129.0.0.41 member0-fpc25 129.0.0.42 member0-fpc26 129.0.0.43 member0-fpc27 129.0.0.44 member0-fpc28 129.0.0.45 member0-fpc29 129.0.0.46 member0-fpc30 129.0.0.47 member0-fpc31 129.0.0.6 lcc0-backup 129.0.0.16 lcc0-fpc0 129.0.0.17 lcc0-fpc1 129.0.0.18 lcc0-fpc2 129.0.0.19 lcc0-fpc3 129.0.0.20 lcc0-fpc4 129.0.0.21 lcc0-fpc5 129.0.0.22 lcc0-fpc6 129.0.0.23 lcc0-fpc7 129.0.0.48 lcc0-spmb0 129.0.0.49 lcc0-spmb1 #LCC 1 (or MEMBER 1 on Virtual Chassis) 130.0.0.1 lcc1-master member1-master member1 130.0.0.4 lcc1-re0 member1-re0 130.0.0.5 lcc1-re1 member1-re1 130.0.0.6 lcc1-backup member1-backup 130.0.0.16 member1-fpc0 130.0.0.17 member1-fpc1 130.0.0.18 member1-fpc2 130.0.0.19 member1-fpc3 130.0.0.20 member1-fpc4 130.0.0.21 member1-fpc5 130.0.0.22 member1-fpc6 130.0.0.23 member1-fpc7 130.0.0.24 member1-fpc8 130.0.0.25 member1-fpc9 130.0.0.26 member1-fpc10 130.0.0.27 member1-fpc11 130.0.0.28 member1-fpc12 130.0.0.29 member1-fpc13 130.0.0.30 member1-fpc14 130.0.0.31 member1-fpc15 130.0.0.32 member1-fpc16 130.0.0.33 member1-fpc17 130.0.0.34 member1-fpc18 130.0.0.35 member1-fpc19 130.0.0.36 member1-fpc20 130.0.0.37 member1-fpc21 130.0.0.38 member1-fpc22 130.0.0.39 member1-fpc23 130.0.0.40 member1-fpc24 130.0.0.41 member1-fpc25 130.0.0.42 member1-fpc26 130.0.0.43 member1-fpc27 130.0.0.44 member1-fpc28 130.0.0.45 member1-fpc29 130.0.0.46 member1-fpc30 130.0.0.47 member1-fpc31 130.0.0.6 lcc1-backup 130.0.0.16 lcc1-fpc0 130.0.0.17 lcc1-fpc1 130.0.0.18 lcc1-fpc2 130.0.0.19 lcc1-fpc3 130.0.0.20 lcc1-fpc4 130.0.0.21 lcc1-fpc5 130.0.0.22 lcc1-fpc6 130.0.0.23 lcc1-fpc7 130.0.0.48 lcc1-spmb0 130.0.0.49 lcc1-spmb1 #LCC 2 (or MEMBER 2 on Virtual Chassis) 131.0.0.1 lcc2-master member2-master member2 131.0.0.4 lcc2-re0 member2-re0 131.0.0.5 lcc2-re1 member2-re1 131.0.0.6 lcc2-backup member2-backup 131.0.0.16 member2-fpc0 131.0.0.17 member2-fpc1 131.0.0.18 member2-fpc2 131.0.0.19 member2-fpc3 131.0.0.20 member2-fpc4 131.0.0.21 member2-fpc5 131.0.0.22 member2-fpc6 131.0.0.23 member2-fpc7 131.0.0.24 member2-fpc8 131.0.0.25 member2-fpc9 131.0.0.26 member2-fpc10 131.0.0.27 member2-fpc11 131.0.0.28 member2-fpc12 131.0.0.29 member2-fpc13 131.0.0.30 member2-fpc14 131.0.0.31 member2-fpc15 131.0.0.32 member2-fpc16 131.0.0.33 member2-fpc17 131.0.0.34 member2-fpc18 131.0.0.35 member2-fpc19 131.0.0.36 member2-fpc20 131.0.0.37 member2-fpc21 131.0.0.38 member2-fpc22 131.0.0.39 member2-fpc23 131.0.0.40 member2-fpc24 131.0.0.41 member2-fpc25 131.0.0.42 member2-fpc26 131.0.0.43 member2-fpc27 131.0.0.44 member2-fpc28 131.0.0.45 member2-fpc29 131.0.0.46 member2-fpc30 131.0.0.47 member2-fpc31 131.0.0.6 lcc2-backup 131.0.0.16 lcc2-fpc0 131.0.0.17 lcc2-fpc1 131.0.0.18 lcc2-fpc2 131.0.0.19 lcc2-fpc3 131.0.0.20 lcc2-fpc4 131.0.0.21 lcc2-fpc5 131.0.0.22 lcc2-fpc6 131.0.0.23 lcc2-fpc7 131.0.0.48 lcc2-spmb0 131.0.0.49 lcc20-spmb1 #LCC 3 (or MEMBER 3 on Virtual Chassis) 132.0.0.1 lcc3-master member3-master member3 132.0.0.4 lcc3-re0 member3-re0 132.0.0.5 lcc3-re1 member3-re1 132.0.0.6 lcc3-backup member3-backup 132.0.0.16 member3-fpc0 132.0.0.17 member3-fpc1 132.0.0.18 member3-fpc2 132.0.0.19 member3-fpc3 132.0.0.20 member3-fpc4 132.0.0.21 member3-fpc5 132.0.0.22 member3-fpc6 132.0.0.23 member3-fpc7 132.0.0.24 member3-fpc8 132.0.0.25 member3-fpc9 132.0.0.26 member3-fpc10 132.0.0.27 member3-fpc11 132.0.0.28 member3-fpc12 132.0.0.29 member3-fpc13 132.0.0.30 member3-fpc14 132.0.0.31 member3-fpc15 132.0.0.32 member3-fpc16 132.0.0.33 member3-fpc17 132.0.0.34 member3-fpc18 132.0.0.35 member3-fpc19 132.0.0.36 member3-fpc20 132.0.0.37 member3-fpc21 132.0.0.38 member3-fpc22 132.0.0.39 member3-fpc23 132.0.0.40 member3-fpc24 132.0.0.41 member3-fpc25 132.0.0.42 member3-fpc26 132.0.0.43 member3-fpc27 132.0.0.44 member3-fpc28 132.0.0.45 member3-fpc29 132.0.0.46 member3-fpc30 132.0.0.47 member3-fpc31 132.0.0.6 lcc3-backup 132.0.0.16 lcc3-fpc0 132.0.0.17 lcc3-fpc1 132.0.0.18 lcc3-fpc2 132.0.0.19 lcc3-fpc3 132.0.0.20 lcc3-fpc4 132.0.0.21 lcc3-fpc5 132.0.0.22 lcc3-fpc6 132.0.0.23 lcc3-fpc7 132.0.0.48 lcc3-spmb0 132.0.0.49 lcc3-spmb1 #LCC 4 (or MEMBER 4 on Virtual Chassis) 133.0.0.1 lcc4-master member4-master member4 133.0.0.4 lcc4-re0 member4-re0 133.0.0.5 lcc4-re1 member4-re1 133.0.0.6 lcc4-backup member4-backup 133.0.0.16 member4-fpc0 133.0.0.17 member4-fpc1 133.0.0.18 member4-fpc2 133.0.0.19 member4-fpc3 133.0.0.20 member4-fpc4 133.0.0.21 member4-fpc5 133.0.0.22 member4-fpc6 133.0.0.23 member4-fpc7 133.0.0.24 member4-fpc8 133.0.0.25 member4-fpc9 133.0.0.26 member4-fpc10 133.0.0.27 member4-fpc11 133.0.0.28 member4-fpc12 133.0.0.29 member4-fpc13 133.0.0.30 member4-fpc14 133.0.0.31 member4-fpc15 133.0.0.32 member4-fpc16 133.0.0.33 member4-fpc17 133.0.0.34 member4-fpc18 133.0.0.35 member4-fpc19 133.0.0.36 member4-fpc20 133.0.0.37 member4-fpc21 133.0.0.38 member4-fpc22 133.0.0.39 member4-fpc23 133.0.0.40 member4-fpc24 133.0.0.41 member4-fpc25 133.0.0.42 member4-fpc26 133.0.0.43 member4-fpc27 133.0.0.44 member4-fpc28 133.0.0.45 member4-fpc29 133.0.0.46 member4-fpc30 133.0.0.47 member4-fpc31 133.0.0.6 lcc4-backup 133.0.0.16 lcc4-fpc0 133.0.0.17 lcc4-fpc1 133.0.0.18 lcc4-fpc2 133.0.0.19 lcc4-fpc3 133.0.0.20 lcc4-fpc4 133.0.0.21 lcc4-fpc5 133.0.0.22 lcc4-fpc6 133.0.0.23 lcc4-fpc7 133.0.0.48 lcc4-spmb0 133.0.0.49 lcc4-spmb1 #LCC 5 (or MEMBER 5 on Virtual Chassis) 134.0.0.1 lcc5-master member5-master member5 134.0.0.4 lcc5-re0 member5-re0 134.0.0.5 lcc5-re1 member5-re1 134.0.0.6 lcc5-backup member5-backup 134.0.0.16 member5-fpc0 134.0.0.17 member5-fpc1 134.0.0.18 member5-fpc2 134.0.0.19 member5-fpc3 134.0.0.20 member5-fpc4 134.0.0.21 member5-fpc5 134.0.0.22 member5-fpc6 134.0.0.23 member5-fpc7 134.0.0.24 member5-fpc8 134.0.0.25 member5-fpc9 134.0.0.26 member5-fpc10 134.0.0.27 member5-fpc11 134.0.0.28 member5-fpc12 134.0.0.29 member5-fpc13 134.0.0.30 member5-fpc14 134.0.0.31 member5-fpc15 134.0.0.32 member5-fpc16 134.0.0.33 member5-fpc17 134.0.0.34 member5-fpc18 134.0.0.35 member5-fpc19 134.0.0.36 member5-fpc20 134.0.0.37 member5-fpc21 134.0.0.38 member5-fpc22 134.0.0.39 member5-fpc23 134.0.0.40 member5-fpc24 134.0.0.41 member5-fpc25 134.0.0.42 member5-fpc26 134.0.0.43 member5-fpc27 134.0.0.44 member5-fpc28 134.0.0.45 member5-fpc29 134.0.0.46 member5-fpc30 134.0.0.47 member5-fpc31 134.0.0.6 lcc5-backup 134.0.0.16 lcc5-fpc0 134.0.0.17 lcc5-fpc1 134.0.0.18 lcc5-fpc2 134.0.0.19 lcc5-fpc3 134.0.0.20 lcc5-fpc4 134.0.0.21 lcc5-fpc5 134.0.0.22 lcc5-fpc6 134.0.0.23 lcc5-fpc7 134.0.0.48 lcc5-spmb0 134.0.0.49 lcc5-spmb1 #LCC 6 (or MEMBER 6 on Virtual Chassis) 135.0.0.1 lcc6-master member6-master member6 135.0.0.4 lcc6-re0 member6-re0 135.0.0.5 lcc6-re1 member6-re1 135.0.0.6 lcc6-backup member6-backup 135.0.0.16 member6-fpc0 135.0.0.17 member6-fpc1 135.0.0.18 member6-fpc2 135.0.0.19 member6-fpc3 135.0.0.20 member6-fpc4 135.0.0.21 member6-fpc5 135.0.0.22 member6-fpc6 135.0.0.23 member6-fpc7 135.0.0.24 member6-fpc8 135.0.0.25 member6-fpc9 135.0.0.26 member6-fpc10 135.0.0.27 member6-fpc11 135.0.0.28 member6-fpc12 135.0.0.29 member6-fpc13 135.0.0.30 member6-fpc14 135.0.0.31 member6-fpc15 135.0.0.32 member6-fpc16 135.0.0.33 member6-fpc17 135.0.0.34 member6-fpc18 135.0.0.35 member6-fpc19 135.0.0.36 member6-fpc20 135.0.0.37 member6-fpc21 135.0.0.38 member6-fpc22 135.0.0.39 member6-fpc23 135.0.0.40 member6-fpc24 135.0.0.41 member6-fpc25 135.0.0.42 member6-fpc26 135.0.0.43 member6-fpc27 135.0.0.44 member6-fpc28 135.0.0.45 member6-fpc29 135.0.0.46 member6-fpc30 135.0.0.47 member6-fpc31 135.0.0.6 lcc6-backup 135.0.0.16 lcc6-fpc0 135.0.0.17 lcc6-fpc1 135.0.0.18 lcc6-fpc2 135.0.0.19 lcc6-fpc3 135.0.0.20 lcc6-fpc4 135.0.0.21 lcc6-fpc5 135.0.0.22 lcc6-fpc6 135.0.0.23 lcc6-fpc7 135.0.0.48 lcc6-spmb0 135.0.0.49 lcc6-spmb1 #LCC 7 (or MEMBER 7 on Virtual Chassis) 136.0.0.1 lcc7-master member7-master member7 136.0.0.4 lcc7-re0 member7-re0 136.0.0.5 lcc7-re1 member7-re1 136.0.0.6 lcc7-backup member7-backup 136.0.0.16 member7-fpc0 136.0.0.17 member7-fpc1 136.0.0.18 member7-fpc2 136.0.0.19 member7-fpc3 136.0.0.20 member7-fpc4 136.0.0.21 member7-fpc5 136.0.0.22 member7-fpc6 136.0.0.23 member7-fpc7 136.0.0.24 member7-fpc8 136.0.0.25 member7-fpc9 136.0.0.26 member7-fpc10 136.0.0.27 member7-fpc11 136.0.0.28 member7-fpc12 136.0.0.29 member7-fpc13 136.0.0.30 member7-fpc14 136.0.0.31 member7-fpc15 136.0.0.32 member7-fpc16 136.0.0.33 member7-fpc17 136.0.0.34 member7-fpc18 136.0.0.35 member7-fpc19 136.0.0.36 member7-fpc20 136.0.0.37 member7-fpc21 136.0.0.38 member7-fpc22 136.0.0.39 member7-fpc23 136.0.0.40 member7-fpc24 136.0.0.41 member7-fpc25 136.0.0.42 member7-fpc26 136.0.0.43 member7-fpc27 136.0.0.44 member7-fpc28 136.0.0.45 member7-fpc29 136.0.0.46 member7-fpc30 136.0.0.47 member7-fpc31 136.0.0.6 lcc7-backup 136.0.0.16 lcc7-fpc0 136.0.0.17 lcc7-fpc1 136.0.0.18 lcc7-fpc2 136.0.0.19 lcc7-fpc3 136.0.0.20 lcc7-fpc4 136.0.0.21 lcc7-fpc5 136.0.0.22 lcc7-fpc6 136.0.0.23 lcc7-fpc7 136.0.0.48 lcc7-spmb0 136.0.0.49 lcc7-spmb1 137.0.0.6 lcc8-backup 137.0.0.16 lcc8-fpc0 137.0.0.17 lcc8-fpc1 137.0.0.18 lcc8-fpc2 137.0.0.19 lcc8-fpc3 137.0.0.20 lcc8-fpc4 137.0.0.21 lcc8-fpc5 137.0.0.22 lcc8-fpc6 137.0.0.23 lcc8-fpc7 137.0.0.48 lcc8-spmb0 137.0.0.49 lcc8-spmb1 #LCC 8 (or MEMBER 8 on Virtual Chassis) 137.0.0.1 lcc8-master member8-master member8 137.0.0.4 lcc8-re0 member8-re0 137.0.0.5 lcc8-re1 member8-re1 137.0.0.6 lcc8-backup member8-backup 137.0.0.16 member8-fpc0 137.0.0.17 member8-fpc1 137.0.0.18 member8-fpc2 137.0.0.19 member8-fpc3 137.0.0.20 member8-fpc4 137.0.0.21 member8-fpc5 137.0.0.22 member8-fpc6 137.0.0.23 member8-fpc7 137.0.0.24 member8-fpc8 137.0.0.25 member8-fpc9 137.0.0.26 member8-fpc10 137.0.0.27 member8-fpc11 137.0.0.28 member8-fpc12 137.0.0.29 member8-fpc13 137.0.0.30 member8-fpc14 137.0.0.31 member8-fpc15 137.0.0.32 member8-fpc16 137.0.0.33 member8-fpc17 137.0.0.34 member8-fpc18 137.0.0.35 member8-fpc19 137.0.0.36 member8-fpc20 137.0.0.37 member8-fpc21 137.0.0.38 member8-fpc22 137.0.0.39 member8-fpc23 137.0.0.40 member8-fpc24 137.0.0.41 member8-fpc25 137.0.0.42 member8-fpc26 137.0.0.43 member8-fpc27 137.0.0.44 member8-fpc28 137.0.0.45 member8-fpc29 137.0.0.46 member8-fpc30 137.0.0.47 member8-fpc31 138.0.0.6 lcc9-backup 138.0.0.16 lcc9-fpc0 138.0.0.17 lcc9-fpc1 138.0.0.18 lcc9-fpc2 138.0.0.19 lcc9-fpc3 138.0.0.20 lcc9-fpc4 138.0.0.21 lcc9-fpc5 138.0.0.22 lcc9-fpc6 138.0.0.23 lcc9-fpc7 138.0.0.48 lcc9-spmb0 138.0.0.49 lcc9-spmb1 #LCC 9 (or MEMBER 9 on Virtual Chassis) 138.0.0.1 lcc9-master member9-master member9 138.0.0.4 lcc9-re0 member9-re0 138.0.0.5 lcc9-re1 member9-re1 138.0.0.6 lcc9-backup member9-backup 138.0.0.16 member9-fpc0 138.0.0.17 member9-fpc1 138.0.0.18 member9-fpc2 138.0.0.19 member9-fpc3 138.0.0.20 member9-fpc4 138.0.0.21 member9-fpc5 138.0.0.22 member9-fpc6 138.0.0.23 member9-fpc7 138.0.0.24 member9-fpc8 138.0.0.25 member9-fpc9 138.0.0.26 member9-fpc10 138.0.0.27 member9-fpc11 138.0.0.28 member9-fpc12 138.0.0.29 member9-fpc13 138.0.0.30 member9-fpc14 138.0.0.31 member9-fpc15 138.0.0.32 member9-fpc16 138.0.0.33 member9-fpc17 138.0.0.34 member9-fpc18 138.0.0.35 member9-fpc19 138.0.0.36 member9-fpc20 138.0.0.37 member9-fpc21 138.0.0.38 member9-fpc22 138.0.0.39 member9-fpc23 138.0.0.40 member9-fpc24 138.0.0.41 member9-fpc25 138.0.0.42 member9-fpc26 138.0.0.43 member9-fpc27 138.0.0.44 member9-fpc28 138.0.0.45 member9-fpc29 138.0.0.46 member9-fpc30 138.0.0.47 member9-fpc31 139.0.0.6 lcc10-backup 139.0.0.16 lcc10-fpc0 139.0.0.17 lcc10-fpc1 139.0.0.18 lcc10-fpc2 139.0.0.19 lcc10-fpc3 139.0.0.20 lcc10-fpc4 139.0.0.21 lcc10-fpc5 139.0.0.22 lcc10-fpc6 139.0.0.23 lcc10-fpc7 139.0.0.48 lcc10-spmb0 139.0.0.49 lcc10-spmb1 #LCC 10 (or MEMBER 10 on Virtual Chassis) 139.0.0.1 lcc10-master member10-master 139.0.0.4 lcc10-re0 member10-re0 139.0.0.5 lcc10-re1 member10-re1 139.0.0.6 lcc10-backup member10-backup 139.0.0.16 member10-fpc0 139.0.0.17 member10-fpc1 139.0.0.18 member10-fpc2 139.0.0.19 member10-fpc3 139.0.0.20 member10-fpc4 139.0.0.21 member10-fpc5 139.0.0.22 member10-fpc6 139.0.0.23 member10-fpc7 139.0.0.24 member10-fpc8 139.0.0.25 member10-fpc9 139.0.0.26 member10-fpc10 139.0.0.27 member10-fpc11 139.0.0.28 member10-fpc12 139.0.0.29 member10-fpc13 139.0.0.30 member10-fpc14 139.0.0.31 member10-fpc15 139.0.0.32 member10-fpc16 139.0.0.33 member10-fpc17 139.0.0.34 member10-fpc18 139.0.0.35 member10-fpc19 139.0.0.36 member10-fpc20 139.0.0.37 member10-fpc21 139.0.0.38 member10-fpc22 139.0.0.39 member10-fpc23 139.0.0.40 member10-fpc24 139.0.0.41 member10-fpc25 139.0.0.42 member10-fpc26 139.0.0.43 member10-fpc27 139.0.0.44 member10-fpc28 139.0.0.45 member10-fpc29 139.0.0.46 member10-fpc30 139.0.0.47 member10-fpc31 140.0.0.6 lcc11-backup 140.0.0.16 lcc11-fpc0 140.0.0.17 lcc11-fpc1 140.0.0.18 lcc11-fpc2 140.0.0.19 lcc11-fpc3 140.0.0.20 lcc11-fpc4 140.0.0.21 lcc11-fpc5 140.0.0.22 lcc11-fpc6 140.0.0.23 lcc11-fpc7 140.0.0.48 lcc11-spmb0 140.0.0.49 lcc11-spmb1 #LCC 11 (or MEMBER 11 on Virtual Chassis) 140.0.0.1 lcc11-master member11-master 140.0.0.4 lcc11-re0 member11-re0 140.0.0.5 lcc11-re1 member11-re1 140.0.0.6 lcc11-backup member11-backup 140.0.0.16 member11-fpc0 140.0.0.17 member11-fpc1 140.0.0.18 member11-fpc2 140.0.0.19 member11-fpc3 140.0.0.20 member11-fpc4 140.0.0.21 member11-fpc5 140.0.0.22 member11-fpc6 140.0.0.23 member11-fpc7 140.0.0.24 member11-fpc8 140.0.0.25 member11-fpc9 140.0.0.26 member11-fpc10 140.0.0.27 member11-fpc11 140.0.0.28 member11-fpc12 140.0.0.29 member11-fpc13 140.0.0.30 member11-fpc14 140.0.0.31 member11-fpc15 140.0.0.32 member11-fpc16 140.0.0.33 member11-fpc17 140.0.0.34 member11-fpc18 140.0.0.35 member11-fpc19 140.0.0.36 member11-fpc20 140.0.0.37 member11-fpc21 140.0.0.38 member11-fpc22 140.0.0.39 member11-fpc23 140.0.0.40 member11-fpc24 140.0.0.41 member11-fpc25 140.0.0.42 member11-fpc26 140.0.0.43 member11-fpc27 140.0.0.44 member11-fpc28 140.0.0.45 member11-fpc29 140.0.0.46 member11-fpc30 140.0.0.47 member11-fpc31 141.0.0.6 lcc12-backup 141.0.0.16 lcc12-fpc0 141.0.0.17 lcc12-fpc1 141.0.0.18 lcc12-fpc2 141.0.0.19 lcc12-fpc3 141.0.0.20 lcc12-fpc4 141.0.0.21 lcc12-fpc5 141.0.0.22 lcc12-fpc6 141.0.0.23 lcc12-fpc7 141.0.0.48 lcc12-spmb0 141.0.0.49 lcc12-spmb1 #LCC 12 (or MEMBER 12 on Virtual Chassis) 141.0.0.1 lcc12-master member12-master 141.0.0.4 lcc12-re0 member12-re0 141.0.0.5 lcc12-re1 member12-re1 141.0.0.6 lcc12-backup member12-backup 141.0.0.16 member12-fpc0 141.0.0.17 member12-fpc1 141.0.0.18 member12-fpc2 141.0.0.19 member12-fpc3 141.0.0.20 member12-fpc4 141.0.0.21 member12-fpc5 141.0.0.22 member12-fpc6 141.0.0.23 member12-fpc7 141.0.0.24 member12-fpc8 141.0.0.25 member12-fpc9 141.0.0.26 member12-fpc10 141.0.0.27 member12-fpc11 141.0.0.28 member12-fpc12 141.0.0.29 member12-fpc13 141.0.0.30 member12-fpc14 141.0.0.31 member12-fpc15 141.0.0.32 member12-fpc16 141.0.0.33 member12-fpc17 141.0.0.34 member12-fpc18 141.0.0.35 member12-fpc19 141.0.0.36 member12-fpc20 141.0.0.37 member12-fpc21 141.0.0.38 member12-fpc22 141.0.0.39 member12-fpc23 141.0.0.40 member12-fpc24 141.0.0.41 member12-fpc25 141.0.0.42 member12-fpc26 141.0.0.43 member12-fpc27 141.0.0.44 member12-fpc28 141.0.0.45 member12-fpc29 141.0.0.46 member12-fpc30 141.0.0.47 member12-fpc31 142.0.0.6 lcc13-backup 142.0.0.16 lcc13-fpc0 142.0.0.17 lcc13-fpc1 142.0.0.18 lcc13-fpc2 142.0.0.19 lcc13-fpc3 142.0.0.20 lcc13-fpc4 142.0.0.21 lcc13-fpc5 142.0.0.22 lcc13-fpc6 142.0.0.23 lcc13-fpc7 142.0.0.48 lcc13-spmb0 142.0.0.49 lcc13-spmb1 #LCC 13 (or MEMBER 13 on Virtual Chassis) 142.0.0.1 lcc13-master member13-master 142.0.0.4 lcc13-re0 member13-re0 142.0.0.5 lcc13-re1 member13-re1 142.0.0.6 lcc13-backup member13-backup 142.0.0.16 member13-fpc0 142.0.0.17 member13-fpc1 142.0.0.18 member13-fpc2 142.0.0.19 member13-fpc3 142.0.0.20 member13-fpc4 142.0.0.21 member13-fpc5 142.0.0.22 member13-fpc6 142.0.0.23 member13-fpc7 142.0.0.24 member13-fpc8 142.0.0.25 member13-fpc9 142.0.0.26 member13-fpc10 142.0.0.27 member13-fpc11 142.0.0.28 member13-fpc12 142.0.0.29 member13-fpc13 142.0.0.30 member13-fpc14 142.0.0.31 member13-fpc15 142.0.0.32 member13-fpc16 142.0.0.33 member13-fpc17 142.0.0.34 member13-fpc18 142.0.0.35 member13-fpc19 142.0.0.36 member13-fpc20 142.0.0.37 member13-fpc21 142.0.0.38 member13-fpc22 142.0.0.39 member13-fpc23 142.0.0.40 member13-fpc24 142.0.0.41 member13-fpc25 142.0.0.42 member13-fpc26 142.0.0.43 member13-fpc27 142.0.0.44 member13-fpc28 142.0.0.45 member13-fpc29 142.0.0.46 member13-fpc30 142.0.0.47 member13-fpc31 143.0.0.6 lcc14-backup 143.0.0.16 lcc14-fpc0 143.0.0.17 lcc14-fpc1 143.0.0.18 lcc14-fpc2 143.0.0.19 lcc14-fpc3 143.0.0.20 lcc14-fpc4 143.0.0.21 lcc14-fpc5 143.0.0.22 lcc14-fpc6 143.0.0.23 lcc14-fpc7 143.0.0.48 lcc14-spmb0 143.0.0.49 lcc14-spmb1 #LCC 14 (or MEMBER 14 on Virtual Chassis) 143.0.0.1 lcc14-master member14-master 143.0.0.4 lcc14-re0 member14-re0 143.0.0.5 lcc14-re1 member14-re1 143.0.0.6 lcc14-backup member14-backup 143.0.0.16 member14-fpc0 143.0.0.17 member14-fpc1 143.0.0.18 member14-fpc2 143.0.0.19 member14-fpc3 143.0.0.20 member14-fpc4 143.0.0.21 member14-fpc5 143.0.0.22 member14-fpc6 143.0.0.23 member14-fpc7 143.0.0.24 member14-fpc8 143.0.0.25 member14-fpc9 143.0.0.26 member14-fpc10 143.0.0.27 member14-fpc11 143.0.0.28 member14-fpc12 143.0.0.29 member14-fpc13 143.0.0.30 member14-fpc14 143.0.0.31 member14-fpc15 143.0.0.32 member14-fpc16 143.0.0.33 member14-fpc17 143.0.0.34 member14-fpc18 143.0.0.35 member14-fpc19 143.0.0.36 member14-fpc20 143.0.0.37 member14-fpc21 143.0.0.38 member14-fpc22 143.0.0.39 member14-fpc23 143.0.0.40 member14-fpc24 143.0.0.41 member14-fpc25 143.0.0.42 member14-fpc26 143.0.0.43 member14-fpc27 143.0.0.44 member14-fpc28 143.0.0.45 member14-fpc29 143.0.0.46 member14-fpc30 143.0.0.47 member14-fpc31 144.0.0.6 lcc15-backup 144.0.0.16 lcc15-fpc0 144.0.0.17 lcc15-fpc1 144.0.0.18 lcc15-fpc2 144.0.0.19 lcc15-fpc3 144.0.0.20 lcc15-fpc4 144.0.0.21 lcc15-fpc5 144.0.0.22 lcc15-fpc6 144.0.0.23 lcc15-fpc7 144.0.0.48 lcc15-spmb0 144.0.0.49 lcc15-spmb1 #LCC 15 (or MEMBER 15 on Virtual Chassis) 144.0.0.1 lcc15-master member15-master 144.0.0.4 lcc15-re0 member15-re0 144.0.0.5 lcc15-re1 member15-re1 144.0.0.6 lcc15-backup member15-backup 144.0.0.16 member15-fpc0 144.0.0.17 member15-fpc1 144.0.0.18 member15-fpc2 144.0.0.19 member15-fpc3 144.0.0.20 member15-fpc4 144.0.0.21 member15-fpc5 144.0.0.22 member15-fpc6 144.0.0.23 member15-fpc7 144.0.0.24 member15-fpc8 144.0.0.25 member15-fpc9 144.0.0.26 member15-fpc10 144.0.0.27 member15-fpc11 144.0.0.28 member15-fpc12 144.0.0.29 member15-fpc13 144.0.0.30 member15-fpc14 144.0.0.31 member15-fpc15 144.0.0.32 member15-fpc16 144.0.0.33 member15-fpc17 144.0.0.34 member15-fpc18 144.0.0.35 member15-fpc19 144.0.0.36 member15-fpc20 144.0.0.37 member15-fpc21 144.0.0.38 member15-fpc22 144.0.0.39 member15-fpc23 144.0.0.40 member15-fpc24 144.0.0.41 member15-fpc25 144.0.0.42 member15-fpc26 144.0.0.43 member15-fpc27 144.0.0.44 member15-fpc28 144.0.0.45 member15-fpc29 144.0.0.46 member15-fpc30 144.0.0.47 member15-fpc31 #LCC 16 (or MEMBER 16 on Virtual Chassis) 145.0.0.1 lcc16-master member16-master 145.0.0.4 lcc16-re0 member16-re0 145.0.0.5 lcc16-re1 member16-re1 145.0.0.6 lcc16-backup member16-backup 145.0.0.16 member16-fpc0 145.0.0.17 member16-fpc1 145.0.0.18 member16-fpc2 145.0.0.19 member16-fpc3 145.0.0.20 member16-fpc4 145.0.0.21 member16-fpc5 145.0.0.22 member16-fpc6 145.0.0.23 member16-fpc7 145.0.0.24 member16-fpc8 145.0.0.25 member16-fpc9 145.0.0.26 member16-fpc10 145.0.0.27 member16-fpc11 145.0.0.28 member16-fpc12 145.0.0.29 member16-fpc13 145.0.0.30 member16-fpc14 145.0.0.31 member16-fpc15 145.0.0.32 member16-fpc16 145.0.0.33 member16-fpc17 145.0.0.34 member16-fpc18 145.0.0.35 member16-fpc19 145.0.0.36 member16-fpc20 145.0.0.37 member16-fpc21 145.0.0.38 member16-fpc22 145.0.0.39 member16-fpc23 145.0.0.40 member16-fpc24 145.0.0.41 member16-fpc25 145.0.0.42 member16-fpc26 145.0.0.43 member16-fpc27 145.0.0.44 member16-fpc28 145.0.0.45 member16-fpc29 145.0.0.46 member16-fpc30 145.0.0.47 member16-fpc31 #LCC 17 (or MEMBER 17 on Virtual Chassis) 146.0.0.1 lcc17-master member17-master 146.0.0.4 lcc17-re0 member17-re0 146.0.0.5 lcc17-re1 member17-re1 146.0.0.6 lcc17-backup member17-backup 146.0.0.16 member17-fpc0 146.0.0.17 member17-fpc1 146.0.0.18 member17-fpc2 146.0.0.19 member17-fpc3 146.0.0.20 member17-fpc4 146.0.0.21 member17-fpc5 146.0.0.22 member17-fpc6 146.0.0.23 member17-fpc7 146.0.0.24 member17-fpc8 146.0.0.25 member17-fpc9 146.0.0.26 member17-fpc10 146.0.0.27 member17-fpc11 146.0.0.28 member17-fpc12 146.0.0.29 member17-fpc13 146.0.0.30 member17-fpc14 146.0.0.31 member17-fpc15 146.0.0.32 member17-fpc16 146.0.0.33 member17-fpc17 146.0.0.34 member17-fpc18 146.0.0.35 member17-fpc19 146.0.0.36 member17-fpc20 146.0.0.37 member17-fpc21 146.0.0.38 member17-fpc22 146.0.0.39 member17-fpc23 146.0.0.40 member17-fpc24 146.0.0.41 member17-fpc25 146.0.0.42 member17-fpc26 146.0.0.43 member17-fpc27 146.0.0.44 member17-fpc28 146.0.0.45 member17-fpc29 146.0.0.46 member17-fpc30 146.0.0.47 member17-fpc31 #LCC 18 (or MEMBER 18 on Virtual Chassis) 147.0.0.1 lcc18-master member18-master 147.0.0.4 lcc18-re0 member18-re0 147.0.0.5 lcc18-re1 member18-re1 147.0.0.6 lcc18-backup member18-backup 147.0.0.16 member18-fpc0 147.0.0.17 member18-fpc1 147.0.0.18 member18-fpc2 147.0.0.19 member18-fpc3 147.0.0.20 member18-fpc4 147.0.0.21 member18-fpc5 147.0.0.22 member18-fpc6 147.0.0.23 member18-fpc7 147.0.0.24 member18-fpc8 147.0.0.25 member18-fpc9 147.0.0.26 member18-fpc10 147.0.0.27 member18-fpc11 147.0.0.28 member18-fpc12 147.0.0.29 member18-fpc13 147.0.0.30 member18-fpc14 147.0.0.31 member18-fpc15 147.0.0.32 member18-fpc16 147.0.0.33 member18-fpc17 147.0.0.34 member18-fpc18 147.0.0.35 member18-fpc19 147.0.0.36 member18-fpc20 147.0.0.37 member18-fpc21 147.0.0.38 member18-fpc22 147.0.0.39 member18-fpc23 147.0.0.40 member18-fpc24 147.0.0.41 member18-fpc25 147.0.0.42 member18-fpc26 147.0.0.43 member18-fpc27 147.0.0.44 member18-fpc28 147.0.0.45 member18-fpc29 147.0.0.46 member18-fpc30 147.0.0.47 member18-fpc31 #LCC 19 (or MEMBER 19 on Virtual Chassis) 148.0.0.1 lcc19-master member19-master 148.0.0.4 lcc19-re0 member19-re0 148.0.0.5 lcc19-re1 member19-re1 148.0.0.6 lcc19-backup member19-backup 148.0.0.16 member19-fpc0 148.0.0.17 member19-fpc1 148.0.0.18 member19-fpc2 148.0.0.19 member19-fpc3 148.0.0.20 member19-fpc4 148.0.0.21 member19-fpc5 148.0.0.22 member19-fpc6 148.0.0.23 member19-fpc7 148.0.0.24 member19-fpc8 148.0.0.25 member19-fpc9 148.0.0.26 member19-fpc10 148.0.0.27 member19-fpc11 148.0.0.28 member19-fpc12 148.0.0.29 member19-fpc13 148.0.0.30 member19-fpc14 148.0.0.31 member19-fpc15 148.0.0.32 member19-fpc16 148.0.0.33 member19-fpc17 148.0.0.34 member19-fpc18 148.0.0.35 member19-fpc19 148.0.0.36 member19-fpc20 148.0.0.37 member19-fpc21 148.0.0.38 member19-fpc22 148.0.0.39 member19-fpc23 148.0.0.40 member19-fpc24 148.0.0.41 member19-fpc25 148.0.0.42 member19-fpc26 148.0.0.43 member19-fpc27 148.0.0.44 member19-fpc28 148.0.0.45 member19-fpc29 148.0.0.46 member19-fpc30 148.0.0.47 member19-fpc31 #LCC 20 (or MEMBER 20 on Virtual Chassis) 149.0.0.1 lcc20-master member20-master 149.0.0.4 lcc20-re0 member20-re0 149.0.0.5 lcc20-re1 member20-re1 149.0.0.6 lcc20-backup member20-backup 149.0.0.16 member20-fpc0 149.0.0.17 member20-fpc1 149.0.0.18 member20-fpc2 149.0.0.19 member20-fpc3 149.0.0.20 member20-fpc4 149.0.0.21 member20-fpc5 149.0.0.22 member20-fpc6 149.0.0.23 member20-fpc7 149.0.0.24 member20-fpc8 149.0.0.25 member20-fpc9 149.0.0.26 member20-fpc10 149.0.0.27 member20-fpc11 149.0.0.28 member20-fpc12 149.0.0.29 member20-fpc13 149.0.0.30 member20-fpc14 149.0.0.31 member20-fpc15 149.0.0.32 member20-fpc16 149.0.0.33 member20-fpc17 149.0.0.34 member20-fpc18 149.0.0.35 member20-fpc19 149.0.0.36 member20-fpc20 149.0.0.37 member20-fpc21 149.0.0.38 member20-fpc22 149.0.0.39 member20-fpc23 149.0.0.40 member20-fpc24 149.0.0.41 member20-fpc25 149.0.0.42 member20-fpc26 149.0.0.43 member20-fpc27 149.0.0.44 member20-fpc28 149.0.0.45 member20-fpc29 149.0.0.46 member20-fpc30 149.0.0.47 member20-fpc31 #LCC 21 (or MEMBER 21 on Virtual Chassis) 150.0.0.1 lcc21-master member21-master 150.0.0.4 lcc21-re0 member21-re0 150.0.0.5 lcc21-re1 member21-re1 150.0.0.6 lcc21-backup member21-backup 150.0.0.16 member21-fpc0 150.0.0.17 member21-fpc1 150.0.0.18 member21-fpc2 150.0.0.19 member21-fpc3 150.0.0.20 member21-fpc4 150.0.0.21 member21-fpc5 150.0.0.22 member21-fpc6 150.0.0.23 member21-fpc7 150.0.0.24 member21-fpc8 150.0.0.25 member21-fpc9 150.0.0.26 member21-fpc10 150.0.0.27 member21-fpc11 150.0.0.28 member21-fpc12 150.0.0.29 member21-fpc13 150.0.0.30 member21-fpc14 150.0.0.31 member21-fpc15 150.0.0.32 member21-fpc16 150.0.0.33 member21-fpc17 150.0.0.34 member21-fpc18 150.0.0.35 member21-fpc19 150.0.0.36 member21-fpc20 150.0.0.37 member21-fpc21 150.0.0.38 member21-fpc22 150.0.0.39 member21-fpc23 150.0.0.40 member21-fpc24 150.0.0.41 member21-fpc25 150.0.0.42 member21-fpc26 150.0.0.43 member21-fpc27 150.0.0.44 member21-fpc28 150.0.0.45 member21-fpc29 150.0.0.46 member21-fpc30 150.0.0.47 member21-fpc31 #LCC 22 (or MEMBER 22 on Virtual Chassis) 151.0.0.1 lcc22-master member22-master 151.0.0.4 lcc22-re0 member22-re0 151.0.0.5 lcc22-re1 member22-re1 151.0.0.6 lcc22-backup member22-backup 151.0.0.16 member22-fpc0 151.0.0.17 member22-fpc1 151.0.0.18 member22-fpc2 151.0.0.19 member22-fpc3 151.0.0.20 member22-fpc4 151.0.0.21 member22-fpc5 151.0.0.22 member22-fpc6 151.0.0.23 member22-fpc7 151.0.0.24 member22-fpc8 151.0.0.25 member22-fpc9 151.0.0.26 member22-fpc10 151.0.0.27 member22-fpc11 151.0.0.28 member22-fpc12 151.0.0.29 member22-fpc13 151.0.0.30 member22-fpc14 151.0.0.31 member22-fpc15 151.0.0.32 member22-fpc16 151.0.0.33 member22-fpc17 151.0.0.34 member22-fpc18 151.0.0.35 member22-fpc19 151.0.0.36 member22-fpc20 151.0.0.37 member22-fpc21 151.0.0.38 member22-fpc22 151.0.0.39 member22-fpc23 151.0.0.40 member22-fpc24 151.0.0.41 member22-fpc25 151.0.0.42 member22-fpc26 151.0.0.43 member22-fpc27 151.0.0.44 member22-fpc28 151.0.0.45 member22-fpc29 151.0.0.46 member22-fpc30 151.0.0.47 member22-fpc31 #LCC 23 (or MEMBER 23 on Virtual Chassis) 152.0.0.1 lcc23-master member23-master 152.0.0.4 lcc23-re0 member23-re0 152.0.0.5 lcc23-re1 member23-re1 152.0.0.6 lcc23-backup member23-backup 152.0.0.16 member23-fpc0 152.0.0.17 member23-fpc1 152.0.0.18 member23-fpc2 152.0.0.19 member23-fpc3 152.0.0.20 member23-fpc4 152.0.0.21 member23-fpc5 152.0.0.22 member23-fpc6 152.0.0.23 member23-fpc7 152.0.0.24 member23-fpc8 152.0.0.25 member23-fpc9 152.0.0.26 member23-fpc10 152.0.0.27 member23-fpc11 152.0.0.28 member23-fpc12 152.0.0.29 member23-fpc13 152.0.0.30 member23-fpc14 152.0.0.31 member23-fpc15 152.0.0.32 member23-fpc16 152.0.0.33 member23-fpc17 152.0.0.34 member23-fpc18 152.0.0.35 member23-fpc19 152.0.0.36 member23-fpc20 152.0.0.37 member23-fpc21 152.0.0.38 member23-fpc22 152.0.0.39 member23-fpc23 152.0.0.40 member23-fpc24 152.0.0.41 member23-fpc25 152.0.0.42 member23-fpc26 152.0.0.43 member23-fpc27 152.0.0.44 member23-fpc28 152.0.0.45 member23-fpc29 152.0.0.46 member23-fpc30 152.0.0.47 member23-fpc31 #LCC 24 (or MEMBER 24 on Virtual Chassis) 153.0.0.1 lcc24-master member24-master 153.0.0.4 lcc24-re0 member24-re0 153.0.0.5 lcc24-re1 member24-re1 153.0.0.6 lcc24-backup member24-backup 153.0.0.16 member24-fpc0 153.0.0.17 member24-fpc1 153.0.0.18 member24-fpc2 153.0.0.19 member24-fpc3 153.0.0.20 member24-fpc4 153.0.0.21 member24-fpc5 153.0.0.22 member24-fpc6 153.0.0.23 member24-fpc7 153.0.0.24 member24-fpc8 153.0.0.25 member24-fpc9 153.0.0.26 member24-fpc10 153.0.0.27 member24-fpc11 153.0.0.28 member24-fpc12 153.0.0.29 member24-fpc13 153.0.0.30 member24-fpc14 153.0.0.31 member24-fpc15 153.0.0.32 member24-fpc16 153.0.0.33 member24-fpc17 153.0.0.34 member24-fpc18 153.0.0.35 member24-fpc19 153.0.0.36 member24-fpc20 153.0.0.37 member24-fpc21 153.0.0.38 member24-fpc22 153.0.0.39 member24-fpc23 153.0.0.40 member24-fpc24 153.0.0.41 member24-fpc25 153.0.0.42 member24-fpc26 153.0.0.43 member24-fpc27 153.0.0.44 member24-fpc28 153.0.0.45 member24-fpc29 153.0.0.46 member24-fpc30 153.0.0.47 member24-fpc31 #LCC 25 (or MEMBER 25 on Virtual Chassis) 154.0.0.1 lcc25-master member25-master 154.0.0.4 lcc25-re0 member25-re0 154.0.0.5 lcc25-re1 member25-re1 154.0.0.6 lcc25-backup member25-backup 154.0.0.16 member25-fpc0 154.0.0.17 member25-fpc1 154.0.0.18 member25-fpc2 154.0.0.19 member25-fpc3 154.0.0.20 member25-fpc4 154.0.0.21 member25-fpc5 154.0.0.22 member25-fpc6 154.0.0.23 member25-fpc7 154.0.0.24 member25-fpc8 154.0.0.25 member25-fpc9 154.0.0.26 member25-fpc10 154.0.0.27 member25-fpc11 154.0.0.28 member25-fpc12 154.0.0.29 member25-fpc13 154.0.0.30 member25-fpc14 154.0.0.31 member25-fpc15 154.0.0.32 member25-fpc16 154.0.0.33 member25-fpc17 154.0.0.34 member25-fpc18 154.0.0.35 member25-fpc19 154.0.0.36 member25-fpc20 154.0.0.37 member25-fpc21 154.0.0.38 member25-fpc22 154.0.0.39 member25-fpc23 154.0.0.40 member25-fpc24 154.0.0.41 member25-fpc25 154.0.0.42 member25-fpc26 154.0.0.43 member25-fpc27 154.0.0.44 member25-fpc28 154.0.0.45 member25-fpc29 154.0.0.46 member25-fpc30 154.0.0.47 member25-fpc31 #LCC 26 (or MEMBER 26 on Virtual Chassis) 155.0.0.1 lcc26-master member26-master 155.0.0.4 lcc26-re0 member26-re0 155.0.0.5 lcc26-re1 member26-re1 155.0.0.6 lcc26-backup member26-backup 155.0.0.16 member26-fpc0 155.0.0.17 member26-fpc1 155.0.0.18 member26-fpc2 155.0.0.19 member26-fpc3 155.0.0.20 member26-fpc4 155.0.0.21 member26-fpc5 155.0.0.22 member26-fpc6 155.0.0.23 member26-fpc7 155.0.0.24 member26-fpc8 155.0.0.25 member26-fpc9 155.0.0.26 member26-fpc10 155.0.0.27 member26-fpc11 155.0.0.28 member26-fpc12 155.0.0.29 member26-fpc13 155.0.0.30 member26-fpc14 155.0.0.31 member26-fpc15 155.0.0.32 member26-fpc16 155.0.0.33 member26-fpc17 155.0.0.34 member26-fpc18 155.0.0.35 member26-fpc19 155.0.0.36 member26-fpc20 155.0.0.37 member26-fpc21 155.0.0.38 member26-fpc22 155.0.0.39 member26-fpc23 155.0.0.40 member26-fpc24 155.0.0.41 member26-fpc25 155.0.0.42 member26-fpc26 155.0.0.43 member26-fpc27 155.0.0.44 member26-fpc28 155.0.0.45 member26-fpc29 155.0.0.46 member26-fpc30 155.0.0.47 member26-fpc31 #LCC 27 (or MEMBER 27 on Virtual Chassis) 156.0.0.1 lcc27-master member27-master 156.0.0.4 lcc27-re0 member27-re0 156.0.0.5 lcc27-re1 member27-re1 156.0.0.6 lcc27-backup member27-backup 156.0.0.16 member27-fpc0 156.0.0.17 member27-fpc1 156.0.0.18 member27-fpc2 156.0.0.19 member27-fpc3 156.0.0.20 member27-fpc4 156.0.0.21 member27-fpc5 156.0.0.22 member27-fpc6 156.0.0.23 member27-fpc7 156.0.0.24 member27-fpc8 156.0.0.25 member27-fpc9 156.0.0.26 member27-fpc10 156.0.0.27 member27-fpc11 156.0.0.28 member27-fpc12 156.0.0.29 member27-fpc13 156.0.0.30 member27-fpc14 156.0.0.31 member27-fpc15 156.0.0.32 member27-fpc16 156.0.0.33 member27-fpc17 156.0.0.34 member27-fpc18 156.0.0.35 member27-fpc19 156.0.0.36 member27-fpc20 156.0.0.37 member27-fpc21 156.0.0.38 member27-fpc22 156.0.0.39 member27-fpc23 156.0.0.40 member27-fpc24 156.0.0.41 member27-fpc25 156.0.0.42 member27-fpc26 156.0.0.43 member27-fpc27 156.0.0.44 member27-fpc28 156.0.0.45 member27-fpc29 156.0.0.46 member27-fpc30 156.0.0.47 member27-fpc31 #LCC 28 (or MEMBER 28 on Virtual Chassis) 157.0.0.1 lcc28-master member28-master 157.0.0.4 lcc28-re0 member28-re0 157.0.0.5 lcc28-re1 member28-re1 157.0.0.6 lcc28-backup member28-backup 157.0.0.16 member28-fpc0 157.0.0.17 member28-fpc1 157.0.0.18 member28-fpc2 157.0.0.19 member28-fpc3 157.0.0.20 member28-fpc4 157.0.0.21 member28-fpc5 157.0.0.22 member28-fpc6 157.0.0.23 member28-fpc7 157.0.0.24 member28-fpc8 157.0.0.25 member28-fpc9 157.0.0.26 member28-fpc10 157.0.0.27 member28-fpc11 157.0.0.28 member28-fpc12 157.0.0.29 member28-fpc13 157.0.0.30 member28-fpc14 157.0.0.31 member28-fpc15 157.0.0.32 member28-fpc16 157.0.0.33 member28-fpc17 157.0.0.34 member28-fpc18 157.0.0.35 member28-fpc19 157.0.0.36 member28-fpc20 157.0.0.37 member28-fpc21 157.0.0.38 member28-fpc22 157.0.0.39 member28-fpc23 157.0.0.40 member28-fpc24 157.0.0.41 member28-fpc25 157.0.0.42 member28-fpc26 157.0.0.43 member28-fpc27 157.0.0.44 member28-fpc28 157.0.0.45 member28-fpc29 157.0.0.46 member28-fpc30 157.0.0.47 member28-fpc31 #LCC 29 (or MEMBER 29 on Virtual Chassis) 158.0.0.1 lcc29-master member29-master 158.0.0.4 lcc29-re0 member29-re0 158.0.0.5 lcc29-re1 member29-re1 158.0.0.6 lcc29-backup member29-backup 158.0.0.16 member29-fpc0 158.0.0.17 member29-fpc1 158.0.0.18 member29-fpc2 158.0.0.19 member29-fpc3 158.0.0.20 member29-fpc4 158.0.0.21 member29-fpc5 158.0.0.22 member29-fpc6 158.0.0.23 member29-fpc7 158.0.0.24 member29-fpc8 158.0.0.25 member29-fpc9 158.0.0.26 member29-fpc10 158.0.0.27 member29-fpc11 158.0.0.28 member29-fpc12 158.0.0.29 member29-fpc13 158.0.0.30 member29-fpc14 158.0.0.31 member29-fpc15 158.0.0.32 member29-fpc16 158.0.0.33 member29-fpc17 158.0.0.34 member29-fpc18 158.0.0.35 member29-fpc19 158.0.0.36 member29-fpc20 158.0.0.37 member29-fpc21 158.0.0.38 member29-fpc22 158.0.0.39 member29-fpc23 158.0.0.40 member29-fpc24 158.0.0.41 member29-fpc25 158.0.0.42 member29-fpc26 158.0.0.43 member29-fpc27 158.0.0.44 member29-fpc28 158.0.0.45 member29-fpc29 158.0.0.46 member29-fpc30 158.0.0.47 member29-fpc31 #LCC 30 (or MEMBER 30 on Virtual Chassis) 159.0.0.1 lcc30-master member30-master 159.0.0.4 lcc30-re0 member30-re0 159.0.0.5 lcc30-re1 member30-re1 159.0.0.6 lcc30-backup member30-backup 159.0.0.16 member30-fpc0 159.0.0.17 member30-fpc1 159.0.0.18 member30-fpc2 159.0.0.19 member30-fpc3 159.0.0.20 member30-fpc4 159.0.0.21 member30-fpc5 159.0.0.22 member30-fpc6 159.0.0.23 member30-fpc7 159.0.0.24 member30-fpc8 159.0.0.25 member30-fpc9 159.0.0.26 member30-fpc10 159.0.0.27 member30-fpc11 159.0.0.28 member30-fpc12 159.0.0.29 member30-fpc13 159.0.0.30 member30-fpc14 159.0.0.31 member30-fpc15 159.0.0.32 member30-fpc16 159.0.0.33 member30-fpc17 159.0.0.34 member30-fpc18 159.0.0.35 member30-fpc19 159.0.0.36 member30-fpc20 159.0.0.37 member30-fpc21 159.0.0.38 member30-fpc22 159.0.0.39 member30-fpc23 159.0.0.40 member30-fpc24 159.0.0.41 member30-fpc25 159.0.0.42 member30-fpc26 159.0.0.43 member30-fpc27 159.0.0.44 member30-fpc28 159.0.0.45 member30-fpc29 159.0.0.46 member30-fpc30 159.0.0.47 member30-fpc31 #LCC 31 (or MEMBER 31 on Virtual Chassis) 160.0.0.1 lcc31-master member31-master 160.0.0.4 lcc31-re0 member31-re0 160.0.0.5 lcc31-re1 member31-re1 160.0.0.6 lcc31-backup member31-backup 160.0.0.16 member31-fpc0 160.0.0.17 member31-fpc1 160.0.0.18 member31-fpc2 160.0.0.19 member31-fpc3 160.0.0.20 member31-fpc4 160.0.0.21 member31-fpc5 160.0.0.22 member31-fpc6 160.0.0.23 member31-fpc7 160.0.0.24 member31-fpc8 160.0.0.25 member31-fpc9 160.0.0.26 member31-fpc10 160.0.0.27 member31-fpc11 160.0.0.28 member31-fpc12 160.0.0.29 member31-fpc13 160.0.0.30 member31-fpc14 160.0.0.31 member31-fpc15 160.0.0.32 member31-fpc16 160.0.0.33 member31-fpc17 160.0.0.34 member31-fpc18 160.0.0.35 member31-fpc19 160.0.0.36 member31-fpc20 160.0.0.37 member31-fpc21 160.0.0.38 member31-fpc22 160.0.0.39 member31-fpc23 160.0.0.40 member31-fpc24 160.0.0.41 member31-fpc25 160.0.0.42 member31-fpc26 160.0.0.43 member31-fpc27 160.0.0.44 member31-fpc28 160.0.0.45 member31-fpc29 160.0.0.46 member31-fpc30 160.0.0.47 member31-fpc31 #VIRT SC 161.0.0.1 sc-master 161.0.0.4 sc-re0 161.0.0.5 sc-re1 161.0.0.6 sc-backup #SFC 0 162.0.0.1 sfc0-master 162.0.0.4 sfc0-re0 162.0.0.5 sfc0-re1 162.0.0.6 sfc0-backup 162.0.0.48 sfc0-spmb0 162.0.0.49 sfc0-spmb1 #SFC 1 163.0.0.1 sfc1-master 163.0.0.4 sfc1-re0 163.0.0.5 sfc1-re1 163.0.0.6 sfc1-backup 163.0.0.48 sfc1-spmb0 163.0.0.49 sfc1-spmb1 #SFC 2 164.0.0.1 sfc2-master 164.0.0.4 sfc2-re0 164.0.0.5 sfc2-re1 164.0.0.6 sfc2-backup 164.0.0.48 sfc2-spmb0 164.0.0.49 sfc2-spmb1 #SFC 3 165.0.0.1 sfc3-master 165.0.0.4 sfc3-re0 165.0.0.5 sfc3-re1 165.0.0.6 sfc3-backup 165.0.0.48 sfc3-spmb0 165.0.0.49 sfc3-spmb1 #SFC 4 166.0.0.1 sfc4-master 166.0.0.4 sfc4-re0 166.0.0.5 sfc4-re1 166.0.0.6 sfc4-backup 166.0.0.48 sfc4-spmb0 166.0.0.49 sfc4-spmb1 #JCS 190.0.0.1 psd%d-master 190.0.0.4 psd%d-re0 190.0.0.5 psd%d-re1 190.0.0.6 psd%d-backup # Old IP address format (RT_IRS_V2) # # Single Chassis Hostnames # 10.0.0.1 master 10.0.0.4 re0 10.0.0.5 re1 10.0.0.16 fpc0 10.0.0.17 fpc1 10.0.0.18 fpc2 10.0.0.19 fpc3 10.0.0.20 fpc4 10.0.0.21 fpc5 10.0.0.22 fpc6 10.0.0.23 fpc7 10.0.0.24 fpc8 10.0.0.25 fpc9 10.0.0.26 fpc10 10.0.0.27 fpc11 10.0.0.28 fpc12 10.0.0.29 fpc13 10.0.0.30 fpc14 10.0.0.31 fpc15 # # Multi Chassis Hostnames # #SCC 10.16.0.1 scc-master 10.16.0.4 scc-re0 10.16.0.5 scc-re1 #LCC 0 10.1.0.1 lcc0-master member0-master 10.1.0.4 lcc0-re0 member0-re0 10.1.0.5 lcc0-re1 member0-re1 10.1.0.6 lcc0-backup member0-backup #LCC 1 10.2.0.1 lcc1-master member1-master 10.2.0.4 lcc1-re0 member1-re0 10.2.0.5 lcc1-re1 member1-re1 10.2.0.6 lcc1-backup member1-backup #LCC 2 10.3.0.1 lcc2-master member2-master 10.3.0.4 lcc2-re0 member2-re0 10.3.0.5 lcc2-re1 member2-re1 10.3.0.6 lcc2-backup member2-backup #LCC 3 10.4.0.1 lcc3-master member3-master 10.4.0.4 lcc3-re0 member3-re0 10.4.0.5 lcc3-re1 member3-re1 10.4.0.6 lcc3-backup member3-backup #LCC 4 10.5.0.1 lcc4-master member4-master 10.5.0.4 lcc4-re0 member4-re0 10.5.0.5 lcc4-re1 member4-re1 10.5.0.6 lcc4-backup member4-backup #LCC 5 10.6.0.1 lcc5-master member5-master 10.6.0.4 lcc5-re0 member5-re0 10.6.0.5 lcc5-re1 member5-re1 10.6.0.6 lcc5-backup member5-backup #LCC 6 10.7.0.1 lcc6-master member6-master 10.7.0.4 lcc6-re0 member6-re0 10.7.0.5 lcc6-re1 member6-re1 10.7.0.6 lcc6-backup member6-backup #LCC 7 10.8.0.1 lcc7-master member7-master 10.8.0.4 lcc7-re0 member7-re0 10.8.0.5 lcc7-re1 member7-re1 10.8.0.6 lcc7-backup member7-backup #LCC 8 10.9.0.1 lcc8-master member8-master 10.9.0.4 lcc8-re0 member8-re0 10.9.0.5 lcc8-re1 member8-re1 10.9.0.6 lcc8-backup member8-backup #LCC 9 10.10.0.1 lcc9-master member9-master 10.10.0.4 lcc9-re0 member9-re0 10.10.0.5 lcc9-re1 member9-re1 10.10.0.6 lcc9-backup member9-backup #LCC 10 10.11.0.1 lcc10-master member10-master 10.11.0.4 lcc10-re0 member10-re0 10.11.0.5 lcc10-re1 member10-re1 10.11.0.6 lcc10-backup member10-backup #LCC 11 10.12.0.1 lcc11-master member11-master 10.12.0.4 lcc11-re0 member11-re0 10.12.0.5 lcc11-re1 member11-re1 10.12.0.6 lcc11-backup member11-backup #LCC 12 10.13.0.1 lcc12-master member12-master 10.13.0.4 lcc12-re0 member12-re0 10.13.0.5 lcc12-re1 member12-re1 10.13.0.6 lcc12-backup member12-backup #LCC 13 10.14.0.1 lcc13-master member13-master 10.14.0.4 lcc13-re0 member13-re0 10.14.0.5 lcc13-re1 member13-re1 10.14.0.6 lcc13-backup member13-backup #LCC 14 10.15.0.1 lcc14-master member14-master 10.15.0.4 lcc14-re0 member14-re0 10.15.0.5 lcc14-re1 member14-re1 10.15.0.6 lcc14-backup member14-backup #LCC 15 10.16.0.1 lcc15-master member15-master 10.16.0.4 lcc15-re0 member15-re0 10.16.0.5 lcc15-re1 member15-re1 10.16.0.6 lcc15-backup member15-backup #SFC 0 10.34.0.1 sfc0-master 10.34.0.4 sfc0-re0 10.34.0.5 sfc0-re1 #SFC 1 10.35.0.1 sfc1-master 10.35.0.4 sfc1-re0 10.35.0.5 sfc1-re1 #SFC 2 10.36.0.1 sfc2-master 10.36.0.4 sfc2-re0 10.36.0.5 sfc2-re1 #SFC 3 10.37.0.1 sfc3-master 10.37.0.4 sfc3-re0 10.37.0.5 sfc3-re1 #SFC 4 10.38.0.1 sfc4-master 10.38.0.4 sfc4-re0 10.38.0.5 sfc4-re1 # End of internal names py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/personality_vptx_get-interface-information.xml000066400000000000000000000142021475361112400327010ustar00rootroot00000000000000 pfh-0/0/0.16383 up up inet em1.0 up up inet 10.0.0.4/8 128.0.0.1/2 128.0.0.4/2 inet6 fe80::5668:a3ff:fe16:167b/64 fec0::a:0:0:4/64 tnp 0x4 lo0.16385 up up inet py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/personality_vptx_get-route-engine-information.xml000066400000000000000000000037231475361112400333500ustar00rootroot00000000000000 0 master master (default) OK 4073 MB (4096 MB installed) 22 0 0 1 2 96 1 0 1 2 96 1 0 1 2 97 1 0 1 2 97 RE-VIRTUAL 79a9584e-cc 2016-12-28 02:14:38 PST 4 days, 13 hours, 4 minutes, 12 seconds 0x200:normal shutdown 0.00 0.02 0.00 py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/re_info_dual_get-route-engine-information.xml000066400000000000000000000067611475361112400323510ustar00rootroot00000000000000 0 master master (default) OK 32 degrees C / 89 degrees F 30 degrees C / 86 degrees F 32719 MB (32768 MB installed) 4 0 0 1 0 98 0 0 1 0 98 0 0 1 0 99 0 0 1 0 99 RE-S-1800x4 9013088309 2016-12-21 08:47:57 PST 9 days, 22 hours, 27 minutes, 12 seconds Router rebooted after a normal shutdown. 0.29 0.23 0.19 1 backup backup (default) OK 32 degrees C / 89 degrees F 29 degrees C / 84 degrees F 32719 MB (32768 MB installed) 4 0 0 0 0 100 RE-S-1800x4 9013086699 2016-12-21 08:48:06 PST 9 days, 22 hours, 26 minutes, 48 seconds Router rebooted after a normal shutdown. 0.17 0.13 0.09 py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/re_info_mx_vc_get-route-engine-information.xml000066400000000000000000000204351475361112400325320ustar00rootroot00000000000000 member0 0 backup master (default) OK 32 degrees C / 89 degrees F 30 degrees C / 86 degrees F 16334 MB (16384 MB installed) 7 0 0 0 0 100 RE-S-1800x4 9013061800 2016-12-14 18:52:08 PST 16 days, 13 hours, 17 minutes, 25 seconds Router rebooted after a normal shutdown. 0.24 0.14 0.10 1 master backup (default) OK 30 degrees C / 86 degrees F 28 degrees C / 82 degrees F 16334 MB (16384 MB installed) 9 0 0 1 0 99 0 0 1 0 99 0 0 1 0 99 0 0 1 0 99 RE-S-1800x4 9013061812 2016-12-12 10:06:25 PST 18 days, 22 hours, 3 minutes, 18 seconds Router rebooted after a normal shutdown. 0.29 0.19 0.17 member1 0 master master (default) OK 30 degrees C / 86 degrees F 28 degrees C / 82 degrees F 16334 MB (16384 MB installed) 8 0 0 1 0 99 0 0 1 0 99 0 0 1 0 99 0 0 1 0 99 RE-S-1800x4 9013061833 2016-12-12 10:34:45 PST 18 days, 21 hours, 34 minutes, 58 seconds Router rebooted after a normal shutdown. 0.30 0.21 0.17 1 backup backup (default) OK 30 degrees C / 86 degrees F 29 degrees C / 84 degrees F 16334 MB (16384 MB installed) 7 0 0 0 0 100 RE-S-1800x4 9013061755 2016-12-14 18:59:26 PST 16 days, 13 hours, 10 minutes, 8 seconds Router rebooted after a normal shutdown. 0.12 0.08 0.08 py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/re_info_single_get-route-engine-information.xml000066400000000000000000000037441475361112400327030ustar00rootroot00000000000000 0 master master (default) OK 4058 MB (4096 MB installed) 15 1 0 1 0 98 1 0 1 1 97 1 0 1 1 97 1 0 1 1 97 RE-VMX 2f15f744-b7 2016-12-01 09:14:56 PST 29 days, 22 hours, 41 minutes, 35 seconds Router rebooted after a normal shutdown. 0.49 0.36 0.37 py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/sw_info_bsys_get-software-information.xml000066400000000000000000004034401475361112400316530ustar00rootroot00000000000000 bsys-re0 bsys mx2020 mx2020 17.4-20170706_dev_common.0 os-kernel JUNOS OS Kernel 64-bit [20170619.183714_fbsd-builder_stable_10] os-libs JUNOS OS libs [20170619.183714_fbsd-builder_stable_10] os-runtime JUNOS OS runtime [20170619.183714_fbsd-builder_stable_10] zoneinfo JUNOS OS time zone information [20170619.183714_fbsd-builder_stable_10] netstack JUNOS network stack and utilities [20170706.001121_builder_dev_common] junos-modules JUNOS modules [20170706.001121_builder_dev_common] junos-modules-platform JUNOS mx modules [20170706.001121_builder_dev_common] junos-libs JUNOS libs [20170706.001121_builder_dev_common] os-libs-compat32 JUNOS OS libs compat32 [20170619.183714_fbsd-builder_stable_10] os-compat32 JUNOS OS 32-bit compatibility [20170619.183714_fbsd-builder_stable_10] junos-libs-compat32 JUNOS libs compat32 [20170706.001121_builder_dev_common] junos-runtime JUNOS runtime [20170706.001121_builder_dev_common] vmguest Junos vmguest package [20170706.001121_builder_dev_common] py-extensions JUNOS py extensions [20170706.001121_builder_dev_common] py-base JUNOS py base [20170706.001121_builder_dev_common] os-vmguest JUNOS OS vmguest [20170619.183714_fbsd-builder_stable_10] os-crypto JUNOS OS crypto [20170619.183714_fbsd-builder_stable_10] junos-libs-compat32-platform JUNOS mx libs compat32 [20170706.001121_builder_dev_common] junos-runtime-platform JUNOS mx runtime [20170706.001121_builder_dev_common] junos-platform JUNOS common platform support [20170706.001121_builder_dev_common] junos-libs-platform JUNOS mx libs [20170706.001121_builder_dev_common] junos-dp-crypto-support-platform JUNOS mtx Data Plane Crypto Support [20170706.001121_builder_dev_common] junos-daemons JUNOS daemons [20170706.001121_builder_dev_common] junos-daemons-platform JUNOS mx daemons [20170706.001121_builder_dev_common] jservices-urlf JUNOS Services URL Filter package [20170706.001121_builder_dev_common] jservices-traffic-dird JUNOS Services TLB Service PIC package [20170706.001121_builder_dev_common] jservices-ssl JUNOS Services SSL [20170706.001121_builder_dev_common] jservices-sfw JUNOS Services Stateful Firewall [20170706.001121_builder_dev_common] jservices-rpm JUNOS Services RPM [20170706.001121_builder_dev_common] jservices-ptsp JUNOS Services PTSP Container package [20170706.001121_builder_dev_common] jservices-pcef JUNOS Services PCEF package [20170706.001121_builder_dev_common] jservices-nat JUNOS Services NAT [20170706.001121_builder_dev_common] jservices-mss JUNOS Services Mobile Subscriber Service Container package [20170706.001121_builder_dev_common] jservices-mobile JUNOS Services MobileNext Software package [20170706.001121_builder_dev_common] jservices-lrf JUNOS Services Logging Report Framework package [20170706.001121_builder_dev_common] jservices-llpdf JUNOS Services LL-PDF Container package [20170706.001121_builder_dev_common] jservices-jflow JUNOS Services Jflow Container package [20170706.001121_builder_dev_common] jservices-jdpi JUNOS Services Deep Packet Inspection package [20170706.001121_builder_dev_common] jservices-ipsec JUNOS Services IPSec [20170706.001121_builder_dev_common] jservices-ids JUNOS Services IDS [20170706.001121_builder_dev_common] jservices-idp JUNOS IDP Services [20170706.001121_builder_dev_common] jservices-hcm JUNOS Services HTTP Content Management package [20170706.001121_builder_dev_common] jservices-crypto-base JUNOS Services Crypto [20170706.001121_builder_dev_common] jservices-cpcd JUNOS Services Captive Portal and Content Delivery Container package [20170706.001121_builder_dev_common] jservices-cos JUNOS Services COS [20170706.001121_builder_dev_common] jservices-appid JUNOS AppId Services [20170706.001121_builder_dev_common] jservices-alg JUNOS Services Application Level Gateways [20170706.001121_builder_dev_common] jservices-aacl JUNOS Services AACL Container package [20170706.001121_builder_dev_common] jsdn JUNOS SDN Software Suite [20170706.001121_builder_dev_common] jsd-jet-1 JUNOS Extension Toolkit [20170706.001121_builder_dev_common] jpfe-wrlinux JUNOS Packet Forwarding Engine Support (wrlinux) [20170706.001121_builder_dev_common] jpfe-platform JUNOS Packet Forwarding Engine Support (X2000) [20170706.001121_builder_dev_common] jpfe-common JUNOS Packet Forwarding Engine Support (M/T Common) [20170706.001121_builder_dev_common] jpfe-X JUNOS Packet Forwarding Engine Support (MX Common) [20170706.001121_builder_dev_common] jfirmware JUNOS jfirmware [20170706.001121_builder_dev_common] jdocs JUNOS Online Documentation [20170706.001121_builder_dev_common] bsys-re1 bsys1 mx2020 mx2020 17.4-20170706_dev_common.0 os-kernel JUNOS OS Kernel 64-bit [20170619.183714_fbsd-builder_stable_10] os-libs JUNOS OS libs [20170619.183714_fbsd-builder_stable_10] os-runtime JUNOS OS runtime [20170619.183714_fbsd-builder_stable_10] zoneinfo JUNOS OS time zone information [20170619.183714_fbsd-builder_stable_10] netstack JUNOS network stack and utilities [20170706.001121_builder_dev_common] junos-modules JUNOS modules [20170706.001121_builder_dev_common] junos-modules-platform JUNOS mx modules [20170706.001121_builder_dev_common] junos-libs JUNOS libs [20170706.001121_builder_dev_common] os-libs-compat32 JUNOS OS libs compat32 [20170619.183714_fbsd-builder_stable_10] os-compat32 JUNOS OS 32-bit compatibility [20170619.183714_fbsd-builder_stable_10] junos-libs-compat32 JUNOS libs compat32 [20170706.001121_builder_dev_common] junos-runtime JUNOS runtime [20170706.001121_builder_dev_common] vmguest Junos vmguest package [20170706.001121_builder_dev_common] py-extensions JUNOS py extensions [20170706.001121_builder_dev_common] py-base JUNOS py base [20170706.001121_builder_dev_common] os-vmguest JUNOS OS vmguest [20170619.183714_fbsd-builder_stable_10] os-crypto JUNOS OS crypto [20170619.183714_fbsd-builder_stable_10] junos-libs-compat32-platform JUNOS mx libs compat32 [20170706.001121_builder_dev_common] junos-runtime-platform JUNOS mx runtime [20170706.001121_builder_dev_common] junos-platform JUNOS common platform support [20170706.001121_builder_dev_common] junos-libs-platform JUNOS mx libs [20170706.001121_builder_dev_common] junos-dp-crypto-support-platform JUNOS mtx Data Plane Crypto Support [20170706.001121_builder_dev_common] junos-daemons JUNOS daemons [20170706.001121_builder_dev_common] junos-daemons-platform JUNOS mx daemons [20170706.001121_builder_dev_common] jservices-urlf JUNOS Services URL Filter package [20170706.001121_builder_dev_common] jservices-traffic-dird JUNOS Services TLB Service PIC package [20170706.001121_builder_dev_common] jservices-ssl JUNOS Services SSL [20170706.001121_builder_dev_common] jservices-sfw JUNOS Services Stateful Firewall [20170706.001121_builder_dev_common] jservices-rpm JUNOS Services RPM [20170706.001121_builder_dev_common] jservices-ptsp JUNOS Services PTSP Container package [20170706.001121_builder_dev_common] jservices-pcef JUNOS Services PCEF package [20170706.001121_builder_dev_common] jservices-nat JUNOS Services NAT [20170706.001121_builder_dev_common] jservices-mss JUNOS Services Mobile Subscriber Service Container package [20170706.001121_builder_dev_common] jservices-mobile JUNOS Services MobileNext Software package [20170706.001121_builder_dev_common] jservices-lrf JUNOS Services Logging Report Framework package [20170706.001121_builder_dev_common] jservices-llpdf JUNOS Services LL-PDF Container package [20170706.001121_builder_dev_common] jservices-jflow JUNOS Services Jflow Container package [20170706.001121_builder_dev_common] jservices-jdpi JUNOS Services Deep Packet Inspection package [20170706.001121_builder_dev_common] jservices-ipsec JUNOS Services IPSec [20170706.001121_builder_dev_common] jservices-ids JUNOS Services IDS [20170706.001121_builder_dev_common] jservices-idp JUNOS IDP Services [20170706.001121_builder_dev_common] jservices-hcm JUNOS Services HTTP Content Management package [20170706.001121_builder_dev_common] jservices-crypto-base JUNOS Services Crypto [20170706.001121_builder_dev_common] jservices-cpcd JUNOS Services Captive Portal and Content Delivery Container package [20170706.001121_builder_dev_common] jservices-cos JUNOS Services COS [20170706.001121_builder_dev_common] jservices-appid JUNOS AppId Services [20170706.001121_builder_dev_common] jservices-alg JUNOS Services Application Level Gateways [20170706.001121_builder_dev_common] jservices-aacl JUNOS Services AACL Container package [20170706.001121_builder_dev_common] jsdn JUNOS SDN Software Suite [20170706.001121_builder_dev_common] jsd-jet-1 JUNOS Extension Toolkit [20170706.001121_builder_dev_common] jpfe-wrlinux JUNOS Packet Forwarding Engine Support (wrlinux) [20170706.001121_builder_dev_common] jpfe-platform JUNOS Packet Forwarding Engine Support (X2000) [20170706.001121_builder_dev_common] jpfe-common JUNOS Packet Forwarding Engine Support (M/T Common) [20170706.001121_builder_dev_common] jpfe-X JUNOS Packet Forwarding Engine Support (MX Common) [20170706.001121_builder_dev_common] jfirmware JUNOS jfirmware [20170706.001121_builder_dev_common] jdocs JUNOS Online Documentation [20170706.001121_builder_dev_common] gnf1-re0 gnf-a mx2020 mx2020 17.4-20170706_dev_common.0 os-kernel JUNOS OS Kernel 64-bit [20170619.183714_fbsd-builder_stable_10] os-libs JUNOS OS libs [20170619.183714_fbsd-builder_stable_10] os-runtime JUNOS OS runtime [20170619.183714_fbsd-builder_stable_10] zoneinfo JUNOS OS time zone information [20170619.183714_fbsd-builder_stable_10] netstack JUNOS network stack and utilities [20170706.001121_builder_dev_common] junos-modules JUNOS modules [20170706.001121_builder_dev_common] junos-modules-platform JUNOS mx modules [20170706.001121_builder_dev_common] junos-libs JUNOS libs [20170706.001121_builder_dev_common] os-libs-compat32 JUNOS OS libs compat32 [20170619.183714_fbsd-builder_stable_10] os-compat32 JUNOS OS 32-bit compatibility [20170619.183714_fbsd-builder_stable_10] junos-libs-compat32 JUNOS libs compat32 [20170706.001121_builder_dev_common] junos-runtime JUNOS runtime [20170706.001121_builder_dev_common] vmguest Junos vmguest package [20170706.001121_builder_dev_common] py-extensions JUNOS py extensions [20170706.001121_builder_dev_common] py-base JUNOS py base [20170706.001121_builder_dev_common] os-vmguest JUNOS OS vmguest [20170619.183714_fbsd-builder_stable_10] os-crypto JUNOS OS crypto [20170619.183714_fbsd-builder_stable_10] junos-libs-compat32-platform JUNOS mx libs compat32 [20170706.001121_builder_dev_common] junos-runtime-platform JUNOS mx runtime [20170706.001121_builder_dev_common] junos-platform JUNOS common platform support [20170706.001121_builder_dev_common] junos-libs-platform JUNOS mx libs [20170706.001121_builder_dev_common] junos-dp-crypto-support-platform JUNOS mtx Data Plane Crypto Support [20170706.001121_builder_dev_common] junos-daemons JUNOS daemons [20170706.001121_builder_dev_common] junos-daemons-platform JUNOS mx daemons [20170706.001121_builder_dev_common] jservices-urlf JUNOS Services URL Filter package [20170706.001121_builder_dev_common] jservices-traffic-dird JUNOS Services TLB Service PIC package [20170706.001121_builder_dev_common] jservices-ssl JUNOS Services SSL [20170706.001121_builder_dev_common] jservices-sfw JUNOS Services Stateful Firewall [20170706.001121_builder_dev_common] jservices-rpm JUNOS Services RPM [20170706.001121_builder_dev_common] jservices-ptsp JUNOS Services PTSP Container package [20170706.001121_builder_dev_common] jservices-pcef JUNOS Services PCEF package [20170706.001121_builder_dev_common] jservices-nat JUNOS Services NAT [20170706.001121_builder_dev_common] jservices-mss JUNOS Services Mobile Subscriber Service Container package [20170706.001121_builder_dev_common] jservices-mobile JUNOS Services MobileNext Software package [20170706.001121_builder_dev_common] jservices-lrf JUNOS Services Logging Report Framework package [20170706.001121_builder_dev_common] jservices-llpdf JUNOS Services LL-PDF Container package [20170706.001121_builder_dev_common] jservices-jflow JUNOS Services Jflow Container package [20170706.001121_builder_dev_common] jservices-jdpi JUNOS Services Deep Packet Inspection package [20170706.001121_builder_dev_common] jservices-ipsec JUNOS Services IPSec [20170706.001121_builder_dev_common] jservices-ids JUNOS Services IDS [20170706.001121_builder_dev_common] jservices-idp JUNOS IDP Services [20170706.001121_builder_dev_common] jservices-hcm JUNOS Services HTTP Content Management package [20170706.001121_builder_dev_common] jservices-crypto-base JUNOS Services Crypto [20170706.001121_builder_dev_common] jservices-cpcd JUNOS Services Captive Portal and Content Delivery Container package [20170706.001121_builder_dev_common] jservices-cos JUNOS Services COS [20170706.001121_builder_dev_common] jservices-appid JUNOS AppId Services [20170706.001121_builder_dev_common] jservices-alg JUNOS Services Application Level Gateways [20170706.001121_builder_dev_common] jservices-aacl JUNOS Services AACL Container package [20170706.001121_builder_dev_common] jsdn JUNOS SDN Software Suite [20170706.001121_builder_dev_common] jsd-jet-1 JUNOS Extension Toolkit [20170706.001121_builder_dev_common] jpfe-wrlinux JUNOS Packet Forwarding Engine Support (wrlinux) [20170706.001121_builder_dev_common] jpfe-platform JUNOS Packet Forwarding Engine Support (X2000) [20170706.001121_builder_dev_common] jpfe-common JUNOS Packet Forwarding Engine Support (M/T Common) [20170706.001121_builder_dev_common] jpfe-X JUNOS Packet Forwarding Engine Support (MX Common) [20170706.001121_builder_dev_common] jfirmware JUNOS jfirmware [20170706.001121_builder_dev_common] jdocs JUNOS Online Documentation [20170706.001121_builder_dev_common] gnf1-re1 gnf-a1 mx2020 mx2020 17.4-20170706_dev_common.0 os-kernel JUNOS OS Kernel 64-bit [20170619.183714_fbsd-builder_stable_10] os-libs JUNOS OS libs [20170619.183714_fbsd-builder_stable_10] os-runtime JUNOS OS runtime [20170619.183714_fbsd-builder_stable_10] zoneinfo JUNOS OS time zone information [20170619.183714_fbsd-builder_stable_10] netstack JUNOS network stack and utilities [20170706.001121_builder_dev_common] junos-modules JUNOS modules [20170706.001121_builder_dev_common] junos-modules-platform JUNOS mx modules [20170706.001121_builder_dev_common] junos-libs JUNOS libs [20170706.001121_builder_dev_common] os-libs-compat32 JUNOS OS libs compat32 [20170619.183714_fbsd-builder_stable_10] os-compat32 JUNOS OS 32-bit compatibility [20170619.183714_fbsd-builder_stable_10] junos-libs-compat32 JUNOS libs compat32 [20170706.001121_builder_dev_common] junos-runtime JUNOS runtime [20170706.001121_builder_dev_common] vmguest Junos vmguest package [20170706.001121_builder_dev_common] py-extensions JUNOS py extensions [20170706.001121_builder_dev_common] py-base JUNOS py base [20170706.001121_builder_dev_common] os-vmguest JUNOS OS vmguest [20170619.183714_fbsd-builder_stable_10] os-crypto JUNOS OS crypto [20170619.183714_fbsd-builder_stable_10] junos-libs-compat32-platform JUNOS mx libs compat32 [20170706.001121_builder_dev_common] junos-runtime-platform JUNOS mx runtime [20170706.001121_builder_dev_common] junos-platform JUNOS common platform support [20170706.001121_builder_dev_common] junos-libs-platform JUNOS mx libs [20170706.001121_builder_dev_common] junos-dp-crypto-support-platform JUNOS mtx Data Plane Crypto Support [20170706.001121_builder_dev_common] junos-daemons JUNOS daemons [20170706.001121_builder_dev_common] junos-daemons-platform JUNOS mx daemons [20170706.001121_builder_dev_common] jservices-urlf JUNOS Services URL Filter package [20170706.001121_builder_dev_common] jservices-traffic-dird JUNOS Services TLB Service PIC package [20170706.001121_builder_dev_common] jservices-ssl JUNOS Services SSL [20170706.001121_builder_dev_common] jservices-sfw JUNOS Services Stateful Firewall [20170706.001121_builder_dev_common] jservices-rpm JUNOS Services RPM [20170706.001121_builder_dev_common] jservices-ptsp JUNOS Services PTSP Container package [20170706.001121_builder_dev_common] jservices-pcef JUNOS Services PCEF package [20170706.001121_builder_dev_common] jservices-nat JUNOS Services NAT [20170706.001121_builder_dev_common] jservices-mss JUNOS Services Mobile Subscriber Service Container package [20170706.001121_builder_dev_common] jservices-mobile JUNOS Services MobileNext Software package [20170706.001121_builder_dev_common] jservices-lrf JUNOS Services Logging Report Framework package [20170706.001121_builder_dev_common] jservices-llpdf JUNOS Services LL-PDF Container package [20170706.001121_builder_dev_common] jservices-jflow JUNOS Services Jflow Container package [20170706.001121_builder_dev_common] jservices-jdpi JUNOS Services Deep Packet Inspection package [20170706.001121_builder_dev_common] jservices-ipsec JUNOS Services IPSec [20170706.001121_builder_dev_common] jservices-ids JUNOS Services IDS [20170706.001121_builder_dev_common] jservices-idp JUNOS IDP Services [20170706.001121_builder_dev_common] jservices-hcm JUNOS Services HTTP Content Management package [20170706.001121_builder_dev_common] jservices-crypto-base JUNOS Services Crypto [20170706.001121_builder_dev_common] jservices-cpcd JUNOS Services Captive Portal and Content Delivery Container package [20170706.001121_builder_dev_common] jservices-cos JUNOS Services COS [20170706.001121_builder_dev_common] jservices-appid JUNOS AppId Services [20170706.001121_builder_dev_common] jservices-alg JUNOS Services Application Level Gateways [20170706.001121_builder_dev_common] jservices-aacl JUNOS Services AACL Container package [20170706.001121_builder_dev_common] jsdn JUNOS SDN Software Suite [20170706.001121_builder_dev_common] jsd-jet-1 JUNOS Extension Toolkit [20170706.001121_builder_dev_common] jpfe-wrlinux JUNOS Packet Forwarding Engine Support (wrlinux) [20170706.001121_builder_dev_common] jpfe-platform JUNOS Packet Forwarding Engine Support (X2000) [20170706.001121_builder_dev_common] jpfe-common JUNOS Packet Forwarding Engine Support (M/T Common) [20170706.001121_builder_dev_common] jpfe-X JUNOS Packet Forwarding Engine Support (MX Common) [20170706.001121_builder_dev_common] jfirmware JUNOS jfirmware [20170706.001121_builder_dev_common] jdocs JUNOS Online Documentation [20170706.001121_builder_dev_common] gnf2-re0 gnf-b mx2020 mx2020 17.4-20170706_dev_common.0 os-kernel JUNOS OS Kernel 64-bit [20170619.183714_fbsd-builder_stable_10] os-libs JUNOS OS libs [20170619.183714_fbsd-builder_stable_10] os-runtime JUNOS OS runtime [20170619.183714_fbsd-builder_stable_10] zoneinfo JUNOS OS time zone information [20170619.183714_fbsd-builder_stable_10] netstack JUNOS network stack and utilities [20170706.001121_builder_dev_common] junos-modules JUNOS modules [20170706.001121_builder_dev_common] junos-modules-platform JUNOS mx modules [20170706.001121_builder_dev_common] junos-libs JUNOS libs [20170706.001121_builder_dev_common] os-libs-compat32 JUNOS OS libs compat32 [20170619.183714_fbsd-builder_stable_10] os-compat32 JUNOS OS 32-bit compatibility [20170619.183714_fbsd-builder_stable_10] junos-libs-compat32 JUNOS libs compat32 [20170706.001121_builder_dev_common] junos-runtime JUNOS runtime [20170706.001121_builder_dev_common] vmguest Junos vmguest package [20170706.001121_builder_dev_common] py-extensions JUNOS py extensions [20170706.001121_builder_dev_common] py-base JUNOS py base [20170706.001121_builder_dev_common] os-vmguest JUNOS OS vmguest [20170619.183714_fbsd-builder_stable_10] os-crypto JUNOS OS crypto [20170619.183714_fbsd-builder_stable_10] junos-libs-compat32-platform JUNOS mx libs compat32 [20170706.001121_builder_dev_common] junos-runtime-platform JUNOS mx runtime [20170706.001121_builder_dev_common] junos-platform JUNOS common platform support [20170706.001121_builder_dev_common] junos-libs-platform JUNOS mx libs [20170706.001121_builder_dev_common] junos-dp-crypto-support-platform JUNOS mtx Data Plane Crypto Support [20170706.001121_builder_dev_common] junos-daemons JUNOS daemons [20170706.001121_builder_dev_common] junos-daemons-platform JUNOS mx daemons [20170706.001121_builder_dev_common] jservices-urlf JUNOS Services URL Filter package [20170706.001121_builder_dev_common] jservices-traffic-dird JUNOS Services TLB Service PIC package [20170706.001121_builder_dev_common] jservices-ssl JUNOS Services SSL [20170706.001121_builder_dev_common] jservices-sfw JUNOS Services Stateful Firewall [20170706.001121_builder_dev_common] jservices-rpm JUNOS Services RPM [20170706.001121_builder_dev_common] jservices-ptsp JUNOS Services PTSP Container package [20170706.001121_builder_dev_common] jservices-pcef JUNOS Services PCEF package [20170706.001121_builder_dev_common] jservices-nat JUNOS Services NAT [20170706.001121_builder_dev_common] jservices-mss JUNOS Services Mobile Subscriber Service Container package [20170706.001121_builder_dev_common] jservices-mobile JUNOS Services MobileNext Software package [20170706.001121_builder_dev_common] jservices-lrf JUNOS Services Logging Report Framework package [20170706.001121_builder_dev_common] jservices-llpdf JUNOS Services LL-PDF Container package [20170706.001121_builder_dev_common] jservices-jflow JUNOS Services Jflow Container package [20170706.001121_builder_dev_common] jservices-jdpi JUNOS Services Deep Packet Inspection package [20170706.001121_builder_dev_common] jservices-ipsec JUNOS Services IPSec [20170706.001121_builder_dev_common] jservices-ids JUNOS Services IDS [20170706.001121_builder_dev_common] jservices-idp JUNOS IDP Services [20170706.001121_builder_dev_common] jservices-hcm JUNOS Services HTTP Content Management package [20170706.001121_builder_dev_common] jservices-crypto-base JUNOS Services Crypto [20170706.001121_builder_dev_common] jservices-cpcd JUNOS Services Captive Portal and Content Delivery Container package [20170706.001121_builder_dev_common] jservices-cos JUNOS Services COS [20170706.001121_builder_dev_common] jservices-appid JUNOS AppId Services [20170706.001121_builder_dev_common] jservices-alg JUNOS Services Application Level Gateways [20170706.001121_builder_dev_common] jservices-aacl JUNOS Services AACL Container package [20170706.001121_builder_dev_common] jsdn JUNOS SDN Software Suite [20170706.001121_builder_dev_common] jsd-jet-1 JUNOS Extension Toolkit [20170706.001121_builder_dev_common] jpfe-wrlinux JUNOS Packet Forwarding Engine Support (wrlinux) [20170706.001121_builder_dev_common] jpfe-platform JUNOS Packet Forwarding Engine Support (X2000) [20170706.001121_builder_dev_common] jpfe-common JUNOS Packet Forwarding Engine Support (M/T Common) [20170706.001121_builder_dev_common] jpfe-X JUNOS Packet Forwarding Engine Support (MX Common) [20170706.001121_builder_dev_common] jfirmware JUNOS jfirmware [20170706.001121_builder_dev_common] jdocs JUNOS Online Documentation [20170706.001121_builder_dev_common] gnf2-re1 gnf-b1 mx2020 mx2020 17.4-20170706_dev_common.0 os-kernel JUNOS OS Kernel 64-bit [20170619.183714_fbsd-builder_stable_10] os-libs JUNOS OS libs [20170619.183714_fbsd-builder_stable_10] os-runtime JUNOS OS runtime [20170619.183714_fbsd-builder_stable_10] zoneinfo JUNOS OS time zone information [20170619.183714_fbsd-builder_stable_10] netstack JUNOS network stack and utilities [20170706.001121_builder_dev_common] junos-modules JUNOS modules [20170706.001121_builder_dev_common] junos-modules-platform JUNOS mx modules [20170706.001121_builder_dev_common] junos-libs JUNOS libs [20170706.001121_builder_dev_common] os-libs-compat32 JUNOS OS libs compat32 [20170619.183714_fbsd-builder_stable_10] os-compat32 JUNOS OS 32-bit compatibility [20170619.183714_fbsd-builder_stable_10] junos-libs-compat32 JUNOS libs compat32 [20170706.001121_builder_dev_common] junos-runtime JUNOS runtime [20170706.001121_builder_dev_common] vmguest Junos vmguest package [20170706.001121_builder_dev_common] py-extensions JUNOS py extensions [20170706.001121_builder_dev_common] py-base JUNOS py base [20170706.001121_builder_dev_common] os-vmguest JUNOS OS vmguest [20170619.183714_fbsd-builder_stable_10] os-crypto JUNOS OS crypto [20170619.183714_fbsd-builder_stable_10] junos-libs-compat32-platform JUNOS mx libs compat32 [20170706.001121_builder_dev_common] junos-runtime-platform JUNOS mx runtime [20170706.001121_builder_dev_common] junos-platform JUNOS common platform support [20170706.001121_builder_dev_common] junos-libs-platform JUNOS mx libs [20170706.001121_builder_dev_common] junos-dp-crypto-support-platform JUNOS mtx Data Plane Crypto Support [20170706.001121_builder_dev_common] junos-daemons JUNOS daemons [20170706.001121_builder_dev_common] junos-daemons-platform JUNOS mx daemons [20170706.001121_builder_dev_common] jservices-urlf JUNOS Services URL Filter package [20170706.001121_builder_dev_common] jservices-traffic-dird JUNOS Services TLB Service PIC package [20170706.001121_builder_dev_common] jservices-ssl JUNOS Services SSL [20170706.001121_builder_dev_common] jservices-sfw JUNOS Services Stateful Firewall [20170706.001121_builder_dev_common] jservices-rpm JUNOS Services RPM [20170706.001121_builder_dev_common] jservices-ptsp JUNOS Services PTSP Container package [20170706.001121_builder_dev_common] jservices-pcef JUNOS Services PCEF package [20170706.001121_builder_dev_common] jservices-nat JUNOS Services NAT [20170706.001121_builder_dev_common] jservices-mss JUNOS Services Mobile Subscriber Service Container package [20170706.001121_builder_dev_common] jservices-mobile JUNOS Services MobileNext Software package [20170706.001121_builder_dev_common] jservices-lrf JUNOS Services Logging Report Framework package [20170706.001121_builder_dev_common] jservices-llpdf JUNOS Services LL-PDF Container package [20170706.001121_builder_dev_common] jservices-jflow JUNOS Services Jflow Container package [20170706.001121_builder_dev_common] jservices-jdpi JUNOS Services Deep Packet Inspection package [20170706.001121_builder_dev_common] jservices-ipsec JUNOS Services IPSec [20170706.001121_builder_dev_common] jservices-ids JUNOS Services IDS [20170706.001121_builder_dev_common] jservices-idp JUNOS IDP Services [20170706.001121_builder_dev_common] jservices-hcm JUNOS Services HTTP Content Management package [20170706.001121_builder_dev_common] jservices-crypto-base JUNOS Services Crypto [20170706.001121_builder_dev_common] jservices-cpcd JUNOS Services Captive Portal and Content Delivery Container package [20170706.001121_builder_dev_common] jservices-cos JUNOS Services COS [20170706.001121_builder_dev_common] jservices-appid JUNOS AppId Services [20170706.001121_builder_dev_common] jservices-alg JUNOS Services Application Level Gateways [20170706.001121_builder_dev_common] jservices-aacl JUNOS Services AACL Container package [20170706.001121_builder_dev_common] jsdn JUNOS SDN Software Suite [20170706.001121_builder_dev_common] jsd-jet-1 JUNOS Extension Toolkit [20170706.001121_builder_dev_common] jpfe-wrlinux JUNOS Packet Forwarding Engine Support (wrlinux) [20170706.001121_builder_dev_common] jpfe-platform JUNOS Packet Forwarding Engine Support (X2000) [20170706.001121_builder_dev_common] jpfe-common JUNOS Packet Forwarding Engine Support (M/T Common) [20170706.001121_builder_dev_common] jpfe-X JUNOS Packet Forwarding Engine Support (MX Common) [20170706.001121_builder_dev_common] jfirmware JUNOS jfirmware [20170706.001121_builder_dev_common] jdocs JUNOS Online Documentation [20170706.001121_builder_dev_common] gnf3-re0 gnf-c mx2020 mx2020 17.4-20170706_dev_common.0 os-kernel JUNOS OS Kernel 64-bit [20170619.183714_fbsd-builder_stable_10] os-libs JUNOS OS libs [20170619.183714_fbsd-builder_stable_10] os-runtime JUNOS OS runtime [20170619.183714_fbsd-builder_stable_10] zoneinfo JUNOS OS time zone information [20170619.183714_fbsd-builder_stable_10] netstack JUNOS network stack and utilities [20170706.001121_builder_dev_common] junos-modules JUNOS modules [20170706.001121_builder_dev_common] junos-modules-platform JUNOS mx modules [20170706.001121_builder_dev_common] junos-libs JUNOS libs [20170706.001121_builder_dev_common] os-libs-compat32 JUNOS OS libs compat32 [20170619.183714_fbsd-builder_stable_10] os-compat32 JUNOS OS 32-bit compatibility [20170619.183714_fbsd-builder_stable_10] junos-libs-compat32 JUNOS libs compat32 [20170706.001121_builder_dev_common] junos-runtime JUNOS runtime [20170706.001121_builder_dev_common] vmguest Junos vmguest package [20170706.001121_builder_dev_common] py-extensions JUNOS py extensions [20170706.001121_builder_dev_common] py-base JUNOS py base [20170706.001121_builder_dev_common] os-vmguest JUNOS OS vmguest [20170619.183714_fbsd-builder_stable_10] os-crypto JUNOS OS crypto [20170619.183714_fbsd-builder_stable_10] junos-libs-compat32-platform JUNOS mx libs compat32 [20170706.001121_builder_dev_common] junos-runtime-platform JUNOS mx runtime [20170706.001121_builder_dev_common] junos-platform JUNOS common platform support [20170706.001121_builder_dev_common] junos-libs-platform JUNOS mx libs [20170706.001121_builder_dev_common] junos-dp-crypto-support-platform JUNOS mtx Data Plane Crypto Support [20170706.001121_builder_dev_common] junos-daemons JUNOS daemons [20170706.001121_builder_dev_common] junos-daemons-platform JUNOS mx daemons [20170706.001121_builder_dev_common] jservices-urlf JUNOS Services URL Filter package [20170706.001121_builder_dev_common] jservices-traffic-dird JUNOS Services TLB Service PIC package [20170706.001121_builder_dev_common] jservices-ssl JUNOS Services SSL [20170706.001121_builder_dev_common] jservices-sfw JUNOS Services Stateful Firewall [20170706.001121_builder_dev_common] jservices-rpm JUNOS Services RPM [20170706.001121_builder_dev_common] jservices-ptsp JUNOS Services PTSP Container package [20170706.001121_builder_dev_common] jservices-pcef JUNOS Services PCEF package [20170706.001121_builder_dev_common] jservices-nat JUNOS Services NAT [20170706.001121_builder_dev_common] jservices-mss JUNOS Services Mobile Subscriber Service Container package [20170706.001121_builder_dev_common] jservices-mobile JUNOS Services MobileNext Software package [20170706.001121_builder_dev_common] jservices-lrf JUNOS Services Logging Report Framework package [20170706.001121_builder_dev_common] jservices-llpdf JUNOS Services LL-PDF Container package [20170706.001121_builder_dev_common] jservices-jflow JUNOS Services Jflow Container package [20170706.001121_builder_dev_common] jservices-jdpi JUNOS Services Deep Packet Inspection package [20170706.001121_builder_dev_common] jservices-ipsec JUNOS Services IPSec [20170706.001121_builder_dev_common] jservices-ids JUNOS Services IDS [20170706.001121_builder_dev_common] jservices-idp JUNOS IDP Services [20170706.001121_builder_dev_common] jservices-hcm JUNOS Services HTTP Content Management package [20170706.001121_builder_dev_common] jservices-crypto-base JUNOS Services Crypto [20170706.001121_builder_dev_common] jservices-cpcd JUNOS Services Captive Portal and Content Delivery Container package [20170706.001121_builder_dev_common] jservices-cos JUNOS Services COS [20170706.001121_builder_dev_common] jservices-appid JUNOS AppId Services [20170706.001121_builder_dev_common] jservices-alg JUNOS Services Application Level Gateways [20170706.001121_builder_dev_common] jservices-aacl JUNOS Services AACL Container package [20170706.001121_builder_dev_common] jsdn JUNOS SDN Software Suite [20170706.001121_builder_dev_common] jsd-jet-1 JUNOS Extension Toolkit [20170706.001121_builder_dev_common] jpfe-wrlinux JUNOS Packet Forwarding Engine Support (wrlinux) [20170706.001121_builder_dev_common] jpfe-platform JUNOS Packet Forwarding Engine Support (X2000) [20170706.001121_builder_dev_common] jpfe-common JUNOS Packet Forwarding Engine Support (M/T Common) [20170706.001121_builder_dev_common] jpfe-X JUNOS Packet Forwarding Engine Support (MX Common) [20170706.001121_builder_dev_common] jfirmware JUNOS jfirmware [20170706.001121_builder_dev_common] jdocs JUNOS Online Documentation [20170706.001121_builder_dev_common] gnf3-re1 gnf-c1 mx2020 mx2020 17.4-20170706_dev_common.0 os-kernel JUNOS OS Kernel 64-bit [20170619.183714_fbsd-builder_stable_10] os-libs JUNOS OS libs [20170619.183714_fbsd-builder_stable_10] os-runtime JUNOS OS runtime [20170619.183714_fbsd-builder_stable_10] zoneinfo JUNOS OS time zone information [20170619.183714_fbsd-builder_stable_10] netstack JUNOS network stack and utilities [20170706.001121_builder_dev_common] junos-modules JUNOS modules [20170706.001121_builder_dev_common] junos-modules-platform JUNOS mx modules [20170706.001121_builder_dev_common] junos-libs JUNOS libs [20170706.001121_builder_dev_common] os-libs-compat32 JUNOS OS libs compat32 [20170619.183714_fbsd-builder_stable_10] os-compat32 JUNOS OS 32-bit compatibility [20170619.183714_fbsd-builder_stable_10] junos-libs-compat32 JUNOS libs compat32 [20170706.001121_builder_dev_common] junos-runtime JUNOS runtime [20170706.001121_builder_dev_common] vmguest Junos vmguest package [20170706.001121_builder_dev_common] py-extensions JUNOS py extensions [20170706.001121_builder_dev_common] py-base JUNOS py base [20170706.001121_builder_dev_common] os-vmguest JUNOS OS vmguest [20170619.183714_fbsd-builder_stable_10] os-crypto JUNOS OS crypto [20170619.183714_fbsd-builder_stable_10] junos-libs-compat32-platform JUNOS mx libs compat32 [20170706.001121_builder_dev_common] junos-runtime-platform JUNOS mx runtime [20170706.001121_builder_dev_common] junos-platform JUNOS common platform support [20170706.001121_builder_dev_common] junos-libs-platform JUNOS mx libs [20170706.001121_builder_dev_common] junos-dp-crypto-support-platform JUNOS mtx Data Plane Crypto Support [20170706.001121_builder_dev_common] junos-daemons JUNOS daemons [20170706.001121_builder_dev_common] junos-daemons-platform JUNOS mx daemons [20170706.001121_builder_dev_common] jservices-urlf JUNOS Services URL Filter package [20170706.001121_builder_dev_common] jservices-traffic-dird JUNOS Services TLB Service PIC package [20170706.001121_builder_dev_common] jservices-ssl JUNOS Services SSL [20170706.001121_builder_dev_common] jservices-sfw JUNOS Services Stateful Firewall [20170706.001121_builder_dev_common] jservices-rpm JUNOS Services RPM [20170706.001121_builder_dev_common] jservices-ptsp JUNOS Services PTSP Container package [20170706.001121_builder_dev_common] jservices-pcef JUNOS Services PCEF package [20170706.001121_builder_dev_common] jservices-nat JUNOS Services NAT [20170706.001121_builder_dev_common] jservices-mss JUNOS Services Mobile Subscriber Service Container package [20170706.001121_builder_dev_common] jservices-mobile JUNOS Services MobileNext Software package [20170706.001121_builder_dev_common] jservices-lrf JUNOS Services Logging Report Framework package [20170706.001121_builder_dev_common] jservices-llpdf JUNOS Services LL-PDF Container package [20170706.001121_builder_dev_common] jservices-jflow JUNOS Services Jflow Container package [20170706.001121_builder_dev_common] jservices-jdpi JUNOS Services Deep Packet Inspection package [20170706.001121_builder_dev_common] jservices-ipsec JUNOS Services IPSec [20170706.001121_builder_dev_common] jservices-ids JUNOS Services IDS [20170706.001121_builder_dev_common] jservices-idp JUNOS IDP Services [20170706.001121_builder_dev_common] jservices-hcm JUNOS Services HTTP Content Management package [20170706.001121_builder_dev_common] jservices-crypto-base JUNOS Services Crypto [20170706.001121_builder_dev_common] jservices-cpcd JUNOS Services Captive Portal and Content Delivery Container package [20170706.001121_builder_dev_common] jservices-cos JUNOS Services COS [20170706.001121_builder_dev_common] jservices-appid JUNOS AppId Services [20170706.001121_builder_dev_common] jservices-alg JUNOS Services Application Level Gateways [20170706.001121_builder_dev_common] jservices-aacl JUNOS Services AACL Container package [20170706.001121_builder_dev_common] jsdn JUNOS SDN Software Suite [20170706.001121_builder_dev_common] jsd-jet-1 JUNOS Extension Toolkit [20170706.001121_builder_dev_common] jpfe-wrlinux JUNOS Packet Forwarding Engine Support (wrlinux) [20170706.001121_builder_dev_common] jpfe-platform JUNOS Packet Forwarding Engine Support (X2000) [20170706.001121_builder_dev_common] jpfe-common JUNOS Packet Forwarding Engine Support (M/T Common) [20170706.001121_builder_dev_common] jpfe-X JUNOS Packet Forwarding Engine Support (MX Common) [20170706.001121_builder_dev_common] jfirmware JUNOS jfirmware [20170706.001121_builder_dev_common] jdocs JUNOS Online Documentation [20170706.001121_builder_dev_common] gnf4-re0 gnf-d mx2020 mx2020 17.4-20170706_dev_common.0 os-kernel JUNOS OS Kernel 64-bit [20170619.183714_fbsd-builder_stable_10] os-libs JUNOS OS libs [20170619.183714_fbsd-builder_stable_10] os-runtime JUNOS OS runtime [20170619.183714_fbsd-builder_stable_10] zoneinfo JUNOS OS time zone information [20170619.183714_fbsd-builder_stable_10] netstack JUNOS network stack and utilities [20170706.001121_builder_dev_common] junos-modules JUNOS modules [20170706.001121_builder_dev_common] junos-modules-platform JUNOS mx modules [20170706.001121_builder_dev_common] junos-libs JUNOS libs [20170706.001121_builder_dev_common] os-libs-compat32 JUNOS OS libs compat32 [20170619.183714_fbsd-builder_stable_10] os-compat32 JUNOS OS 32-bit compatibility [20170619.183714_fbsd-builder_stable_10] junos-libs-compat32 JUNOS libs compat32 [20170706.001121_builder_dev_common] junos-runtime JUNOS runtime [20170706.001121_builder_dev_common] vmguest Junos vmguest package [20170706.001121_builder_dev_common] py-extensions JUNOS py extensions [20170706.001121_builder_dev_common] py-base JUNOS py base [20170706.001121_builder_dev_common] os-vmguest JUNOS OS vmguest [20170619.183714_fbsd-builder_stable_10] os-crypto JUNOS OS crypto [20170619.183714_fbsd-builder_stable_10] junos-libs-compat32-platform JUNOS mx libs compat32 [20170706.001121_builder_dev_common] junos-runtime-platform JUNOS mx runtime [20170706.001121_builder_dev_common] junos-platform JUNOS common platform support [20170706.001121_builder_dev_common] junos-libs-platform JUNOS mx libs [20170706.001121_builder_dev_common] junos-dp-crypto-support-platform JUNOS mtx Data Plane Crypto Support [20170706.001121_builder_dev_common] junos-daemons JUNOS daemons [20170706.001121_builder_dev_common] junos-daemons-platform JUNOS mx daemons [20170706.001121_builder_dev_common] jservices-urlf JUNOS Services URL Filter package [20170706.001121_builder_dev_common] jservices-traffic-dird JUNOS Services TLB Service PIC package [20170706.001121_builder_dev_common] jservices-ssl JUNOS Services SSL [20170706.001121_builder_dev_common] jservices-sfw JUNOS Services Stateful Firewall [20170706.001121_builder_dev_common] jservices-rpm JUNOS Services RPM [20170706.001121_builder_dev_common] jservices-ptsp JUNOS Services PTSP Container package [20170706.001121_builder_dev_common] jservices-pcef JUNOS Services PCEF package [20170706.001121_builder_dev_common] jservices-nat JUNOS Services NAT [20170706.001121_builder_dev_common] jservices-mss JUNOS Services Mobile Subscriber Service Container package [20170706.001121_builder_dev_common] jservices-mobile JUNOS Services MobileNext Software package [20170706.001121_builder_dev_common] jservices-lrf JUNOS Services Logging Report Framework package [20170706.001121_builder_dev_common] jservices-llpdf JUNOS Services LL-PDF Container package [20170706.001121_builder_dev_common] jservices-jflow JUNOS Services Jflow Container package [20170706.001121_builder_dev_common] jservices-jdpi JUNOS Services Deep Packet Inspection package [20170706.001121_builder_dev_common] jservices-ipsec JUNOS Services IPSec [20170706.001121_builder_dev_common] jservices-ids JUNOS Services IDS [20170706.001121_builder_dev_common] jservices-idp JUNOS IDP Services [20170706.001121_builder_dev_common] jservices-hcm JUNOS Services HTTP Content Management package [20170706.001121_builder_dev_common] jservices-crypto-base JUNOS Services Crypto [20170706.001121_builder_dev_common] jservices-cpcd JUNOS Services Captive Portal and Content Delivery Container package [20170706.001121_builder_dev_common] jservices-cos JUNOS Services COS [20170706.001121_builder_dev_common] jservices-appid JUNOS AppId Services [20170706.001121_builder_dev_common] jservices-alg JUNOS Services Application Level Gateways [20170706.001121_builder_dev_common] jservices-aacl JUNOS Services AACL Container package [20170706.001121_builder_dev_common] jsdn JUNOS SDN Software Suite [20170706.001121_builder_dev_common] jsd-jet-1 JUNOS Extension Toolkit [20170706.001121_builder_dev_common] jpfe-wrlinux JUNOS Packet Forwarding Engine Support (wrlinux) [20170706.001121_builder_dev_common] jpfe-platform JUNOS Packet Forwarding Engine Support (X2000) [20170706.001121_builder_dev_common] jpfe-common JUNOS Packet Forwarding Engine Support (M/T Common) [20170706.001121_builder_dev_common] jpfe-X JUNOS Packet Forwarding Engine Support (MX Common) [20170706.001121_builder_dev_common] jfirmware JUNOS jfirmware [20170706.001121_builder_dev_common] jdocs JUNOS Online Documentation [20170706.001121_builder_dev_common] gnf4-re1 gnf-d1 mx2020 mx2020 17.4-20170706_dev_common.0 os-kernel JUNOS OS Kernel 64-bit [20170619.183714_fbsd-builder_stable_10] os-libs JUNOS OS libs [20170619.183714_fbsd-builder_stable_10] os-runtime JUNOS OS runtime [20170619.183714_fbsd-builder_stable_10] zoneinfo JUNOS OS time zone information [20170619.183714_fbsd-builder_stable_10] netstack JUNOS network stack and utilities [20170706.001121_builder_dev_common] junos-modules JUNOS modules [20170706.001121_builder_dev_common] junos-modules-platform JUNOS mx modules [20170706.001121_builder_dev_common] junos-libs JUNOS libs [20170706.001121_builder_dev_common] os-libs-compat32 JUNOS OS libs compat32 [20170619.183714_fbsd-builder_stable_10] os-compat32 JUNOS OS 32-bit compatibility [20170619.183714_fbsd-builder_stable_10] junos-libs-compat32 JUNOS libs compat32 [20170706.001121_builder_dev_common] junos-runtime JUNOS runtime [20170706.001121_builder_dev_common] vmguest Junos vmguest package [20170706.001121_builder_dev_common] py-extensions JUNOS py extensions [20170706.001121_builder_dev_common] py-base JUNOS py base [20170706.001121_builder_dev_common] os-vmguest JUNOS OS vmguest [20170619.183714_fbsd-builder_stable_10] os-crypto JUNOS OS crypto [20170619.183714_fbsd-builder_stable_10] junos-libs-compat32-platform JUNOS mx libs compat32 [20170706.001121_builder_dev_common] junos-runtime-platform JUNOS mx runtime [20170706.001121_builder_dev_common] junos-platform JUNOS common platform support [20170706.001121_builder_dev_common] junos-libs-platform JUNOS mx libs [20170706.001121_builder_dev_common] junos-dp-crypto-support-platform JUNOS mtx Data Plane Crypto Support [20170706.001121_builder_dev_common] junos-daemons JUNOS daemons [20170706.001121_builder_dev_common] junos-daemons-platform JUNOS mx daemons [20170706.001121_builder_dev_common] jservices-urlf JUNOS Services URL Filter package [20170706.001121_builder_dev_common] jservices-traffic-dird JUNOS Services TLB Service PIC package [20170706.001121_builder_dev_common] jservices-ssl JUNOS Services SSL [20170706.001121_builder_dev_common] jservices-sfw JUNOS Services Stateful Firewall [20170706.001121_builder_dev_common] jservices-rpm JUNOS Services RPM [20170706.001121_builder_dev_common] jservices-ptsp JUNOS Services PTSP Container package [20170706.001121_builder_dev_common] jservices-pcef JUNOS Services PCEF package [20170706.001121_builder_dev_common] jservices-nat JUNOS Services NAT [20170706.001121_builder_dev_common] jservices-mss JUNOS Services Mobile Subscriber Service Container package [20170706.001121_builder_dev_common] jservices-mobile JUNOS Services MobileNext Software package [20170706.001121_builder_dev_common] jservices-lrf JUNOS Services Logging Report Framework package [20170706.001121_builder_dev_common] jservices-llpdf JUNOS Services LL-PDF Container package [20170706.001121_builder_dev_common] jservices-jflow JUNOS Services Jflow Container package [20170706.001121_builder_dev_common] jservices-jdpi JUNOS Services Deep Packet Inspection package [20170706.001121_builder_dev_common] jservices-ipsec JUNOS Services IPSec [20170706.001121_builder_dev_common] jservices-ids JUNOS Services IDS [20170706.001121_builder_dev_common] jservices-idp JUNOS IDP Services [20170706.001121_builder_dev_common] jservices-hcm JUNOS Services HTTP Content Management package [20170706.001121_builder_dev_common] jservices-crypto-base JUNOS Services Crypto [20170706.001121_builder_dev_common] jservices-cpcd JUNOS Services Captive Portal and Content Delivery Container package [20170706.001121_builder_dev_common] jservices-cos JUNOS Services COS [20170706.001121_builder_dev_common] jservices-appid JUNOS AppId Services [20170706.001121_builder_dev_common] jservices-alg JUNOS Services Application Level Gateways [20170706.001121_builder_dev_common] jservices-aacl JUNOS Services AACL Container package [20170706.001121_builder_dev_common] jsdn JUNOS SDN Software Suite [20170706.001121_builder_dev_common] jsd-jet-1 JUNOS Extension Toolkit [20170706.001121_builder_dev_common] jpfe-wrlinux JUNOS Packet Forwarding Engine Support (wrlinux) [20170706.001121_builder_dev_common] jpfe-platform JUNOS Packet Forwarding Engine Support (X2000) [20170706.001121_builder_dev_common] jpfe-common JUNOS Packet Forwarding Engine Support (M/T Common) [20170706.001121_builder_dev_common] jpfe-X JUNOS Packet Forwarding Engine Support (MX Common) [20170706.001121_builder_dev_common] jfirmware JUNOS jfirmware [20170706.001121_builder_dev_common] jdocs JUNOS Online Documentation [20170706.001121_builder_dev_common] py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/sw_info_dual_command.xml000066400000000000000000000463711475361112400263120ustar00rootroot00000000000000 re0 baku mx480 mx480 15.1F5.15-C1.12 os-kernel JUNOS OS Kernel 64-bit [20160321.324471_builder_stable_10] os-libs JUNOS OS libs [20160321.324471_builder_stable_10] os-runtime JUNOS OS runtime [20160321.324471_builder_stable_10] zoneinfo JUNOS OS time zone information [20160321.324471_builder_stable_10] os-libs-compat32 JUNOS OS libs compat32 [20160321.324471_builder_stable_10] os-compat32 JUNOS OS 32-bit compatibility [20160321.324471_builder_stable_10] py-base JUNOS py base [20160324.055814_builder_junos_151_f5] os-crypto JUNOS OS crypto [20160321.324471_builder_stable_10] netstack JUNOS network stack and utilities [20160324.055814_builder_junos_151_f5] junos-modules JUNOS modules [20160324.055814_builder_junos_151_f5] junos-libs-compat32 JUNOS libs compat32 [20160324.055814_builder_junos_151_f5] junos-runtime JUNOS runtime [20160324.055814_builder_junos_151_f5] junos-platform JUNOS platform support [20160324.055814_builder_junos_151_f5] junos-libs JUNOS libs [20160324.055814_builder_junos_151_f5] junos-dp-crypto-support-platform JUNOS mtx Data Plane Crypto Support [20160324.055814_builder_junos_151_f5] junos-daemons JUNOS daemons [20160324.055814_builder_junos_151_f5] jservices-voice JUNOS Voice Services Container package [20160324.055814_builder_junos_151_f5] jservices-ssl JUNOS Services SSL [20160324.055814_builder_junos_151_f5] jservices-sfw JUNOS Services Stateful Firewall [20160324.055814_builder_junos_151_f5] jservices-rpm JUNOS Services RPM [20160324.055814_builder_junos_151_f5] jservices-ptsp JUNOS Services PTSP Container package [20160324.055814_builder_junos_151_f5] jservices-nat JUNOS Services NAT [20160324.055814_builder_junos_151_f5] jservices-mss JUNOS Services Mobile Subscriber Service Container package [20160324.055814_builder_junos_151_f5] jservices-mobile JUNOS Services MobileNext Software package [20160324.055814_builder_junos_151_f5] jservices-llpdf JUNOS Services LL-PDF Container package [20160324.055814_builder_junos_151_f5] jservices-jflow JUNOS Services Jflow Container package [20160324.055814_builder_junos_151_f5] jservices-ipsec JUNOS Services IPSec [20160324.055814_builder_junos_151_f5] jservices-idp JUNOS IDP Services [20160324.055814_builder_junos_151_f5] jservices-hcm JUNOS Services HTTP Content Management package [20160324.055814_builder_junos_151_f5] jservices-crypto-base JUNOS Services Crypto [20160324.055814_builder_junos_151_f5] jservices-cpcd JUNOS Services Captive Portal and Content Delivery Container package [20160324.055814_builder_junos_151_f5] jservices-cos JUNOS Services COS [20160324.055814_builder_junos_151_f5] jservices-bgf JUNOS Border Gateway Function package [20160324.055814_builder_junos_151_f5] jservices-appid JUNOS AppId Services [20160324.055814_builder_junos_151_f5] jservices-alg JUNOS Services Application Level Gateways [20160324.055814_builder_junos_151_f5] jservices-aacl JUNOS Services AACL Container package [20160324.055814_builder_junos_151_f5] jpfe-platform JUNOS Packet Forwarding Engine Support (MX/EX92XX Common) [20160324.055814_builder_junos_151_f5] jpfe-common JUNOS Packet Forwarding Engine Support (M/T Common) [20160324.055814_builder_junos_151_f5] jdocs JUNOS Online Documentation [20160324.055814_builder_junos_151_f5] jam-mpc7-8-9 JUNOS 64-bit JAM Plugin Software Suite (MPC7E/8E/9E) [20160328.202145_builder_junos_151_x56_d50] fips-mode JUNOS FIPS mode utilities [20160324.055814_builder_junos_151_f5] re1 baku1 mx480 mx480 15.1F5.15 os-kernel JUNOS OS Kernel 64-bit [20160321.324471_builder_stable_10] os-libs JUNOS OS libs [20160321.324471_builder_stable_10] os-runtime JUNOS OS runtime [20160321.324471_builder_stable_10] zoneinfo JUNOS OS time zone information [20160321.324471_builder_stable_10] os-libs-compat32 JUNOS OS libs compat32 [20160321.324471_builder_stable_10] os-compat32 JUNOS OS 32-bit compatibility [20160321.324471_builder_stable_10] py-base JUNOS py base [20160324.055814_builder_junos_151_f5] os-crypto JUNOS OS crypto [20160321.324471_builder_stable_10] netstack JUNOS network stack and utilities [20160324.055814_builder_junos_151_f5] junos-modules JUNOS modules [20160324.055814_builder_junos_151_f5] junos-libs-compat32 JUNOS libs compat32 [20160324.055814_builder_junos_151_f5] junos-runtime JUNOS runtime [20160324.055814_builder_junos_151_f5] junos-platform JUNOS platform support [20160324.055814_builder_junos_151_f5] junos-libs JUNOS libs [20160324.055814_builder_junos_151_f5] junos-dp-crypto-support-platform JUNOS mtx Data Plane Crypto Support [20160324.055814_builder_junos_151_f5] junos-daemons JUNOS daemons [20160324.055814_builder_junos_151_f5] jservices-voice JUNOS Voice Services Container package [20160324.055814_builder_junos_151_f5] jservices-ssl JUNOS Services SSL [20160324.055814_builder_junos_151_f5] jservices-sfw JUNOS Services Stateful Firewall [20160324.055814_builder_junos_151_f5] jservices-rpm JUNOS Services RPM [20160324.055814_builder_junos_151_f5] jservices-ptsp JUNOS Services PTSP Container package [20160324.055814_builder_junos_151_f5] jservices-nat JUNOS Services NAT [20160324.055814_builder_junos_151_f5] jservices-mss JUNOS Services Mobile Subscriber Service Container package [20160324.055814_builder_junos_151_f5] jservices-mobile JUNOS Services MobileNext Software package [20160324.055814_builder_junos_151_f5] jservices-llpdf JUNOS Services LL-PDF Container package [20160324.055814_builder_junos_151_f5] jservices-jflow JUNOS Services Jflow Container package [20160324.055814_builder_junos_151_f5] jservices-ipsec JUNOS Services IPSec [20160324.055814_builder_junos_151_f5] jservices-idp JUNOS IDP Services [20160324.055814_builder_junos_151_f5] jservices-hcm JUNOS Services HTTP Content Management package [20160324.055814_builder_junos_151_f5] jservices-crypto-base JUNOS Services Crypto [20160324.055814_builder_junos_151_f5] jservices-cpcd JUNOS Services Captive Portal and Content Delivery Container package [20160324.055814_builder_junos_151_f5] jservices-cos JUNOS Services COS [20160324.055814_builder_junos_151_f5] jservices-bgf JUNOS Border Gateway Function package [20160324.055814_builder_junos_151_f5] jservices-appid JUNOS AppId Services [20160324.055814_builder_junos_151_f5] jservices-alg JUNOS Services Application Level Gateways [20160324.055814_builder_junos_151_f5] jservices-aacl JUNOS Services AACL Container package [20160324.055814_builder_junos_151_f5] jpfe-platform JUNOS Packet Forwarding Engine Support (MX/EX92XX Common) [20160324.055814_builder_junos_151_f5] jpfe-common JUNOS Packet Forwarding Engine Support (M/T Common) [20160324.055814_builder_junos_151_f5] jdocs JUNOS Online Documentation [20160324.055814_builder_junos_151_f5] fips-mode JUNOS FIPS mode utilities [20160324.055814_builder_junos_151_f5] py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/sw_info_dual_file-show.xml000066400000000000000000002042141475361112400265610ustar00rootroot00000000000000 #$Id: hosts.junos,v 1.7.72.1 2009-04-16 05:22:03 kdickman Exp $ # # File mapping AF_INET/AF_INET6 hostnames for REs on Single and Multichassis # systems # # This file is looked at before /etc/hosts by gethostbyname(3), # gethostbyname2(3) and getaddrinfo(3) # # The IP addresses in this file are only used for communication between REs # over the Internal Routing Instances # # WARNING: # # The names in this file are effectively reserved for internal use. # # New IP address format (RT_IRS_V3) # # Single Chassis Hostnames # 128.0.0.1 master 128.0.0.1 node 128.0.0.1 fwdd 128.0.0.1 member 128.0.0.1 pfem 128.0.0.2 scb 128.0.0.2 sbr 128.0.0.2 ssb 128.0.0.2 feb 128.0.0.2 cfeb0 128.0.0.2 cfeb 128.0.0.2 cpp0 128.0.0.3 cfeb1 128.0.0.3 cpp1 128.0.0.4 re0 128.0.0.5 re1 128.0.0.6 backup 128.0.0.8 sfm0 128.0.0.9 sfm1 128.0.0.10 sfm2 128.0.0.16 fpc0 128.0.0.17 fpc1 128.0.0.18 fpc2 128.0.0.19 fpc3 128.0.0.20 fpc4 128.0.0.21 fpc5 128.0.0.22 fpc6 128.0.0.23 fpc7 128.0.0.24 fpc8 128.0.0.25 fpc9 128.0.0.26 fpc10 128.0.0.27 fpc11 128.0.0.28 fpc12 128.0.0.29 fpc13 128.0.0.30 fpc14 128.0.0.31 fpc15 128.0.0.32 feb0 128.0.0.32 fpc16 128.0.0.33 feb1 128.0.0.33 fpc17 128.0.0.34 feb2 128.0.0.34 fpc18 128.0.0.35 feb3 128.0.0.35 fpc19 128.0.0.36 fpc20 128.0.0.36 feb4 128.0.0.37 feb5 128.0.0.37 fpc21 128.0.0.38 fpc22 128.0.0.39 fpc23 128.0.0.40 fpc24 128.0.0.41 fpc25 128.0.0.42 fpc26 128.0.0.43 fpc27 128.0.0.44 fpc28 128.0.0.45 fpc29 128.0.0.46 fpc30 128.0.0.47 fpc31 128.0.0.48 spmb0 128.0.0.49 spmb1 128.0.0.50 tfeb0 128.0.0.50 afeb0 128.0.0.53 esc0 128.0.0.54 esc1 128.0.0.55 esc0-ipmi 128.0.0.56 esc1-ipmi 128.0.1.16 fpc0.pic0 128.0.1.17 fpc1.pic0 128.0.1.18 fpc2.pic0 128.0.1.19 fpc3.pic0 128.0.1.20 fpc4.pic0 128.0.1.21 fpc5.pic0 128.0.1.22 fpc6.pic0 128.0.1.23 fpc7.pic0 128.0.1.24 fpc8.pic0 128.0.1.25 fpc9.pic0 128.0.1.26 fpc10.pic0 128.0.1.27 fpc11.pic0 128.0.1.28 fpc12.pic0 128.0.1.29 fpc13.pic0 128.0.1.30 fpc14.pic0 128.0.1.31 fpc15.pic0 128.0.1.32 fpc16.pic0 128.0.1.33 fpc17.pic0 128.0.1.34 fpc18.pic0 128.0.1.35 fpc19.pic0 128.0.1.36 fpc20.pic0 128.0.1.37 fpc21.pic0 128.0.1.38 fpc22.pic0 128.0.1.39 fpc23.pic0 128.0.1.40 fpc24.pic0 128.0.1.41 fpc25.pic0 128.0.1.42 fpc26.pic0 128.0.1.43 fpc27.pic0 128.0.1.44 fpc28.pic0 128.0.1.45 fpc29.pic0 128.0.1.46 fpc30.pic0 128.0.1.47 fpc31.pic0 128.0.2.16 fpc0.pic1 128.0.2.17 fpc1.pic1 128.0.2.18 fpc2.pic1 128.0.2.19 fpc3.pic1 128.0.2.20 fpc4.pic1 128.0.2.21 fpc5.pic1 128.0.2.22 fpc6.pic1 128.0.2.23 fpc7.pic1 128.0.2.24 fpc8.pic1 128.0.2.25 fpc9.pic1 128.0.2.26 fpc10.pic1 128.0.2.27 fpc11.pic1 128.0.2.28 fpc12.pic1 128.0.2.29 fpc13.pic1 128.0.2.30 fpc14.pic1 128.0.2.31 fpc15.pic1 128.0.2.32 fpc16.pic1 128.0.2.33 fpc17.pic1 128.0.2.34 fpc18.pic1 128.0.2.35 fpc19.pic1 128.0.2.36 fpc20.pic1 128.0.2.37 fpc21.pic1 128.0.2.38 fpc22.pic1 128.0.2.39 fpc23.pic1 128.0.2.40 fpc24.pic1 128.0.2.41 fpc25.pic1 128.0.2.42 fpc26.pic1 128.0.2.43 fpc27.pic1 128.0.2.44 fpc28.pic1 128.0.2.45 fpc29.pic1 128.0.2.46 fpc30.pic1 128.0.2.47 fpc31.pic1 128.0.3.16 fpc0.pic2 128.0.3.17 fpc1.pic2 128.0.3.18 fpc2.pic2 128.0.3.19 fpc3.pic2 128.0.3.20 fpc4.pic2 128.0.3.21 fpc5.pic2 128.0.3.22 fpc6.pic2 128.0.3.23 fpc7.pic2 128.0.3.24 fpc8.pic2 128.0.3.25 fpc9.pic2 128.0.3.26 fpc10.pic2 128.0.3.27 fpc11.pic2 128.0.3.28 fpc12.pic2 128.0.3.29 fpc13.pic2 128.0.3.30 fpc14.pic2 128.0.3.31 fpc15.pic2 128.0.4.16 fpc0.pic3 128.0.4.17 fpc1.pic3 128.0.4.18 fpc2.pic3 128.0.4.19 fpc3.pic3 128.0.4.20 fpc4.pic3 128.0.4.21 fpc5.pic3 128.0.4.22 fpc6.pic3 128.0.4.23 fpc7.pic3 128.0.4.24 fpc8.pic3 128.0.4.25 fpc9.pic3 128.0.4.26 fpc10.pic3 128.0.4.27 fpc11.pic3 128.0.4.28 fpc12.pic3 128.0.4.29 fpc13.pic3 128.0.4.30 fpc14.pic3 128.0.4.31 fpc15.pic3 # # DCF-Root Hostname # 128.0.130.2 dcf-root # # Multi Chassis Hostnames # #SCC 144.0.0.1 scc-master 144.0.0.4 scc-re0 144.0.0.5 scc-re1 144.0.0.6 scc-backup 144.0.0.48 scc-spmb0 144.0.0.49 scc-spmb1 #LCC 0 (or MEMBER 0 on Virtual Chassis) 129.0.0.1 lcc0-master member0-master member0 129.0.0.4 lcc0-re0 member0-re0 129.0.0.5 lcc0-re1 member0-re1 129.0.0.6 lcc0-backup member0-backup 129.0.0.16 member0-fpc0 129.0.0.17 member0-fpc1 129.0.0.18 member0-fpc2 129.0.0.19 member0-fpc3 129.0.0.20 member0-fpc4 129.0.0.21 member0-fpc5 129.0.0.22 member0-fpc6 129.0.0.23 member0-fpc7 129.0.0.24 member0-fpc8 129.0.0.25 member0-fpc9 129.0.0.26 member0-fpc10 129.0.0.27 member0-fpc11 129.0.0.28 member0-fpc12 129.0.0.29 member0-fpc13 129.0.0.30 member0-fpc14 129.0.0.31 member0-fpc15 129.0.0.32 member0-fpc16 129.0.0.33 member0-fpc17 129.0.0.34 member0-fpc18 129.0.0.35 member0-fpc19 129.0.0.36 member0-fpc20 129.0.0.37 member0-fpc21 129.0.0.38 member0-fpc22 129.0.0.39 member0-fpc23 129.0.0.40 member0-fpc24 129.0.0.41 member0-fpc25 129.0.0.42 member0-fpc26 129.0.0.43 member0-fpc27 129.0.0.44 member0-fpc28 129.0.0.45 member0-fpc29 129.0.0.46 member0-fpc30 129.0.0.47 member0-fpc31 129.0.0.6 lcc0-backup 129.0.0.16 lcc0-fpc0 129.0.0.17 lcc0-fpc1 129.0.0.18 lcc0-fpc2 129.0.0.19 lcc0-fpc3 129.0.0.20 lcc0-fpc4 129.0.0.21 lcc0-fpc5 129.0.0.22 lcc0-fpc6 129.0.0.23 lcc0-fpc7 129.0.0.48 lcc0-spmb0 129.0.0.49 lcc0-spmb1 #LCC 1 (or MEMBER 1 on Virtual Chassis) 130.0.0.1 lcc1-master member1-master member1 130.0.0.4 lcc1-re0 member1-re0 130.0.0.5 lcc1-re1 member1-re1 130.0.0.6 lcc1-backup member1-backup 130.0.0.16 member1-fpc0 130.0.0.17 member1-fpc1 130.0.0.18 member1-fpc2 130.0.0.19 member1-fpc3 130.0.0.20 member1-fpc4 130.0.0.21 member1-fpc5 130.0.0.22 member1-fpc6 130.0.0.23 member1-fpc7 130.0.0.24 member1-fpc8 130.0.0.25 member1-fpc9 130.0.0.26 member1-fpc10 130.0.0.27 member1-fpc11 130.0.0.28 member1-fpc12 130.0.0.29 member1-fpc13 130.0.0.30 member1-fpc14 130.0.0.31 member1-fpc15 130.0.0.32 member1-fpc16 130.0.0.33 member1-fpc17 130.0.0.34 member1-fpc18 130.0.0.35 member1-fpc19 130.0.0.36 member1-fpc20 130.0.0.37 member1-fpc21 130.0.0.38 member1-fpc22 130.0.0.39 member1-fpc23 130.0.0.40 member1-fpc24 130.0.0.41 member1-fpc25 130.0.0.42 member1-fpc26 130.0.0.43 member1-fpc27 130.0.0.44 member1-fpc28 130.0.0.45 member1-fpc29 130.0.0.46 member1-fpc30 130.0.0.47 member1-fpc31 130.0.0.6 lcc1-backup 130.0.0.16 lcc1-fpc0 130.0.0.17 lcc1-fpc1 130.0.0.18 lcc1-fpc2 130.0.0.19 lcc1-fpc3 130.0.0.20 lcc1-fpc4 130.0.0.21 lcc1-fpc5 130.0.0.22 lcc1-fpc6 130.0.0.23 lcc1-fpc7 130.0.0.48 lcc1-spmb0 130.0.0.49 lcc1-spmb1 #LCC 2 (or MEMBER 2 on Virtual Chassis) 131.0.0.1 lcc2-master member2-master member2 131.0.0.4 lcc2-re0 member2-re0 131.0.0.5 lcc2-re1 member2-re1 131.0.0.6 lcc2-backup member2-backup 131.0.0.16 member2-fpc0 131.0.0.17 member2-fpc1 131.0.0.18 member2-fpc2 131.0.0.19 member2-fpc3 131.0.0.20 member2-fpc4 131.0.0.21 member2-fpc5 131.0.0.22 member2-fpc6 131.0.0.23 member2-fpc7 131.0.0.24 member2-fpc8 131.0.0.25 member2-fpc9 131.0.0.26 member2-fpc10 131.0.0.27 member2-fpc11 131.0.0.28 member2-fpc12 131.0.0.29 member2-fpc13 131.0.0.30 member2-fpc14 131.0.0.31 member2-fpc15 131.0.0.32 member2-fpc16 131.0.0.33 member2-fpc17 131.0.0.34 member2-fpc18 131.0.0.35 member2-fpc19 131.0.0.36 member2-fpc20 131.0.0.37 member2-fpc21 131.0.0.38 member2-fpc22 131.0.0.39 member2-fpc23 131.0.0.40 member2-fpc24 131.0.0.41 member2-fpc25 131.0.0.42 member2-fpc26 131.0.0.43 member2-fpc27 131.0.0.44 member2-fpc28 131.0.0.45 member2-fpc29 131.0.0.46 member2-fpc30 131.0.0.47 member2-fpc31 131.0.0.6 lcc2-backup 131.0.0.16 lcc2-fpc0 131.0.0.17 lcc2-fpc1 131.0.0.18 lcc2-fpc2 131.0.0.19 lcc2-fpc3 131.0.0.20 lcc2-fpc4 131.0.0.21 lcc2-fpc5 131.0.0.22 lcc2-fpc6 131.0.0.23 lcc2-fpc7 131.0.0.48 lcc2-spmb0 131.0.0.49 lcc20-spmb1 #LCC 3 (or MEMBER 3 on Virtual Chassis) 132.0.0.1 lcc3-master member3-master member3 132.0.0.4 lcc3-re0 member3-re0 132.0.0.5 lcc3-re1 member3-re1 132.0.0.6 lcc3-backup member3-backup 132.0.0.16 member3-fpc0 132.0.0.17 member3-fpc1 132.0.0.18 member3-fpc2 132.0.0.19 member3-fpc3 132.0.0.20 member3-fpc4 132.0.0.21 member3-fpc5 132.0.0.22 member3-fpc6 132.0.0.23 member3-fpc7 132.0.0.24 member3-fpc8 132.0.0.25 member3-fpc9 132.0.0.26 member3-fpc10 132.0.0.27 member3-fpc11 132.0.0.28 member3-fpc12 132.0.0.29 member3-fpc13 132.0.0.30 member3-fpc14 132.0.0.31 member3-fpc15 132.0.0.32 member3-fpc16 132.0.0.33 member3-fpc17 132.0.0.34 member3-fpc18 132.0.0.35 member3-fpc19 132.0.0.36 member3-fpc20 132.0.0.37 member3-fpc21 132.0.0.38 member3-fpc22 132.0.0.39 member3-fpc23 132.0.0.40 member3-fpc24 132.0.0.41 member3-fpc25 132.0.0.42 member3-fpc26 132.0.0.43 member3-fpc27 132.0.0.44 member3-fpc28 132.0.0.45 member3-fpc29 132.0.0.46 member3-fpc30 132.0.0.47 member3-fpc31 132.0.0.6 lcc3-backup 132.0.0.16 lcc3-fpc0 132.0.0.17 lcc3-fpc1 132.0.0.18 lcc3-fpc2 132.0.0.19 lcc3-fpc3 132.0.0.20 lcc3-fpc4 132.0.0.21 lcc3-fpc5 132.0.0.22 lcc3-fpc6 132.0.0.23 lcc3-fpc7 132.0.0.48 lcc3-spmb0 132.0.0.49 lcc3-spmb1 #LCC 4 (or MEMBER 4 on Virtual Chassis) 133.0.0.1 lcc4-master member4-master member4 133.0.0.4 lcc4-re0 member4-re0 133.0.0.5 lcc4-re1 member4-re1 133.0.0.6 lcc4-backup member4-backup 133.0.0.16 member4-fpc0 133.0.0.17 member4-fpc1 133.0.0.18 member4-fpc2 133.0.0.19 member4-fpc3 133.0.0.20 member4-fpc4 133.0.0.21 member4-fpc5 133.0.0.22 member4-fpc6 133.0.0.23 member4-fpc7 133.0.0.24 member4-fpc8 133.0.0.25 member4-fpc9 133.0.0.26 member4-fpc10 133.0.0.27 member4-fpc11 133.0.0.28 member4-fpc12 133.0.0.29 member4-fpc13 133.0.0.30 member4-fpc14 133.0.0.31 member4-fpc15 133.0.0.32 member4-fpc16 133.0.0.33 member4-fpc17 133.0.0.34 member4-fpc18 133.0.0.35 member4-fpc19 133.0.0.36 member4-fpc20 133.0.0.37 member4-fpc21 133.0.0.38 member4-fpc22 133.0.0.39 member4-fpc23 133.0.0.40 member4-fpc24 133.0.0.41 member4-fpc25 133.0.0.42 member4-fpc26 133.0.0.43 member4-fpc27 133.0.0.44 member4-fpc28 133.0.0.45 member4-fpc29 133.0.0.46 member4-fpc30 133.0.0.47 member4-fpc31 133.0.0.6 lcc4-backup 133.0.0.16 lcc4-fpc0 133.0.0.17 lcc4-fpc1 133.0.0.18 lcc4-fpc2 133.0.0.19 lcc4-fpc3 133.0.0.20 lcc4-fpc4 133.0.0.21 lcc4-fpc5 133.0.0.22 lcc4-fpc6 133.0.0.23 lcc4-fpc7 133.0.0.48 lcc4-spmb0 133.0.0.49 lcc4-spmb1 #LCC 5 (or MEMBER 5 on Virtual Chassis) 134.0.0.1 lcc5-master member5-master member5 134.0.0.4 lcc5-re0 member5-re0 134.0.0.5 lcc5-re1 member5-re1 134.0.0.6 lcc5-backup member5-backup 134.0.0.16 member5-fpc0 134.0.0.17 member5-fpc1 134.0.0.18 member5-fpc2 134.0.0.19 member5-fpc3 134.0.0.20 member5-fpc4 134.0.0.21 member5-fpc5 134.0.0.22 member5-fpc6 134.0.0.23 member5-fpc7 134.0.0.24 member5-fpc8 134.0.0.25 member5-fpc9 134.0.0.26 member5-fpc10 134.0.0.27 member5-fpc11 134.0.0.28 member5-fpc12 134.0.0.29 member5-fpc13 134.0.0.30 member5-fpc14 134.0.0.31 member5-fpc15 134.0.0.32 member5-fpc16 134.0.0.33 member5-fpc17 134.0.0.34 member5-fpc18 134.0.0.35 member5-fpc19 134.0.0.36 member5-fpc20 134.0.0.37 member5-fpc21 134.0.0.38 member5-fpc22 134.0.0.39 member5-fpc23 134.0.0.40 member5-fpc24 134.0.0.41 member5-fpc25 134.0.0.42 member5-fpc26 134.0.0.43 member5-fpc27 134.0.0.44 member5-fpc28 134.0.0.45 member5-fpc29 134.0.0.46 member5-fpc30 134.0.0.47 member5-fpc31 134.0.0.6 lcc5-backup 134.0.0.16 lcc5-fpc0 134.0.0.17 lcc5-fpc1 134.0.0.18 lcc5-fpc2 134.0.0.19 lcc5-fpc3 134.0.0.20 lcc5-fpc4 134.0.0.21 lcc5-fpc5 134.0.0.22 lcc5-fpc6 134.0.0.23 lcc5-fpc7 134.0.0.48 lcc5-spmb0 134.0.0.49 lcc5-spmb1 #LCC 6 (or MEMBER 6 on Virtual Chassis) 135.0.0.1 lcc6-master member6-master member6 135.0.0.4 lcc6-re0 member6-re0 135.0.0.5 lcc6-re1 member6-re1 135.0.0.6 lcc6-backup member6-backup 135.0.0.16 member6-fpc0 135.0.0.17 member6-fpc1 135.0.0.18 member6-fpc2 135.0.0.19 member6-fpc3 135.0.0.20 member6-fpc4 135.0.0.21 member6-fpc5 135.0.0.22 member6-fpc6 135.0.0.23 member6-fpc7 135.0.0.24 member6-fpc8 135.0.0.25 member6-fpc9 135.0.0.26 member6-fpc10 135.0.0.27 member6-fpc11 135.0.0.28 member6-fpc12 135.0.0.29 member6-fpc13 135.0.0.30 member6-fpc14 135.0.0.31 member6-fpc15 135.0.0.32 member6-fpc16 135.0.0.33 member6-fpc17 135.0.0.34 member6-fpc18 135.0.0.35 member6-fpc19 135.0.0.36 member6-fpc20 135.0.0.37 member6-fpc21 135.0.0.38 member6-fpc22 135.0.0.39 member6-fpc23 135.0.0.40 member6-fpc24 135.0.0.41 member6-fpc25 135.0.0.42 member6-fpc26 135.0.0.43 member6-fpc27 135.0.0.44 member6-fpc28 135.0.0.45 member6-fpc29 135.0.0.46 member6-fpc30 135.0.0.47 member6-fpc31 135.0.0.6 lcc6-backup 135.0.0.16 lcc6-fpc0 135.0.0.17 lcc6-fpc1 135.0.0.18 lcc6-fpc2 135.0.0.19 lcc6-fpc3 135.0.0.20 lcc6-fpc4 135.0.0.21 lcc6-fpc5 135.0.0.22 lcc6-fpc6 135.0.0.23 lcc6-fpc7 135.0.0.48 lcc6-spmb0 135.0.0.49 lcc6-spmb1 #LCC 7 (or MEMBER 7 on Virtual Chassis) 136.0.0.1 lcc7-master member7-master member7 136.0.0.4 lcc7-re0 member7-re0 136.0.0.5 lcc7-re1 member7-re1 136.0.0.6 lcc7-backup member7-backup 136.0.0.16 member7-fpc0 136.0.0.17 member7-fpc1 136.0.0.18 member7-fpc2 136.0.0.19 member7-fpc3 136.0.0.20 member7-fpc4 136.0.0.21 member7-fpc5 136.0.0.22 member7-fpc6 136.0.0.23 member7-fpc7 136.0.0.24 member7-fpc8 136.0.0.25 member7-fpc9 136.0.0.26 member7-fpc10 136.0.0.27 member7-fpc11 136.0.0.28 member7-fpc12 136.0.0.29 member7-fpc13 136.0.0.30 member7-fpc14 136.0.0.31 member7-fpc15 136.0.0.32 member7-fpc16 136.0.0.33 member7-fpc17 136.0.0.34 member7-fpc18 136.0.0.35 member7-fpc19 136.0.0.36 member7-fpc20 136.0.0.37 member7-fpc21 136.0.0.38 member7-fpc22 136.0.0.39 member7-fpc23 136.0.0.40 member7-fpc24 136.0.0.41 member7-fpc25 136.0.0.42 member7-fpc26 136.0.0.43 member7-fpc27 136.0.0.44 member7-fpc28 136.0.0.45 member7-fpc29 136.0.0.46 member7-fpc30 136.0.0.47 member7-fpc31 136.0.0.6 lcc7-backup 136.0.0.16 lcc7-fpc0 136.0.0.17 lcc7-fpc1 136.0.0.18 lcc7-fpc2 136.0.0.19 lcc7-fpc3 136.0.0.20 lcc7-fpc4 136.0.0.21 lcc7-fpc5 136.0.0.22 lcc7-fpc6 136.0.0.23 lcc7-fpc7 136.0.0.48 lcc7-spmb0 136.0.0.49 lcc7-spmb1 137.0.0.6 lcc8-backup 137.0.0.16 lcc8-fpc0 137.0.0.17 lcc8-fpc1 137.0.0.18 lcc8-fpc2 137.0.0.19 lcc8-fpc3 137.0.0.20 lcc8-fpc4 137.0.0.21 lcc8-fpc5 137.0.0.22 lcc8-fpc6 137.0.0.23 lcc8-fpc7 137.0.0.48 lcc8-spmb0 137.0.0.49 lcc8-spmb1 #LCC 8 (or MEMBER 8 on Virtual Chassis) 137.0.0.1 lcc8-master member8-master member8 137.0.0.4 lcc8-re0 member8-re0 137.0.0.5 lcc8-re1 member8-re1 137.0.0.6 lcc8-backup member8-backup 137.0.0.16 member8-fpc0 137.0.0.17 member8-fpc1 137.0.0.18 member8-fpc2 137.0.0.19 member8-fpc3 137.0.0.20 member8-fpc4 137.0.0.21 member8-fpc5 137.0.0.22 member8-fpc6 137.0.0.23 member8-fpc7 137.0.0.24 member8-fpc8 137.0.0.25 member8-fpc9 137.0.0.26 member8-fpc10 137.0.0.27 member8-fpc11 137.0.0.28 member8-fpc12 137.0.0.29 member8-fpc13 137.0.0.30 member8-fpc14 137.0.0.31 member8-fpc15 137.0.0.32 member8-fpc16 137.0.0.33 member8-fpc17 137.0.0.34 member8-fpc18 137.0.0.35 member8-fpc19 137.0.0.36 member8-fpc20 137.0.0.37 member8-fpc21 137.0.0.38 member8-fpc22 137.0.0.39 member8-fpc23 137.0.0.40 member8-fpc24 137.0.0.41 member8-fpc25 137.0.0.42 member8-fpc26 137.0.0.43 member8-fpc27 137.0.0.44 member8-fpc28 137.0.0.45 member8-fpc29 137.0.0.46 member8-fpc30 137.0.0.47 member8-fpc31 138.0.0.6 lcc9-backup 138.0.0.16 lcc9-fpc0 138.0.0.17 lcc9-fpc1 138.0.0.18 lcc9-fpc2 138.0.0.19 lcc9-fpc3 138.0.0.20 lcc9-fpc4 138.0.0.21 lcc9-fpc5 138.0.0.22 lcc9-fpc6 138.0.0.23 lcc9-fpc7 138.0.0.48 lcc9-spmb0 138.0.0.49 lcc9-spmb1 #LCC 9 (or MEMBER 9 on Virtual Chassis) 138.0.0.1 lcc9-master member9-master member9 138.0.0.4 lcc9-re0 member9-re0 138.0.0.5 lcc9-re1 member9-re1 138.0.0.6 lcc9-backup member9-backup 138.0.0.16 member9-fpc0 138.0.0.17 member9-fpc1 138.0.0.18 member9-fpc2 138.0.0.19 member9-fpc3 138.0.0.20 member9-fpc4 138.0.0.21 member9-fpc5 138.0.0.22 member9-fpc6 138.0.0.23 member9-fpc7 138.0.0.24 member9-fpc8 138.0.0.25 member9-fpc9 138.0.0.26 member9-fpc10 138.0.0.27 member9-fpc11 138.0.0.28 member9-fpc12 138.0.0.29 member9-fpc13 138.0.0.30 member9-fpc14 138.0.0.31 member9-fpc15 138.0.0.32 member9-fpc16 138.0.0.33 member9-fpc17 138.0.0.34 member9-fpc18 138.0.0.35 member9-fpc19 138.0.0.36 member9-fpc20 138.0.0.37 member9-fpc21 138.0.0.38 member9-fpc22 138.0.0.39 member9-fpc23 138.0.0.40 member9-fpc24 138.0.0.41 member9-fpc25 138.0.0.42 member9-fpc26 138.0.0.43 member9-fpc27 138.0.0.44 member9-fpc28 138.0.0.45 member9-fpc29 138.0.0.46 member9-fpc30 138.0.0.47 member9-fpc31 139.0.0.6 lcc10-backup 139.0.0.16 lcc10-fpc0 139.0.0.17 lcc10-fpc1 139.0.0.18 lcc10-fpc2 139.0.0.19 lcc10-fpc3 139.0.0.20 lcc10-fpc4 139.0.0.21 lcc10-fpc5 139.0.0.22 lcc10-fpc6 139.0.0.23 lcc10-fpc7 139.0.0.48 lcc10-spmb0 139.0.0.49 lcc10-spmb1 #LCC 10 (or MEMBER 10 on Virtual Chassis) 139.0.0.1 lcc10-master member10-master 139.0.0.4 lcc10-re0 member10-re0 139.0.0.5 lcc10-re1 member10-re1 139.0.0.6 lcc10-backup member10-backup 139.0.0.16 member10-fpc0 139.0.0.17 member10-fpc1 139.0.0.18 member10-fpc2 139.0.0.19 member10-fpc3 139.0.0.20 member10-fpc4 139.0.0.21 member10-fpc5 139.0.0.22 member10-fpc6 139.0.0.23 member10-fpc7 139.0.0.24 member10-fpc8 139.0.0.25 member10-fpc9 139.0.0.26 member10-fpc10 139.0.0.27 member10-fpc11 139.0.0.28 member10-fpc12 139.0.0.29 member10-fpc13 139.0.0.30 member10-fpc14 139.0.0.31 member10-fpc15 139.0.0.32 member10-fpc16 139.0.0.33 member10-fpc17 139.0.0.34 member10-fpc18 139.0.0.35 member10-fpc19 139.0.0.36 member10-fpc20 139.0.0.37 member10-fpc21 139.0.0.38 member10-fpc22 139.0.0.39 member10-fpc23 139.0.0.40 member10-fpc24 139.0.0.41 member10-fpc25 139.0.0.42 member10-fpc26 139.0.0.43 member10-fpc27 139.0.0.44 member10-fpc28 139.0.0.45 member10-fpc29 139.0.0.46 member10-fpc30 139.0.0.47 member10-fpc31 140.0.0.6 lcc11-backup 140.0.0.16 lcc11-fpc0 140.0.0.17 lcc11-fpc1 140.0.0.18 lcc11-fpc2 140.0.0.19 lcc11-fpc3 140.0.0.20 lcc11-fpc4 140.0.0.21 lcc11-fpc5 140.0.0.22 lcc11-fpc6 140.0.0.23 lcc11-fpc7 140.0.0.48 lcc11-spmb0 140.0.0.49 lcc11-spmb1 #LCC 11 (or MEMBER 11 on Virtual Chassis) 140.0.0.1 lcc11-master member11-master 140.0.0.4 lcc11-re0 member11-re0 140.0.0.5 lcc11-re1 member11-re1 140.0.0.6 lcc11-backup member11-backup 140.0.0.16 member11-fpc0 140.0.0.17 member11-fpc1 140.0.0.18 member11-fpc2 140.0.0.19 member11-fpc3 140.0.0.20 member11-fpc4 140.0.0.21 member11-fpc5 140.0.0.22 member11-fpc6 140.0.0.23 member11-fpc7 140.0.0.24 member11-fpc8 140.0.0.25 member11-fpc9 140.0.0.26 member11-fpc10 140.0.0.27 member11-fpc11 140.0.0.28 member11-fpc12 140.0.0.29 member11-fpc13 140.0.0.30 member11-fpc14 140.0.0.31 member11-fpc15 140.0.0.32 member11-fpc16 140.0.0.33 member11-fpc17 140.0.0.34 member11-fpc18 140.0.0.35 member11-fpc19 140.0.0.36 member11-fpc20 140.0.0.37 member11-fpc21 140.0.0.38 member11-fpc22 140.0.0.39 member11-fpc23 140.0.0.40 member11-fpc24 140.0.0.41 member11-fpc25 140.0.0.42 member11-fpc26 140.0.0.43 member11-fpc27 140.0.0.44 member11-fpc28 140.0.0.45 member11-fpc29 140.0.0.46 member11-fpc30 140.0.0.47 member11-fpc31 141.0.0.6 lcc12-backup 141.0.0.16 lcc12-fpc0 141.0.0.17 lcc12-fpc1 141.0.0.18 lcc12-fpc2 141.0.0.19 lcc12-fpc3 141.0.0.20 lcc12-fpc4 141.0.0.21 lcc12-fpc5 141.0.0.22 lcc12-fpc6 141.0.0.23 lcc12-fpc7 141.0.0.48 lcc12-spmb0 141.0.0.49 lcc12-spmb1 #LCC 12 (or MEMBER 12 on Virtual Chassis) 141.0.0.1 lcc12-master member12-master 141.0.0.4 lcc12-re0 member12-re0 141.0.0.5 lcc12-re1 member12-re1 141.0.0.6 lcc12-backup member12-backup 141.0.0.16 member12-fpc0 141.0.0.17 member12-fpc1 141.0.0.18 member12-fpc2 141.0.0.19 member12-fpc3 141.0.0.20 member12-fpc4 141.0.0.21 member12-fpc5 141.0.0.22 member12-fpc6 141.0.0.23 member12-fpc7 141.0.0.24 member12-fpc8 141.0.0.25 member12-fpc9 141.0.0.26 member12-fpc10 141.0.0.27 member12-fpc11 141.0.0.28 member12-fpc12 141.0.0.29 member12-fpc13 141.0.0.30 member12-fpc14 141.0.0.31 member12-fpc15 141.0.0.32 member12-fpc16 141.0.0.33 member12-fpc17 141.0.0.34 member12-fpc18 141.0.0.35 member12-fpc19 141.0.0.36 member12-fpc20 141.0.0.37 member12-fpc21 141.0.0.38 member12-fpc22 141.0.0.39 member12-fpc23 141.0.0.40 member12-fpc24 141.0.0.41 member12-fpc25 141.0.0.42 member12-fpc26 141.0.0.43 member12-fpc27 141.0.0.44 member12-fpc28 141.0.0.45 member12-fpc29 141.0.0.46 member12-fpc30 141.0.0.47 member12-fpc31 142.0.0.6 lcc13-backup 142.0.0.16 lcc13-fpc0 142.0.0.17 lcc13-fpc1 142.0.0.18 lcc13-fpc2 142.0.0.19 lcc13-fpc3 142.0.0.20 lcc13-fpc4 142.0.0.21 lcc13-fpc5 142.0.0.22 lcc13-fpc6 142.0.0.23 lcc13-fpc7 142.0.0.48 lcc13-spmb0 142.0.0.49 lcc13-spmb1 #LCC 13 (or MEMBER 13 on Virtual Chassis) 142.0.0.1 lcc13-master member13-master 142.0.0.4 lcc13-re0 member13-re0 142.0.0.5 lcc13-re1 member13-re1 142.0.0.6 lcc13-backup member13-backup 142.0.0.16 member13-fpc0 142.0.0.17 member13-fpc1 142.0.0.18 member13-fpc2 142.0.0.19 member13-fpc3 142.0.0.20 member13-fpc4 142.0.0.21 member13-fpc5 142.0.0.22 member13-fpc6 142.0.0.23 member13-fpc7 142.0.0.24 member13-fpc8 142.0.0.25 member13-fpc9 142.0.0.26 member13-fpc10 142.0.0.27 member13-fpc11 142.0.0.28 member13-fpc12 142.0.0.29 member13-fpc13 142.0.0.30 member13-fpc14 142.0.0.31 member13-fpc15 142.0.0.32 member13-fpc16 142.0.0.33 member13-fpc17 142.0.0.34 member13-fpc18 142.0.0.35 member13-fpc19 142.0.0.36 member13-fpc20 142.0.0.37 member13-fpc21 142.0.0.38 member13-fpc22 142.0.0.39 member13-fpc23 142.0.0.40 member13-fpc24 142.0.0.41 member13-fpc25 142.0.0.42 member13-fpc26 142.0.0.43 member13-fpc27 142.0.0.44 member13-fpc28 142.0.0.45 member13-fpc29 142.0.0.46 member13-fpc30 142.0.0.47 member13-fpc31 143.0.0.6 lcc14-backup 143.0.0.16 lcc14-fpc0 143.0.0.17 lcc14-fpc1 143.0.0.18 lcc14-fpc2 143.0.0.19 lcc14-fpc3 143.0.0.20 lcc14-fpc4 143.0.0.21 lcc14-fpc5 143.0.0.22 lcc14-fpc6 143.0.0.23 lcc14-fpc7 143.0.0.48 lcc14-spmb0 143.0.0.49 lcc14-spmb1 #LCC 14 (or MEMBER 14 on Virtual Chassis) 143.0.0.1 lcc14-master member14-master 143.0.0.4 lcc14-re0 member14-re0 143.0.0.5 lcc14-re1 member14-re1 143.0.0.6 lcc14-backup member14-backup 143.0.0.16 member14-fpc0 143.0.0.17 member14-fpc1 143.0.0.18 member14-fpc2 143.0.0.19 member14-fpc3 143.0.0.20 member14-fpc4 143.0.0.21 member14-fpc5 143.0.0.22 member14-fpc6 143.0.0.23 member14-fpc7 143.0.0.24 member14-fpc8 143.0.0.25 member14-fpc9 143.0.0.26 member14-fpc10 143.0.0.27 member14-fpc11 143.0.0.28 member14-fpc12 143.0.0.29 member14-fpc13 143.0.0.30 member14-fpc14 143.0.0.31 member14-fpc15 143.0.0.32 member14-fpc16 143.0.0.33 member14-fpc17 143.0.0.34 member14-fpc18 143.0.0.35 member14-fpc19 143.0.0.36 member14-fpc20 143.0.0.37 member14-fpc21 143.0.0.38 member14-fpc22 143.0.0.39 member14-fpc23 143.0.0.40 member14-fpc24 143.0.0.41 member14-fpc25 143.0.0.42 member14-fpc26 143.0.0.43 member14-fpc27 143.0.0.44 member14-fpc28 143.0.0.45 member14-fpc29 143.0.0.46 member14-fpc30 143.0.0.47 member14-fpc31 144.0.0.6 lcc15-backup 144.0.0.16 lcc15-fpc0 144.0.0.17 lcc15-fpc1 144.0.0.18 lcc15-fpc2 144.0.0.19 lcc15-fpc3 144.0.0.20 lcc15-fpc4 144.0.0.21 lcc15-fpc5 144.0.0.22 lcc15-fpc6 144.0.0.23 lcc15-fpc7 144.0.0.48 lcc15-spmb0 144.0.0.49 lcc15-spmb1 #LCC 15 (or MEMBER 15 on Virtual Chassis) 144.0.0.1 lcc15-master member15-master 144.0.0.4 lcc15-re0 member15-re0 144.0.0.5 lcc15-re1 member15-re1 144.0.0.6 lcc15-backup member15-backup 144.0.0.16 member15-fpc0 144.0.0.17 member15-fpc1 144.0.0.18 member15-fpc2 144.0.0.19 member15-fpc3 144.0.0.20 member15-fpc4 144.0.0.21 member15-fpc5 144.0.0.22 member15-fpc6 144.0.0.23 member15-fpc7 144.0.0.24 member15-fpc8 144.0.0.25 member15-fpc9 144.0.0.26 member15-fpc10 144.0.0.27 member15-fpc11 144.0.0.28 member15-fpc12 144.0.0.29 member15-fpc13 144.0.0.30 member15-fpc14 144.0.0.31 member15-fpc15 144.0.0.32 member15-fpc16 144.0.0.33 member15-fpc17 144.0.0.34 member15-fpc18 144.0.0.35 member15-fpc19 144.0.0.36 member15-fpc20 144.0.0.37 member15-fpc21 144.0.0.38 member15-fpc22 144.0.0.39 member15-fpc23 144.0.0.40 member15-fpc24 144.0.0.41 member15-fpc25 144.0.0.42 member15-fpc26 144.0.0.43 member15-fpc27 144.0.0.44 member15-fpc28 144.0.0.45 member15-fpc29 144.0.0.46 member15-fpc30 144.0.0.47 member15-fpc31 #LCC 16 (or MEMBER 16 on Virtual Chassis) 145.0.0.1 lcc16-master member16-master 145.0.0.4 lcc16-re0 member16-re0 145.0.0.5 lcc16-re1 member16-re1 145.0.0.6 lcc16-backup member16-backup 145.0.0.16 member16-fpc0 145.0.0.17 member16-fpc1 145.0.0.18 member16-fpc2 145.0.0.19 member16-fpc3 145.0.0.20 member16-fpc4 145.0.0.21 member16-fpc5 145.0.0.22 member16-fpc6 145.0.0.23 member16-fpc7 145.0.0.24 member16-fpc8 145.0.0.25 member16-fpc9 145.0.0.26 member16-fpc10 145.0.0.27 member16-fpc11 145.0.0.28 member16-fpc12 145.0.0.29 member16-fpc13 145.0.0.30 member16-fpc14 145.0.0.31 member16-fpc15 145.0.0.32 member16-fpc16 145.0.0.33 member16-fpc17 145.0.0.34 member16-fpc18 145.0.0.35 member16-fpc19 145.0.0.36 member16-fpc20 145.0.0.37 member16-fpc21 145.0.0.38 member16-fpc22 145.0.0.39 member16-fpc23 145.0.0.40 member16-fpc24 145.0.0.41 member16-fpc25 145.0.0.42 member16-fpc26 145.0.0.43 member16-fpc27 145.0.0.44 member16-fpc28 145.0.0.45 member16-fpc29 145.0.0.46 member16-fpc30 145.0.0.47 member16-fpc31 #LCC 17 (or MEMBER 17 on Virtual Chassis) 146.0.0.1 lcc17-master member17-master 146.0.0.4 lcc17-re0 member17-re0 146.0.0.5 lcc17-re1 member17-re1 146.0.0.6 lcc17-backup member17-backup 146.0.0.16 member17-fpc0 146.0.0.17 member17-fpc1 146.0.0.18 member17-fpc2 146.0.0.19 member17-fpc3 146.0.0.20 member17-fpc4 146.0.0.21 member17-fpc5 146.0.0.22 member17-fpc6 146.0.0.23 member17-fpc7 146.0.0.24 member17-fpc8 146.0.0.25 member17-fpc9 146.0.0.26 member17-fpc10 146.0.0.27 member17-fpc11 146.0.0.28 member17-fpc12 146.0.0.29 member17-fpc13 146.0.0.30 member17-fpc14 146.0.0.31 member17-fpc15 146.0.0.32 member17-fpc16 146.0.0.33 member17-fpc17 146.0.0.34 member17-fpc18 146.0.0.35 member17-fpc19 146.0.0.36 member17-fpc20 146.0.0.37 member17-fpc21 146.0.0.38 member17-fpc22 146.0.0.39 member17-fpc23 146.0.0.40 member17-fpc24 146.0.0.41 member17-fpc25 146.0.0.42 member17-fpc26 146.0.0.43 member17-fpc27 146.0.0.44 member17-fpc28 146.0.0.45 member17-fpc29 146.0.0.46 member17-fpc30 146.0.0.47 member17-fpc31 #LCC 18 (or MEMBER 18 on Virtual Chassis) 147.0.0.1 lcc18-master member18-master 147.0.0.4 lcc18-re0 member18-re0 147.0.0.5 lcc18-re1 member18-re1 147.0.0.6 lcc18-backup member18-backup 147.0.0.16 member18-fpc0 147.0.0.17 member18-fpc1 147.0.0.18 member18-fpc2 147.0.0.19 member18-fpc3 147.0.0.20 member18-fpc4 147.0.0.21 member18-fpc5 147.0.0.22 member18-fpc6 147.0.0.23 member18-fpc7 147.0.0.24 member18-fpc8 147.0.0.25 member18-fpc9 147.0.0.26 member18-fpc10 147.0.0.27 member18-fpc11 147.0.0.28 member18-fpc12 147.0.0.29 member18-fpc13 147.0.0.30 member18-fpc14 147.0.0.31 member18-fpc15 147.0.0.32 member18-fpc16 147.0.0.33 member18-fpc17 147.0.0.34 member18-fpc18 147.0.0.35 member18-fpc19 147.0.0.36 member18-fpc20 147.0.0.37 member18-fpc21 147.0.0.38 member18-fpc22 147.0.0.39 member18-fpc23 147.0.0.40 member18-fpc24 147.0.0.41 member18-fpc25 147.0.0.42 member18-fpc26 147.0.0.43 member18-fpc27 147.0.0.44 member18-fpc28 147.0.0.45 member18-fpc29 147.0.0.46 member18-fpc30 147.0.0.47 member18-fpc31 #LCC 19 (or MEMBER 19 on Virtual Chassis) 148.0.0.1 lcc19-master member19-master 148.0.0.4 lcc19-re0 member19-re0 148.0.0.5 lcc19-re1 member19-re1 148.0.0.6 lcc19-backup member19-backup 148.0.0.16 member19-fpc0 148.0.0.17 member19-fpc1 148.0.0.18 member19-fpc2 148.0.0.19 member19-fpc3 148.0.0.20 member19-fpc4 148.0.0.21 member19-fpc5 148.0.0.22 member19-fpc6 148.0.0.23 member19-fpc7 148.0.0.24 member19-fpc8 148.0.0.25 member19-fpc9 148.0.0.26 member19-fpc10 148.0.0.27 member19-fpc11 148.0.0.28 member19-fpc12 148.0.0.29 member19-fpc13 148.0.0.30 member19-fpc14 148.0.0.31 member19-fpc15 148.0.0.32 member19-fpc16 148.0.0.33 member19-fpc17 148.0.0.34 member19-fpc18 148.0.0.35 member19-fpc19 148.0.0.36 member19-fpc20 148.0.0.37 member19-fpc21 148.0.0.38 member19-fpc22 148.0.0.39 member19-fpc23 148.0.0.40 member19-fpc24 148.0.0.41 member19-fpc25 148.0.0.42 member19-fpc26 148.0.0.43 member19-fpc27 148.0.0.44 member19-fpc28 148.0.0.45 member19-fpc29 148.0.0.46 member19-fpc30 148.0.0.47 member19-fpc31 #LCC 20 (or MEMBER 20 on Virtual Chassis) 149.0.0.1 lcc20-master member20-master 149.0.0.4 lcc20-re0 member20-re0 149.0.0.5 lcc20-re1 member20-re1 149.0.0.6 lcc20-backup member20-backup 149.0.0.16 member20-fpc0 149.0.0.17 member20-fpc1 149.0.0.18 member20-fpc2 149.0.0.19 member20-fpc3 149.0.0.20 member20-fpc4 149.0.0.21 member20-fpc5 149.0.0.22 member20-fpc6 149.0.0.23 member20-fpc7 149.0.0.24 member20-fpc8 149.0.0.25 member20-fpc9 149.0.0.26 member20-fpc10 149.0.0.27 member20-fpc11 149.0.0.28 member20-fpc12 149.0.0.29 member20-fpc13 149.0.0.30 member20-fpc14 149.0.0.31 member20-fpc15 149.0.0.32 member20-fpc16 149.0.0.33 member20-fpc17 149.0.0.34 member20-fpc18 149.0.0.35 member20-fpc19 149.0.0.36 member20-fpc20 149.0.0.37 member20-fpc21 149.0.0.38 member20-fpc22 149.0.0.39 member20-fpc23 149.0.0.40 member20-fpc24 149.0.0.41 member20-fpc25 149.0.0.42 member20-fpc26 149.0.0.43 member20-fpc27 149.0.0.44 member20-fpc28 149.0.0.45 member20-fpc29 149.0.0.46 member20-fpc30 149.0.0.47 member20-fpc31 #LCC 21 (or MEMBER 21 on Virtual Chassis) 150.0.0.1 lcc21-master member21-master 150.0.0.4 lcc21-re0 member21-re0 150.0.0.5 lcc21-re1 member21-re1 150.0.0.6 lcc21-backup member21-backup 150.0.0.16 member21-fpc0 150.0.0.17 member21-fpc1 150.0.0.18 member21-fpc2 150.0.0.19 member21-fpc3 150.0.0.20 member21-fpc4 150.0.0.21 member21-fpc5 150.0.0.22 member21-fpc6 150.0.0.23 member21-fpc7 150.0.0.24 member21-fpc8 150.0.0.25 member21-fpc9 150.0.0.26 member21-fpc10 150.0.0.27 member21-fpc11 150.0.0.28 member21-fpc12 150.0.0.29 member21-fpc13 150.0.0.30 member21-fpc14 150.0.0.31 member21-fpc15 150.0.0.32 member21-fpc16 150.0.0.33 member21-fpc17 150.0.0.34 member21-fpc18 150.0.0.35 member21-fpc19 150.0.0.36 member21-fpc20 150.0.0.37 member21-fpc21 150.0.0.38 member21-fpc22 150.0.0.39 member21-fpc23 150.0.0.40 member21-fpc24 150.0.0.41 member21-fpc25 150.0.0.42 member21-fpc26 150.0.0.43 member21-fpc27 150.0.0.44 member21-fpc28 150.0.0.45 member21-fpc29 150.0.0.46 member21-fpc30 150.0.0.47 member21-fpc31 #LCC 22 (or MEMBER 22 on Virtual Chassis) 151.0.0.1 lcc22-master member22-master 151.0.0.4 lcc22-re0 member22-re0 151.0.0.5 lcc22-re1 member22-re1 151.0.0.6 lcc22-backup member22-backup 151.0.0.16 member22-fpc0 151.0.0.17 member22-fpc1 151.0.0.18 member22-fpc2 151.0.0.19 member22-fpc3 151.0.0.20 member22-fpc4 151.0.0.21 member22-fpc5 151.0.0.22 member22-fpc6 151.0.0.23 member22-fpc7 151.0.0.24 member22-fpc8 151.0.0.25 member22-fpc9 151.0.0.26 member22-fpc10 151.0.0.27 member22-fpc11 151.0.0.28 member22-fpc12 151.0.0.29 member22-fpc13 151.0.0.30 member22-fpc14 151.0.0.31 member22-fpc15 151.0.0.32 member22-fpc16 151.0.0.33 member22-fpc17 151.0.0.34 member22-fpc18 151.0.0.35 member22-fpc19 151.0.0.36 member22-fpc20 151.0.0.37 member22-fpc21 151.0.0.38 member22-fpc22 151.0.0.39 member22-fpc23 151.0.0.40 member22-fpc24 151.0.0.41 member22-fpc25 151.0.0.42 member22-fpc26 151.0.0.43 member22-fpc27 151.0.0.44 member22-fpc28 151.0.0.45 member22-fpc29 151.0.0.46 member22-fpc30 151.0.0.47 member22-fpc31 #LCC 23 (or MEMBER 23 on Virtual Chassis) 152.0.0.1 lcc23-master member23-master 152.0.0.4 lcc23-re0 member23-re0 152.0.0.5 lcc23-re1 member23-re1 152.0.0.6 lcc23-backup member23-backup 152.0.0.16 member23-fpc0 152.0.0.17 member23-fpc1 152.0.0.18 member23-fpc2 152.0.0.19 member23-fpc3 152.0.0.20 member23-fpc4 152.0.0.21 member23-fpc5 152.0.0.22 member23-fpc6 152.0.0.23 member23-fpc7 152.0.0.24 member23-fpc8 152.0.0.25 member23-fpc9 152.0.0.26 member23-fpc10 152.0.0.27 member23-fpc11 152.0.0.28 member23-fpc12 152.0.0.29 member23-fpc13 152.0.0.30 member23-fpc14 152.0.0.31 member23-fpc15 152.0.0.32 member23-fpc16 152.0.0.33 member23-fpc17 152.0.0.34 member23-fpc18 152.0.0.35 member23-fpc19 152.0.0.36 member23-fpc20 152.0.0.37 member23-fpc21 152.0.0.38 member23-fpc22 152.0.0.39 member23-fpc23 152.0.0.40 member23-fpc24 152.0.0.41 member23-fpc25 152.0.0.42 member23-fpc26 152.0.0.43 member23-fpc27 152.0.0.44 member23-fpc28 152.0.0.45 member23-fpc29 152.0.0.46 member23-fpc30 152.0.0.47 member23-fpc31 #LCC 24 (or MEMBER 24 on Virtual Chassis) 153.0.0.1 lcc24-master member24-master 153.0.0.4 lcc24-re0 member24-re0 153.0.0.5 lcc24-re1 member24-re1 153.0.0.6 lcc24-backup member24-backup 153.0.0.16 member24-fpc0 153.0.0.17 member24-fpc1 153.0.0.18 member24-fpc2 153.0.0.19 member24-fpc3 153.0.0.20 member24-fpc4 153.0.0.21 member24-fpc5 153.0.0.22 member24-fpc6 153.0.0.23 member24-fpc7 153.0.0.24 member24-fpc8 153.0.0.25 member24-fpc9 153.0.0.26 member24-fpc10 153.0.0.27 member24-fpc11 153.0.0.28 member24-fpc12 153.0.0.29 member24-fpc13 153.0.0.30 member24-fpc14 153.0.0.31 member24-fpc15 153.0.0.32 member24-fpc16 153.0.0.33 member24-fpc17 153.0.0.34 member24-fpc18 153.0.0.35 member24-fpc19 153.0.0.36 member24-fpc20 153.0.0.37 member24-fpc21 153.0.0.38 member24-fpc22 153.0.0.39 member24-fpc23 153.0.0.40 member24-fpc24 153.0.0.41 member24-fpc25 153.0.0.42 member24-fpc26 153.0.0.43 member24-fpc27 153.0.0.44 member24-fpc28 153.0.0.45 member24-fpc29 153.0.0.46 member24-fpc30 153.0.0.47 member24-fpc31 #LCC 25 (or MEMBER 25 on Virtual Chassis) 154.0.0.1 lcc25-master member25-master 154.0.0.4 lcc25-re0 member25-re0 154.0.0.5 lcc25-re1 member25-re1 154.0.0.6 lcc25-backup member25-backup 154.0.0.16 member25-fpc0 154.0.0.17 member25-fpc1 154.0.0.18 member25-fpc2 154.0.0.19 member25-fpc3 154.0.0.20 member25-fpc4 154.0.0.21 member25-fpc5 154.0.0.22 member25-fpc6 154.0.0.23 member25-fpc7 154.0.0.24 member25-fpc8 154.0.0.25 member25-fpc9 154.0.0.26 member25-fpc10 154.0.0.27 member25-fpc11 154.0.0.28 member25-fpc12 154.0.0.29 member25-fpc13 154.0.0.30 member25-fpc14 154.0.0.31 member25-fpc15 154.0.0.32 member25-fpc16 154.0.0.33 member25-fpc17 154.0.0.34 member25-fpc18 154.0.0.35 member25-fpc19 154.0.0.36 member25-fpc20 154.0.0.37 member25-fpc21 154.0.0.38 member25-fpc22 154.0.0.39 member25-fpc23 154.0.0.40 member25-fpc24 154.0.0.41 member25-fpc25 154.0.0.42 member25-fpc26 154.0.0.43 member25-fpc27 154.0.0.44 member25-fpc28 154.0.0.45 member25-fpc29 154.0.0.46 member25-fpc30 154.0.0.47 member25-fpc31 #LCC 26 (or MEMBER 26 on Virtual Chassis) 155.0.0.1 lcc26-master member26-master 155.0.0.4 lcc26-re0 member26-re0 155.0.0.5 lcc26-re1 member26-re1 155.0.0.6 lcc26-backup member26-backup 155.0.0.16 member26-fpc0 155.0.0.17 member26-fpc1 155.0.0.18 member26-fpc2 155.0.0.19 member26-fpc3 155.0.0.20 member26-fpc4 155.0.0.21 member26-fpc5 155.0.0.22 member26-fpc6 155.0.0.23 member26-fpc7 155.0.0.24 member26-fpc8 155.0.0.25 member26-fpc9 155.0.0.26 member26-fpc10 155.0.0.27 member26-fpc11 155.0.0.28 member26-fpc12 155.0.0.29 member26-fpc13 155.0.0.30 member26-fpc14 155.0.0.31 member26-fpc15 155.0.0.32 member26-fpc16 155.0.0.33 member26-fpc17 155.0.0.34 member26-fpc18 155.0.0.35 member26-fpc19 155.0.0.36 member26-fpc20 155.0.0.37 member26-fpc21 155.0.0.38 member26-fpc22 155.0.0.39 member26-fpc23 155.0.0.40 member26-fpc24 155.0.0.41 member26-fpc25 155.0.0.42 member26-fpc26 155.0.0.43 member26-fpc27 155.0.0.44 member26-fpc28 155.0.0.45 member26-fpc29 155.0.0.46 member26-fpc30 155.0.0.47 member26-fpc31 #LCC 27 (or MEMBER 27 on Virtual Chassis) 156.0.0.1 lcc27-master member27-master 156.0.0.4 lcc27-re0 member27-re0 156.0.0.5 lcc27-re1 member27-re1 156.0.0.6 lcc27-backup member27-backup 156.0.0.16 member27-fpc0 156.0.0.17 member27-fpc1 156.0.0.18 member27-fpc2 156.0.0.19 member27-fpc3 156.0.0.20 member27-fpc4 156.0.0.21 member27-fpc5 156.0.0.22 member27-fpc6 156.0.0.23 member27-fpc7 156.0.0.24 member27-fpc8 156.0.0.25 member27-fpc9 156.0.0.26 member27-fpc10 156.0.0.27 member27-fpc11 156.0.0.28 member27-fpc12 156.0.0.29 member27-fpc13 156.0.0.30 member27-fpc14 156.0.0.31 member27-fpc15 156.0.0.32 member27-fpc16 156.0.0.33 member27-fpc17 156.0.0.34 member27-fpc18 156.0.0.35 member27-fpc19 156.0.0.36 member27-fpc20 156.0.0.37 member27-fpc21 156.0.0.38 member27-fpc22 156.0.0.39 member27-fpc23 156.0.0.40 member27-fpc24 156.0.0.41 member27-fpc25 156.0.0.42 member27-fpc26 156.0.0.43 member27-fpc27 156.0.0.44 member27-fpc28 156.0.0.45 member27-fpc29 156.0.0.46 member27-fpc30 156.0.0.47 member27-fpc31 #LCC 28 (or MEMBER 28 on Virtual Chassis) 157.0.0.1 lcc28-master member28-master 157.0.0.4 lcc28-re0 member28-re0 157.0.0.5 lcc28-re1 member28-re1 157.0.0.6 lcc28-backup member28-backup 157.0.0.16 member28-fpc0 157.0.0.17 member28-fpc1 157.0.0.18 member28-fpc2 157.0.0.19 member28-fpc3 157.0.0.20 member28-fpc4 157.0.0.21 member28-fpc5 157.0.0.22 member28-fpc6 157.0.0.23 member28-fpc7 157.0.0.24 member28-fpc8 157.0.0.25 member28-fpc9 157.0.0.26 member28-fpc10 157.0.0.27 member28-fpc11 157.0.0.28 member28-fpc12 157.0.0.29 member28-fpc13 157.0.0.30 member28-fpc14 157.0.0.31 member28-fpc15 157.0.0.32 member28-fpc16 157.0.0.33 member28-fpc17 157.0.0.34 member28-fpc18 157.0.0.35 member28-fpc19 157.0.0.36 member28-fpc20 157.0.0.37 member28-fpc21 157.0.0.38 member28-fpc22 157.0.0.39 member28-fpc23 157.0.0.40 member28-fpc24 157.0.0.41 member28-fpc25 157.0.0.42 member28-fpc26 157.0.0.43 member28-fpc27 157.0.0.44 member28-fpc28 157.0.0.45 member28-fpc29 157.0.0.46 member28-fpc30 157.0.0.47 member28-fpc31 #LCC 29 (or MEMBER 29 on Virtual Chassis) 158.0.0.1 lcc29-master member29-master 158.0.0.4 lcc29-re0 member29-re0 158.0.0.5 lcc29-re1 member29-re1 158.0.0.6 lcc29-backup member29-backup 158.0.0.16 member29-fpc0 158.0.0.17 member29-fpc1 158.0.0.18 member29-fpc2 158.0.0.19 member29-fpc3 158.0.0.20 member29-fpc4 158.0.0.21 member29-fpc5 158.0.0.22 member29-fpc6 158.0.0.23 member29-fpc7 158.0.0.24 member29-fpc8 158.0.0.25 member29-fpc9 158.0.0.26 member29-fpc10 158.0.0.27 member29-fpc11 158.0.0.28 member29-fpc12 158.0.0.29 member29-fpc13 158.0.0.30 member29-fpc14 158.0.0.31 member29-fpc15 158.0.0.32 member29-fpc16 158.0.0.33 member29-fpc17 158.0.0.34 member29-fpc18 158.0.0.35 member29-fpc19 158.0.0.36 member29-fpc20 158.0.0.37 member29-fpc21 158.0.0.38 member29-fpc22 158.0.0.39 member29-fpc23 158.0.0.40 member29-fpc24 158.0.0.41 member29-fpc25 158.0.0.42 member29-fpc26 158.0.0.43 member29-fpc27 158.0.0.44 member29-fpc28 158.0.0.45 member29-fpc29 158.0.0.46 member29-fpc30 158.0.0.47 member29-fpc31 #LCC 30 (or MEMBER 30 on Virtual Chassis) 159.0.0.1 lcc30-master member30-master 159.0.0.4 lcc30-re0 member30-re0 159.0.0.5 lcc30-re1 member30-re1 159.0.0.6 lcc30-backup member30-backup 159.0.0.16 member30-fpc0 159.0.0.17 member30-fpc1 159.0.0.18 member30-fpc2 159.0.0.19 member30-fpc3 159.0.0.20 member30-fpc4 159.0.0.21 member30-fpc5 159.0.0.22 member30-fpc6 159.0.0.23 member30-fpc7 159.0.0.24 member30-fpc8 159.0.0.25 member30-fpc9 159.0.0.26 member30-fpc10 159.0.0.27 member30-fpc11 159.0.0.28 member30-fpc12 159.0.0.29 member30-fpc13 159.0.0.30 member30-fpc14 159.0.0.31 member30-fpc15 159.0.0.32 member30-fpc16 159.0.0.33 member30-fpc17 159.0.0.34 member30-fpc18 159.0.0.35 member30-fpc19 159.0.0.36 member30-fpc20 159.0.0.37 member30-fpc21 159.0.0.38 member30-fpc22 159.0.0.39 member30-fpc23 159.0.0.40 member30-fpc24 159.0.0.41 member30-fpc25 159.0.0.42 member30-fpc26 159.0.0.43 member30-fpc27 159.0.0.44 member30-fpc28 159.0.0.45 member30-fpc29 159.0.0.46 member30-fpc30 159.0.0.47 member30-fpc31 #LCC 31 (or MEMBER 31 on Virtual Chassis) 160.0.0.1 lcc31-master member31-master 160.0.0.4 lcc31-re0 member31-re0 160.0.0.5 lcc31-re1 member31-re1 160.0.0.6 lcc31-backup member31-backup 160.0.0.16 member31-fpc0 160.0.0.17 member31-fpc1 160.0.0.18 member31-fpc2 160.0.0.19 member31-fpc3 160.0.0.20 member31-fpc4 160.0.0.21 member31-fpc5 160.0.0.22 member31-fpc6 160.0.0.23 member31-fpc7 160.0.0.24 member31-fpc8 160.0.0.25 member31-fpc9 160.0.0.26 member31-fpc10 160.0.0.27 member31-fpc11 160.0.0.28 member31-fpc12 160.0.0.29 member31-fpc13 160.0.0.30 member31-fpc14 160.0.0.31 member31-fpc15 160.0.0.32 member31-fpc16 160.0.0.33 member31-fpc17 160.0.0.34 member31-fpc18 160.0.0.35 member31-fpc19 160.0.0.36 member31-fpc20 160.0.0.37 member31-fpc21 160.0.0.38 member31-fpc22 160.0.0.39 member31-fpc23 160.0.0.40 member31-fpc24 160.0.0.41 member31-fpc25 160.0.0.42 member31-fpc26 160.0.0.43 member31-fpc27 160.0.0.44 member31-fpc28 160.0.0.45 member31-fpc29 160.0.0.46 member31-fpc30 160.0.0.47 member31-fpc31 #VIRT SC 161.0.0.1 sc-master 161.0.0.4 sc-re0 161.0.0.5 sc-re1 161.0.0.6 sc-backup #SFC 0 162.0.0.1 sfc0-master 162.0.0.4 sfc0-re0 162.0.0.5 sfc0-re1 162.0.0.6 sfc0-backup 162.0.0.48 sfc0-spmb0 162.0.0.49 sfc0-spmb1 #SFC 1 163.0.0.1 sfc1-master 163.0.0.4 sfc1-re0 163.0.0.5 sfc1-re1 163.0.0.6 sfc1-backup 163.0.0.48 sfc1-spmb0 163.0.0.49 sfc1-spmb1 #SFC 2 164.0.0.1 sfc2-master 164.0.0.4 sfc2-re0 164.0.0.5 sfc2-re1 164.0.0.6 sfc2-backup 164.0.0.48 sfc2-spmb0 164.0.0.49 sfc2-spmb1 #SFC 3 165.0.0.1 sfc3-master 165.0.0.4 sfc3-re0 165.0.0.5 sfc3-re1 165.0.0.6 sfc3-backup 165.0.0.48 sfc3-spmb0 165.0.0.49 sfc3-spmb1 #SFC 4 166.0.0.1 sfc4-master 166.0.0.4 sfc4-re0 166.0.0.5 sfc4-re1 166.0.0.6 sfc4-backup 166.0.0.48 sfc4-spmb0 166.0.0.49 sfc4-spmb1 #JCS 190.0.0.1 psd%d-master 190.0.0.4 psd%d-re0 190.0.0.5 psd%d-re1 190.0.0.6 psd%d-backup # Old IP address format (RT_IRS_V2) # # Single Chassis Hostnames # 10.0.0.1 master 10.0.0.4 re0 10.0.0.5 re1 10.0.0.16 fpc0 10.0.0.17 fpc1 10.0.0.18 fpc2 10.0.0.19 fpc3 10.0.0.20 fpc4 10.0.0.21 fpc5 10.0.0.22 fpc6 10.0.0.23 fpc7 10.0.0.24 fpc8 10.0.0.25 fpc9 10.0.0.26 fpc10 10.0.0.27 fpc11 10.0.0.28 fpc12 10.0.0.29 fpc13 10.0.0.30 fpc14 10.0.0.31 fpc15 # # Multi Chassis Hostnames # #SCC 10.16.0.1 scc-master 10.16.0.4 scc-re0 10.16.0.5 scc-re1 #LCC 0 10.1.0.1 lcc0-master member0-master 10.1.0.4 lcc0-re0 member0-re0 10.1.0.5 lcc0-re1 member0-re1 10.1.0.6 lcc0-backup member0-backup #LCC 1 10.2.0.1 lcc1-master member1-master 10.2.0.4 lcc1-re0 member1-re0 10.2.0.5 lcc1-re1 member1-re1 10.2.0.6 lcc1-backup member1-backup #LCC 2 10.3.0.1 lcc2-master member2-master 10.3.0.4 lcc2-re0 member2-re0 10.3.0.5 lcc2-re1 member2-re1 10.3.0.6 lcc2-backup member2-backup #LCC 3 10.4.0.1 lcc3-master member3-master 10.4.0.4 lcc3-re0 member3-re0 10.4.0.5 lcc3-re1 member3-re1 10.4.0.6 lcc3-backup member3-backup #LCC 4 10.5.0.1 lcc4-master member4-master 10.5.0.4 lcc4-re0 member4-re0 10.5.0.5 lcc4-re1 member4-re1 10.5.0.6 lcc4-backup member4-backup #LCC 5 10.6.0.1 lcc5-master member5-master 10.6.0.4 lcc5-re0 member5-re0 10.6.0.5 lcc5-re1 member5-re1 10.6.0.6 lcc5-backup member5-backup #LCC 6 10.7.0.1 lcc6-master member6-master 10.7.0.4 lcc6-re0 member6-re0 10.7.0.5 lcc6-re1 member6-re1 10.7.0.6 lcc6-backup member6-backup #LCC 7 10.8.0.1 lcc7-master member7-master 10.8.0.4 lcc7-re0 member7-re0 10.8.0.5 lcc7-re1 member7-re1 10.8.0.6 lcc7-backup member7-backup #LCC 8 10.9.0.1 lcc8-master member8-master 10.9.0.4 lcc8-re0 member8-re0 10.9.0.5 lcc8-re1 member8-re1 10.9.0.6 lcc8-backup member8-backup #LCC 9 10.10.0.1 lcc9-master member9-master 10.10.0.4 lcc9-re0 member9-re0 10.10.0.5 lcc9-re1 member9-re1 10.10.0.6 lcc9-backup member9-backup #LCC 10 10.11.0.1 lcc10-master member10-master 10.11.0.4 lcc10-re0 member10-re0 10.11.0.5 lcc10-re1 member10-re1 10.11.0.6 lcc10-backup member10-backup #LCC 11 10.12.0.1 lcc11-master member11-master 10.12.0.4 lcc11-re0 member11-re0 10.12.0.5 lcc11-re1 member11-re1 10.12.0.6 lcc11-backup member11-backup #LCC 12 10.13.0.1 lcc12-master member12-master 10.13.0.4 lcc12-re0 member12-re0 10.13.0.5 lcc12-re1 member12-re1 10.13.0.6 lcc12-backup member12-backup #LCC 13 10.14.0.1 lcc13-master member13-master 10.14.0.4 lcc13-re0 member13-re0 10.14.0.5 lcc13-re1 member13-re1 10.14.0.6 lcc13-backup member13-backup #LCC 14 10.15.0.1 lcc14-master member14-master 10.15.0.4 lcc14-re0 member14-re0 10.15.0.5 lcc14-re1 member14-re1 10.15.0.6 lcc14-backup member14-backup #LCC 15 10.16.0.1 lcc15-master member15-master 10.16.0.4 lcc15-re0 member15-re0 10.16.0.5 lcc15-re1 member15-re1 10.16.0.6 lcc15-backup member15-backup #SFC 0 10.34.0.1 sfc0-master 10.34.0.4 sfc0-re0 10.34.0.5 sfc0-re1 #SFC 1 10.35.0.1 sfc1-master 10.35.0.4 sfc1-re0 10.35.0.5 sfc1-re1 #SFC 2 10.36.0.1 sfc2-master 10.36.0.4 sfc2-re0 10.36.0.5 sfc2-re1 #SFC 3 10.37.0.1 sfc3-master 10.37.0.4 sfc3-re0 10.37.0.5 sfc3-re1 #SFC 4 10.38.0.1 sfc4-master 10.38.0.4 sfc4-re0 10.38.0.5 sfc4-re1 # End of internal names py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/sw_info_dual_get-interface-information.xml000066400000000000000000000316461475361112400317330ustar00rootroot00000000000000 lc-0/0/0.32769 up up vpls pfe-0/0/0.16383 up up inet inet6 pfh-0/0/0.16383 up up inet lc-0/1/0.32769 up up vpls pfe-0/1/0.16383 up up inet inet6 lc-1/0/0.32769 up up vpls pfe-1/0/0.16383 up up inet inet6 pfh-1/0/0.16383 up up inet lc-1/1/0.32769 up up vpls pfe-1/1/0.16383 up up inet inet6 em0.0 up up inet 10.0.0.4/8 128.0.0.1/2 128.0.0.4/2 inet6 fe80::200:ff:fe00:4/64 fec0::a:0:0:4/64 tnp 0x4 em1.0 up up inet 10.0.0.4/8 128.0.0.1/2 128.0.0.4/2 inet6 fe80::200:1ff:fe00:4/64 fec0::a:0:0:4/64 tnp 0x4 lo0.16385 up up inet {master} py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/sw_info_dual_other_re_off.xml000066400000000000000000000226001475361112400273220ustar00rootroot00000000000000 protocol operation-failed error Could not connect to re0 : No route to host re1 R1_re01 mx960 mx960 18.3I20180716_1639 os-kernel JUNOS OS Kernel 32-bit (WITNESS) [20180515.183843_fbsd-builder_stable_11] os-libs JUNOS OS libs [20180515.183843_fbsd-builder_stable_11] os-runtime JUNOS OS runtime [20180515.183843_fbsd-builder_stable_11] zoneinfo JUNOS OS time zone information [20180515.183843_fbsd-builder_stable_11] netstack JUNOS network stack and utilities [20180716.163910] junos-libs JUNOS libs [20180716.163910] junos-runtime JUNOS runtime [20180716.163910] vmguest JUNOS Packet Forwarding Engine Simulation Package [20180716.163910] sflow-platform JUNOS sflow mx [20180716.163910] py-extensions JUNOS py extensions [20180716.163910] py-base JUNOS py base [20180716.163910] os-vmguest JUNOS OS vmguest [20180515.183843_fbsd-builder_stable_11] os-support JUNOS OS support utilities [20180515.183843_fbsd-builder_stable_11] os-crypto JUNOS OS crypto [20180515.183843_fbsd-builder_stable_11] na-telemetry JUNOS na telemetry [18.3I20180716_1639] junos-libs-platform JUNOS mx libs [20180716.163910] junos-runtime-platform JUNOS mx runtime [20180716.163910] junos-platform JUNOS common platform support [20180716.163910] junos-openconfig JUNOS Openconfig [18.3I20180716_1639] junos-net-platform JUNOS mtx network modules [20180716.163910] junos-modules JUNOS modules [20180716.163910] junos-modules-platform JUNOS mx modules [20180716.163910] junos-dp-crypto-support-platform JUNOS mtx Data Plane Crypto Support [20180716.163910] junos-daemons JUNOS daemons [20180716.163910] junos-daemons-platform JUNOS mx daemons [20180716.163910] jsim-wrlinux JUNOS Simulation Linux Package [20180716.163910] jsim-pfe-vmx JUNOS Simulation Package [20180716.163910] jsim-pfe-internal JUNOS Simulation Package [20180716.163910] jservices-urlf JUNOS Services URL Filter package [20180716.163910] jservices-traffic-dird JUNOS Services TLB Service PIC package [20180716.163910] jservices-telemetry JUNOS Services Telemetry [20180716.163910] jservices-ssl JUNOS Services SSL [20180716.163910] jservices-softwire JUNOS Services SOFTWIRE [20180716.163910] jservices-sfw JUNOS Services Stateful Firewall [20180716.163910] jservices-rpm JUNOS Services RPM [20180716.163910] jservices-pcef JUNOS Services PCEF package [20180716.163910] jservices-nat JUNOS Services NAT [20180716.163910] jservices-mss JUNOS Services Mobile Subscriber Service Container package [20180716.163910] jservices-mobile JUNOS Services MobileNext Software package [20180716.163910] jservices-lrf JUNOS Services Logging Report Framework package [20180716.163910] jservices-llpdf JUNOS Services LL-PDF Container package [20180716.163910] jservices-jflow JUNOS Services Jflow Container package [20180716.163910] jservices-jdpi JUNOS Services Deep Packet Inspection package [20180716.163910] jservices-ipsec JUNOS Services IPSec [20180716.163910] jservices-ids JUNOS Services IDS [20180716.163910] jservices-idp JUNOS IDP Services [20180716.163910] jservices-hcm JUNOS Services HTTP Content Management package [20180716.163910] jservices-fwdd JUNOS Services Flowd MS-MPC Software package [20180716.163910] jservices-crypto-base JUNOS Services Crypto [20180716.163910] jservices-cpcd JUNOS Services Captive Portal and Content Delivery Container package [20180716.163910] jservices-cos JUNOS Services COS [20180716.163910] jservices-appid JUNOS AppId Services [20180716.163910] jservices-alg JUNOS Services Application Level Gateways [20180716.163910] jservices-aacl JUNOS Services AACL Container package [20180716.163910] jsdn JUNOS SDN Software Suite [20180716.163910] jsd-jet-1 JUNOS Extension Toolkit [20180716.163910] jpfe-wrlinux JUNOS Packet Forwarding Engine Support (wrlinux) [20180716.163910] jpfe-platform JUNOS Packet Forwarding Engine Support (MX/EX92XX Common) [20180716.163910] jpfe-common JUNOS Packet Forwarding Engine Support (M/T Common) [20180716.163910] jpfe-X JUNOS Packet Forwarding Engine Support (MX Common) [20180716.163910] jinsight JUNOS J-Insight [20180716.163910] jfirmware JUNOS jfirmware [20180716.163910] jdocs JUNOS Online Documentation [20180716.163910] jail-runtime JUNOS jail runtime [20180515.183843_fbsd-builder_stable_11] py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/sw_info_ex_file-show.xml000066400000000000000000000730761475361112400262620ustar00rootroot00000000000000 #$Id: hosts.junos,v 1.7.72.1 2009-04-16 05:22:03 kdickman Exp $ # # File mapping AF_INET/AF_INET6 hostnames for REs on Single and Multichassis # systems # # This file is looked at before /etc/hosts by gethostbyname(3), # gethostbyname2(3) and getaddrinfo(3) # # The IP addresses in this file are only used for communication between REs # over the Internal Routing Instances # # WARNING: # # The names in this file are effectively reserved for internal use. # # New IP address format (RT_IRS_V3) # # Single Chassis Hostnames # 128.0.0.1 master 128.0.0.1 node 128.0.0.1 fwdd 128.0.0.1 member 128.0.0.1 pfem 128.0.0.2 scb 128.0.0.2 sbr 128.0.0.2 ssb 128.0.0.2 feb 128.0.0.2 cfeb0 128.0.0.2 cfeb 128.0.0.2 cpp0 128.0.0.3 cfeb1 128.0.0.3 cpp1 128.0.0.4 re0 128.0.0.5 re1 128.0.0.6 backup 128.0.0.8 sfm0 128.0.0.9 sfm1 128.0.0.10 sfm2 128.0.0.16 fpc0 128.0.0.17 fpc1 128.0.0.18 fpc2 128.0.0.19 fpc3 128.0.0.20 fpc4 128.0.0.21 fpc5 128.0.0.22 fpc6 128.0.0.23 fpc7 128.0.0.24 fpc8 128.0.0.25 fpc9 128.0.0.26 fpc10 128.0.0.27 fpc11 128.0.0.28 fpc12 128.0.0.29 fpc13 128.0.0.30 fpc14 128.0.0.31 fpc15 128.0.0.32 feb0 128.0.0.33 feb1 128.0.0.34 feb2 128.0.0.35 feb3 128.0.0.36 feb4 128.0.0.37 feb5 128.0.0.48 spmb0 128.0.0.49 spmb1 128.0.0.50 tfeb0 128.0.1.16 fpc0.pic0 128.0.1.17 fpc1.pic0 128.0.1.18 fpc2.pic0 128.0.1.19 fpc3.pic0 128.0.1.20 fpc4.pic0 128.0.1.21 fpc5.pic0 128.0.1.22 fpc6.pic0 128.0.1.23 fpc7.pic0 128.0.1.24 fpc8.pic0 128.0.1.25 fpc9.pic0 128.0.1.26 fpc10.pic0 128.0.1.27 fpc11.pic0 128.0.1.28 fpc12.pic0 128.0.1.29 fpc13.pic0 128.0.1.30 fpc14.pic0 128.0.1.31 fpc15.pic0 128.0.2.16 fpc0.pic1 128.0.2.17 fpc1.pic1 128.0.2.18 fpc2.pic1 128.0.2.19 fpc3.pic1 128.0.2.20 fpc4.pic1 128.0.2.21 fpc5.pic1 128.0.2.22 fpc6.pic1 128.0.2.23 fpc7.pic1 128.0.2.24 fpc8.pic1 128.0.2.25 fpc9.pic1 128.0.2.26 fpc10.pic1 128.0.2.27 fpc11.pic1 128.0.2.28 fpc12.pic1 128.0.2.29 fpc13.pic1 128.0.2.30 fpc14.pic1 128.0.2.31 fpc15.pic1 # # DCF-Root Hostname # 128.0.130.2 dcf-root # # Multi Chassis Hostnames # #SCC 144.0.0.1 scc-master 144.0.0.4 scc-re0 144.0.0.5 scc-re1 144.0.0.6 scc-backup 144.0.0.48 scc-spmb0 144.0.0.49 scc-spmb1 #LCC 0 (or MEMBER 0 on Virtual Chassis) 129.0.0.1 lcc0-master member0-master member0 129.0.0.4 lcc0-re0 member0-re0 129.0.0.5 lcc0-re1 member0-re1 129.0.0.6 lcc0-backup member0-backup 129.0.0.16 member0-fpc0 129.0.0.17 member0-fpc1 129.0.0.18 member0-fpc2 129.0.0.19 member0-fpc3 129.0.0.20 member0-fpc4 129.0.0.21 member0-fpc5 129.0.0.22 member0-fpc6 129.0.0.23 member0-fpc7 129.0.0.24 member0-fpc8 129.0.0.25 member0-fpc9 129.0.0.26 member0-fpc10 129.0.0.27 member0-fpc11 129.0.0.28 member0-fpc12 129.0.0.29 member0-fpc13 129.0.0.30 member0-fpc14 129.0.0.31 member0-fpc15 129.0.0.6 lcc0-backup 129.0.0.16 lcc0-fpc0 129.0.0.17 lcc0-fpc1 129.0.0.18 lcc0-fpc2 129.0.0.19 lcc0-fpc3 129.0.0.20 lcc0-fpc4 129.0.0.21 lcc0-fpc5 129.0.0.22 lcc0-fpc6 129.0.0.23 lcc0-fpc7 129.0.0.48 lcc0-spmb0 129.0.0.49 lcc0-spmb1 #LCC 1 (or MEMBER 1 on Virtual Chassis) 130.0.0.1 lcc1-master member1-master member1 130.0.0.4 lcc1-re0 member1-re0 130.0.0.5 lcc1-re1 member1-re1 130.0.0.6 lcc1-backup member1-backup 130.0.0.16 member1-fpc0 130.0.0.17 member1-fpc1 130.0.0.18 member1-fpc2 130.0.0.19 member1-fpc3 130.0.0.20 member1-fpc4 130.0.0.21 member1-fpc5 130.0.0.22 member1-fpc6 130.0.0.23 member1-fpc7 130.0.0.24 member1-fpc8 130.0.0.25 member1-fpc9 130.0.0.26 member1-fpc10 130.0.0.27 member1-fpc11 130.0.0.28 member1-fpc12 130.0.0.29 member1-fpc13 130.0.0.30 member1-fpc14 130.0.0.31 member1-fpc15 130.0.0.6 lcc1-backup 130.0.0.16 lcc1-fpc0 130.0.0.17 lcc1-fpc1 130.0.0.18 lcc1-fpc2 130.0.0.19 lcc1-fpc3 130.0.0.20 lcc1-fpc4 130.0.0.21 lcc1-fpc5 130.0.0.22 lcc1-fpc6 130.0.0.23 lcc1-fpc7 130.0.0.48 lcc1-spmb0 130.0.0.49 lcc1-spmb1 #LCC 2 (or MEMBER 2 on Virtual Chassis) 131.0.0.1 lcc2-master member2-master member2 131.0.0.4 lcc2-re0 member2-re0 131.0.0.5 lcc2-re1 member2-re1 131.0.0.6 lcc2-backup member2-backup 131.0.0.16 member2-fpc0 131.0.0.17 member2-fpc1 131.0.0.18 member2-fpc2 131.0.0.19 member2-fpc3 131.0.0.20 member2-fpc4 131.0.0.21 member2-fpc5 131.0.0.22 member2-fpc6 131.0.0.23 member2-fpc7 131.0.0.24 member2-fpc8 131.0.0.25 member2-fpc9 131.0.0.26 member2-fpc10 131.0.0.27 member2-fpc11 131.0.0.28 member2-fpc12 131.0.0.29 member2-fpc13 131.0.0.30 member2-fpc14 131.0.0.31 member2-fpc15 131.0.0.6 lcc2-backup 131.0.0.16 lcc2-fpc0 131.0.0.17 lcc2-fpc1 131.0.0.18 lcc2-fpc2 131.0.0.19 lcc2-fpc3 131.0.0.20 lcc2-fpc4 131.0.0.21 lcc2-fpc5 131.0.0.22 lcc2-fpc6 131.0.0.23 lcc2-fpc7 131.0.0.48 lcc2-spmb0 131.0.0.49 lcc20-spmb1 #LCC 3 (or MEMBER 3 on Virtual Chassis) 132.0.0.1 lcc3-master member3-master member3 132.0.0.4 lcc3-re0 member3-re0 132.0.0.5 lcc3-re1 member3-re1 132.0.0.6 lcc3-backup member3-backup 132.0.0.16 member3-fpc0 132.0.0.17 member3-fpc1 132.0.0.18 member3-fpc2 132.0.0.19 member3-fpc3 132.0.0.20 member3-fpc4 132.0.0.21 member3-fpc5 132.0.0.22 member3-fpc6 132.0.0.23 member3-fpc7 132.0.0.24 member3-fpc8 132.0.0.25 member3-fpc9 132.0.0.26 member3-fpc10 132.0.0.27 member3-fpc11 132.0.0.28 member3-fpc12 132.0.0.29 member3-fpc13 132.0.0.30 member3-fpc14 132.0.0.31 member3-fpc15 132.0.0.6 lcc3-backup 132.0.0.16 lcc3-fpc0 132.0.0.17 lcc3-fpc1 132.0.0.18 lcc3-fpc2 132.0.0.19 lcc3-fpc3 132.0.0.20 lcc3-fpc4 132.0.0.21 lcc3-fpc5 132.0.0.22 lcc3-fpc6 132.0.0.23 lcc3-fpc7 132.0.0.48 lcc3-spmb0 132.0.0.49 lcc3-spmb1 #LCC 4 (or MEMBER 4 on Virtual Chassis) 133.0.0.1 lcc4-master member4-master member4 133.0.0.4 lcc4-re0 member4-re0 133.0.0.5 lcc4-re1 member4-re1 133.0.0.6 lcc4-backup member4-backup 133.0.0.16 member4-fpc0 133.0.0.17 member4-fpc1 133.0.0.18 member4-fpc2 133.0.0.19 member4-fpc3 133.0.0.20 member4-fpc4 133.0.0.21 member4-fpc5 133.0.0.22 member4-fpc6 133.0.0.23 member4-fpc7 133.0.0.24 member4-fpc8 133.0.0.25 member4-fpc9 133.0.0.26 member4-fpc10 133.0.0.27 member4-fpc11 133.0.0.28 member4-fpc12 133.0.0.29 member4-fpc13 133.0.0.30 member4-fpc14 133.0.0.31 member4-fpc15 133.0.0.6 lcc4-backup 133.0.0.16 lcc4-fpc0 133.0.0.17 lcc4-fpc1 133.0.0.18 lcc4-fpc2 133.0.0.19 lcc4-fpc3 133.0.0.20 lcc4-fpc4 133.0.0.21 lcc4-fpc5 133.0.0.22 lcc4-fpc6 133.0.0.23 lcc4-fpc7 133.0.0.48 lcc4-spmb0 133.0.0.49 lcc4-spmb1 #LCC 5 (or MEMBER 5 on Virtual Chassis) 134.0.0.1 lcc5-master member5-master member5 134.0.0.4 lcc5-re0 member5-re0 134.0.0.5 lcc5-re1 member5-re1 134.0.0.6 lcc5-backup member5-backup 134.0.0.16 member5-fpc0 134.0.0.17 member5-fpc1 134.0.0.18 member5-fpc2 134.0.0.19 member5-fpc3 134.0.0.20 member5-fpc4 134.0.0.21 member5-fpc5 134.0.0.22 member5-fpc6 134.0.0.23 member5-fpc7 134.0.0.24 member5-fpc8 134.0.0.25 member5-fpc9 134.0.0.26 member5-fpc10 134.0.0.27 member5-fpc11 134.0.0.28 member5-fpc12 134.0.0.29 member5-fpc13 134.0.0.30 member5-fpc14 134.0.0.31 member5-fpc15 134.0.0.6 lcc5-backup 134.0.0.16 lcc5-fpc0 134.0.0.17 lcc5-fpc1 134.0.0.18 lcc5-fpc2 134.0.0.19 lcc5-fpc3 134.0.0.20 lcc5-fpc4 134.0.0.21 lcc5-fpc5 134.0.0.22 lcc5-fpc6 134.0.0.23 lcc5-fpc7 134.0.0.48 lcc5-spmb0 134.0.0.49 lcc5-spmb1 #LCC 6 (or MEMBER 6 on Virtual Chassis) 135.0.0.1 lcc6-master member6-master member6 135.0.0.4 lcc6-re0 member6-re0 135.0.0.5 lcc6-re1 member6-re1 135.0.0.6 lcc6-backup member6-backup 135.0.0.16 member6-fpc0 135.0.0.17 member6-fpc1 135.0.0.18 member6-fpc2 135.0.0.19 member6-fpc3 135.0.0.20 member6-fpc4 135.0.0.21 member6-fpc5 135.0.0.22 member6-fpc6 135.0.0.23 member6-fpc7 135.0.0.24 member6-fpc8 135.0.0.25 member6-fpc9 135.0.0.26 member6-fpc10 135.0.0.27 member6-fpc11 135.0.0.28 member6-fpc12 135.0.0.29 member6-fpc13 135.0.0.30 member6-fpc14 135.0.0.31 member6-fpc15 135.0.0.6 lcc6-backup 135.0.0.16 lcc6-fpc0 135.0.0.17 lcc6-fpc1 135.0.0.18 lcc6-fpc2 135.0.0.19 lcc6-fpc3 135.0.0.20 lcc6-fpc4 135.0.0.21 lcc6-fpc5 135.0.0.22 lcc6-fpc6 135.0.0.23 lcc6-fpc7 135.0.0.48 lcc6-spmb0 135.0.0.49 lcc6-spmb1 #LCC 7 (or MEMBER 7 on Virtual Chassis) 136.0.0.1 lcc7-master member7-master member7 136.0.0.4 lcc7-re0 member7-re0 136.0.0.5 lcc7-re1 member7-re1 136.0.0.6 lcc7-backup member7-backup 136.0.0.16 member7-fpc0 136.0.0.17 member7-fpc1 136.0.0.18 member7-fpc2 136.0.0.19 member7-fpc3 136.0.0.20 member7-fpc4 136.0.0.21 member7-fpc5 136.0.0.22 member7-fpc6 136.0.0.23 member7-fpc7 136.0.0.24 member7-fpc8 136.0.0.25 member7-fpc9 136.0.0.26 member7-fpc10 136.0.0.27 member7-fpc11 136.0.0.28 member7-fpc12 136.0.0.29 member7-fpc13 136.0.0.30 member7-fpc14 136.0.0.31 member7-fpc15 136.0.0.6 lcc7-backup 136.0.0.16 lcc7-fpc0 136.0.0.17 lcc7-fpc1 136.0.0.18 lcc7-fpc2 136.0.0.19 lcc7-fpc3 136.0.0.20 lcc7-fpc4 136.0.0.21 lcc7-fpc5 136.0.0.22 lcc7-fpc6 136.0.0.23 lcc7-fpc7 136.0.0.48 lcc7-spmb0 136.0.0.49 lcc7-spmb1 137.0.0.6 lcc8-backup 137.0.0.16 lcc8-fpc0 137.0.0.17 lcc8-fpc1 137.0.0.18 lcc8-fpc2 137.0.0.19 lcc8-fpc3 137.0.0.20 lcc8-fpc4 137.0.0.21 lcc8-fpc5 137.0.0.22 lcc8-fpc6 137.0.0.23 lcc8-fpc7 137.0.0.48 lcc8-spmb0 137.0.0.49 lcc8-spmb1 #LCC 8 (or MEMBER 8 on Virtual Chassis) 137.0.0.1 lcc8-master member8-master member8 137.0.0.4 lcc8-re0 member8-re0 137.0.0.5 lcc8-re1 member8-re1 137.0.0.6 lcc8-backup member8-backup 137.0.0.16 member8-fpc0 137.0.0.17 member8-fpc1 137.0.0.18 member8-fpc2 137.0.0.19 member8-fpc3 137.0.0.20 member8-fpc4 137.0.0.21 member8-fpc5 137.0.0.22 member8-fpc6 137.0.0.23 member8-fpc7 137.0.0.24 member8-fpc8 137.0.0.25 member8-fpc9 137.0.0.26 member8-fpc10 137.0.0.27 member8-fpc11 137.0.0.28 member8-fpc12 137.0.0.29 member8-fpc13 137.0.0.30 member8-fpc14 137.0.0.31 member8-fpc15 138.0.0.6 lcc9-backup 138.0.0.16 lcc9-fpc0 138.0.0.17 lcc9-fpc1 138.0.0.18 lcc9-fpc2 138.0.0.19 lcc9-fpc3 138.0.0.20 lcc9-fpc4 138.0.0.21 lcc9-fpc5 138.0.0.22 lcc9-fpc6 138.0.0.23 lcc9-fpc7 138.0.0.48 lcc9-spmb0 138.0.0.49 lcc9-spmb1 #LCC 9 (or MEMBER 9 on Virtual Chassis) 138.0.0.1 lcc9-master member9-master member9 138.0.0.4 lcc9-re0 member9-re0 138.0.0.5 lcc9-re1 member9-re1 138.0.0.6 lcc9-backup member9-backup 138.0.0.16 member9-fpc0 138.0.0.17 member9-fpc1 138.0.0.18 member9-fpc2 138.0.0.19 member9-fpc3 138.0.0.20 member9-fpc4 138.0.0.21 member9-fpc5 138.0.0.22 member9-fpc6 138.0.0.23 member9-fpc7 138.0.0.24 member9-fpc8 138.0.0.25 member9-fpc9 138.0.0.26 member9-fpc10 138.0.0.27 member9-fpc11 138.0.0.28 member9-fpc12 138.0.0.29 member9-fpc13 138.0.0.30 member9-fpc14 138.0.0.31 member9-fpc15 139.0.0.6 lcc10-backup 139.0.0.16 lcc10-fpc0 139.0.0.17 lcc10-fpc1 139.0.0.18 lcc10-fpc2 139.0.0.19 lcc10-fpc3 139.0.0.20 lcc10-fpc4 139.0.0.21 lcc10-fpc5 139.0.0.22 lcc10-fpc6 139.0.0.23 lcc10-fpc7 139.0.0.48 lcc10-spmb0 139.0.0.49 lcc10-spmb1 #LCC 10 (or MEMBER 10 on Virtual Chassis) 139.0.0.1 lcc10-master member10-master 139.0.0.4 lcc10-re0 member10-re0 139.0.0.5 lcc10-re1 member10-re1 139.0.0.6 lcc10-backup member10-backup 139.0.0.16 member10-fpc0 139.0.0.17 member10-fpc1 139.0.0.18 member10-fpc2 139.0.0.19 member10-fpc3 139.0.0.20 member10-fpc4 139.0.0.21 member10-fpc5 139.0.0.22 member10-fpc6 139.0.0.23 member10-fpc7 139.0.0.24 member10-fpc8 139.0.0.25 member10-fpc9 139.0.0.26 member10-fpc10 139.0.0.27 member10-fpc11 139.0.0.28 member10-fpc12 139.0.0.29 member10-fpc13 139.0.0.30 member10-fpc14 139.0.0.31 member10-fpc15 140.0.0.6 lcc11-backup 140.0.0.16 lcc11-fpc0 140.0.0.17 lcc11-fpc1 140.0.0.18 lcc11-fpc2 140.0.0.19 lcc11-fpc3 140.0.0.20 lcc11-fpc4 140.0.0.21 lcc11-fpc5 140.0.0.22 lcc11-fpc6 140.0.0.23 lcc11-fpc7 140.0.0.48 lcc11-spmb0 140.0.0.49 lcc11-spmb1 #LCC 11 (or MEMBER 11 on Virtual Chassis) 140.0.0.1 lcc11-master member11-master 140.0.0.4 lcc11-re0 member11-re0 140.0.0.5 lcc11-re1 member11-re1 140.0.0.6 lcc11-backup member11-backup 140.0.0.16 member11-fpc0 140.0.0.17 member11-fpc1 140.0.0.18 member11-fpc2 140.0.0.19 member11-fpc3 140.0.0.20 member11-fpc4 140.0.0.21 member11-fpc5 140.0.0.22 member11-fpc6 140.0.0.23 member11-fpc7 140.0.0.24 member11-fpc8 140.0.0.25 member11-fpc9 140.0.0.26 member11-fpc10 140.0.0.27 member11-fpc11 140.0.0.28 member11-fpc12 140.0.0.29 member11-fpc13 140.0.0.30 member11-fpc14 140.0.0.31 member11-fpc15 141.0.0.6 lcc12-backup 141.0.0.16 lcc12-fpc0 141.0.0.17 lcc12-fpc1 141.0.0.18 lcc12-fpc2 141.0.0.19 lcc12-fpc3 141.0.0.20 lcc12-fpc4 141.0.0.21 lcc12-fpc5 141.0.0.22 lcc12-fpc6 141.0.0.23 lcc12-fpc7 141.0.0.48 lcc12-spmb0 141.0.0.49 lcc12-spmb1 #LCC 12 (or MEMBER 12 on Virtual Chassis) 141.0.0.1 lcc12-master member12-master 141.0.0.4 lcc12-re0 member12-re0 141.0.0.5 lcc12-re1 member12-re1 141.0.0.6 lcc12-backup member12-backup 141.0.0.16 member12-fpc0 141.0.0.17 member12-fpc1 141.0.0.18 member12-fpc2 141.0.0.19 member12-fpc3 141.0.0.20 member12-fpc4 141.0.0.21 member12-fpc5 141.0.0.22 member12-fpc6 141.0.0.23 member12-fpc7 141.0.0.24 member12-fpc8 141.0.0.25 member12-fpc9 141.0.0.26 member12-fpc10 141.0.0.27 member12-fpc11 141.0.0.28 member12-fpc12 141.0.0.29 member12-fpc13 141.0.0.30 member12-fpc14 141.0.0.31 member12-fpc15 142.0.0.6 lcc13-backup 142.0.0.16 lcc13-fpc0 142.0.0.17 lcc13-fpc1 142.0.0.18 lcc13-fpc2 142.0.0.19 lcc13-fpc3 142.0.0.20 lcc13-fpc4 142.0.0.21 lcc13-fpc5 142.0.0.22 lcc13-fpc6 142.0.0.23 lcc13-fpc7 142.0.0.48 lcc13-spmb0 142.0.0.49 lcc13-spmb1 #LCC 13 (or MEMBER 13 on Virtual Chassis) 142.0.0.1 lcc13-master member13-master 142.0.0.4 lcc13-re0 member13-re0 142.0.0.5 lcc13-re1 member13-re1 142.0.0.6 lcc13-backup member13-backup 142.0.0.16 member13-fpc0 142.0.0.17 member13-fpc1 142.0.0.18 member13-fpc2 142.0.0.19 member13-fpc3 142.0.0.20 member13-fpc4 142.0.0.21 member13-fpc5 142.0.0.22 member13-fpc6 142.0.0.23 member13-fpc7 142.0.0.24 member13-fpc8 142.0.0.25 member13-fpc9 142.0.0.26 member13-fpc10 142.0.0.27 member13-fpc11 142.0.0.28 member13-fpc12 142.0.0.29 member13-fpc13 142.0.0.30 member13-fpc14 142.0.0.31 member13-fpc15 143.0.0.6 lcc14-backup 143.0.0.16 lcc14-fpc0 143.0.0.17 lcc14-fpc1 143.0.0.18 lcc14-fpc2 143.0.0.19 lcc14-fpc3 143.0.0.20 lcc14-fpc4 143.0.0.21 lcc14-fpc5 143.0.0.22 lcc14-fpc6 143.0.0.23 lcc14-fpc7 143.0.0.48 lcc14-spmb0 143.0.0.49 lcc14-spmb1 #LCC 14 (or MEMBER 14 on Virtual Chassis) 143.0.0.1 lcc14-master member14-master 143.0.0.4 lcc14-re0 member14-re0 143.0.0.5 lcc14-re1 member14-re1 143.0.0.6 lcc14-backup member14-backup 143.0.0.16 member14-fpc0 143.0.0.17 member14-fpc1 143.0.0.18 member14-fpc2 143.0.0.19 member14-fpc3 143.0.0.20 member14-fpc4 143.0.0.21 member14-fpc5 143.0.0.22 member14-fpc6 143.0.0.23 member14-fpc7 143.0.0.24 member14-fpc8 143.0.0.25 member14-fpc9 143.0.0.26 member14-fpc10 143.0.0.27 member14-fpc11 143.0.0.28 member14-fpc12 143.0.0.29 member14-fpc13 143.0.0.30 member14-fpc14 143.0.0.31 member14-fpc15 144.0.0.6 lcc15-backup 144.0.0.16 lcc15-fpc0 144.0.0.17 lcc15-fpc1 144.0.0.18 lcc15-fpc2 144.0.0.19 lcc15-fpc3 144.0.0.20 lcc15-fpc4 144.0.0.21 lcc15-fpc5 144.0.0.22 lcc15-fpc6 144.0.0.23 lcc15-fpc7 144.0.0.48 lcc15-spmb0 144.0.0.49 lcc15-spmb1 #LCC 15 (or MEMBER 15 on Virtual Chassis) 144.0.0.1 lcc15-master member15-master 144.0.0.4 lcc15-re0 member15-re0 144.0.0.5 lcc15-re1 member15-re1 144.0.0.6 lcc15-backup member15-backup 144.0.0.16 member15-fpc0 144.0.0.17 member15-fpc1 144.0.0.18 member15-fpc2 144.0.0.19 member15-fpc3 144.0.0.20 member15-fpc4 144.0.0.21 member15-fpc5 144.0.0.22 member15-fpc6 144.0.0.23 member15-fpc7 144.0.0.24 member15-fpc8 144.0.0.25 member15-fpc9 144.0.0.26 member15-fpc10 144.0.0.27 member15-fpc11 144.0.0.28 member15-fpc12 144.0.0.29 member15-fpc13 144.0.0.30 member15-fpc14 144.0.0.31 member15-fpc15 #VIRT SC 161.0.0.1 sc-master 161.0.0.4 sc-re0 161.0.0.5 sc-re1 161.0.0.6 sc-backup #SFC 0 162.0.0.1 sfc0-master 162.0.0.4 sfc0-re0 162.0.0.5 sfc0-re1 162.0.0.6 sfc0-backup 162.0.0.48 sfc0-spmb0 162.0.0.49 sfc0-spmb1 #SFC 1 163.0.0.1 sfc1-master 163.0.0.4 sfc1-re0 163.0.0.5 sfc1-re1 163.0.0.6 sfc1-backup 163.0.0.48 sfc1-spmb0 163.0.0.49 sfc1-spmb1 #SFC 2 164.0.0.1 sfc2-master 164.0.0.4 sfc2-re0 164.0.0.5 sfc2-re1 164.0.0.6 sfc2-backup 164.0.0.48 sfc2-spmb0 164.0.0.49 sfc2-spmb1 #SFC 3 165.0.0.1 sfc3-master 165.0.0.4 sfc3-re0 165.0.0.5 sfc3-re1 165.0.0.6 sfc3-backup 165.0.0.48 sfc3-spmb0 165.0.0.49 sfc3-spmb1 #SFC 4 166.0.0.1 sfc4-master 166.0.0.4 sfc4-re0 166.0.0.5 sfc4-re1 166.0.0.6 sfc4-backup 166.0.0.48 sfc4-spmb0 166.0.0.49 sfc4-spmb1 #JCS 190.0.0.1 psd%d-master 190.0.0.4 psd%d-re0 190.0.0.5 psd%d-re1 190.0.0.6 psd%d-backup # Old IP address format (RT_IRS_V2) # # Single Chassis Hostnames # 10.0.0.1 master 10.0.0.4 re0 10.0.0.5 re1 # # Multi Chassis Hostnames # #SCC 10.16.0.1 scc-master 10.16.0.4 scc-re0 10.16.0.5 scc-re1 #LCC 0 10.1.0.1 lcc0-master member0-master 10.1.0.4 lcc0-re0 member0-re0 10.1.0.5 lcc0-re1 member0-re1 10.1.0.6 lcc0-backup member0-backup #LCC 1 10.2.0.1 lcc1-master member1-master 10.2.0.4 lcc1-re0 member1-re0 10.2.0.5 lcc1-re1 member1-re1 10.2.0.6 lcc1-backup member1-backup #LCC 2 10.3.0.1 lcc2-master member2-master 10.3.0.4 lcc2-re0 member2-re0 10.3.0.5 lcc2-re1 member2-re1 10.3.0.6 lcc2-backup member2-backup #LCC 3 10.4.0.1 lcc3-master member3-master 10.4.0.4 lcc3-re0 member3-re0 10.4.0.5 lcc3-re1 member3-re1 10.4.0.6 lcc3-backup member3-backup #LCC 4 10.5.0.1 lcc4-master member4-master 10.5.0.4 lcc4-re0 member4-re0 10.5.0.5 lcc4-re1 member4-re1 10.5.0.6 lcc4-backup member4-backup #LCC 5 10.6.0.1 lcc5-master member5-master 10.6.0.4 lcc5-re0 member5-re0 10.6.0.5 lcc5-re1 member5-re1 10.6.0.6 lcc5-backup member5-backup #LCC 6 10.7.0.1 lcc6-master member6-master 10.7.0.4 lcc6-re0 member6-re0 10.7.0.5 lcc6-re1 member6-re1 10.7.0.6 lcc6-backup member6-backup #LCC 7 10.8.0.1 lcc7-master member7-master 10.8.0.4 lcc7-re0 member7-re0 10.8.0.5 lcc7-re1 member7-re1 10.8.0.6 lcc7-backup member7-backup #LCC 8 10.9.0.1 lcc8-master member8-master 10.9.0.4 lcc8-re0 member8-re0 10.9.0.5 lcc8-re1 member8-re1 10.9.0.6 lcc8-backup member8-backup #LCC 9 10.10.0.1 lcc9-master member9-master 10.10.0.4 lcc9-re0 member9-re0 10.10.0.5 lcc9-re1 member9-re1 10.10.0.6 lcc9-backup member9-backup #LCC 10 10.11.0.1 lcc10-master member10-master 10.11.0.4 lcc10-re0 member10-re0 10.11.0.5 lcc10-re1 member10-re1 10.11.0.6 lcc10-backup member10-backup #LCC 11 10.12.0.1 lcc11-master member11-master 10.12.0.4 lcc11-re0 member11-re0 10.12.0.5 lcc11-re1 member11-re1 10.12.0.6 lcc11-backup member11-backup #LCC 12 10.13.0.1 lcc12-master member12-master 10.13.0.4 lcc12-re0 member12-re0 10.13.0.5 lcc12-re1 member12-re1 10.13.0.6 lcc12-backup member12-backup #LCC 13 10.14.0.1 lcc13-master member13-master 10.14.0.4 lcc13-re0 member13-re0 10.14.0.5 lcc13-re1 member13-re1 10.14.0.6 lcc13-backup member13-backup #LCC 14 10.15.0.1 lcc14-master member14-master 10.15.0.4 lcc14-re0 member14-re0 10.15.0.5 lcc14-re1 member14-re1 10.15.0.6 lcc14-backup member14-backup #LCC 15 10.16.0.1 lcc15-master member15-master 10.16.0.4 lcc15-re0 member15-re0 10.16.0.5 lcc15-re1 member15-re1 10.16.0.6 lcc15-backup member15-backup #SFC 0 10.34.0.1 sfc0-master 10.34.0.4 sfc0-re0 10.34.0.5 sfc0-re1 #SFC 1 10.35.0.1 sfc1-master 10.35.0.4 sfc1-re0 10.35.0.5 sfc1-re1 #SFC 2 10.36.0.1 sfc2-master 10.36.0.4 sfc2-re0 10.36.0.5 sfc2-re1 #SFC 3 10.37.0.1 sfc3-master 10.37.0.4 sfc3-re0 10.37.0.5 sfc3-re1 #SFC 4 10.38.0.1 sfc4-master 10.38.0.4 sfc4-re0 10.38.0.5 sfc4-re1 # End of internal names py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/sw_info_ex_get-interface-information.xml000066400000000000000000000060331475361112400314120ustar00rootroot00000000000000 bme0.32768 up up inet 128.0.0.1/2 128.0.0.16/2 128.0.0.32/2 tnp 0x10 py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/sw_info_ex_get-software-information.xml000066400000000000000000000034541475361112400313100ustar00rootroot00000000000000 sw1 ex2200-c-12t-2g ex2200-c-12t-2g junos JUNOS Base OS boot [11.4R1.6] jbase JUNOS Base OS Software Suite [11.4R1.6] jkernel-ex-2200 JUNOS Kernel Software Suite [11.4R1.6] jcrypto-ex JUNOS Crypto Software Suite [11.4R1.6] jdocs-ex JUNOS Online Documentation [11.4R1.6] jswitch-ex JUNOS Enterprise Software Suite [11.4R1.6] jpfe-ex22x JUNOS Packet Forwarding Engine Enterprise Software Suite [11.4R1.6] jroute-ex JUNOS Routing Software Suite [11.4R1.6] jweb-ex JUNOS Web Management [11.4R1.6] py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/sw_info_gnf_get-software-information.xml000066400000000000000000001714531475361112400314530ustar00rootroot00000000000000 gnf7-re0 mgb-gnf-a mx960 mx960 18.4-20180707_dev_common.0 os-kernel JUNOS OS Kernel 64-bit [20180621.191151_fbsd-builder_stable_11] os-libs JUNOS OS libs [20180621.191151_fbsd-builder_stable_11] os-runtime JUNOS OS runtime [20180621.191151_fbsd-builder_stable_11] zoneinfo JUNOS OS time zone information [20180621.191151_fbsd-builder_stable_11] netstack JUNOS network stack and utilities [20180707.044806_builder_dev_common] junos-libs JUNOS libs [20180707.044806_builder_dev_common] os-libs-compat32 JUNOS OS libs compat32 [20180621.191151_fbsd-builder_stable_11] os-compat32 JUNOS OS 32-bit compatibility [20180621.191151_fbsd-builder_stable_11] junos-libs-compat32 JUNOS libs compat32 [20180707.044806_builder_dev_common] junos-runtime JUNOS runtime [20180707.044806_builder_dev_common] vmguest Junos vmguest package [20180707.044806_builder_dev_common] sflow-platform JUNOS sflow mx [20180707.044806_builder_dev_common] py-extensions JUNOS py extensions [20180707.044806_builder_dev_common] py-base JUNOS py base [20180707.044806_builder_dev_common] os-vmguest JUNOS OS vmguest [20180621.191151_fbsd-builder_stable_11] os-crypto JUNOS OS crypto [20180621.191151_fbsd-builder_stable_11] na-telemetry JUNOS na telemetry [18.4-20180707_dev_common.0] junos-secintel JUNOS Security Intelligence [20180707.044806_builder_dev_common] junos-libs-compat32-platform JUNOS mx libs compat32 [20180707.044806_builder_dev_common] junos-runtime-platform JUNOS mx runtime [20180707.044806_builder_dev_common] junos-platform JUNOS common platform support [20180707.044806_builder_dev_common] junos-openconfig JUNOS Openconfig [18.4-20180707_dev_common.0] junos-net-platform JUNOS mtx network modules [20180707.044806_builder_dev_common] junos-modules JUNOS modules [20180707.044806_builder_dev_common] junos-modules-platform JUNOS mx modules [20180707.044806_builder_dev_common] junos-libs-platform JUNOS mx libs [20180707.044806_builder_dev_common] junos-jsqlsync JUNOS SQL Sync Daemon [20180707.044806_builder_dev_common] junos-dp-crypto-support-platform JUNOS mtx Data Plane Crypto Support [20180707.044806_builder_dev_common] junos-daemons JUNOS daemons [20180707.044806_builder_dev_common] junos-daemons-platform JUNOS mx daemons [20180707.044806_builder_dev_common] jservices-urlf JUNOS Services URL Filter package [20180707.044806_builder_dev_common] jservices-traffic-dird JUNOS Services TLB Service PIC package [20180707.044806_builder_dev_common] jservices-telemetry JUNOS Services Telemetry [20180707.044806_builder_dev_common] jservices-ssl JUNOS Services SSL [20180707.044806_builder_dev_common] jservices-softwire JUNOS Services SOFTWIRE [20180707.044806_builder_dev_common] jservices-sfw JUNOS Services Stateful Firewall [20180707.044806_builder_dev_common] jservices-rpm JUNOS Services RPM [20180707.044806_builder_dev_common] jservices-pcef JUNOS Services PCEF package [20180707.044806_builder_dev_common] jservices-nat JUNOS Services NAT [20180707.044806_builder_dev_common] jservices-mss JUNOS Services Mobile Subscriber Service Container package [20180707.044806_builder_dev_common] jservices-mobile JUNOS Services MobileNext Software package [20180707.044806_builder_dev_common] jservices-lrf JUNOS Services Logging Report Framework package [20180707.044806_builder_dev_common] jservices-llpdf JUNOS Services LL-PDF Container package [20180707.044806_builder_dev_common] jservices-jflow JUNOS Services Jflow Container package [20180707.044806_builder_dev_common] jservices-jdpi JUNOS Services Deep Packet Inspection package [20180707.044806_builder_dev_common] jservices-ipsec JUNOS Services IPSec [20180707.044806_builder_dev_common] jservices-ids JUNOS Services IDS [20180707.044806_builder_dev_common] jservices-idp JUNOS IDP Services [20180707.044806_builder_dev_common] jservices-hcm JUNOS Services HTTP Content Management package [20180707.044806_builder_dev_common] jservices-fwdd JUNOS Services Flowd MS-MPC Software package [20180707.044806_builder_dev_common] jservices-crypto-base JUNOS Services Crypto [20180707.044806_builder_dev_common] jservices-cpcd JUNOS Services Captive Portal and Content Delivery Container package [20180707.044806_builder_dev_common] jservices-cos JUNOS Services COS [20180707.044806_builder_dev_common] jservices-appid JUNOS AppId Services [20180707.044806_builder_dev_common] jservices-alg JUNOS Services Application Level Gateways [20180707.044806_builder_dev_common] jservices-aacl JUNOS Services AACL Container package [20180707.044806_builder_dev_common] jsdn JUNOS SDN Software Suite [20180707.044806_builder_dev_common] jsd-jet-1 JUNOS Extension Toolkit [20180707.044806_builder_dev_common] jpfe-wrlinux JUNOS Packet Forwarding Engine Support (wrlinux) [20180707.044806_builder_dev_common] jpfe-platform JUNOS Packet Forwarding Engine Support (MX/EX92XX Common) [20180707.044806_builder_dev_common] jpfe-common JUNOS Packet Forwarding Engine Support (M/T Common) [20180707.044806_builder_dev_common] jpfe-X JUNOS Packet Forwarding Engine Support (MX Common) [20180707.044806_builder_dev_common] jinsight JUNOS J-Insight [20180707.044806_builder_dev_common] jfirmware JUNOS jfirmware [20180707.044806_builder_dev_common] jdocs JUNOS Online Documentation [20180707.044806_builder_dev_common] jail-runtime JUNOS jail runtime [20180621.191151_fbsd-builder_stable_11] gnf7-re1 mgb-gnf-a1 mx960 mx960 18.4-20180707_dev_common.0 os-kernel JUNOS OS Kernel 64-bit [20180621.191151_fbsd-builder_stable_11] os-libs JUNOS OS libs [20180621.191151_fbsd-builder_stable_11] os-runtime JUNOS OS runtime [20180621.191151_fbsd-builder_stable_11] zoneinfo JUNOS OS time zone information [20180621.191151_fbsd-builder_stable_11] netstack JUNOS network stack and utilities [20180707.044806_builder_dev_common] junos-libs JUNOS libs [20180707.044806_builder_dev_common] os-libs-compat32 JUNOS OS libs compat32 [20180621.191151_fbsd-builder_stable_11] os-compat32 JUNOS OS 32-bit compatibility [20180621.191151_fbsd-builder_stable_11] junos-libs-compat32 JUNOS libs compat32 [20180707.044806_builder_dev_common] junos-runtime JUNOS runtime [20180707.044806_builder_dev_common] vmguest Junos vmguest package [20180707.044806_builder_dev_common] sflow-platform JUNOS sflow mx [20180707.044806_builder_dev_common] py-extensions JUNOS py extensions [20180707.044806_builder_dev_common] py-base JUNOS py base [20180707.044806_builder_dev_common] os-vmguest JUNOS OS vmguest [20180621.191151_fbsd-builder_stable_11] os-crypto JUNOS OS crypto [20180621.191151_fbsd-builder_stable_11] na-telemetry JUNOS na telemetry [18.4-20180707_dev_common.0] junos-secintel JUNOS Security Intelligence [20180707.044806_builder_dev_common] junos-libs-compat32-platform JUNOS mx libs compat32 [20180707.044806_builder_dev_common] junos-runtime-platform JUNOS mx runtime [20180707.044806_builder_dev_common] junos-platform JUNOS common platform support [20180707.044806_builder_dev_common] junos-openconfig JUNOS Openconfig [18.4-20180707_dev_common.0] junos-net-platform JUNOS mtx network modules [20180707.044806_builder_dev_common] junos-modules JUNOS modules [20180707.044806_builder_dev_common] junos-modules-platform JUNOS mx modules [20180707.044806_builder_dev_common] junos-libs-platform JUNOS mx libs [20180707.044806_builder_dev_common] junos-jsqlsync JUNOS SQL Sync Daemon [20180707.044806_builder_dev_common] junos-dp-crypto-support-platform JUNOS mtx Data Plane Crypto Support [20180707.044806_builder_dev_common] junos-daemons JUNOS daemons [20180707.044806_builder_dev_common] junos-daemons-platform JUNOS mx daemons [20180707.044806_builder_dev_common] jservices-urlf JUNOS Services URL Filter package [20180707.044806_builder_dev_common] jservices-traffic-dird JUNOS Services TLB Service PIC package [20180707.044806_builder_dev_common] jservices-telemetry JUNOS Services Telemetry [20180707.044806_builder_dev_common] jservices-ssl JUNOS Services SSL [20180707.044806_builder_dev_common] jservices-softwire JUNOS Services SOFTWIRE [20180707.044806_builder_dev_common] jservices-sfw JUNOS Services Stateful Firewall [20180707.044806_builder_dev_common] jservices-rpm JUNOS Services RPM [20180707.044806_builder_dev_common] jservices-pcef JUNOS Services PCEF package [20180707.044806_builder_dev_common] jservices-nat JUNOS Services NAT [20180707.044806_builder_dev_common] jservices-mss JUNOS Services Mobile Subscriber Service Container package [20180707.044806_builder_dev_common] jservices-mobile JUNOS Services MobileNext Software package [20180707.044806_builder_dev_common] jservices-lrf JUNOS Services Logging Report Framework package [20180707.044806_builder_dev_common] jservices-llpdf JUNOS Services LL-PDF Container package [20180707.044806_builder_dev_common] jservices-jflow JUNOS Services Jflow Container package [20180707.044806_builder_dev_common] jservices-jdpi JUNOS Services Deep Packet Inspection package [20180707.044806_builder_dev_common] jservices-ipsec JUNOS Services IPSec [20180707.044806_builder_dev_common] jservices-ids JUNOS Services IDS [20180707.044806_builder_dev_common] jservices-idp JUNOS IDP Services [20180707.044806_builder_dev_common] jservices-hcm JUNOS Services HTTP Content Management package [20180707.044806_builder_dev_common] jservices-fwdd JUNOS Services Flowd MS-MPC Software package [20180707.044806_builder_dev_common] jservices-crypto-base JUNOS Services Crypto [20180707.044806_builder_dev_common] jservices-cpcd JUNOS Services Captive Portal and Content Delivery Container package [20180707.044806_builder_dev_common] jservices-cos JUNOS Services COS [20180707.044806_builder_dev_common] jservices-appid JUNOS AppId Services [20180707.044806_builder_dev_common] jservices-alg JUNOS Services Application Level Gateways [20180707.044806_builder_dev_common] jservices-aacl JUNOS Services AACL Container package [20180707.044806_builder_dev_common] jsdn JUNOS SDN Software Suite [20180707.044806_builder_dev_common] jsd-jet-1 JUNOS Extension Toolkit [20180707.044806_builder_dev_common] jpfe-wrlinux JUNOS Packet Forwarding Engine Support (wrlinux) [20180707.044806_builder_dev_common] jpfe-platform JUNOS Packet Forwarding Engine Support (MX/EX92XX Common) [20180707.044806_builder_dev_common] jpfe-common JUNOS Packet Forwarding Engine Support (M/T Common) [20180707.044806_builder_dev_common] jpfe-X JUNOS Packet Forwarding Engine Support (MX Common) [20180707.044806_builder_dev_common] jinsight JUNOS J-Insight [20180707.044806_builder_dev_common] jfirmware JUNOS jfirmware [20180707.044806_builder_dev_common] jdocs JUNOS Online Documentation [20180707.044806_builder_dev_common] jail-runtime JUNOS jail runtime [20180621.191151_fbsd-builder_stable_11] bsys-re0 mgb-dvaita-mx960-a mx960 mx960 18.4-20180723_dev_common.0 os-kernel JUNOS OS Kernel 64-bit [20180713.165527_fbsd-builder_stable_11] os-libs JUNOS OS libs [20180713.165527_fbsd-builder_stable_11] os-runtime JUNOS OS runtime [20180713.165527_fbsd-builder_stable_11] zoneinfo JUNOS OS time zone information [20180713.165527_fbsd-builder_stable_11] netstack JUNOS network stack and utilities [20180723.001947_builder_dev_common] junos-libs JUNOS libs [20180723.001947_builder_dev_common] os-libs-compat32 JUNOS OS libs compat32 [20180713.165527_fbsd-builder_stable_11] os-compat32 JUNOS OS 32-bit compatibility [20180713.165527_fbsd-builder_stable_11] junos-libs-compat32 JUNOS libs compat32 [20180723.001947_builder_dev_common] junos-runtime JUNOS runtime [20180723.001947_builder_dev_common] vmguest Junos vmguest package [20180723.001947_builder_dev_common] sflow-platform JUNOS sflow mx [20180723.001947_builder_dev_common] py-extensions JUNOS py extensions [20180723.001947_builder_dev_common] py-base JUNOS py base [20180723.001947_builder_dev_common] os-vmguest JUNOS OS vmguest [20180713.165527_fbsd-builder_stable_11] os-crypto JUNOS OS crypto [20180713.165527_fbsd-builder_stable_11] na-telemetry JUNOS na telemetry [18.4-20180723_dev_common.0] junos-secintel JUNOS Security Intelligence [20180723.001947_builder_dev_common] junos-libs-compat32-platform JUNOS mx libs compat32 [20180723.001947_builder_dev_common] junos-runtime-platform JUNOS mx runtime [20180723.001947_builder_dev_common] junos-platform JUNOS common platform support [20180723.001947_builder_dev_common] junos-openconfig JUNOS Openconfig [18.4-20180723_dev_common.0] junos-net-platform JUNOS mtx network modules [20180723.001947_builder_dev_common] junos-modules JUNOS modules [20180723.001947_builder_dev_common] junos-modules-platform JUNOS mx modules [20180723.001947_builder_dev_common] junos-libs-platform JUNOS mx libs [20180723.001947_builder_dev_common] junos-jsqlsync JUNOS SQL Sync Daemon [20180723.001947_builder_dev_common] junos-dp-crypto-support-platform JUNOS mtx Data Plane Crypto Support [20180723.001947_builder_dev_common] junos-daemons JUNOS daemons [20180723.001947_builder_dev_common] junos-daemons-platform JUNOS mx daemons [20180723.001947_builder_dev_common] jservices-urlf JUNOS Services URL Filter package [20180723.001947_builder_dev_common] jservices-traffic-dird JUNOS Services TLB Service PIC package [20180723.001947_builder_dev_common] jservices-telemetry JUNOS Services Telemetry [20180723.001947_builder_dev_common] jservices-ssl JUNOS Services SSL [20180723.001947_builder_dev_common] jservices-softwire JUNOS Services SOFTWIRE [20180723.001947_builder_dev_common] jservices-sfw JUNOS Services Stateful Firewall [20180723.001947_builder_dev_common] jservices-rpm JUNOS Services RPM [20180723.001947_builder_dev_common] jservices-pcef JUNOS Services PCEF package [20180723.001947_builder_dev_common] jservices-nat JUNOS Services NAT [20180723.001947_builder_dev_common] jservices-mss JUNOS Services Mobile Subscriber Service Container package [20180723.001947_builder_dev_common] jservices-mobile JUNOS Services MobileNext Software package [20180723.001947_builder_dev_common] jservices-lrf JUNOS Services Logging Report Framework package [20180723.001947_builder_dev_common] jservices-llpdf JUNOS Services LL-PDF Container package [20180723.001947_builder_dev_common] jservices-jflow JUNOS Services Jflow Container package [20180723.001947_builder_dev_common] jservices-jdpi JUNOS Services Deep Packet Inspection package [20180723.001947_builder_dev_common] jservices-ipsec JUNOS Services IPSec [20180723.001947_builder_dev_common] jservices-ids JUNOS Services IDS [20180723.001947_builder_dev_common] jservices-idp JUNOS IDP Services [20180723.001947_builder_dev_common] jservices-hcm JUNOS Services HTTP Content Management package [20180723.001947_builder_dev_common] jservices-fwdd JUNOS Services Flowd MS-MPC Software package [20180723.001947_builder_dev_common] jservices-crypto-base JUNOS Services Crypto [20180723.001947_builder_dev_common] jservices-cpcd JUNOS Services Captive Portal and Content Delivery Container package [20180723.001947_builder_dev_common] jservices-cos JUNOS Services COS [20180723.001947_builder_dev_common] jservices-appid JUNOS AppId Services [20180723.001947_builder_dev_common] jservices-alg JUNOS Services Application Level Gateways [20180723.001947_builder_dev_common] jservices-aacl JUNOS Services AACL Container package [20180723.001947_builder_dev_common] jsdn JUNOS SDN Software Suite [20180723.001947_builder_dev_common] jsd-jet-1 JUNOS Extension Toolkit [20180723.001947_builder_dev_common] jpfe-wrlinux JUNOS Packet Forwarding Engine Support (wrlinux) [20180723.001947_builder_dev_common] jpfe-platform JUNOS Packet Forwarding Engine Support (MX/EX92XX Common) [20180723.001947_builder_dev_common] jpfe-common JUNOS Packet Forwarding Engine Support (M/T Common) [20180723.001947_builder_dev_common] jpfe-X JUNOS Packet Forwarding Engine Support (MX Common) [20180723.001947_builder_dev_common] jinsight JUNOS J-Insight [20180723.001947_builder_dev_common] jfirmware JUNOS jfirmware [20180723.001947_builder_dev_common] jdocs JUNOS Online Documentation [20180723.001947_builder_dev_common] jail-runtime JUNOS jail runtime [20180713.165527_fbsd-builder_stable_11] bsys-re1 mgb-dvaita-mx960-a1 mx960 mx960 18.4-20180723_dev_common.0 os-kernel JUNOS OS Kernel 64-bit [20180713.165527_fbsd-builder_stable_11] os-libs JUNOS OS libs [20180713.165527_fbsd-builder_stable_11] os-runtime JUNOS OS runtime [20180713.165527_fbsd-builder_stable_11] zoneinfo JUNOS OS time zone information [20180713.165527_fbsd-builder_stable_11] netstack JUNOS network stack and utilities [20180723.001947_builder_dev_common] junos-libs JUNOS libs [20180723.001947_builder_dev_common] os-libs-compat32 JUNOS OS libs compat32 [20180713.165527_fbsd-builder_stable_11] os-compat32 JUNOS OS 32-bit compatibility [20180713.165527_fbsd-builder_stable_11] junos-libs-compat32 JUNOS libs compat32 [20180723.001947_builder_dev_common] junos-runtime JUNOS runtime [20180723.001947_builder_dev_common] vmguest Junos vmguest package [20180723.001947_builder_dev_common] sflow-platform JUNOS sflow mx [20180723.001947_builder_dev_common] py-extensions JUNOS py extensions [20180723.001947_builder_dev_common] py-base JUNOS py base [20180723.001947_builder_dev_common] os-vmguest JUNOS OS vmguest [20180713.165527_fbsd-builder_stable_11] os-crypto JUNOS OS crypto [20180713.165527_fbsd-builder_stable_11] na-telemetry JUNOS na telemetry [18.4-20180723_dev_common.0] junos-secintel JUNOS Security Intelligence [20180723.001947_builder_dev_common] junos-libs-compat32-platform JUNOS mx libs compat32 [20180723.001947_builder_dev_common] junos-runtime-platform JUNOS mx runtime [20180723.001947_builder_dev_common] junos-platform JUNOS common platform support [20180723.001947_builder_dev_common] junos-openconfig JUNOS Openconfig [18.4-20180723_dev_common.0] junos-net-platform JUNOS mtx network modules [20180723.001947_builder_dev_common] junos-modules JUNOS modules [20180723.001947_builder_dev_common] junos-modules-platform JUNOS mx modules [20180723.001947_builder_dev_common] junos-libs-platform JUNOS mx libs [20180723.001947_builder_dev_common] junos-jsqlsync JUNOS SQL Sync Daemon [20180723.001947_builder_dev_common] junos-dp-crypto-support-platform JUNOS mtx Data Plane Crypto Support [20180723.001947_builder_dev_common] junos-daemons JUNOS daemons [20180723.001947_builder_dev_common] junos-daemons-platform JUNOS mx daemons [20180723.001947_builder_dev_common] jservices-urlf JUNOS Services URL Filter package [20180723.001947_builder_dev_common] jservices-traffic-dird JUNOS Services TLB Service PIC package [20180723.001947_builder_dev_common] jservices-telemetry JUNOS Services Telemetry [20180723.001947_builder_dev_common] jservices-ssl JUNOS Services SSL [20180723.001947_builder_dev_common] jservices-softwire JUNOS Services SOFTWIRE [20180723.001947_builder_dev_common] jservices-sfw JUNOS Services Stateful Firewall [20180723.001947_builder_dev_common] jservices-rpm JUNOS Services RPM [20180723.001947_builder_dev_common] jservices-pcef JUNOS Services PCEF package [20180723.001947_builder_dev_common] jservices-nat JUNOS Services NAT [20180723.001947_builder_dev_common] jservices-mss JUNOS Services Mobile Subscriber Service Container package [20180723.001947_builder_dev_common] jservices-mobile JUNOS Services MobileNext Software package [20180723.001947_builder_dev_common] jservices-lrf JUNOS Services Logging Report Framework package [20180723.001947_builder_dev_common] jservices-llpdf JUNOS Services LL-PDF Container package [20180723.001947_builder_dev_common] jservices-jflow JUNOS Services Jflow Container package [20180723.001947_builder_dev_common] jservices-jdpi JUNOS Services Deep Packet Inspection package [20180723.001947_builder_dev_common] jservices-ipsec JUNOS Services IPSec [20180723.001947_builder_dev_common] jservices-ids JUNOS Services IDS [20180723.001947_builder_dev_common] jservices-idp JUNOS IDP Services [20180723.001947_builder_dev_common] jservices-hcm JUNOS Services HTTP Content Management package [20180723.001947_builder_dev_common] jservices-fwdd JUNOS Services Flowd MS-MPC Software package [20180723.001947_builder_dev_common] jservices-crypto-base JUNOS Services Crypto [20180723.001947_builder_dev_common] jservices-cpcd JUNOS Services Captive Portal and Content Delivery Container package [20180723.001947_builder_dev_common] jservices-cos JUNOS Services COS [20180723.001947_builder_dev_common] jservices-appid JUNOS AppId Services [20180723.001947_builder_dev_common] jservices-alg JUNOS Services Application Level Gateways [20180723.001947_builder_dev_common] jservices-aacl JUNOS Services AACL Container package [20180723.001947_builder_dev_common] jsdn JUNOS SDN Software Suite [20180723.001947_builder_dev_common] jsd-jet-1 JUNOS Extension Toolkit [20180723.001947_builder_dev_common] jpfe-wrlinux JUNOS Packet Forwarding Engine Support (wrlinux) [20180723.001947_builder_dev_common] jpfe-platform JUNOS Packet Forwarding Engine Support (MX/EX92XX Common) [20180723.001947_builder_dev_common] jpfe-common JUNOS Packet Forwarding Engine Support (M/T Common) [20180723.001947_builder_dev_common] jpfe-X JUNOS Packet Forwarding Engine Support (MX Common) [20180723.001947_builder_dev_common] jinsight JUNOS J-Insight [20180723.001947_builder_dev_common] jfirmware JUNOS jfirmware [20180723.001947_builder_dev_common] jdocs JUNOS Online Documentation [20180723.001947_builder_dev_common] jail-runtime JUNOS jail runtime [20180713.165527_fbsd-builder_stable_11] py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/sw_info_jdm_get-software-information.xml000066400000000000000000000054511475361112400314450ustar00rootroot00000000000000 server0 jdm junos_node_slicing pvi-model Server slot Server slot : 0 JDM package version JDM package version : 1.0 JUNOS version JUNOS version : 17.4-20170718_dev_common.1-secure Host Software Host Software [Red Hat Enterprise Linux] JDM container Software JDM container Software [Ubuntu 14.04.1 LTS] server1 jdm1 junos_node_slicing pvi-model Server slot Server slot : 1 JDM package version JDM package version : 1.0 JUNOS version JUNOS version : 17.4-20170718_dev_common.1-secure Host Software Host Software [Red Hat Enterprise Linux] JDM container Software JDM container Software [Ubuntu 14.04.1 LTS] py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/sw_info_nfx_get-software-information.xml000066400000000000000000000106321475361112400314630ustar00rootroot00000000000000 jdm nfx250_s2_10_t nfx250_s2_10_t JUNOS Host Software JUNOS Host Software [3.14.61-rt58-WR7.0.0.13_ovp:3.0.2] Junos Host Software package[1] JUNOS Host nfx-2 control-plane flex package [15.1X53-D45.3] Junos Host Software package[2] JUNOS Host nfx-2 platform package [15.1X53-D45.3] Junos Host Software package[3] JUNOS Host nfx-2 base package [15.1X53-D45.3] Junos Host Software package[4] JUNOS Host nfx-2 data-plane package [15.1X53-D45.3] Junos Host Software package[5] JUNOS Host qfx-jdm package [15.1X53-D45.3] KERNEL KERNEL (null) MGD 15 1 I 0 dc-builder 2016-11-16 14:00:34 UTC 15.1X53-D45.3.secure [dc-builder] 0 0 0 0 0 0 0 0 0 SDXD 15 1 I 0 dc-builder 2016-11-16 14:01:02 UTC 15.1X53-D45.3.secure [dc-builder] jdm-actions-dd 15 1 I 0 dc-builder 2016-11-16 13:53:02 UTC 15.1X53-D45.3.secure [dc-builder] jdmd-actions-dd 15 1 I 0 dc-builder 2016-11-16 13:53:06 UTC 15.1X53-D45.3.secure [dc-builder] py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/sw_info_no_version_file-show.xml000066400000000000000000000754711475361112400300300ustar00rootroot00000000000000 #$Id: hosts.junos,v 1.7.72.1 2009-04-16 05:22:03 kdickman Exp $ # # File mapping AF_INET/AF_INET6 hostnames for REs on Single and Multichassis # systems # # This file is looked at before /etc/hosts by gethostbyname(3), # gethostbyname2(3) and getaddrinfo(3) # # The IP addresses in this file are only used for communication between REs # over the Internal Routing Instances # # WARNING: # # The names in this file are effectively reserved for internal use. # # New IP address format (RT_IRS_V3) # # Single Chassis Hostnames # 128.0.0.1 master 128.0.0.1 node 128.0.0.1 fwdd 128.0.0.1 member 128.0.0.1 pfem 128.0.0.2 scb 128.0.0.2 sbr 128.0.0.2 ssb 128.0.0.2 feb 128.0.0.2 cfeb0 128.0.0.2 cfeb 128.0.0.2 cpp0 128.0.0.3 cfeb1 128.0.0.3 cpp1 128.0.0.4 re0 128.0.0.5 re1 128.0.0.6 backup 128.0.0.8 sfm0 128.0.0.9 sfm1 128.0.0.10 sfm2 128.0.0.16 fpc0 128.0.0.17 fpc1 128.0.0.18 fpc2 128.0.0.19 fpc3 128.0.0.20 fpc4 128.0.0.21 fpc5 128.0.0.22 fpc6 128.0.0.23 fpc7 128.0.0.24 fpc8 128.0.0.25 fpc9 128.0.0.26 fpc10 128.0.0.27 fpc11 128.0.0.28 fpc12 128.0.0.29 fpc13 128.0.0.30 fpc14 128.0.0.31 fpc15 128.0.0.32 feb0 128.0.0.32 fpc16 128.0.0.33 feb1 128.0.0.33 fpc17 128.0.0.34 feb2 128.0.0.34 fpc18 128.0.0.35 feb3 128.0.0.35 fpc19 128.0.0.36 feb4 128.0.0.37 feb5 128.0.0.48 spmb0 128.0.0.49 spmb1 128.0.0.50 tfeb0 128.0.1.16 fpc0.pic0 128.0.1.17 fpc1.pic0 128.0.1.18 fpc2.pic0 128.0.1.19 fpc3.pic0 128.0.1.20 fpc4.pic0 128.0.1.21 fpc5.pic0 128.0.1.22 fpc6.pic0 128.0.1.23 fpc7.pic0 128.0.1.24 fpc8.pic0 128.0.1.25 fpc9.pic0 128.0.1.26 fpc10.pic0 128.0.1.27 fpc11.pic0 128.0.1.28 fpc12.pic0 128.0.1.29 fpc13.pic0 128.0.1.30 fpc14.pic0 128.0.1.31 fpc15.pic0 128.0.2.16 fpc0.pic1 128.0.2.17 fpc1.pic1 128.0.2.18 fpc2.pic1 128.0.2.19 fpc3.pic1 128.0.2.20 fpc4.pic1 128.0.2.21 fpc5.pic1 128.0.2.22 fpc6.pic1 128.0.2.23 fpc7.pic1 128.0.2.24 fpc8.pic1 128.0.2.25 fpc9.pic1 128.0.2.26 fpc10.pic1 128.0.2.27 fpc11.pic1 128.0.2.28 fpc12.pic1 128.0.2.29 fpc13.pic1 128.0.2.30 fpc14.pic1 128.0.2.31 fpc15.pic1 128.0.3.16 fpc0.pic2 128.0.3.17 fpc1.pic2 128.0.3.18 fpc2.pic2 128.0.3.19 fpc3.pic2 128.0.3.20 fpc4.pic2 128.0.3.21 fpc5.pic2 128.0.3.22 fpc6.pic2 128.0.3.23 fpc7.pic2 128.0.3.24 fpc8.pic2 128.0.3.25 fpc9.pic2 128.0.3.26 fpc10.pic2 128.0.3.27 fpc11.pic2 128.0.3.28 fpc12.pic2 128.0.3.29 fpc13.pic2 128.0.3.30 fpc14.pic2 128.0.3.31 fpc15.pic2 128.0.4.16 fpc0.pic3 128.0.4.17 fpc1.pic3 128.0.4.18 fpc2.pic3 128.0.4.19 fpc3.pic3 128.0.4.20 fpc4.pic3 128.0.4.21 fpc5.pic3 128.0.4.22 fpc6.pic3 128.0.4.23 fpc7.pic3 128.0.4.24 fpc8.pic3 128.0.4.25 fpc9.pic3 128.0.4.26 fpc10.pic3 128.0.4.27 fpc11.pic3 128.0.4.28 fpc12.pic3 128.0.4.29 fpc13.pic3 128.0.4.30 fpc14.pic3 128.0.4.31 fpc15.pic3 # # DCF-Root Hostname # 128.0.130.2 dcf-root # # Multi Chassis Hostnames # #SCC 144.0.0.1 scc-master 144.0.0.4 scc-re0 144.0.0.5 scc-re1 144.0.0.6 scc-backup 144.0.0.48 scc-spmb0 144.0.0.49 scc-spmb1 #LCC 0 (or MEMBER 0 on Virtual Chassis) 129.0.0.1 lcc0-master member0-master member0 129.0.0.4 lcc0-re0 member0-re0 129.0.0.5 lcc0-re1 member0-re1 129.0.0.6 lcc0-backup member0-backup 129.0.0.16 member0-fpc0 129.0.0.17 member0-fpc1 129.0.0.18 member0-fpc2 129.0.0.19 member0-fpc3 129.0.0.20 member0-fpc4 129.0.0.21 member0-fpc5 129.0.0.22 member0-fpc6 129.0.0.23 member0-fpc7 129.0.0.24 member0-fpc8 129.0.0.25 member0-fpc9 129.0.0.26 member0-fpc10 129.0.0.27 member0-fpc11 129.0.0.28 member0-fpc12 129.0.0.29 member0-fpc13 129.0.0.30 member0-fpc14 129.0.0.31 member0-fpc15 129.0.0.6 lcc0-backup 129.0.0.16 lcc0-fpc0 129.0.0.17 lcc0-fpc1 129.0.0.18 lcc0-fpc2 129.0.0.19 lcc0-fpc3 129.0.0.20 lcc0-fpc4 129.0.0.21 lcc0-fpc5 129.0.0.22 lcc0-fpc6 129.0.0.23 lcc0-fpc7 129.0.0.48 lcc0-spmb0 129.0.0.49 lcc0-spmb1 #LCC 1 (or MEMBER 1 on Virtual Chassis) 130.0.0.1 lcc1-master member1-master member1 130.0.0.4 lcc1-re0 member1-re0 130.0.0.5 lcc1-re1 member1-re1 130.0.0.6 lcc1-backup member1-backup 130.0.0.16 member1-fpc0 130.0.0.17 member1-fpc1 130.0.0.18 member1-fpc2 130.0.0.19 member1-fpc3 130.0.0.20 member1-fpc4 130.0.0.21 member1-fpc5 130.0.0.22 member1-fpc6 130.0.0.23 member1-fpc7 130.0.0.24 member1-fpc8 130.0.0.25 member1-fpc9 130.0.0.26 member1-fpc10 130.0.0.27 member1-fpc11 130.0.0.28 member1-fpc12 130.0.0.29 member1-fpc13 130.0.0.30 member1-fpc14 130.0.0.31 member1-fpc15 130.0.0.6 lcc1-backup 130.0.0.16 lcc1-fpc0 130.0.0.17 lcc1-fpc1 130.0.0.18 lcc1-fpc2 130.0.0.19 lcc1-fpc3 130.0.0.20 lcc1-fpc4 130.0.0.21 lcc1-fpc5 130.0.0.22 lcc1-fpc6 130.0.0.23 lcc1-fpc7 130.0.0.48 lcc1-spmb0 130.0.0.49 lcc1-spmb1 #LCC 2 (or MEMBER 2 on Virtual Chassis) 131.0.0.1 lcc2-master member2-master member2 131.0.0.4 lcc2-re0 member2-re0 131.0.0.5 lcc2-re1 member2-re1 131.0.0.6 lcc2-backup member2-backup 131.0.0.16 member2-fpc0 131.0.0.17 member2-fpc1 131.0.0.18 member2-fpc2 131.0.0.19 member2-fpc3 131.0.0.20 member2-fpc4 131.0.0.21 member2-fpc5 131.0.0.22 member2-fpc6 131.0.0.23 member2-fpc7 131.0.0.24 member2-fpc8 131.0.0.25 member2-fpc9 131.0.0.26 member2-fpc10 131.0.0.27 member2-fpc11 131.0.0.28 member2-fpc12 131.0.0.29 member2-fpc13 131.0.0.30 member2-fpc14 131.0.0.31 member2-fpc15 131.0.0.6 lcc2-backup 131.0.0.16 lcc2-fpc0 131.0.0.17 lcc2-fpc1 131.0.0.18 lcc2-fpc2 131.0.0.19 lcc2-fpc3 131.0.0.20 lcc2-fpc4 131.0.0.21 lcc2-fpc5 131.0.0.22 lcc2-fpc6 131.0.0.23 lcc2-fpc7 131.0.0.48 lcc2-spmb0 131.0.0.49 lcc20-spmb1 #LCC 3 (or MEMBER 3 on Virtual Chassis) 132.0.0.1 lcc3-master member3-master member3 132.0.0.4 lcc3-re0 member3-re0 132.0.0.5 lcc3-re1 member3-re1 132.0.0.6 lcc3-backup member3-backup 132.0.0.16 member3-fpc0 132.0.0.17 member3-fpc1 132.0.0.18 member3-fpc2 132.0.0.19 member3-fpc3 132.0.0.20 member3-fpc4 132.0.0.21 member3-fpc5 132.0.0.22 member3-fpc6 132.0.0.23 member3-fpc7 132.0.0.24 member3-fpc8 132.0.0.25 member3-fpc9 132.0.0.26 member3-fpc10 132.0.0.27 member3-fpc11 132.0.0.28 member3-fpc12 132.0.0.29 member3-fpc13 132.0.0.30 member3-fpc14 132.0.0.31 member3-fpc15 132.0.0.6 lcc3-backup 132.0.0.16 lcc3-fpc0 132.0.0.17 lcc3-fpc1 132.0.0.18 lcc3-fpc2 132.0.0.19 lcc3-fpc3 132.0.0.20 lcc3-fpc4 132.0.0.21 lcc3-fpc5 132.0.0.22 lcc3-fpc6 132.0.0.23 lcc3-fpc7 132.0.0.48 lcc3-spmb0 132.0.0.49 lcc3-spmb1 #LCC 4 (or MEMBER 4 on Virtual Chassis) 133.0.0.1 lcc4-master member4-master member4 133.0.0.4 lcc4-re0 member4-re0 133.0.0.5 lcc4-re1 member4-re1 133.0.0.6 lcc4-backup member4-backup 133.0.0.16 member4-fpc0 133.0.0.17 member4-fpc1 133.0.0.18 member4-fpc2 133.0.0.19 member4-fpc3 133.0.0.20 member4-fpc4 133.0.0.21 member4-fpc5 133.0.0.22 member4-fpc6 133.0.0.23 member4-fpc7 133.0.0.24 member4-fpc8 133.0.0.25 member4-fpc9 133.0.0.26 member4-fpc10 133.0.0.27 member4-fpc11 133.0.0.28 member4-fpc12 133.0.0.29 member4-fpc13 133.0.0.30 member4-fpc14 133.0.0.31 member4-fpc15 133.0.0.6 lcc4-backup 133.0.0.16 lcc4-fpc0 133.0.0.17 lcc4-fpc1 133.0.0.18 lcc4-fpc2 133.0.0.19 lcc4-fpc3 133.0.0.20 lcc4-fpc4 133.0.0.21 lcc4-fpc5 133.0.0.22 lcc4-fpc6 133.0.0.23 lcc4-fpc7 133.0.0.48 lcc4-spmb0 133.0.0.49 lcc4-spmb1 #LCC 5 (or MEMBER 5 on Virtual Chassis) 134.0.0.1 lcc5-master member5-master member5 134.0.0.4 lcc5-re0 member5-re0 134.0.0.5 lcc5-re1 member5-re1 134.0.0.6 lcc5-backup member5-backup 134.0.0.16 member5-fpc0 134.0.0.17 member5-fpc1 134.0.0.18 member5-fpc2 134.0.0.19 member5-fpc3 134.0.0.20 member5-fpc4 134.0.0.21 member5-fpc5 134.0.0.22 member5-fpc6 134.0.0.23 member5-fpc7 134.0.0.24 member5-fpc8 134.0.0.25 member5-fpc9 134.0.0.26 member5-fpc10 134.0.0.27 member5-fpc11 134.0.0.28 member5-fpc12 134.0.0.29 member5-fpc13 134.0.0.30 member5-fpc14 134.0.0.31 member5-fpc15 134.0.0.6 lcc5-backup 134.0.0.16 lcc5-fpc0 134.0.0.17 lcc5-fpc1 134.0.0.18 lcc5-fpc2 134.0.0.19 lcc5-fpc3 134.0.0.20 lcc5-fpc4 134.0.0.21 lcc5-fpc5 134.0.0.22 lcc5-fpc6 134.0.0.23 lcc5-fpc7 134.0.0.48 lcc5-spmb0 134.0.0.49 lcc5-spmb1 #LCC 6 (or MEMBER 6 on Virtual Chassis) 135.0.0.1 lcc6-master member6-master member6 135.0.0.4 lcc6-re0 member6-re0 135.0.0.5 lcc6-re1 member6-re1 135.0.0.6 lcc6-backup member6-backup 135.0.0.16 member6-fpc0 135.0.0.17 member6-fpc1 135.0.0.18 member6-fpc2 135.0.0.19 member6-fpc3 135.0.0.20 member6-fpc4 135.0.0.21 member6-fpc5 135.0.0.22 member6-fpc6 135.0.0.23 member6-fpc7 135.0.0.24 member6-fpc8 135.0.0.25 member6-fpc9 135.0.0.26 member6-fpc10 135.0.0.27 member6-fpc11 135.0.0.28 member6-fpc12 135.0.0.29 member6-fpc13 135.0.0.30 member6-fpc14 135.0.0.31 member6-fpc15 135.0.0.6 lcc6-backup 135.0.0.16 lcc6-fpc0 135.0.0.17 lcc6-fpc1 135.0.0.18 lcc6-fpc2 135.0.0.19 lcc6-fpc3 135.0.0.20 lcc6-fpc4 135.0.0.21 lcc6-fpc5 135.0.0.22 lcc6-fpc6 135.0.0.23 lcc6-fpc7 135.0.0.48 lcc6-spmb0 135.0.0.49 lcc6-spmb1 #LCC 7 (or MEMBER 7 on Virtual Chassis) 136.0.0.1 lcc7-master member7-master member7 136.0.0.4 lcc7-re0 member7-re0 136.0.0.5 lcc7-re1 member7-re1 136.0.0.6 lcc7-backup member7-backup 136.0.0.16 member7-fpc0 136.0.0.17 member7-fpc1 136.0.0.18 member7-fpc2 136.0.0.19 member7-fpc3 136.0.0.20 member7-fpc4 136.0.0.21 member7-fpc5 136.0.0.22 member7-fpc6 136.0.0.23 member7-fpc7 136.0.0.24 member7-fpc8 136.0.0.25 member7-fpc9 136.0.0.26 member7-fpc10 136.0.0.27 member7-fpc11 136.0.0.28 member7-fpc12 136.0.0.29 member7-fpc13 136.0.0.30 member7-fpc14 136.0.0.31 member7-fpc15 136.0.0.6 lcc7-backup 136.0.0.16 lcc7-fpc0 136.0.0.17 lcc7-fpc1 136.0.0.18 lcc7-fpc2 136.0.0.19 lcc7-fpc3 136.0.0.20 lcc7-fpc4 136.0.0.21 lcc7-fpc5 136.0.0.22 lcc7-fpc6 136.0.0.23 lcc7-fpc7 136.0.0.48 lcc7-spmb0 136.0.0.49 lcc7-spmb1 137.0.0.6 lcc8-backup 137.0.0.16 lcc8-fpc0 137.0.0.17 lcc8-fpc1 137.0.0.18 lcc8-fpc2 137.0.0.19 lcc8-fpc3 137.0.0.20 lcc8-fpc4 137.0.0.21 lcc8-fpc5 137.0.0.22 lcc8-fpc6 137.0.0.23 lcc8-fpc7 137.0.0.48 lcc8-spmb0 137.0.0.49 lcc8-spmb1 #LCC 8 (or MEMBER 8 on Virtual Chassis) 137.0.0.1 lcc8-master member8-master member8 137.0.0.4 lcc8-re0 member8-re0 137.0.0.5 lcc8-re1 member8-re1 137.0.0.6 lcc8-backup member8-backup 137.0.0.16 member8-fpc0 137.0.0.17 member8-fpc1 137.0.0.18 member8-fpc2 137.0.0.19 member8-fpc3 137.0.0.20 member8-fpc4 137.0.0.21 member8-fpc5 137.0.0.22 member8-fpc6 137.0.0.23 member8-fpc7 137.0.0.24 member8-fpc8 137.0.0.25 member8-fpc9 137.0.0.26 member8-fpc10 137.0.0.27 member8-fpc11 137.0.0.28 member8-fpc12 137.0.0.29 member8-fpc13 137.0.0.30 member8-fpc14 137.0.0.31 member8-fpc15 138.0.0.6 lcc9-backup 138.0.0.16 lcc9-fpc0 138.0.0.17 lcc9-fpc1 138.0.0.18 lcc9-fpc2 138.0.0.19 lcc9-fpc3 138.0.0.20 lcc9-fpc4 138.0.0.21 lcc9-fpc5 138.0.0.22 lcc9-fpc6 138.0.0.23 lcc9-fpc7 138.0.0.48 lcc9-spmb0 138.0.0.49 lcc9-spmb1 #LCC 9 (or MEMBER 9 on Virtual Chassis) 138.0.0.1 lcc9-master member9-master member9 138.0.0.4 lcc9-re0 member9-re0 138.0.0.5 lcc9-re1 member9-re1 138.0.0.6 lcc9-backup member9-backup 138.0.0.16 member9-fpc0 138.0.0.17 member9-fpc1 138.0.0.18 member9-fpc2 138.0.0.19 member9-fpc3 138.0.0.20 member9-fpc4 138.0.0.21 member9-fpc5 138.0.0.22 member9-fpc6 138.0.0.23 member9-fpc7 138.0.0.24 member9-fpc8 138.0.0.25 member9-fpc9 138.0.0.26 member9-fpc10 138.0.0.27 member9-fpc11 138.0.0.28 member9-fpc12 138.0.0.29 member9-fpc13 138.0.0.30 member9-fpc14 138.0.0.31 member9-fpc15 139.0.0.6 lcc10-backup 139.0.0.16 lcc10-fpc0 139.0.0.17 lcc10-fpc1 139.0.0.18 lcc10-fpc2 139.0.0.19 lcc10-fpc3 139.0.0.20 lcc10-fpc4 139.0.0.21 lcc10-fpc5 139.0.0.22 lcc10-fpc6 139.0.0.23 lcc10-fpc7 139.0.0.48 lcc10-spmb0 139.0.0.49 lcc10-spmb1 #LCC 10 (or MEMBER 10 on Virtual Chassis) 139.0.0.1 lcc10-master member10-master 139.0.0.4 lcc10-re0 member10-re0 139.0.0.5 lcc10-re1 member10-re1 139.0.0.6 lcc10-backup member10-backup 139.0.0.16 member10-fpc0 139.0.0.17 member10-fpc1 139.0.0.18 member10-fpc2 139.0.0.19 member10-fpc3 139.0.0.20 member10-fpc4 139.0.0.21 member10-fpc5 139.0.0.22 member10-fpc6 139.0.0.23 member10-fpc7 139.0.0.24 member10-fpc8 139.0.0.25 member10-fpc9 139.0.0.26 member10-fpc10 139.0.0.27 member10-fpc11 139.0.0.28 member10-fpc12 139.0.0.29 member10-fpc13 139.0.0.30 member10-fpc14 139.0.0.31 member10-fpc15 140.0.0.6 lcc11-backup 140.0.0.16 lcc11-fpc0 140.0.0.17 lcc11-fpc1 140.0.0.18 lcc11-fpc2 140.0.0.19 lcc11-fpc3 140.0.0.20 lcc11-fpc4 140.0.0.21 lcc11-fpc5 140.0.0.22 lcc11-fpc6 140.0.0.23 lcc11-fpc7 140.0.0.48 lcc11-spmb0 140.0.0.49 lcc11-spmb1 #LCC 11 (or MEMBER 11 on Virtual Chassis) 140.0.0.1 lcc11-master member11-master 140.0.0.4 lcc11-re0 member11-re0 140.0.0.5 lcc11-re1 member11-re1 140.0.0.6 lcc11-backup member11-backup 140.0.0.16 member11-fpc0 140.0.0.17 member11-fpc1 140.0.0.18 member11-fpc2 140.0.0.19 member11-fpc3 140.0.0.20 member11-fpc4 140.0.0.21 member11-fpc5 140.0.0.22 member11-fpc6 140.0.0.23 member11-fpc7 140.0.0.24 member11-fpc8 140.0.0.25 member11-fpc9 140.0.0.26 member11-fpc10 140.0.0.27 member11-fpc11 140.0.0.28 member11-fpc12 140.0.0.29 member11-fpc13 140.0.0.30 member11-fpc14 140.0.0.31 member11-fpc15 141.0.0.6 lcc12-backup 141.0.0.16 lcc12-fpc0 141.0.0.17 lcc12-fpc1 141.0.0.18 lcc12-fpc2 141.0.0.19 lcc12-fpc3 141.0.0.20 lcc12-fpc4 141.0.0.21 lcc12-fpc5 141.0.0.22 lcc12-fpc6 141.0.0.23 lcc12-fpc7 141.0.0.48 lcc12-spmb0 141.0.0.49 lcc12-spmb1 #LCC 12 (or MEMBER 12 on Virtual Chassis) 141.0.0.1 lcc12-master member12-master 141.0.0.4 lcc12-re0 member12-re0 141.0.0.5 lcc12-re1 member12-re1 141.0.0.6 lcc12-backup member12-backup 141.0.0.16 member12-fpc0 141.0.0.17 member12-fpc1 141.0.0.18 member12-fpc2 141.0.0.19 member12-fpc3 141.0.0.20 member12-fpc4 141.0.0.21 member12-fpc5 141.0.0.22 member12-fpc6 141.0.0.23 member12-fpc7 141.0.0.24 member12-fpc8 141.0.0.25 member12-fpc9 141.0.0.26 member12-fpc10 141.0.0.27 member12-fpc11 141.0.0.28 member12-fpc12 141.0.0.29 member12-fpc13 141.0.0.30 member12-fpc14 141.0.0.31 member12-fpc15 142.0.0.6 lcc13-backup 142.0.0.16 lcc13-fpc0 142.0.0.17 lcc13-fpc1 142.0.0.18 lcc13-fpc2 142.0.0.19 lcc13-fpc3 142.0.0.20 lcc13-fpc4 142.0.0.21 lcc13-fpc5 142.0.0.22 lcc13-fpc6 142.0.0.23 lcc13-fpc7 142.0.0.48 lcc13-spmb0 142.0.0.49 lcc13-spmb1 #LCC 13 (or MEMBER 13 on Virtual Chassis) 142.0.0.1 lcc13-master member13-master 142.0.0.4 lcc13-re0 member13-re0 142.0.0.5 lcc13-re1 member13-re1 142.0.0.6 lcc13-backup member13-backup 142.0.0.16 member13-fpc0 142.0.0.17 member13-fpc1 142.0.0.18 member13-fpc2 142.0.0.19 member13-fpc3 142.0.0.20 member13-fpc4 142.0.0.21 member13-fpc5 142.0.0.22 member13-fpc6 142.0.0.23 member13-fpc7 142.0.0.24 member13-fpc8 142.0.0.25 member13-fpc9 142.0.0.26 member13-fpc10 142.0.0.27 member13-fpc11 142.0.0.28 member13-fpc12 142.0.0.29 member13-fpc13 142.0.0.30 member13-fpc14 142.0.0.31 member13-fpc15 143.0.0.6 lcc14-backup 143.0.0.16 lcc14-fpc0 143.0.0.17 lcc14-fpc1 143.0.0.18 lcc14-fpc2 143.0.0.19 lcc14-fpc3 143.0.0.20 lcc14-fpc4 143.0.0.21 lcc14-fpc5 143.0.0.22 lcc14-fpc6 143.0.0.23 lcc14-fpc7 143.0.0.48 lcc14-spmb0 143.0.0.49 lcc14-spmb1 #LCC 14 (or MEMBER 14 on Virtual Chassis) 143.0.0.1 lcc14-master member14-master 143.0.0.4 lcc14-re0 member14-re0 143.0.0.5 lcc14-re1 member14-re1 143.0.0.6 lcc14-backup member14-backup 143.0.0.16 member14-fpc0 143.0.0.17 member14-fpc1 143.0.0.18 member14-fpc2 143.0.0.19 member14-fpc3 143.0.0.20 member14-fpc4 143.0.0.21 member14-fpc5 143.0.0.22 member14-fpc6 143.0.0.23 member14-fpc7 143.0.0.24 member14-fpc8 143.0.0.25 member14-fpc9 143.0.0.26 member14-fpc10 143.0.0.27 member14-fpc11 143.0.0.28 member14-fpc12 143.0.0.29 member14-fpc13 143.0.0.30 member14-fpc14 143.0.0.31 member14-fpc15 144.0.0.6 lcc15-backup 144.0.0.16 lcc15-fpc0 144.0.0.17 lcc15-fpc1 144.0.0.18 lcc15-fpc2 144.0.0.19 lcc15-fpc3 144.0.0.20 lcc15-fpc4 144.0.0.21 lcc15-fpc5 144.0.0.22 lcc15-fpc6 144.0.0.23 lcc15-fpc7 144.0.0.48 lcc15-spmb0 144.0.0.49 lcc15-spmb1 #LCC 15 (or MEMBER 15 on Virtual Chassis) 144.0.0.1 lcc15-master member15-master 144.0.0.4 lcc15-re0 member15-re0 144.0.0.5 lcc15-re1 member15-re1 144.0.0.6 lcc15-backup member15-backup 144.0.0.16 member15-fpc0 144.0.0.17 member15-fpc1 144.0.0.18 member15-fpc2 144.0.0.19 member15-fpc3 144.0.0.20 member15-fpc4 144.0.0.21 member15-fpc5 144.0.0.22 member15-fpc6 144.0.0.23 member15-fpc7 144.0.0.24 member15-fpc8 144.0.0.25 member15-fpc9 144.0.0.26 member15-fpc10 144.0.0.27 member15-fpc11 144.0.0.28 member15-fpc12 144.0.0.29 member15-fpc13 144.0.0.30 member15-fpc14 144.0.0.31 member15-fpc15 #VIRT SC 161.0.0.1 sc-master 161.0.0.4 sc-re0 161.0.0.5 sc-re1 161.0.0.6 sc-backup #SFC 0 162.0.0.1 sfc0-master 162.0.0.4 sfc0-re0 162.0.0.5 sfc0-re1 162.0.0.6 sfc0-backup 162.0.0.48 sfc0-spmb0 162.0.0.49 sfc0-spmb1 #SFC 1 163.0.0.1 sfc1-master 163.0.0.4 sfc1-re0 163.0.0.5 sfc1-re1 163.0.0.6 sfc1-backup 163.0.0.48 sfc1-spmb0 163.0.0.49 sfc1-spmb1 #SFC 2 164.0.0.1 sfc2-master 164.0.0.4 sfc2-re0 164.0.0.5 sfc2-re1 164.0.0.6 sfc2-backup 164.0.0.48 sfc2-spmb0 164.0.0.49 sfc2-spmb1 #SFC 3 165.0.0.1 sfc3-master 165.0.0.4 sfc3-re0 165.0.0.5 sfc3-re1 165.0.0.6 sfc3-backup 165.0.0.48 sfc3-spmb0 165.0.0.49 sfc3-spmb1 #SFC 4 166.0.0.1 sfc4-master 166.0.0.4 sfc4-re0 166.0.0.5 sfc4-re1 166.0.0.6 sfc4-backup 166.0.0.48 sfc4-spmb0 166.0.0.49 sfc4-spmb1 #JCS 190.0.0.1 psd%d-master 190.0.0.4 psd%d-re0 190.0.0.5 psd%d-re1 190.0.0.6 psd%d-backup # Old IP address format (RT_IRS_V2) # # Single Chassis Hostnames # 10.0.0.1 master 10.0.0.4 re0 10.0.0.5 re1 # # Multi Chassis Hostnames # #SCC 10.16.0.1 scc-master 10.16.0.4 scc-re0 10.16.0.5 scc-re1 #LCC 0 10.1.0.1 lcc0-master member0-master 10.1.0.4 lcc0-re0 member0-re0 10.1.0.5 lcc0-re1 member0-re1 10.1.0.6 lcc0-backup member0-backup #LCC 1 10.2.0.1 lcc1-master member1-master 10.2.0.4 lcc1-re0 member1-re0 10.2.0.5 lcc1-re1 member1-re1 10.2.0.6 lcc1-backup member1-backup #LCC 2 10.3.0.1 lcc2-master member2-master 10.3.0.4 lcc2-re0 member2-re0 10.3.0.5 lcc2-re1 member2-re1 10.3.0.6 lcc2-backup member2-backup #LCC 3 10.4.0.1 lcc3-master member3-master 10.4.0.4 lcc3-re0 member3-re0 10.4.0.5 lcc3-re1 member3-re1 10.4.0.6 lcc3-backup member3-backup #LCC 4 10.5.0.1 lcc4-master member4-master 10.5.0.4 lcc4-re0 member4-re0 10.5.0.5 lcc4-re1 member4-re1 10.5.0.6 lcc4-backup member4-backup #LCC 5 10.6.0.1 lcc5-master member5-master 10.6.0.4 lcc5-re0 member5-re0 10.6.0.5 lcc5-re1 member5-re1 10.6.0.6 lcc5-backup member5-backup #LCC 6 10.7.0.1 lcc6-master member6-master 10.7.0.4 lcc6-re0 member6-re0 10.7.0.5 lcc6-re1 member6-re1 10.7.0.6 lcc6-backup member6-backup #LCC 7 10.8.0.1 lcc7-master member7-master 10.8.0.4 lcc7-re0 member7-re0 10.8.0.5 lcc7-re1 member7-re1 10.8.0.6 lcc7-backup member7-backup #LCC 8 10.9.0.1 lcc8-master member8-master 10.9.0.4 lcc8-re0 member8-re0 10.9.0.5 lcc8-re1 member8-re1 10.9.0.6 lcc8-backup member8-backup #LCC 9 10.10.0.1 lcc9-master member9-master 10.10.0.4 lcc9-re0 member9-re0 10.10.0.5 lcc9-re1 member9-re1 10.10.0.6 lcc9-backup member9-backup #LCC 10 10.11.0.1 lcc10-master member10-master 10.11.0.4 lcc10-re0 member10-re0 10.11.0.5 lcc10-re1 member10-re1 10.11.0.6 lcc10-backup member10-backup #LCC 11 10.12.0.1 lcc11-master member11-master 10.12.0.4 lcc11-re0 member11-re0 10.12.0.5 lcc11-re1 member11-re1 10.12.0.6 lcc11-backup member11-backup #LCC 12 10.13.0.1 lcc12-master member12-master 10.13.0.4 lcc12-re0 member12-re0 10.13.0.5 lcc12-re1 member12-re1 10.13.0.6 lcc12-backup member12-backup #LCC 13 10.14.0.1 lcc13-master member13-master 10.14.0.4 lcc13-re0 member13-re0 10.14.0.5 lcc13-re1 member13-re1 10.14.0.6 lcc13-backup member13-backup #LCC 14 10.15.0.1 lcc14-master member14-master 10.15.0.4 lcc14-re0 member14-re0 10.15.0.5 lcc14-re1 member14-re1 10.15.0.6 lcc14-backup member14-backup #LCC 15 10.16.0.1 lcc15-master member15-master 10.16.0.4 lcc15-re0 member15-re0 10.16.0.5 lcc15-re1 member15-re1 10.16.0.6 lcc15-backup member15-backup #SFC 0 10.34.0.1 sfc0-master 10.34.0.4 sfc0-re0 10.34.0.5 sfc0-re1 #SFC 1 10.35.0.1 sfc1-master 10.35.0.4 sfc1-re0 10.35.0.5 sfc1-re1 #SFC 2 10.36.0.1 sfc2-master 10.36.0.4 sfc2-re0 10.36.0.5 sfc2-re1 #SFC 3 10.37.0.1 sfc3-master 10.37.0.4 sfc3-re0 10.37.0.5 sfc3-re1 #SFC 4 10.38.0.1 sfc4-master 10.38.0.4 sfc4-re0 10.38.0.5 sfc4-re1 # End of internal names py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/sw_info_no_version_get-interface-information.xml000066400000000000000000000144241475361112400331620ustar00rootroot00000000000000 avs1.0 up up inet 254.0.0.254 0/0 inet6 fe80::199 em0.0 up up inet 10.0.0.1/8 10.0.0.4/8 128.0.0.1/2 128.0.0.4/2 inet6 fe80::200:ff:fe00:4/64 fec0::a:0:0:4/64 tnp 0x4 em1.0 up down inet 10.0.0.1/8 10.0.0.4/8 128.0.0.1/2 128.0.0.4/2 inet6 fe80::200:1ff:fe00:4/64 fec0::a:0:0:4/64 tnp 0x4 lo0.16385 up up inet py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/sw_info_no_version_get-software-information.xml000066400000000000000000000007171475361112400330540ustar00rootroot00000000000000 lsys500 srx3600 srx3600 junos jais AI-Scripts [6.0R2-THIN.0] sw_info_no_version_get-virtual-chassis-information.xml000066400000000000000000000053141475361112400342620ustar00rootroot00000000000000py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply 737a.74f6.9e99 Prsnt 0 (FPC 0- 11) JN1230B3FAFC mx240 129 NA VC Master* 1 vcp-1/0/1 1 vcp-1/0/2 1 vcp-1/0/3 Prsnt 1 (FPC 12- 23) JN122D0FEAFC mx240 129 NA VC Backup 0 vcp-1/0/1 0 vcp-1/0/2 0 vcp-1/0/3 py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/sw_info_simple_file-show.xml000066400000000000000000000754711475361112400271400ustar00rootroot00000000000000 #$Id: hosts.junos,v 1.7.72.1 2009-04-16 05:22:03 kdickman Exp $ # # File mapping AF_INET/AF_INET6 hostnames for REs on Single and Multichassis # systems # # This file is looked at before /etc/hosts by gethostbyname(3), # gethostbyname2(3) and getaddrinfo(3) # # The IP addresses in this file are only used for communication between REs # over the Internal Routing Instances # # WARNING: # # The names in this file are effectively reserved for internal use. # # New IP address format (RT_IRS_V3) # # Single Chassis Hostnames # 128.0.0.1 master 128.0.0.1 node 128.0.0.1 fwdd 128.0.0.1 member 128.0.0.1 pfem 128.0.0.2 scb 128.0.0.2 sbr 128.0.0.2 ssb 128.0.0.2 feb 128.0.0.2 cfeb0 128.0.0.2 cfeb 128.0.0.2 cpp0 128.0.0.3 cfeb1 128.0.0.3 cpp1 128.0.0.4 re0 128.0.0.5 re1 128.0.0.6 backup 128.0.0.8 sfm0 128.0.0.9 sfm1 128.0.0.10 sfm2 128.0.0.16 fpc0 128.0.0.17 fpc1 128.0.0.18 fpc2 128.0.0.19 fpc3 128.0.0.20 fpc4 128.0.0.21 fpc5 128.0.0.22 fpc6 128.0.0.23 fpc7 128.0.0.24 fpc8 128.0.0.25 fpc9 128.0.0.26 fpc10 128.0.0.27 fpc11 128.0.0.28 fpc12 128.0.0.29 fpc13 128.0.0.30 fpc14 128.0.0.31 fpc15 128.0.0.32 feb0 128.0.0.32 fpc16 128.0.0.33 feb1 128.0.0.33 fpc17 128.0.0.34 feb2 128.0.0.34 fpc18 128.0.0.35 feb3 128.0.0.35 fpc19 128.0.0.36 feb4 128.0.0.37 feb5 128.0.0.48 spmb0 128.0.0.49 spmb1 128.0.0.50 tfeb0 128.0.1.16 fpc0.pic0 128.0.1.17 fpc1.pic0 128.0.1.18 fpc2.pic0 128.0.1.19 fpc3.pic0 128.0.1.20 fpc4.pic0 128.0.1.21 fpc5.pic0 128.0.1.22 fpc6.pic0 128.0.1.23 fpc7.pic0 128.0.1.24 fpc8.pic0 128.0.1.25 fpc9.pic0 128.0.1.26 fpc10.pic0 128.0.1.27 fpc11.pic0 128.0.1.28 fpc12.pic0 128.0.1.29 fpc13.pic0 128.0.1.30 fpc14.pic0 128.0.1.31 fpc15.pic0 128.0.2.16 fpc0.pic1 128.0.2.17 fpc1.pic1 128.0.2.18 fpc2.pic1 128.0.2.19 fpc3.pic1 128.0.2.20 fpc4.pic1 128.0.2.21 fpc5.pic1 128.0.2.22 fpc6.pic1 128.0.2.23 fpc7.pic1 128.0.2.24 fpc8.pic1 128.0.2.25 fpc9.pic1 128.0.2.26 fpc10.pic1 128.0.2.27 fpc11.pic1 128.0.2.28 fpc12.pic1 128.0.2.29 fpc13.pic1 128.0.2.30 fpc14.pic1 128.0.2.31 fpc15.pic1 128.0.3.16 fpc0.pic2 128.0.3.17 fpc1.pic2 128.0.3.18 fpc2.pic2 128.0.3.19 fpc3.pic2 128.0.3.20 fpc4.pic2 128.0.3.21 fpc5.pic2 128.0.3.22 fpc6.pic2 128.0.3.23 fpc7.pic2 128.0.3.24 fpc8.pic2 128.0.3.25 fpc9.pic2 128.0.3.26 fpc10.pic2 128.0.3.27 fpc11.pic2 128.0.3.28 fpc12.pic2 128.0.3.29 fpc13.pic2 128.0.3.30 fpc14.pic2 128.0.3.31 fpc15.pic2 128.0.4.16 fpc0.pic3 128.0.4.17 fpc1.pic3 128.0.4.18 fpc2.pic3 128.0.4.19 fpc3.pic3 128.0.4.20 fpc4.pic3 128.0.4.21 fpc5.pic3 128.0.4.22 fpc6.pic3 128.0.4.23 fpc7.pic3 128.0.4.24 fpc8.pic3 128.0.4.25 fpc9.pic3 128.0.4.26 fpc10.pic3 128.0.4.27 fpc11.pic3 128.0.4.28 fpc12.pic3 128.0.4.29 fpc13.pic3 128.0.4.30 fpc14.pic3 128.0.4.31 fpc15.pic3 # # DCF-Root Hostname # 128.0.130.2 dcf-root # # Multi Chassis Hostnames # #SCC 144.0.0.1 scc-master 144.0.0.4 scc-re0 144.0.0.5 scc-re1 144.0.0.6 scc-backup 144.0.0.48 scc-spmb0 144.0.0.49 scc-spmb1 #LCC 0 (or MEMBER 0 on Virtual Chassis) 129.0.0.1 lcc0-master member0-master member0 129.0.0.4 lcc0-re0 member0-re0 129.0.0.5 lcc0-re1 member0-re1 129.0.0.6 lcc0-backup member0-backup 129.0.0.16 member0-fpc0 129.0.0.17 member0-fpc1 129.0.0.18 member0-fpc2 129.0.0.19 member0-fpc3 129.0.0.20 member0-fpc4 129.0.0.21 member0-fpc5 129.0.0.22 member0-fpc6 129.0.0.23 member0-fpc7 129.0.0.24 member0-fpc8 129.0.0.25 member0-fpc9 129.0.0.26 member0-fpc10 129.0.0.27 member0-fpc11 129.0.0.28 member0-fpc12 129.0.0.29 member0-fpc13 129.0.0.30 member0-fpc14 129.0.0.31 member0-fpc15 129.0.0.6 lcc0-backup 129.0.0.16 lcc0-fpc0 129.0.0.17 lcc0-fpc1 129.0.0.18 lcc0-fpc2 129.0.0.19 lcc0-fpc3 129.0.0.20 lcc0-fpc4 129.0.0.21 lcc0-fpc5 129.0.0.22 lcc0-fpc6 129.0.0.23 lcc0-fpc7 129.0.0.48 lcc0-spmb0 129.0.0.49 lcc0-spmb1 #LCC 1 (or MEMBER 1 on Virtual Chassis) 130.0.0.1 lcc1-master member1-master member1 130.0.0.4 lcc1-re0 member1-re0 130.0.0.5 lcc1-re1 member1-re1 130.0.0.6 lcc1-backup member1-backup 130.0.0.16 member1-fpc0 130.0.0.17 member1-fpc1 130.0.0.18 member1-fpc2 130.0.0.19 member1-fpc3 130.0.0.20 member1-fpc4 130.0.0.21 member1-fpc5 130.0.0.22 member1-fpc6 130.0.0.23 member1-fpc7 130.0.0.24 member1-fpc8 130.0.0.25 member1-fpc9 130.0.0.26 member1-fpc10 130.0.0.27 member1-fpc11 130.0.0.28 member1-fpc12 130.0.0.29 member1-fpc13 130.0.0.30 member1-fpc14 130.0.0.31 member1-fpc15 130.0.0.6 lcc1-backup 130.0.0.16 lcc1-fpc0 130.0.0.17 lcc1-fpc1 130.0.0.18 lcc1-fpc2 130.0.0.19 lcc1-fpc3 130.0.0.20 lcc1-fpc4 130.0.0.21 lcc1-fpc5 130.0.0.22 lcc1-fpc6 130.0.0.23 lcc1-fpc7 130.0.0.48 lcc1-spmb0 130.0.0.49 lcc1-spmb1 #LCC 2 (or MEMBER 2 on Virtual Chassis) 131.0.0.1 lcc2-master member2-master member2 131.0.0.4 lcc2-re0 member2-re0 131.0.0.5 lcc2-re1 member2-re1 131.0.0.6 lcc2-backup member2-backup 131.0.0.16 member2-fpc0 131.0.0.17 member2-fpc1 131.0.0.18 member2-fpc2 131.0.0.19 member2-fpc3 131.0.0.20 member2-fpc4 131.0.0.21 member2-fpc5 131.0.0.22 member2-fpc6 131.0.0.23 member2-fpc7 131.0.0.24 member2-fpc8 131.0.0.25 member2-fpc9 131.0.0.26 member2-fpc10 131.0.0.27 member2-fpc11 131.0.0.28 member2-fpc12 131.0.0.29 member2-fpc13 131.0.0.30 member2-fpc14 131.0.0.31 member2-fpc15 131.0.0.6 lcc2-backup 131.0.0.16 lcc2-fpc0 131.0.0.17 lcc2-fpc1 131.0.0.18 lcc2-fpc2 131.0.0.19 lcc2-fpc3 131.0.0.20 lcc2-fpc4 131.0.0.21 lcc2-fpc5 131.0.0.22 lcc2-fpc6 131.0.0.23 lcc2-fpc7 131.0.0.48 lcc2-spmb0 131.0.0.49 lcc20-spmb1 #LCC 3 (or MEMBER 3 on Virtual Chassis) 132.0.0.1 lcc3-master member3-master member3 132.0.0.4 lcc3-re0 member3-re0 132.0.0.5 lcc3-re1 member3-re1 132.0.0.6 lcc3-backup member3-backup 132.0.0.16 member3-fpc0 132.0.0.17 member3-fpc1 132.0.0.18 member3-fpc2 132.0.0.19 member3-fpc3 132.0.0.20 member3-fpc4 132.0.0.21 member3-fpc5 132.0.0.22 member3-fpc6 132.0.0.23 member3-fpc7 132.0.0.24 member3-fpc8 132.0.0.25 member3-fpc9 132.0.0.26 member3-fpc10 132.0.0.27 member3-fpc11 132.0.0.28 member3-fpc12 132.0.0.29 member3-fpc13 132.0.0.30 member3-fpc14 132.0.0.31 member3-fpc15 132.0.0.6 lcc3-backup 132.0.0.16 lcc3-fpc0 132.0.0.17 lcc3-fpc1 132.0.0.18 lcc3-fpc2 132.0.0.19 lcc3-fpc3 132.0.0.20 lcc3-fpc4 132.0.0.21 lcc3-fpc5 132.0.0.22 lcc3-fpc6 132.0.0.23 lcc3-fpc7 132.0.0.48 lcc3-spmb0 132.0.0.49 lcc3-spmb1 #LCC 4 (or MEMBER 4 on Virtual Chassis) 133.0.0.1 lcc4-master member4-master member4 133.0.0.4 lcc4-re0 member4-re0 133.0.0.5 lcc4-re1 member4-re1 133.0.0.6 lcc4-backup member4-backup 133.0.0.16 member4-fpc0 133.0.0.17 member4-fpc1 133.0.0.18 member4-fpc2 133.0.0.19 member4-fpc3 133.0.0.20 member4-fpc4 133.0.0.21 member4-fpc5 133.0.0.22 member4-fpc6 133.0.0.23 member4-fpc7 133.0.0.24 member4-fpc8 133.0.0.25 member4-fpc9 133.0.0.26 member4-fpc10 133.0.0.27 member4-fpc11 133.0.0.28 member4-fpc12 133.0.0.29 member4-fpc13 133.0.0.30 member4-fpc14 133.0.0.31 member4-fpc15 133.0.0.6 lcc4-backup 133.0.0.16 lcc4-fpc0 133.0.0.17 lcc4-fpc1 133.0.0.18 lcc4-fpc2 133.0.0.19 lcc4-fpc3 133.0.0.20 lcc4-fpc4 133.0.0.21 lcc4-fpc5 133.0.0.22 lcc4-fpc6 133.0.0.23 lcc4-fpc7 133.0.0.48 lcc4-spmb0 133.0.0.49 lcc4-spmb1 #LCC 5 (or MEMBER 5 on Virtual Chassis) 134.0.0.1 lcc5-master member5-master member5 134.0.0.4 lcc5-re0 member5-re0 134.0.0.5 lcc5-re1 member5-re1 134.0.0.6 lcc5-backup member5-backup 134.0.0.16 member5-fpc0 134.0.0.17 member5-fpc1 134.0.0.18 member5-fpc2 134.0.0.19 member5-fpc3 134.0.0.20 member5-fpc4 134.0.0.21 member5-fpc5 134.0.0.22 member5-fpc6 134.0.0.23 member5-fpc7 134.0.0.24 member5-fpc8 134.0.0.25 member5-fpc9 134.0.0.26 member5-fpc10 134.0.0.27 member5-fpc11 134.0.0.28 member5-fpc12 134.0.0.29 member5-fpc13 134.0.0.30 member5-fpc14 134.0.0.31 member5-fpc15 134.0.0.6 lcc5-backup 134.0.0.16 lcc5-fpc0 134.0.0.17 lcc5-fpc1 134.0.0.18 lcc5-fpc2 134.0.0.19 lcc5-fpc3 134.0.0.20 lcc5-fpc4 134.0.0.21 lcc5-fpc5 134.0.0.22 lcc5-fpc6 134.0.0.23 lcc5-fpc7 134.0.0.48 lcc5-spmb0 134.0.0.49 lcc5-spmb1 #LCC 6 (or MEMBER 6 on Virtual Chassis) 135.0.0.1 lcc6-master member6-master member6 135.0.0.4 lcc6-re0 member6-re0 135.0.0.5 lcc6-re1 member6-re1 135.0.0.6 lcc6-backup member6-backup 135.0.0.16 member6-fpc0 135.0.0.17 member6-fpc1 135.0.0.18 member6-fpc2 135.0.0.19 member6-fpc3 135.0.0.20 member6-fpc4 135.0.0.21 member6-fpc5 135.0.0.22 member6-fpc6 135.0.0.23 member6-fpc7 135.0.0.24 member6-fpc8 135.0.0.25 member6-fpc9 135.0.0.26 member6-fpc10 135.0.0.27 member6-fpc11 135.0.0.28 member6-fpc12 135.0.0.29 member6-fpc13 135.0.0.30 member6-fpc14 135.0.0.31 member6-fpc15 135.0.0.6 lcc6-backup 135.0.0.16 lcc6-fpc0 135.0.0.17 lcc6-fpc1 135.0.0.18 lcc6-fpc2 135.0.0.19 lcc6-fpc3 135.0.0.20 lcc6-fpc4 135.0.0.21 lcc6-fpc5 135.0.0.22 lcc6-fpc6 135.0.0.23 lcc6-fpc7 135.0.0.48 lcc6-spmb0 135.0.0.49 lcc6-spmb1 #LCC 7 (or MEMBER 7 on Virtual Chassis) 136.0.0.1 lcc7-master member7-master member7 136.0.0.4 lcc7-re0 member7-re0 136.0.0.5 lcc7-re1 member7-re1 136.0.0.6 lcc7-backup member7-backup 136.0.0.16 member7-fpc0 136.0.0.17 member7-fpc1 136.0.0.18 member7-fpc2 136.0.0.19 member7-fpc3 136.0.0.20 member7-fpc4 136.0.0.21 member7-fpc5 136.0.0.22 member7-fpc6 136.0.0.23 member7-fpc7 136.0.0.24 member7-fpc8 136.0.0.25 member7-fpc9 136.0.0.26 member7-fpc10 136.0.0.27 member7-fpc11 136.0.0.28 member7-fpc12 136.0.0.29 member7-fpc13 136.0.0.30 member7-fpc14 136.0.0.31 member7-fpc15 136.0.0.6 lcc7-backup 136.0.0.16 lcc7-fpc0 136.0.0.17 lcc7-fpc1 136.0.0.18 lcc7-fpc2 136.0.0.19 lcc7-fpc3 136.0.0.20 lcc7-fpc4 136.0.0.21 lcc7-fpc5 136.0.0.22 lcc7-fpc6 136.0.0.23 lcc7-fpc7 136.0.0.48 lcc7-spmb0 136.0.0.49 lcc7-spmb1 137.0.0.6 lcc8-backup 137.0.0.16 lcc8-fpc0 137.0.0.17 lcc8-fpc1 137.0.0.18 lcc8-fpc2 137.0.0.19 lcc8-fpc3 137.0.0.20 lcc8-fpc4 137.0.0.21 lcc8-fpc5 137.0.0.22 lcc8-fpc6 137.0.0.23 lcc8-fpc7 137.0.0.48 lcc8-spmb0 137.0.0.49 lcc8-spmb1 #LCC 8 (or MEMBER 8 on Virtual Chassis) 137.0.0.1 lcc8-master member8-master member8 137.0.0.4 lcc8-re0 member8-re0 137.0.0.5 lcc8-re1 member8-re1 137.0.0.6 lcc8-backup member8-backup 137.0.0.16 member8-fpc0 137.0.0.17 member8-fpc1 137.0.0.18 member8-fpc2 137.0.0.19 member8-fpc3 137.0.0.20 member8-fpc4 137.0.0.21 member8-fpc5 137.0.0.22 member8-fpc6 137.0.0.23 member8-fpc7 137.0.0.24 member8-fpc8 137.0.0.25 member8-fpc9 137.0.0.26 member8-fpc10 137.0.0.27 member8-fpc11 137.0.0.28 member8-fpc12 137.0.0.29 member8-fpc13 137.0.0.30 member8-fpc14 137.0.0.31 member8-fpc15 138.0.0.6 lcc9-backup 138.0.0.16 lcc9-fpc0 138.0.0.17 lcc9-fpc1 138.0.0.18 lcc9-fpc2 138.0.0.19 lcc9-fpc3 138.0.0.20 lcc9-fpc4 138.0.0.21 lcc9-fpc5 138.0.0.22 lcc9-fpc6 138.0.0.23 lcc9-fpc7 138.0.0.48 lcc9-spmb0 138.0.0.49 lcc9-spmb1 #LCC 9 (or MEMBER 9 on Virtual Chassis) 138.0.0.1 lcc9-master member9-master member9 138.0.0.4 lcc9-re0 member9-re0 138.0.0.5 lcc9-re1 member9-re1 138.0.0.6 lcc9-backup member9-backup 138.0.0.16 member9-fpc0 138.0.0.17 member9-fpc1 138.0.0.18 member9-fpc2 138.0.0.19 member9-fpc3 138.0.0.20 member9-fpc4 138.0.0.21 member9-fpc5 138.0.0.22 member9-fpc6 138.0.0.23 member9-fpc7 138.0.0.24 member9-fpc8 138.0.0.25 member9-fpc9 138.0.0.26 member9-fpc10 138.0.0.27 member9-fpc11 138.0.0.28 member9-fpc12 138.0.0.29 member9-fpc13 138.0.0.30 member9-fpc14 138.0.0.31 member9-fpc15 139.0.0.6 lcc10-backup 139.0.0.16 lcc10-fpc0 139.0.0.17 lcc10-fpc1 139.0.0.18 lcc10-fpc2 139.0.0.19 lcc10-fpc3 139.0.0.20 lcc10-fpc4 139.0.0.21 lcc10-fpc5 139.0.0.22 lcc10-fpc6 139.0.0.23 lcc10-fpc7 139.0.0.48 lcc10-spmb0 139.0.0.49 lcc10-spmb1 #LCC 10 (or MEMBER 10 on Virtual Chassis) 139.0.0.1 lcc10-master member10-master 139.0.0.4 lcc10-re0 member10-re0 139.0.0.5 lcc10-re1 member10-re1 139.0.0.6 lcc10-backup member10-backup 139.0.0.16 member10-fpc0 139.0.0.17 member10-fpc1 139.0.0.18 member10-fpc2 139.0.0.19 member10-fpc3 139.0.0.20 member10-fpc4 139.0.0.21 member10-fpc5 139.0.0.22 member10-fpc6 139.0.0.23 member10-fpc7 139.0.0.24 member10-fpc8 139.0.0.25 member10-fpc9 139.0.0.26 member10-fpc10 139.0.0.27 member10-fpc11 139.0.0.28 member10-fpc12 139.0.0.29 member10-fpc13 139.0.0.30 member10-fpc14 139.0.0.31 member10-fpc15 140.0.0.6 lcc11-backup 140.0.0.16 lcc11-fpc0 140.0.0.17 lcc11-fpc1 140.0.0.18 lcc11-fpc2 140.0.0.19 lcc11-fpc3 140.0.0.20 lcc11-fpc4 140.0.0.21 lcc11-fpc5 140.0.0.22 lcc11-fpc6 140.0.0.23 lcc11-fpc7 140.0.0.48 lcc11-spmb0 140.0.0.49 lcc11-spmb1 #LCC 11 (or MEMBER 11 on Virtual Chassis) 140.0.0.1 lcc11-master member11-master 140.0.0.4 lcc11-re0 member11-re0 140.0.0.5 lcc11-re1 member11-re1 140.0.0.6 lcc11-backup member11-backup 140.0.0.16 member11-fpc0 140.0.0.17 member11-fpc1 140.0.0.18 member11-fpc2 140.0.0.19 member11-fpc3 140.0.0.20 member11-fpc4 140.0.0.21 member11-fpc5 140.0.0.22 member11-fpc6 140.0.0.23 member11-fpc7 140.0.0.24 member11-fpc8 140.0.0.25 member11-fpc9 140.0.0.26 member11-fpc10 140.0.0.27 member11-fpc11 140.0.0.28 member11-fpc12 140.0.0.29 member11-fpc13 140.0.0.30 member11-fpc14 140.0.0.31 member11-fpc15 141.0.0.6 lcc12-backup 141.0.0.16 lcc12-fpc0 141.0.0.17 lcc12-fpc1 141.0.0.18 lcc12-fpc2 141.0.0.19 lcc12-fpc3 141.0.0.20 lcc12-fpc4 141.0.0.21 lcc12-fpc5 141.0.0.22 lcc12-fpc6 141.0.0.23 lcc12-fpc7 141.0.0.48 lcc12-spmb0 141.0.0.49 lcc12-spmb1 #LCC 12 (or MEMBER 12 on Virtual Chassis) 141.0.0.1 lcc12-master member12-master 141.0.0.4 lcc12-re0 member12-re0 141.0.0.5 lcc12-re1 member12-re1 141.0.0.6 lcc12-backup member12-backup 141.0.0.16 member12-fpc0 141.0.0.17 member12-fpc1 141.0.0.18 member12-fpc2 141.0.0.19 member12-fpc3 141.0.0.20 member12-fpc4 141.0.0.21 member12-fpc5 141.0.0.22 member12-fpc6 141.0.0.23 member12-fpc7 141.0.0.24 member12-fpc8 141.0.0.25 member12-fpc9 141.0.0.26 member12-fpc10 141.0.0.27 member12-fpc11 141.0.0.28 member12-fpc12 141.0.0.29 member12-fpc13 141.0.0.30 member12-fpc14 141.0.0.31 member12-fpc15 142.0.0.6 lcc13-backup 142.0.0.16 lcc13-fpc0 142.0.0.17 lcc13-fpc1 142.0.0.18 lcc13-fpc2 142.0.0.19 lcc13-fpc3 142.0.0.20 lcc13-fpc4 142.0.0.21 lcc13-fpc5 142.0.0.22 lcc13-fpc6 142.0.0.23 lcc13-fpc7 142.0.0.48 lcc13-spmb0 142.0.0.49 lcc13-spmb1 #LCC 13 (or MEMBER 13 on Virtual Chassis) 142.0.0.1 lcc13-master member13-master 142.0.0.4 lcc13-re0 member13-re0 142.0.0.5 lcc13-re1 member13-re1 142.0.0.6 lcc13-backup member13-backup 142.0.0.16 member13-fpc0 142.0.0.17 member13-fpc1 142.0.0.18 member13-fpc2 142.0.0.19 member13-fpc3 142.0.0.20 member13-fpc4 142.0.0.21 member13-fpc5 142.0.0.22 member13-fpc6 142.0.0.23 member13-fpc7 142.0.0.24 member13-fpc8 142.0.0.25 member13-fpc9 142.0.0.26 member13-fpc10 142.0.0.27 member13-fpc11 142.0.0.28 member13-fpc12 142.0.0.29 member13-fpc13 142.0.0.30 member13-fpc14 142.0.0.31 member13-fpc15 143.0.0.6 lcc14-backup 143.0.0.16 lcc14-fpc0 143.0.0.17 lcc14-fpc1 143.0.0.18 lcc14-fpc2 143.0.0.19 lcc14-fpc3 143.0.0.20 lcc14-fpc4 143.0.0.21 lcc14-fpc5 143.0.0.22 lcc14-fpc6 143.0.0.23 lcc14-fpc7 143.0.0.48 lcc14-spmb0 143.0.0.49 lcc14-spmb1 #LCC 14 (or MEMBER 14 on Virtual Chassis) 143.0.0.1 lcc14-master member14-master 143.0.0.4 lcc14-re0 member14-re0 143.0.0.5 lcc14-re1 member14-re1 143.0.0.6 lcc14-backup member14-backup 143.0.0.16 member14-fpc0 143.0.0.17 member14-fpc1 143.0.0.18 member14-fpc2 143.0.0.19 member14-fpc3 143.0.0.20 member14-fpc4 143.0.0.21 member14-fpc5 143.0.0.22 member14-fpc6 143.0.0.23 member14-fpc7 143.0.0.24 member14-fpc8 143.0.0.25 member14-fpc9 143.0.0.26 member14-fpc10 143.0.0.27 member14-fpc11 143.0.0.28 member14-fpc12 143.0.0.29 member14-fpc13 143.0.0.30 member14-fpc14 143.0.0.31 member14-fpc15 144.0.0.6 lcc15-backup 144.0.0.16 lcc15-fpc0 144.0.0.17 lcc15-fpc1 144.0.0.18 lcc15-fpc2 144.0.0.19 lcc15-fpc3 144.0.0.20 lcc15-fpc4 144.0.0.21 lcc15-fpc5 144.0.0.22 lcc15-fpc6 144.0.0.23 lcc15-fpc7 144.0.0.48 lcc15-spmb0 144.0.0.49 lcc15-spmb1 #LCC 15 (or MEMBER 15 on Virtual Chassis) 144.0.0.1 lcc15-master member15-master 144.0.0.4 lcc15-re0 member15-re0 144.0.0.5 lcc15-re1 member15-re1 144.0.0.6 lcc15-backup member15-backup 144.0.0.16 member15-fpc0 144.0.0.17 member15-fpc1 144.0.0.18 member15-fpc2 144.0.0.19 member15-fpc3 144.0.0.20 member15-fpc4 144.0.0.21 member15-fpc5 144.0.0.22 member15-fpc6 144.0.0.23 member15-fpc7 144.0.0.24 member15-fpc8 144.0.0.25 member15-fpc9 144.0.0.26 member15-fpc10 144.0.0.27 member15-fpc11 144.0.0.28 member15-fpc12 144.0.0.29 member15-fpc13 144.0.0.30 member15-fpc14 144.0.0.31 member15-fpc15 #VIRT SC 161.0.0.1 sc-master 161.0.0.4 sc-re0 161.0.0.5 sc-re1 161.0.0.6 sc-backup #SFC 0 162.0.0.1 sfc0-master 162.0.0.4 sfc0-re0 162.0.0.5 sfc0-re1 162.0.0.6 sfc0-backup 162.0.0.48 sfc0-spmb0 162.0.0.49 sfc0-spmb1 #SFC 1 163.0.0.1 sfc1-master 163.0.0.4 sfc1-re0 163.0.0.5 sfc1-re1 163.0.0.6 sfc1-backup 163.0.0.48 sfc1-spmb0 163.0.0.49 sfc1-spmb1 #SFC 2 164.0.0.1 sfc2-master 164.0.0.4 sfc2-re0 164.0.0.5 sfc2-re1 164.0.0.6 sfc2-backup 164.0.0.48 sfc2-spmb0 164.0.0.49 sfc2-spmb1 #SFC 3 165.0.0.1 sfc3-master 165.0.0.4 sfc3-re0 165.0.0.5 sfc3-re1 165.0.0.6 sfc3-backup 165.0.0.48 sfc3-spmb0 165.0.0.49 sfc3-spmb1 #SFC 4 166.0.0.1 sfc4-master 166.0.0.4 sfc4-re0 166.0.0.5 sfc4-re1 166.0.0.6 sfc4-backup 166.0.0.48 sfc4-spmb0 166.0.0.49 sfc4-spmb1 #JCS 190.0.0.1 psd%d-master 190.0.0.4 psd%d-re0 190.0.0.5 psd%d-re1 190.0.0.6 psd%d-backup # Old IP address format (RT_IRS_V2) # # Single Chassis Hostnames # 10.0.0.1 master 10.0.0.4 re0 10.0.0.5 re1 # # Multi Chassis Hostnames # #SCC 10.16.0.1 scc-master 10.16.0.4 scc-re0 10.16.0.5 scc-re1 #LCC 0 10.1.0.1 lcc0-master member0-master 10.1.0.4 lcc0-re0 member0-re0 10.1.0.5 lcc0-re1 member0-re1 10.1.0.6 lcc0-backup member0-backup #LCC 1 10.2.0.1 lcc1-master member1-master 10.2.0.4 lcc1-re0 member1-re0 10.2.0.5 lcc1-re1 member1-re1 10.2.0.6 lcc1-backup member1-backup #LCC 2 10.3.0.1 lcc2-master member2-master 10.3.0.4 lcc2-re0 member2-re0 10.3.0.5 lcc2-re1 member2-re1 10.3.0.6 lcc2-backup member2-backup #LCC 3 10.4.0.1 lcc3-master member3-master 10.4.0.4 lcc3-re0 member3-re0 10.4.0.5 lcc3-re1 member3-re1 10.4.0.6 lcc3-backup member3-backup #LCC 4 10.5.0.1 lcc4-master member4-master 10.5.0.4 lcc4-re0 member4-re0 10.5.0.5 lcc4-re1 member4-re1 10.5.0.6 lcc4-backup member4-backup #LCC 5 10.6.0.1 lcc5-master member5-master 10.6.0.4 lcc5-re0 member5-re0 10.6.0.5 lcc5-re1 member5-re1 10.6.0.6 lcc5-backup member5-backup #LCC 6 10.7.0.1 lcc6-master member6-master 10.7.0.4 lcc6-re0 member6-re0 10.7.0.5 lcc6-re1 member6-re1 10.7.0.6 lcc6-backup member6-backup #LCC 7 10.8.0.1 lcc7-master member7-master 10.8.0.4 lcc7-re0 member7-re0 10.8.0.5 lcc7-re1 member7-re1 10.8.0.6 lcc7-backup member7-backup #LCC 8 10.9.0.1 lcc8-master member8-master 10.9.0.4 lcc8-re0 member8-re0 10.9.0.5 lcc8-re1 member8-re1 10.9.0.6 lcc8-backup member8-backup #LCC 9 10.10.0.1 lcc9-master member9-master 10.10.0.4 lcc9-re0 member9-re0 10.10.0.5 lcc9-re1 member9-re1 10.10.0.6 lcc9-backup member9-backup #LCC 10 10.11.0.1 lcc10-master member10-master 10.11.0.4 lcc10-re0 member10-re0 10.11.0.5 lcc10-re1 member10-re1 10.11.0.6 lcc10-backup member10-backup #LCC 11 10.12.0.1 lcc11-master member11-master 10.12.0.4 lcc11-re0 member11-re0 10.12.0.5 lcc11-re1 member11-re1 10.12.0.6 lcc11-backup member11-backup #LCC 12 10.13.0.1 lcc12-master member12-master 10.13.0.4 lcc12-re0 member12-re0 10.13.0.5 lcc12-re1 member12-re1 10.13.0.6 lcc12-backup member12-backup #LCC 13 10.14.0.1 lcc13-master member13-master 10.14.0.4 lcc13-re0 member13-re0 10.14.0.5 lcc13-re1 member13-re1 10.14.0.6 lcc13-backup member13-backup #LCC 14 10.15.0.1 lcc14-master member14-master 10.15.0.4 lcc14-re0 member14-re0 10.15.0.5 lcc14-re1 member14-re1 10.15.0.6 lcc14-backup member14-backup #LCC 15 10.16.0.1 lcc15-master member15-master 10.16.0.4 lcc15-re0 member15-re0 10.16.0.5 lcc15-re1 member15-re1 10.16.0.6 lcc15-backup member15-backup #SFC 0 10.34.0.1 sfc0-master 10.34.0.4 sfc0-re0 10.34.0.5 sfc0-re1 #SFC 1 10.35.0.1 sfc1-master 10.35.0.4 sfc1-re0 10.35.0.5 sfc1-re1 #SFC 2 10.36.0.1 sfc2-master 10.36.0.4 sfc2-re0 10.36.0.5 sfc2-re1 #SFC 3 10.37.0.1 sfc3-master 10.37.0.4 sfc3-re0 10.37.0.5 sfc3-re1 #SFC 4 10.38.0.1 sfc4-master 10.38.0.4 sfc4-re0 10.38.0.5 sfc4-re1 # End of internal names py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/sw_info_simple_get-interface-information.xml000066400000000000000000000144241475361112400322720ustar00rootroot00000000000000 avs1.0 up up inet 254.0.0.254 0/0 inet6 fe80::199 em0.0 up up inet 10.0.0.1/8 10.0.0.4/8 128.0.0.1/2 128.0.0.4/2 inet6 fe80::200:ff:fe00:4/64 fec0::a:0:0:4/64 tnp 0x4 em1.0 up down inet 10.0.0.1/8 10.0.0.4/8 128.0.0.1/2 128.0.0.4/2 inet6 fe80::200:1ff:fe00:4/64 fec0::a:0:0:4/64 tnp 0x4 lo0.16385 up up inet py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/sw_info_simple_get-software-information.xml000066400000000000000000000010111475361112400321500ustar00rootroot00000000000000 lsys500 srx3600 srx3600 junos JUNOS Software Release [12.3X48-D40.5] jais AI-Scripts [6.0R2-THIN.0] py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/sw_info_simple_get-virtual-chassis-information.xml000066400000000000000000000053141475361112400334510ustar00rootroot00000000000000 737a.74f6.9e99 Prsnt 0 (FPC 0- 11) JN1230B3FAFC mx240 129 NA VC Master* 1 vcp-1/0/1 1 vcp-1/0/2 1 vcp-1/0/3 Prsnt 1 (FPC 12- 23) JN122D0FEAFC mx240 129 NA VC Backup 0 vcp-1/0/1 0 vcp-1/0/2 0 vcp-1/0/3 py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/sw_info_single_command.xml000066400000000000000000000313671475361112400266450ustar00rootroot00000000000000 re0 r0 mx960 mx960 16.1R1.11 os-kernel JUNOS OS Kernel 64-bit [20160624.329953_builder_stable_10] os-libs JUNOS OS libs [20160624.329953_builder_stable_10] os-runtime JUNOS OS runtime [20160624.329953_builder_stable_10] zoneinfo JUNOS OS time zone information [20160624.329953_builder_stable_10] netstack JUNOS network stack and utilities [20160722.024316_builder_junos_161_r1] junos-modules JUNOS modules [20160722.024316_builder_junos_161_r1] junos-modules-platform JUNOS mx modules [20160722.024316_builder_junos_161_r1] junos-libs JUNOS libs [20160722.024316_builder_junos_161_r1] os-libs-compat32 JUNOS OS libs compat32 [20160624.329953_builder_stable_10] os-compat32 JUNOS OS 32-bit compatibility [20160624.329953_builder_stable_10] junos-libs-compat32 JUNOS libs compat32 [20160722.024316_builder_junos_161_r1] junos-runtime JUNOS runtime [20160722.024316_builder_junos_161_r1] vmguest JUNOS Packet Forwarding Engine Simulation Package [20160722.024316_builder_junos_161_r1] py-extensions JUNOS py extensions [20160722.024316_builder_junos_161_r1] py-base JUNOS py base [20160722.024316_builder_junos_161_r1] os-vmguest JUNOS OS vmguest [20160624.329953_builder_stable_10] os-crypto JUNOS OS crypto [20160624.329953_builder_stable_10] junos-libs-compat32-platform JUNOS mx libs compat32 [20160722.024316_builder_junos_161_r1] junos-runtime-platform JUNOS mx runtime [20160722.024316_builder_junos_161_r1] junos-platform JUNOS common platform support [20160722.024316_builder_junos_161_r1] junos-libs-platform JUNOS mx libs [20160722.024316_builder_junos_161_r1] junos-dp-crypto-support JUNOS Data Plane Crypto Support [20160722.024316_builder_junos_161_r1] junos-dp-crypto-support-platform JUNOS mtx Data Plane Crypto Support [20160722.024316_builder_junos_161_r1] junos-daemons JUNOS daemons [20160722.024316_builder_junos_161_r1] junos-daemons-platform JUNOS mx daemons [20160722.024316_builder_junos_161_r1] jservices-voice JUNOS Voice Services Container package [20160722.024316_builder_junos_161_r1] jservices-ssl JUNOS Services SSL [20160722.024316_builder_junos_161_r1] jservices-sfw JUNOS Services Stateful Firewall [20160722.024316_builder_junos_161_r1] jservices-rpm JUNOS Services RPM [20160722.024316_builder_junos_161_r1] jservices-ptsp JUNOS Services PTSP Container package [20160722.024316_builder_junos_161_r1] jservices-pcef JUNOS Services PCEF package [20160722.024316_builder_junos_161_r1] jservices-nat JUNOS Services NAT [20160722.024316_builder_junos_161_r1] jservices-mss JUNOS Services Mobile Subscriber Service Container package [20160722.024316_builder_junos_161_r1] jservices-mobile JUNOS Services MobileNext Software package [20160722.024316_builder_junos_161_r1] jservices-lrf JUNOS Services Logging Report Framework package [20160722.024316_builder_junos_161_r1] jservices-llpdf JUNOS Services LL-PDF Container package [20160722.024316_builder_junos_161_r1] jservices-jflow JUNOS Services Jflow Container package [20160722.024316_builder_junos_161_r1] jservices-jdpi JUNOS Services Deep Packet Inspection package [20160722.024316_builder_junos_161_r1] jservices-ipsec JUNOS Services IPSec [20160722.024316_builder_junos_161_r1] jservices-idp JUNOS IDP Services [20160722.024316_builder_junos_161_r1] jservices-hcm JUNOS Services HTTP Content Management package [20160722.024316_builder_junos_161_r1] jservices-crypto-base JUNOS Services Crypto [20160722.024316_builder_junos_161_r1] jservices-cpcd JUNOS Services Captive Portal and Content Delivery Container package [20160722.024316_builder_junos_161_r1] jservices-bgf JUNOS Border Gateway Function package [20160722.024316_builder_junos_161_r1] jservices-appid JUNOS AppId Services [20160722.024316_builder_junos_161_r1] jservices-alg JUNOS Services Application Level Gateways [20160722.024316_builder_junos_161_r1] jservices-aacl JUNOS Services AACL Container package [20160722.024316_builder_junos_161_r1] jsdn JUNOS SDN Software Suite [20160722.024316_builder_junos_161_r1] jsd JUNOS Extension Toolkit [20160722.024316_builder_junos_161_r1] jpfe-wrlinux JUNOS Packet Forwarding Engine Support (wrlinux) [20160722.024316_builder_junos_161_r1] jpfe-platform JUNOS Packet Forwarding Engine Support (MX/EX92XX Common) [20160722.024316_builder_junos_161_r1] jpfe-common JUNOS Packet Forwarding Engine Support (M/T Common) [20160722.024316_builder_junos_161_r1] jdocs JUNOS Online Documentation [20160722.024316_builder_junos_161_r1] fips-mode JUNOS FIPS mode utilities [20160722.024316_builder_junos_161_r1] py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/sw_info_single_file-show.xml000066400000000000000000002045501475361112400271200ustar00rootroot00000000000000 #$Id: hosts.junos,v 1.7.72.1 2009-04-16 05:22:03 kdickman Exp $ # # File mapping AF_INET/AF_INET6 hostnames for REs on Single and Multichassis # systems # # This file is looked at before /etc/hosts by gethostbyname(3), # gethostbyname2(3) and getaddrinfo(3) # # The IP addresses in this file are only used for communication between REs # over the Internal Routing Instances # # WARNING: # # The names in this file are effectively reserved for internal use. # # New IP address format (RT_IRS_V3) # # Single Chassis Hostnames # 128.0.0.1 master 128.0.0.1 node 128.0.0.1 fwdd 128.0.0.1 member 128.0.0.1 pfem 128.0.0.2 scb 128.0.0.2 sbr 128.0.0.2 ssb 128.0.0.2 feb 128.0.0.2 cfeb0 128.0.0.2 cfeb 128.0.0.2 cpp0 128.0.0.3 cfeb1 128.0.0.3 cpp1 128.0.0.4 re0 128.0.0.5 re1 128.0.0.6 backup 128.0.0.8 sfm0 128.0.0.9 sfm1 128.0.0.10 sfm2 128.0.0.16 fpc0 128.0.0.17 fpc1 128.0.0.18 fpc2 128.0.0.19 fpc3 128.0.0.20 fpc4 128.0.0.21 fpc5 128.0.0.22 fpc6 128.0.0.23 fpc7 128.0.0.24 fpc8 128.0.0.25 fpc9 128.0.0.26 fpc10 128.0.0.27 fpc11 128.0.0.28 fpc12 128.0.0.29 fpc13 128.0.0.30 fpc14 128.0.0.31 fpc15 128.0.0.32 feb0 128.0.0.32 fpc16 128.0.0.33 feb1 128.0.0.33 fpc17 128.0.0.34 feb2 128.0.0.34 fpc18 128.0.0.35 feb3 128.0.0.35 fpc19 128.0.0.36 fpc20 128.0.0.36 feb4 128.0.0.37 feb5 128.0.0.37 fpc21 128.0.0.38 fpc22 128.0.0.39 fpc23 128.0.0.40 fpc24 128.0.0.41 fpc25 128.0.0.42 fpc26 128.0.0.43 fpc27 128.0.0.44 fpc28 128.0.0.45 fpc29 128.0.0.46 fpc30 128.0.0.47 fpc31 128.0.0.48 spmb0 128.0.0.49 spmb1 128.0.0.50 tfeb0 128.0.0.50 afeb0 128.0.0.53 esc0 128.0.0.54 esc1 128.0.0.55 esc0-ipmi 128.0.0.56 esc1-ipmi 128.0.1.16 fpc0.pic0 128.0.1.17 fpc1.pic0 128.0.1.18 fpc2.pic0 128.0.1.19 fpc3.pic0 128.0.1.20 fpc4.pic0 128.0.1.21 fpc5.pic0 128.0.1.22 fpc6.pic0 128.0.1.23 fpc7.pic0 128.0.1.24 fpc8.pic0 128.0.1.25 fpc9.pic0 128.0.1.26 fpc10.pic0 128.0.1.27 fpc11.pic0 128.0.1.28 fpc12.pic0 128.0.1.29 fpc13.pic0 128.0.1.30 fpc14.pic0 128.0.1.31 fpc15.pic0 128.0.1.32 fpc16.pic0 128.0.1.33 fpc17.pic0 128.0.1.34 fpc18.pic0 128.0.1.35 fpc19.pic0 128.0.1.36 fpc20.pic0 128.0.1.37 fpc21.pic0 128.0.1.38 fpc22.pic0 128.0.1.39 fpc23.pic0 128.0.1.40 fpc24.pic0 128.0.1.41 fpc25.pic0 128.0.1.42 fpc26.pic0 128.0.1.43 fpc27.pic0 128.0.1.44 fpc28.pic0 128.0.1.45 fpc29.pic0 128.0.1.46 fpc30.pic0 128.0.1.47 fpc31.pic0 128.0.2.16 fpc0.pic1 128.0.2.17 fpc1.pic1 128.0.2.18 fpc2.pic1 128.0.2.19 fpc3.pic1 128.0.2.20 fpc4.pic1 128.0.2.21 fpc5.pic1 128.0.2.22 fpc6.pic1 128.0.2.23 fpc7.pic1 128.0.2.24 fpc8.pic1 128.0.2.25 fpc9.pic1 128.0.2.26 fpc10.pic1 128.0.2.27 fpc11.pic1 128.0.2.28 fpc12.pic1 128.0.2.29 fpc13.pic1 128.0.2.30 fpc14.pic1 128.0.2.31 fpc15.pic1 128.0.2.32 fpc16.pic1 128.0.2.33 fpc17.pic1 128.0.2.34 fpc18.pic1 128.0.2.35 fpc19.pic1 128.0.2.36 fpc20.pic1 128.0.2.37 fpc21.pic1 128.0.2.38 fpc22.pic1 128.0.2.39 fpc23.pic1 128.0.2.40 fpc24.pic1 128.0.2.41 fpc25.pic1 128.0.2.42 fpc26.pic1 128.0.2.43 fpc27.pic1 128.0.2.44 fpc28.pic1 128.0.2.45 fpc29.pic1 128.0.2.46 fpc30.pic1 128.0.2.47 fpc31.pic1 128.0.3.16 fpc0.pic2 128.0.3.17 fpc1.pic2 128.0.3.18 fpc2.pic2 128.0.3.19 fpc3.pic2 128.0.3.20 fpc4.pic2 128.0.3.21 fpc5.pic2 128.0.3.22 fpc6.pic2 128.0.3.23 fpc7.pic2 128.0.3.24 fpc8.pic2 128.0.3.25 fpc9.pic2 128.0.3.26 fpc10.pic2 128.0.3.27 fpc11.pic2 128.0.3.28 fpc12.pic2 128.0.3.29 fpc13.pic2 128.0.3.30 fpc14.pic2 128.0.3.31 fpc15.pic2 128.0.4.16 fpc0.pic3 128.0.4.17 fpc1.pic3 128.0.4.18 fpc2.pic3 128.0.4.19 fpc3.pic3 128.0.4.20 fpc4.pic3 128.0.4.21 fpc5.pic3 128.0.4.22 fpc6.pic3 128.0.4.23 fpc7.pic3 128.0.4.24 fpc8.pic3 128.0.4.25 fpc9.pic3 128.0.4.26 fpc10.pic3 128.0.4.27 fpc11.pic3 128.0.4.28 fpc12.pic3 128.0.4.29 fpc13.pic3 128.0.4.30 fpc14.pic3 128.0.4.31 fpc15.pic3 # # DCF-Root Hostname # 128.0.130.2 dcf-root # # Multi Chassis Hostnames # #SCC 144.0.0.1 scc-master 144.0.0.4 scc-re0 144.0.0.5 scc-re1 144.0.0.6 scc-backup 144.0.0.48 scc-spmb0 144.0.0.49 scc-spmb1 #LCC 0 (or MEMBER 0 on Virtual Chassis) 129.0.0.1 lcc0-master member0-master member0 129.0.0.4 lcc0-re0 member0-re0 129.0.0.5 lcc0-re1 member0-re1 129.0.0.6 lcc0-backup member0-backup 129.0.0.16 member0-fpc0 129.0.0.17 member0-fpc1 129.0.0.18 member0-fpc2 129.0.0.19 member0-fpc3 129.0.0.20 member0-fpc4 129.0.0.21 member0-fpc5 129.0.0.22 member0-fpc6 129.0.0.23 member0-fpc7 129.0.0.24 member0-fpc8 129.0.0.25 member0-fpc9 129.0.0.26 member0-fpc10 129.0.0.27 member0-fpc11 129.0.0.28 member0-fpc12 129.0.0.29 member0-fpc13 129.0.0.30 member0-fpc14 129.0.0.31 member0-fpc15 129.0.0.32 member0-fpc16 129.0.0.33 member0-fpc17 129.0.0.34 member0-fpc18 129.0.0.35 member0-fpc19 129.0.0.36 member0-fpc20 129.0.0.37 member0-fpc21 129.0.0.38 member0-fpc22 129.0.0.39 member0-fpc23 129.0.0.40 member0-fpc24 129.0.0.41 member0-fpc25 129.0.0.42 member0-fpc26 129.0.0.43 member0-fpc27 129.0.0.44 member0-fpc28 129.0.0.45 member0-fpc29 129.0.0.46 member0-fpc30 129.0.0.47 member0-fpc31 129.0.0.6 lcc0-backup 129.0.0.16 lcc0-fpc0 129.0.0.17 lcc0-fpc1 129.0.0.18 lcc0-fpc2 129.0.0.19 lcc0-fpc3 129.0.0.20 lcc0-fpc4 129.0.0.21 lcc0-fpc5 129.0.0.22 lcc0-fpc6 129.0.0.23 lcc0-fpc7 129.0.0.48 lcc0-spmb0 129.0.0.49 lcc0-spmb1 #LCC 1 (or MEMBER 1 on Virtual Chassis) 130.0.0.1 lcc1-master member1-master member1 130.0.0.4 lcc1-re0 member1-re0 130.0.0.5 lcc1-re1 member1-re1 130.0.0.6 lcc1-backup member1-backup 130.0.0.16 member1-fpc0 130.0.0.17 member1-fpc1 130.0.0.18 member1-fpc2 130.0.0.19 member1-fpc3 130.0.0.20 member1-fpc4 130.0.0.21 member1-fpc5 130.0.0.22 member1-fpc6 130.0.0.23 member1-fpc7 130.0.0.24 member1-fpc8 130.0.0.25 member1-fpc9 130.0.0.26 member1-fpc10 130.0.0.27 member1-fpc11 130.0.0.28 member1-fpc12 130.0.0.29 member1-fpc13 130.0.0.30 member1-fpc14 130.0.0.31 member1-fpc15 130.0.0.32 member1-fpc16 130.0.0.33 member1-fpc17 130.0.0.34 member1-fpc18 130.0.0.35 member1-fpc19 130.0.0.36 member1-fpc20 130.0.0.37 member1-fpc21 130.0.0.38 member1-fpc22 130.0.0.39 member1-fpc23 130.0.0.40 member1-fpc24 130.0.0.41 member1-fpc25 130.0.0.42 member1-fpc26 130.0.0.43 member1-fpc27 130.0.0.44 member1-fpc28 130.0.0.45 member1-fpc29 130.0.0.46 member1-fpc30 130.0.0.47 member1-fpc31 130.0.0.6 lcc1-backup 130.0.0.16 lcc1-fpc0 130.0.0.17 lcc1-fpc1 130.0.0.18 lcc1-fpc2 130.0.0.19 lcc1-fpc3 130.0.0.20 lcc1-fpc4 130.0.0.21 lcc1-fpc5 130.0.0.22 lcc1-fpc6 130.0.0.23 lcc1-fpc7 130.0.0.48 lcc1-spmb0 130.0.0.49 lcc1-spmb1 #LCC 2 (or MEMBER 2 on Virtual Chassis) 131.0.0.1 lcc2-master member2-master member2 131.0.0.4 lcc2-re0 member2-re0 131.0.0.5 lcc2-re1 member2-re1 131.0.0.6 lcc2-backup member2-backup 131.0.0.16 member2-fpc0 131.0.0.17 member2-fpc1 131.0.0.18 member2-fpc2 131.0.0.19 member2-fpc3 131.0.0.20 member2-fpc4 131.0.0.21 member2-fpc5 131.0.0.22 member2-fpc6 131.0.0.23 member2-fpc7 131.0.0.24 member2-fpc8 131.0.0.25 member2-fpc9 131.0.0.26 member2-fpc10 131.0.0.27 member2-fpc11 131.0.0.28 member2-fpc12 131.0.0.29 member2-fpc13 131.0.0.30 member2-fpc14 131.0.0.31 member2-fpc15 131.0.0.32 member2-fpc16 131.0.0.33 member2-fpc17 131.0.0.34 member2-fpc18 131.0.0.35 member2-fpc19 131.0.0.36 member2-fpc20 131.0.0.37 member2-fpc21 131.0.0.38 member2-fpc22 131.0.0.39 member2-fpc23 131.0.0.40 member2-fpc24 131.0.0.41 member2-fpc25 131.0.0.42 member2-fpc26 131.0.0.43 member2-fpc27 131.0.0.44 member2-fpc28 131.0.0.45 member2-fpc29 131.0.0.46 member2-fpc30 131.0.0.47 member2-fpc31 131.0.0.6 lcc2-backup 131.0.0.16 lcc2-fpc0 131.0.0.17 lcc2-fpc1 131.0.0.18 lcc2-fpc2 131.0.0.19 lcc2-fpc3 131.0.0.20 lcc2-fpc4 131.0.0.21 lcc2-fpc5 131.0.0.22 lcc2-fpc6 131.0.0.23 lcc2-fpc7 131.0.0.48 lcc2-spmb0 131.0.0.49 lcc20-spmb1 #LCC 3 (or MEMBER 3 on Virtual Chassis) 132.0.0.1 lcc3-master member3-master member3 132.0.0.4 lcc3-re0 member3-re0 132.0.0.5 lcc3-re1 member3-re1 132.0.0.6 lcc3-backup member3-backup 132.0.0.16 member3-fpc0 132.0.0.17 member3-fpc1 132.0.0.18 member3-fpc2 132.0.0.19 member3-fpc3 132.0.0.20 member3-fpc4 132.0.0.21 member3-fpc5 132.0.0.22 member3-fpc6 132.0.0.23 member3-fpc7 132.0.0.24 member3-fpc8 132.0.0.25 member3-fpc9 132.0.0.26 member3-fpc10 132.0.0.27 member3-fpc11 132.0.0.28 member3-fpc12 132.0.0.29 member3-fpc13 132.0.0.30 member3-fpc14 132.0.0.31 member3-fpc15 132.0.0.32 member3-fpc16 132.0.0.33 member3-fpc17 132.0.0.34 member3-fpc18 132.0.0.35 member3-fpc19 132.0.0.36 member3-fpc20 132.0.0.37 member3-fpc21 132.0.0.38 member3-fpc22 132.0.0.39 member3-fpc23 132.0.0.40 member3-fpc24 132.0.0.41 member3-fpc25 132.0.0.42 member3-fpc26 132.0.0.43 member3-fpc27 132.0.0.44 member3-fpc28 132.0.0.45 member3-fpc29 132.0.0.46 member3-fpc30 132.0.0.47 member3-fpc31 132.0.0.6 lcc3-backup 132.0.0.16 lcc3-fpc0 132.0.0.17 lcc3-fpc1 132.0.0.18 lcc3-fpc2 132.0.0.19 lcc3-fpc3 132.0.0.20 lcc3-fpc4 132.0.0.21 lcc3-fpc5 132.0.0.22 lcc3-fpc6 132.0.0.23 lcc3-fpc7 132.0.0.48 lcc3-spmb0 132.0.0.49 lcc3-spmb1 #LCC 4 (or MEMBER 4 on Virtual Chassis) 133.0.0.1 lcc4-master member4-master member4 133.0.0.4 lcc4-re0 member4-re0 133.0.0.5 lcc4-re1 member4-re1 133.0.0.6 lcc4-backup member4-backup 133.0.0.16 member4-fpc0 133.0.0.17 member4-fpc1 133.0.0.18 member4-fpc2 133.0.0.19 member4-fpc3 133.0.0.20 member4-fpc4 133.0.0.21 member4-fpc5 133.0.0.22 member4-fpc6 133.0.0.23 member4-fpc7 133.0.0.24 member4-fpc8 133.0.0.25 member4-fpc9 133.0.0.26 member4-fpc10 133.0.0.27 member4-fpc11 133.0.0.28 member4-fpc12 133.0.0.29 member4-fpc13 133.0.0.30 member4-fpc14 133.0.0.31 member4-fpc15 133.0.0.32 member4-fpc16 133.0.0.33 member4-fpc17 133.0.0.34 member4-fpc18 133.0.0.35 member4-fpc19 133.0.0.36 member4-fpc20 133.0.0.37 member4-fpc21 133.0.0.38 member4-fpc22 133.0.0.39 member4-fpc23 133.0.0.40 member4-fpc24 133.0.0.41 member4-fpc25 133.0.0.42 member4-fpc26 133.0.0.43 member4-fpc27 133.0.0.44 member4-fpc28 133.0.0.45 member4-fpc29 133.0.0.46 member4-fpc30 133.0.0.47 member4-fpc31 133.0.0.6 lcc4-backup 133.0.0.16 lcc4-fpc0 133.0.0.17 lcc4-fpc1 133.0.0.18 lcc4-fpc2 133.0.0.19 lcc4-fpc3 133.0.0.20 lcc4-fpc4 133.0.0.21 lcc4-fpc5 133.0.0.22 lcc4-fpc6 133.0.0.23 lcc4-fpc7 133.0.0.48 lcc4-spmb0 133.0.0.49 lcc4-spmb1 #LCC 5 (or MEMBER 5 on Virtual Chassis) 134.0.0.1 lcc5-master member5-master member5 134.0.0.4 lcc5-re0 member5-re0 134.0.0.5 lcc5-re1 member5-re1 134.0.0.6 lcc5-backup member5-backup 134.0.0.16 member5-fpc0 134.0.0.17 member5-fpc1 134.0.0.18 member5-fpc2 134.0.0.19 member5-fpc3 134.0.0.20 member5-fpc4 134.0.0.21 member5-fpc5 134.0.0.22 member5-fpc6 134.0.0.23 member5-fpc7 134.0.0.24 member5-fpc8 134.0.0.25 member5-fpc9 134.0.0.26 member5-fpc10 134.0.0.27 member5-fpc11 134.0.0.28 member5-fpc12 134.0.0.29 member5-fpc13 134.0.0.30 member5-fpc14 134.0.0.31 member5-fpc15 134.0.0.32 member5-fpc16 134.0.0.33 member5-fpc17 134.0.0.34 member5-fpc18 134.0.0.35 member5-fpc19 134.0.0.36 member5-fpc20 134.0.0.37 member5-fpc21 134.0.0.38 member5-fpc22 134.0.0.39 member5-fpc23 134.0.0.40 member5-fpc24 134.0.0.41 member5-fpc25 134.0.0.42 member5-fpc26 134.0.0.43 member5-fpc27 134.0.0.44 member5-fpc28 134.0.0.45 member5-fpc29 134.0.0.46 member5-fpc30 134.0.0.47 member5-fpc31 134.0.0.6 lcc5-backup 134.0.0.16 lcc5-fpc0 134.0.0.17 lcc5-fpc1 134.0.0.18 lcc5-fpc2 134.0.0.19 lcc5-fpc3 134.0.0.20 lcc5-fpc4 134.0.0.21 lcc5-fpc5 134.0.0.22 lcc5-fpc6 134.0.0.23 lcc5-fpc7 134.0.0.48 lcc5-spmb0 134.0.0.49 lcc5-spmb1 #LCC 6 (or MEMBER 6 on Virtual Chassis) 135.0.0.1 lcc6-master member6-master member6 135.0.0.4 lcc6-re0 member6-re0 135.0.0.5 lcc6-re1 member6-re1 135.0.0.6 lcc6-backup member6-backup 135.0.0.16 member6-fpc0 135.0.0.17 member6-fpc1 135.0.0.18 member6-fpc2 135.0.0.19 member6-fpc3 135.0.0.20 member6-fpc4 135.0.0.21 member6-fpc5 135.0.0.22 member6-fpc6 135.0.0.23 member6-fpc7 135.0.0.24 member6-fpc8 135.0.0.25 member6-fpc9 135.0.0.26 member6-fpc10 135.0.0.27 member6-fpc11 135.0.0.28 member6-fpc12 135.0.0.29 member6-fpc13 135.0.0.30 member6-fpc14 135.0.0.31 member6-fpc15 135.0.0.32 member6-fpc16 135.0.0.33 member6-fpc17 135.0.0.34 member6-fpc18 135.0.0.35 member6-fpc19 135.0.0.36 member6-fpc20 135.0.0.37 member6-fpc21 135.0.0.38 member6-fpc22 135.0.0.39 member6-fpc23 135.0.0.40 member6-fpc24 135.0.0.41 member6-fpc25 135.0.0.42 member6-fpc26 135.0.0.43 member6-fpc27 135.0.0.44 member6-fpc28 135.0.0.45 member6-fpc29 135.0.0.46 member6-fpc30 135.0.0.47 member6-fpc31 135.0.0.6 lcc6-backup 135.0.0.16 lcc6-fpc0 135.0.0.17 lcc6-fpc1 135.0.0.18 lcc6-fpc2 135.0.0.19 lcc6-fpc3 135.0.0.20 lcc6-fpc4 135.0.0.21 lcc6-fpc5 135.0.0.22 lcc6-fpc6 135.0.0.23 lcc6-fpc7 135.0.0.48 lcc6-spmb0 135.0.0.49 lcc6-spmb1 #LCC 7 (or MEMBER 7 on Virtual Chassis) 136.0.0.1 lcc7-master member7-master member7 136.0.0.4 lcc7-re0 member7-re0 136.0.0.5 lcc7-re1 member7-re1 136.0.0.6 lcc7-backup member7-backup 136.0.0.16 member7-fpc0 136.0.0.17 member7-fpc1 136.0.0.18 member7-fpc2 136.0.0.19 member7-fpc3 136.0.0.20 member7-fpc4 136.0.0.21 member7-fpc5 136.0.0.22 member7-fpc6 136.0.0.23 member7-fpc7 136.0.0.24 member7-fpc8 136.0.0.25 member7-fpc9 136.0.0.26 member7-fpc10 136.0.0.27 member7-fpc11 136.0.0.28 member7-fpc12 136.0.0.29 member7-fpc13 136.0.0.30 member7-fpc14 136.0.0.31 member7-fpc15 136.0.0.32 member7-fpc16 136.0.0.33 member7-fpc17 136.0.0.34 member7-fpc18 136.0.0.35 member7-fpc19 136.0.0.36 member7-fpc20 136.0.0.37 member7-fpc21 136.0.0.38 member7-fpc22 136.0.0.39 member7-fpc23 136.0.0.40 member7-fpc24 136.0.0.41 member7-fpc25 136.0.0.42 member7-fpc26 136.0.0.43 member7-fpc27 136.0.0.44 member7-fpc28 136.0.0.45 member7-fpc29 136.0.0.46 member7-fpc30 136.0.0.47 member7-fpc31 136.0.0.6 lcc7-backup 136.0.0.16 lcc7-fpc0 136.0.0.17 lcc7-fpc1 136.0.0.18 lcc7-fpc2 136.0.0.19 lcc7-fpc3 136.0.0.20 lcc7-fpc4 136.0.0.21 lcc7-fpc5 136.0.0.22 lcc7-fpc6 136.0.0.23 lcc7-fpc7 136.0.0.48 lcc7-spmb0 136.0.0.49 lcc7-spmb1 137.0.0.6 lcc8-backup 137.0.0.16 lcc8-fpc0 137.0.0.17 lcc8-fpc1 137.0.0.18 lcc8-fpc2 137.0.0.19 lcc8-fpc3 137.0.0.20 lcc8-fpc4 137.0.0.21 lcc8-fpc5 137.0.0.22 lcc8-fpc6 137.0.0.23 lcc8-fpc7 137.0.0.48 lcc8-spmb0 137.0.0.49 lcc8-spmb1 #LCC 8 (or MEMBER 8 on Virtual Chassis) 137.0.0.1 lcc8-master member8-master member8 137.0.0.4 lcc8-re0 member8-re0 137.0.0.5 lcc8-re1 member8-re1 137.0.0.6 lcc8-backup member8-backup 137.0.0.16 member8-fpc0 137.0.0.17 member8-fpc1 137.0.0.18 member8-fpc2 137.0.0.19 member8-fpc3 137.0.0.20 member8-fpc4 137.0.0.21 member8-fpc5 137.0.0.22 member8-fpc6 137.0.0.23 member8-fpc7 137.0.0.24 member8-fpc8 137.0.0.25 member8-fpc9 137.0.0.26 member8-fpc10 137.0.0.27 member8-fpc11 137.0.0.28 member8-fpc12 137.0.0.29 member8-fpc13 137.0.0.30 member8-fpc14 137.0.0.31 member8-fpc15 137.0.0.32 member8-fpc16 137.0.0.33 member8-fpc17 137.0.0.34 member8-fpc18 137.0.0.35 member8-fpc19 137.0.0.36 member8-fpc20 137.0.0.37 member8-fpc21 137.0.0.38 member8-fpc22 137.0.0.39 member8-fpc23 137.0.0.40 member8-fpc24 137.0.0.41 member8-fpc25 137.0.0.42 member8-fpc26 137.0.0.43 member8-fpc27 137.0.0.44 member8-fpc28 137.0.0.45 member8-fpc29 137.0.0.46 member8-fpc30 137.0.0.47 member8-fpc31 138.0.0.6 lcc9-backup 138.0.0.16 lcc9-fpc0 138.0.0.17 lcc9-fpc1 138.0.0.18 lcc9-fpc2 138.0.0.19 lcc9-fpc3 138.0.0.20 lcc9-fpc4 138.0.0.21 lcc9-fpc5 138.0.0.22 lcc9-fpc6 138.0.0.23 lcc9-fpc7 138.0.0.48 lcc9-spmb0 138.0.0.49 lcc9-spmb1 #LCC 9 (or MEMBER 9 on Virtual Chassis) 138.0.0.1 lcc9-master member9-master member9 138.0.0.4 lcc9-re0 member9-re0 138.0.0.5 lcc9-re1 member9-re1 138.0.0.6 lcc9-backup member9-backup 138.0.0.16 member9-fpc0 138.0.0.17 member9-fpc1 138.0.0.18 member9-fpc2 138.0.0.19 member9-fpc3 138.0.0.20 member9-fpc4 138.0.0.21 member9-fpc5 138.0.0.22 member9-fpc6 138.0.0.23 member9-fpc7 138.0.0.24 member9-fpc8 138.0.0.25 member9-fpc9 138.0.0.26 member9-fpc10 138.0.0.27 member9-fpc11 138.0.0.28 member9-fpc12 138.0.0.29 member9-fpc13 138.0.0.30 member9-fpc14 138.0.0.31 member9-fpc15 138.0.0.32 member9-fpc16 138.0.0.33 member9-fpc17 138.0.0.34 member9-fpc18 138.0.0.35 member9-fpc19 138.0.0.36 member9-fpc20 138.0.0.37 member9-fpc21 138.0.0.38 member9-fpc22 138.0.0.39 member9-fpc23 138.0.0.40 member9-fpc24 138.0.0.41 member9-fpc25 138.0.0.42 member9-fpc26 138.0.0.43 member9-fpc27 138.0.0.44 member9-fpc28 138.0.0.45 member9-fpc29 138.0.0.46 member9-fpc30 138.0.0.47 member9-fpc31 139.0.0.6 lcc10-backup 139.0.0.16 lcc10-fpc0 139.0.0.17 lcc10-fpc1 139.0.0.18 lcc10-fpc2 139.0.0.19 lcc10-fpc3 139.0.0.20 lcc10-fpc4 139.0.0.21 lcc10-fpc5 139.0.0.22 lcc10-fpc6 139.0.0.23 lcc10-fpc7 139.0.0.48 lcc10-spmb0 139.0.0.49 lcc10-spmb1 #LCC 10 (or MEMBER 10 on Virtual Chassis) 139.0.0.1 lcc10-master member10-master 139.0.0.4 lcc10-re0 member10-re0 139.0.0.5 lcc10-re1 member10-re1 139.0.0.6 lcc10-backup member10-backup 139.0.0.16 member10-fpc0 139.0.0.17 member10-fpc1 139.0.0.18 member10-fpc2 139.0.0.19 member10-fpc3 139.0.0.20 member10-fpc4 139.0.0.21 member10-fpc5 139.0.0.22 member10-fpc6 139.0.0.23 member10-fpc7 139.0.0.24 member10-fpc8 139.0.0.25 member10-fpc9 139.0.0.26 member10-fpc10 139.0.0.27 member10-fpc11 139.0.0.28 member10-fpc12 139.0.0.29 member10-fpc13 139.0.0.30 member10-fpc14 139.0.0.31 member10-fpc15 139.0.0.32 member10-fpc16 139.0.0.33 member10-fpc17 139.0.0.34 member10-fpc18 139.0.0.35 member10-fpc19 139.0.0.36 member10-fpc20 139.0.0.37 member10-fpc21 139.0.0.38 member10-fpc22 139.0.0.39 member10-fpc23 139.0.0.40 member10-fpc24 139.0.0.41 member10-fpc25 139.0.0.42 member10-fpc26 139.0.0.43 member10-fpc27 139.0.0.44 member10-fpc28 139.0.0.45 member10-fpc29 139.0.0.46 member10-fpc30 139.0.0.47 member10-fpc31 140.0.0.6 lcc11-backup 140.0.0.16 lcc11-fpc0 140.0.0.17 lcc11-fpc1 140.0.0.18 lcc11-fpc2 140.0.0.19 lcc11-fpc3 140.0.0.20 lcc11-fpc4 140.0.0.21 lcc11-fpc5 140.0.0.22 lcc11-fpc6 140.0.0.23 lcc11-fpc7 140.0.0.48 lcc11-spmb0 140.0.0.49 lcc11-spmb1 #LCC 11 (or MEMBER 11 on Virtual Chassis) 140.0.0.1 lcc11-master member11-master 140.0.0.4 lcc11-re0 member11-re0 140.0.0.5 lcc11-re1 member11-re1 140.0.0.6 lcc11-backup member11-backup 140.0.0.16 member11-fpc0 140.0.0.17 member11-fpc1 140.0.0.18 member11-fpc2 140.0.0.19 member11-fpc3 140.0.0.20 member11-fpc4 140.0.0.21 member11-fpc5 140.0.0.22 member11-fpc6 140.0.0.23 member11-fpc7 140.0.0.24 member11-fpc8 140.0.0.25 member11-fpc9 140.0.0.26 member11-fpc10 140.0.0.27 member11-fpc11 140.0.0.28 member11-fpc12 140.0.0.29 member11-fpc13 140.0.0.30 member11-fpc14 140.0.0.31 member11-fpc15 140.0.0.32 member11-fpc16 140.0.0.33 member11-fpc17 140.0.0.34 member11-fpc18 140.0.0.35 member11-fpc19 140.0.0.36 member11-fpc20 140.0.0.37 member11-fpc21 140.0.0.38 member11-fpc22 140.0.0.39 member11-fpc23 140.0.0.40 member11-fpc24 140.0.0.41 member11-fpc25 140.0.0.42 member11-fpc26 140.0.0.43 member11-fpc27 140.0.0.44 member11-fpc28 140.0.0.45 member11-fpc29 140.0.0.46 member11-fpc30 140.0.0.47 member11-fpc31 141.0.0.6 lcc12-backup 141.0.0.16 lcc12-fpc0 141.0.0.17 lcc12-fpc1 141.0.0.18 lcc12-fpc2 141.0.0.19 lcc12-fpc3 141.0.0.20 lcc12-fpc4 141.0.0.21 lcc12-fpc5 141.0.0.22 lcc12-fpc6 141.0.0.23 lcc12-fpc7 141.0.0.48 lcc12-spmb0 141.0.0.49 lcc12-spmb1 #LCC 12 (or MEMBER 12 on Virtual Chassis) 141.0.0.1 lcc12-master member12-master 141.0.0.4 lcc12-re0 member12-re0 141.0.0.5 lcc12-re1 member12-re1 141.0.0.6 lcc12-backup member12-backup 141.0.0.16 member12-fpc0 141.0.0.17 member12-fpc1 141.0.0.18 member12-fpc2 141.0.0.19 member12-fpc3 141.0.0.20 member12-fpc4 141.0.0.21 member12-fpc5 141.0.0.22 member12-fpc6 141.0.0.23 member12-fpc7 141.0.0.24 member12-fpc8 141.0.0.25 member12-fpc9 141.0.0.26 member12-fpc10 141.0.0.27 member12-fpc11 141.0.0.28 member12-fpc12 141.0.0.29 member12-fpc13 141.0.0.30 member12-fpc14 141.0.0.31 member12-fpc15 141.0.0.32 member12-fpc16 141.0.0.33 member12-fpc17 141.0.0.34 member12-fpc18 141.0.0.35 member12-fpc19 141.0.0.36 member12-fpc20 141.0.0.37 member12-fpc21 141.0.0.38 member12-fpc22 141.0.0.39 member12-fpc23 141.0.0.40 member12-fpc24 141.0.0.41 member12-fpc25 141.0.0.42 member12-fpc26 141.0.0.43 member12-fpc27 141.0.0.44 member12-fpc28 141.0.0.45 member12-fpc29 141.0.0.46 member12-fpc30 141.0.0.47 member12-fpc31 142.0.0.6 lcc13-backup 142.0.0.16 lcc13-fpc0 142.0.0.17 lcc13-fpc1 142.0.0.18 lcc13-fpc2 142.0.0.19 lcc13-fpc3 142.0.0.20 lcc13-fpc4 142.0.0.21 lcc13-fpc5 142.0.0.22 lcc13-fpc6 142.0.0.23 lcc13-fpc7 142.0.0.48 lcc13-spmb0 142.0.0.49 lcc13-spmb1 #LCC 13 (or MEMBER 13 on Virtual Chassis) 142.0.0.1 lcc13-master member13-master 142.0.0.4 lcc13-re0 member13-re0 142.0.0.5 lcc13-re1 member13-re1 142.0.0.6 lcc13-backup member13-backup 142.0.0.16 member13-fpc0 142.0.0.17 member13-fpc1 142.0.0.18 member13-fpc2 142.0.0.19 member13-fpc3 142.0.0.20 member13-fpc4 142.0.0.21 member13-fpc5 142.0.0.22 member13-fpc6 142.0.0.23 member13-fpc7 142.0.0.24 member13-fpc8 142.0.0.25 member13-fpc9 142.0.0.26 member13-fpc10 142.0.0.27 member13-fpc11 142.0.0.28 member13-fpc12 142.0.0.29 member13-fpc13 142.0.0.30 member13-fpc14 142.0.0.31 member13-fpc15 142.0.0.32 member13-fpc16 142.0.0.33 member13-fpc17 142.0.0.34 member13-fpc18 142.0.0.35 member13-fpc19 142.0.0.36 member13-fpc20 142.0.0.37 member13-fpc21 142.0.0.38 member13-fpc22 142.0.0.39 member13-fpc23 142.0.0.40 member13-fpc24 142.0.0.41 member13-fpc25 142.0.0.42 member13-fpc26 142.0.0.43 member13-fpc27 142.0.0.44 member13-fpc28 142.0.0.45 member13-fpc29 142.0.0.46 member13-fpc30 142.0.0.47 member13-fpc31 143.0.0.6 lcc14-backup 143.0.0.16 lcc14-fpc0 143.0.0.17 lcc14-fpc1 143.0.0.18 lcc14-fpc2 143.0.0.19 lcc14-fpc3 143.0.0.20 lcc14-fpc4 143.0.0.21 lcc14-fpc5 143.0.0.22 lcc14-fpc6 143.0.0.23 lcc14-fpc7 143.0.0.48 lcc14-spmb0 143.0.0.49 lcc14-spmb1 #LCC 14 (or MEMBER 14 on Virtual Chassis) 143.0.0.1 lcc14-master member14-master 143.0.0.4 lcc14-re0 member14-re0 143.0.0.5 lcc14-re1 member14-re1 143.0.0.6 lcc14-backup member14-backup 143.0.0.16 member14-fpc0 143.0.0.17 member14-fpc1 143.0.0.18 member14-fpc2 143.0.0.19 member14-fpc3 143.0.0.20 member14-fpc4 143.0.0.21 member14-fpc5 143.0.0.22 member14-fpc6 143.0.0.23 member14-fpc7 143.0.0.24 member14-fpc8 143.0.0.25 member14-fpc9 143.0.0.26 member14-fpc10 143.0.0.27 member14-fpc11 143.0.0.28 member14-fpc12 143.0.0.29 member14-fpc13 143.0.0.30 member14-fpc14 143.0.0.31 member14-fpc15 143.0.0.32 member14-fpc16 143.0.0.33 member14-fpc17 143.0.0.34 member14-fpc18 143.0.0.35 member14-fpc19 143.0.0.36 member14-fpc20 143.0.0.37 member14-fpc21 143.0.0.38 member14-fpc22 143.0.0.39 member14-fpc23 143.0.0.40 member14-fpc24 143.0.0.41 member14-fpc25 143.0.0.42 member14-fpc26 143.0.0.43 member14-fpc27 143.0.0.44 member14-fpc28 143.0.0.45 member14-fpc29 143.0.0.46 member14-fpc30 143.0.0.47 member14-fpc31 144.0.0.6 lcc15-backup 144.0.0.16 lcc15-fpc0 144.0.0.17 lcc15-fpc1 144.0.0.18 lcc15-fpc2 144.0.0.19 lcc15-fpc3 144.0.0.20 lcc15-fpc4 144.0.0.21 lcc15-fpc5 144.0.0.22 lcc15-fpc6 144.0.0.23 lcc15-fpc7 144.0.0.48 lcc15-spmb0 144.0.0.49 lcc15-spmb1 #LCC 15 (or MEMBER 15 on Virtual Chassis) 144.0.0.1 lcc15-master member15-master 144.0.0.4 lcc15-re0 member15-re0 144.0.0.5 lcc15-re1 member15-re1 144.0.0.6 lcc15-backup member15-backup 144.0.0.16 member15-fpc0 144.0.0.17 member15-fpc1 144.0.0.18 member15-fpc2 144.0.0.19 member15-fpc3 144.0.0.20 member15-fpc4 144.0.0.21 member15-fpc5 144.0.0.22 member15-fpc6 144.0.0.23 member15-fpc7 144.0.0.24 member15-fpc8 144.0.0.25 member15-fpc9 144.0.0.26 member15-fpc10 144.0.0.27 member15-fpc11 144.0.0.28 member15-fpc12 144.0.0.29 member15-fpc13 144.0.0.30 member15-fpc14 144.0.0.31 member15-fpc15 144.0.0.32 member15-fpc16 144.0.0.33 member15-fpc17 144.0.0.34 member15-fpc18 144.0.0.35 member15-fpc19 144.0.0.36 member15-fpc20 144.0.0.37 member15-fpc21 144.0.0.38 member15-fpc22 144.0.0.39 member15-fpc23 144.0.0.40 member15-fpc24 144.0.0.41 member15-fpc25 144.0.0.42 member15-fpc26 144.0.0.43 member15-fpc27 144.0.0.44 member15-fpc28 144.0.0.45 member15-fpc29 144.0.0.46 member15-fpc30 144.0.0.47 member15-fpc31 #LCC 16 (or MEMBER 16 on Virtual Chassis) 145.0.0.1 lcc16-master member16-master 145.0.0.4 lcc16-re0 member16-re0 145.0.0.5 lcc16-re1 member16-re1 145.0.0.6 lcc16-backup member16-backup 145.0.0.16 member16-fpc0 145.0.0.17 member16-fpc1 145.0.0.18 member16-fpc2 145.0.0.19 member16-fpc3 145.0.0.20 member16-fpc4 145.0.0.21 member16-fpc5 145.0.0.22 member16-fpc6 145.0.0.23 member16-fpc7 145.0.0.24 member16-fpc8 145.0.0.25 member16-fpc9 145.0.0.26 member16-fpc10 145.0.0.27 member16-fpc11 145.0.0.28 member16-fpc12 145.0.0.29 member16-fpc13 145.0.0.30 member16-fpc14 145.0.0.31 member16-fpc15 145.0.0.32 member16-fpc16 145.0.0.33 member16-fpc17 145.0.0.34 member16-fpc18 145.0.0.35 member16-fpc19 145.0.0.36 member16-fpc20 145.0.0.37 member16-fpc21 145.0.0.38 member16-fpc22 145.0.0.39 member16-fpc23 145.0.0.40 member16-fpc24 145.0.0.41 member16-fpc25 145.0.0.42 member16-fpc26 145.0.0.43 member16-fpc27 145.0.0.44 member16-fpc28 145.0.0.45 member16-fpc29 145.0.0.46 member16-fpc30 145.0.0.47 member16-fpc31 #LCC 17 (or MEMBER 17 on Virtual Chassis) 146.0.0.1 lcc17-master member17-master 146.0.0.4 lcc17-re0 member17-re0 146.0.0.5 lcc17-re1 member17-re1 146.0.0.6 lcc17-backup member17-backup 146.0.0.16 member17-fpc0 146.0.0.17 member17-fpc1 146.0.0.18 member17-fpc2 146.0.0.19 member17-fpc3 146.0.0.20 member17-fpc4 146.0.0.21 member17-fpc5 146.0.0.22 member17-fpc6 146.0.0.23 member17-fpc7 146.0.0.24 member17-fpc8 146.0.0.25 member17-fpc9 146.0.0.26 member17-fpc10 146.0.0.27 member17-fpc11 146.0.0.28 member17-fpc12 146.0.0.29 member17-fpc13 146.0.0.30 member17-fpc14 146.0.0.31 member17-fpc15 146.0.0.32 member17-fpc16 146.0.0.33 member17-fpc17 146.0.0.34 member17-fpc18 146.0.0.35 member17-fpc19 146.0.0.36 member17-fpc20 146.0.0.37 member17-fpc21 146.0.0.38 member17-fpc22 146.0.0.39 member17-fpc23 146.0.0.40 member17-fpc24 146.0.0.41 member17-fpc25 146.0.0.42 member17-fpc26 146.0.0.43 member17-fpc27 146.0.0.44 member17-fpc28 146.0.0.45 member17-fpc29 146.0.0.46 member17-fpc30 146.0.0.47 member17-fpc31 #LCC 18 (or MEMBER 18 on Virtual Chassis) 147.0.0.1 lcc18-master member18-master 147.0.0.4 lcc18-re0 member18-re0 147.0.0.5 lcc18-re1 member18-re1 147.0.0.6 lcc18-backup member18-backup 147.0.0.16 member18-fpc0 147.0.0.17 member18-fpc1 147.0.0.18 member18-fpc2 147.0.0.19 member18-fpc3 147.0.0.20 member18-fpc4 147.0.0.21 member18-fpc5 147.0.0.22 member18-fpc6 147.0.0.23 member18-fpc7 147.0.0.24 member18-fpc8 147.0.0.25 member18-fpc9 147.0.0.26 member18-fpc10 147.0.0.27 member18-fpc11 147.0.0.28 member18-fpc12 147.0.0.29 member18-fpc13 147.0.0.30 member18-fpc14 147.0.0.31 member18-fpc15 147.0.0.32 member18-fpc16 147.0.0.33 member18-fpc17 147.0.0.34 member18-fpc18 147.0.0.35 member18-fpc19 147.0.0.36 member18-fpc20 147.0.0.37 member18-fpc21 147.0.0.38 member18-fpc22 147.0.0.39 member18-fpc23 147.0.0.40 member18-fpc24 147.0.0.41 member18-fpc25 147.0.0.42 member18-fpc26 147.0.0.43 member18-fpc27 147.0.0.44 member18-fpc28 147.0.0.45 member18-fpc29 147.0.0.46 member18-fpc30 147.0.0.47 member18-fpc31 #LCC 19 (or MEMBER 19 on Virtual Chassis) 148.0.0.1 lcc19-master member19-master 148.0.0.4 lcc19-re0 member19-re0 148.0.0.5 lcc19-re1 member19-re1 148.0.0.6 lcc19-backup member19-backup 148.0.0.16 member19-fpc0 148.0.0.17 member19-fpc1 148.0.0.18 member19-fpc2 148.0.0.19 member19-fpc3 148.0.0.20 member19-fpc4 148.0.0.21 member19-fpc5 148.0.0.22 member19-fpc6 148.0.0.23 member19-fpc7 148.0.0.24 member19-fpc8 148.0.0.25 member19-fpc9 148.0.0.26 member19-fpc10 148.0.0.27 member19-fpc11 148.0.0.28 member19-fpc12 148.0.0.29 member19-fpc13 148.0.0.30 member19-fpc14 148.0.0.31 member19-fpc15 148.0.0.32 member19-fpc16 148.0.0.33 member19-fpc17 148.0.0.34 member19-fpc18 148.0.0.35 member19-fpc19 148.0.0.36 member19-fpc20 148.0.0.37 member19-fpc21 148.0.0.38 member19-fpc22 148.0.0.39 member19-fpc23 148.0.0.40 member19-fpc24 148.0.0.41 member19-fpc25 148.0.0.42 member19-fpc26 148.0.0.43 member19-fpc27 148.0.0.44 member19-fpc28 148.0.0.45 member19-fpc29 148.0.0.46 member19-fpc30 148.0.0.47 member19-fpc31 #LCC 20 (or MEMBER 20 on Virtual Chassis) 149.0.0.1 lcc20-master member20-master 149.0.0.4 lcc20-re0 member20-re0 149.0.0.5 lcc20-re1 member20-re1 149.0.0.6 lcc20-backup member20-backup 149.0.0.16 member20-fpc0 149.0.0.17 member20-fpc1 149.0.0.18 member20-fpc2 149.0.0.19 member20-fpc3 149.0.0.20 member20-fpc4 149.0.0.21 member20-fpc5 149.0.0.22 member20-fpc6 149.0.0.23 member20-fpc7 149.0.0.24 member20-fpc8 149.0.0.25 member20-fpc9 149.0.0.26 member20-fpc10 149.0.0.27 member20-fpc11 149.0.0.28 member20-fpc12 149.0.0.29 member20-fpc13 149.0.0.30 member20-fpc14 149.0.0.31 member20-fpc15 149.0.0.32 member20-fpc16 149.0.0.33 member20-fpc17 149.0.0.34 member20-fpc18 149.0.0.35 member20-fpc19 149.0.0.36 member20-fpc20 149.0.0.37 member20-fpc21 149.0.0.38 member20-fpc22 149.0.0.39 member20-fpc23 149.0.0.40 member20-fpc24 149.0.0.41 member20-fpc25 149.0.0.42 member20-fpc26 149.0.0.43 member20-fpc27 149.0.0.44 member20-fpc28 149.0.0.45 member20-fpc29 149.0.0.46 member20-fpc30 149.0.0.47 member20-fpc31 #LCC 21 (or MEMBER 21 on Virtual Chassis) 150.0.0.1 lcc21-master member21-master 150.0.0.4 lcc21-re0 member21-re0 150.0.0.5 lcc21-re1 member21-re1 150.0.0.6 lcc21-backup member21-backup 150.0.0.16 member21-fpc0 150.0.0.17 member21-fpc1 150.0.0.18 member21-fpc2 150.0.0.19 member21-fpc3 150.0.0.20 member21-fpc4 150.0.0.21 member21-fpc5 150.0.0.22 member21-fpc6 150.0.0.23 member21-fpc7 150.0.0.24 member21-fpc8 150.0.0.25 member21-fpc9 150.0.0.26 member21-fpc10 150.0.0.27 member21-fpc11 150.0.0.28 member21-fpc12 150.0.0.29 member21-fpc13 150.0.0.30 member21-fpc14 150.0.0.31 member21-fpc15 150.0.0.32 member21-fpc16 150.0.0.33 member21-fpc17 150.0.0.34 member21-fpc18 150.0.0.35 member21-fpc19 150.0.0.36 member21-fpc20 150.0.0.37 member21-fpc21 150.0.0.38 member21-fpc22 150.0.0.39 member21-fpc23 150.0.0.40 member21-fpc24 150.0.0.41 member21-fpc25 150.0.0.42 member21-fpc26 150.0.0.43 member21-fpc27 150.0.0.44 member21-fpc28 150.0.0.45 member21-fpc29 150.0.0.46 member21-fpc30 150.0.0.47 member21-fpc31 #LCC 22 (or MEMBER 22 on Virtual Chassis) 151.0.0.1 lcc22-master member22-master 151.0.0.4 lcc22-re0 member22-re0 151.0.0.5 lcc22-re1 member22-re1 151.0.0.6 lcc22-backup member22-backup 151.0.0.16 member22-fpc0 151.0.0.17 member22-fpc1 151.0.0.18 member22-fpc2 151.0.0.19 member22-fpc3 151.0.0.20 member22-fpc4 151.0.0.21 member22-fpc5 151.0.0.22 member22-fpc6 151.0.0.23 member22-fpc7 151.0.0.24 member22-fpc8 151.0.0.25 member22-fpc9 151.0.0.26 member22-fpc10 151.0.0.27 member22-fpc11 151.0.0.28 member22-fpc12 151.0.0.29 member22-fpc13 151.0.0.30 member22-fpc14 151.0.0.31 member22-fpc15 151.0.0.32 member22-fpc16 151.0.0.33 member22-fpc17 151.0.0.34 member22-fpc18 151.0.0.35 member22-fpc19 151.0.0.36 member22-fpc20 151.0.0.37 member22-fpc21 151.0.0.38 member22-fpc22 151.0.0.39 member22-fpc23 151.0.0.40 member22-fpc24 151.0.0.41 member22-fpc25 151.0.0.42 member22-fpc26 151.0.0.43 member22-fpc27 151.0.0.44 member22-fpc28 151.0.0.45 member22-fpc29 151.0.0.46 member22-fpc30 151.0.0.47 member22-fpc31 #LCC 23 (or MEMBER 23 on Virtual Chassis) 152.0.0.1 lcc23-master member23-master 152.0.0.4 lcc23-re0 member23-re0 152.0.0.5 lcc23-re1 member23-re1 152.0.0.6 lcc23-backup member23-backup 152.0.0.16 member23-fpc0 152.0.0.17 member23-fpc1 152.0.0.18 member23-fpc2 152.0.0.19 member23-fpc3 152.0.0.20 member23-fpc4 152.0.0.21 member23-fpc5 152.0.0.22 member23-fpc6 152.0.0.23 member23-fpc7 152.0.0.24 member23-fpc8 152.0.0.25 member23-fpc9 152.0.0.26 member23-fpc10 152.0.0.27 member23-fpc11 152.0.0.28 member23-fpc12 152.0.0.29 member23-fpc13 152.0.0.30 member23-fpc14 152.0.0.31 member23-fpc15 152.0.0.32 member23-fpc16 152.0.0.33 member23-fpc17 152.0.0.34 member23-fpc18 152.0.0.35 member23-fpc19 152.0.0.36 member23-fpc20 152.0.0.37 member23-fpc21 152.0.0.38 member23-fpc22 152.0.0.39 member23-fpc23 152.0.0.40 member23-fpc24 152.0.0.41 member23-fpc25 152.0.0.42 member23-fpc26 152.0.0.43 member23-fpc27 152.0.0.44 member23-fpc28 152.0.0.45 member23-fpc29 152.0.0.46 member23-fpc30 152.0.0.47 member23-fpc31 #LCC 24 (or MEMBER 24 on Virtual Chassis) 153.0.0.1 lcc24-master member24-master 153.0.0.4 lcc24-re0 member24-re0 153.0.0.5 lcc24-re1 member24-re1 153.0.0.6 lcc24-backup member24-backup 153.0.0.16 member24-fpc0 153.0.0.17 member24-fpc1 153.0.0.18 member24-fpc2 153.0.0.19 member24-fpc3 153.0.0.20 member24-fpc4 153.0.0.21 member24-fpc5 153.0.0.22 member24-fpc6 153.0.0.23 member24-fpc7 153.0.0.24 member24-fpc8 153.0.0.25 member24-fpc9 153.0.0.26 member24-fpc10 153.0.0.27 member24-fpc11 153.0.0.28 member24-fpc12 153.0.0.29 member24-fpc13 153.0.0.30 member24-fpc14 153.0.0.31 member24-fpc15 153.0.0.32 member24-fpc16 153.0.0.33 member24-fpc17 153.0.0.34 member24-fpc18 153.0.0.35 member24-fpc19 153.0.0.36 member24-fpc20 153.0.0.37 member24-fpc21 153.0.0.38 member24-fpc22 153.0.0.39 member24-fpc23 153.0.0.40 member24-fpc24 153.0.0.41 member24-fpc25 153.0.0.42 member24-fpc26 153.0.0.43 member24-fpc27 153.0.0.44 member24-fpc28 153.0.0.45 member24-fpc29 153.0.0.46 member24-fpc30 153.0.0.47 member24-fpc31 #LCC 25 (or MEMBER 25 on Virtual Chassis) 154.0.0.1 lcc25-master member25-master 154.0.0.4 lcc25-re0 member25-re0 154.0.0.5 lcc25-re1 member25-re1 154.0.0.6 lcc25-backup member25-backup 154.0.0.16 member25-fpc0 154.0.0.17 member25-fpc1 154.0.0.18 member25-fpc2 154.0.0.19 member25-fpc3 154.0.0.20 member25-fpc4 154.0.0.21 member25-fpc5 154.0.0.22 member25-fpc6 154.0.0.23 member25-fpc7 154.0.0.24 member25-fpc8 154.0.0.25 member25-fpc9 154.0.0.26 member25-fpc10 154.0.0.27 member25-fpc11 154.0.0.28 member25-fpc12 154.0.0.29 member25-fpc13 154.0.0.30 member25-fpc14 154.0.0.31 member25-fpc15 154.0.0.32 member25-fpc16 154.0.0.33 member25-fpc17 154.0.0.34 member25-fpc18 154.0.0.35 member25-fpc19 154.0.0.36 member25-fpc20 154.0.0.37 member25-fpc21 154.0.0.38 member25-fpc22 154.0.0.39 member25-fpc23 154.0.0.40 member25-fpc24 154.0.0.41 member25-fpc25 154.0.0.42 member25-fpc26 154.0.0.43 member25-fpc27 154.0.0.44 member25-fpc28 154.0.0.45 member25-fpc29 154.0.0.46 member25-fpc30 154.0.0.47 member25-fpc31 #LCC 26 (or MEMBER 26 on Virtual Chassis) 155.0.0.1 lcc26-master member26-master 155.0.0.4 lcc26-re0 member26-re0 155.0.0.5 lcc26-re1 member26-re1 155.0.0.6 lcc26-backup member26-backup 155.0.0.16 member26-fpc0 155.0.0.17 member26-fpc1 155.0.0.18 member26-fpc2 155.0.0.19 member26-fpc3 155.0.0.20 member26-fpc4 155.0.0.21 member26-fpc5 155.0.0.22 member26-fpc6 155.0.0.23 member26-fpc7 155.0.0.24 member26-fpc8 155.0.0.25 member26-fpc9 155.0.0.26 member26-fpc10 155.0.0.27 member26-fpc11 155.0.0.28 member26-fpc12 155.0.0.29 member26-fpc13 155.0.0.30 member26-fpc14 155.0.0.31 member26-fpc15 155.0.0.32 member26-fpc16 155.0.0.33 member26-fpc17 155.0.0.34 member26-fpc18 155.0.0.35 member26-fpc19 155.0.0.36 member26-fpc20 155.0.0.37 member26-fpc21 155.0.0.38 member26-fpc22 155.0.0.39 member26-fpc23 155.0.0.40 member26-fpc24 155.0.0.41 member26-fpc25 155.0.0.42 member26-fpc26 155.0.0.43 member26-fpc27 155.0.0.44 member26-fpc28 155.0.0.45 member26-fpc29 155.0.0.46 member26-fpc30 155.0.0.47 member26-fpc31 #LCC 27 (or MEMBER 27 on Virtual Chassis) 156.0.0.1 lcc27-master member27-master 156.0.0.4 lcc27-re0 member27-re0 156.0.0.5 lcc27-re1 member27-re1 156.0.0.6 lcc27-backup member27-backup 156.0.0.16 member27-fpc0 156.0.0.17 member27-fpc1 156.0.0.18 member27-fpc2 156.0.0.19 member27-fpc3 156.0.0.20 member27-fpc4 156.0.0.21 member27-fpc5 156.0.0.22 member27-fpc6 156.0.0.23 member27-fpc7 156.0.0.24 member27-fpc8 156.0.0.25 member27-fpc9 156.0.0.26 member27-fpc10 156.0.0.27 member27-fpc11 156.0.0.28 member27-fpc12 156.0.0.29 member27-fpc13 156.0.0.30 member27-fpc14 156.0.0.31 member27-fpc15 156.0.0.32 member27-fpc16 156.0.0.33 member27-fpc17 156.0.0.34 member27-fpc18 156.0.0.35 member27-fpc19 156.0.0.36 member27-fpc20 156.0.0.37 member27-fpc21 156.0.0.38 member27-fpc22 156.0.0.39 member27-fpc23 156.0.0.40 member27-fpc24 156.0.0.41 member27-fpc25 156.0.0.42 member27-fpc26 156.0.0.43 member27-fpc27 156.0.0.44 member27-fpc28 156.0.0.45 member27-fpc29 156.0.0.46 member27-fpc30 156.0.0.47 member27-fpc31 #LCC 28 (or MEMBER 28 on Virtual Chassis) 157.0.0.1 lcc28-master member28-master 157.0.0.4 lcc28-re0 member28-re0 157.0.0.5 lcc28-re1 member28-re1 157.0.0.6 lcc28-backup member28-backup 157.0.0.16 member28-fpc0 157.0.0.17 member28-fpc1 157.0.0.18 member28-fpc2 157.0.0.19 member28-fpc3 157.0.0.20 member28-fpc4 157.0.0.21 member28-fpc5 157.0.0.22 member28-fpc6 157.0.0.23 member28-fpc7 157.0.0.24 member28-fpc8 157.0.0.25 member28-fpc9 157.0.0.26 member28-fpc10 157.0.0.27 member28-fpc11 157.0.0.28 member28-fpc12 157.0.0.29 member28-fpc13 157.0.0.30 member28-fpc14 157.0.0.31 member28-fpc15 157.0.0.32 member28-fpc16 157.0.0.33 member28-fpc17 157.0.0.34 member28-fpc18 157.0.0.35 member28-fpc19 157.0.0.36 member28-fpc20 157.0.0.37 member28-fpc21 157.0.0.38 member28-fpc22 157.0.0.39 member28-fpc23 157.0.0.40 member28-fpc24 157.0.0.41 member28-fpc25 157.0.0.42 member28-fpc26 157.0.0.43 member28-fpc27 157.0.0.44 member28-fpc28 157.0.0.45 member28-fpc29 157.0.0.46 member28-fpc30 157.0.0.47 member28-fpc31 #LCC 29 (or MEMBER 29 on Virtual Chassis) 158.0.0.1 lcc29-master member29-master 158.0.0.4 lcc29-re0 member29-re0 158.0.0.5 lcc29-re1 member29-re1 158.0.0.6 lcc29-backup member29-backup 158.0.0.16 member29-fpc0 158.0.0.17 member29-fpc1 158.0.0.18 member29-fpc2 158.0.0.19 member29-fpc3 158.0.0.20 member29-fpc4 158.0.0.21 member29-fpc5 158.0.0.22 member29-fpc6 158.0.0.23 member29-fpc7 158.0.0.24 member29-fpc8 158.0.0.25 member29-fpc9 158.0.0.26 member29-fpc10 158.0.0.27 member29-fpc11 158.0.0.28 member29-fpc12 158.0.0.29 member29-fpc13 158.0.0.30 member29-fpc14 158.0.0.31 member29-fpc15 158.0.0.32 member29-fpc16 158.0.0.33 member29-fpc17 158.0.0.34 member29-fpc18 158.0.0.35 member29-fpc19 158.0.0.36 member29-fpc20 158.0.0.37 member29-fpc21 158.0.0.38 member29-fpc22 158.0.0.39 member29-fpc23 158.0.0.40 member29-fpc24 158.0.0.41 member29-fpc25 158.0.0.42 member29-fpc26 158.0.0.43 member29-fpc27 158.0.0.44 member29-fpc28 158.0.0.45 member29-fpc29 158.0.0.46 member29-fpc30 158.0.0.47 member29-fpc31 #LCC 30 (or MEMBER 30 on Virtual Chassis) 159.0.0.1 lcc30-master member30-master 159.0.0.4 lcc30-re0 member30-re0 159.0.0.5 lcc30-re1 member30-re1 159.0.0.6 lcc30-backup member30-backup 159.0.0.16 member30-fpc0 159.0.0.17 member30-fpc1 159.0.0.18 member30-fpc2 159.0.0.19 member30-fpc3 159.0.0.20 member30-fpc4 159.0.0.21 member30-fpc5 159.0.0.22 member30-fpc6 159.0.0.23 member30-fpc7 159.0.0.24 member30-fpc8 159.0.0.25 member30-fpc9 159.0.0.26 member30-fpc10 159.0.0.27 member30-fpc11 159.0.0.28 member30-fpc12 159.0.0.29 member30-fpc13 159.0.0.30 member30-fpc14 159.0.0.31 member30-fpc15 159.0.0.32 member30-fpc16 159.0.0.33 member30-fpc17 159.0.0.34 member30-fpc18 159.0.0.35 member30-fpc19 159.0.0.36 member30-fpc20 159.0.0.37 member30-fpc21 159.0.0.38 member30-fpc22 159.0.0.39 member30-fpc23 159.0.0.40 member30-fpc24 159.0.0.41 member30-fpc25 159.0.0.42 member30-fpc26 159.0.0.43 member30-fpc27 159.0.0.44 member30-fpc28 159.0.0.45 member30-fpc29 159.0.0.46 member30-fpc30 159.0.0.47 member30-fpc31 #LCC 31 (or MEMBER 31 on Virtual Chassis) 160.0.0.1 lcc31-master member31-master 160.0.0.4 lcc31-re0 member31-re0 160.0.0.5 lcc31-re1 member31-re1 160.0.0.6 lcc31-backup member31-backup 160.0.0.16 member31-fpc0 160.0.0.17 member31-fpc1 160.0.0.18 member31-fpc2 160.0.0.19 member31-fpc3 160.0.0.20 member31-fpc4 160.0.0.21 member31-fpc5 160.0.0.22 member31-fpc6 160.0.0.23 member31-fpc7 160.0.0.24 member31-fpc8 160.0.0.25 member31-fpc9 160.0.0.26 member31-fpc10 160.0.0.27 member31-fpc11 160.0.0.28 member31-fpc12 160.0.0.29 member31-fpc13 160.0.0.30 member31-fpc14 160.0.0.31 member31-fpc15 160.0.0.32 member31-fpc16 160.0.0.33 member31-fpc17 160.0.0.34 member31-fpc18 160.0.0.35 member31-fpc19 160.0.0.36 member31-fpc20 160.0.0.37 member31-fpc21 160.0.0.38 member31-fpc22 160.0.0.39 member31-fpc23 160.0.0.40 member31-fpc24 160.0.0.41 member31-fpc25 160.0.0.42 member31-fpc26 160.0.0.43 member31-fpc27 160.0.0.44 member31-fpc28 160.0.0.45 member31-fpc29 160.0.0.46 member31-fpc30 160.0.0.47 member31-fpc31 #VIRT SC 161.0.0.1 sc-master 161.0.0.4 sc-re0 161.0.0.5 sc-re1 161.0.0.6 sc-backup #SFC 0 162.0.0.1 sfc0-master 162.0.0.4 sfc0-re0 162.0.0.5 sfc0-re1 162.0.0.6 sfc0-backup 162.0.0.48 sfc0-spmb0 162.0.0.49 sfc0-spmb1 #SFC 1 163.0.0.1 sfc1-master 163.0.0.4 sfc1-re0 163.0.0.5 sfc1-re1 163.0.0.6 sfc1-backup 163.0.0.48 sfc1-spmb0 163.0.0.49 sfc1-spmb1 #SFC 2 164.0.0.1 sfc2-master 164.0.0.4 sfc2-re0 164.0.0.5 sfc2-re1 164.0.0.6 sfc2-backup 164.0.0.48 sfc2-spmb0 164.0.0.49 sfc2-spmb1 #SFC 3 165.0.0.1 sfc3-master 165.0.0.4 sfc3-re0 165.0.0.5 sfc3-re1 165.0.0.6 sfc3-backup 165.0.0.48 sfc3-spmb0 165.0.0.49 sfc3-spmb1 #SFC 4 166.0.0.1 sfc4-master 166.0.0.4 sfc4-re0 166.0.0.5 sfc4-re1 166.0.0.6 sfc4-backup 166.0.0.48 sfc4-spmb0 166.0.0.49 sfc4-spmb1 #JCS 190.0.0.1 psd%d-master 190.0.0.4 psd%d-re0 190.0.0.5 psd%d-re1 190.0.0.6 psd%d-backup # Old IP address format (RT_IRS_V2) # # Single Chassis Hostnames # 10.0.0.1 master 10.0.0.4 re0 10.0.0.5 re1 10.0.0.16 fpc0 10.0.0.17 fpc1 10.0.0.18 fpc2 10.0.0.19 fpc3 10.0.0.20 fpc4 10.0.0.21 fpc5 10.0.0.22 fpc6 10.0.0.23 fpc7 10.0.0.24 fpc8 10.0.0.25 fpc9 10.0.0.26 fpc10 10.0.0.27 fpc11 10.0.0.28 fpc12 10.0.0.29 fpc13 10.0.0.30 fpc14 10.0.0.31 fpc15 # # Multi Chassis Hostnames # #SCC 10.16.0.1 scc-master 10.16.0.4 scc-re0 10.16.0.5 scc-re1 #LCC 0 10.1.0.1 lcc0-master member0-master 10.1.0.4 lcc0-re0 member0-re0 10.1.0.5 lcc0-re1 member0-re1 10.1.0.6 lcc0-backup member0-backup #LCC 1 10.2.0.1 lcc1-master member1-master 10.2.0.4 lcc1-re0 member1-re0 10.2.0.5 lcc1-re1 member1-re1 10.2.0.6 lcc1-backup member1-backup #LCC 2 10.3.0.1 lcc2-master member2-master 10.3.0.4 lcc2-re0 member2-re0 10.3.0.5 lcc2-re1 member2-re1 10.3.0.6 lcc2-backup member2-backup #LCC 3 10.4.0.1 lcc3-master member3-master 10.4.0.4 lcc3-re0 member3-re0 10.4.0.5 lcc3-re1 member3-re1 10.4.0.6 lcc3-backup member3-backup #LCC 4 10.5.0.1 lcc4-master member4-master 10.5.0.4 lcc4-re0 member4-re0 10.5.0.5 lcc4-re1 member4-re1 10.5.0.6 lcc4-backup member4-backup #LCC 5 10.6.0.1 lcc5-master member5-master 10.6.0.4 lcc5-re0 member5-re0 10.6.0.5 lcc5-re1 member5-re1 10.6.0.6 lcc5-backup member5-backup #LCC 6 10.7.0.1 lcc6-master member6-master 10.7.0.4 lcc6-re0 member6-re0 10.7.0.5 lcc6-re1 member6-re1 10.7.0.6 lcc6-backup member6-backup #LCC 7 10.8.0.1 lcc7-master member7-master 10.8.0.4 lcc7-re0 member7-re0 10.8.0.5 lcc7-re1 member7-re1 10.8.0.6 lcc7-backup member7-backup #LCC 8 10.9.0.1 lcc8-master member8-master 10.9.0.4 lcc8-re0 member8-re0 10.9.0.5 lcc8-re1 member8-re1 10.9.0.6 lcc8-backup member8-backup #LCC 9 10.10.0.1 lcc9-master member9-master 10.10.0.4 lcc9-re0 member9-re0 10.10.0.5 lcc9-re1 member9-re1 10.10.0.6 lcc9-backup member9-backup #LCC 10 10.11.0.1 lcc10-master member10-master 10.11.0.4 lcc10-re0 member10-re0 10.11.0.5 lcc10-re1 member10-re1 10.11.0.6 lcc10-backup member10-backup #LCC 11 10.12.0.1 lcc11-master member11-master 10.12.0.4 lcc11-re0 member11-re0 10.12.0.5 lcc11-re1 member11-re1 10.12.0.6 lcc11-backup member11-backup #LCC 12 10.13.0.1 lcc12-master member12-master 10.13.0.4 lcc12-re0 member12-re0 10.13.0.5 lcc12-re1 member12-re1 10.13.0.6 lcc12-backup member12-backup #LCC 13 10.14.0.1 lcc13-master member13-master 10.14.0.4 lcc13-re0 member13-re0 10.14.0.5 lcc13-re1 member13-re1 10.14.0.6 lcc13-backup member13-backup #LCC 14 10.15.0.1 lcc14-master member14-master 10.15.0.4 lcc14-re0 member14-re0 10.15.0.5 lcc14-re1 member14-re1 10.15.0.6 lcc14-backup member14-backup #LCC 15 10.16.0.1 lcc15-master member15-master 10.16.0.4 lcc15-re0 member15-re0 10.16.0.5 lcc15-re1 member15-re1 10.16.0.6 lcc15-backup member15-backup #SFC 0 10.34.0.1 sfc0-master 10.34.0.4 sfc0-re0 10.34.0.5 sfc0-re1 #SFC 1 10.35.0.1 sfc1-master 10.35.0.4 sfc1-re0 10.35.0.5 sfc1-re1 #SFC 2 10.36.0.1 sfc2-master 10.36.0.4 sfc2-re0 10.36.0.5 sfc2-re1 #SFC 3 10.37.0.1 sfc3-master 10.37.0.4 sfc3-re0 10.37.0.5 sfc3-re1 #SFC 4 10.38.0.1 sfc4-master 10.38.0.4 sfc4-re0 10.38.0.5 sfc4-re1 # End of internal names py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/sw_info_single_get-interface-information.xml000066400000000000000000000145051475361112400322620ustar00rootroot00000000000000 lc-0/0/0.32769 up up vpls pfe-0/0/0.16383 up up inet inet6 pfh-0/0/0.16383 up up inet em1.0 up up inet 10.0.0.4/8 128.0.0.1/2 128.0.0.4/2 inet6 fe80::5668:a3ff:fe17:f08/64 fec0::a:0:0:4/64 tnp 0x4 lo0.16385 up up inet py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/sw_info_srx_cluster_get-software-information.xml000066400000000000000000000671121475361112400332520ustar00rootroot00000000000000 node0 frogbert srx5800 srx5800 17.3-2017-07-02.0_RELEASE_173_THROTTLE os-kernel JUNOS OS Kernel 64-bit [20170619.183714_fbsd-builder_stable_10] os-libs JUNOS OS libs [20170619.183714_fbsd-builder_stable_10] os-runtime JUNOS OS runtime [20170619.183714_fbsd-builder_stable_10] zoneinfo JUNOS OS time zone information [20170619.183714_fbsd-builder_stable_10] os-libs-compat32 JUNOS OS libs compat32 [20170619.183714_fbsd-builder_stable_10] os-compat32 JUNOS OS 32-bit compatibility [20170619.183714_fbsd-builder_stable_10] py-extensions JUNOS py extensions [20170702.195735_ssd-builder_release_173_throttle] py-base JUNOS py base [20170702.195735_ssd-builder_release_173_throttle] os-crypto JUNOS OS crypto [20170619.183714_fbsd-builder_stable_10] netstack JUNOS network stack and utilities [20170702.195735_ssd-builder_release_173_throttle] junos-modules JUNOS modules [20170702.195735_ssd-builder_release_173_throttle] junos-modules-platform JUNOS srx modules [20170702.195735_ssd-builder_release_173_throttle] junos-libs JUNOS libs [20170702.195735_ssd-builder_release_173_throttle] junos-libs-compat32 JUNOS libs compat32 [20170702.195735_ssd-builder_release_173_throttle] junos-runtime JUNOS runtime [20170702.195735_ssd-builder_release_173_throttle] jweb-srx JUNOS Web Management Platform Package [20170702.195735_ssd-builder_release_173_throttle] junos-libs-compat32-platform JUNOS srx libs compat32 [20170702.195735_ssd-builder_release_173_throttle] junos-runtime-platform JUNOS srx runtime [20170702.195735_ssd-builder_release_173_throttle] junos-platform JUNOS common platform support [20170702.195735_ssd-builder_release_173_throttle] junos-platform-platform JUNOS srx platform support [20170702.195735_ssd-builder_release_173_throttle] junos-libs-platform JUNOS srx libs [20170702.195735_ssd-builder_release_173_throttle] junos-dp-crypto-support-platform JUNOS srx Data Plane Crypto Support [20170702.195735_ssd-builder_release_173_throttle] junos-daemons JUNOS daemons [20170702.195735_ssd-builder_release_173_throttle] junos-daemons-platform JUNOS srx daemons [20170702.195735_ssd-builder_release_173_throttle] jservices-urlf JUNOS Services URL Filter package [20170702.195735_ssd-builder_release_173_throttle] jservices-traffic-dird JUNOS Services TLB Service PIC package [20170702.195735_ssd-builder_release_173_throttle] jservices-ssl JUNOS Services SSL [20170702.195735_ssd-builder_release_173_throttle] jservices-sfw JUNOS Services Stateful Firewall [20170702.195735_ssd-builder_release_173_throttle] jservices-rpm JUNOS Services RPM [20170702.195735_ssd-builder_release_173_throttle] jservices-ptsp JUNOS Services PTSP Container package [20170702.195735_ssd-builder_release_173_throttle] jservices-pcef JUNOS Services PCEF package [20170702.195735_ssd-builder_release_173_throttle] jservices-nat JUNOS Services NAT [20170702.195735_ssd-builder_release_173_throttle] jservices-mss JUNOS Services Mobile Subscriber Service Container package [20170702.195735_ssd-builder_release_173_throttle] jservices-mobile JUNOS Services MobileNext Software package [20170702.195735_ssd-builder_release_173_throttle] jservices-lrf JUNOS Services Logging Report Framework package [20170702.195735_ssd-builder_release_173_throttle] jservices-llpdf JUNOS Services LL-PDF Container package [20170702.195735_ssd-builder_release_173_throttle] jservices-jflow JUNOS Services Jflow Container package [20170702.195735_ssd-builder_release_173_throttle] jservices-jdpi JUNOS Services Deep Packet Inspection package [20170702.195735_ssd-builder_release_173_throttle] jservices-ipsec JUNOS Services IPSec [20170702.195735_ssd-builder_release_173_throttle] jservices-ids JUNOS Services IDS [20170702.195735_ssd-builder_release_173_throttle] jservices-idp JUNOS IDP Services [20170702.195735_ssd-builder_release_173_throttle] jservices-hcm JUNOS Services HTTP Content Management package [20170702.195735_ssd-builder_release_173_throttle] jservices-crypto-base JUNOS Services Crypto [20170702.195735_ssd-builder_release_173_throttle] jservices-cpcd JUNOS Services Captive Portal and Content Delivery Container package [20170702.195735_ssd-builder_release_173_throttle] jservices-cos JUNOS Services COS [20170702.195735_ssd-builder_release_173_throttle] jservices-appid JUNOS AppId Services [20170702.195735_ssd-builder_release_173_throttle] jservices-alg JUNOS Services Application Level Gateways [20170702.195735_ssd-builder_release_173_throttle] jservices-aacl JUNOS Services AACL Container package [20170702.195735_ssd-builder_release_173_throttle] jsd-jet-1 JUNOS Extension Toolkit [20170702.195735_ssd-builder_release_173_throttle] jpfe-wrlinux JUNOS Packet Forwarding Engine Support (wrlinux) [20170702.195735_ssd-builder_release_173_throttle] jpfe-platform JUNOS Packet Forwarding Engine Support (MX/EX92XX Common) [20170702.195735_ssd-builder_release_173_throttle] jpfe-common JUNOS Packet Forwarding Engine Support (M/T Common) [20170702.195735_ssd-builder_release_173_throttle] jpfe-X JUNOS Packet Forwarding Engine Support (MX Common) [20170702.195735_ssd-builder_release_173_throttle] jfirmware JUNOS jfirmware [20170702.195735_ssd-builder_release_173_throttle] jdocs JUNOS Online Documentation [20170702.195735_ssd-builder_release_173_throttle] jail-runtime JUNOS jail runtime [20170619.183714_fbsd-builder_stable_10] node1 sheepbert srx5800 srx5800 17.3-2017-07-02.0_RELEASE_173_THROTTLE os-kernel JUNOS OS Kernel 64-bit [20170619.183714_fbsd-builder_stable_10] os-libs JUNOS OS libs [20170619.183714_fbsd-builder_stable_10] os-runtime JUNOS OS runtime [20170619.183714_fbsd-builder_stable_10] zoneinfo JUNOS OS time zone information [20170619.183714_fbsd-builder_stable_10] os-libs-compat32 JUNOS OS libs compat32 [20170619.183714_fbsd-builder_stable_10] os-compat32 JUNOS OS 32-bit compatibility [20170619.183714_fbsd-builder_stable_10] py-extensions JUNOS py extensions [20170702.195735_ssd-builder_release_173_throttle] py-base JUNOS py base [20170702.195735_ssd-builder_release_173_throttle] os-crypto JUNOS OS crypto [20170619.183714_fbsd-builder_stable_10] netstack JUNOS network stack and utilities [20170702.195735_ssd-builder_release_173_throttle] junos-modules JUNOS modules [20170702.195735_ssd-builder_release_173_throttle] junos-modules-platform JUNOS srx modules [20170702.195735_ssd-builder_release_173_throttle] junos-libs JUNOS libs [20170702.195735_ssd-builder_release_173_throttle] junos-libs-compat32 JUNOS libs compat32 [20170702.195735_ssd-builder_release_173_throttle] junos-runtime JUNOS runtime [20170702.195735_ssd-builder_release_173_throttle] jweb-srx JUNOS Web Management Platform Package [20170702.195735_ssd-builder_release_173_throttle] junos-libs-compat32-platform JUNOS srx libs compat32 [20170702.195735_ssd-builder_release_173_throttle] junos-runtime-platform JUNOS srx runtime [20170702.195735_ssd-builder_release_173_throttle] junos-platform JUNOS common platform support [20170702.195735_ssd-builder_release_173_throttle] junos-platform-platform JUNOS srx platform support [20170702.195735_ssd-builder_release_173_throttle] junos-libs-platform JUNOS srx libs [20170702.195735_ssd-builder_release_173_throttle] junos-dp-crypto-support-platform JUNOS srx Data Plane Crypto Support [20170702.195735_ssd-builder_release_173_throttle] junos-daemons JUNOS daemons [20170702.195735_ssd-builder_release_173_throttle] junos-daemons-platform JUNOS srx daemons [20170702.195735_ssd-builder_release_173_throttle] jservices-urlf JUNOS Services URL Filter package [20170702.195735_ssd-builder_release_173_throttle] jservices-traffic-dird JUNOS Services TLB Service PIC package [20170702.195735_ssd-builder_release_173_throttle] jservices-ssl JUNOS Services SSL [20170702.195735_ssd-builder_release_173_throttle] jservices-sfw JUNOS Services Stateful Firewall [20170702.195735_ssd-builder_release_173_throttle] jservices-rpm JUNOS Services RPM [20170702.195735_ssd-builder_release_173_throttle] jservices-ptsp JUNOS Services PTSP Container package [20170702.195735_ssd-builder_release_173_throttle] jservices-pcef JUNOS Services PCEF package [20170702.195735_ssd-builder_release_173_throttle] jservices-nat JUNOS Services NAT [20170702.195735_ssd-builder_release_173_throttle] jservices-mss JUNOS Services Mobile Subscriber Service Container package [20170702.195735_ssd-builder_release_173_throttle] jservices-mobile JUNOS Services MobileNext Software package [20170702.195735_ssd-builder_release_173_throttle] jservices-lrf JUNOS Services Logging Report Framework package [20170702.195735_ssd-builder_release_173_throttle] jservices-llpdf JUNOS Services LL-PDF Container package [20170702.195735_ssd-builder_release_173_throttle] jservices-jflow JUNOS Services Jflow Container package [20170702.195735_ssd-builder_release_173_throttle] jservices-jdpi JUNOS Services Deep Packet Inspection package [20170702.195735_ssd-builder_release_173_throttle] jservices-ipsec JUNOS Services IPSec [20170702.195735_ssd-builder_release_173_throttle] jservices-ids JUNOS Services IDS [20170702.195735_ssd-builder_release_173_throttle] jservices-idp JUNOS IDP Services [20170702.195735_ssd-builder_release_173_throttle] jservices-hcm JUNOS Services HTTP Content Management package [20170702.195735_ssd-builder_release_173_throttle] jservices-crypto-base JUNOS Services Crypto [20170702.195735_ssd-builder_release_173_throttle] jservices-cpcd JUNOS Services Captive Portal and Content Delivery Container package [20170702.195735_ssd-builder_release_173_throttle] jservices-cos JUNOS Services COS [20170702.195735_ssd-builder_release_173_throttle] jservices-appid JUNOS AppId Services [20170702.195735_ssd-builder_release_173_throttle] jservices-alg JUNOS Services Application Level Gateways [20170702.195735_ssd-builder_release_173_throttle] jservices-aacl JUNOS Services AACL Container package [20170702.195735_ssd-builder_release_173_throttle] jsd-jet-1 JUNOS Extension Toolkit [20170702.195735_ssd-builder_release_173_throttle] jpfe-wrlinux JUNOS Packet Forwarding Engine Support (wrlinux) [20170702.195735_ssd-builder_release_173_throttle] jpfe-platform JUNOS Packet Forwarding Engine Support (MX/EX92XX Common) [20170702.195735_ssd-builder_release_173_throttle] jpfe-common JUNOS Packet Forwarding Engine Support (M/T Common) [20170702.195735_ssd-builder_release_173_throttle] jpfe-X JUNOS Packet Forwarding Engine Support (MX Common) [20170702.195735_ssd-builder_release_173_throttle] jfirmware JUNOS jfirmware [20170702.195735_ssd-builder_release_173_throttle] jdocs JUNOS Online Documentation [20170702.195735_ssd-builder_release_173_throttle] jail-runtime JUNOS jail runtime [20170619.183714_fbsd-builder_stable_10] py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/sw_info_txp_file-show.xml000066400000000000000000000757421475361112400264630ustar00rootroot00000000000000 #$Id: hosts.junos,v 1.7.72.1 2009-04-16 05:22:03 kdickman Exp $ # # File mapping AF_INET/AF_INET6 hostnames for REs on Single and Multichassis # systems # # This file is looked at before /etc/hosts by gethostbyname(3), # gethostbyname2(3) and getaddrinfo(3) # # The IP addresses in this file are only used for communication between REs # over the Internal Routing Instances # # WARNING: # # The names in this file are effectively reserved for internal use. # # New IP address format (RT_IRS_V3) # # Single Chassis Hostnames # 128.0.0.1 master 128.0.0.1 node 128.0.0.1 fwdd 128.0.0.1 member 128.0.0.1 pfem 128.0.0.2 scb 128.0.0.2 sbr 128.0.0.2 ssb 128.0.0.2 feb 128.0.0.2 cfeb0 128.0.0.2 cfeb 128.0.0.2 cpp0 128.0.0.3 cfeb1 128.0.0.3 cpp1 128.0.0.4 re0 128.0.0.5 re1 128.0.0.6 backup 128.0.0.8 sfm0 128.0.0.9 sfm1 128.0.0.10 sfm2 128.0.0.16 fpc0 128.0.0.17 fpc1 128.0.0.18 fpc2 128.0.0.19 fpc3 128.0.0.20 fpc4 128.0.0.21 fpc5 128.0.0.22 fpc6 128.0.0.23 fpc7 128.0.0.24 fpc8 128.0.0.25 fpc9 128.0.0.26 fpc10 128.0.0.27 fpc11 128.0.0.28 fpc12 128.0.0.29 fpc13 128.0.0.30 fpc14 128.0.0.31 fpc15 128.0.0.32 feb0 128.0.0.32 fpc16 128.0.0.33 feb1 128.0.0.33 fpc17 128.0.0.34 feb2 128.0.0.34 fpc18 128.0.0.35 feb3 128.0.0.35 fpc19 128.0.0.36 feb4 128.0.0.37 feb5 128.0.0.48 spmb0 128.0.0.49 spmb1 128.0.0.50 tfeb0 128.0.0.50 afeb0 128.0.0.53 esc0 128.0.0.54 esc1 128.0.0.55 esc0-ipmi 128.0.0.56 esc1-ipmi 128.0.1.16 fpc0.pic0 128.0.1.17 fpc1.pic0 128.0.1.18 fpc2.pic0 128.0.1.19 fpc3.pic0 128.0.1.20 fpc4.pic0 128.0.1.21 fpc5.pic0 128.0.1.22 fpc6.pic0 128.0.1.23 fpc7.pic0 128.0.1.24 fpc8.pic0 128.0.1.25 fpc9.pic0 128.0.1.26 fpc10.pic0 128.0.1.27 fpc11.pic0 128.0.1.28 fpc12.pic0 128.0.1.29 fpc13.pic0 128.0.1.30 fpc14.pic0 128.0.1.31 fpc15.pic0 128.0.2.16 fpc0.pic1 128.0.2.17 fpc1.pic1 128.0.2.18 fpc2.pic1 128.0.2.19 fpc3.pic1 128.0.2.20 fpc4.pic1 128.0.2.21 fpc5.pic1 128.0.2.22 fpc6.pic1 128.0.2.23 fpc7.pic1 128.0.2.24 fpc8.pic1 128.0.2.25 fpc9.pic1 128.0.2.26 fpc10.pic1 128.0.2.27 fpc11.pic1 128.0.2.28 fpc12.pic1 128.0.2.29 fpc13.pic1 128.0.2.30 fpc14.pic1 128.0.2.31 fpc15.pic1 128.0.3.16 fpc0.pic2 128.0.3.17 fpc1.pic2 128.0.3.18 fpc2.pic2 128.0.3.19 fpc3.pic2 128.0.3.20 fpc4.pic2 128.0.3.21 fpc5.pic2 128.0.3.22 fpc6.pic2 128.0.3.23 fpc7.pic2 128.0.3.24 fpc8.pic2 128.0.3.25 fpc9.pic2 128.0.3.26 fpc10.pic2 128.0.3.27 fpc11.pic2 128.0.3.28 fpc12.pic2 128.0.3.29 fpc13.pic2 128.0.3.30 fpc14.pic2 128.0.3.31 fpc15.pic2 128.0.4.16 fpc0.pic3 128.0.4.17 fpc1.pic3 128.0.4.18 fpc2.pic3 128.0.4.19 fpc3.pic3 128.0.4.20 fpc4.pic3 128.0.4.21 fpc5.pic3 128.0.4.22 fpc6.pic3 128.0.4.23 fpc7.pic3 128.0.4.24 fpc8.pic3 128.0.4.25 fpc9.pic3 128.0.4.26 fpc10.pic3 128.0.4.27 fpc11.pic3 128.0.4.28 fpc12.pic3 128.0.4.29 fpc13.pic3 128.0.4.30 fpc14.pic3 128.0.4.31 fpc15.pic3 # # DCF-Root Hostname # 128.0.130.2 dcf-root # # Multi Chassis Hostnames # #SCC 144.0.0.1 scc-master 144.0.0.4 scc-re0 144.0.0.5 scc-re1 144.0.0.6 scc-backup 144.0.0.48 scc-spmb0 144.0.0.49 scc-spmb1 #LCC 0 (or MEMBER 0 on Virtual Chassis) 129.0.0.1 lcc0-master member0-master member0 129.0.0.4 lcc0-re0 member0-re0 129.0.0.5 lcc0-re1 member0-re1 129.0.0.6 lcc0-backup member0-backup 129.0.0.16 member0-fpc0 129.0.0.17 member0-fpc1 129.0.0.18 member0-fpc2 129.0.0.19 member0-fpc3 129.0.0.20 member0-fpc4 129.0.0.21 member0-fpc5 129.0.0.22 member0-fpc6 129.0.0.23 member0-fpc7 129.0.0.24 member0-fpc8 129.0.0.25 member0-fpc9 129.0.0.26 member0-fpc10 129.0.0.27 member0-fpc11 129.0.0.28 member0-fpc12 129.0.0.29 member0-fpc13 129.0.0.30 member0-fpc14 129.0.0.31 member0-fpc15 129.0.0.6 lcc0-backup 129.0.0.16 lcc0-fpc0 129.0.0.17 lcc0-fpc1 129.0.0.18 lcc0-fpc2 129.0.0.19 lcc0-fpc3 129.0.0.20 lcc0-fpc4 129.0.0.21 lcc0-fpc5 129.0.0.22 lcc0-fpc6 129.0.0.23 lcc0-fpc7 129.0.0.48 lcc0-spmb0 129.0.0.49 lcc0-spmb1 #LCC 1 (or MEMBER 1 on Virtual Chassis) 130.0.0.1 lcc1-master member1-master member1 130.0.0.4 lcc1-re0 member1-re0 130.0.0.5 lcc1-re1 member1-re1 130.0.0.6 lcc1-backup member1-backup 130.0.0.16 member1-fpc0 130.0.0.17 member1-fpc1 130.0.0.18 member1-fpc2 130.0.0.19 member1-fpc3 130.0.0.20 member1-fpc4 130.0.0.21 member1-fpc5 130.0.0.22 member1-fpc6 130.0.0.23 member1-fpc7 130.0.0.24 member1-fpc8 130.0.0.25 member1-fpc9 130.0.0.26 member1-fpc10 130.0.0.27 member1-fpc11 130.0.0.28 member1-fpc12 130.0.0.29 member1-fpc13 130.0.0.30 member1-fpc14 130.0.0.31 member1-fpc15 130.0.0.6 lcc1-backup 130.0.0.16 lcc1-fpc0 130.0.0.17 lcc1-fpc1 130.0.0.18 lcc1-fpc2 130.0.0.19 lcc1-fpc3 130.0.0.20 lcc1-fpc4 130.0.0.21 lcc1-fpc5 130.0.0.22 lcc1-fpc6 130.0.0.23 lcc1-fpc7 130.0.0.48 lcc1-spmb0 130.0.0.49 lcc1-spmb1 #LCC 2 (or MEMBER 2 on Virtual Chassis) 131.0.0.1 lcc2-master member2-master member2 131.0.0.4 lcc2-re0 member2-re0 131.0.0.5 lcc2-re1 member2-re1 131.0.0.6 lcc2-backup member2-backup 131.0.0.16 member2-fpc0 131.0.0.17 member2-fpc1 131.0.0.18 member2-fpc2 131.0.0.19 member2-fpc3 131.0.0.20 member2-fpc4 131.0.0.21 member2-fpc5 131.0.0.22 member2-fpc6 131.0.0.23 member2-fpc7 131.0.0.24 member2-fpc8 131.0.0.25 member2-fpc9 131.0.0.26 member2-fpc10 131.0.0.27 member2-fpc11 131.0.0.28 member2-fpc12 131.0.0.29 member2-fpc13 131.0.0.30 member2-fpc14 131.0.0.31 member2-fpc15 131.0.0.6 lcc2-backup 131.0.0.16 lcc2-fpc0 131.0.0.17 lcc2-fpc1 131.0.0.18 lcc2-fpc2 131.0.0.19 lcc2-fpc3 131.0.0.20 lcc2-fpc4 131.0.0.21 lcc2-fpc5 131.0.0.22 lcc2-fpc6 131.0.0.23 lcc2-fpc7 131.0.0.48 lcc2-spmb0 131.0.0.49 lcc20-spmb1 #LCC 3 (or MEMBER 3 on Virtual Chassis) 132.0.0.1 lcc3-master member3-master member3 132.0.0.4 lcc3-re0 member3-re0 132.0.0.5 lcc3-re1 member3-re1 132.0.0.6 lcc3-backup member3-backup 132.0.0.16 member3-fpc0 132.0.0.17 member3-fpc1 132.0.0.18 member3-fpc2 132.0.0.19 member3-fpc3 132.0.0.20 member3-fpc4 132.0.0.21 member3-fpc5 132.0.0.22 member3-fpc6 132.0.0.23 member3-fpc7 132.0.0.24 member3-fpc8 132.0.0.25 member3-fpc9 132.0.0.26 member3-fpc10 132.0.0.27 member3-fpc11 132.0.0.28 member3-fpc12 132.0.0.29 member3-fpc13 132.0.0.30 member3-fpc14 132.0.0.31 member3-fpc15 132.0.0.6 lcc3-backup 132.0.0.16 lcc3-fpc0 132.0.0.17 lcc3-fpc1 132.0.0.18 lcc3-fpc2 132.0.0.19 lcc3-fpc3 132.0.0.20 lcc3-fpc4 132.0.0.21 lcc3-fpc5 132.0.0.22 lcc3-fpc6 132.0.0.23 lcc3-fpc7 132.0.0.48 lcc3-spmb0 132.0.0.49 lcc3-spmb1 #LCC 4 (or MEMBER 4 on Virtual Chassis) 133.0.0.1 lcc4-master member4-master member4 133.0.0.4 lcc4-re0 member4-re0 133.0.0.5 lcc4-re1 member4-re1 133.0.0.6 lcc4-backup member4-backup 133.0.0.16 member4-fpc0 133.0.0.17 member4-fpc1 133.0.0.18 member4-fpc2 133.0.0.19 member4-fpc3 133.0.0.20 member4-fpc4 133.0.0.21 member4-fpc5 133.0.0.22 member4-fpc6 133.0.0.23 member4-fpc7 133.0.0.24 member4-fpc8 133.0.0.25 member4-fpc9 133.0.0.26 member4-fpc10 133.0.0.27 member4-fpc11 133.0.0.28 member4-fpc12 133.0.0.29 member4-fpc13 133.0.0.30 member4-fpc14 133.0.0.31 member4-fpc15 133.0.0.6 lcc4-backup 133.0.0.16 lcc4-fpc0 133.0.0.17 lcc4-fpc1 133.0.0.18 lcc4-fpc2 133.0.0.19 lcc4-fpc3 133.0.0.20 lcc4-fpc4 133.0.0.21 lcc4-fpc5 133.0.0.22 lcc4-fpc6 133.0.0.23 lcc4-fpc7 133.0.0.48 lcc4-spmb0 133.0.0.49 lcc4-spmb1 #LCC 5 (or MEMBER 5 on Virtual Chassis) 134.0.0.1 lcc5-master member5-master member5 134.0.0.4 lcc5-re0 member5-re0 134.0.0.5 lcc5-re1 member5-re1 134.0.0.6 lcc5-backup member5-backup 134.0.0.16 member5-fpc0 134.0.0.17 member5-fpc1 134.0.0.18 member5-fpc2 134.0.0.19 member5-fpc3 134.0.0.20 member5-fpc4 134.0.0.21 member5-fpc5 134.0.0.22 member5-fpc6 134.0.0.23 member5-fpc7 134.0.0.24 member5-fpc8 134.0.0.25 member5-fpc9 134.0.0.26 member5-fpc10 134.0.0.27 member5-fpc11 134.0.0.28 member5-fpc12 134.0.0.29 member5-fpc13 134.0.0.30 member5-fpc14 134.0.0.31 member5-fpc15 134.0.0.6 lcc5-backup 134.0.0.16 lcc5-fpc0 134.0.0.17 lcc5-fpc1 134.0.0.18 lcc5-fpc2 134.0.0.19 lcc5-fpc3 134.0.0.20 lcc5-fpc4 134.0.0.21 lcc5-fpc5 134.0.0.22 lcc5-fpc6 134.0.0.23 lcc5-fpc7 134.0.0.48 lcc5-spmb0 134.0.0.49 lcc5-spmb1 #LCC 6 (or MEMBER 6 on Virtual Chassis) 135.0.0.1 lcc6-master member6-master member6 135.0.0.4 lcc6-re0 member6-re0 135.0.0.5 lcc6-re1 member6-re1 135.0.0.6 lcc6-backup member6-backup 135.0.0.16 member6-fpc0 135.0.0.17 member6-fpc1 135.0.0.18 member6-fpc2 135.0.0.19 member6-fpc3 135.0.0.20 member6-fpc4 135.0.0.21 member6-fpc5 135.0.0.22 member6-fpc6 135.0.0.23 member6-fpc7 135.0.0.24 member6-fpc8 135.0.0.25 member6-fpc9 135.0.0.26 member6-fpc10 135.0.0.27 member6-fpc11 135.0.0.28 member6-fpc12 135.0.0.29 member6-fpc13 135.0.0.30 member6-fpc14 135.0.0.31 member6-fpc15 135.0.0.6 lcc6-backup 135.0.0.16 lcc6-fpc0 135.0.0.17 lcc6-fpc1 135.0.0.18 lcc6-fpc2 135.0.0.19 lcc6-fpc3 135.0.0.20 lcc6-fpc4 135.0.0.21 lcc6-fpc5 135.0.0.22 lcc6-fpc6 135.0.0.23 lcc6-fpc7 135.0.0.48 lcc6-spmb0 135.0.0.49 lcc6-spmb1 #LCC 7 (or MEMBER 7 on Virtual Chassis) 136.0.0.1 lcc7-master member7-master member7 136.0.0.4 lcc7-re0 member7-re0 136.0.0.5 lcc7-re1 member7-re1 136.0.0.6 lcc7-backup member7-backup 136.0.0.16 member7-fpc0 136.0.0.17 member7-fpc1 136.0.0.18 member7-fpc2 136.0.0.19 member7-fpc3 136.0.0.20 member7-fpc4 136.0.0.21 member7-fpc5 136.0.0.22 member7-fpc6 136.0.0.23 member7-fpc7 136.0.0.24 member7-fpc8 136.0.0.25 member7-fpc9 136.0.0.26 member7-fpc10 136.0.0.27 member7-fpc11 136.0.0.28 member7-fpc12 136.0.0.29 member7-fpc13 136.0.0.30 member7-fpc14 136.0.0.31 member7-fpc15 136.0.0.6 lcc7-backup 136.0.0.16 lcc7-fpc0 136.0.0.17 lcc7-fpc1 136.0.0.18 lcc7-fpc2 136.0.0.19 lcc7-fpc3 136.0.0.20 lcc7-fpc4 136.0.0.21 lcc7-fpc5 136.0.0.22 lcc7-fpc6 136.0.0.23 lcc7-fpc7 136.0.0.48 lcc7-spmb0 136.0.0.49 lcc7-spmb1 137.0.0.6 lcc8-backup 137.0.0.16 lcc8-fpc0 137.0.0.17 lcc8-fpc1 137.0.0.18 lcc8-fpc2 137.0.0.19 lcc8-fpc3 137.0.0.20 lcc8-fpc4 137.0.0.21 lcc8-fpc5 137.0.0.22 lcc8-fpc6 137.0.0.23 lcc8-fpc7 137.0.0.48 lcc8-spmb0 137.0.0.49 lcc8-spmb1 #LCC 8 (or MEMBER 8 on Virtual Chassis) 137.0.0.1 lcc8-master member8-master member8 137.0.0.4 lcc8-re0 member8-re0 137.0.0.5 lcc8-re1 member8-re1 137.0.0.6 lcc8-backup member8-backup 137.0.0.16 member8-fpc0 137.0.0.17 member8-fpc1 137.0.0.18 member8-fpc2 137.0.0.19 member8-fpc3 137.0.0.20 member8-fpc4 137.0.0.21 member8-fpc5 137.0.0.22 member8-fpc6 137.0.0.23 member8-fpc7 137.0.0.24 member8-fpc8 137.0.0.25 member8-fpc9 137.0.0.26 member8-fpc10 137.0.0.27 member8-fpc11 137.0.0.28 member8-fpc12 137.0.0.29 member8-fpc13 137.0.0.30 member8-fpc14 137.0.0.31 member8-fpc15 138.0.0.6 lcc9-backup 138.0.0.16 lcc9-fpc0 138.0.0.17 lcc9-fpc1 138.0.0.18 lcc9-fpc2 138.0.0.19 lcc9-fpc3 138.0.0.20 lcc9-fpc4 138.0.0.21 lcc9-fpc5 138.0.0.22 lcc9-fpc6 138.0.0.23 lcc9-fpc7 138.0.0.48 lcc9-spmb0 138.0.0.49 lcc9-spmb1 #LCC 9 (or MEMBER 9 on Virtual Chassis) 138.0.0.1 lcc9-master member9-master member9 138.0.0.4 lcc9-re0 member9-re0 138.0.0.5 lcc9-re1 member9-re1 138.0.0.6 lcc9-backup member9-backup 138.0.0.16 member9-fpc0 138.0.0.17 member9-fpc1 138.0.0.18 member9-fpc2 138.0.0.19 member9-fpc3 138.0.0.20 member9-fpc4 138.0.0.21 member9-fpc5 138.0.0.22 member9-fpc6 138.0.0.23 member9-fpc7 138.0.0.24 member9-fpc8 138.0.0.25 member9-fpc9 138.0.0.26 member9-fpc10 138.0.0.27 member9-fpc11 138.0.0.28 member9-fpc12 138.0.0.29 member9-fpc13 138.0.0.30 member9-fpc14 138.0.0.31 member9-fpc15 139.0.0.6 lcc10-backup 139.0.0.16 lcc10-fpc0 139.0.0.17 lcc10-fpc1 139.0.0.18 lcc10-fpc2 139.0.0.19 lcc10-fpc3 139.0.0.20 lcc10-fpc4 139.0.0.21 lcc10-fpc5 139.0.0.22 lcc10-fpc6 139.0.0.23 lcc10-fpc7 139.0.0.48 lcc10-spmb0 139.0.0.49 lcc10-spmb1 #LCC 10 (or MEMBER 10 on Virtual Chassis) 139.0.0.1 lcc10-master member10-master 139.0.0.4 lcc10-re0 member10-re0 139.0.0.5 lcc10-re1 member10-re1 139.0.0.6 lcc10-backup member10-backup 139.0.0.16 member10-fpc0 139.0.0.17 member10-fpc1 139.0.0.18 member10-fpc2 139.0.0.19 member10-fpc3 139.0.0.20 member10-fpc4 139.0.0.21 member10-fpc5 139.0.0.22 member10-fpc6 139.0.0.23 member10-fpc7 139.0.0.24 member10-fpc8 139.0.0.25 member10-fpc9 139.0.0.26 member10-fpc10 139.0.0.27 member10-fpc11 139.0.0.28 member10-fpc12 139.0.0.29 member10-fpc13 139.0.0.30 member10-fpc14 139.0.0.31 member10-fpc15 140.0.0.6 lcc11-backup 140.0.0.16 lcc11-fpc0 140.0.0.17 lcc11-fpc1 140.0.0.18 lcc11-fpc2 140.0.0.19 lcc11-fpc3 140.0.0.20 lcc11-fpc4 140.0.0.21 lcc11-fpc5 140.0.0.22 lcc11-fpc6 140.0.0.23 lcc11-fpc7 140.0.0.48 lcc11-spmb0 140.0.0.49 lcc11-spmb1 #LCC 11 (or MEMBER 11 on Virtual Chassis) 140.0.0.1 lcc11-master member11-master 140.0.0.4 lcc11-re0 member11-re0 140.0.0.5 lcc11-re1 member11-re1 140.0.0.6 lcc11-backup member11-backup 140.0.0.16 member11-fpc0 140.0.0.17 member11-fpc1 140.0.0.18 member11-fpc2 140.0.0.19 member11-fpc3 140.0.0.20 member11-fpc4 140.0.0.21 member11-fpc5 140.0.0.22 member11-fpc6 140.0.0.23 member11-fpc7 140.0.0.24 member11-fpc8 140.0.0.25 member11-fpc9 140.0.0.26 member11-fpc10 140.0.0.27 member11-fpc11 140.0.0.28 member11-fpc12 140.0.0.29 member11-fpc13 140.0.0.30 member11-fpc14 140.0.0.31 member11-fpc15 141.0.0.6 lcc12-backup 141.0.0.16 lcc12-fpc0 141.0.0.17 lcc12-fpc1 141.0.0.18 lcc12-fpc2 141.0.0.19 lcc12-fpc3 141.0.0.20 lcc12-fpc4 141.0.0.21 lcc12-fpc5 141.0.0.22 lcc12-fpc6 141.0.0.23 lcc12-fpc7 141.0.0.48 lcc12-spmb0 141.0.0.49 lcc12-spmb1 #LCC 12 (or MEMBER 12 on Virtual Chassis) 141.0.0.1 lcc12-master member12-master 141.0.0.4 lcc12-re0 member12-re0 141.0.0.5 lcc12-re1 member12-re1 141.0.0.6 lcc12-backup member12-backup 141.0.0.16 member12-fpc0 141.0.0.17 member12-fpc1 141.0.0.18 member12-fpc2 141.0.0.19 member12-fpc3 141.0.0.20 member12-fpc4 141.0.0.21 member12-fpc5 141.0.0.22 member12-fpc6 141.0.0.23 member12-fpc7 141.0.0.24 member12-fpc8 141.0.0.25 member12-fpc9 141.0.0.26 member12-fpc10 141.0.0.27 member12-fpc11 141.0.0.28 member12-fpc12 141.0.0.29 member12-fpc13 141.0.0.30 member12-fpc14 141.0.0.31 member12-fpc15 142.0.0.6 lcc13-backup 142.0.0.16 lcc13-fpc0 142.0.0.17 lcc13-fpc1 142.0.0.18 lcc13-fpc2 142.0.0.19 lcc13-fpc3 142.0.0.20 lcc13-fpc4 142.0.0.21 lcc13-fpc5 142.0.0.22 lcc13-fpc6 142.0.0.23 lcc13-fpc7 142.0.0.48 lcc13-spmb0 142.0.0.49 lcc13-spmb1 #LCC 13 (or MEMBER 13 on Virtual Chassis) 142.0.0.1 lcc13-master member13-master 142.0.0.4 lcc13-re0 member13-re0 142.0.0.5 lcc13-re1 member13-re1 142.0.0.6 lcc13-backup member13-backup 142.0.0.16 member13-fpc0 142.0.0.17 member13-fpc1 142.0.0.18 member13-fpc2 142.0.0.19 member13-fpc3 142.0.0.20 member13-fpc4 142.0.0.21 member13-fpc5 142.0.0.22 member13-fpc6 142.0.0.23 member13-fpc7 142.0.0.24 member13-fpc8 142.0.0.25 member13-fpc9 142.0.0.26 member13-fpc10 142.0.0.27 member13-fpc11 142.0.0.28 member13-fpc12 142.0.0.29 member13-fpc13 142.0.0.30 member13-fpc14 142.0.0.31 member13-fpc15 143.0.0.6 lcc14-backup 143.0.0.16 lcc14-fpc0 143.0.0.17 lcc14-fpc1 143.0.0.18 lcc14-fpc2 143.0.0.19 lcc14-fpc3 143.0.0.20 lcc14-fpc4 143.0.0.21 lcc14-fpc5 143.0.0.22 lcc14-fpc6 143.0.0.23 lcc14-fpc7 143.0.0.48 lcc14-spmb0 143.0.0.49 lcc14-spmb1 #LCC 14 (or MEMBER 14 on Virtual Chassis) 143.0.0.1 lcc14-master member14-master 143.0.0.4 lcc14-re0 member14-re0 143.0.0.5 lcc14-re1 member14-re1 143.0.0.6 lcc14-backup member14-backup 143.0.0.16 member14-fpc0 143.0.0.17 member14-fpc1 143.0.0.18 member14-fpc2 143.0.0.19 member14-fpc3 143.0.0.20 member14-fpc4 143.0.0.21 member14-fpc5 143.0.0.22 member14-fpc6 143.0.0.23 member14-fpc7 143.0.0.24 member14-fpc8 143.0.0.25 member14-fpc9 143.0.0.26 member14-fpc10 143.0.0.27 member14-fpc11 143.0.0.28 member14-fpc12 143.0.0.29 member14-fpc13 143.0.0.30 member14-fpc14 143.0.0.31 member14-fpc15 144.0.0.6 lcc15-backup 144.0.0.16 lcc15-fpc0 144.0.0.17 lcc15-fpc1 144.0.0.18 lcc15-fpc2 144.0.0.19 lcc15-fpc3 144.0.0.20 lcc15-fpc4 144.0.0.21 lcc15-fpc5 144.0.0.22 lcc15-fpc6 144.0.0.23 lcc15-fpc7 144.0.0.48 lcc15-spmb0 144.0.0.49 lcc15-spmb1 #LCC 15 (or MEMBER 15 on Virtual Chassis) 144.0.0.1 lcc15-master member15-master 144.0.0.4 lcc15-re0 member15-re0 144.0.0.5 lcc15-re1 member15-re1 144.0.0.6 lcc15-backup member15-backup 144.0.0.16 member15-fpc0 144.0.0.17 member15-fpc1 144.0.0.18 member15-fpc2 144.0.0.19 member15-fpc3 144.0.0.20 member15-fpc4 144.0.0.21 member15-fpc5 144.0.0.22 member15-fpc6 144.0.0.23 member15-fpc7 144.0.0.24 member15-fpc8 144.0.0.25 member15-fpc9 144.0.0.26 member15-fpc10 144.0.0.27 member15-fpc11 144.0.0.28 member15-fpc12 144.0.0.29 member15-fpc13 144.0.0.30 member15-fpc14 144.0.0.31 member15-fpc15 #VIRT SC 161.0.0.1 sc-master 161.0.0.4 sc-re0 161.0.0.5 sc-re1 161.0.0.6 sc-backup #SFC 0 162.0.0.1 sfc0-master 162.0.0.4 sfc0-re0 162.0.0.5 sfc0-re1 162.0.0.6 sfc0-backup 162.0.0.48 sfc0-spmb0 162.0.0.49 sfc0-spmb1 #SFC 1 163.0.0.1 sfc1-master 163.0.0.4 sfc1-re0 163.0.0.5 sfc1-re1 163.0.0.6 sfc1-backup 163.0.0.48 sfc1-spmb0 163.0.0.49 sfc1-spmb1 #SFC 2 164.0.0.1 sfc2-master 164.0.0.4 sfc2-re0 164.0.0.5 sfc2-re1 164.0.0.6 sfc2-backup 164.0.0.48 sfc2-spmb0 164.0.0.49 sfc2-spmb1 #SFC 3 165.0.0.1 sfc3-master 165.0.0.4 sfc3-re0 165.0.0.5 sfc3-re1 165.0.0.6 sfc3-backup 165.0.0.48 sfc3-spmb0 165.0.0.49 sfc3-spmb1 #SFC 4 166.0.0.1 sfc4-master 166.0.0.4 sfc4-re0 166.0.0.5 sfc4-re1 166.0.0.6 sfc4-backup 166.0.0.48 sfc4-spmb0 166.0.0.49 sfc4-spmb1 #JCS 190.0.0.1 psd%d-master 190.0.0.4 psd%d-re0 190.0.0.5 psd%d-re1 190.0.0.6 psd%d-backup # Old IP address format (RT_IRS_V2) # # Single Chassis Hostnames # 10.0.0.1 master 10.0.0.4 re0 10.0.0.5 re1 # # Multi Chassis Hostnames # #SCC 10.16.0.1 scc-master 10.16.0.4 scc-re0 10.16.0.5 scc-re1 #LCC 0 10.1.0.1 lcc0-master member0-master 10.1.0.4 lcc0-re0 member0-re0 10.1.0.5 lcc0-re1 member0-re1 10.1.0.6 lcc0-backup member0-backup #LCC 1 10.2.0.1 lcc1-master member1-master 10.2.0.4 lcc1-re0 member1-re0 10.2.0.5 lcc1-re1 member1-re1 10.2.0.6 lcc1-backup member1-backup #LCC 2 10.3.0.1 lcc2-master member2-master 10.3.0.4 lcc2-re0 member2-re0 10.3.0.5 lcc2-re1 member2-re1 10.3.0.6 lcc2-backup member2-backup #LCC 3 10.4.0.1 lcc3-master member3-master 10.4.0.4 lcc3-re0 member3-re0 10.4.0.5 lcc3-re1 member3-re1 10.4.0.6 lcc3-backup member3-backup #LCC 4 10.5.0.1 lcc4-master member4-master 10.5.0.4 lcc4-re0 member4-re0 10.5.0.5 lcc4-re1 member4-re1 10.5.0.6 lcc4-backup member4-backup #LCC 5 10.6.0.1 lcc5-master member5-master 10.6.0.4 lcc5-re0 member5-re0 10.6.0.5 lcc5-re1 member5-re1 10.6.0.6 lcc5-backup member5-backup #LCC 6 10.7.0.1 lcc6-master member6-master 10.7.0.4 lcc6-re0 member6-re0 10.7.0.5 lcc6-re1 member6-re1 10.7.0.6 lcc6-backup member6-backup #LCC 7 10.8.0.1 lcc7-master member7-master 10.8.0.4 lcc7-re0 member7-re0 10.8.0.5 lcc7-re1 member7-re1 10.8.0.6 lcc7-backup member7-backup #LCC 8 10.9.0.1 lcc8-master member8-master 10.9.0.4 lcc8-re0 member8-re0 10.9.0.5 lcc8-re1 member8-re1 10.9.0.6 lcc8-backup member8-backup #LCC 9 10.10.0.1 lcc9-master member9-master 10.10.0.4 lcc9-re0 member9-re0 10.10.0.5 lcc9-re1 member9-re1 10.10.0.6 lcc9-backup member9-backup #LCC 10 10.11.0.1 lcc10-master member10-master 10.11.0.4 lcc10-re0 member10-re0 10.11.0.5 lcc10-re1 member10-re1 10.11.0.6 lcc10-backup member10-backup #LCC 11 10.12.0.1 lcc11-master member11-master 10.12.0.4 lcc11-re0 member11-re0 10.12.0.5 lcc11-re1 member11-re1 10.12.0.6 lcc11-backup member11-backup #LCC 12 10.13.0.1 lcc12-master member12-master 10.13.0.4 lcc12-re0 member12-re0 10.13.0.5 lcc12-re1 member12-re1 10.13.0.6 lcc12-backup member12-backup #LCC 13 10.14.0.1 lcc13-master member13-master 10.14.0.4 lcc13-re0 member13-re0 10.14.0.5 lcc13-re1 member13-re1 10.14.0.6 lcc13-backup member13-backup #LCC 14 10.15.0.1 lcc14-master member14-master 10.15.0.4 lcc14-re0 member14-re0 10.15.0.5 lcc14-re1 member14-re1 10.15.0.6 lcc14-backup member14-backup #LCC 15 10.16.0.1 lcc15-master member15-master 10.16.0.4 lcc15-re0 member15-re0 10.16.0.5 lcc15-re1 member15-re1 10.16.0.6 lcc15-backup member15-backup #SFC 0 10.34.0.1 sfc0-master 10.34.0.4 sfc0-re0 10.34.0.5 sfc0-re1 #SFC 1 10.35.0.1 sfc1-master 10.35.0.4 sfc1-re0 10.35.0.5 sfc1-re1 #SFC 2 10.36.0.1 sfc2-master 10.36.0.4 sfc2-re0 10.36.0.5 sfc2-re1 #SFC 3 10.37.0.1 sfc3-master 10.37.0.4 sfc3-re0 10.37.0.5 sfc3-re1 #SFC 4 10.38.0.1 sfc4-master 10.38.0.4 sfc4-re0 10.38.0.5 sfc4-re1 # End of internal names py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/sw_info_txp_get-interface-information.xml000066400000000000000000000615201475361112400316130ustar00rootroot00000000000000 pfe-48/0/0.16383 up up inet inet6 pfh-48/0/0.16383 up up inet pfe-48/1/0.16383 up up inet inet6 pfe-49/0/0.16383 up up inet inet6 pfh-49/0/0.16383 up up inet pfe-49/1/0.16383 up up inet inet6 pfe-52/0/0.16383 up up inet inet6 pfh-52/0/0.16383 up up inet pfe-52/1/0.16383 up up inet inet6 pfe-54/0/0.16383 up up inet inet6 pfh-54/0/0.16383 up up inet pfe-54/1/0.16383 up up inet inet6 bcm0.0 up up inet 10.1.0.4/8 129.0.0.1/2 129.0.0.4/2 inet6 fe80::200:ff:fe01:4/64 fec0::a:1:0:4/64 tnp 0x1000004 em1.0 up up inet 10.1.0.4/8 129.0.0.1/2 129.0.0.4/2 inet6 fe80::200:1ff:fe01:4/64 fec0::a:1:0:4/64 tnp 0x1000004 lo0.16385 up up inet py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/sw_info_txp_get-software-information.xml000066400000000000000000000120221475361112400314760ustar00rootroot00000000000000 dj t1600 t1600 13.3R9-S2.1 junos JUNOS Base OS boot [13.3R9-S2.1] jbase JUNOS Base OS Software Suite [13.3R9-S2.1] jkernel JUNOS 64-bit Kernel Software Suite [13.3R9-S2.1] jpfe-common JUNOS Packet Forwarding Engine Support (M/T/EX Common) [13.3R9-S2.1] jpfe JUNOS Packet Forwarding Engine Support (T-Series) [13.3R9-S2.1] jdocs JUNOS Online Documentation [13.3R9-S2.1] jservices-aacl JUNOS Services AACL Container package [13.3R9-S2.1] jservices-alg JUNOS Services Application Level Gateways [13.3R9-S2.1] jservices-appid JUNOS AppId Services [13.3R9-S2.1] jservices-bgf JUNOS Border Gateway Function package [13.3R9-S2.1] jservices-cpcd JUNOS Services Captive Portal and Content Delivery Container package [13.3R9-S2.1] jservices-hcm JUNOS Services HTTP Content Management package [13.3R9-S2.1] jservices-jflow JUNOS Services Jflow Container package [13.3R9-S2.1] jservices-idp JUNOS IDP Services [13.3R9-S2.1] jservices-llpdf JUNOS Services LL-PDF Container package [13.3R9-S2.1] jservices-mobile JUNOS Services MobileNext Software package [13.3R9-S2.1] jservices-mss JUNOS Services Mobile Subscriber Service Container package [13.3R9-S2.1] jservices-nat JUNOS Services NAT [13.3R9-S2.1] jservices-rpm JUNOS Services RPM [13.3R9-S2.1] jservices-ptsp JUNOS Services PTSP Container package [13.3R9-S2.1] jservices-sfw JUNOS Services Stateful Firewall [13.3R9-S2.1] jservices-voice JUNOS Voice Services Container package [13.3R9-S2.1] jplatform JUNOS platform Software Suite [13.3R9-S2.1] jroute JUNOS Routing Software Suite [13.3R9-S2.1] jruntime JUNOS Runtime Software Suite [13.3R9-S2.1] jruntime64 JUNOS 64-bit Runtime Software Suite [13.3R9-S2.1] py-base-i386 JUNOS py-base-i386 [13.3R9-S2.1] py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/sw_info_vc_command.xml000066400000000000000000000471451475361112400257750ustar00rootroot00000000000000 member0 reefbreak1 mx240 mx240 15.1-20161209.0 os-kernel JUNOS OS Kernel 64-bit [20160921.201501_fbsd-builder_stable_10] os-libs JUNOS OS libs [20160921.201501_fbsd-builder_stable_10] os-runtime JUNOS OS runtime [20160921.201501_fbsd-builder_stable_10] zoneinfo JUNOS OS time zone information [20160921.201501_fbsd-builder_stable_10] os-libs-compat32 JUNOS OS libs compat32 [20160921.201501_fbsd-builder_stable_10] os-compat32 JUNOS OS 32-bit compatibility [20160921.201501_fbsd-builder_stable_10] py-base JUNOS py base [20161209.011156_builder_release_151_throttle] os-crypto JUNOS OS crypto [20160921.201501_fbsd-builder_stable_10] netstack JUNOS network stack and utilities [20161209.011156_builder_release_151_throttle] junos-libs-compat32 JUNOS libs compat32 [20161209.011156_builder_release_151_throttle] junos-runtime JUNOS runtime [20161209.011156_builder_release_151_throttle] junos-platform JUNOS platform support [20161209.011156_builder_release_151_throttle] junos-modules JUNOS modules [20161209.011156_builder_release_151_throttle] junos-libs JUNOS libs [20161209.011156_builder_release_151_throttle] junos-dp-crypto-support-platform JUNOS mtx Data Plane Crypto Support [20161209.011156_builder_release_151_throttle] junos-daemons JUNOS daemons [20161209.011156_builder_release_151_throttle] jservices-voice JUNOS Voice Services Container package [20161209.011156_builder_release_151_throttle] jservices-ssl JUNOS Services SSL [20161209.011156_builder_release_151_throttle] jservices-sfw JUNOS Services Stateful Firewall [20161209.011156_builder_release_151_throttle] jservices-rpm JUNOS Services RPM [20161209.011156_builder_release_151_throttle] jservices-ptsp JUNOS Services PTSP Container package [20161209.011156_builder_release_151_throttle] jservices-nat JUNOS Services NAT [20161209.011156_builder_release_151_throttle] jservices-mss JUNOS Services Mobile Subscriber Service Container package [20161209.011156_builder_release_151_throttle] jservices-mobile JUNOS Services MobileNext Software package [20161209.011156_builder_release_151_throttle] jservices-llpdf JUNOS Services LL-PDF Container package [20161209.011156_builder_release_151_throttle] jservices-jflow JUNOS Services Jflow Container package [20161209.011156_builder_release_151_throttle] jservices-ipsec JUNOS Services IPSec [20161209.011156_builder_release_151_throttle] jservices-idp JUNOS IDP Services [20161209.011156_builder_release_151_throttle] jservices-hcm JUNOS Services HTTP Content Management package [20161209.011156_builder_release_151_throttle] jservices-crypto-base JUNOS Services Crypto [20161209.011156_builder_release_151_throttle] jservices-cpcd JUNOS Services Captive Portal and Content Delivery Container package [20161209.011156_builder_release_151_throttle] jservices-cos JUNOS Services COS [20161209.011156_builder_release_151_throttle] jservices-bgf JUNOS Border Gateway Function package [20161209.011156_builder_release_151_throttle] jservices-appid JUNOS AppId Services [20161209.011156_builder_release_151_throttle] jservices-alg JUNOS Services Application Level Gateways [20161209.011156_builder_release_151_throttle] jservices-aacl JUNOS Services AACL Container package [20161209.011156_builder_release_151_throttle] jpfe-platform JUNOS Packet Forwarding Engine Support (MX/EX92XX Common) [20161209.011156_builder_release_151_throttle] jpfe-common JUNOS Packet Forwarding Engine Support (M/T Common) [20161209.011156_builder_release_151_throttle] jdocs JUNOS Online Documentation [20161209.011156_builder_release_151_throttle] fips-mode JUNOS FIPS mode utilities [20161209.011156_builder_release_151_throttle] member1 beachbreak mx240 mx240 15.1-20161209.0 os-kernel JUNOS OS Kernel 64-bit [20160921.201501_fbsd-builder_stable_10] os-libs JUNOS OS libs [20160921.201501_fbsd-builder_stable_10] os-runtime JUNOS OS runtime [20160921.201501_fbsd-builder_stable_10] zoneinfo JUNOS OS time zone information [20160921.201501_fbsd-builder_stable_10] os-libs-compat32 JUNOS OS libs compat32 [20160921.201501_fbsd-builder_stable_10] os-compat32 JUNOS OS 32-bit compatibility [20160921.201501_fbsd-builder_stable_10] py-base JUNOS py base [20161209.011156_builder_release_151_throttle] os-crypto JUNOS OS crypto [20160921.201501_fbsd-builder_stable_10] netstack JUNOS network stack and utilities [20161209.011156_builder_release_151_throttle] junos-libs-compat32 JUNOS libs compat32 [20161209.011156_builder_release_151_throttle] junos-runtime JUNOS runtime [20161209.011156_builder_release_151_throttle] junos-platform JUNOS platform support [20161209.011156_builder_release_151_throttle] junos-modules JUNOS modules [20161209.011156_builder_release_151_throttle] junos-libs JUNOS libs [20161209.011156_builder_release_151_throttle] junos-dp-crypto-support-platform JUNOS mtx Data Plane Crypto Support [20161209.011156_builder_release_151_throttle] junos-daemons JUNOS daemons [20161209.011156_builder_release_151_throttle] jservices-voice JUNOS Voice Services Container package [20161209.011156_builder_release_151_throttle] jservices-ssl JUNOS Services SSL [20161209.011156_builder_release_151_throttle] jservices-sfw JUNOS Services Stateful Firewall [20161209.011156_builder_release_151_throttle] jservices-rpm JUNOS Services RPM [20161209.011156_builder_release_151_throttle] jservices-ptsp JUNOS Services PTSP Container package [20161209.011156_builder_release_151_throttle] jservices-nat JUNOS Services NAT [20161209.011156_builder_release_151_throttle] jservices-mss JUNOS Services Mobile Subscriber Service Container package [20161209.011156_builder_release_151_throttle] jservices-mobile JUNOS Services MobileNext Software package [20161209.011156_builder_release_151_throttle] jservices-llpdf JUNOS Services LL-PDF Container package [20161209.011156_builder_release_151_throttle] jservices-jflow JUNOS Services Jflow Container package [20161209.011156_builder_release_151_throttle] jservices-ipsec JUNOS Services IPSec [20161209.011156_builder_release_151_throttle] jservices-idp JUNOS IDP Services [20161209.011156_builder_release_151_throttle] jservices-hcm JUNOS Services HTTP Content Management package [20161209.011156_builder_release_151_throttle] jservices-crypto-base JUNOS Services Crypto [20161209.011156_builder_release_151_throttle] jservices-cpcd JUNOS Services Captive Portal and Content Delivery Container package [20161209.011156_builder_release_151_throttle] jservices-cos JUNOS Services COS [20161209.011156_builder_release_151_throttle] jservices-bgf JUNOS Border Gateway Function package [20161209.011156_builder_release_151_throttle] jservices-appid JUNOS AppId Services [20161209.011156_builder_release_151_throttle] jservices-alg JUNOS Services Application Level Gateways [20161209.011156_builder_release_151_throttle] jservices-aacl JUNOS Services AACL Container package [20161209.011156_builder_release_151_throttle] jpfe-platform JUNOS Packet Forwarding Engine Support (MX/EX92XX Common) [20161209.011156_builder_release_151_throttle] jpfe-common JUNOS Packet Forwarding Engine Support (M/T Common) [20161209.011156_builder_release_151_throttle] jdocs JUNOS Online Documentation [20161209.011156_builder_release_151_throttle] fips-mode JUNOS FIPS mode utilities [20161209.011156_builder_release_151_throttle] py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/sw_info_vc_file-show.xml000066400000000000000000002042141475361112400262440ustar00rootroot00000000000000 #$Id: hosts.junos,v 1.7.72.1 2009-04-16 05:22:03 kdickman Exp $ # # File mapping AF_INET/AF_INET6 hostnames for REs on Single and Multichassis # systems # # This file is looked at before /etc/hosts by gethostbyname(3), # gethostbyname2(3) and getaddrinfo(3) # # The IP addresses in this file are only used for communication between REs # over the Internal Routing Instances # # WARNING: # # The names in this file are effectively reserved for internal use. # # New IP address format (RT_IRS_V3) # # Single Chassis Hostnames # 128.0.0.1 master 128.0.0.1 node 128.0.0.1 fwdd 128.0.0.1 member 128.0.0.1 pfem 128.0.0.2 scb 128.0.0.2 sbr 128.0.0.2 ssb 128.0.0.2 feb 128.0.0.2 cfeb0 128.0.0.2 cfeb 128.0.0.2 cpp0 128.0.0.3 cfeb1 128.0.0.3 cpp1 128.0.0.4 re0 128.0.0.5 re1 128.0.0.6 backup 128.0.0.8 sfm0 128.0.0.9 sfm1 128.0.0.10 sfm2 128.0.0.16 fpc0 128.0.0.17 fpc1 128.0.0.18 fpc2 128.0.0.19 fpc3 128.0.0.20 fpc4 128.0.0.21 fpc5 128.0.0.22 fpc6 128.0.0.23 fpc7 128.0.0.24 fpc8 128.0.0.25 fpc9 128.0.0.26 fpc10 128.0.0.27 fpc11 128.0.0.28 fpc12 128.0.0.29 fpc13 128.0.0.30 fpc14 128.0.0.31 fpc15 128.0.0.32 feb0 128.0.0.32 fpc16 128.0.0.33 feb1 128.0.0.33 fpc17 128.0.0.34 feb2 128.0.0.34 fpc18 128.0.0.35 feb3 128.0.0.35 fpc19 128.0.0.36 fpc20 128.0.0.36 feb4 128.0.0.37 feb5 128.0.0.37 fpc21 128.0.0.38 fpc22 128.0.0.39 fpc23 128.0.0.40 fpc24 128.0.0.41 fpc25 128.0.0.42 fpc26 128.0.0.43 fpc27 128.0.0.44 fpc28 128.0.0.45 fpc29 128.0.0.46 fpc30 128.0.0.47 fpc31 128.0.0.48 spmb0 128.0.0.49 spmb1 128.0.0.50 tfeb0 128.0.0.50 afeb0 128.0.0.53 esc0 128.0.0.54 esc1 128.0.0.55 esc0-ipmi 128.0.0.56 esc1-ipmi 128.0.1.16 fpc0.pic0 128.0.1.17 fpc1.pic0 128.0.1.18 fpc2.pic0 128.0.1.19 fpc3.pic0 128.0.1.20 fpc4.pic0 128.0.1.21 fpc5.pic0 128.0.1.22 fpc6.pic0 128.0.1.23 fpc7.pic0 128.0.1.24 fpc8.pic0 128.0.1.25 fpc9.pic0 128.0.1.26 fpc10.pic0 128.0.1.27 fpc11.pic0 128.0.1.28 fpc12.pic0 128.0.1.29 fpc13.pic0 128.0.1.30 fpc14.pic0 128.0.1.31 fpc15.pic0 128.0.1.32 fpc16.pic0 128.0.1.33 fpc17.pic0 128.0.1.34 fpc18.pic0 128.0.1.35 fpc19.pic0 128.0.1.36 fpc20.pic0 128.0.1.37 fpc21.pic0 128.0.1.38 fpc22.pic0 128.0.1.39 fpc23.pic0 128.0.1.40 fpc24.pic0 128.0.1.41 fpc25.pic0 128.0.1.42 fpc26.pic0 128.0.1.43 fpc27.pic0 128.0.1.44 fpc28.pic0 128.0.1.45 fpc29.pic0 128.0.1.46 fpc30.pic0 128.0.1.47 fpc31.pic0 128.0.2.16 fpc0.pic1 128.0.2.17 fpc1.pic1 128.0.2.18 fpc2.pic1 128.0.2.19 fpc3.pic1 128.0.2.20 fpc4.pic1 128.0.2.21 fpc5.pic1 128.0.2.22 fpc6.pic1 128.0.2.23 fpc7.pic1 128.0.2.24 fpc8.pic1 128.0.2.25 fpc9.pic1 128.0.2.26 fpc10.pic1 128.0.2.27 fpc11.pic1 128.0.2.28 fpc12.pic1 128.0.2.29 fpc13.pic1 128.0.2.30 fpc14.pic1 128.0.2.31 fpc15.pic1 128.0.2.32 fpc16.pic1 128.0.2.33 fpc17.pic1 128.0.2.34 fpc18.pic1 128.0.2.35 fpc19.pic1 128.0.2.36 fpc20.pic1 128.0.2.37 fpc21.pic1 128.0.2.38 fpc22.pic1 128.0.2.39 fpc23.pic1 128.0.2.40 fpc24.pic1 128.0.2.41 fpc25.pic1 128.0.2.42 fpc26.pic1 128.0.2.43 fpc27.pic1 128.0.2.44 fpc28.pic1 128.0.2.45 fpc29.pic1 128.0.2.46 fpc30.pic1 128.0.2.47 fpc31.pic1 128.0.3.16 fpc0.pic2 128.0.3.17 fpc1.pic2 128.0.3.18 fpc2.pic2 128.0.3.19 fpc3.pic2 128.0.3.20 fpc4.pic2 128.0.3.21 fpc5.pic2 128.0.3.22 fpc6.pic2 128.0.3.23 fpc7.pic2 128.0.3.24 fpc8.pic2 128.0.3.25 fpc9.pic2 128.0.3.26 fpc10.pic2 128.0.3.27 fpc11.pic2 128.0.3.28 fpc12.pic2 128.0.3.29 fpc13.pic2 128.0.3.30 fpc14.pic2 128.0.3.31 fpc15.pic2 128.0.4.16 fpc0.pic3 128.0.4.17 fpc1.pic3 128.0.4.18 fpc2.pic3 128.0.4.19 fpc3.pic3 128.0.4.20 fpc4.pic3 128.0.4.21 fpc5.pic3 128.0.4.22 fpc6.pic3 128.0.4.23 fpc7.pic3 128.0.4.24 fpc8.pic3 128.0.4.25 fpc9.pic3 128.0.4.26 fpc10.pic3 128.0.4.27 fpc11.pic3 128.0.4.28 fpc12.pic3 128.0.4.29 fpc13.pic3 128.0.4.30 fpc14.pic3 128.0.4.31 fpc15.pic3 # # DCF-Root Hostname # 128.0.130.2 dcf-root # # Multi Chassis Hostnames # #SCC 144.0.0.1 scc-master 144.0.0.4 scc-re0 144.0.0.5 scc-re1 144.0.0.6 scc-backup 144.0.0.48 scc-spmb0 144.0.0.49 scc-spmb1 #LCC 0 (or MEMBER 0 on Virtual Chassis) 129.0.0.1 lcc0-master member0-master member0 129.0.0.4 lcc0-re0 member0-re0 129.0.0.5 lcc0-re1 member0-re1 129.0.0.6 lcc0-backup member0-backup 129.0.0.16 member0-fpc0 129.0.0.17 member0-fpc1 129.0.0.18 member0-fpc2 129.0.0.19 member0-fpc3 129.0.0.20 member0-fpc4 129.0.0.21 member0-fpc5 129.0.0.22 member0-fpc6 129.0.0.23 member0-fpc7 129.0.0.24 member0-fpc8 129.0.0.25 member0-fpc9 129.0.0.26 member0-fpc10 129.0.0.27 member0-fpc11 129.0.0.28 member0-fpc12 129.0.0.29 member0-fpc13 129.0.0.30 member0-fpc14 129.0.0.31 member0-fpc15 129.0.0.32 member0-fpc16 129.0.0.33 member0-fpc17 129.0.0.34 member0-fpc18 129.0.0.35 member0-fpc19 129.0.0.36 member0-fpc20 129.0.0.37 member0-fpc21 129.0.0.38 member0-fpc22 129.0.0.39 member0-fpc23 129.0.0.40 member0-fpc24 129.0.0.41 member0-fpc25 129.0.0.42 member0-fpc26 129.0.0.43 member0-fpc27 129.0.0.44 member0-fpc28 129.0.0.45 member0-fpc29 129.0.0.46 member0-fpc30 129.0.0.47 member0-fpc31 129.0.0.6 lcc0-backup 129.0.0.16 lcc0-fpc0 129.0.0.17 lcc0-fpc1 129.0.0.18 lcc0-fpc2 129.0.0.19 lcc0-fpc3 129.0.0.20 lcc0-fpc4 129.0.0.21 lcc0-fpc5 129.0.0.22 lcc0-fpc6 129.0.0.23 lcc0-fpc7 129.0.0.48 lcc0-spmb0 129.0.0.49 lcc0-spmb1 #LCC 1 (or MEMBER 1 on Virtual Chassis) 130.0.0.1 lcc1-master member1-master member1 130.0.0.4 lcc1-re0 member1-re0 130.0.0.5 lcc1-re1 member1-re1 130.0.0.6 lcc1-backup member1-backup 130.0.0.16 member1-fpc0 130.0.0.17 member1-fpc1 130.0.0.18 member1-fpc2 130.0.0.19 member1-fpc3 130.0.0.20 member1-fpc4 130.0.0.21 member1-fpc5 130.0.0.22 member1-fpc6 130.0.0.23 member1-fpc7 130.0.0.24 member1-fpc8 130.0.0.25 member1-fpc9 130.0.0.26 member1-fpc10 130.0.0.27 member1-fpc11 130.0.0.28 member1-fpc12 130.0.0.29 member1-fpc13 130.0.0.30 member1-fpc14 130.0.0.31 member1-fpc15 130.0.0.32 member1-fpc16 130.0.0.33 member1-fpc17 130.0.0.34 member1-fpc18 130.0.0.35 member1-fpc19 130.0.0.36 member1-fpc20 130.0.0.37 member1-fpc21 130.0.0.38 member1-fpc22 130.0.0.39 member1-fpc23 130.0.0.40 member1-fpc24 130.0.0.41 member1-fpc25 130.0.0.42 member1-fpc26 130.0.0.43 member1-fpc27 130.0.0.44 member1-fpc28 130.0.0.45 member1-fpc29 130.0.0.46 member1-fpc30 130.0.0.47 member1-fpc31 130.0.0.6 lcc1-backup 130.0.0.16 lcc1-fpc0 130.0.0.17 lcc1-fpc1 130.0.0.18 lcc1-fpc2 130.0.0.19 lcc1-fpc3 130.0.0.20 lcc1-fpc4 130.0.0.21 lcc1-fpc5 130.0.0.22 lcc1-fpc6 130.0.0.23 lcc1-fpc7 130.0.0.48 lcc1-spmb0 130.0.0.49 lcc1-spmb1 #LCC 2 (or MEMBER 2 on Virtual Chassis) 131.0.0.1 lcc2-master member2-master member2 131.0.0.4 lcc2-re0 member2-re0 131.0.0.5 lcc2-re1 member2-re1 131.0.0.6 lcc2-backup member2-backup 131.0.0.16 member2-fpc0 131.0.0.17 member2-fpc1 131.0.0.18 member2-fpc2 131.0.0.19 member2-fpc3 131.0.0.20 member2-fpc4 131.0.0.21 member2-fpc5 131.0.0.22 member2-fpc6 131.0.0.23 member2-fpc7 131.0.0.24 member2-fpc8 131.0.0.25 member2-fpc9 131.0.0.26 member2-fpc10 131.0.0.27 member2-fpc11 131.0.0.28 member2-fpc12 131.0.0.29 member2-fpc13 131.0.0.30 member2-fpc14 131.0.0.31 member2-fpc15 131.0.0.32 member2-fpc16 131.0.0.33 member2-fpc17 131.0.0.34 member2-fpc18 131.0.0.35 member2-fpc19 131.0.0.36 member2-fpc20 131.0.0.37 member2-fpc21 131.0.0.38 member2-fpc22 131.0.0.39 member2-fpc23 131.0.0.40 member2-fpc24 131.0.0.41 member2-fpc25 131.0.0.42 member2-fpc26 131.0.0.43 member2-fpc27 131.0.0.44 member2-fpc28 131.0.0.45 member2-fpc29 131.0.0.46 member2-fpc30 131.0.0.47 member2-fpc31 131.0.0.6 lcc2-backup 131.0.0.16 lcc2-fpc0 131.0.0.17 lcc2-fpc1 131.0.0.18 lcc2-fpc2 131.0.0.19 lcc2-fpc3 131.0.0.20 lcc2-fpc4 131.0.0.21 lcc2-fpc5 131.0.0.22 lcc2-fpc6 131.0.0.23 lcc2-fpc7 131.0.0.48 lcc2-spmb0 131.0.0.49 lcc20-spmb1 #LCC 3 (or MEMBER 3 on Virtual Chassis) 132.0.0.1 lcc3-master member3-master member3 132.0.0.4 lcc3-re0 member3-re0 132.0.0.5 lcc3-re1 member3-re1 132.0.0.6 lcc3-backup member3-backup 132.0.0.16 member3-fpc0 132.0.0.17 member3-fpc1 132.0.0.18 member3-fpc2 132.0.0.19 member3-fpc3 132.0.0.20 member3-fpc4 132.0.0.21 member3-fpc5 132.0.0.22 member3-fpc6 132.0.0.23 member3-fpc7 132.0.0.24 member3-fpc8 132.0.0.25 member3-fpc9 132.0.0.26 member3-fpc10 132.0.0.27 member3-fpc11 132.0.0.28 member3-fpc12 132.0.0.29 member3-fpc13 132.0.0.30 member3-fpc14 132.0.0.31 member3-fpc15 132.0.0.32 member3-fpc16 132.0.0.33 member3-fpc17 132.0.0.34 member3-fpc18 132.0.0.35 member3-fpc19 132.0.0.36 member3-fpc20 132.0.0.37 member3-fpc21 132.0.0.38 member3-fpc22 132.0.0.39 member3-fpc23 132.0.0.40 member3-fpc24 132.0.0.41 member3-fpc25 132.0.0.42 member3-fpc26 132.0.0.43 member3-fpc27 132.0.0.44 member3-fpc28 132.0.0.45 member3-fpc29 132.0.0.46 member3-fpc30 132.0.0.47 member3-fpc31 132.0.0.6 lcc3-backup 132.0.0.16 lcc3-fpc0 132.0.0.17 lcc3-fpc1 132.0.0.18 lcc3-fpc2 132.0.0.19 lcc3-fpc3 132.0.0.20 lcc3-fpc4 132.0.0.21 lcc3-fpc5 132.0.0.22 lcc3-fpc6 132.0.0.23 lcc3-fpc7 132.0.0.48 lcc3-spmb0 132.0.0.49 lcc3-spmb1 #LCC 4 (or MEMBER 4 on Virtual Chassis) 133.0.0.1 lcc4-master member4-master member4 133.0.0.4 lcc4-re0 member4-re0 133.0.0.5 lcc4-re1 member4-re1 133.0.0.6 lcc4-backup member4-backup 133.0.0.16 member4-fpc0 133.0.0.17 member4-fpc1 133.0.0.18 member4-fpc2 133.0.0.19 member4-fpc3 133.0.0.20 member4-fpc4 133.0.0.21 member4-fpc5 133.0.0.22 member4-fpc6 133.0.0.23 member4-fpc7 133.0.0.24 member4-fpc8 133.0.0.25 member4-fpc9 133.0.0.26 member4-fpc10 133.0.0.27 member4-fpc11 133.0.0.28 member4-fpc12 133.0.0.29 member4-fpc13 133.0.0.30 member4-fpc14 133.0.0.31 member4-fpc15 133.0.0.32 member4-fpc16 133.0.0.33 member4-fpc17 133.0.0.34 member4-fpc18 133.0.0.35 member4-fpc19 133.0.0.36 member4-fpc20 133.0.0.37 member4-fpc21 133.0.0.38 member4-fpc22 133.0.0.39 member4-fpc23 133.0.0.40 member4-fpc24 133.0.0.41 member4-fpc25 133.0.0.42 member4-fpc26 133.0.0.43 member4-fpc27 133.0.0.44 member4-fpc28 133.0.0.45 member4-fpc29 133.0.0.46 member4-fpc30 133.0.0.47 member4-fpc31 133.0.0.6 lcc4-backup 133.0.0.16 lcc4-fpc0 133.0.0.17 lcc4-fpc1 133.0.0.18 lcc4-fpc2 133.0.0.19 lcc4-fpc3 133.0.0.20 lcc4-fpc4 133.0.0.21 lcc4-fpc5 133.0.0.22 lcc4-fpc6 133.0.0.23 lcc4-fpc7 133.0.0.48 lcc4-spmb0 133.0.0.49 lcc4-spmb1 #LCC 5 (or MEMBER 5 on Virtual Chassis) 134.0.0.1 lcc5-master member5-master member5 134.0.0.4 lcc5-re0 member5-re0 134.0.0.5 lcc5-re1 member5-re1 134.0.0.6 lcc5-backup member5-backup 134.0.0.16 member5-fpc0 134.0.0.17 member5-fpc1 134.0.0.18 member5-fpc2 134.0.0.19 member5-fpc3 134.0.0.20 member5-fpc4 134.0.0.21 member5-fpc5 134.0.0.22 member5-fpc6 134.0.0.23 member5-fpc7 134.0.0.24 member5-fpc8 134.0.0.25 member5-fpc9 134.0.0.26 member5-fpc10 134.0.0.27 member5-fpc11 134.0.0.28 member5-fpc12 134.0.0.29 member5-fpc13 134.0.0.30 member5-fpc14 134.0.0.31 member5-fpc15 134.0.0.32 member5-fpc16 134.0.0.33 member5-fpc17 134.0.0.34 member5-fpc18 134.0.0.35 member5-fpc19 134.0.0.36 member5-fpc20 134.0.0.37 member5-fpc21 134.0.0.38 member5-fpc22 134.0.0.39 member5-fpc23 134.0.0.40 member5-fpc24 134.0.0.41 member5-fpc25 134.0.0.42 member5-fpc26 134.0.0.43 member5-fpc27 134.0.0.44 member5-fpc28 134.0.0.45 member5-fpc29 134.0.0.46 member5-fpc30 134.0.0.47 member5-fpc31 134.0.0.6 lcc5-backup 134.0.0.16 lcc5-fpc0 134.0.0.17 lcc5-fpc1 134.0.0.18 lcc5-fpc2 134.0.0.19 lcc5-fpc3 134.0.0.20 lcc5-fpc4 134.0.0.21 lcc5-fpc5 134.0.0.22 lcc5-fpc6 134.0.0.23 lcc5-fpc7 134.0.0.48 lcc5-spmb0 134.0.0.49 lcc5-spmb1 #LCC 6 (or MEMBER 6 on Virtual Chassis) 135.0.0.1 lcc6-master member6-master member6 135.0.0.4 lcc6-re0 member6-re0 135.0.0.5 lcc6-re1 member6-re1 135.0.0.6 lcc6-backup member6-backup 135.0.0.16 member6-fpc0 135.0.0.17 member6-fpc1 135.0.0.18 member6-fpc2 135.0.0.19 member6-fpc3 135.0.0.20 member6-fpc4 135.0.0.21 member6-fpc5 135.0.0.22 member6-fpc6 135.0.0.23 member6-fpc7 135.0.0.24 member6-fpc8 135.0.0.25 member6-fpc9 135.0.0.26 member6-fpc10 135.0.0.27 member6-fpc11 135.0.0.28 member6-fpc12 135.0.0.29 member6-fpc13 135.0.0.30 member6-fpc14 135.0.0.31 member6-fpc15 135.0.0.32 member6-fpc16 135.0.0.33 member6-fpc17 135.0.0.34 member6-fpc18 135.0.0.35 member6-fpc19 135.0.0.36 member6-fpc20 135.0.0.37 member6-fpc21 135.0.0.38 member6-fpc22 135.0.0.39 member6-fpc23 135.0.0.40 member6-fpc24 135.0.0.41 member6-fpc25 135.0.0.42 member6-fpc26 135.0.0.43 member6-fpc27 135.0.0.44 member6-fpc28 135.0.0.45 member6-fpc29 135.0.0.46 member6-fpc30 135.0.0.47 member6-fpc31 135.0.0.6 lcc6-backup 135.0.0.16 lcc6-fpc0 135.0.0.17 lcc6-fpc1 135.0.0.18 lcc6-fpc2 135.0.0.19 lcc6-fpc3 135.0.0.20 lcc6-fpc4 135.0.0.21 lcc6-fpc5 135.0.0.22 lcc6-fpc6 135.0.0.23 lcc6-fpc7 135.0.0.48 lcc6-spmb0 135.0.0.49 lcc6-spmb1 #LCC 7 (or MEMBER 7 on Virtual Chassis) 136.0.0.1 lcc7-master member7-master member7 136.0.0.4 lcc7-re0 member7-re0 136.0.0.5 lcc7-re1 member7-re1 136.0.0.6 lcc7-backup member7-backup 136.0.0.16 member7-fpc0 136.0.0.17 member7-fpc1 136.0.0.18 member7-fpc2 136.0.0.19 member7-fpc3 136.0.0.20 member7-fpc4 136.0.0.21 member7-fpc5 136.0.0.22 member7-fpc6 136.0.0.23 member7-fpc7 136.0.0.24 member7-fpc8 136.0.0.25 member7-fpc9 136.0.0.26 member7-fpc10 136.0.0.27 member7-fpc11 136.0.0.28 member7-fpc12 136.0.0.29 member7-fpc13 136.0.0.30 member7-fpc14 136.0.0.31 member7-fpc15 136.0.0.32 member7-fpc16 136.0.0.33 member7-fpc17 136.0.0.34 member7-fpc18 136.0.0.35 member7-fpc19 136.0.0.36 member7-fpc20 136.0.0.37 member7-fpc21 136.0.0.38 member7-fpc22 136.0.0.39 member7-fpc23 136.0.0.40 member7-fpc24 136.0.0.41 member7-fpc25 136.0.0.42 member7-fpc26 136.0.0.43 member7-fpc27 136.0.0.44 member7-fpc28 136.0.0.45 member7-fpc29 136.0.0.46 member7-fpc30 136.0.0.47 member7-fpc31 136.0.0.6 lcc7-backup 136.0.0.16 lcc7-fpc0 136.0.0.17 lcc7-fpc1 136.0.0.18 lcc7-fpc2 136.0.0.19 lcc7-fpc3 136.0.0.20 lcc7-fpc4 136.0.0.21 lcc7-fpc5 136.0.0.22 lcc7-fpc6 136.0.0.23 lcc7-fpc7 136.0.0.48 lcc7-spmb0 136.0.0.49 lcc7-spmb1 137.0.0.6 lcc8-backup 137.0.0.16 lcc8-fpc0 137.0.0.17 lcc8-fpc1 137.0.0.18 lcc8-fpc2 137.0.0.19 lcc8-fpc3 137.0.0.20 lcc8-fpc4 137.0.0.21 lcc8-fpc5 137.0.0.22 lcc8-fpc6 137.0.0.23 lcc8-fpc7 137.0.0.48 lcc8-spmb0 137.0.0.49 lcc8-spmb1 #LCC 8 (or MEMBER 8 on Virtual Chassis) 137.0.0.1 lcc8-master member8-master member8 137.0.0.4 lcc8-re0 member8-re0 137.0.0.5 lcc8-re1 member8-re1 137.0.0.6 lcc8-backup member8-backup 137.0.0.16 member8-fpc0 137.0.0.17 member8-fpc1 137.0.0.18 member8-fpc2 137.0.0.19 member8-fpc3 137.0.0.20 member8-fpc4 137.0.0.21 member8-fpc5 137.0.0.22 member8-fpc6 137.0.0.23 member8-fpc7 137.0.0.24 member8-fpc8 137.0.0.25 member8-fpc9 137.0.0.26 member8-fpc10 137.0.0.27 member8-fpc11 137.0.0.28 member8-fpc12 137.0.0.29 member8-fpc13 137.0.0.30 member8-fpc14 137.0.0.31 member8-fpc15 137.0.0.32 member8-fpc16 137.0.0.33 member8-fpc17 137.0.0.34 member8-fpc18 137.0.0.35 member8-fpc19 137.0.0.36 member8-fpc20 137.0.0.37 member8-fpc21 137.0.0.38 member8-fpc22 137.0.0.39 member8-fpc23 137.0.0.40 member8-fpc24 137.0.0.41 member8-fpc25 137.0.0.42 member8-fpc26 137.0.0.43 member8-fpc27 137.0.0.44 member8-fpc28 137.0.0.45 member8-fpc29 137.0.0.46 member8-fpc30 137.0.0.47 member8-fpc31 138.0.0.6 lcc9-backup 138.0.0.16 lcc9-fpc0 138.0.0.17 lcc9-fpc1 138.0.0.18 lcc9-fpc2 138.0.0.19 lcc9-fpc3 138.0.0.20 lcc9-fpc4 138.0.0.21 lcc9-fpc5 138.0.0.22 lcc9-fpc6 138.0.0.23 lcc9-fpc7 138.0.0.48 lcc9-spmb0 138.0.0.49 lcc9-spmb1 #LCC 9 (or MEMBER 9 on Virtual Chassis) 138.0.0.1 lcc9-master member9-master member9 138.0.0.4 lcc9-re0 member9-re0 138.0.0.5 lcc9-re1 member9-re1 138.0.0.6 lcc9-backup member9-backup 138.0.0.16 member9-fpc0 138.0.0.17 member9-fpc1 138.0.0.18 member9-fpc2 138.0.0.19 member9-fpc3 138.0.0.20 member9-fpc4 138.0.0.21 member9-fpc5 138.0.0.22 member9-fpc6 138.0.0.23 member9-fpc7 138.0.0.24 member9-fpc8 138.0.0.25 member9-fpc9 138.0.0.26 member9-fpc10 138.0.0.27 member9-fpc11 138.0.0.28 member9-fpc12 138.0.0.29 member9-fpc13 138.0.0.30 member9-fpc14 138.0.0.31 member9-fpc15 138.0.0.32 member9-fpc16 138.0.0.33 member9-fpc17 138.0.0.34 member9-fpc18 138.0.0.35 member9-fpc19 138.0.0.36 member9-fpc20 138.0.0.37 member9-fpc21 138.0.0.38 member9-fpc22 138.0.0.39 member9-fpc23 138.0.0.40 member9-fpc24 138.0.0.41 member9-fpc25 138.0.0.42 member9-fpc26 138.0.0.43 member9-fpc27 138.0.0.44 member9-fpc28 138.0.0.45 member9-fpc29 138.0.0.46 member9-fpc30 138.0.0.47 member9-fpc31 139.0.0.6 lcc10-backup 139.0.0.16 lcc10-fpc0 139.0.0.17 lcc10-fpc1 139.0.0.18 lcc10-fpc2 139.0.0.19 lcc10-fpc3 139.0.0.20 lcc10-fpc4 139.0.0.21 lcc10-fpc5 139.0.0.22 lcc10-fpc6 139.0.0.23 lcc10-fpc7 139.0.0.48 lcc10-spmb0 139.0.0.49 lcc10-spmb1 #LCC 10 (or MEMBER 10 on Virtual Chassis) 139.0.0.1 lcc10-master member10-master 139.0.0.4 lcc10-re0 member10-re0 139.0.0.5 lcc10-re1 member10-re1 139.0.0.6 lcc10-backup member10-backup 139.0.0.16 member10-fpc0 139.0.0.17 member10-fpc1 139.0.0.18 member10-fpc2 139.0.0.19 member10-fpc3 139.0.0.20 member10-fpc4 139.0.0.21 member10-fpc5 139.0.0.22 member10-fpc6 139.0.0.23 member10-fpc7 139.0.0.24 member10-fpc8 139.0.0.25 member10-fpc9 139.0.0.26 member10-fpc10 139.0.0.27 member10-fpc11 139.0.0.28 member10-fpc12 139.0.0.29 member10-fpc13 139.0.0.30 member10-fpc14 139.0.0.31 member10-fpc15 139.0.0.32 member10-fpc16 139.0.0.33 member10-fpc17 139.0.0.34 member10-fpc18 139.0.0.35 member10-fpc19 139.0.0.36 member10-fpc20 139.0.0.37 member10-fpc21 139.0.0.38 member10-fpc22 139.0.0.39 member10-fpc23 139.0.0.40 member10-fpc24 139.0.0.41 member10-fpc25 139.0.0.42 member10-fpc26 139.0.0.43 member10-fpc27 139.0.0.44 member10-fpc28 139.0.0.45 member10-fpc29 139.0.0.46 member10-fpc30 139.0.0.47 member10-fpc31 140.0.0.6 lcc11-backup 140.0.0.16 lcc11-fpc0 140.0.0.17 lcc11-fpc1 140.0.0.18 lcc11-fpc2 140.0.0.19 lcc11-fpc3 140.0.0.20 lcc11-fpc4 140.0.0.21 lcc11-fpc5 140.0.0.22 lcc11-fpc6 140.0.0.23 lcc11-fpc7 140.0.0.48 lcc11-spmb0 140.0.0.49 lcc11-spmb1 #LCC 11 (or MEMBER 11 on Virtual Chassis) 140.0.0.1 lcc11-master member11-master 140.0.0.4 lcc11-re0 member11-re0 140.0.0.5 lcc11-re1 member11-re1 140.0.0.6 lcc11-backup member11-backup 140.0.0.16 member11-fpc0 140.0.0.17 member11-fpc1 140.0.0.18 member11-fpc2 140.0.0.19 member11-fpc3 140.0.0.20 member11-fpc4 140.0.0.21 member11-fpc5 140.0.0.22 member11-fpc6 140.0.0.23 member11-fpc7 140.0.0.24 member11-fpc8 140.0.0.25 member11-fpc9 140.0.0.26 member11-fpc10 140.0.0.27 member11-fpc11 140.0.0.28 member11-fpc12 140.0.0.29 member11-fpc13 140.0.0.30 member11-fpc14 140.0.0.31 member11-fpc15 140.0.0.32 member11-fpc16 140.0.0.33 member11-fpc17 140.0.0.34 member11-fpc18 140.0.0.35 member11-fpc19 140.0.0.36 member11-fpc20 140.0.0.37 member11-fpc21 140.0.0.38 member11-fpc22 140.0.0.39 member11-fpc23 140.0.0.40 member11-fpc24 140.0.0.41 member11-fpc25 140.0.0.42 member11-fpc26 140.0.0.43 member11-fpc27 140.0.0.44 member11-fpc28 140.0.0.45 member11-fpc29 140.0.0.46 member11-fpc30 140.0.0.47 member11-fpc31 141.0.0.6 lcc12-backup 141.0.0.16 lcc12-fpc0 141.0.0.17 lcc12-fpc1 141.0.0.18 lcc12-fpc2 141.0.0.19 lcc12-fpc3 141.0.0.20 lcc12-fpc4 141.0.0.21 lcc12-fpc5 141.0.0.22 lcc12-fpc6 141.0.0.23 lcc12-fpc7 141.0.0.48 lcc12-spmb0 141.0.0.49 lcc12-spmb1 #LCC 12 (or MEMBER 12 on Virtual Chassis) 141.0.0.1 lcc12-master member12-master 141.0.0.4 lcc12-re0 member12-re0 141.0.0.5 lcc12-re1 member12-re1 141.0.0.6 lcc12-backup member12-backup 141.0.0.16 member12-fpc0 141.0.0.17 member12-fpc1 141.0.0.18 member12-fpc2 141.0.0.19 member12-fpc3 141.0.0.20 member12-fpc4 141.0.0.21 member12-fpc5 141.0.0.22 member12-fpc6 141.0.0.23 member12-fpc7 141.0.0.24 member12-fpc8 141.0.0.25 member12-fpc9 141.0.0.26 member12-fpc10 141.0.0.27 member12-fpc11 141.0.0.28 member12-fpc12 141.0.0.29 member12-fpc13 141.0.0.30 member12-fpc14 141.0.0.31 member12-fpc15 141.0.0.32 member12-fpc16 141.0.0.33 member12-fpc17 141.0.0.34 member12-fpc18 141.0.0.35 member12-fpc19 141.0.0.36 member12-fpc20 141.0.0.37 member12-fpc21 141.0.0.38 member12-fpc22 141.0.0.39 member12-fpc23 141.0.0.40 member12-fpc24 141.0.0.41 member12-fpc25 141.0.0.42 member12-fpc26 141.0.0.43 member12-fpc27 141.0.0.44 member12-fpc28 141.0.0.45 member12-fpc29 141.0.0.46 member12-fpc30 141.0.0.47 member12-fpc31 142.0.0.6 lcc13-backup 142.0.0.16 lcc13-fpc0 142.0.0.17 lcc13-fpc1 142.0.0.18 lcc13-fpc2 142.0.0.19 lcc13-fpc3 142.0.0.20 lcc13-fpc4 142.0.0.21 lcc13-fpc5 142.0.0.22 lcc13-fpc6 142.0.0.23 lcc13-fpc7 142.0.0.48 lcc13-spmb0 142.0.0.49 lcc13-spmb1 #LCC 13 (or MEMBER 13 on Virtual Chassis) 142.0.0.1 lcc13-master member13-master 142.0.0.4 lcc13-re0 member13-re0 142.0.0.5 lcc13-re1 member13-re1 142.0.0.6 lcc13-backup member13-backup 142.0.0.16 member13-fpc0 142.0.0.17 member13-fpc1 142.0.0.18 member13-fpc2 142.0.0.19 member13-fpc3 142.0.0.20 member13-fpc4 142.0.0.21 member13-fpc5 142.0.0.22 member13-fpc6 142.0.0.23 member13-fpc7 142.0.0.24 member13-fpc8 142.0.0.25 member13-fpc9 142.0.0.26 member13-fpc10 142.0.0.27 member13-fpc11 142.0.0.28 member13-fpc12 142.0.0.29 member13-fpc13 142.0.0.30 member13-fpc14 142.0.0.31 member13-fpc15 142.0.0.32 member13-fpc16 142.0.0.33 member13-fpc17 142.0.0.34 member13-fpc18 142.0.0.35 member13-fpc19 142.0.0.36 member13-fpc20 142.0.0.37 member13-fpc21 142.0.0.38 member13-fpc22 142.0.0.39 member13-fpc23 142.0.0.40 member13-fpc24 142.0.0.41 member13-fpc25 142.0.0.42 member13-fpc26 142.0.0.43 member13-fpc27 142.0.0.44 member13-fpc28 142.0.0.45 member13-fpc29 142.0.0.46 member13-fpc30 142.0.0.47 member13-fpc31 143.0.0.6 lcc14-backup 143.0.0.16 lcc14-fpc0 143.0.0.17 lcc14-fpc1 143.0.0.18 lcc14-fpc2 143.0.0.19 lcc14-fpc3 143.0.0.20 lcc14-fpc4 143.0.0.21 lcc14-fpc5 143.0.0.22 lcc14-fpc6 143.0.0.23 lcc14-fpc7 143.0.0.48 lcc14-spmb0 143.0.0.49 lcc14-spmb1 #LCC 14 (or MEMBER 14 on Virtual Chassis) 143.0.0.1 lcc14-master member14-master 143.0.0.4 lcc14-re0 member14-re0 143.0.0.5 lcc14-re1 member14-re1 143.0.0.6 lcc14-backup member14-backup 143.0.0.16 member14-fpc0 143.0.0.17 member14-fpc1 143.0.0.18 member14-fpc2 143.0.0.19 member14-fpc3 143.0.0.20 member14-fpc4 143.0.0.21 member14-fpc5 143.0.0.22 member14-fpc6 143.0.0.23 member14-fpc7 143.0.0.24 member14-fpc8 143.0.0.25 member14-fpc9 143.0.0.26 member14-fpc10 143.0.0.27 member14-fpc11 143.0.0.28 member14-fpc12 143.0.0.29 member14-fpc13 143.0.0.30 member14-fpc14 143.0.0.31 member14-fpc15 143.0.0.32 member14-fpc16 143.0.0.33 member14-fpc17 143.0.0.34 member14-fpc18 143.0.0.35 member14-fpc19 143.0.0.36 member14-fpc20 143.0.0.37 member14-fpc21 143.0.0.38 member14-fpc22 143.0.0.39 member14-fpc23 143.0.0.40 member14-fpc24 143.0.0.41 member14-fpc25 143.0.0.42 member14-fpc26 143.0.0.43 member14-fpc27 143.0.0.44 member14-fpc28 143.0.0.45 member14-fpc29 143.0.0.46 member14-fpc30 143.0.0.47 member14-fpc31 144.0.0.6 lcc15-backup 144.0.0.16 lcc15-fpc0 144.0.0.17 lcc15-fpc1 144.0.0.18 lcc15-fpc2 144.0.0.19 lcc15-fpc3 144.0.0.20 lcc15-fpc4 144.0.0.21 lcc15-fpc5 144.0.0.22 lcc15-fpc6 144.0.0.23 lcc15-fpc7 144.0.0.48 lcc15-spmb0 144.0.0.49 lcc15-spmb1 #LCC 15 (or MEMBER 15 on Virtual Chassis) 144.0.0.1 lcc15-master member15-master 144.0.0.4 lcc15-re0 member15-re0 144.0.0.5 lcc15-re1 member15-re1 144.0.0.6 lcc15-backup member15-backup 144.0.0.16 member15-fpc0 144.0.0.17 member15-fpc1 144.0.0.18 member15-fpc2 144.0.0.19 member15-fpc3 144.0.0.20 member15-fpc4 144.0.0.21 member15-fpc5 144.0.0.22 member15-fpc6 144.0.0.23 member15-fpc7 144.0.0.24 member15-fpc8 144.0.0.25 member15-fpc9 144.0.0.26 member15-fpc10 144.0.0.27 member15-fpc11 144.0.0.28 member15-fpc12 144.0.0.29 member15-fpc13 144.0.0.30 member15-fpc14 144.0.0.31 member15-fpc15 144.0.0.32 member15-fpc16 144.0.0.33 member15-fpc17 144.0.0.34 member15-fpc18 144.0.0.35 member15-fpc19 144.0.0.36 member15-fpc20 144.0.0.37 member15-fpc21 144.0.0.38 member15-fpc22 144.0.0.39 member15-fpc23 144.0.0.40 member15-fpc24 144.0.0.41 member15-fpc25 144.0.0.42 member15-fpc26 144.0.0.43 member15-fpc27 144.0.0.44 member15-fpc28 144.0.0.45 member15-fpc29 144.0.0.46 member15-fpc30 144.0.0.47 member15-fpc31 #LCC 16 (or MEMBER 16 on Virtual Chassis) 145.0.0.1 lcc16-master member16-master 145.0.0.4 lcc16-re0 member16-re0 145.0.0.5 lcc16-re1 member16-re1 145.0.0.6 lcc16-backup member16-backup 145.0.0.16 member16-fpc0 145.0.0.17 member16-fpc1 145.0.0.18 member16-fpc2 145.0.0.19 member16-fpc3 145.0.0.20 member16-fpc4 145.0.0.21 member16-fpc5 145.0.0.22 member16-fpc6 145.0.0.23 member16-fpc7 145.0.0.24 member16-fpc8 145.0.0.25 member16-fpc9 145.0.0.26 member16-fpc10 145.0.0.27 member16-fpc11 145.0.0.28 member16-fpc12 145.0.0.29 member16-fpc13 145.0.0.30 member16-fpc14 145.0.0.31 member16-fpc15 145.0.0.32 member16-fpc16 145.0.0.33 member16-fpc17 145.0.0.34 member16-fpc18 145.0.0.35 member16-fpc19 145.0.0.36 member16-fpc20 145.0.0.37 member16-fpc21 145.0.0.38 member16-fpc22 145.0.0.39 member16-fpc23 145.0.0.40 member16-fpc24 145.0.0.41 member16-fpc25 145.0.0.42 member16-fpc26 145.0.0.43 member16-fpc27 145.0.0.44 member16-fpc28 145.0.0.45 member16-fpc29 145.0.0.46 member16-fpc30 145.0.0.47 member16-fpc31 #LCC 17 (or MEMBER 17 on Virtual Chassis) 146.0.0.1 lcc17-master member17-master 146.0.0.4 lcc17-re0 member17-re0 146.0.0.5 lcc17-re1 member17-re1 146.0.0.6 lcc17-backup member17-backup 146.0.0.16 member17-fpc0 146.0.0.17 member17-fpc1 146.0.0.18 member17-fpc2 146.0.0.19 member17-fpc3 146.0.0.20 member17-fpc4 146.0.0.21 member17-fpc5 146.0.0.22 member17-fpc6 146.0.0.23 member17-fpc7 146.0.0.24 member17-fpc8 146.0.0.25 member17-fpc9 146.0.0.26 member17-fpc10 146.0.0.27 member17-fpc11 146.0.0.28 member17-fpc12 146.0.0.29 member17-fpc13 146.0.0.30 member17-fpc14 146.0.0.31 member17-fpc15 146.0.0.32 member17-fpc16 146.0.0.33 member17-fpc17 146.0.0.34 member17-fpc18 146.0.0.35 member17-fpc19 146.0.0.36 member17-fpc20 146.0.0.37 member17-fpc21 146.0.0.38 member17-fpc22 146.0.0.39 member17-fpc23 146.0.0.40 member17-fpc24 146.0.0.41 member17-fpc25 146.0.0.42 member17-fpc26 146.0.0.43 member17-fpc27 146.0.0.44 member17-fpc28 146.0.0.45 member17-fpc29 146.0.0.46 member17-fpc30 146.0.0.47 member17-fpc31 #LCC 18 (or MEMBER 18 on Virtual Chassis) 147.0.0.1 lcc18-master member18-master 147.0.0.4 lcc18-re0 member18-re0 147.0.0.5 lcc18-re1 member18-re1 147.0.0.6 lcc18-backup member18-backup 147.0.0.16 member18-fpc0 147.0.0.17 member18-fpc1 147.0.0.18 member18-fpc2 147.0.0.19 member18-fpc3 147.0.0.20 member18-fpc4 147.0.0.21 member18-fpc5 147.0.0.22 member18-fpc6 147.0.0.23 member18-fpc7 147.0.0.24 member18-fpc8 147.0.0.25 member18-fpc9 147.0.0.26 member18-fpc10 147.0.0.27 member18-fpc11 147.0.0.28 member18-fpc12 147.0.0.29 member18-fpc13 147.0.0.30 member18-fpc14 147.0.0.31 member18-fpc15 147.0.0.32 member18-fpc16 147.0.0.33 member18-fpc17 147.0.0.34 member18-fpc18 147.0.0.35 member18-fpc19 147.0.0.36 member18-fpc20 147.0.0.37 member18-fpc21 147.0.0.38 member18-fpc22 147.0.0.39 member18-fpc23 147.0.0.40 member18-fpc24 147.0.0.41 member18-fpc25 147.0.0.42 member18-fpc26 147.0.0.43 member18-fpc27 147.0.0.44 member18-fpc28 147.0.0.45 member18-fpc29 147.0.0.46 member18-fpc30 147.0.0.47 member18-fpc31 #LCC 19 (or MEMBER 19 on Virtual Chassis) 148.0.0.1 lcc19-master member19-master 148.0.0.4 lcc19-re0 member19-re0 148.0.0.5 lcc19-re1 member19-re1 148.0.0.6 lcc19-backup member19-backup 148.0.0.16 member19-fpc0 148.0.0.17 member19-fpc1 148.0.0.18 member19-fpc2 148.0.0.19 member19-fpc3 148.0.0.20 member19-fpc4 148.0.0.21 member19-fpc5 148.0.0.22 member19-fpc6 148.0.0.23 member19-fpc7 148.0.0.24 member19-fpc8 148.0.0.25 member19-fpc9 148.0.0.26 member19-fpc10 148.0.0.27 member19-fpc11 148.0.0.28 member19-fpc12 148.0.0.29 member19-fpc13 148.0.0.30 member19-fpc14 148.0.0.31 member19-fpc15 148.0.0.32 member19-fpc16 148.0.0.33 member19-fpc17 148.0.0.34 member19-fpc18 148.0.0.35 member19-fpc19 148.0.0.36 member19-fpc20 148.0.0.37 member19-fpc21 148.0.0.38 member19-fpc22 148.0.0.39 member19-fpc23 148.0.0.40 member19-fpc24 148.0.0.41 member19-fpc25 148.0.0.42 member19-fpc26 148.0.0.43 member19-fpc27 148.0.0.44 member19-fpc28 148.0.0.45 member19-fpc29 148.0.0.46 member19-fpc30 148.0.0.47 member19-fpc31 #LCC 20 (or MEMBER 20 on Virtual Chassis) 149.0.0.1 lcc20-master member20-master 149.0.0.4 lcc20-re0 member20-re0 149.0.0.5 lcc20-re1 member20-re1 149.0.0.6 lcc20-backup member20-backup 149.0.0.16 member20-fpc0 149.0.0.17 member20-fpc1 149.0.0.18 member20-fpc2 149.0.0.19 member20-fpc3 149.0.0.20 member20-fpc4 149.0.0.21 member20-fpc5 149.0.0.22 member20-fpc6 149.0.0.23 member20-fpc7 149.0.0.24 member20-fpc8 149.0.0.25 member20-fpc9 149.0.0.26 member20-fpc10 149.0.0.27 member20-fpc11 149.0.0.28 member20-fpc12 149.0.0.29 member20-fpc13 149.0.0.30 member20-fpc14 149.0.0.31 member20-fpc15 149.0.0.32 member20-fpc16 149.0.0.33 member20-fpc17 149.0.0.34 member20-fpc18 149.0.0.35 member20-fpc19 149.0.0.36 member20-fpc20 149.0.0.37 member20-fpc21 149.0.0.38 member20-fpc22 149.0.0.39 member20-fpc23 149.0.0.40 member20-fpc24 149.0.0.41 member20-fpc25 149.0.0.42 member20-fpc26 149.0.0.43 member20-fpc27 149.0.0.44 member20-fpc28 149.0.0.45 member20-fpc29 149.0.0.46 member20-fpc30 149.0.0.47 member20-fpc31 #LCC 21 (or MEMBER 21 on Virtual Chassis) 150.0.0.1 lcc21-master member21-master 150.0.0.4 lcc21-re0 member21-re0 150.0.0.5 lcc21-re1 member21-re1 150.0.0.6 lcc21-backup member21-backup 150.0.0.16 member21-fpc0 150.0.0.17 member21-fpc1 150.0.0.18 member21-fpc2 150.0.0.19 member21-fpc3 150.0.0.20 member21-fpc4 150.0.0.21 member21-fpc5 150.0.0.22 member21-fpc6 150.0.0.23 member21-fpc7 150.0.0.24 member21-fpc8 150.0.0.25 member21-fpc9 150.0.0.26 member21-fpc10 150.0.0.27 member21-fpc11 150.0.0.28 member21-fpc12 150.0.0.29 member21-fpc13 150.0.0.30 member21-fpc14 150.0.0.31 member21-fpc15 150.0.0.32 member21-fpc16 150.0.0.33 member21-fpc17 150.0.0.34 member21-fpc18 150.0.0.35 member21-fpc19 150.0.0.36 member21-fpc20 150.0.0.37 member21-fpc21 150.0.0.38 member21-fpc22 150.0.0.39 member21-fpc23 150.0.0.40 member21-fpc24 150.0.0.41 member21-fpc25 150.0.0.42 member21-fpc26 150.0.0.43 member21-fpc27 150.0.0.44 member21-fpc28 150.0.0.45 member21-fpc29 150.0.0.46 member21-fpc30 150.0.0.47 member21-fpc31 #LCC 22 (or MEMBER 22 on Virtual Chassis) 151.0.0.1 lcc22-master member22-master 151.0.0.4 lcc22-re0 member22-re0 151.0.0.5 lcc22-re1 member22-re1 151.0.0.6 lcc22-backup member22-backup 151.0.0.16 member22-fpc0 151.0.0.17 member22-fpc1 151.0.0.18 member22-fpc2 151.0.0.19 member22-fpc3 151.0.0.20 member22-fpc4 151.0.0.21 member22-fpc5 151.0.0.22 member22-fpc6 151.0.0.23 member22-fpc7 151.0.0.24 member22-fpc8 151.0.0.25 member22-fpc9 151.0.0.26 member22-fpc10 151.0.0.27 member22-fpc11 151.0.0.28 member22-fpc12 151.0.0.29 member22-fpc13 151.0.0.30 member22-fpc14 151.0.0.31 member22-fpc15 151.0.0.32 member22-fpc16 151.0.0.33 member22-fpc17 151.0.0.34 member22-fpc18 151.0.0.35 member22-fpc19 151.0.0.36 member22-fpc20 151.0.0.37 member22-fpc21 151.0.0.38 member22-fpc22 151.0.0.39 member22-fpc23 151.0.0.40 member22-fpc24 151.0.0.41 member22-fpc25 151.0.0.42 member22-fpc26 151.0.0.43 member22-fpc27 151.0.0.44 member22-fpc28 151.0.0.45 member22-fpc29 151.0.0.46 member22-fpc30 151.0.0.47 member22-fpc31 #LCC 23 (or MEMBER 23 on Virtual Chassis) 152.0.0.1 lcc23-master member23-master 152.0.0.4 lcc23-re0 member23-re0 152.0.0.5 lcc23-re1 member23-re1 152.0.0.6 lcc23-backup member23-backup 152.0.0.16 member23-fpc0 152.0.0.17 member23-fpc1 152.0.0.18 member23-fpc2 152.0.0.19 member23-fpc3 152.0.0.20 member23-fpc4 152.0.0.21 member23-fpc5 152.0.0.22 member23-fpc6 152.0.0.23 member23-fpc7 152.0.0.24 member23-fpc8 152.0.0.25 member23-fpc9 152.0.0.26 member23-fpc10 152.0.0.27 member23-fpc11 152.0.0.28 member23-fpc12 152.0.0.29 member23-fpc13 152.0.0.30 member23-fpc14 152.0.0.31 member23-fpc15 152.0.0.32 member23-fpc16 152.0.0.33 member23-fpc17 152.0.0.34 member23-fpc18 152.0.0.35 member23-fpc19 152.0.0.36 member23-fpc20 152.0.0.37 member23-fpc21 152.0.0.38 member23-fpc22 152.0.0.39 member23-fpc23 152.0.0.40 member23-fpc24 152.0.0.41 member23-fpc25 152.0.0.42 member23-fpc26 152.0.0.43 member23-fpc27 152.0.0.44 member23-fpc28 152.0.0.45 member23-fpc29 152.0.0.46 member23-fpc30 152.0.0.47 member23-fpc31 #LCC 24 (or MEMBER 24 on Virtual Chassis) 153.0.0.1 lcc24-master member24-master 153.0.0.4 lcc24-re0 member24-re0 153.0.0.5 lcc24-re1 member24-re1 153.0.0.6 lcc24-backup member24-backup 153.0.0.16 member24-fpc0 153.0.0.17 member24-fpc1 153.0.0.18 member24-fpc2 153.0.0.19 member24-fpc3 153.0.0.20 member24-fpc4 153.0.0.21 member24-fpc5 153.0.0.22 member24-fpc6 153.0.0.23 member24-fpc7 153.0.0.24 member24-fpc8 153.0.0.25 member24-fpc9 153.0.0.26 member24-fpc10 153.0.0.27 member24-fpc11 153.0.0.28 member24-fpc12 153.0.0.29 member24-fpc13 153.0.0.30 member24-fpc14 153.0.0.31 member24-fpc15 153.0.0.32 member24-fpc16 153.0.0.33 member24-fpc17 153.0.0.34 member24-fpc18 153.0.0.35 member24-fpc19 153.0.0.36 member24-fpc20 153.0.0.37 member24-fpc21 153.0.0.38 member24-fpc22 153.0.0.39 member24-fpc23 153.0.0.40 member24-fpc24 153.0.0.41 member24-fpc25 153.0.0.42 member24-fpc26 153.0.0.43 member24-fpc27 153.0.0.44 member24-fpc28 153.0.0.45 member24-fpc29 153.0.0.46 member24-fpc30 153.0.0.47 member24-fpc31 #LCC 25 (or MEMBER 25 on Virtual Chassis) 154.0.0.1 lcc25-master member25-master 154.0.0.4 lcc25-re0 member25-re0 154.0.0.5 lcc25-re1 member25-re1 154.0.0.6 lcc25-backup member25-backup 154.0.0.16 member25-fpc0 154.0.0.17 member25-fpc1 154.0.0.18 member25-fpc2 154.0.0.19 member25-fpc3 154.0.0.20 member25-fpc4 154.0.0.21 member25-fpc5 154.0.0.22 member25-fpc6 154.0.0.23 member25-fpc7 154.0.0.24 member25-fpc8 154.0.0.25 member25-fpc9 154.0.0.26 member25-fpc10 154.0.0.27 member25-fpc11 154.0.0.28 member25-fpc12 154.0.0.29 member25-fpc13 154.0.0.30 member25-fpc14 154.0.0.31 member25-fpc15 154.0.0.32 member25-fpc16 154.0.0.33 member25-fpc17 154.0.0.34 member25-fpc18 154.0.0.35 member25-fpc19 154.0.0.36 member25-fpc20 154.0.0.37 member25-fpc21 154.0.0.38 member25-fpc22 154.0.0.39 member25-fpc23 154.0.0.40 member25-fpc24 154.0.0.41 member25-fpc25 154.0.0.42 member25-fpc26 154.0.0.43 member25-fpc27 154.0.0.44 member25-fpc28 154.0.0.45 member25-fpc29 154.0.0.46 member25-fpc30 154.0.0.47 member25-fpc31 #LCC 26 (or MEMBER 26 on Virtual Chassis) 155.0.0.1 lcc26-master member26-master 155.0.0.4 lcc26-re0 member26-re0 155.0.0.5 lcc26-re1 member26-re1 155.0.0.6 lcc26-backup member26-backup 155.0.0.16 member26-fpc0 155.0.0.17 member26-fpc1 155.0.0.18 member26-fpc2 155.0.0.19 member26-fpc3 155.0.0.20 member26-fpc4 155.0.0.21 member26-fpc5 155.0.0.22 member26-fpc6 155.0.0.23 member26-fpc7 155.0.0.24 member26-fpc8 155.0.0.25 member26-fpc9 155.0.0.26 member26-fpc10 155.0.0.27 member26-fpc11 155.0.0.28 member26-fpc12 155.0.0.29 member26-fpc13 155.0.0.30 member26-fpc14 155.0.0.31 member26-fpc15 155.0.0.32 member26-fpc16 155.0.0.33 member26-fpc17 155.0.0.34 member26-fpc18 155.0.0.35 member26-fpc19 155.0.0.36 member26-fpc20 155.0.0.37 member26-fpc21 155.0.0.38 member26-fpc22 155.0.0.39 member26-fpc23 155.0.0.40 member26-fpc24 155.0.0.41 member26-fpc25 155.0.0.42 member26-fpc26 155.0.0.43 member26-fpc27 155.0.0.44 member26-fpc28 155.0.0.45 member26-fpc29 155.0.0.46 member26-fpc30 155.0.0.47 member26-fpc31 #LCC 27 (or MEMBER 27 on Virtual Chassis) 156.0.0.1 lcc27-master member27-master 156.0.0.4 lcc27-re0 member27-re0 156.0.0.5 lcc27-re1 member27-re1 156.0.0.6 lcc27-backup member27-backup 156.0.0.16 member27-fpc0 156.0.0.17 member27-fpc1 156.0.0.18 member27-fpc2 156.0.0.19 member27-fpc3 156.0.0.20 member27-fpc4 156.0.0.21 member27-fpc5 156.0.0.22 member27-fpc6 156.0.0.23 member27-fpc7 156.0.0.24 member27-fpc8 156.0.0.25 member27-fpc9 156.0.0.26 member27-fpc10 156.0.0.27 member27-fpc11 156.0.0.28 member27-fpc12 156.0.0.29 member27-fpc13 156.0.0.30 member27-fpc14 156.0.0.31 member27-fpc15 156.0.0.32 member27-fpc16 156.0.0.33 member27-fpc17 156.0.0.34 member27-fpc18 156.0.0.35 member27-fpc19 156.0.0.36 member27-fpc20 156.0.0.37 member27-fpc21 156.0.0.38 member27-fpc22 156.0.0.39 member27-fpc23 156.0.0.40 member27-fpc24 156.0.0.41 member27-fpc25 156.0.0.42 member27-fpc26 156.0.0.43 member27-fpc27 156.0.0.44 member27-fpc28 156.0.0.45 member27-fpc29 156.0.0.46 member27-fpc30 156.0.0.47 member27-fpc31 #LCC 28 (or MEMBER 28 on Virtual Chassis) 157.0.0.1 lcc28-master member28-master 157.0.0.4 lcc28-re0 member28-re0 157.0.0.5 lcc28-re1 member28-re1 157.0.0.6 lcc28-backup member28-backup 157.0.0.16 member28-fpc0 157.0.0.17 member28-fpc1 157.0.0.18 member28-fpc2 157.0.0.19 member28-fpc3 157.0.0.20 member28-fpc4 157.0.0.21 member28-fpc5 157.0.0.22 member28-fpc6 157.0.0.23 member28-fpc7 157.0.0.24 member28-fpc8 157.0.0.25 member28-fpc9 157.0.0.26 member28-fpc10 157.0.0.27 member28-fpc11 157.0.0.28 member28-fpc12 157.0.0.29 member28-fpc13 157.0.0.30 member28-fpc14 157.0.0.31 member28-fpc15 157.0.0.32 member28-fpc16 157.0.0.33 member28-fpc17 157.0.0.34 member28-fpc18 157.0.0.35 member28-fpc19 157.0.0.36 member28-fpc20 157.0.0.37 member28-fpc21 157.0.0.38 member28-fpc22 157.0.0.39 member28-fpc23 157.0.0.40 member28-fpc24 157.0.0.41 member28-fpc25 157.0.0.42 member28-fpc26 157.0.0.43 member28-fpc27 157.0.0.44 member28-fpc28 157.0.0.45 member28-fpc29 157.0.0.46 member28-fpc30 157.0.0.47 member28-fpc31 #LCC 29 (or MEMBER 29 on Virtual Chassis) 158.0.0.1 lcc29-master member29-master 158.0.0.4 lcc29-re0 member29-re0 158.0.0.5 lcc29-re1 member29-re1 158.0.0.6 lcc29-backup member29-backup 158.0.0.16 member29-fpc0 158.0.0.17 member29-fpc1 158.0.0.18 member29-fpc2 158.0.0.19 member29-fpc3 158.0.0.20 member29-fpc4 158.0.0.21 member29-fpc5 158.0.0.22 member29-fpc6 158.0.0.23 member29-fpc7 158.0.0.24 member29-fpc8 158.0.0.25 member29-fpc9 158.0.0.26 member29-fpc10 158.0.0.27 member29-fpc11 158.0.0.28 member29-fpc12 158.0.0.29 member29-fpc13 158.0.0.30 member29-fpc14 158.0.0.31 member29-fpc15 158.0.0.32 member29-fpc16 158.0.0.33 member29-fpc17 158.0.0.34 member29-fpc18 158.0.0.35 member29-fpc19 158.0.0.36 member29-fpc20 158.0.0.37 member29-fpc21 158.0.0.38 member29-fpc22 158.0.0.39 member29-fpc23 158.0.0.40 member29-fpc24 158.0.0.41 member29-fpc25 158.0.0.42 member29-fpc26 158.0.0.43 member29-fpc27 158.0.0.44 member29-fpc28 158.0.0.45 member29-fpc29 158.0.0.46 member29-fpc30 158.0.0.47 member29-fpc31 #LCC 30 (or MEMBER 30 on Virtual Chassis) 159.0.0.1 lcc30-master member30-master 159.0.0.4 lcc30-re0 member30-re0 159.0.0.5 lcc30-re1 member30-re1 159.0.0.6 lcc30-backup member30-backup 159.0.0.16 member30-fpc0 159.0.0.17 member30-fpc1 159.0.0.18 member30-fpc2 159.0.0.19 member30-fpc3 159.0.0.20 member30-fpc4 159.0.0.21 member30-fpc5 159.0.0.22 member30-fpc6 159.0.0.23 member30-fpc7 159.0.0.24 member30-fpc8 159.0.0.25 member30-fpc9 159.0.0.26 member30-fpc10 159.0.0.27 member30-fpc11 159.0.0.28 member30-fpc12 159.0.0.29 member30-fpc13 159.0.0.30 member30-fpc14 159.0.0.31 member30-fpc15 159.0.0.32 member30-fpc16 159.0.0.33 member30-fpc17 159.0.0.34 member30-fpc18 159.0.0.35 member30-fpc19 159.0.0.36 member30-fpc20 159.0.0.37 member30-fpc21 159.0.0.38 member30-fpc22 159.0.0.39 member30-fpc23 159.0.0.40 member30-fpc24 159.0.0.41 member30-fpc25 159.0.0.42 member30-fpc26 159.0.0.43 member30-fpc27 159.0.0.44 member30-fpc28 159.0.0.45 member30-fpc29 159.0.0.46 member30-fpc30 159.0.0.47 member30-fpc31 #LCC 31 (or MEMBER 31 on Virtual Chassis) 160.0.0.1 lcc31-master member31-master 160.0.0.4 lcc31-re0 member31-re0 160.0.0.5 lcc31-re1 member31-re1 160.0.0.6 lcc31-backup member31-backup 160.0.0.16 member31-fpc0 160.0.0.17 member31-fpc1 160.0.0.18 member31-fpc2 160.0.0.19 member31-fpc3 160.0.0.20 member31-fpc4 160.0.0.21 member31-fpc5 160.0.0.22 member31-fpc6 160.0.0.23 member31-fpc7 160.0.0.24 member31-fpc8 160.0.0.25 member31-fpc9 160.0.0.26 member31-fpc10 160.0.0.27 member31-fpc11 160.0.0.28 member31-fpc12 160.0.0.29 member31-fpc13 160.0.0.30 member31-fpc14 160.0.0.31 member31-fpc15 160.0.0.32 member31-fpc16 160.0.0.33 member31-fpc17 160.0.0.34 member31-fpc18 160.0.0.35 member31-fpc19 160.0.0.36 member31-fpc20 160.0.0.37 member31-fpc21 160.0.0.38 member31-fpc22 160.0.0.39 member31-fpc23 160.0.0.40 member31-fpc24 160.0.0.41 member31-fpc25 160.0.0.42 member31-fpc26 160.0.0.43 member31-fpc27 160.0.0.44 member31-fpc28 160.0.0.45 member31-fpc29 160.0.0.46 member31-fpc30 160.0.0.47 member31-fpc31 #VIRT SC 161.0.0.1 sc-master 161.0.0.4 sc-re0 161.0.0.5 sc-re1 161.0.0.6 sc-backup #SFC 0 162.0.0.1 sfc0-master 162.0.0.4 sfc0-re0 162.0.0.5 sfc0-re1 162.0.0.6 sfc0-backup 162.0.0.48 sfc0-spmb0 162.0.0.49 sfc0-spmb1 #SFC 1 163.0.0.1 sfc1-master 163.0.0.4 sfc1-re0 163.0.0.5 sfc1-re1 163.0.0.6 sfc1-backup 163.0.0.48 sfc1-spmb0 163.0.0.49 sfc1-spmb1 #SFC 2 164.0.0.1 sfc2-master 164.0.0.4 sfc2-re0 164.0.0.5 sfc2-re1 164.0.0.6 sfc2-backup 164.0.0.48 sfc2-spmb0 164.0.0.49 sfc2-spmb1 #SFC 3 165.0.0.1 sfc3-master 165.0.0.4 sfc3-re0 165.0.0.5 sfc3-re1 165.0.0.6 sfc3-backup 165.0.0.48 sfc3-spmb0 165.0.0.49 sfc3-spmb1 #SFC 4 166.0.0.1 sfc4-master 166.0.0.4 sfc4-re0 166.0.0.5 sfc4-re1 166.0.0.6 sfc4-backup 166.0.0.48 sfc4-spmb0 166.0.0.49 sfc4-spmb1 #JCS 190.0.0.1 psd%d-master 190.0.0.4 psd%d-re0 190.0.0.5 psd%d-re1 190.0.0.6 psd%d-backup # Old IP address format (RT_IRS_V2) # # Single Chassis Hostnames # 10.0.0.1 master 10.0.0.4 re0 10.0.0.5 re1 10.0.0.16 fpc0 10.0.0.17 fpc1 10.0.0.18 fpc2 10.0.0.19 fpc3 10.0.0.20 fpc4 10.0.0.21 fpc5 10.0.0.22 fpc6 10.0.0.23 fpc7 10.0.0.24 fpc8 10.0.0.25 fpc9 10.0.0.26 fpc10 10.0.0.27 fpc11 10.0.0.28 fpc12 10.0.0.29 fpc13 10.0.0.30 fpc14 10.0.0.31 fpc15 # # Multi Chassis Hostnames # #SCC 10.16.0.1 scc-master 10.16.0.4 scc-re0 10.16.0.5 scc-re1 #LCC 0 10.1.0.1 lcc0-master member0-master 10.1.0.4 lcc0-re0 member0-re0 10.1.0.5 lcc0-re1 member0-re1 10.1.0.6 lcc0-backup member0-backup #LCC 1 10.2.0.1 lcc1-master member1-master 10.2.0.4 lcc1-re0 member1-re0 10.2.0.5 lcc1-re1 member1-re1 10.2.0.6 lcc1-backup member1-backup #LCC 2 10.3.0.1 lcc2-master member2-master 10.3.0.4 lcc2-re0 member2-re0 10.3.0.5 lcc2-re1 member2-re1 10.3.0.6 lcc2-backup member2-backup #LCC 3 10.4.0.1 lcc3-master member3-master 10.4.0.4 lcc3-re0 member3-re0 10.4.0.5 lcc3-re1 member3-re1 10.4.0.6 lcc3-backup member3-backup #LCC 4 10.5.0.1 lcc4-master member4-master 10.5.0.4 lcc4-re0 member4-re0 10.5.0.5 lcc4-re1 member4-re1 10.5.0.6 lcc4-backup member4-backup #LCC 5 10.6.0.1 lcc5-master member5-master 10.6.0.4 lcc5-re0 member5-re0 10.6.0.5 lcc5-re1 member5-re1 10.6.0.6 lcc5-backup member5-backup #LCC 6 10.7.0.1 lcc6-master member6-master 10.7.0.4 lcc6-re0 member6-re0 10.7.0.5 lcc6-re1 member6-re1 10.7.0.6 lcc6-backup member6-backup #LCC 7 10.8.0.1 lcc7-master member7-master 10.8.0.4 lcc7-re0 member7-re0 10.8.0.5 lcc7-re1 member7-re1 10.8.0.6 lcc7-backup member7-backup #LCC 8 10.9.0.1 lcc8-master member8-master 10.9.0.4 lcc8-re0 member8-re0 10.9.0.5 lcc8-re1 member8-re1 10.9.0.6 lcc8-backup member8-backup #LCC 9 10.10.0.1 lcc9-master member9-master 10.10.0.4 lcc9-re0 member9-re0 10.10.0.5 lcc9-re1 member9-re1 10.10.0.6 lcc9-backup member9-backup #LCC 10 10.11.0.1 lcc10-master member10-master 10.11.0.4 lcc10-re0 member10-re0 10.11.0.5 lcc10-re1 member10-re1 10.11.0.6 lcc10-backup member10-backup #LCC 11 10.12.0.1 lcc11-master member11-master 10.12.0.4 lcc11-re0 member11-re0 10.12.0.5 lcc11-re1 member11-re1 10.12.0.6 lcc11-backup member11-backup #LCC 12 10.13.0.1 lcc12-master member12-master 10.13.0.4 lcc12-re0 member12-re0 10.13.0.5 lcc12-re1 member12-re1 10.13.0.6 lcc12-backup member12-backup #LCC 13 10.14.0.1 lcc13-master member13-master 10.14.0.4 lcc13-re0 member13-re0 10.14.0.5 lcc13-re1 member13-re1 10.14.0.6 lcc13-backup member13-backup #LCC 14 10.15.0.1 lcc14-master member14-master 10.15.0.4 lcc14-re0 member14-re0 10.15.0.5 lcc14-re1 member14-re1 10.15.0.6 lcc14-backup member14-backup #LCC 15 10.16.0.1 lcc15-master member15-master 10.16.0.4 lcc15-re0 member15-re0 10.16.0.5 lcc15-re1 member15-re1 10.16.0.6 lcc15-backup member15-backup #SFC 0 10.34.0.1 sfc0-master 10.34.0.4 sfc0-re0 10.34.0.5 sfc0-re1 #SFC 1 10.35.0.1 sfc1-master 10.35.0.4 sfc1-re0 10.35.0.5 sfc1-re1 #SFC 2 10.36.0.1 sfc2-master 10.36.0.4 sfc2-re0 10.36.0.5 sfc2-re1 #SFC 3 10.37.0.1 sfc3-master 10.37.0.4 sfc3-re0 10.37.0.5 sfc3-re1 #SFC 4 10.38.0.1 sfc4-master 10.38.0.4 sfc4-re0 10.38.0.5 sfc4-re1 # End of internal names py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/sw_info_vc_get-interface-information.xml000066400000000000000000000461771475361112400314230ustar00rootroot00000000000000 lc-1/0/0.32769 up up vpls pfe-1/0/0.16383 up up inet inet6 pfh-1/0/0.16383 up up inet lc-2/0/0.32769 up up vpls pfe-2/0/0.16383 up up inet inet6 pfh-2/0/0.16383 up up inet lc-2/2/0.32769 up up vpls pfe-2/2/0.16383 up up inet inet6 lc-13/0/0.32769 up up vpls pfe-13/0/0.16383 up up inet inet6 pfh-13/0/0.16383 up up inet lc-13/2/0.32769 up up vpls pfe-13/2/0.16383 up up inet inet6 lc-14/0/0.32769 up up vpls pfe-14/0/0.16383 up up inet inet6 pfh-14/0/0.16383 up up inet bme0.4094 up up inet 10.1.0.5/8 128.0.0.1/2 129.0.0.1/2 129.0.0.5/2 161.0.0.1/2 inet6 fe80::244:810f:fe00:5/64 fec0::a:1:0:5/64 tnp 0x1000005 lo0.16385 up up inet py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/sw_info_vc_get-virtual-chassis-information.xml000066400000000000000000000053141475361112400325700ustar00rootroot00000000000000 737a.74f6.9e99 Prsnt 0 (FPC 0- 11) JN1230B3FAFC mx240 129 NA VC Master* 1 vcp-1/0/1 1 vcp-1/0/2 1 vcp-1/0/3 Prsnt 1 (FPC 12- 23) JN122D0FEAFC mx240 129 NA VC Backup 0 vcp-1/0/1 0 vcp-1/0/2 0 vcp-1/0/3 py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/switch_style_none_command.xml000066400000000000000000000001471475361112400273700ustar00rootroot00000000000000 py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/touch000066400000000000000000000000001475361112400224410ustar00rootroot00000000000000py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/vc_dual_master_get-virtual-chassis-information.xml000066400000000000000000000031711475361112400334230ustar00rootroot00000000000000 70b7.3d82.d346 Enabled Prsnt 0 (FPC 0) PD3714050496 ex4300-48p 129 N VC Master* Prsnt 1 (FPC 1) PD3714170265 ex4300-48p 129 N VC Master py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/vc_get-virtual-chassis-information.xml000066400000000000000000000025371475361112400310500ustar00rootroot00000000000000 70b7.3d82.d346 Enabled Prsnt 0 (FPC 0) PD3714050496 ex4300-48p 129 N VC Master* NotPrsnt 1 (FPC 1) PD3714170265 ex4300-48p py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/vc_mmvc_get-virtual-chassis-information.xml000066400000000000000000000043001475361112400320600ustar00rootroot00000000000000 f0e9.b6b2.378b Mixed Prsnt 0 (FPC 0) TA37134XXXXX qfx5100-48s-6q 128 Y F Master* 1 vcp-255/0/48 Prsnt 1 (FPC 1) PF37140XXXXX ex4300-24p 128 Y F Linecard 0 vcp-255/1/0 2 2 {master:0} py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/vc_mmvcf_get-virtual-chassis-information.xml000066400000000000000000000043251475361112400322350ustar00rootroot00000000000000 f0e9.b6b2.378b Mixed Prsnt 0 (FPC 0) TA37134XXXXX qfx5100-48s-6q 128 Y F Master* 1 vcp-255/0/48 Prsnt 1 (FPC 1) PF37140XXXXX ex4300-24p 128 Y F Linecard 0 vcp-255/1/0 2 2 {master:0} py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/vlan_get-ethernet-switching-table-information.xml000066400000000000000000000007451475361112400331560ustar00rootroot00000000000000 0 py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/vmhost_error_request-shell-execute.xml000066400000000000000000000005111475361112400311730ustar00rootroot00000000000000 protocol operation-failed error permission denied system py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/vmhost_false_request-shell-execute.xml000066400000000000000000000001461475361112400311400ustar00rootroot00000000000000 0 py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/vmhost_true_command.xml000066400000000000000000000034271475361112400262130ustar00rootroot00000000000000 sda jrootb_P sda4 Primary b CBEP_P_VAL1_00.18.02 Tue Jan 21 21:05:21 PST 2025 set p 7.2725 vmhost-x86_64-22.4R3-S2-20240326_1606_builder vmhost-core-x86-64-22.4R3-S3.3 5.2.60-rt15-LTS19 junos-install-mx-x86-64-22.4R3-S3.3 set b 10.3103 vmhost-x86_64-24.2R2-20241112_0808_builder vmhost-core-x86-64-24.2R2.1 5.15.136-rt61-LTS22 junos-install-mx-x86-64-24.2R2.1 py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/vmhost_true_get-route-engine-information.xml000066400000000000000000000037441475361112400323000ustar00rootroot00000000000000 OK 43 degrees C / 109 degrees F 43 degrees C / 109 degrees F 16337 MB (16384 MB installed) 5 0 0 0 0 99 1 0 0 0 99 0 0 0 0 99 0 0 0 0 99 RE-S-1600x8 2025-02-05 08:30:29 IST 1 day, 4 hours, 17 minutes, 12 seconds 0x4000:VJUNOS reboot 0.39 0.29 0.25 py-junos-eznc-2.7.3/tests/unit/facts/rpc-reply/vmhost_true_request-shell-execute.xml000066400000000000000000000001461475361112400310250ustar00rootroot00000000000000 1 py-junos-eznc-2.7.3/tests/unit/facts/test__init__.py000066400000000000000000000012471475361112400225060ustar00rootroot00000000000000__author__ = "Stacy Smith" __credits__ = "Jeremy Schulman, Nitin Kumar" try: import unittest2 as unittest except ImportError: import unittest import nose2 import importlib import sys import jnpr.junos.facts class TestFactInitialization(unittest.TestCase): def test_duplicate_facts(self): module = importlib.import_module("tests.unit.facts.dupe_foo1") sys.modules["jnpr.junos.facts.dupe_foo1"] = module module = importlib.import_module("tests.unit.facts.dupe_foo2") sys.modules["jnpr.junos.facts.dupe_foo2"] = module with self.assertRaises(RuntimeError): jnpr.junos.facts._build_fact_callbacks_and_doc_strings() py-junos-eznc-2.7.3/tests/unit/facts/test_current_re.py000066400000000000000000000152621475361112400232600ustar00rootroot00000000000000__author__ = "Stacy Smith" __credits__ = "Jeremy Schulman, Nitin Kumar" import unittest import nose2 from unittest.mock import patch, MagicMock import os from lxml import etree from jnpr.junos import Device from jnpr.junos.exception import RpcError from ncclient.manager import Manager, make_device_handler from ncclient.transport import SSHSession class TestCurrentRe(unittest.TestCase): @patch("ncclient.manager.connect") def setUp(self, mock_connect): mock_connect.side_effect = self._mock_manager_setup self.dev = Device( host="1.1.1.1", user="rick", password="password123", gather_facts=False ) self.dev.open() @patch("jnpr.junos.Device.execute") def test_current_re_fact(self, mock_execute): mock_execute.side_effect = self._mock_manager_current_re self.assertEqual( self.dev.facts["current_re"], ["re0", "master", "node", "fwdd", "member", "pfem"], ) @patch("jnpr.junos.Device.execute") def test_current_re_fact_empty(self, mock_execute): mock_execute.side_effect = self._mock_manager_current_re_empty self.assertEqual(self.dev.facts["current_re"], None) @patch("jnpr.junos.Device.execute") def test_current_re_fact_srx_cluster_primary(self, mock_execute): mock_execute.side_effect = self._mock_manager_current_re_srx_primary self.dev.facts._cache["srx_cluster_id"] = "15" self.assertEqual(self.dev.facts["current_re"], ["node0", "primary"]) @patch("jnpr.junos.Device.execute") def test_current_re_fact_srx_cluster_primary_id_255(self, mock_execute): mock_execute.side_effect = self._mock_manager_current_re_srx_primary self.dev.facts._cache["srx_cluster_id"] = "255" self.assertEqual(self.dev.facts["current_re"], ["node0", "primary"]) @patch("jnpr.junos.Device.execute") def test_current_re_fact_srx_cluster_primary_id_16(self, mock_execute): mock_execute.side_effect = self._mock_manager_current_re_srx_primary self.dev.facts._cache["srx_cluster_id"] = "16" print(self.dev.facts._cache["srx_cluster_id"]) self.assertEqual(self.dev.facts["current_re"], ["node0"]) @patch("jnpr.junos.Device.execute") def test_current_re_fact_srx_cluster_primary_id_31(self, mock_execute): mock_execute.side_effect = self._mock_manager_current_re_srx_primary self.dev.facts._cache["srx_cluster_id"] = "31" self.assertEqual(self.dev.facts["current_re"], ["node0", "primary"]) @patch("jnpr.junos.Device.execute") def test_current_re_fact_srx_cluster_secondary(self, mock_execute): mock_execute.side_effect = self._mock_manager_current_re_srx_secondary self.dev.facts._cache["srx_cluster_id"] = "15" self.assertEqual(self.dev.facts["current_re"], ["node1"]) @patch("jnpr.junos.Device.execute") def test_current_re_fact_srx_cluster_index_error(self, mock_execute): mock_execute.side_effect = self._mock_manager_current_re_srx_index_err self.dev.facts._cache["srx_cluster_id"] = "15" self.assertEqual(self.dev.facts["current_re"], None) @patch("jnpr.junos.Device.execute") def test_current_re_fact_jdm(self, mock_execute): mock_execute.side_effect = self._mock_manager_current_re_jdm self.assertEqual(self.dev.facts["current_re"], ["server0"]) @patch("jnpr.junos.Device.execute") def test_current_re_fact_rpc_error(self, mock_execute): mock_execute.side_effect = self._mock_manager_current_re_rpc_error self.assertEqual(self.dev.facts["current_re"], None) def _read_file(self, fname): from ncclient.xml_ import NCElement fpath = os.path.join(os.path.dirname(__file__), "rpc-reply", fname) foo = open(fpath).read() rpc_reply = NCElement( foo, self.dev._conn._device_handler.transform_reply() )._NCElement__doc[0] return rpc_reply def _mock_manager_setup(self, *args, **kwargs): if kwargs: device_params = kwargs["device_params"] device_handler = make_device_handler(device_params) session = SSHSession(device_handler) return Manager(session, device_handler) def _mock_manager_current_re(self, *args, **kwargs): if args: if ( args[0].tag == "file-show" and args[0].xpath("filename")[0].text == "/usr/share/cevo/cevo_version" ): raise RpcError else: return self._read_file("current_re_" + args[0].tag + ".xml") def _mock_manager_current_re_empty(self, *args, **kwargs): if args: if ( args[0].tag == "file-show" and args[0].xpath("filename")[0].text == "/usr/share/cevo/cevo_version" ): raise RpcError else: return self._read_file("current_re_empty_" + args[0].tag + ".xml") def _mock_manager_current_re_srx_primary(self, *args, **kwargs): if args: if ( args[0].tag == "file-show" and args[0].xpath("filename")[0].text == "/usr/share/cevo/cevo_version" ): raise RpcError else: return self._read_file("current_re_srx_primary_" + args[0].tag + ".xml") def _mock_manager_current_re_srx_secondary(self, *args, **kwargs): if args: if ( args[0].tag == "file-show" and args[0].xpath("filename")[0].text == "/usr/share/cevo/cevo_version" ): raise RpcError else: return self._read_file( "current_re_srx_secondary_" + args[0].tag + ".xml" ) def _mock_manager_current_re_srx_index_err(self, *args, **kwargs): if args: if ( args[0].tag == "file-show" and args[0].xpath("filename")[0].text == "/usr/share/cevo/cevo_version" ): raise RpcError else: return self._read_file( "current_re_srx_index_err_" + args[0].tag + ".xml" ) def _mock_manager_current_re_jdm(self, *args, **kwargs): if args: if ( args[0].tag == "file-show" and args[0].xpath("filename")[0].text == "/usr/share/cevo/cevo_version" ): raise RpcError elif args[0].tag == "get-interface-information": raise RpcError() else: return self._read_file("current_re_jdm_" + args[0].tag + ".xml") def _mock_manager_current_re_rpc_error(self, *args, **kwargs): if args: raise RpcError() py-junos-eznc-2.7.3/tests/unit/facts/test_domain.py000066400000000000000000000056271475361112400223630ustar00rootroot00000000000000__author__ = "Stacy Smith" __credits__ = "Jeremy Schulman, Nitin Kumar" import unittest import nose2 from unittest.mock import patch, MagicMock import os from lxml import etree from jnpr.junos import Device from jnpr.junos.exception import PermissionError from ncclient.manager import Manager, make_device_handler from ncclient.transport import SSHSession class TestDomain(unittest.TestCase): @patch("ncclient.manager.connect") def setUp(self, mock_connect): mock_connect.side_effect = self._mock_manager_setup self.dev = Device( host="1.1.1.1", user="rick", password="password123", gather_facts=False ) self.dev.open() @patch("jnpr.junos.Device.execute") def test_domain_fact_from_config(self, mock_execute): self.dev.facts._cache["hostname"] = "r0" mock_execute.side_effect = self._mock_manager_domain_config self.assertEqual(self.dev.facts["domain"], "juniper.net") self.assertEqual(self.dev.facts["fqdn"], "r0.juniper.net") @patch("jnpr.junos.Device.execute") def test_domain_fact_from_file(self, mock_execute): self.dev.facts._cache["hostname"] = "r0" mock_execute.side_effect = self._mock_manager_domain_file self.assertEqual(self.dev.facts["domain"], "juniper.net") self.assertEqual(self.dev.facts["fqdn"], "r0.juniper.net") def _read_file(self, fname): from ncclient.xml_ import NCElement fpath = os.path.join(os.path.dirname(__file__), "rpc-reply", fname) foo = open(fpath).read() rpc_reply = NCElement( foo, self.dev._conn._device_handler.transform_reply() )._NCElement__doc[0] return rpc_reply def _mock_manager_setup(self, *args, **kwargs): if kwargs: device_params = kwargs["device_params"] device_handler = make_device_handler(device_params) session = SSHSession(device_handler) return Manager(session, device_handler) def _mock_manager_domain_config(self, *args, **kwargs): if args: return self._read_file("domain_config_" + args[0].tag + ".xml") def _mock_manager_domain_file(self, *args, **kwargs): if args: if args[0].tag == "get-configuration": xml = """ protocol operation-failed error permission denied system """ rsp = etree.XML(xml) raise PermissionError(rsp=rsp) else: return self._read_file("domain_file_" + args[0].tag + ".xml") py-junos-eznc-2.7.3/tests/unit/facts/test_ethernet_mac_table.py000066400000000000000000000125001475361112400247050ustar00rootroot00000000000000__author__ = "Stacy Smith" __credits__ = "Jeremy Schulman, Nitin Kumar" import unittest import nose2 from unittest.mock import patch, MagicMock import os from lxml import etree from jnpr.junos import Device from jnpr.junos.exception import RpcError from ncclient.manager import Manager, make_device_handler from ncclient.transport import SSHSession class TestEthernetMacTable(unittest.TestCase): @patch("ncclient.manager.connect") def setUp(self, mock_connect): mock_connect.side_effect = self._mock_manager_setup self.dev = Device( host="1.1.1.1", user="rick", password="password123", gather_facts=False ) self.dev.open() @patch("jnpr.junos.Device.execute") def test_ethernet_mac_table_els(self, mock_execute): mock_execute.side_effect = self._mock_manager_els self.assertEqual(self.dev.facts["switch_style"], "VLAN_L2NG") @patch("jnpr.junos.Device.execute") def test_ethernet_mac_table_vlan(self, mock_execute): mock_execute.side_effect = self._mock_manager_vlan self.assertEqual(self.dev.facts["switch_style"], "VLAN") @patch("jnpr.junos.Device.execute") def test_ethernet_mac_table_bd(self, mock_execute): mock_execute.side_effect = self._mock_manager_bd self.assertEqual(self.dev.facts["switch_style"], "BRIDGE_DOMAIN") @patch("jnpr.junos.Device.execute") def test_ethernet_mac_table_none(self, mock_execute): mock_execute.side_effect = self._mock_manager_none self.assertEqual(self.dev.facts["switch_style"], "NONE") @patch("jnpr.junos.Device.execute") def test_ethernet_mac_table_non_master_bd_ptx(self, mock_execute): mock_execute.side_effect = self._mock_manager_ptx self.assertEqual(self.dev.facts["switch_style"], "NONE") @patch("jnpr.junos.Device.execute") def test_ethernet_mac_table_non_master_bd_mx(self, mock_execute): mock_execute.side_effect = self._mock_manager_mx_non_master_re self.assertEqual(self.dev.facts["switch_style"], "BRIDGE_DOMAIN") def _read_file(self, fname): from ncclient.xml_ import NCElement fpath = os.path.join(os.path.dirname(__file__), "rpc-reply", fname) foo = open(fpath).read() rpc_reply = NCElement( foo, self.dev._conn._device_handler.transform_reply() )._NCElement__doc[0] return rpc_reply def _mock_manager_setup(self, *args, **kwargs): if kwargs: device_params = kwargs["device_params"] device_handler = make_device_handler(device_params) session = SSHSession(device_handler) return Manager(session, device_handler) def _mock_manager_els(self, *args, **kwargs): if args: return self._read_file("els_" + args[0].tag + ".xml") def _mock_manager_vlan(self, *args, **kwargs): if args: return self._read_file("vlan_" + args[0].tag + ".xml") def _mock_manager_bd(self, *args, **kwargs): if args: if args[0].tag == "get-ethernet-switching-table-information": raise RpcError() else: return self._read_file("bd_" + args[0].tag + ".xml") def _mock_manager_none(self, *args, **kwargs): if args: if args[0].tag == "get-ethernet-switching-table-information": raise RpcError() else: return self._read_file("switch_style_none_" + args[0].tag + ".xml") def _mock_manager_mx_non_master_re(self, *args, **kwargs): if args: if args[0].tag == "get-ethernet-switching-table-information": raise RpcError() elif args[0].tag == "command": xml = """ the l2-learning subsystem is not running l2-learning """ rsp = etree.XML(xml) err = RpcError(rsp=rsp) err.rpc_error["bad_element"] = "none" err.rpc_error["message"] = "the l2-learning subsystem is not running" raise err else: return None def _mock_manager_ptx(self, *args, **kwargs): if args: if args[0].tag == "get-ethernet-switching-table-information": raise RpcError() elif args[0].tag == "command": xml = """ protocol operation-failed error syntax error, expecting <command> bridge """ rsp = etree.XML(xml) err = RpcError(rsp=rsp) err.rpc_error["bad_element"] = "bridge" raise err else: return None py-junos-eznc-2.7.3/tests/unit/facts/test_file_list.py000066400000000000000000000036651475361112400230660ustar00rootroot00000000000000__author__ = "Stacy Smith" __credits__ = "Jeremy Schulman, Nitin Kumar" import unittest import nose2 from unittest.mock import patch, MagicMock import os from jnpr.junos import Device from ncclient.manager import Manager, make_device_handler from ncclient.transport import SSHSession class TestFileList(unittest.TestCase): @patch("ncclient.manager.connect") def setUp(self, mock_connect): mock_connect.side_effect = self._mock_manager_setup self.dev = Device( host="1.1.1.1", user="rick", password="password123", gather_facts=False ) self.dev.open() @patch("jnpr.junos.Device.execute") def test_home_fact(self, mock_execute): mock_execute.side_effect = self._mock_manager_file_list self.assertEqual(self.dev.facts["HOME"], "/var/home/user") @patch("jnpr.junos.Device.execute") def test_home_fact_multi_dir(self, mock_execute): mock_execute.side_effect = self._mock_manager_file_list2 self.assertEqual(self.dev.facts["HOME"], "/var/home/user") def _read_file(self, fname): from ncclient.xml_ import NCElement fpath = os.path.join(os.path.dirname(__file__), "rpc-reply", fname) foo = open(fpath).read() rpc_reply = NCElement( foo, self.dev._conn._device_handler.transform_reply() )._NCElement__doc[0] return rpc_reply def _mock_manager_setup(self, *args, **kwargs): if kwargs: device_params = kwargs["device_params"] device_handler = make_device_handler(device_params) session = SSHSession(device_handler) return Manager(session, device_handler) def _mock_manager_file_list(self, *args, **kwargs): if args: return self._read_file("file_list_" + args[0].tag + ".xml") def _mock_manager_file_list2(self, *args, **kwargs): if args: return self._read_file("file_list2_" + args[0].tag + ".xml") py-junos-eznc-2.7.3/tests/unit/facts/test_get_chassis_cluster_status.py000066400000000000000000000050351475361112400265450ustar00rootroot00000000000000__author__ = "Stacy Smith" __credits__ = "Jeremy Schulman, Nitin Kumar" import unittest import nose2 from unittest.mock import patch, MagicMock import os from lxml import etree from jnpr.junos import Device from jnpr.junos.exception import RpcError from ncclient.manager import Manager, make_device_handler from ncclient.transport import SSHSession class TestGetChassisClusterStatus(unittest.TestCase): @patch("ncclient.manager.connect") def setUp(self, mock_connect): mock_connect.side_effect = self._mock_manager_setup self.dev = Device( host="1.1.1.1", user="rick", password="password123", gather_facts=False ) self.dev.open() @patch("jnpr.junos.Device.execute") def test_srx_cluster_fact_none(self, mock_execute): mock_execute.side_effect = self._mock_manager_rpc_error self.assertEqual(self.dev.facts["srx_cluster"], None) @patch("jnpr.junos.Device.execute") def test_srx_cluster_fact_false(self, mock_execute): mock_execute.side_effect = self._mock_manager_false self.assertEqual(self.dev.facts["srx_cluster"], False) @patch("jnpr.junos.Device.execute") def test_srx_cluster_fact_true(self, mock_execute): mock_execute.side_effect = self._mock_manager_true self.assertEqual(self.dev.facts["srx_cluster"], True) @patch("jnpr.junos.Device.execute") def test_srx_cluster_id_fact(self, mock_execute): mock_execute.side_effect = self._mock_manager_true self.assertEqual(self.dev.facts["srx_cluster_id"], "1") def _read_file(self, fname): from ncclient.xml_ import NCElement fpath = os.path.join(os.path.dirname(__file__), "rpc-reply", fname) foo = open(fpath).read() rpc_reply = NCElement( foo, self.dev._conn._device_handler.transform_reply() )._NCElement__doc[0] return rpc_reply def _mock_manager_setup(self, *args, **kwargs): if kwargs: device_params = kwargs["device_params"] device_handler = make_device_handler(device_params) session = SSHSession(device_handler) return Manager(session, device_handler) def _mock_manager_rpc_error(self, *args, **kwargs): if args: raise RpcError() def _mock_manager_false(self, *args, **kwargs): if args: return self._read_file("cluster_false_" + args[0].tag + ".xml") def _mock_manager_true(self, *args, **kwargs): if args: return self._read_file("cluster_true_" + args[0].tag + ".xml") py-junos-eznc-2.7.3/tests/unit/facts/test_get_chassis_inventory.py000066400000000000000000000063161475361112400255210ustar00rootroot00000000000000__author__ = "Stacy Smith" __credits__ = "Jeremy Schulman, Nitin Kumar" import unittest import nose2 from unittest.mock import patch, MagicMock import os from jnpr.junos import Device from ncclient.manager import Manager, make_device_handler from ncclient.transport import SSHSession class TestChassis(unittest.TestCase): @patch("ncclient.manager.connect") def setUp(self, mock_connect): mock_connect.side_effect = self._mock_manager_setup self.dev = Device( host="1.1.1.1", user="rick", password="password123", gather_facts=False ) self.dev.open() @patch("jnpr.junos.Device.execute") def test_serialnumber_fact_from_chassis(self, mock_execute): mock_execute.side_effect = self._mock_manager_chassis_serialnumber self.assertEqual(self.dev.facts["serialnumber"], "JN1249018AFB") self.assertFalse(self.dev.facts["RE_hw_mi"]) @patch("jnpr.junos.Device.execute") def test_serialnumber_fact_from_backplane(self, mock_execute): mock_execute.side_effect = self._mock_manager_backplane_serialnumber self.assertEqual(self.dev.facts["serialnumber"], "123456789") self.assertTrue(self.dev.facts["RE_hw_mi"]) @patch("jnpr.junos.Device.execute") @patch("jnpr.junos.facts.get_chassis_inventory.ConnectNotMasterError") def test_serialnumber_not_master(self, mock_not_master, mock_execute): mock_execute.side_effect = self._mock_manager_connect_not_master self.assertEqual(self.dev.facts["serialnumber"], None) self.assertTrue(mock_not_master.called) @patch("jnpr.junos.Device.execute") @patch("jnpr.junos.facts.get_chassis_inventory.RpcError") def test_serialnumber_error_xml(self, mock_rpc_error, mock_execute): mock_execute.side_effect = self._mock_manager_error_xml self.assertEqual(self.dev.facts["serialnumber"], None) self.assertTrue(mock_rpc_error.called) def _read_file(self, fname): from ncclient.xml_ import NCElement fpath = os.path.join(os.path.dirname(__file__), "rpc-reply", fname) foo = open(fpath).read() rpc_reply = NCElement( foo, self.dev._conn._device_handler.transform_reply() )._NCElement__doc[0] return rpc_reply def _mock_manager_setup(self, *args, **kwargs): if kwargs: device_params = kwargs["device_params"] device_handler = make_device_handler(device_params) session = SSHSession(device_handler) return Manager(session, device_handler) def _mock_manager_chassis_serialnumber(self, *args, **kwargs): if args: return self._read_file("chassis_serialnumber_" + args[0].tag + ".xml") def _mock_manager_backplane_serialnumber(self, *args, **kwargs): if args: return self._read_file( "chassis_backplane_serialnumber_" + args[0].tag + ".xml" ) def _mock_manager_connect_not_master(self, *args, **kwargs): if args: return self._read_file("chassis_connect_not_master_" + args[0].tag + ".xml") def _mock_manager_error_xml(self, *args, **kwargs): if args: return self._read_file("chassis_error_xml_" + args[0].tag + ".xml") py-junos-eznc-2.7.3/tests/unit/facts/test_get_route_engine_information.py000066400000000000000000000232621475361112400270360ustar00rootroot00000000000000__author__ = "Stacy Smith" __credits__ = "Jeremy Schulman, Nitin Kumar" import unittest import nose2 from unittest.mock import patch, MagicMock import os from lxml import etree from jnpr.junos import Device from ncclient.manager import Manager, make_device_handler from ncclient.transport import SSHSession class TestGetRouteEngineInformation(unittest.TestCase): @patch("ncclient.manager.connect") def setUp(self, mock_connect): mock_connect.side_effect = self._mock_manager_setup self.dev = Device( host="1.1.1.1", user="rick", password="password123", gather_facts=False ) self.dev.open() @patch("jnpr.junos.Device.execute") def test_re_info_dual(self, mock_execute): mock_execute.side_effect = self._mock_manager_dual_re self.assertEqual(self.dev.facts["2RE"], True) self.assertEqual(self.dev.facts["master"], "RE0") self.assertEqual( self.dev.facts["RE0"], { "status": "OK", "last_reboot_reason": "Router rebooted after a normal shutdown.", "model": "RE-S-1800x4", "up_time": "9 days, 22 hours, 27 minutes, 12 seconds", "mastership_state": "master", }, ) self.assertEqual( self.dev.facts["RE1"], { "status": "OK", "last_reboot_reason": "Router rebooted after a normal shutdown.", "model": "RE-S-1800x4", "up_time": "9 days, 22 hours, 26 minutes, 48 seconds", "mastership_state": "backup", }, ) self.assertEqual( self.dev.facts["re_info"], { "default": { "1": { "status": "OK", "last_reboot_reason": "Router " "rebooted " "after a " "normal " "shutdown.", "model": "RE-S-1800x4", "mastership_state": "backup", }, "0": { "status": "OK", "last_reboot_reason": "Router " "rebooted " "after a " "normal " "shutdown.", "model": "RE-S-1800x4", "mastership_state": "master", }, "default": { "status": "OK", "last_reboot_reason": "Router rebooted after a " "normal shutdown.", "model": "RE-S-1800x4", "mastership_state": "master", }, } }, ) self.assertEqual(self.dev.facts["re_master"], {"default": "0"}) @patch("jnpr.junos.Device.execute") def test_re_info_single(self, mock_execute): mock_execute.side_effect = self._mock_manager_single_re self.assertEqual(self.dev.facts["2RE"], False) self.assertEqual(self.dev.facts["master"], "RE0") self.assertEqual( self.dev.facts["RE0"], { "status": "OK", "last_reboot_reason": "Router rebooted after a normal shutdown.", "model": "RE-VMX", "up_time": "29 days, 22 hours, 41 minutes, 35 seconds", "mastership_state": "master", }, ) self.assertEqual(self.dev.facts["RE1"], None) self.assertEqual( self.dev.facts["re_info"], { "default": { "default": { "status": "OK", "last_reboot_reason": "Router rebooted " "after a normal " "shutdown.", "model": "RE-VMX", "mastership_state": "master", }, "0": { "status": "OK", "last_reboot_reason": "Router rebooted after a " "normal shutdown.", "model": "RE-VMX", "mastership_state": "master", }, } }, ) self.assertEqual(self.dev.facts["re_master"], {"default": "0"}) @patch("jnpr.junos.Device.execute") def test_re_info_mx_vc(self, mock_execute): mock_execute.side_effect = self._mock_manager_mx_vc self.assertEqual(self.dev.facts["2RE"], True) self.assertEqual(self.dev.facts["master"], ["RE1", "RE0"]) self.assertEqual( self.dev.facts["RE0"], { "status": "OK", "last_reboot_reason": "Router rebooted after a normal shutdown.", "model": "RE-S-1800x4", "up_time": "16 days, 13 hours, 17 minutes, 25 seconds", "mastership_state": "backup", }, ) self.assertEqual( self.dev.facts["RE1"], { "status": "OK", "last_reboot_reason": "Router rebooted after a normal shutdown.", "model": "RE-S-1800x4", "up_time": "18 days, 22 hours, 3 minutes, 18 seconds", "mastership_state": "master", }, ) self.assertEqual( self.dev.facts["re_info"], { "default": { "1": { "status": "OK", "last_reboot_reason": "Router " "rebooted " "after a " "normal " "shutdown.", "model": "RE-S-1800x4", "mastership_state": "master", }, "0": { "status": "OK", "last_reboot_reason": "Router " "rebooted " "after a " "normal " "shutdown.", "model": "RE-S-1800x4", "mastership_state": "backup", }, "default": { "status": "OK", "last_reboot_reason": "Router rebooted after " "a normal shutdown.", "model": "RE-S-1800x4", "mastership_state": "backup", }, }, "member1": { "1": { "status": "OK", "last_reboot_reason": "Router " "rebooted " "after a " "normal " "shutdown.", "model": "RE-S-1800x4", "mastership_state": "backup", }, "0": { "status": "OK", "last_reboot_reason": "Router " "rebooted " "after a " "normal " "shutdown.", "model": "RE-S-1800x4", "mastership_state": "master", }, }, "member0": { "1": { "status": "OK", "last_reboot_reason": "Router " "rebooted " "after a " "normal " "shutdown.", "model": "RE-S-1800x4", "mastership_state": "master", }, "0": { "status": "OK", "last_reboot_reason": "Router " "rebooted " "after a " "normal " "shutdown.", "model": "RE-S-1800x4", "mastership_state": "backup", }, "default": { "status": "OK", "last_reboot_reason": "Router " "rebooted " "after a " "normal " "shutdown.", "model": "RE-S-1800x4", "mastership_state": "backup", }, }, }, ) def _read_file(self, fname): from ncclient.xml_ import NCElement fpath = os.path.join(os.path.dirname(__file__), "rpc-reply", fname) foo = open(fpath).read() rpc_reply = NCElement( foo, self.dev._conn._device_handler.transform_reply() )._NCElement__doc[0] return rpc_reply def _mock_manager_setup(self, *args, **kwargs): if kwargs: device_params = kwargs["device_params"] device_handler = make_device_handler(device_params) session = SSHSession(device_handler) return Manager(session, device_handler) def _mock_manager_dual_re(self, *args, **kwargs): if args: return self._read_file("re_info_dual_" + args[0].tag + ".xml") def _mock_manager_single_re(self, *args, **kwargs): if args: return self._read_file("re_info_single_" + args[0].tag + ".xml") def _mock_manager_mx_vc(self, *args, **kwargs): if args: return self._read_file("re_info_mx_vc_" + args[0].tag + ".xml") py-junos-eznc-2.7.3/tests/unit/facts/test_get_software_information.py000066400000000000000000000431671475361112400262130ustar00rootroot00000000000000__author__ = "Stacy Smith" __credits__ = "Jeremy Schulman, Nitin Kumar" import unittest import nose2 from unittest.mock import patch, MagicMock import os from lxml import etree from jnpr.junos import Device from jnpr.junos.exception import RpcError from ncclient.manager import Manager, make_device_handler from ncclient.transport import SSHSession class TestGetSoftwareInformation(unittest.TestCase): @patch("ncclient.manager.connect") def setUp(self, mock_connect): mock_connect.side_effect = self._mock_manager_setup self.dev = Device( host="1.1.1.1", user="rick", password="password123", gather_facts=False ) self.dev.open() @patch("jnpr.junos.Device.execute") def test_sw_info_single(self, mock_execute): mock_execute.side_effect = self._mock_manager_single self.assertEqual(self.dev.facts["junos_info"]["re0"]["text"], "16.1R1.11") self.assertEqual( self.dev.facts["junos_info"]["re0"]["object"].as_tuple, (16, 1, "R", "1", 11), ) self.assertEqual(self.dev.facts["hostname"], "r0") self.assertEqual(self.dev.facts["model"], "MX960") self.assertEqual(self.dev.facts["model_info"], {"re0": "MX960"}) self.assertEqual(self.dev.facts["version"], "16.1R1.11") self.assertEqual(self.dev.facts["version_info"].as_tuple, (16, 1, "R", "1", 11)) self.assertEqual(self.dev.facts["version_RE0"], "16.1R1.11") self.assertEqual(self.dev.facts["version_RE1"], None) @patch("jnpr.junos.Device.execute") def test_sw_info_vc(self, mock_execute): mock_execute.side_effect = self._mock_manager_vc self.assertEqual( self.dev.facts["junos_info"]["member0"]["text"], "15.1-20161209.0" ) self.assertEqual( self.dev.facts["junos_info"]["member0"]["object"].as_tuple, (15, 1, "I", "20161209", "0"), ) self.assertEqual( self.dev.facts["junos_info"]["member1"]["text"], "15.1-20161209.0" ) self.assertEqual( self.dev.facts["junos_info"]["member1"]["object"].as_tuple, (15, 1, "I", "20161209", "0"), ) self.assertEqual(self.dev.facts["hostname"], "reefbreak1") self.assertEqual(self.dev.facts["model"], "MX240") self.assertEqual( self.dev.facts["model_info"], {"member1": "MX240", "member0": "MX240"} ) self.assertEqual(self.dev.facts["version"], "15.1-20161209.0") self.assertEqual( self.dev.facts["version_info"].as_tuple, (15, 1, "I", "20161209", "0") ) self.assertEqual(self.dev.facts["version_RE0"], None) self.assertEqual(self.dev.facts["version_RE1"], None) @patch("jnpr.junos.Device.execute") def test_sw_info_simple(self, mock_execute): mock_execute.side_effect = self._mock_manager_simple self.assertEqual(self.dev.facts["junos_info"]["re0"]["text"], "12.3X48-D40.5") self.assertEqual( self.dev.facts["junos_info"]["re0"]["object"].as_tuple, (12, 3, "X", (48, "D", 40), 5), ) self.assertEqual(self.dev.facts["hostname"], "lsys500") self.assertEqual(self.dev.facts["model"], "SRX3600") self.assertEqual(self.dev.facts["model_info"], {"re0": "SRX3600"}) self.assertEqual(self.dev.facts["version"], "12.3X48-D40.5") self.assertEqual( self.dev.facts["version_info"].as_tuple, (12, 3, "X", (48, "D", 40), 5) ) self.assertEqual(self.dev.facts["version_RE0"], "12.3X48-D40.5") self.assertEqual(self.dev.facts["version_RE1"], None) @patch("jnpr.junos.Device.execute") def test_sw_info_no_version(self, mock_execute): mock_execute.side_effect = self._mock_manager_no_version self.assertEqual(self.dev.facts["junos_info"], None) self.assertEqual(self.dev.facts["hostname"], "lsys500") self.assertEqual(self.dev.facts["model"], "SRX3600") self.assertEqual(self.dev.facts["model_info"], {"re0": "SRX3600"}) self.assertEqual(self.dev.facts["version"], "0.0I0.0") self.assertEqual(self.dev.facts["version_RE0"], None) self.assertEqual(self.dev.facts["version_RE1"], None) @patch("jnpr.junos.Device.execute") def test_sw_info_dual(self, mock_execute): mock_execute.side_effect = self._mock_manager_dual self.assertEqual(self.dev.facts["junos_info"]["re0"]["text"], "15.1F5.15-C1.12") self.assertEqual(self.dev.facts["junos_info"]["re1"]["text"], "15.1F5.15") self.assertEqual(self.dev.facts["hostname"], "baku") self.assertEqual(self.dev.facts["model"], "MX480") self.assertEqual(self.dev.facts["model_info"], {"re0": "MX480", "re1": "MX480"}) self.assertEqual(self.dev.facts["version"], "15.1F5.15-C1.12") self.assertEqual(self.dev.facts["version_RE0"], "15.1F5.15-C1.12") self.assertEqual(self.dev.facts["version_RE1"], "15.1F5.15") @patch("jnpr.junos.Device.execute") def test_sw_info_dual_other_re_off(self, mock_execute): mock_execute.side_effect = self._mock_manager_dual_other_re_off self.assertEqual( self.dev.facts["junos_info"]["re1"]["text"], "18.3I20180716_1639" ) self.assertEqual(self.dev.facts["hostname"], "R1_re01") self.assertEqual(self.dev.facts["model"], "MX960") self.assertEqual(self.dev.facts["model_info"], {"re1": "MX960"}) self.assertEqual(self.dev.facts["version"], "18.3I20180716_1639") self.assertEqual(self.dev.facts["version_RE1"], "18.3I20180716_1639") @patch("jnpr.junos.Device.execute") def test_sw_info_txp(self, mock_execute): mock_execute.side_effect = self._mock_manager_txp self.assertEqual(self.dev.facts["junos_info"]["re0"]["text"], "13.3R9-S2.1") self.assertEqual(self.dev.facts["hostname"], "dj") self.assertEqual(self.dev.facts["model"], "T1600") self.assertEqual(self.dev.facts["model_info"], {"re0": "T1600"}) self.assertEqual(self.dev.facts["version"], "13.3R9-S2.1") self.assertEqual(self.dev.facts["version_RE0"], "13.3R9-S2.1") self.assertEqual(self.dev.facts["version_RE1"], None) @patch("jnpr.junos.Device.execute") def test_sw_info_ex(self, mock_execute): mock_execute.side_effect = self._mock_manager_ex self.assertEqual(self.dev.facts["junos_info"]["re0"]["text"], "11.4R1.6") self.assertEqual(self.dev.facts["hostname"], "sw1") self.assertEqual(self.dev.facts["model"], "EX2200-C-12T-2G") self.assertEqual(self.dev.facts["model_info"], {"re0": "EX2200-C-12T-2G"}) self.assertEqual(self.dev.facts["version"], "11.4R1.6") self.assertEqual(self.dev.facts["version_RE0"], "11.4R1.6") self.assertEqual(self.dev.facts["version_RE1"], None) @patch("jnpr.junos.Device.execute") def test_sw_info_nfx(self, mock_execute): self.dev.facts._cache["vc_capable"] = False mock_execute.side_effect = self._mock_manager_nfx self.assertEqual(self.dev.facts["hostname"], "jdm") self.assertEqual(self.dev.facts["model"], "NFX250_S2_10_T") self.assertEqual(self.dev.facts["version"], "15.1X53-D45.3") self.assertEqual(self.dev.facts["version_RE0"], "15.1X53-D45.3") self.assertEqual(self.dev.facts["version_RE1"], None) self.assertEqual(self.dev.facts["model_info"], {"re0": "NFX250_S2_10_T"}) self.assertEqual(self.dev.facts["junos_info"]["re0"]["text"], "15.1X53-D45.3") @patch("jnpr.junos.Device.execute") def test_sw_info_bsys(self, mock_execute): self.dev.facts._cache["current_re"] = [ "master", "node", "fwdd", "member", "pfem", "re0", ] self.dev.facts._cache["vc_capable"] = False mock_execute.side_effect = self._mock_manager_bsys self.assertEqual(self.dev.facts["hostname"], "bsys") self.assertEqual(self.dev.facts["model"], "MX2020") self.assertEqual(self.dev.facts["version"], "17.4-20170706_dev_common.0") self.assertEqual(self.dev.facts["version_RE0"], "17.4-20170706_dev_common.0") self.assertEqual(self.dev.facts["version_RE1"], "17.4-20170706_dev_common.0") self.assertEqual( self.dev.facts["model_info"], { "bsys-re0": "MX2020", "bsys-re1": "MX2020", "gnf1-re0": "MX2020", "gnf1-re1": "MX2020", "gnf2-re0": "MX2020", "gnf2-re1": "MX2020", "gnf3-re0": "MX2020", "gnf3-re1": "MX2020", "gnf4-re0": "MX2020", "gnf4-re1": "MX2020", }, ) self.assertEqual( self.dev.facts["junos_info"]["bsys-re0"]["text"], "17.4-20170706_dev_common.0", ) @patch("jnpr.junos.Device.execute") def test_sw_info_jdm(self, mock_execute): self.dev.facts._cache["vc_capable"] = False self.dev.facts._cache["current_re"] = ["server0"] mock_execute.side_effect = self._mock_manager_jdm self.assertEqual(self.dev.facts["hostname"], "jdm") self.assertEqual(self.dev.facts["model"], "JUNOS_NODE_SLICING") self.assertEqual(self.dev.facts["version"], "17.4-20170718_dev_common.1-secure") self.assertEqual( self.dev.facts["version_RE0"], "17.4-20170718_dev_common.1-secure" ) self.assertEqual( self.dev.facts["version_RE1"], "17.4-20170718_dev_common.1-secure" ) self.assertEqual( self.dev.facts["model_info"], {"server0": "JUNOS_NODE_SLICING", "server1": "JUNOS_NODE_SLICING"}, ) self.assertEqual( self.dev.facts["junos_info"]["server0"]["text"], "17.4-20170718_dev_common.1-secure", ) self.assertEqual( self.dev.facts["junos_info"]["server1"]["text"], "17.4-20170718_dev_common.1-secure", ) @patch("jnpr.junos.Device.execute") def test_sw_info_gnf(self, mock_execute): self.dev.facts._cache["vc_capable"] = False self.dev.facts._cache["current_re"] = ["gnf7-master", "gnf7-re0"] mock_execute.side_effect = self._mock_manager_gnf self.assertEqual(self.dev.facts["hostname"], "mgb-gnf-a") self.assertEqual(self.dev.facts["model"], "MX960") self.assertEqual(self.dev.facts["version"], "18.4-20180707_dev_common.0") self.assertEqual(self.dev.facts["version_RE0"], "18.4-20180707_dev_common.0") self.assertEqual(self.dev.facts["version_RE1"], "18.4-20180707_dev_common.0") self.assertEqual( self.dev.facts["model_info"], { "bsys-re0": "MX960", "bsys-re1": "MX960", "gnf7-re0": "MX960", "gnf7-re1": "MX960", }, ) self.assertEqual( self.dev.facts["junos_info"]["gnf7-re0"]["text"], "18.4-20180707_dev_common.0", ) self.assertEqual( self.dev.facts["junos_info"]["gnf7-re1"]["text"], "18.4-20180707_dev_common.0", ) @patch("jnpr.junos.Device.execute") def test_sw_info_srx_cluster(self, mock_execute): self.dev.facts._cache["vc_capable"] = False self.dev.facts._cache["current_re"] = ["node0"] mock_execute.side_effect = self._mock_manager_srx_cluster self.assertEqual(self.dev.facts["hostname"], "frogbert") self.assertEqual(self.dev.facts["model"], "SRX5800") self.assertEqual( self.dev.facts["version"], "17.3-2017-07-02.0_RELEASE_173_THROTTLE" ) self.assertEqual( self.dev.facts["version_RE0"], "17.3-2017-07-02.0_RELEASE_173_THROTTLE" ) self.assertEqual( self.dev.facts["version_RE1"], "17.3-2017-07-02.0_RELEASE_173_THROTTLE" ) self.assertEqual( self.dev.facts["model_info"], {"node0": "SRX5800", "node1": "SRX5800"} ) self.assertEqual( self.dev.facts["junos_info"]["node0"]["text"], "17.3-2017-07-02.0_RELEASE_173_THROTTLE", ) self.assertEqual( self.dev.facts["junos_info"]["node1"]["text"], "17.3-2017-07-02.0_RELEASE_173_THROTTLE", ) @patch("jnpr.junos.Device.execute") def test_sw_info_err(self, mock_execute): self.dev.facts._cache["vc_capable"] = False self.dev.facts._cache["current_re"] = None mock_execute.side_effect = self._mock_manager_err self.assertEqual(self.dev.facts["hostname"], None) self.assertEqual(self.dev.facts["model"], None) self.assertEqual(self.dev.facts["version"], None) self.assertEqual(self.dev.facts["version_RE0"], None) self.assertEqual(self.dev.facts["version_RE1"], None) self.assertEqual(self.dev.facts["model_info"], None) self.assertEqual(self.dev.facts["junos_info"], None) def _read_file(self, fname): from ncclient.xml_ import NCElement fpath = os.path.join(os.path.dirname(__file__), "rpc-reply", fname) foo = open(fpath).read() rpc_reply = NCElement( foo, self.dev._conn._device_handler.transform_reply() )._NCElement__doc[0] return rpc_reply def _mock_manager_setup(self, *args, **kwargs): if kwargs: device_params = kwargs["device_params"] device_handler = make_device_handler(device_params) session = SSHSession(device_handler) return Manager(session, device_handler) def _mock_manager_single(self, *args, **kwargs): if args: return self._read_file("sw_info_single_" + args[0].tag + ".xml") def _mock_manager_vc(self, *args, **kwargs): if args: if ( args[0].tag == "command" and args[0].text == "show version invoke-on all-routing-engines" ): raise RpcError() elif ( args[0].tag == "file-show" and args[0].xpath("filename")[0].text == "/usr/share/cevo/cevo_version" ): raise RpcError else: return self._read_file("sw_info_vc_" + args[0].tag + ".xml") def _mock_manager_simple(self, *args, **kwargs): if args: if args[0].tag == "command": raise RpcError() else: return self._read_file("sw_info_simple_" + args[0].tag + ".xml") def _mock_manager_no_version(self, *args, **kwargs): if args: if args[0].tag == "command": raise RpcError() else: return self._read_file("sw_info_no_version_" + args[0].tag + ".xml") def _mock_manager_dual(self, *args, **kwargs): if args: if ( args[0].tag == "file-show" and args[0].xpath("filename")[0].text == "/usr/share/cevo/cevo_version" ): raise RpcError else: return self._read_file("sw_info_dual_" + args[0].tag + ".xml") def _mock_manager_dual_other_re_off(self, *args, **kwargs): if args: return self._read_file("sw_info_dual_other_re_off.xml").getparent() def _mock_manager_txp(self, *args, **kwargs): if args: if args[0].tag == "command": raise RpcError() else: return self._read_file("sw_info_txp_" + args[0].tag + ".xml") def _mock_manager_ex(self, *args, **kwargs): if args: if args[0].tag == "command": raise RpcError() else: return self._read_file("sw_info_ex_" + args[0].tag + ".xml") def _mock_manager_nfx(self, *args, **kwargs): if args: if args[0].tag == "command": raise RpcError() elif ( args[0].tag == "get-software-information" and args[0].find("./*") is None ): return True else: return self._read_file("sw_info_nfx_" + args[0].tag + ".xml") def _mock_manager_bsys(self, *args, **kwargs): if args: if args[0].tag == "command": raise RpcError() elif ( args[0].tag == "get-software-information" and args[0].find("./*") is None ): return True else: return self._read_file("sw_info_bsys_" + args[0].tag + ".xml") def _mock_manager_srx_cluster(self, *args, **kwargs): if args: if args[0].tag == "command": raise RpcError() else: return self._read_file("sw_info_srx_cluster_" + args[0].tag + ".xml") def _mock_manager_jdm(self, *args, **kwargs): if args: if args[0].tag == "command": if args[0].text == "show version invoke-on all-routing-engines": raise RpcError() else: return self._read_file( "sw_info_jdm_command_" + args[0].text + ".xml" ) else: return self._read_file("sw_info_jdm_" + args[0].tag + ".xml") def _mock_manager_gnf(self, *args, **kwargs): if args: if args[0].tag == "command": raise RpcError() elif ( args[0].tag == "get-software-information" and args[0].find("./*") is None ): return True else: return self._read_file("sw_info_gnf_" + args[0].tag + ".xml") def _mock_manager_err(self, *args, **kwargs): if args: raise RpcError() py-junos-eznc-2.7.3/tests/unit/facts/test_get_virtual_chassis_information.py000066400000000000000000000107701475361112400275560ustar00rootroot00000000000000__author__ = "Stacy Smith" __credits__ = "Jeremy Schulman, Nitin Kumar" import unittest import nose2 from unittest.mock import patch, MagicMock import os import sys from lxml import etree from jnpr.junos import Device from jnpr.junos.exception import RpcError from ncclient.manager import Manager, make_device_handler from ncclient.transport import SSHSession class TestGetVirtualChassisInformation(unittest.TestCase): @patch("ncclient.manager.connect") def setUp(self, mock_connect): mock_connect.side_effect = self._mock_manager_setup self.dev = Device( host="1.1.1.1", user="rick", password="password123", gather_facts=False ) self.dev.open() @patch("jnpr.junos.Device.execute") def test_vc(self, mock_execute): mock_execute.side_effect = self._mock_manager_vc self.assertEqual(self.dev.facts["vc_capable"], True) self.assertEqual(self.dev.facts["vc_mode"], "Enabled") self.assertEqual(self.dev.facts["vc_fabric"], None) self.assertEqual(self.dev.facts["vc_master"], "0") @patch("jnpr.junos.Device.execute") def test_vc_dual_master(self, mock_execute): mock_execute.side_effect = self._mock_manager_vc_dual_master self.assertEqual(self.dev.facts["vc_capable"], None) self.assertEqual(self.dev.facts["vc_mode"], None) self.assertEqual(self.dev.facts["vc_fabric"], None) self.assertEqual(self.dev.facts["vc_master"], None) @patch("jnpr.junos.Device.execute") def test_vc_error(self, mock_execute): mock_execute.side_effect = self._mock_manager_vc_error self.assertEqual(self.dev.facts["vc_capable"], False) self.assertEqual(self.dev.facts["vc_mode"], None) self.assertEqual(self.dev.facts["vc_fabric"], None) self.assertEqual(self.dev.facts["vc_master"], None) @patch("jnpr.junos.Device.execute") def test_vc_empty(self, mock_execute): mock_execute.side_effect = self._mock_manager_vc_empty self.assertEqual(self.dev.facts["vc_capable"], False) self.assertEqual(self.dev.facts["vc_mode"], None) self.assertEqual(self.dev.facts["vc_fabric"], None) self.assertEqual(self.dev.facts["vc_master"], None) @patch("jnpr.junos.Device.execute") @unittest.skipIf(sys.platform == "win32", "will work for windows in coming days") def test_vc_mmvcf(self, mock_execute): mock_execute.side_effect = self._mock_manager_vc_mmvcf self.assertEqual(self.dev.facts["vc_capable"], True) self.assertEqual(self.dev.facts["vc_mode"], "Mixed") self.assertEqual(self.dev.facts["vc_fabric"], True) self.assertEqual(self.dev.facts["vc_master"], "0") @patch("jnpr.junos.Device.execute") @unittest.skipIf(sys.platform == "win32", "will work for windows in coming days") def test_vc_mmvc(self, mock_execute): mock_execute.side_effect = self._mock_manager_vc_mmvc self.assertEqual(self.dev.facts["vc_capable"], True) self.assertEqual(self.dev.facts["vc_mode"], "Mixed") self.assertEqual(self.dev.facts["vc_fabric"], False) self.assertEqual(self.dev.facts["vc_master"], "0") def _read_file(self, fname): from ncclient.xml_ import NCElement fpath = os.path.join(os.path.dirname(__file__), "rpc-reply", fname) foo = open(fpath).read() rpc_reply = NCElement( foo, self.dev._conn._device_handler.transform_reply() )._NCElement__doc[0] return rpc_reply def _mock_manager_setup(self, *args, **kwargs): if kwargs: device_params = kwargs["device_params"] device_handler = make_device_handler(device_params) session = SSHSession(device_handler) return Manager(session, device_handler) def _mock_manager_vc(self, *args, **kwargs): if args: return self._read_file("vc_" + args[0].tag + ".xml") def _mock_manager_vc_dual_master(self, *args, **kwargs): if args: return self._read_file("vc_dual_master_" + args[0].tag + ".xml") def _mock_manager_vc_mmvcf(self, *args, **kwargs): if args: return self._read_file("vc_mmvcf_" + args[0].tag + ".xml") def _mock_manager_vc_mmvc(self, *args, **kwargs): if args: return self._read_file("vc_mmvc_" + args[0].tag + ".xml") def _mock_manager_vc_error(self, *args, **kwargs): if args: raise RpcError def _mock_manager_vc_empty(self, *args, **kwargs): if args: return True py-junos-eznc-2.7.3/tests/unit/facts/test_ifd_style.py000066400000000000000000000044251475361112400230710ustar00rootroot00000000000000__author__ = "Stacy Smith" __credits__ = "Jeremy Schulman, Nitin Kumar" import unittest import nose2 from unittest.mock import patch, MagicMock import os from lxml import etree from jnpr.junos import Device from jnpr.junos.exception import RpcError from ncclient.manager import Manager, make_device_handler from ncclient.transport import SSHSession class TestIfdStyle(unittest.TestCase): @patch("ncclient.manager.connect") def setUp(self, mock_connect): mock_connect.side_effect = self._mock_manager_setup self.dev = Device( host="1.1.1.1", user="rick", password="password123", gather_facts=False ) self.dev.open() @patch("jnpr.junos.Device.execute") def test_ifd_style_switch(self, mock_execute): mock_execute.side_effect = self._mock_manager_ifd_style_switch self.assertEqual(self.dev.facts["ifd_style"], "SWITCH") @patch("jnpr.junos.Device.execute") def test_ifd_style_classic(self, mock_execute): mock_execute.side_effect = self._mock_manager_ifd_style_classic self.assertEqual(self.dev.facts["ifd_style"], "CLASSIC") def test_ifd_style_None(self): self.dev.facts._cache["personality"] = "JDM" self.assertEqual(self.dev.facts["ifd_style"], None) def _read_file(self, fname): from ncclient.xml_ import NCElement fpath = os.path.join(os.path.dirname(__file__), "rpc-reply", fname) foo = open(fpath).read() rpc_reply = NCElement( foo, self.dev._conn._device_handler.transform_reply() )._NCElement__doc[0] return rpc_reply def _mock_manager_setup(self, *args, **kwargs): if kwargs: device_params = kwargs["device_params"] device_handler = make_device_handler(device_params) session = SSHSession(device_handler) return Manager(session, device_handler) def _mock_manager_ifd_style_classic(self, *args, **kwargs): if args: return self._read_file("ifd_style_classic_" + args[0].tag + ".xml") def _mock_manager_ifd_style_switch(self, *args, **kwargs): if args: if args[0].tag == "command": raise RpcError() else: return self._read_file("ifd_style_switch_" + args[0].tag + ".xml") py-junos-eznc-2.7.3/tests/unit/facts/test_iri_mapping.py000066400000000000000000000056301475361112400234040ustar00rootroot00000000000000__author__ = "Stacy Smith" __credits__ = "Jeremy Schulman, Nitin Kumar" import unittest import nose2 from unittest.mock import patch, MagicMock import os from jnpr.junos import Device from ncclient.manager import Manager, make_device_handler from ncclient.transport import SSHSession class TestIriMapping(unittest.TestCase): @patch("ncclient.manager.connect") def setUp(self, mock_connect): mock_connect.side_effect = self._mock_manager_setup self.dev = Device( host="1.1.1.1", user="rick", password="password123", gather_facts=False ) self.dev.open() @patch("jnpr.junos.Device.execute") def test_iri_host_to_ip_mapping_fact(self, mock_execute): mock_execute.side_effect = self._mock_manager_current_re self.assertEqual(self.dev.facts["_iri_ip"]["re0"], ["128.0.0.4", "10.0.0.4"]) @patch("jnpr.junos.Device.execute") def test_iri_ip_to_host_mapping_fact(self, mock_execute): mock_execute.side_effect = self._mock_manager_current_re self.assertEqual( self.dev.facts["_iri_hostname"]["128.0.0.1"], ["master", "node", "fwdd", "member", "pfem"], ) @patch("jnpr.junos.Device.execute") def test_iri_template_ip_to_host_mapping_fact(self, mock_execute): mock_execute.side_effect = self._mock_manager_current_re self.assertEqual( self.dev.facts["_iri_hostname"]["190.0.1.1"], ["gnf1-master", "psd1-master"] ) @patch("jnpr.junos.Device.execute") def test_iri_template_host_to_ip_mapping_fact(self, mock_execute): mock_execute.side_effect = self._mock_manager_current_re self.assertEqual( self.dev.facts["_iri_ip"]["gnf1-master"], ["190.0.1.1", "190.1.1.1"] ) @patch("jnpr.junos.Device.execute") def test_iri_template_host_to_ip_mapping_fact(self, mock_execute): mock_execute.side_effect = self._mock_manager_current_re2 self.assertEqual(self.dev.facts["_iri_ip"]["gnf1-master"], ["190.0.1.1"]) def _read_file(self, fname): from ncclient.xml_ import NCElement fpath = os.path.join(os.path.dirname(__file__), "rpc-reply", fname) foo = open(fpath).read() rpc_reply = NCElement( foo, self.dev._conn._device_handler.transform_reply() )._NCElement__doc[0] return rpc_reply def _mock_manager_setup(self, *args, **kwargs): if kwargs: device_params = kwargs["device_params"] device_handler = make_device_handler(device_params) session = SSHSession(device_handler) return Manager(session, device_handler) def _mock_manager_current_re(self, *args, **kwargs): if args: return self._read_file("iri_mapping_" + args[0].tag + ".xml") def _mock_manager_current_re2(self, *args, **kwargs): if args: return self._read_file("iri_mapping2_" + args[0].tag + ".xml") py-junos-eznc-2.7.3/tests/unit/facts/test_personality.py000066400000000000000000000217431475361112400234620ustar00rootroot00000000000000__author__ = "Stacy Smith" __credits__ = "Jeremy Schulman, Nitin Kumar" import unittest import nose2 from unittest.mock import patch, MagicMock import os from jnpr.junos.exception import RpcError from jnpr.junos import Device from ncclient.manager import Manager, make_device_handler from ncclient.transport import SSHSession class TestPersonality(unittest.TestCase): @patch("ncclient.manager.connect") def setUp(self, mock_connect): mock_connect.side_effect = self._mock_manager_setup self.dev = Device( host="1.1.1.1", user="rick", password="password123", gather_facts=False ) self.dev.open() # @patch('jnpr.junos.Device.execute') # def test_personality_ex(self, mock_execute): # mock_execute.side_effect = self._mock_manager_personality_ex # self.assertEqual(self.dev.facts['personality'], 'SWITCH') # self.assertEqual(self.dev.facts['virtual'], False) @patch("jnpr.junos.Device.execute") def test_personality_m(self, mock_execute): mock_execute.side_effect = self._mock_manager_personality_m self.assertEqual(self.dev.facts["personality"], "M") self.assertEqual(self.dev.facts["virtual"], False) @patch("jnpr.junos.Device.execute") def test_personality_mx(self, mock_execute): mock_execute.side_effect = self._mock_manager_personality_mx self.assertEqual(self.dev.facts["personality"], "MX") self.assertEqual(self.dev.facts["virtual"], False) @patch("jnpr.junos.Device.execute") def test_personality_olive(self, mock_execute): mock_execute.side_effect = self._mock_manager_personality_olive self.assertEqual(self.dev.facts["personality"], "OLIVE") self.assertEqual(self.dev.facts["virtual"], True) @patch("jnpr.junos.Device.execute") def test_personality_ptx(self, mock_execute): mock_execute.side_effect = self._mock_manager_personality_ptx self.assertEqual(self.dev.facts["personality"], "PTX") self.assertEqual(self.dev.facts["virtual"], False) @patch("jnpr.junos.Device.execute") def test_personality_srx_branch(self, mock_execute): mock_execute.side_effect = self._mock_manager_personality_srx_branch self.assertEqual(self.dev.facts["personality"], "SRX_BRANCH") self.assertEqual(self.dev.facts["virtual"], False) @patch("jnpr.junos.Device.execute") def test_personality_srx_mid_range(self, mock_execute): mock_execute.side_effect = self._mock_manager_personality_srx_mid_range self.assertEqual(self.dev.facts["personality"], "SRX_MIDRANGE") self.assertEqual(self.dev.facts["virtual"], False) @patch("jnpr.junos.Device.execute") def test_personality_srx_high_end(self, mock_execute): mock_execute.side_effect = self._mock_manager_personality_srx_high_end self.assertEqual(self.dev.facts["personality"], "SRX_HIGHEND") self.assertEqual(self.dev.facts["virtual"], False) @patch("jnpr.junos.Device.execute") def test_personality_t(self, mock_execute): mock_execute.side_effect = self._mock_manager_personality_t self.assertEqual(self.dev.facts["personality"], "T") self.assertEqual(self.dev.facts["virtual"], False) @patch("jnpr.junos.Device.execute") def test_personality_vmx(self, mock_execute): mock_execute.side_effect = self._mock_manager_personality_vmx self.assertEqual(self.dev.facts["personality"], "MX") self.assertEqual(self.dev.facts["virtual"], True) def test_personality_old_vmx(self): self.dev.facts._cache["model"] = "VMX" self.assertEqual(self.dev.facts["personality"], "MX") self.assertEqual(self.dev.facts["virtual"], True) def test_personality_vjx(self): self.dev.facts._cache["model"] = "VJX" self.assertEqual(self.dev.facts["personality"], "SRX_BRANCH") self.assertEqual(self.dev.facts["virtual"], True) def test_personality_old_vrr(self): self.dev.facts._cache["model"] = "VRR" self.assertEqual(self.dev.facts["personality"], "MX") self.assertEqual(self.dev.facts["virtual"], True) def test_personality_firefly(self): self.dev.facts._cache["model"] = "FiReFlY" self.assertEqual(self.dev.facts["personality"], "SRX_BRANCH") self.assertEqual(self.dev.facts["virtual"], True) def test_personality_nfx(self): self.dev.facts._cache["model"] = "NFX250_S2_10_T" self.assertEqual(self.dev.facts["personality"], "NFX") self.assertEqual(self.dev.facts["virtual"], False) def test_personality_jdm(self): self.dev.facts._cache["model"] = "JUNOS_NODE_SLICING" self.assertEqual(self.dev.facts["personality"], "JDM") self.assertEqual(self.dev.facts["virtual"], True) def test_personality_gnf(self): self.dev.facts._cache["model"] = "MX2020" self.dev.facts._cache["re_info"] = { "default": {"default": {"model": "RE-GNF-2400x4"}} } self.assertEqual(self.dev.facts["personality"], "MX-GNF") self.assertEqual(self.dev.facts["virtual"], True) def test_personality_acx(self): self.dev.facts._cache["model"] = "ACX7908" self.dev.facts._cache["re_info"] = { "default": {"default": {"model": "ACX-7900-RE"}} } self.assertEqual(self.dev.facts["personality"], "ACX") self.assertEqual(self.dev.facts["virtual"], False) @patch("jnpr.junos.Device.execute") def test_personality_vptx(self, mock_execute): mock_execute.side_effect = self._mock_manager_personality_vptx self.assertEqual(self.dev.facts["personality"], "PTX") self.assertEqual(self.dev.facts["virtual"], True) def test_personality_virtual_chassis(self): self.dev.facts._cache["model"] = "Virtual Chassis" self.dev.facts._cache["re_info"] = { "default": {"default": {"model": "QFX5100"}} } self.assertEqual(self.dev.facts["personality"], "SWITCH") self.assertEqual(self.dev.facts["virtual"], False) def _read_file(self, fname): from ncclient.xml_ import NCElement fpath = os.path.join(os.path.dirname(__file__), "rpc-reply", fname) foo = open(fpath).read() rpc_reply = NCElement( foo, self.dev._conn._device_handler.transform_reply() )._NCElement__doc[0] return rpc_reply def _mock_manager_setup(self, *args, **kwargs): if kwargs: device_params = kwargs["device_params"] device_handler = make_device_handler(device_params) session = SSHSession(device_handler) return Manager(session, device_handler) def _mock_manager_personality_ex(self, *args, **kwargs): if args: return self._read_file("personality_ex_" + args[0].tag + ".xml") def _mock_manager_personality_m(self, *args, **kwargs): if args: if ( args[0].tag == "file-show" and args[0].xpath("filename")[0].text == "/usr/share/cevo/cevo_version" ): raise RpcError else: return self._read_file("personality_m_" + args[0].tag + ".xml") def _mock_manager_personality_mx(self, *args, **kwargs): if args: return self._read_file("personality_mx_" + args[0].tag + ".xml") def _mock_manager_personality_olive(self, *args, **kwargs): if args: return self._read_file("personality_olive_" + args[0].tag + ".xml") def _mock_manager_personality_ptx(self, *args, **kwargs): if args: if ( args[0].tag == "file-show" and args[0].xpath("filename")[0].text == "/usr/share/cevo/cevo_version" ): raise RpcError else: return self._read_file("personality_ptx_" + args[0].tag + ".xml") def _mock_manager_personality_srx_branch(self, *args, **kwargs): if args: return self._read_file("personality_srx_branch_" + args[0].tag + ".xml") def _mock_manager_personality_srx_high_end(self, *args, **kwargs): if args: return self._read_file("personality_srx_high_end_" + args[0].tag + ".xml") def _mock_manager_personality_srx_mid_range(self, *args, **kwargs): if args: return self._read_file("personality_srx_mid_range_" + args[0].tag + ".xml") def _mock_manager_personality_t(self, *args, **kwargs): if args: if ( args[0].tag == "file-show" and args[0].xpath("filename")[0].text == "/usr/share/cevo/cevo_version" ): raise RpcError else: return self._read_file("personality_t_" + args[0].tag + ".xml") def _mock_manager_personality_vmx(self, *args, **kwargs): if args: return self._read_file("personality_vmx_" + args[0].tag + ".xml") def _mock_manager_personality_vptx(self, *args, **kwargs): if args: return self._read_file("personality_vptx_" + args[0].tag + ".xml") py-junos-eznc-2.7.3/tests/unit/facts/test_swver.py000066400000000000000000000053261475361112400222560ustar00rootroot00000000000000__author__ = "Stacy Smith" __credits__ = "Jeremy Schulman, Nitin Kumar" import six try: import unittest2 as unittest except: import unittest import nose2 from jnpr.junos.facts.swver import version_info, get_facts class TestVersionInfo(unittest.TestCase): if six.PY2: assertCountEqual = unittest.TestCase.assertItemsEqual def test_version_info_after_type_len_else(self): self.assertEqual(version_info("12.1X46-D10").build, None) def test_version_info_X_type_non_hyphenated(self): self.assertCountEqual( version_info("11.4X12.2"), [("build", 2), ("major", (11, 4)), ("minor", "12"), ("type", "X")], ) def test_version_info_X_type_non_hyphenated_nobuild(self): self.assertCountEqual( version_info("11.4X12"), [("build", None), ("major", (11, 4)), ("minor", "12"), ("type", "X")], ) def test_version_info_constructor_else_exception(self): self.assertEqual(version_info("11.4R7").build, "7") def test_version_info_repr(self): self.assertEqual( repr(version_info("11.4R7.5")), "junos.version_info(major=(11, 4), " "type=R, minor=7, build=5)", ) def test_version_info_lt(self): self.assertTrue(version_info("13.3-20131120") < (14, 1)) def test_version_info_lt_eq(self): self.assertTrue(version_info("13.3-20131120") <= (14, 1)) def test_version_info_gt(self): self.assertTrue(version_info("13.3-20131120") > (12, 1)) def test_version_info_gt_eq(self): self.assertTrue(version_info("13.3-20131120") >= (12, 1)) def test_version_info_eq(self): self.assertTrue(version_info("13.3-20131120") == (13, 3)) def test_version_info_not_eq(self): self.assertTrue(version_info("13.3-20131120") != (15, 3)) def test_version_to_json(self): import json self.assertEqual( eval(json.dumps(version_info("11.4R7.5"))), {"major": [11, 4], "type": "R", "build": 5, "minor": "7"}, ) def test_version_to_yaml(self): import yaml self.assertEqual( yaml.dump(version_info("11.4R7.5")), "build: 5\nmajor: !!python/tuple\n- 11\n- 4\nminor: '7'\ntype: R\n", ) def test_version_iter(self): self.assertCountEqual( version_info("11.4R7.5"), [("build", 5), ("major", (11, 4)), ("minor", "7"), ("type", "R")], ) def test_version_feature_velocity(self): self.assertCountEqual( version_info("15.4F7.5"), [("build", 5), ("major", (15, 4)), ("minor", "7"), ("type", "F")], ) def test_emptyget_facts(self): self.assertEqual(get_facts(None), {}) py-junos-eznc-2.7.3/tests/unit/facts/test_vmhost.py000066400000000000000000000051141475361112400224230ustar00rootroot00000000000000__author__ = "Stacy Smith" __credits__ = "Jeremy Schulman, Nitin Kumar" try: import unittest2 as unittest except: import unittest import nose2 from unittest.mock import patch, MagicMock import os from jnpr.junos import Device from ncclient.manager import Manager, make_device_handler from ncclient.transport import SSHSession class TestVmHost(unittest.TestCase): @patch("ncclient.manager.connect") def setUp(self, mock_connect): mock_connect.side_effect = self._mock_manager_setup self.dev = Device( host="1.1.1.1", user="rick", password="password123", gather_facts=False ) self.dev.open() @patch("jnpr.junos.Device.execute") def test_vmhost_true(self, mock_execute): mock_execute.side_effect = self._mock_manager_vmhost_true self.assertEqual(self.dev.facts["vmhost"], True) @patch("jnpr.junos.Device.execute") def test_vmhost_false(self, mock_execute): mock_execute.side_effect = self._mock_manager_vmhost_false self.assertEqual(self.dev.facts["vmhost"], False) @patch("jnpr.junos.Device.execute") def test_vmhost_linux(self, mock_execute): mock_execute.side_effect = self._mock_manager_vmhost_false self.dev.facts._cache["_is_linux"] = True self.assertEqual(self.dev.facts["vmhost"], False) @patch("jnpr.junos.Device.execute") def test_vmhost_error(self, mock_execute): mock_execute.side_effect = self._mock_manager_vmhost_error self.assertEqual(self.dev.facts["vmhost"], None) def _read_file(self, fname): from ncclient.xml_ import NCElement fpath = os.path.join(os.path.dirname(__file__), "rpc-reply", fname) foo = open(fpath).read() rpc_reply = NCElement( foo, self.dev._conn._device_handler.transform_reply() )._NCElement__doc[0] return rpc_reply def _mock_manager_setup(self, *args, **kwargs): if kwargs: device_params = kwargs["device_params"] device_handler = make_device_handler(device_params) session = SSHSession(device_handler) return Manager(session, device_handler) def _mock_manager_vmhost_true(self, *args, **kwargs): if args: return self._read_file("vmhost_true_" + args[0].tag + ".xml") def _mock_manager_vmhost_false(self, *args, **kwargs): if args: return self._read_file("vmhost_false_" + args[0].tag + ".xml") def _mock_manager_vmhost_error(self, *args, **kwargs): if args: return self._read_file("vmhost_error_" + args[0].tag + ".xml") py-junos-eznc-2.7.3/tests/unit/ofacts/000077500000000000000000000000001475361112400176505ustar00rootroot00000000000000py-junos-eznc-2.7.3/tests/unit/ofacts/__init__.py000066400000000000000000000000001475361112400217470ustar00rootroot00000000000000py-junos-eznc-2.7.3/tests/unit/ofacts/rpc-reply/000077500000000000000000000000001475361112400215655ustar00rootroot00000000000000py-junos-eznc-2.7.3/tests/unit/ofacts/rpc-reply/chassis_get-chassis-inventory.xml000066400000000000000000000031601475361112400302710ustar00rootroot00000000000000 node0 node1 Chassis FIREFLY-PERIMETER Midplane System IO Backplane 123456789 Routing Engine FIREFLY-PERIMETER RE FPC 0 Virtual FPC PIC 0 Virtual GE Power Supply 0 {disabled:node0} py-junos-eznc-2.7.3/tests/unit/ofacts/rpc-reply/chassis_get-configuration.xml000066400000000000000000000213151475361112400274520ustar00rootroot00000000000000 12.1X46-D15.3 firefly englab.juniper.net $1$kmSqRIU6$9EogG7ow0DWiww9mev8.b. rick 2000 super-user $1$wDDri7eJ$2Ot4pfE29PgVbeutIveov1 ge-0/0/0.0 * any messages any authorization interactive-commands interactive-commands https://ae1.juniper.net/junos/key_retrieval ge-0/0/0 0
10.0.0.31/24
ge-0/0/1 0
192.168.2.1/24
0.0.0.0/0 10.0.0.1 untrust-screen 1024 200 1024 2048 2000 20 trust trust default-permit any any any trust untrust default-permit any any any untrust trust default-deny any any any trust untrust untrust-screen ge-0/0/0.0 http https ssh telnet dhcp netconf
py-junos-eznc-2.7.3/tests/unit/ofacts/rpc-reply/get-chassis-cluster-status.xml000066400000000000000000000020401475361112400275150ustar00rootroot00000000000000 1 1 0 1 node0 100 primary no no node1 0 lost n/a n/a {primary:node0} py-junos-eznc-2.7.3/tests/unit/ofacts/rpc-reply/get-route-engine-information.xml000066400000000000000000000077601475361112400300220ustar00rootroot00000000000000 node0 OK 44 degrees C / 111 degrees F 1024 543 53 560 325 58 464 218 47 33 0 66 0 0 RE-SRX210H AAAW9949 2014-02-11 17:26:53 PST 62 days, 18 hours, 32 minutes, 15 seconds 0x200:normal shutdown 1.09 1.18 1.16 node1 OK 44 degrees C / 111 degrees F 1024 543 53 560 325 58 464 218 47 33 0 66 0 0 RE-SRX210H AAAW9949 2014-02-11 17:26:53 PST 62 days, 18 hours, 32 minutes, 15 seconds 0x200:normal shutdown 1.09 1.18 1.16 {primary:node0} py-junos-eznc-2.7.3/tests/unit/ofacts/rpc-reply/get-route-engine-information_master.xml000066400000000000000000000050401475361112400313620ustar00rootroot00000000000000 0 master master (default) OK 28 degrees C / 82 degrees F 29 degrees C / 84 degrees F 3313 16384 28 0 0 3 1 96 RE-S-1800x2 9009127879 2014-04-14 19:46:53 PDT 16 hours, 52 minutes Router rebooted after a normal shutdown. 0.11 0.13 0.13 1 backup backup (default) OK 27 degrees C / 80 degrees F 3313 23 0 0 0 0 99 RE-S-1800x2 9009132008 2014-04-04 23:27:56 PDT 10 days, 13 hours, 10 minutes, 46 seconds Router rebooted after a normal shutdown. py-junos-eznc-2.7.3/tests/unit/ofacts/rpc-reply/get-route-engine-information_multi.xml000066400000000000000000000236171475361112400312330ustar00rootroot00000000000000 scc-re0 0 master master (default) OK 38 degrees C / 100 degrees F 55 degrees C / 131 degrees F 2048 2048 30 85 0 14 1 0 RE-4.0 P13004100274 2014-04-15 10:02:47 PDT 4 hours, 43 minutes, 40 seconds Router rebooted after a normal shutdown. 1.10 0.57 0.34 1 backup backup (default) OK 38 degrees C / 100 degrees F 42 degrees C / 107 degrees F 2048 2048 26 25 0 25 2 48 RE-4.0 P13004100124 2014-04-15 10:02:41 PDT 4 hours, 43 minutes, 29 seconds Router rebooted after a normal shutdown. 1.16 0.45 0.21 lcc0-re0 0 master master (default) OK 40 degrees C / 104 degrees F 47 degrees C / 116 degrees F 3584 4096 16 0 0 2 0 97 RE-A-2000 1000702809 2014-04-15 10:00:40 PDT 4 hours, 45 minutes, 46 seconds Router rebooted after a normal shutdown. 0.03 0.19 0.15 1 backup backup (default) OK 39 degrees C / 102 degrees F 47 degrees C / 116 degrees F 3584 4096 15 0 0 0 1 99 RE-A-2000 1000697652 2014-04-15 09:59:49 PDT 4 hours, 46 minutes, 27 seconds Router rebooted after a normal shutdown. 0.03 0.15 0.10 lcc1-re0 0 master master (default) OK 42 degrees C / 107 degrees F 51 degrees C / 123 degrees F 3584 4096 15 0 0 2 1 97 RE-A-2000 1000697686 2014-04-15 10:00:03 PDT 4 hours, 46 minutes, 22 seconds Router rebooted after a normal shutdown. 0.03 0.19 0.14 1 backup backup (default) OK 39 degrees C / 102 degrees F 44 degrees C / 111 degrees F 3584 4096 15 0 0 0 0 99 RE-A-2000 1000697696 2014-04-15 10:00:26 PDT 4 hours, 45 minutes, 48 seconds Router rebooted after a normal shutdown. 0.03 0.15 0.12 py-junos-eznc-2.7.3/tests/unit/ofacts/rpc-reply/get-software-information.xml000066400000000000000000000272761475361112400272570ustar00rootroot00000000000000 re0 wf-kiwi mx960 mx960 junos JUNOS Base OS boot [12.3R6.6] jbase JUNOS Base OS Software Suite [12.3R6.6] jkernel JUNOS Kernel Software Suite [12.3R6.6] jcrypto JUNOS Crypto Software Suite [12.3R6.6] jpfe-common JUNOS Packet Forwarding Engine Support (M/T/EX Common) [12.3R6.6] jpfe JUNOS Packet Forwarding Engine Support (MX Common) [12.3R6.6] jdocs JUNOS Online Documentation [12.3R6.6] jservices-aacl JUNOS Services AACL Container package [12.3R6.6] jservices-alg JUNOS Services Application Level Gateways [12.3R6.6] jservices-appid JUNOS AppId Services [12.3R6.6] jservices-bgf JUNOS Border Gateway Function package [12.3R6.6] jservices-cpcd JUNOS Services Captive Portal and Content Delivery Container package [12.3R6.6] jservices-hcm JUNOS Services HTTP Content Management package [12.3R6.6] jservices-idp JUNOS IDP Services [12.3R6.6] jservices-llpdf JUNOS Services LL-PDF Container package [12.3R6.6] jservices-nat JUNOS Services NAT [12.3R6.6] jservices-ptsp JUNOS Services PTSP Container package [12.3R6.6] jservices-rpm JUNOS Services RPM [12.3R6.6] jservices-sfw JUNOS Services Stateful Firewall [12.3R6.6] jservices-voice JUNOS Voice Services Container package [12.3R6.6] jservices-example JUNOS Services Example Container package [12.3R6.6] jservices-crypto-base JUNOS Services Crypto [12.3R6.6] jservices-ssl JUNOS Services SSL [12.3R6.6] jservices-ipsec JUNOS Services IPSec [12.3R6.6] jruntime JUNOS Runtime Software Suite [12.3R6.6] jplatform JUNOS platform Software Suite [12.3R6.6] jroute JUNOS Routing Software Suite [12.3R6.6] re1 wf-kiwi mx960 mx960 junos JUNOS Base OS boot [12.3R6.6] jbase JUNOS Base OS Software Suite [12.3R6.6] jkernel JUNOS Kernel Software Suite [12.3R6.6] jcrypto JUNOS Crypto Software Suite [12.3R6.6] jpfe-common JUNOS Packet Forwarding Engine Support (M/T/EX Common) [12.3R6.6] jpfe JUNOS Packet Forwarding Engine Support (MX Common) [12.3R6.6] jdocs JUNOS Online Documentation [12.3R6.6] jservices-aacl JUNOS Services AACL Container package [12.3R6.6] jservices-alg JUNOS Services Application Level Gateways [12.3R6.6] jservices-appid JUNOS AppId Services [12.3R6.6] jservices-bgf JUNOS Border Gateway Function package [12.3R6.6] jservices-cpcd JUNOS Services Captive Portal and Content Delivery Container package [12.3R6.6] jservices-hcm JUNOS Services HTTP Content Management package [12.3R6.6] jservices-idp JUNOS IDP Services [12.3R6.6] jservices-llpdf JUNOS Services LL-PDF Container package [12.3R6.6] jservices-nat JUNOS Services NAT [12.3R6.6] jservices-ptsp JUNOS Services PTSP Container package [12.3R6.6] jservices-rpm JUNOS Services RPM [12.3R6.6] jservices-sfw JUNOS Services Stateful Firewall [12.3R6.6] jservices-voice JUNOS Voice Services Container package [12.3R6.6] jservices-example JUNOS Services Example Container package [12.3R6.6] jservices-crypto-base JUNOS Services Crypto [12.3R6.6] jservices-ssl JUNOS Services SSL [12.3R6.6] jservices-ipsec JUNOS Services IPSec [12.3R6.6] jruntime JUNOS Runtime Software Suite [12.3R6.6] jplatform JUNOS platform Software Suite [12.3R6.6] jroute JUNOS Routing Software Suite [12.3R6.6] py-junos-eznc-2.7.3/tests/unit/ofacts/rpc-reply/get-software-information_RE0-RE0.xml000066400000000000000000000030201475361112400302660ustar00rootroot00000000000000 abc-re0 pyez txp txp junos-version Junos: 14.2R4 junos JUNOS Base OS boot [14.2R4] lcc0-re0 pyez-ddd0-re0 t100 t1600 junos-version Junos: 14.2R4 junos JUNOS Base OS boot [14.2R4] lcc2-re0 pyez-ldd2-re0 t100 t1600 junos-version Junos: 14.2R4 junos JUNOS Base OS boot [14.2R4] py-junos-eznc-2.7.3/tests/unit/ofacts/rpc-reply/get-virtual-chassis-information.xml000066400000000000000000000040551475361112400305340ustar00rootroot00000000000000 4b43.17d9.1dcf Prsnt 0 (FPC 0- 19) JN11CA3F9AFK mx2010 129 NA VC Master* 1 vcp-2/0/0 1 vcp-9/0/0 1 vcp-9/0/1 Prsnt 1 (FPC 20- 39) JN122D1DAAFJ mx2020 129 NA VC Backup 0 vcp-0/0/0 0 vcp-0/0/1 0 vcp-16/0/0 {master:member0-re0} py-junos-eznc-2.7.3/tests/unit/ofacts/rpc-reply/get-virtual-chassis-information_mmvcf.xml000066400000000000000000000043251475361112400317240ustar00rootroot00000000000000 f0e9.b6b2.378b Mixed Prsnt 0 (FPC 0) TA37134XXXXX qfx5100-48s-6q 128 Y F Master* 1 vcp-255/0/48 Prsnt 1 (FPC 1) PF37140XXXXX ex4300-24p 128 Y F Linecard 0 vcp-255/1/0 2 2 {master:0} py-junos-eznc-2.7.3/tests/unit/ofacts/test_chassis.py000066400000000000000000000052051475361112400227200ustar00rootroot00000000000000__author__ = "Nitin Kumar, Rick Sherman" __credits__ = "Jeremy Schulman" import unittest import nose2 from unittest.mock import patch, MagicMock from lxml import etree import os from jnpr.junos import Device from jnpr.junos.ofacts.chassis import facts_chassis as chassis from jnpr.junos.exception import ConnectNotMasterError from jnpr.junos.exception import RpcError from ncclient.manager import Manager, make_device_handler from ncclient.transport import SSHSession class TestChassis(unittest.TestCase): @patch("ncclient.manager.connect") @patch("jnpr.junos.device.warnings") def setUp(self, mock_warnings, mock_connect): mock_connect.side_effect = self._mock_manager self.dev = Device( host="1.1.1.1", user="rick", password="password123", gather_facts=False, fact_style="old", ) self.dev.open() self.facts = {} @patch("jnpr.junos.Device.execute") def test_2RE_true(self, mock_execute): mock_execute.side_effect = self._mock_manager chassis(self.dev, self.facts) self.assertTrue(self.facts["2RE"]) def test_chassis_exception_ConnectNotMasterError(self): xmldata = etree.XML("test") self.dev.rpc.get_chassis_inventory = MagicMock(side_effect=xmldata) self.assertRaises(ConnectNotMasterError, chassis, self.dev, self.facts) def test_chassis_exception_RuntimeError(self): xmldata = etree.XML("test") self.dev.rpc.get_chassis_inventory = MagicMock(side_effect=xmldata) self.assertRaises(RuntimeError, chassis, self.dev, self.facts) def test_chassis_exception_RpcError(self): xmldata = etree.XML("") self.dev.rpc.get_chassis_inventory = MagicMock(side_effect=xmldata) self.assertRaises(RpcError, chassis, self.dev, self.facts) def _read_file(self, fname): from ncclient.xml_ import NCElement fpath = os.path.join(os.path.dirname(__file__), "rpc-reply", fname) foo = open(fpath).read() rpc_reply = NCElement( foo, self.dev._conn._device_handler.transform_reply() )._NCElement__doc[0] return rpc_reply def _mock_manager(self, *args, **kwargs): if kwargs: device_params = kwargs["device_params"] device_handler = make_device_handler(device_params) session = SSHSession(device_handler) return Manager(session, device_handler) if args: return self._read_file("chassis_" + args[0].tag + ".xml") py-junos-eznc-2.7.3/tests/unit/ofacts/test_domain.py000066400000000000000000000057601475361112400225400ustar00rootroot00000000000000__author__ = "Nitin Kumar, Rick Sherman" __credits__ = "Jeremy Schulman" import unittest import nose2 from unittest.mock import patch, MagicMock from lxml import etree from jnpr.junos.ofacts.domain import facts_domain from jnpr.junos import Device from jnpr.junos.exception import RpcError class TestDomain(unittest.TestCase): @patch("ncclient.manager.connect") @patch("jnpr.junos.device.warnings") def setUp(self, mock_warnings, mock_connect): self.dev = Device( host="1.1.1.1", user="rick", password="password123", gather_facts=False, fact_style="old", ) self.dev.open() self.facts = {} @patch("jnpr.junos.ofacts.domain.FS.cat") def test_resolv_conf(self, mock_fs_cat): mock_fs_cat.return_value = """# domain juniper.net search englab.juniper.net spglab.juniper.net juniper.net jnpr.net nameserver 10.11.12.13 """ self.facts["hostname"] = "test" facts_domain(self.dev, self.facts) self.assertEqual(self.facts["domain"], "juniper.net") self.assertEqual(self.facts["fqdn"], "test.juniper.net") @patch("jnpr.junos.ofacts.domain.FS.cat") def test_resolv_conf_no_domain(self, mock_fs_cat): mock_fs_cat.return_value = """ search englab.juniper.net spglab.juniper.net juniper.net jnpr.net nameserver 10.11.12.13 """ self.facts["hostname"] = "test" facts_domain(self.dev, self.facts) self.assertEqual(self.facts["domain"], None) self.assertEqual(self.facts["fqdn"], "test") @patch("jnpr.junos.ofacts.domain.FS.cat") def test_resolv_conf_file_absent_under_etc(self, mock_fs_cat): mock_fs_cat.side_effect = [None, "domain juniper.net"] self.facts["hostname"] = "test" facts_domain(self.dev, self.facts) self.assertEqual(self.facts["domain"], "juniper.net") self.assertEqual(self.facts["fqdn"], "test.juniper.net") def test_domain_in_configuration(self): xmldata = etree.XML( """ testing.net """ ) self.dev.rpc.get_config = MagicMock(side_effect=xmldata) self.facts["hostname"] = "test" facts_domain(self.dev, self.facts) self.assertEqual(self.facts["domain"], "testing.net") self.assertEqual(self.facts["fqdn"], "test.testing.net") @patch("jnpr.junos.ofacts.domain.FS.cat") def test_domain_rpc_error(self, mock_fs_cat): self.dev.rpc.get_config = MagicMock(side_effect=RpcError) mock_fs_cat.return_value = """# domain juniper.net search englab.juniper.net spglab.juniper.net juniper.net jnpr.net nameserver 10.11.12.13 """ self.facts["hostname"] = "test" facts_domain(self.dev, self.facts) self.assertEqual(self.facts["domain"], "juniper.net") self.assertEqual(self.facts["fqdn"], "test.juniper.net") py-junos-eznc-2.7.3/tests/unit/ofacts/test_ifd_style.py000066400000000000000000000016601475361112400232460ustar00rootroot00000000000000__author__ = "Nitin Kumar, Rick Sherman" __credits__ = "Jeremy Schulman" import unittest from unittest.mock import patch import nose2 from jnpr.junos import Device from jnpr.junos.ofacts.ifd_style import facts_ifd_style as ifd_style class TestIFDStyle(unittest.TestCase): @patch("jnpr.junos.device.warnings") def setUp(self, mock_warnings): self.facts = {} self.dev = Device( host="1.1.1.1", user="rick", password="password123", gather_facts=False, fact_style="old", ) def test_ifd_style_if_condition(self): self.facts["personality"] = "SWITCH" ifd_style(self.dev, self.facts) self.assertEqual(self.facts["ifd_style"], "SWITCH") def test_ifd_style_else_condition(self): self.facts["personality"] = "TEXT" ifd_style(self.dev, self.facts) self.assertEqual(self.facts["ifd_style"], "CLASSIC") py-junos-eznc-2.7.3/tests/unit/ofacts/test_personality.py000066400000000000000000000054211475361112400236340ustar00rootroot00000000000000__author__ = "Nitin Kumar, Rick Sherman" __credits__ = "Jeremy Schulman" import unittest from unittest.mock import patch import nose2 from jnpr.junos import Device from jnpr.junos.ofacts.personality import facts_personality as personality class TestPersonality(unittest.TestCase): @patch("jnpr.junos.device.warnings") def setUp(self, mock_warnings): self.facts = {} self.dev = Device( host="1.1.1.1", user="rick", password="password123", gather_facts=False, fact_style="old", ) def test_virtual_hassis(self): self.facts["model"] = "Virtual Chassis" self.facts["RE0"] = {"model": "QFX5100"} personality(self.dev, self.facts) self.assertEqual(self.facts["personality"], "SWITCH") def test_m_ex_qfx_series(self): self.facts["model"] = "QFX5100" personality(self.dev, self.facts) self.assertEqual(self.facts["personality"], "SWITCH") def test_mx_series(self): self.facts["model"] = "MX80" personality(self.dev, self.facts) self.assertEqual(self.facts["personality"], "MX") def test_vmx_series(self): self.facts["model"] = "vMX80" personality(self.dev, self.facts) self.assertEqual(self.facts["personality"], "MX") self.assertTrue(self.facts["virtual"]) def test_vjx_series(self): self.facts["model"] = "VJX480" personality(self.dev, self.facts) self.assertEqual(self.facts["personality"], "SRX_BRANCH") self.assertTrue(self.facts["virtual"]) def test_m_series(self): self.facts["model"] = "M7i" personality(self.dev, self.facts) self.assertEqual(self.facts["personality"], "M") def test_t_series(self): self.facts["model"] = "T320" personality(self.dev, self.facts) self.assertEqual(self.facts["personality"], "T") def test_ptx_series(self): self.facts["model"] = "PTX5000" personality(self.dev, self.facts) self.assertEqual(self.facts["personality"], "PTX") def test_srx_series(self): self.facts["model"] = "SRX210" personality(self.dev, self.facts) self.assertEqual(self.facts["personality"], "SRX_BRANCH") def test_srx_high_series(self): self.facts["model"] = "SRX5600" personality(self.dev, self.facts) self.assertEqual(self.facts["personality"], "SRX_HIGHEND") def test_personality_olive(self): self.facts["model"] = "olive" personality(self.dev, self.facts) self.assertEqual(self.facts["personality"], "OLIVE") def test_invalid_series(self): self.facts["model"] = "invalid" personality(self.dev, self.facts) self.assertEqual(self.facts["personality"], "UNKNOWN") py-junos-eznc-2.7.3/tests/unit/ofacts/test_routing_engines.py000066400000000000000000000104301475361112400244560ustar00rootroot00000000000000__author__ = "Nitin Kumar, Rick Sherman" __credits__ = "Jeremy Schulman" import unittest import nose2 from unittest.mock import patch, MagicMock import os import sys from jnpr.junos import Device from jnpr.junos.ofacts.routing_engines import facts_routing_engines as routing_engines from ncclient.manager import Manager, make_device_handler from ncclient.transport import SSHSession class TestRoutingEngines(unittest.TestCase): @patch("ncclient.manager.connect") @patch("jnpr.junos.device.warnings") def setUp(self, mock_warnings, mock_connect): mock_connect.side_effect = self._mock_manager self.dev = Device( host="1.1.1.1", user="rick", password="password123", gather_facts=False, fact_style="old", ) self.dev.open() self.facts = {} self.mode = "" self.vc = False self.vct = False self.vcf = False @patch("jnpr.junos.Device.execute") @unittest.skipIf(sys.platform == "win32", "will work for windows in coming days") def test_multi_re_vc(self, mock_execute): mock_execute.side_effect = self._mock_manager self.mode = "multi" self.vc = True routing_engines(self.dev, self.facts) self.assertTrue(self.facts["vc_capable"]) self.assertTrue(self.facts["2RE"]) self.assertEqual(self.facts["RE0-RE1"]["mastership_state"], "backup") # This test is for an issue where a MX may return nothing for the vc rpc @patch("jnpr.junos.Device.execute") def test_vc_info_true(self, mock_execute): mock_execute.side_effect = self._mock_manager self.mode = "multi" self.vc = True self.vct = True routing_engines(self.dev, self.facts) self.assertFalse(self.facts["vc_capable"]) self.assertTrue(self.facts["2RE"]) self.assertEqual(self.facts["RE1"]["mastership_state"], "backup") @patch("jnpr.junos.Device.execute") @unittest.skipIf(sys.platform == "win32", "will work for windows in coming days") def test_mixed_mode_vcf(self, mock_execute): mock_execute.side_effect = self._mock_manager self.mode = "multi" self.vc = True self.vcf = True routing_engines(self.dev, self.facts) self.assertTrue(self.facts["vc_fabric"]) self.assertEqual(self.facts["vc_mode"], "Mixed") @patch("jnpr.junos.Device.execute") def test_multi_instance(self, mock_execute): mock_execute.side_effect = self._mock_manager self.mode = "multi" routing_engines(self.dev, self.facts) self.assertTrue(self.facts["2RE"]) @patch("jnpr.junos.Device.execute") def test_master(self, mock_execute): mock_execute.side_effect = self._mock_manager self.mode = "master" routing_engines(self.dev, self.facts) self.assertEqual(self.facts["RE0"]["mastership_state"], "master") @patch("jnpr.junos.Device.execute") def test_routing_engine_exception_ret_none(self, mock_execute): mock_execute.side_effect = self._mock_manager self.dev.rpc.get_route_engine_information = MagicMock(side_effect=ValueError) self.assertEqual(routing_engines(self.dev, self.facts), None) def _read_file(self, fname): from ncclient.xml_ import NCElement fpath = os.path.join(os.path.dirname(__file__), "rpc-reply", fname) foo = open(fpath).read() rpc_reply = NCElement( foo, self.dev._conn._device_handler.transform_reply() )._NCElement__doc[0] return rpc_reply def _mock_manager(self, *args, **kwargs): if kwargs: device_params = kwargs["device_params"] device_handler = make_device_handler(device_params) session = SSHSession(device_handler) return Manager(session, device_handler) if args: if self.vc is True and args[0].tag == "get-virtual-chassis-information": if self.vct is True: return True elif self.vcf is True: return self._read_file("get-virtual-chassis-information_mmvcf.xml") else: return self._read_file("get-virtual-chassis-information.xml") return self._read_file(args[0].tag + "_" + self.mode + ".xml") py-junos-eznc-2.7.3/tests/unit/ofacts/test_srx_cluster.py000066400000000000000000000051111475361112400236340ustar00rootroot00000000000000__author__ = "Nitin Kumar, Rick Sherman" __credits__ = "Jeremy Schulman" import unittest import nose2 from unittest.mock import patch import os from jnpr.junos import Device from jnpr.junos.ofacts.srx_cluster import facts_srx_cluster as srx_cluster from ncclient.manager import Manager, make_device_handler from ncclient.transport import SSHSession class TestSrxCluster(unittest.TestCase): @patch("ncclient.manager.connect") @patch("jnpr.junos.device.warnings") def setUp(self, mock_warnings, mock_connect): mock_connect.side_effect = self._mock_manager self.dev = Device( host="1.1.1.1", user="rick", password="password123", gather_facts=False, fact_style="old", ) self.dev.open() self.facts = {} @patch("jnpr.junos.Device.execute") def test_srx_cluster(self, mock_execute): mock_execute.side_effect = self._mock_manager self.facts["personality"] = "SRX" self.facts["master"] = ["RE0"] srx_cluster(self.dev, self.facts) self.assertTrue(self.facts["srx_cluster"]) @patch("jnpr.junos.device.warnings") def test_srx_cluster_none(self, mock_warnings): self.facts["personality"] = "MX" self.assertEqual(srx_cluster(self.dev, self.facts), None) @patch("jnpr.junos.Device.execute") def test_srx_cluster_no_node(self, mock_execute): mock_execute.side_effect = self._mock_manager self.facts["personality"] = "SRX" srx_cluster(self.dev, self.facts) self.assertTrue(self.facts["srx_cluster"]) @patch("jnpr.junos.Device.execute") def test_srx_cluster_node(self, mock_execute): mock_execute.side_effect = self._mock_manager self.facts["personality"] = "SRX" self.facts["master"] = ["RE1"] srx_cluster(self.dev, self.facts) self.assertTrue(self.facts["srx_cluster"]) def _read_file(self, fname): from ncclient.xml_ import NCElement fpath = os.path.join(os.path.dirname(__file__), "rpc-reply", fname) foo = open(fpath).read() rpc_reply = NCElement( foo, self.dev._conn._device_handler.transform_reply() )._NCElement__doc[0] return rpc_reply def _mock_manager(self, *args, **kwargs): if kwargs: device_params = kwargs["device_params"] device_handler = make_device_handler(device_params) session = SSHSession(device_handler) return Manager(session, device_handler) if args: return self._read_file(args[0].tag + ".xml") py-junos-eznc-2.7.3/tests/unit/ofacts/test_switch_style.py000066400000000000000000000033051475361112400240030ustar00rootroot00000000000000__author__ = "Nitin Kumar, Rick Sherman" __credits__ = "Jeremy Schulman" import unittest from unittest.mock import patch import nose2 from jnpr.junos import Device from jnpr.junos.ofacts.switch_style import facts_switch_style as switch_style class TestSwitchStyle(unittest.TestCase): @patch("jnpr.junos.device.warnings") def setUp(self, mock_warnings): self.facts = {} self.dev = Device( host="1.1.1.1", user="rick", password="password123", gather_facts=False, fact_style="old", ) def test_switch_style_mx_srx(self): self.facts["personality"] = "SRX_HIGHEND" switch_style(self.dev, self.facts) self.assertEqual(self.facts["switch_style"], "BRIDGE_DOMAIN") def test_switch_style_model_firefly(self): self.facts["personality"] = "SWITCH" self.facts["model"] = "FIReFly" switch_style(self.dev, self.facts) self.assertEqual(self.facts["switch_style"], "NONE") def test_switch_style_model_ex9000(self): self.facts["personality"] = "SWITCH" self.facts["model"] = "EX9000" switch_style(self.dev, self.facts) self.assertEqual(self.facts["switch_style"], "VLAN_L2NG") def test_switch_style_model_not_specific(self): self.facts["personality"] = "SWITCH" self.facts["model"] = "abc" switch_style(self.dev, self.facts) self.assertEqual(self.facts["switch_style"], "VLAN") def test_switch_style_persona_not_specific(self): self.facts["personality"] = "PTX" self.facts["model"] = "abc" switch_style(self.dev, self.facts) self.assertEqual(self.facts["switch_style"], "NONE") py-junos-eznc-2.7.3/tests/unit/ofacts/test_swver.py000066400000000000000000000110531475361112400224270ustar00rootroot00000000000000__author__ = "Nitin Kumar, Rick Sherman" __credits__ = "Jeremy Schulman" try: import unittest2 as unittest except ImportError: import unittest import nose2 from unittest.mock import patch, MagicMock import os from jnpr.junos import Device from jnpr.junos.ofacts.swver import facts_software_version as software_version from jnpr.junos.ofacts.swver import _get_swver from ncclient.manager import Manager, make_device_handler from ncclient.transport import SSHSession from jnpr.junos.exception import RpcError class TestSwver(unittest.TestCase): @patch("ncclient.manager.connect") @patch("jnpr.junos.device.warnings") def setUp(self, mock_warnings, mock_connect): mock_connect.side_effect = self._mock_manager self.dev = Device( host="1.1.1.1", user="rick", password="password123", gather_facts=False, fact_style="old", ) self.dev.open() self.facts = {} self.facts["vc_capable"] = False def test_get_swver_vc(self): self.dev.rpc.cli = MagicMock() self.facts["vc_capable"] = True _get_swver(self.dev, self.facts) self.dev.rpc.cli.assert_called_with("show version all-members", format="xml") def test_get_swver_vc_capable_standalone(self): def raise_ex(*args): if args[0] == "show version all-members": raise RpcError() self.dev.rpc.cli = MagicMock( side_effect=lambda *args, **kwargs: raise_ex(*args) ) self.facts["vc_capable"] = True _get_swver(self.dev, self.facts) self.dev.rpc.cli.assert_called_with( "show version invoke-on all-routing-engines", format="xml" ) @patch("jnpr.junos.Device.execute") def test_swver(self, mock_execute): mock_execute.side_effect = self._mock_manager self.facts["master"] = "RE0" software_version(self.dev, self.facts) self.assertEqual(self.facts["version"], "12.3R6.6") @patch("jnpr.junos.Device.execute") def test_swver_f_master_list(self, mock_execute): mock_execute.side_effect = self._mock_manager self.facts["master"] = ["RE0", "RE1"] software_version(self.dev, self.facts) self.assertEqual(self.facts["version"], "12.3R6.6") @patch("jnpr.junos.Device.execute") def test_swver_hostname_none(self, mock_execute): mock_execute.side_effect = self._mock_manager self.facts["master"] = "RE5" self.facts["version_RE5"] = "15.3R6.6" software_version(self.dev, self.facts) self.assertEqual(self.facts["version"], "15.3R6.6") @patch("jnpr.junos.Device.execute") def test_swver_txp_master_list(self, mock_execute): mock_execute.side_effect = self._mock_manager self.facts["master"] = ["RE0", "RE0", "RE1", "RE2", "RE3"] self.facts["version_RE0-RE0"] = "14.2R4" software_version(self.dev, self.facts) self.assertEqual(self.facts["version"], "14.2R4") # --> JLS, there should always be a facts['master'] assigned. # @patch('jnpr.junos.Device.execute') # def test_swver_master_none(self, mock_execute): # mock_execute.side_effect = self._mock_manager # self.facts['master'] = None # software_version(self.dev, self.facts) # self.assertEqual(self.facts['version'], '12.3R6.6') @patch("jnpr.junos.Device.execute") @patch("jnpr.junos.facts.get_software_information.re.findall") def test_swver_exception_handling(self, mock_re_findall, mock_execute): mock_execute.side_effect = self._mock_manager mock_re_findall.side_effect = IndexError self.facts["master"] = "RE0" software_version(self.dev, self.facts) self.assertEqual(self.facts["version"], "0.0I0.0") def _read_file(self, fname): from ncclient.xml_ import NCElement fpath = os.path.join(os.path.dirname(__file__), "rpc-reply", fname) foo = open(fpath).read() rpc_reply = NCElement( foo, self.dev._conn._device_handler.transform_reply() )._NCElement__doc[0] return rpc_reply def _mock_manager(self, *args, **kwargs): if kwargs: device_params = kwargs["device_params"] device_handler = make_device_handler(device_params) session = SSHSession(device_handler) return Manager(session, device_handler) if args: if "version_RE0-RE0" in self.facts: return self._read_file(args[0].tag + "_RE0-RE0.xml") return self._read_file(args[0].tag + ".xml") py-junos-eznc-2.7.3/tests/unit/rpc-reply/000077500000000000000000000000001475361112400203065ustar00rootroot00000000000000py-junos-eznc-2.7.3/tests/unit/rpc-reply/get-chassis-inventory.xml000066400000000000000000000023161475361112400252770ustar00rootroot00000000000000 Chassis aaf5fe5f9b88 FIREFLY-PERIMETER Midplane System IO Routing Engine FIREFLY-PERIMETER RE FPC 0 Virtual FPC PIC 0 Virtual GE Power Supply 0 py-junos-eznc-2.7.3/tests/unit/rpc-reply/get-configuration.json000066400000000000000000000016011475361112400246230ustar00rootroot00000000000000 { "configuration" : { "@" : { "junos:changed-seconds" : "1492754952", "junos:changed-localtime" : "2017-04-21 11:39:12 IST" }, "system" : { "services" : { "netconf" : { "ssh" : { "port" : 830 }, "traceoptions" : { "file" : { "filename" : "netconf-ops.log", "size" : 3m, "files" : 20, "world-readable" : [null] }, "flag" : [ { "name" : "all" } ] } } } } } } py-junos-eznc-2.7.3/tests/unit/rpc-reply/get-configuration.xml000066400000000000000000000212331475361112400244550ustar00rootroot00000000000000 12.1X46-D15.3 firefly $1$kmSqRIU6$9EogG7ow0DWiww9mev8.b. rick 2000 super-user $1$wDDri7eJ$2Ot4pfE29PgVbeutIveov1 ge-0/0/0.0 * any messages any authorization interactive-commands interactive-commands https://ae1.juniper.net/junos/key_retrieval ge-0/0/0 0
10.0.0.31/24
ge-0/0/1 0
192.168.2.1/24
0.0.0.0/0 10.0.0.1 untrust-screen 1024 200 1024 2048 2000 20 trust trust default-permit any any any trust untrust default-permit any any any untrust trust default-deny any any any trust untrust untrust-screen ge-0/0/0.0 http https ssh telnet dhcp netconf
py-junos-eznc-2.7.3/tests/unit/rpc-reply/get-configuration_bgp_openconfig.xml000066400000000000000000000006071475361112400275160ustar00rootroot00000000000000 10.10.0.1 OC 110 py-junos-eznc-2.7.3/tests/unit/rpc-reply/get-index-error.xml000066400000000000000000000001221475361112400240360ustar00rootroot00000000000000 py-junos-eznc-2.7.3/tests/unit/rpc-reply/get-permission-denied.xml000066400000000000000000000006111475361112400252210ustar00rootroot00000000000000 error get-permission-denied permission denied py-junos-eznc-2.7.3/tests/unit/rpc-reply/get-route-engine-information.xml000066400000000000000000000031111475361112400265250ustar00rootroot00000000000000 Testing 2048 819 40 1150 460 40 898 350 39 0 0 0 0 100 FIREFLY-PERIMETER RE 2014-03-26 13:15:20 UTC 6 hours, 29 minutes, 30 seconds Router rebooted after a normal shutdown. 0.00 0.00 0.00 py-junos-eznc-2.7.3/tests/unit/rpc-reply/get-route-information.json000066400000000000000000000061761475361112400254510ustar00rootroot00000000000000 { "route-information" : [ { "attributes" : {"xmlns" : "http://xml.juniper.net/junos/16.1I0/junos-routing"}, "route-table" : [ { "comment" : "keepalive", "table-name" : [ { "data" : "inet.0" } ], "destination-count" : [ { "data" : "10" } ], "total-route-count" : [ { "data" : "10" } ], "active-route-count" : [ { "data" : "9" } ], "holddown-route-count" : [ { "data" : "0" } ], "hidden-route-count" : [ { "data" : "1" } ], "rt" : [ { "attributes" : {"junos:style" : "brief"}, "rt-destination" : [ { "data" : "0.0.0.0/0" } ], "rt-entry" : [ { "active-tag" : [ { "data" : "*" } ], "current-active" : [ { "data" : [null] } ], "last-active" : [ { "data" : [null] } ], "protocol-name" : [ { "data" : "Static" } ], "preference" : [ { "data" : "5" } ], "age" : [ { "data" : "19:56:37", "attributes" : {"junos:seconds" : "71797"} } ], "nh" : [ { "selected-next-hop" : [ { "data" : [null] } ], "to" : [ { "data" : "10.209.63.254" } ], "via" : [ { "data" : "em0.0" } ] } ] } ] }}}} py-junos-eznc-2.7.3/tests/unit/rpc-reply/get-rpc-error.xml000066400000000000000000000013651475361112400235250ustar00rootroot00000000000000 dcd [edit interfaces ge-0/0/1] unit 2 Only unit 0 is valid for this encapsulation configuration check-out failed [edit] py-junos-eznc-2.7.3/tests/unit/rpc-reply/get-software-information.xml000066400000000000000000000007611475361112400257660ustar00rootroot00000000000000 firefly firefly-perimeter firefly-perimeter junos JUNOS Software Release [12.1X46-D15.3] py-junos-eznc-2.7.3/tests/unit/rpc-reply/get-system-core-dumps.xml000066400000000000000000000013231475361112400252040ustar00rootroot00000000000000 /var/crash/*core*: No such file or directory /var/tmp/*core*: No such file or directory /var/tmp/pics/*core*: No such file or directory /var/crash/kernel.*: No such file or directory /tftpboot/corefiles/*core*: No such file or directory py-junos-eznc-2.7.3/tests/unit/rpc-reply/get-system-uptime-information.xml000066400000000000000000000025221475361112400267560ustar00rootroot00000000000000 2017-06-29 16:59:47 PDT NTP CLOCK 2017-06-29 13:02:33 PDT 03:57:14 2017-06-29 13:04:52 PDT 03:54:55 2017-06-29 13:04:11 PDT 03:55:36 root 4:59PM 3:57 1 4.29 3.81 3.72 py-junos-eznc-2.7.3/tests/unit/rpc-reply/get-system-users-information.xml000066400000000000000000000034231475361112400266150ustar00rootroot00000000000000 { "system-users-information" : [ { "attributes" : {"xmlns" : "http://xml.juniper.net/junos/15.1I0/junos"}, "uptime-information" : [ { "date-time" : [ { "data" : "4:43AM", "attributes" : {"junos:seconds" : "1437468224"} } ], "up-time" : [ { "data" : "48 days, 22:58", "attributes" : {"junos:seconds" : "4229925"} } ], "active-user-count" : [ { "data" : "2", "attributes" : {"junos:format" : "2 users"} } ], "load-average-1" : [ { "data" : "0.00" } ], "load-average-5" : [ { "data" : "0.02" } ], "load-average-15" : [ { "data" : "0.00" } ], "user-table" : [ { "user-entry" : [ { "user" : [ { "data" : "regress" } ], "tty" : [ { "data" : "p0" } ], "from" : [ { "data" : "172.29.227.10" } ], "login-time" : [ { "data" : "4:28AM", "attributes" : {"junos:seconds" : "1437467296"} } ], "idle-time" : [ { "data" : "-", "attributes" : {"junos:seconds" : "24"} } ], "command" : [ { "data" : "cli" } ] }, { "user" : [ { "data" : "regress" } ], "tty" : [ { "data" : "p2" } ], "from" : [ { "data" : "bng-junos-d051.juniper.net" } ], "login-time" : [ { "data" : "03Jun15", "attributes" : {"junos:seconds" : "1433314876"} } ], "idle-time" : [ { "data" : "47days", "attributes" : {"junos:seconds" : "4143714"} } ], "command" : [ { "data" : "gdb /b/" } ] } ] } ] } ] } ] } py-junos-eznc-2.7.3/tests/unit/rpc-reply/get.xml000066400000000000000000000175651475361112400216250ustar00rootroot00000000000000 0 128.221.129.25 0 0 false false false false false 0 false 0 0 true 10.10.0.1 110 104 EXTERNAL (null) 0 false (null) IDLE 241491 0 MPBGP HALTED STOP true OC 10.10.0.1 true 0 0 0 0 0 0 0 90 30 0 90 0 false false unspecified 0 10.10.0.1 179 false 0 false false 0 zero-len false 1 false false false 16 16 false 120 300 true 0 false false HELPER_ONLY bgp-in bgp-out OC 110 104 EXTERNAL (null) 0 false (null) OC 0 0 0 90 30 0 0 false false unspecified false false false 0 zero-len false 1 false false false 16 16 false 120 300 true bgp-in bgp-out regress 57076 2017-02-20 17:50:23 IST 3d 22:00 py-junos-eznc-2.7.3/tests/unit/rpc-reply/load-configuration-error.xml000066400000000000000000000010521475361112400257410ustar00rootroot00000000000000 error system1 syntax error error } error recovery ignores input until this point py-junos-eznc-2.7.3/tests/unit/rpc-reply/show-cli-directory.xml000066400000000000000000000003271475361112400245610ustar00rootroot00000000000000 /cf/var/home/rick py-junos-eznc-2.7.3/tests/unit/rpc-reply/show-configuration-interfaces.xml000066400000000000000000000001241475361112400267730ustar00rootroot00000000000000 py-junos-eznc-2.7.3/tests/unit/rpc-reply/show-configuration.xml000066400000000000000000000071211475361112400246560ustar00rootroot00000000000000 ## Last commit: 2014-03-24 16:34:32 UTC by rick version 12.1X46-D15.3; system { host-name firefly; root-authentication { encrypted-password "$1$kmSqRIU6$9EogG7ow0DWiww9mev8.b."; ## SECRET-DATA } login { user rick { uid 2000; class super-user; authentication { encrypted-password "$1$wDDri7eJ$2Ot4pfE29PgVbeutIveov1"; ## SECRET-DATA } } } services { ssh; netconf { ssh; } web-management { http { interface ge-0/0/0.0; } } } syslog { user * { any emergency; } file messages { any any; authorization info; } file interactive-commands { interactive-commands any; } } license { autoupdate { url https://ae1.juniper.net/junos/key_retrieval; } } } interfaces { ge-0/0/0 { unit 0 { family inet { address 10.0.0.31/24; } } } ge-0/0/1 { unit 0 { family inet { address 192.168.2.1/24; } } } } routing-options { static { route 0.0.0.0/0 next-hop 10.0.0.1; } } security { screen { ids-option untrust-screen { icmp { ping-death; } ip { source-route-option; tear-drop; } tcp { syn-flood { alarm-threshold 1024; attack-threshold 200; source-threshold 1024; destination-threshold 2048; queue-size 2000; ## Warning: 'queue-size' is deprecated timeout 20; } land; } } } policies { from-zone trust to-zone trust { policy default-permit { match { source-address any; destination-address any; application any; } then { permit; } } } from-zone trust to-zone untrust { policy default-permit { match { source-address any; destination-address any; application any; } then { permit; } } } from-zone untrust to-zone trust { policy default-deny { match { source-address any; destination-address any; application any; } then { deny; } } } } zones { security-zone trust { tcp-rst; } security-zone untrust { screen untrust-screen; interfaces { ge-0/0/0.0 { host-inbound-traffic { system-services { http; https; ssh; telnet; dhcp; netconf; } } } } } } } py-junos-eznc-2.7.3/tests/unit/rpc-reply/show-interface-terse.json000066400000000000000000000067301475361112400252450ustar00rootroot00000000000000{"interface-information": [{"attributes": {"junos:style": "terse", "xmlns": "http://xml.juniper.net/junos/16.1I0/junos-interface"}, "physical-interface": [{"oper-status": [{"data": "up"}], "admin-status": [{"data": "up"}], "name": [{"data": "cbp0"}]}, {"oper-status": [{"data": "up"}], "admin-status": [{"data": "up"}], "name": [{"data": "demux0"}]}, {"oper-status": [{"data": "up"}], "admin-status": [{"data": "up"}], "name": [{"data": "dsc"}]}, {"oper-status": [{"data": "up"}], "logical-interface": [{"oper-status": [{"data": "up"}], "address-family": [{"address-family-name": [{"data": "inet"}], "interface-address": [{"ifa-local": [{"attributes": {"junos:emit": "emit"}, "data": "10.209.16.206/18"}]}]}], "admin-status": [{"data": "up"}], "filter-information": [{}], "name": [{"data": "em0.0"}]}], "admin-status": [{"data": "up"}], "name": [{"data": "em0"}]}, {"oper-status": [{"data": "up"}], "admin-status": [{"data": "up"}], "name": [{"data": "esi"}]}, {"oper-status": [{"data": "up"}], "admin-status": [{"data": "up"}], "name": [{"data": "gre"}]}, {"oper-status": [{"data": "up"}], "admin-status": [{"data": "up"}], "name": [{"data": "ipip"}]}, {"oper-status": [{"data": "up"}], "admin-status": [{"data": "up"}], "name": [{"data": "irb"}]}, {"oper-status": [{"data": "up"}], "logical-interface": [{"oper-status": [{"data": "up"}], "address-family": [{"address-family-name": [{"data": "inet"}], "interface-address": [{"ifa-local": [{"data": "127.0.0.1"}], "ifa-destination": [{"attributes": {"junos:emit": "emit"}, "data": "0/0"}]}]}], "admin-status": [{"data": "up"}], "filter-information": [{}], "name": [{"data": "lo0.0"}]}, {"oper-status": [{"data": "up"}], "address-family": [{"address-family-name": [{"data": "inet"}], "interface-address": [{"ifa-local": [{"data": "127.0.0.1"}], "ifa-destination": [{"attributes": {"junos:emit": "emit"}, "data": "0/0"}]}]}], "admin-status": [{"data": "up"}], "filter-information": [{}], "name": [{"data": "lo0.16384"}]}, {"oper-status": [{"data": "up"}], "address-family": [{"address-family-name": [{"data": "inet"}], "interface-address": [{"ifa-local": [{"data": "128.0.0.1"}], "ifa-destination": [{"attributes": {"junos:emit": "emit"}, "data": "0/0"}]}, {"ifa-local": [{"data": "128.0.0.4"}], "ifa-destination": [{"attributes": {"junos:emit": "emit"}, "data": "0/0"}]}]}, {"address-family-name": [{"data": "inet6"}], "interface-address": [{"ifa-local": [{"data": "fe80::42f2:e90f:fc0b:3b94"}], "ifa-destination": [{"attributes": {"junos:emit": "emit"}}]}]}], "admin-status": [{"data": "up"}], "filter-information": [{}], "name": [{"data": "lo0.16385"}]}], "admin-status": [{"data": "up"}], "name": [{"data": "lo0"}]}, {"oper-status": [{"data": "up"}], "admin-status": [{"data": "up"}], "name": [{"data": "lsi"}]}, {"oper-status": [{"data": "up"}], "admin-status": [{"data": "down"}], "name": [{"data": "mtun"}]}, {"oper-status": [{"data": "up"}], "admin-status": [{"data": "up"}], "name": [{"data": "pimd"}]}, {"oper-status": [{"data": "up"}], "admin-status": [{"data": "up"}], "name": [{"data": "pime"}]}, {"oper-status": [{"data": "up"}], "admin-status": [{"data": "up"}], "name": [{"data": "pip0"}]}, {"oper-status": [{"data": "up"}], "admin-status": [{"data": "up"}], "name": [{"data": "pp0"}]}, {"oper-status": [{"data": "up"}], "admin-status": [{"data": "up"}], "name": [{"data": "rbeb"}]}, {"oper-status": [{"data": "up"}], "admin-status": [{"data": "up"}], "name": [{"data": "tap"}]}, {"oper-status": [{"data": "up"}], "admin-status": [{"data": "up"}], "name": [{"data": "vtep"}]}]}]} py-junos-eznc-2.7.3/tests/unit/rpc-reply/show-interfaces-routing-instance-media-rpc.xml000066400000000000000000000004761475361112400312660ustar00rootroot00000000000000 all ge-0/0/0.0 py-junos-eznc-2.7.3/tests/unit/rpc-reply/show-interfaces-routing-instance-media.xml000066400000000000000000000064441475361112400305050ustar00rootroot00000000000000 ge-0/0/0.0 73 528 0x0 ENET2 0 0 sec_cam inet 1500 192.168.100/24 192.168.100.1 192.168.100.255 default py-junos-eznc-2.7.3/tests/unit/rpc-reply/show-interfaces-terse-asdf.xml000066400000000000000000000002141475361112400261610ustar00rootroot00000000000000 protocol: operation-failed error: device asdf not found py-junos-eznc-2.7.3/tests/unit/rpc-reply/show-system-alarms.xml000066400000000000000000000002301475361112400246020ustar00rootroot00000000000000 1 alarms currently active Alarm time Class Description 2014-04-17 09:09:21 UTC Minor Rescue configuration is not set py-junos-eznc-2.7.3/tests/unit/rpc-reply/show-system-uptime-rpc.xml000066400000000000000000000003461475361112400254200ustar00rootroot00000000000000 py-junos-eznc-2.7.3/tests/unit/templates/000077500000000000000000000000001475361112400203675ustar00rootroot00000000000000py-junos-eznc-2.7.3/tests/unit/templates/config-example.xml000066400000000000000000000001111475361112400240000ustar00rootroot00000000000000system { host-name {{ host_name }}; domain-name {{ domain_name }}; } py-junos-eznc-2.7.3/tests/unit/test_console.py000066400000000000000000000264171475361112400214560ustar00rootroot00000000000000try: import unittest2 as unittest except ImportError: import unittest from jnpr.junos.utils.config import Config import nose2 from unittest.mock import patch, MagicMock, call import re import sys import os from lxml import etree import six import socket from jnpr.junos.console import Console from jnpr.junos.transport.tty_netconf import tty_netconf from jnpr.junos.transport.tty_telnet import Terminal if sys.version < "3": builtin_string = "__builtin__" else: builtin_string = "builtins" class TestConsole(unittest.TestCase): @classmethod def setUpClass(cls): # Save object state cls.open = tty_netconf.open @classmethod def tearDownClass(cls): # Revert object state tty_netconf.open = cls.open @patch("jnpr.junos.transport.tty_telnet.Telnet._tty_open") @patch("jnpr.junos.transport.tty_telnet.telnetlib.Telnet.expect") @patch("jnpr.junos.transport.tty_telnet.Telnet.write") def setUp(self, mock_write, mock_expect, mock_open): tty_netconf.open = MagicMock() mock_expect.side_effect = [ (1, re.search(r"(?Pogin:\s*$)", "login: "), six.b("\r\r\n ogin:")), ( 2, re.search(r"(?Password:\s*$)", "password: "), six.b("\r\r\n password:"), ), ( 3, re.search(r"(?P%|#\s*$)", "junos % "), six.b("\r\r\nroot@device:~ # "), ), ] self.dev = Console(host="1.1.1.1", user="lab", password="lab123", mode="Telnet") self.dev.open() @patch("jnpr.junos.console.Console._tty_logout") def tearDown(self, mock_tty_logout): self.dev.close() def test_telnet_host_none(self): self.dev = Console(host=None, user="lab", password="lab123", mode="Telnet") self.assertTrue(self.dev.open()["failed"]) @patch("jnpr.junos.console.warnings") def test_telnet_old_fact_warning(self, mock_warn): self.dev = Console( host="1.1.1.1", user="lab", password="lab123", mode="Telnet", fact_style="old", ) mock_warn.assert_has_calls( [ call.warn( "fact-style old will be removed in a future release.", RuntimeWarning, ) ] ) @patch("jnpr.junos.transport.tty_telnet.Telnet._tty_open") @patch("jnpr.junos.transport.tty_telnet.telnetlib.Telnet.expect") @patch("jnpr.junos.transport.tty_telnet.Telnet.write") def test_login_bad_password(self, mock_write, mock_expect, mock_open): tty_netconf.open = MagicMock() mock_expect.side_effect = [ (1, re.search(r"(?Pogin:\s*$)", "login: "), six.b("\r\r\n ogin:")), ( 2, re.search(r"(?Password:\s*$)", "password: "), six.b("\r\r\n password:"), ), ( 3, re.search("(?Pogin incorrect)", "login incorrect"), six.b("\r\r\nlogin incorrect"), ), ] self.dev = Console(host="1.1.1.1", user="lab", password="lab123", mode="Telnet") self.assertRaises(StopIteration, self.dev.open) @patch("jnpr.junos.console.Console._tty_logout") @patch("jnpr.junos.transport.tty_telnet.Telnet._tty_open") @patch("jnpr.junos.transport.tty_telnet.telnetlib.Telnet.expect") @patch("jnpr.junos.transport.tty_telnet.Telnet.write") def test_with_context(self, mock_write, mock_expect, mock_open, mock_logout): tty_netconf.open = MagicMock() mock_expect.side_effect = [ (1, re.search(r"(?Pogin:\s*$)", "login: "), six.b("\r\r\n ogin:")), ( 2, re.search(r"(?Password:\s*$)", "password: "), six.b("\r\r\n password:"), ), ( 3, re.search(r"(?P%|#\s*$)", "junos % "), six.b("\r\r\nroot@device:~ # "), ), ] with Console( host="1.1.1.1", user="lab", password="lab123", mode="Telnet" ) as dev: self.assertTrue(isinstance(self.dev, Console)) @patch("jnpr.junos.console.Console._tty_login") def test_console_open_error(self, mock_tty_login): mock_tty_login.side_effect = RuntimeError self.assertRaises(RuntimeError, self.dev.open) def test_console_connected(self): self.assertTrue(self.dev.connected) self.assertFalse(self.dev._gather_facts) @patch("jnpr.junos.console.Console._tty_logout") def test_console_close_error(self, mock_logout): mock_logout.side_effect = RuntimeError self.assertRaises(RuntimeError, self.dev.close) @patch("jnpr.junos.console.Console._tty_logout") def test_console_close_socket_error(self, mock_logout): mock_logout.side_effect = socket.error self.assertRaises(socket.error, self.dev.close) @patch("jnpr.junos.console.Console._tty_logout") def test_console_close_socket_conn_reset(self, mock_logout): mock_logout.side_effect = socket.error("Connection reset by peer") self.dev.close() self.assertFalse(self.dev.connected) @patch("jnpr.junos.console.Console._tty_logout") def test_console_close_telnet_conn_closed(self, mock_logout): mock_logout.side_effect = EOFError("telnet connection closed") self.dev.close() self.assertFalse(self.dev.connected) @patch("jnpr.junos.transport.tty_telnet.Telnet") @patch("jnpr.junos.console.Console._tty_login") def test_console_tty_open_err(self, mock_login, mock_telnet): with patch( "jnpr.junos.transport.tty_telnet." "telnetlib.Telnet.open" ) as mock_open: mock_telnet.RETRY_OPEN = 1 mock_login.side_effect = ValueError self.dev._tty.LOGIN_RETRY = self.dev._tty.RETRY_OPEN = 1 self.assertRaises(ValueError, self.dev.open) @patch("jnpr.junos.transport.tty_serial.Serial._tty_open") @patch("jnpr.junos.transport.tty_serial.serial.Serial.readline") @patch("jnpr.junos.transport.tty_serial.Serial.write") def test_console_serial(self, mock_write, mock_expect, mock_open): tty_netconf.open = MagicMock() mock_expect.side_effect = [ six.b("\r\r\n Login:"), six.b("\r\r\n password:"), six.b("\r\r\nroot@device:~ # "), ] self.dev = Console(host="1.1.1.1", user="lab", password="lab123", mode="serial") self.dev.open() self.assertTrue(self.dev.connected) self.assertFalse(self.dev._gather_facts) def test_wrong_mode(self): dev = Console(host="1.1.1.1", user="lab", password="lab123", mode="testing") self.assertRaises(AttributeError, dev.open) @patch("jnpr.junos.transport.tty_telnet.Telnet._tty_close") def test_console_close_error_skip_logout(self, mock_close): mock_close.side_effect = RuntimeError self.assertRaises(RuntimeError, self.dev.close, skip_logout=True) @patch("jnpr.junos.transport.tty_netconf.tty_netconf.rpc") def test_console_zeroize(self, mock_zeroize): self.dev.zeroize() self.assertTrue(mock_zeroize.called) @patch("jnpr.junos.transport.tty_netconf.tty_netconf.rpc") @patch("jnpr.junos.console.FACT_LIST") @patch("jnpr.junos.device.warnings") def test_console_gather_facts(self, mock_warnings, mock_fact_list, mock_rpc): self.dev._fact_style = "old" from jnpr.junos.ofacts.session import facts_session mock_fact_list.__iter__.return_value = [facts_session] self.dev.facts_refresh() self.assertEqual(mock_rpc.call_count, 8) @patch("jnpr.junos.console.Console._tty_login") @patch("jnpr.junos.console.FACT_LIST") @patch("jnpr.junos.device.warnings") def test_console_gather_facts_true(self, mock_warnings, mock_fact_list, tty_login): self.dev._fact_style = "old" self.dev.facts = self.dev.ofacts from jnpr.junos.ofacts.session import facts_session mock_fact_list.__iter__.return_value = [facts_session] self.dev._gather_facts = True self.dev.open() self.assertEqual( self.dev.facts, { "2RE": False, "RE_hw_mi": False, "ifd_style": "CLASSIC", "serialnumber": "UNKNOWN", "model": "UNKNOWN", "vc_capable": False, "switch_style": "NONE", "personality": "UNKNOWN", }, ) @patch("jnpr.junos.transport.tty.sleep") @patch("ncclient.operations.rpc.RPCReply.parse") @patch("jnpr.junos.transport.tty_telnet.telnetlib.Telnet.write") @patch("jnpr.junos.transport.tty_netconf.select.select") @patch("jnpr.junos.transport.tty_telnet.telnetlib.Telnet.read_until") def test_load_console( self, mock_read_until, mock_select, mock_write, mock_parse, mock_sleep ): mock_select.return_value = ([self.dev._tty._rx], [], []) xml = """ F5-in testing mpls """ mock_read_until.return_value = six.b( """ ]]>]]>""" ) cu = Config(self.dev) op = cu.load(xml, format="xml") cu.commit() @patch("ncclient.operations.rpc.RPCReply.parse") @patch("jnpr.junos.transport.tty_netconf.tty_netconf._receive") @patch("jnpr.junos.transport.tty_telnet.Telnet.rawwrite") def test_console_rpc_call(self, mock_write, mock_rcv, mock_parse): self.dev._tty.nc.rpc = MagicMock(side_effect=self._mock_manager) op = self.dev.rpc.get_chassis_inventory() self.assertEqual(op.tag, "chassis-inventory") @patch("ncclient.operations.rpc.RPCReply.parse") @patch("jnpr.junos.transport.tty_netconf.tty_netconf._receive") @patch("jnpr.junos.transport.tty_telnet.Telnet.rawwrite") def test_console_rpc_call_exception(self, mock_write, mock_rcv, mock_parse): mock_rcv.return_value = "testing" op = self.dev.rpc.get_chassis_inventory() self.assertEqual(op.tag, "output") def test_timeout_getter_setter(self): self.dev.timeout = 1 self.assertEqual(1, self.dev.timeout) # below 2 function will be used in future. def _mock_manager(self, *args, **kwargs): if args: return self._read_file(etree.XML(args[0]).tag + ".xml") def _read_file(self, fname): from ncclient.xml_ import NCElement fpath = os.path.join(os.path.dirname(__file__), "rpc-reply", fname) with open(fpath) as fp: return fp.read() py-junos-eznc-2.7.3/tests/unit/test_decorators.py000066400000000000000000000374131475361112400221570ustar00rootroot00000000000000try: import unittest2 as unittest except ImportError: import unittest import nose2 from lxml.etree import XML from jnpr.junos.device import Device from jnpr.junos.utils.config import Config from jnpr.junos.exception import RpcError, ConfigLoadError from jnpr.junos.decorators import timeoutDecorator, normalizeDecorator from jnpr.junos.decorators import ignoreWarnDecorator from unittest.mock import patch, MagicMock, PropertyMock, call from ncclient.operations.rpc import RPCError from ncclient.manager import Manager, make_device_handler from ncclient.transport import SSHSession from ncclient.xml_ import qualify __author__ = "Rick Sherman" class Test_Decorators(unittest.TestCase): @patch("ncclient.manager.connect") def setUp(self, mock_connect): mock_connect.side_effect = self._mock_manager_setup self.dev = Device( host="1.1.1.1", user="rick", password="password123", gather_facts=False ) self.dev.open() def test_timeout(self): with patch( "jnpr.junos.Device.timeout", new_callable=PropertyMock ) as mock_timeout: mock_timeout.return_value = 30 def function(x): return x decorator = timeoutDecorator(function) decorator(self.dev, dev_timeout=10) calls = [call(), call(10), call(30)] mock_timeout.assert_has_calls(calls) def test_timeout_except(self): with patch( "jnpr.junos.Device.timeout", new_callable=PropertyMock ) as mock_timeout: mock_timeout.return_value = 30 def function(*args, **kwargs): raise Exception() decorator = timeoutDecorator(function) # test to ensure the exception is raised with self.assertRaises(Exception): decorator(self.dev, dev_timeout=10) calls = [call(), call(10), call(30)] # verify timeout was set/reset mock_timeout.assert_has_calls(calls) # Test default of true and passing true keyword def test_normalize_true_true(self): with patch( "jnpr.junos.Device.transform", new_callable=PropertyMock ) as mock_transform: self.dev._normalize = True def function(x): return x decorator = normalizeDecorator(function) decorator(self.dev, normalize=True) self.assertFalse(mock_transform.called) # Test default of true and passing true keyword and a func exception def test_normalize_true_true_except(self): with patch( "jnpr.junos.Device.transform", new_callable=PropertyMock ) as mock_transform: self.dev._normalize = True def function(*args, **kwargs): raise Exception() decorator = normalizeDecorator(function) with self.assertRaises(Exception): decorator(self.dev, normalize=True) self.assertFalse(mock_transform.called) # Test default of True and passing false keyword def test_normalize_true_false(self): with patch( "jnpr.junos.Device.transform", new_callable=PropertyMock ) as mock_transform: mock_transform.return_value = "o.g." self.dev._normalize = True def function(x): return x decorator = normalizeDecorator(function) decorator(self.dev, normalize=False) calls = [call(), call(self.dev._nc_transform), call("o.g.")] mock_transform.assert_has_calls(calls) # Test default of True and passing false keyword and a func exception def test_normalize_true_false_except(self): with patch( "jnpr.junos.Device.transform", new_callable=PropertyMock ) as mock_transform: mock_transform.return_value = "o.g." self.dev._normalize = True def function(*args, **kwargs): raise Exception() decorator = normalizeDecorator(function) with self.assertRaises(Exception): decorator(self.dev, normalize=False) calls = [call(), call(self.dev._nc_transform), call("o.g.")] mock_transform.assert_has_calls(calls) # Test default of false and passing true keyword def test_normalize_false_true(self): with patch( "jnpr.junos.Device.transform", new_callable=PropertyMock ) as mock_transform: mock_transform.return_value = "o.g." self.dev._normalize = False def function(x): return x decorator = normalizeDecorator(function) decorator(self.dev, normalize=True) calls = [call(), call(self.dev._norm_transform), call("o.g.")] # print mock_transform.call_args_list mock_transform.assert_has_calls(calls) # Test default of false and passing true keyword and a func exception def test_normalize_false_true_except(self): with patch( "jnpr.junos.Device.transform", new_callable=PropertyMock ) as mock_transform: mock_transform.return_value = "o.g." self.dev._normalize = False def function(*args, **kwargs): raise Exception() decorator = normalizeDecorator(function) with self.assertRaises(Exception): decorator(self.dev, normalize=True) calls = [call(), call(self.dev._norm_transform), call("o.g.")] # print mock_transform.call_args_list mock_transform.assert_has_calls(calls) # Test default of false and passing false keyword def test_normalize_false_false(self): with patch( "jnpr.junos.Device.transform", new_callable=PropertyMock ) as mock_transform: self.dev._normalize = False def function(x): return x decorator = normalizeDecorator(function) decorator(self.dev, normalize=False) self.assertFalse(mock_transform.called) # Test default with ignore_warning not present. def test_ignore_warning_missing(self): def method(self, x): return x decorator = ignoreWarnDecorator(method) response = decorator(self.dev, "foo") self.assertEqual("foo", response) # Test default with ignore_warning=False. def test_ignore_warning_false(self): def method(self, x): return x decorator = ignoreWarnDecorator(method) response = decorator(self.dev, "foo", ignore_warning=False) self.assertEqual("foo", response) # Test with ignore_warning=True and only warnings. def test_ignore_warning_true_3snf_warnings(self): self.dev._conn.rpc = MagicMock(side_effect=self._mock_manager_3snf_warnings) cu = Config(self.dev) config = """ delete interfaces ge-0/0/0 delete protocols ospf delete policy-options prefix-list foo """ self.assertTrue(cu.load(config, ignore_warning=True)) # Test with ignore_warning='statement not found' and 3 snf warnings. def test_ignore_warning_string_3snf_warnings(self): self.dev._conn.rpc = MagicMock(side_effect=self._mock_manager_3snf_warnings) cu = Config(self.dev) config = """ delete interfaces ge-0/0/0 delete protocols ospf delete policy-options prefix-list foo """ self.assertTrue(cu.load(config, ignore_warning="statement not found")) # Test with ignore_warning='statement not found', 1 snf warning, # and 1 error. def test_ignore_warning_string_1snf_warning_1err(self): self.dev._conn.rpc = MagicMock(side_effect=self._mock_manager_1snf_warning_1err) cu = Config(self.dev) config = """ delete interfaces ge-0/0/0 delete protcols ospf delete policy-options prefix-list foo """ with self.assertRaises(ConfigLoadError): cu.load(config, ignore_warning="statement not found") # Test with ignore_warning=True, RpcError with no errs attribute. # I haven't seen this from an actual device, so this is a very contrived # test. def test_ignore_warning_string_1snf_warning_1err(self): def method(self, x): rpc_error = RPCError(XML(""), errs=None) raise rpc_error decorator = ignoreWarnDecorator(method) with self.assertRaises(RPCError): decorator(self.dev, "foo", ignore_warning=True) # Test with ignore_warning=['foo', 'statement not found'] and # three statement not found warnings. def test_ignore_warning_list_3snf_warnings(self): self.dev._conn.rpc = MagicMock(side_effect=self._mock_manager_3snf_warnings) cu = Config(self.dev) config = """ delete interfaces ge-0/0/0 delete protocols ospf delete policy-options prefix-list foo """ self.assertTrue(cu.load(config, ignore_warning=["foo", "statement not found"])) # Test with ignore_warning='foo', and three statement not found warnings. def test_ignore_warning_string_3snf_no_match(self): self.dev._conn.rpc = MagicMock(side_effect=self._mock_manager_3snf_warnings) cu = Config(self.dev) config = """ delete interfaces ge-0/0/0 delete protcols ospf delete policy-options prefix-list foo """ with self.assertRaises(ConfigLoadError): cu.load(config, ignore_warning="foo") # Test with ignore_warning=['foo', 'bar], and # three statement not found warnings. def test_ignore_warning_list_3snf_no_match(self): self.dev._conn.rpc = MagicMock(side_effect=self._mock_manager_3snf_warnings) cu = Config(self.dev) config = """ delete interfaces ge-0/0/0 delete protcols ospf delete policy-options prefix-list foo """ with self.assertRaises(ConfigLoadError): cu.load(config, ignore_warning=["foo", "bar"]) # Test with ignore_warning=['foo', 'bar], and # three warnings which are 'foo boom', 'boom bar', and 'foo bar' def test_ignore_warning_list_3warn_match(self): self.dev._conn.rpc = MagicMock(side_effect=self._mock_manager_3foobar_warnings) cu = Config(self.dev) config = """ delete interfaces ge-0/0/0 delete protcols ospf delete policy-options prefix-list foo """ self.assertTrue(cu.load(config, ignore_warning=["foo", "bar"])) # Test with ignore_warning=['foo', 'foo bar], and # three warnings which are 'foo boom', 'boom bar', and 'foo bar' def test_ignore_warning_list_3warn_no_match(self): self.dev._conn.rpc = MagicMock(side_effect=self._mock_manager_3foobar_warnings) cu = Config(self.dev) config = """ delete interfaces ge-0/0/0 delete protcols ospf delete policy-options prefix-list foo """ with self.assertRaises(ConfigLoadError): cu.load(config, ignore_warning=["foo", "foo bar"]) def _mock_manager_setup(self, *args, **kwargs): if kwargs: device_params = kwargs["device_params"] device_handler = make_device_handler(device_params) session = SSHSession(device_handler) return Manager(session, device_handler) def _mock_manager_3snf_warnings(self, *args, **kwargs): cmd = """ delete interfaces ge-0/0/0 delete protocols ospf delete policy-options prefix-list foo """ rsp_string = """ warning statement not found warning statement not found warning statement not found """ rsp = XML(rsp_string) errors = [] for err in rsp.findall(".//" + qualify("rpc-error")): errors.append(RPCError(err)) raise RPCError(rsp, errs=errors) def _mock_manager_3foobar_warnings(self, *args, **kwargs): cmd = """ delete interfaces ge-0/0/0 delete protocols ospf delete policy-options prefix-list foo """ rsp_string = """ warning foo boom warning boom bar warning foo bar """ rsp = XML(rsp_string) errors = [] for err in rsp.findall(".//" + qualify("rpc-error")): errors.append(RPCError(err)) raise RPCError(rsp, errs=errors) def _mock_manager_1snf_warning_1err(self, *args, **kwargs): cmd = """ delete interfaces ge-0/0/0 delete protcols ospf delete policy-options prefix-list foo """ rsp_string = """ warning statement not found protocol operation-failed error syntax error protcols """ rsp = XML(rsp_string) errors = [] for err in rsp.findall(".//" + qualify("rpc-error")): errors.append(RPCError(err)) raise RPCError(rsp, errs=errors) py-junos-eznc-2.7.3/tests/unit/test_device.py000066400000000000000000001202071475361112400212430ustar00rootroot00000000000000try: import unittest2 as unittest except ImportError: import unittest import nose2 from unittest.mock import MagicMock, patch, mock_open, call import os from lxml import etree import sys import json from ncclient.manager import Manager, make_device_handler from ncclient.transport import SSHSession import ncclient.transport.errors as NcErrors from ncclient.operations import RPCError, TimeoutExpiredError from jnpr.junos.facts.swver import version_info from jnpr.junos import Device from jnpr.junos.exception import RpcError from jnpr.junos import exception as EzErrors from jnpr.junos.console import Console __author__ = "Rick Sherman, Nitin Kumar, Stacy Smith" __credits__ = "Jeremy Schulman" if sys.version < "3": builtin_string = "__builtin__" else: builtin_string = "builtins" facts = { "domain": None, "hostname": "firefly", "ifd_style": "CLASSIC", "version_info": version_info("15.1X46-D15.3"), "2RE": False, "serialnumber": "aaf5fe5f9b88", "fqdn": "firefly", "virtual": True, "switch_style": "NONE", "version": "12.1X46-D15.3", "HOME": "/cf/var/home/rick", "srx_cluster": False, "model": "FIREFLY-PERIMETER", "RE0": { "status": "Testing", "last_reboot_reason": "Router rebooted after a " "normal shutdown.", "model": "FIREFLY-PERIMETER RE", "up_time": "6 hours, 29 minutes, 30 seconds", }, "vc_capable": False, "personality": "SRX_BRANCH", } class Test_MyTemplateLoader(unittest.TestCase): def setUp(self): from jnpr.junos.device import _MyTemplateLoader self.template_loader = _MyTemplateLoader() @patch(builtin_string + ".filter") def test_temp_load_get_source_filter_false(self, filter_mock): filter_mock.return_value = [] try: self.template_loader.get_source(None, None) except Exception as ex: import jinja2 self.assertEqual(type(ex), jinja2.exceptions.TemplateNotFound) @patch("jnpr.junos.device.os.path") def test_temp_load_get_source_filter_true(self, os_path_mock): # cant use @patch here as with statement will have exit m = mock_open() with patch(builtin_string + ".open", m, create=True): self.template_loader.get_source(None, None) class TestDevice(unittest.TestCase): @patch("ncclient.manager.connect") def setUp(self, mock_connect): mock_connect.side_effect = self._mock_manager self.dev = Device( host="1.1.1.1", user="test", password="password123", gather_facts=False ) self.dev.open() @patch("ncclient.operations.session.CloseSession.request") def tearDown(self, mock_session): self.dev.close() def test_new_console_return(self): dev = Device( host="1.1.1.1", user="test", password="password123", port=23, gather_facts=False, ) self.assertTrue(isinstance(dev, Console)) @patch("jnpr.junos.device.netconf_ssh") def test_device_ConnectAuthError(self, mock_manager): mock_manager.connect.side_effect = NcErrors.AuthenticationError self.assertRaises(EzErrors.ConnectAuthError, self.dev.open) @patch("jnpr.junos.device.netconf_ssh") def test_device_ConnectRefusedError(self, mock_manager): mock_manager.connect.side_effect = NcErrors.SSHError self.assertRaises(EzErrors.ConnectRefusedError, self.dev.open) @patch("jnpr.junos.device.netconf_ssh") @patch("jnpr.junos.device.datetime") def test_device_ConnectTimeoutError(self, mock_datetime, mock_manager): mock_manager.connect.side_effect = NcErrors.SSHError( "Could not open socket to 1.1.1.1:830" ) from datetime import timedelta, datetime currenttime = datetime.now() mock_datetime.datetime.now.side_effect = [ currenttime, currenttime + timedelta(minutes=4), ] self.assertRaises(EzErrors.ConnectTimeoutError, self.dev.open) @patch("jnpr.junos.device.netconf_ssh") @patch("jnpr.junos.device.datetime") def test_device_diff_err_message(self, mock_datetime, mock_manager): NcErrors.SSHError.message = "why are you trying :)" mock_manager.connect.side_effect = NcErrors.SSHError from datetime import timedelta, datetime currenttime = datetime.now() mock_datetime.datetime.now.side_effect = [ currenttime, currenttime + timedelta(minutes=4), ] self.assertRaises(EzErrors.ConnectError, self.dev.open) @patch("jnpr.junos.device.netconf_ssh") def test_device_ConnectUnknownHostError(self, mock_manager): import socket mock_manager.connect.side_effect = socket.gaierror self.assertRaises(EzErrors.ConnectUnknownHostError, self.dev.open) @patch("jnpr.junos.device.netconf_ssh") def test_device_other_error(self, mock_manager): mock_manager.connect.side_effect = TypeError self.assertRaises(EzErrors.ConnectError, self.dev.open) def test_device_probe_error(self): mock_probe = MagicMock() mock_probe.return_value = None self.dev.probe = mock_probe def fn(): self.dev.open(auto_probe=1) self.assertRaises(EzErrors.ProbeError, fn) def test_device_property_logfile_isinstance(self): mock = MagicMock() with patch(builtin_string + ".open", mock): if sys.version > "3": builtin_file = "io.TextIOWrapper" else: builtin_file = builtin_string + ".file" with patch(builtin_file, MagicMock): handle = open("filename", "r") self.dev.logfile = handle self.assertEqual(self.dev.logfile, handle) def test_device_host_mand_param(self): self.assertRaises( ValueError, Device, user="test", password="password123", gather_facts=False ) def test_device_property_logfile_close(self): self.dev._logfile = MagicMock() self.dev._logfile.close.return_value = 0 self.dev.logfile = None self.assertFalse(self.dev._logfile) def test_device_property_logfile_exception(self): try: self.dev.logfile = True except Exception as ex: self.assertEqual(type(ex), ValueError) @patch("jnpr.junos.Device.execute") def test_device_uptime(self, mock_execute): localdev = Device( host="1.1.1.1", user="test", password="password123", gather_facts=False ) mock_execute.side_effect = self._mock_manager self.assertEqual(localdev.uptime, 14234) def test_device_master_is_master(self): localdev = Device( host="1.1.1.1", user="test", password="password123", gather_facts=False ) localdev.facts._cache["current_re"] = [ "re1", "master", "node", "fwdd", "member", "pfem", ] self.assertEqual(localdev.master, True) def test_device_master_gnf_is_master(self): localdev = Device( host="1.1.1.1", user="test", password="password123", gather_facts=False ) localdev.facts._cache["current_re"] = ["gnf1-re0", "gnf1-master"] localdev.facts._cache["hostname_info"] = { "bsys-re0": "foo", "bsys-re1": "foo1", "gnf1-re0": "bar", "gnf1-re1": "bar1", } self.assertEqual(localdev.master, True) def test_device_master_is_backup(self): localdev = Device( host="1.1.1.1", user="test", password="password123", gather_facts=False ) localdev.facts._cache["current_re"] = ["re0", "backup"] self.assertEqual(localdev.master, False) def test_device_master_gnf_is_backup(self): localdev = Device( host="1.1.1.1", user="test", password="password123", gather_facts=False ) localdev.facts._cache["current_re"] = ["gnf1-re1", "gnf1-backup"] localdev.facts._cache["hostname_info"] = { "bsys-re0": "foo", "bsys-re1": "foo1", "gnf1-re0": "bar", "gnf1-re1": "bar1", } self.assertEqual(localdev.master, False) def test_device_master_is_re0_only(self): localdev = Device( host="1.1.1.1", user="test", password="password123", gather_facts=False ) localdev.facts._cache["2RE"] = False localdev.facts._cache["RE_hw_mi"] = False localdev.facts._cache["current_re"] = ["re0"] self.assertEqual(localdev.master, True) def test_device_master_is_multi_chassis_non_master1(self): localdev = Device( host="1.1.1.1", user="test", password="password123", gather_facts=False ) localdev.facts._cache["2RE"] = True localdev.facts._cache["current_re"] = [ "lcc1-re1", "member1-re1", "lcc1-backup", "member1-backup", ] self.assertEqual(localdev.master, False) def test_device_master_is_multi_chassis_non_master2(self): localdev = Device( host="1.1.1.1", user="test", password="password123", gather_facts=False ) localdev.facts._cache["2RE"] = True localdev.facts._cache["current_re"] = [ "lcc1-re0", "member1-re0", "lcc1-master", "member1-master", "member1", ] self.assertEqual(localdev.master, False) def test_device_master_is_none1(self): localdev = Device( host="1.1.1.1", user="test", password="password123", gather_facts=False ) localdev.facts._cache["current_re"] = None self.assertEqual(localdev.master, None) def test_device_master_is_none2(self): localdev = Device( host="1.1.1.1", user="test", password="password123", gather_facts=False ) localdev.facts._cache["2RE"] = True localdev.facts._cache["current_re"] = ["foo", "bar"] self.assertEqual(localdev.master, None) @patch("jnpr.junos.device.warnings") def test_device_master_is_old_facts(self, mock_warn): localdev = Device( host="1.1.1.1", user="test", password="password123", fact_style="old", gather_facts=False, ) mock_warn.assert_has_calls( [ call.warn( "fact-style old will be removed " "in a future release.", RuntimeWarning, ) ] ) self.assertEqual(localdev.master, None) def test_device_master_setter(self): localdev = Device( host="1.1.1.1", user="test", password="password123", gather_facts=False ) with self.assertRaises(RuntimeError): localdev.master = "foo" def test_device_re_name_is_re0(self): localdev = Device( host="1.1.1.1", user="test", password="password123", gather_facts=False ) localdev.facts._cache["current_re"] = ["re0", "backup"] localdev.facts._cache["hostname_info"] = {"re0": "tapir", "re1": "tapir1"} self.assertEqual(localdev.re_name, "re0") def test_device_re_name_is_lcc_re1(self): localdev = Device( host="1.1.1.1", user="test", password="password123", gather_facts=False ) localdev.facts._cache["current_re"] = [ "lcc1-re1", "member1-re1", "lcc1-backup", "member1-backup", ] localdev.facts._cache["hostname_info"] = {"re0": "mj1"} self.assertEqual(localdev.re_name, "lcc1-re1") def test_device_re_name_is_re0_only(self): localdev = Device( host="1.1.1.1", user="test", password="password123", gather_facts=False ) localdev.facts._cache["current_re"] = ["foo"] localdev.facts._cache["hostname_info"] = {"re0": "mj1"} self.assertEqual(localdev.re_name, "re0") def test_device_re_name_is_bsys_re0(self): localdev = Device( host="1.1.1.1", user="test", password="password123", gather_facts=False ) localdev.facts._cache["current_re"] = ["re0"] localdev.facts._cache["hostname_info"] = {"bsys-re0": "foo"} self.assertEqual(localdev.re_name, "bsys-re0") def test_device_re_name_is_none1(self): localdev = Device( host="1.1.1.1", user="test", password="password123", gather_facts=False ) localdev.facts._cache["current_re"] = None self.assertEqual(localdev.re_name, None) def test_device_re_name_is_none2(self): localdev = Device( host="1.1.1.1", user="test", password="password123", gather_facts=False ) localdev.facts._cache["current_re"] = [ "re1", "master", "node", "fwdd", "member", "pfem", ] localdev.facts._cache["hostname_info"] = None self.assertEqual(localdev.re_name, None) @patch("jnpr.junos.device.warnings") def test_device_re_name_is_old_facts(self, mock_warn): localdev = Device( host="1.1.1.1", user="test", password="password123", fact_style="old", gather_facts=False, ) mock_warn.assert_has_calls( [ call.warn( "fact-style old will be removed " "in a future release.", RuntimeWarning, ) ] ) self.assertEqual(localdev.re_name, None) def test_device_re_name_setter(self): localdev = Device( host="1.1.1.1", user="test", password="password123", gather_facts=False ) with self.assertRaises(RuntimeError): localdev.re_name = "foo" def test_device_repr(self): localdev = Device( host="1.1.1.1", user="test", password="password123", gather_facts=False ) self.assertEqual(repr(localdev), "Device(1.1.1.1)") def test_device_local(self): Device.ON_JUNOS = True localdev = Device() self.assertEqual(localdev._hostname, "localhost") Device.ON_JUNOS = False @patch("jnpr.junos.device.os") @patch(builtin_string + ".open") @patch("paramiko.config.SSHConfig.lookup") def test_device__sshconf_lkup(self, mock_paramiko, open_mock, os_mock): os_mock.path.exists.return_value = True self.dev._sshconf_lkup() mock_paramiko.assert_called_once_with("1.1.1.1") @patch("jnpr.junos.device.os") @patch(builtin_string + ".open") @patch("paramiko.config.SSHConfig.lookup") def test_device__sshconf_lkup_def(self, mock_paramiko, open_mock, os_mock): os_mock.path.exists.return_value = True self.dev._ssh_config = "/home/rsherman/.ssh/config" self.dev._sshconf_lkup() mock_paramiko.assert_called_once_with("1.1.1.1") @patch("paramiko.config.SSHConfig.lookup") def test_device__sshconf_lkup_sock_fd(self, mock_paramiko): self.dev2 = Device(sock_fd=6) self.dev2._sshconf_lkup() self.assertEqual(self.dev2._sshconf_lkup(), None) @patch("os.path.expanduser") def test_device__sshconf_lkup_path_not_exists(self, mock_path): mock_path.return_value = "/home/test" self.assertEqual(self.dev._sshconf_lkup(), None) @patch("ncclient.manager.connect") @patch("jnpr.junos.Device.execute") def test_device_open(self, mock_connect, mock_execute): with patch("jnpr.junos.utils.fs.FS.cat") as mock_cat: mock_cat.return_value = """ domain jls.net """ mock_connect.side_effect = self._mock_manager mock_execute.side_effect = self._mock_manager self.dev2 = Device(host="2.2.2.2", user="test", password="password123") self.dev2.open() self.assertEqual(self.dev2.connected, True) @patch("ncclient.manager.connect") @patch("jnpr.junos.Device.execute") def test_device_open_with_bind_addr(self, mock_connect, mock_execute): with patch("jnpr.junos.utils.fs.FS.cat") as mock_cat: mock_cat.return_value = """ domain jls.net """ mock_connect.side_effect = self._mock_manager mock_execute.side_effect = self._mock_manager self.dev2 = Device( host="2.2.2.2", user="test", password="password123", bind_addr="1.1.1.1" ) self.dev2.open() self.assertEqual(self.dev2.connected, True) @patch("ncclient.manager.connect") @patch("jnpr.junos.Device.execute") def test_device_open_with_look_for_keys_False(self, mock_connect, mock_execute): with patch("jnpr.junos.utils.fs.FS.cat") as mock_cat: mock_cat.return_value = """ domain jls.net """ mock_connect.side_effect = self._mock_manager mock_execute.side_effect = self._mock_manager self.dev2 = Device( host="2.2.2.2", user="test", password="password123", look_for_keys=False ) self.dev2.open() self.assertEqual(self.dev2.connected, True) @patch("ncclient.manager.connect") @patch("jnpr.junos.Device.execute") def test_device_open_with_look_for_keys_True(self, mock_connect, mock_execute): with patch("jnpr.junos.utils.fs.FS.cat") as mock_cat: mock_cat.return_value = """ domain jls.net """ mock_connect.side_effect = self._mock_manager mock_execute.side_effect = self._mock_manager self.dev2 = Device( host="2.2.2.2", user="test", password="password123", look_for_keys=True ) self.dev2.open() self.assertEqual(self.dev2.connected, True) @patch("ncclient.manager.connect") @patch("jnpr.junos.Device.execute") def test_device_open_with_hostkey_verify_True(self, mock_connect, mock_execute): with patch("jnpr.junos.utils.fs.FS.cat") as mock_cat: mock_cat.return_value = """ domain jls.net """ mock_connect.side_effect = self._mock_manager mock_execute.side_effect = self._mock_manager self.dev2 = Device( host="2.2.2.2", user="test", password="password123", hostkey_verify=True ) self.dev2.open() self.assertEqual(self.dev2.connected, True) @patch("ncclient.manager.connect") @patch("jnpr.junos.Device.execute") def test_device_open_with_hostkey_verify_False(self, mock_connect, mock_execute): with patch("jnpr.junos.utils.fs.FS.cat") as mock_cat: mock_cat.return_value = """ domain jls.net """ mock_connect.side_effect = self._mock_manager mock_execute.side_effect = self._mock_manager self.dev2 = Device( host="2.2.2.2", user="test", password="password123", hostkey_verify=False, ) self.dev2.open() self.assertEqual(self.dev2.connected, True) @patch("ncclient.manager.connect") @patch("jnpr.junos.Device.execute") def test_device_outbound(self, mock_connect, mock_execute): with patch("jnpr.junos.utils.fs.FS.cat") as mock_cat: mock_cat.return_value = """ domain jls.net """ mock_connect.side_effect = self._mock_manager mock_execute.side_effect = self._mock_manager self.dev2 = Device(sock_fd=6, user="test", password="password123") self.dev2.open() self.assertEqual(self.dev2.connected, True) @patch("jnpr.junos.Device.execute") def test_device_facts(self, mock_execute): with patch("jnpr.junos.utils.fs.FS.cat") as mock_cat: mock_execute.side_effect = self._mock_manager mock_cat.return_value = """ domain jls.net """ self.dev.facts_refresh() self.dev.facts._cache["current_re"] = ["re0"] assert self.dev.facts["version"] == facts["version"] @patch("jnpr.junos.Device.execute") @patch("jnpr.junos.factcache.warnings") def test_device_facts_error(self, mock_warnings, mock_execute): with patch("jnpr.junos.utils.fs.FS.cat") as mock_cat: mock_execute.side_effect = self._mock_manager mock_cat.side_effect = IOError("File cant be handled") self.dev.facts_refresh(warnings_on_failure=True) self.assertTrue(mock_warnings.warn.called) @patch("jnpr.junos.Device.execute") @patch("jnpr.junos.device.warnings") def test_device_facts_error_exception_on_error(self, mock_warnings, mock_execute): with patch("jnpr.junos.utils.fs.FS.cat") as mock_cat: mock_execute.side_effect = self._mock_manager mock_cat.side_effect = IOError("File cant be handled") self.assertRaises( IOError, self.dev.facts_refresh, exception_on_failure=True ) @patch("jnpr.junos.Device.execute") @patch("jnpr.junos.device.warnings") def test_device_old_style_facts_error_exception_on_error( self, mock_warnings, mock_execute ): self.dev._fact_style = "old" with patch("jnpr.junos.utils.fs.FS.cat") as mock_cat: mock_execute.side_effect = self._mock_manager mock_cat.side_effect = IOError("File cant be handled") self.assertRaises( IOError, self.dev.facts_refresh, exception_on_failure=True ) def test_device_facts_refresh_unknown_fact_style(self): self.dev._fact_style = "bad" with self.assertRaises(RuntimeError): self.dev.facts_refresh() def test_device_facts_refresh_old_fact_style_with_keys(self): self.dev._fact_style = "old" with self.assertRaises(RuntimeError): self.dev.facts_refresh(keys="domain") def test_device_hostname(self): self.assertEqual(self.dev.hostname, "1.1.1.1") def test_device_user(self): self.assertEqual(self.dev.user, "test") def test_device_get_password(self): self.assertEqual(self.dev.password, None) def test_device_set_password(self): self.dev.password = "secret" self.assertEqual(self.dev._auth_password, "secret") def test_device_get_timeout(self): self.assertEqual(self.dev.timeout, 30) def test_device_set_timeout(self): self.dev.timeout = 10 self.assertEqual(self.dev.timeout, 10) def test_device_set_timeout_string(self): self.dev.timeout = "10" self.assertEqual(self.dev.timeout, 10) def test_device_set_timeout_invalid_string_value(self): with self.assertRaises(RuntimeError): self.dev.timeout = "foo" def test_device_set_timeout_invalid_type(self): with self.assertRaises(RuntimeError): self.dev.timeout = [1, 2, 3, 4] def test_device_manages(self): self.assertEqual(self.dev.manages, [], "By default manages will be empty list") @patch("ncclient.manager.connect") @patch("jnpr.junos.Device.execute") def test_device_open_normalize(self, mock_connect, mock_execute): mock_connect.side_effect = self._mock_manager self.dev2 = Device(host="2.2.2.2", user="test", password="password123") self.dev2.open(gather_facts=False, normalize=True) self.assertEqual(self.dev2.transform, self.dev2._norm_transform) def test_device_conn_None_transform(self): self.dev = Device(host="2.2.2.2", user="test", password="password123") with self.assertRaises(EzErrors.ConnectError): self.dev.transform def test_device_set_facts_exception(self): try: self.dev.facts = "test" except RuntimeError as ex: self.assertEqual(RuntimeError, type(ex)) def test_device_ofacts_exception(self): with self.assertRaises(RuntimeError): ofacts = self.dev.ofacts def test_device_set_ofacts_exception(self): with self.assertRaises(RuntimeError): self.dev.ofacts = False @patch("jnpr.junos.Device.execute") def test_device_cli(self, mock_execute): mock_execute.side_effect = self._mock_manager self.assertEqual(self.dev.cli("show cli directory", warning=False).tag, "cli") @patch("jnpr.junos.device.json.loads") def test_device_rpc_json_ex(self, mock_json_loads): self.dev.facts = facts self.dev._conn.rpc = MagicMock(side_effect=self._mock_manager) ex = ValueError("Extra data ") ex.message = "Extra data " # for py3 as we dont have message thr mock_json_loads.side_effect = [ ex, self._mock_manager( etree.fromstring('') ), ] self.dev.rpc.get_route_information({"format": "json"}) self.assertEqual(mock_json_loads.call_count, 2) @patch("jnpr.junos.Device.execute") def test_device_cli_to_rpc_string(self, mock_execute): mock_execute.side_effect = self._mock_manager data = self.dev.cli_to_rpc_string("show system uptime") self.assertEqual("rpc.get_system_uptime_information()", data) @patch("jnpr.junos.Device.execute") def test_device_cli_to_rpc_string_strip_pipes(self, mock_execute): mock_execute.side_effect = self._mock_manager data = self.dev.cli_to_rpc_string("show system uptime | match foo | count") self.assertEqual("rpc.get_system_uptime_information()", data) @patch("jnpr.junos.Device.execute") def test_device_cli_to_rpc_string_complex(self, mock_execute): mock_execute.side_effect = self._mock_manager data = self.dev.cli_to_rpc_string( "show interfaces ge-0/0/0.0 routing-instance all media" ) self.assertEqual( "rpc.get_interface_information(" "routing_instance='all', media=True, " "interface_name='ge-0/0/0.0')", data, ) @patch("jnpr.junos.Device.execute") def test_device_cli_to_rpc_string_invalid(self, mock_execute): mock_execute.side_effect = self._mock_manager data = self.dev.cli_to_rpc_string("foo") self.assertEqual(None, data) @patch("jnpr.junos.Device.execute") def test_device_cli_format_json(self, mock_execute): mock_execute.side_effect = self._mock_manager data = self.dev.cli("show interface terse", warning=False, format="json") self.assertEqual(type(data), dict) self.assertEqual( data["interface-information"][0]["physical-interface"][0]["oper-status"][0][ "data" ], "up", ) @patch("jnpr.junos.Device.execute") def test_device_cli_conf_info(self, mock_execute): mock_execute.side_effect = self._mock_manager self.assertTrue("ge-0/0/0" in self.dev.cli("show configuration", warning=False)) @patch("jnpr.junos.Device.execute") def test_device_cli_output(self, mock_execute): mock_execute.side_effect = self._mock_manager self.assertTrue("Alarm" in self.dev.cli("show system alarms", warning=False)) @patch("jnpr.junos.Device.execute") @patch("jnpr.junos.device.warnings") def test_device_cli_output_warning(self, mock_warnings, mock_execute): mock_execute.side_effect = self._mock_manager data = self.dev.cli( "show interfaces ge-0/0/0.0 routing-instance " "all media", format="xml" ) ip = data.findtext( 'logical-interface[name="ge-0/0/0.0"]/' 'address-family[address-family-name="inet"]/' "interface-address/ifa-local" ) self.assertTrue("192.168.100.1" in ip) self.assertTrue(mock_warnings.warn.called) rpc_string = ( "rpc.get_interface_information(routing_instance='all', " "media=True, interface_name='ge-0/0/0.0')" ) self.assertIn(rpc_string, mock_warnings.warn.call_args[0][0]) def test_device_cli_blank_output(self): self.dev._conn.rpc = MagicMock(side_effect=self._mock_manager) self.assertEqual( "", self.dev.cli("show configuration interfaces", warning=False) ) def test_device_cli_rpc_reply_with_message(self): self.dev._conn.rpc = MagicMock(side_effect=self._mock_manager) self.assertEqual( "\nprotocol: operation-failed\nerror: device asdf not found\n", self.dev.cli("show interfaces terse asdf", warning=False), ) @patch("jnpr.junos.Device.execute") def test_device_cli_rpc(self, mock_execute): mock_execute.side_effect = self._mock_manager self.assertEqual( self.dev.cli("show system uptime| display xml rpc", warning=False).tag, "get-system-uptime-information", ) def test_device_cli_connection_exception(self): self.dev.connected = False self.assertRaises(EzErrors.ConnectClosedError, self.dev.cli, "foo") @patch("jnpr.junos.Device.execute") def test_device_cli_rpc_exception(self, mock_execute): mock_execute.side_effect = self._mock_manager self.assertRaises(EzErrors.RpcError, self.dev.cli, "foo") def test_device_cli_timeout_exception(self): self.dev._conn.rpc = MagicMock(side_effect=TimeoutExpiredError) self.assertRaises(EzErrors.RpcTimeoutError, self.dev.cli, "foo") @patch("jnpr.junos.device.warnings") def test_device_cli_unknown_exception(self, mock_warnings): class MyException(Exception): pass self.dev._conn.rpc = MagicMock(side_effect=MyException) self.assertRaises(MyException, self.dev.cli, "foo") @patch("jnpr.junos.Device.execute") def test_device_display_xml_rpc(self, mock_execute): mock_execute.side_effect = self._mock_manager self.assertEqual( self.dev.display_xml_rpc("show system uptime").tag, "get-system-uptime-information", ) @patch("jnpr.junos.Device.execute") def test_device_display_xml_rpc_text(self, mock_execute): mock_execute.side_effect = self._mock_manager self.assertIn( "", self.dev.display_xml_rpc("show system uptime", format="text"), ) @patch("jnpr.junos.Device.execute") def test_device_display_xml_exception(self, mock_execute): mock_execute.side_effect = self._mock_manager self.assertEqual( self.dev.display_xml_rpc("show foo"), "invalid command: show foo| display xml rpc", ) def test_device_execute(self): self.dev._conn.rpc = MagicMock(side_effect=self._mock_manager) self.assertEqual( self.dev.execute("").tag, "directory-list" ) def test_device_execute_topy(self): self.dev._conn.rpc = MagicMock(side_effect=self._mock_manager) self.assertEqual( self.dev.execute("", to_py=self._do_nothing), "Nothing", ) # This test is for the commented out rpc-error code # def test_device_execute_exception(self): # self.dev._conn.rpc = MagicMock(side_effect=self._mock_manager) # self.assertRaises(RpcError, self.dev.execute, # '') @patch("jnpr.junos.device.warnings") def test_device_execute_unknown_exception(self, mock_warnings): class MyException(Exception): pass self.dev._conn.rpc = MagicMock(side_effect=MyException) self.assertRaises(MyException, self.dev.execute, "") def test_device_execute_rpc_error(self): self.dev._conn.rpc = MagicMock(side_effect=self._mock_manager) self.assertRaises(RpcError, self.dev.rpc.get_rpc_error) @unittest.skipIf(sys.platform == "win32", "will work for windows in coming days") def test_device_execute_permission_error(self): self.dev._conn.rpc = MagicMock(side_effect=self._mock_manager) self.assertRaises(EzErrors.PermissionError, self.dev.rpc.get_permission_denied) def test_device_execute_index_error(self): self.dev._conn.rpc = MagicMock(side_effect=self._mock_manager) self.assertTrue(self.dev.rpc.get_index_error()) def test_device_execute_ValueError(self): self.assertRaises(ValueError, self.dev.execute, None) def test_device_execute_unopened(self): self.dev.connected = False self.assertRaises(EzErrors.ConnectClosedError, self.dev.execute, None) def test_device_execute_timeout(self): self.dev._conn.rpc = MagicMock(side_effect=TimeoutExpiredError) self.assertRaises(EzErrors.RpcTimeoutError, self.dev.rpc.get_rpc_timeout) def test_device_execute_closed(self): self.dev._conn.rpc = MagicMock(side_effect=NcErrors.TransportError) self.assertRaises(EzErrors.ConnectClosedError, self.dev.rpc.get_rpc_close) self.assertFalse(self.dev.connected) def test_device_rpcmeta(self): self.assertEqual( self.dev.rpc.get_software_information.__doc__, "get-software-information" ) def test_device_probe_timeout_zero(self): with patch("jnpr.junos.device.socket"): self.assertFalse(self.dev.probe(0)) def test_device_probe_timeout_gt_zero(self): with patch("jnpr.junos.device.socket"): self.assertTrue( self.dev.probe(1), "probe fn is not working for" " timeout greater than zero", ) def test_device_probe_timeout_exception(self): with patch("jnpr.junos.device.socket") as mock_socket: with patch("jnpr.junos.device.time.sleep") as mock_time: mock_socket.socket.return_value.close.side_effect = RuntimeError mock_time.return_value = None self.assertFalse(self.dev.probe(0.01)) def test_device_bind_varg(self): self.dev.bind() mock = MagicMock() mock.__name__ = "magic_mock" self.dev.bind(mock) self.assertEqual(self.dev.magic_mock.__name__, "magic_mock") def test_device_bind_kvarg(self): self.dev.bind() mock = MagicMock() mock.return_value = "Test" self.dev.bind(kw=mock) self.assertEqual(self.dev.kw, "Test") def test_device_bind_varg_exception(self): def varg(): self.dev.bind() mock = MagicMock() mock.__name__ = "magic mock" # for *args self.dev.bind(mock) self.dev.bind(mock) self.assertRaises(ValueError, varg) def test_device_bind_kvarg_exception(self): def kve(): self.dev.bind() mock = MagicMock() mock.__name__ = "magic mock" # for **kwargs self.dev.bind(kw=mock) self.dev.bind(kw=mock) self.assertRaises(ValueError, kve) def test_device_template(self): # Try to load the template relative to module base try: template = self.dev.Template("tests/unit/templates/config-example.xml") except: # Try to load the template relative to test base try: template = self.dev.Template("templates/config-example.xml") except: raise self.assertEqual( template.render({"host_name": "1", "domain_name": "2"}), "system {\n host-name 1;\n domain-name 2;\n}", ) def test_device_close(self): def close_conn(): self.dev.connected = False self.dev.close = MagicMock(name="close") self.dev.close.side_effect = close_conn self.dev.close() self.assertEqual(self.dev.connected, False) @patch("ncclient.manager.connect") def test_device_context_manager(self, mock_connect): mock_connect.side_effect = self._mock_manager try: with Device( host="3.3.3.3", user="gic", password="password123", gather_facts=False ) as dev: self.assertTrue(dev.connected) dev._conn = MagicMock(name="_conn") dev._conn.connected = True def close_conn(): dev.connected = False dev.close = MagicMock(name="close") dev.close.side_effect = close_conn raise RpcError except Exception as e: self.assertIsInstance(e, RpcError) self.assertFalse(dev.connected) def _read_file(self, fname): from ncclient.xml_ import NCElement fpath = os.path.join(os.path.dirname(__file__), "rpc-reply", fname) with open(fpath) as fp: foo = fp.read() if fname == "get-rpc-error.xml": # Raise ncclient exception for error raise RPCError(etree.XML(foo)) elif fname == "get-permission-denied.xml": # Raise ncclient exception for error raise RPCError(etree.XML(foo)) elif ( fname == "get-index-error.xml" or fname == "get-system-core-dumps.xml" or fname == "load-configuration-error.xml" or fname == "show-configuration-interfaces.xml" or fname == "show-interfaces-terse-asdf.xml" ): rpc_reply = NCElement( foo, self.dev._conn._device_handler.transform_reply() ) elif fname == "show-configuration.xml" or fname == "show-system-alarms.xml": rpc_reply = NCElement( foo, self.dev._conn._device_handler.transform_reply() )._NCElement__doc elif fname == "show-interface-terse.json": rpc_reply = json.loads(foo) elif fname == "get-route-information.json": rpc_reply = NCElement( foo, self.dev._conn._device_handler.transform_reply() ) else: rpc_reply = NCElement( foo, self.dev._conn._device_handler.transform_reply() )._NCElement__doc[0] return rpc_reply def _mock_manager(self, *args, **kwargs): if kwargs and "normalize" not in kwargs: device_params = kwargs["device_params"] device_handler = make_device_handler(device_params) session = SSHSession(device_handler) return Manager(session, device_handler) elif args: if args[0].tag == "command": if args[0].text == "show cli directory": return self._read_file("show-cli-directory.xml") if args[0].text == "show interface terse": return self._read_file("show-interface-terse.json") elif args[0].text == "show configuration": return self._read_file("show-configuration.xml") elif args[0].text == "show system alarms": return self._read_file("show-system-alarms.xml") elif args[0].text == "show system uptime| display xml rpc": return self._read_file("show-system-uptime-rpc.xml") elif args[0].text == "show configuration interfaces": return self._read_file("show-configuration-interfaces.xml") elif args[0].text == "show interfaces terse asdf": return self._read_file("show-interfaces-terse-asdf.xml") elif ( args[0].text == "show interfaces ge-0/0/0.0 " "routing-instance all media" ): return self._read_file("show-interfaces-routing-instance-media.xml") elif ( args[0].text == "show interfaces ge-0/0/0.0 " "routing-instance all media| display " "xml rpc" ): return self._read_file( "show-interfaces-routing-instance-media-rpc.xml" ) else: raise RpcError else: if args[0].attrib.get("format") == "json": return self._read_file(args[0].tag + ".json") return self._read_file(args[0].tag + ".xml") def _do_nothing(self, *args, **kwargs): return "Nothing" py-junos-eznc-2.7.3/tests/unit/test_exception.py000066400000000000000000000136011475361112400220010ustar00rootroot00000000000000import unittest import nose2 from jnpr.junos.exception import ( RpcError, CommitError, ConnectError, ConfigLoadError, RpcTimeoutError, SwRollbackError, JSONLoadError, ) from jnpr.junos import Device from lxml import etree __author__ = "Nitin Kumar, Rick Sherman" __credits__ = "Jeremy Schulman" commit_xml = """ error dcd [edit interfaces ge-0/0/1] unit 2 Only unit 0 is valid for this encapsulation """ rpc_xml = """ error bgp syntax error """ conf_xml = """ error system1 syntax error """ multi_warning_xml = """ warning statement not found warning statement not found """ config_json = """{ "configuration" : { "system" : { "services" : { "telnet" : [nul] } } } }""" class Test_RpcError(unittest.TestCase): def test_rpcerror_repr(self): rsp = etree.XML(rpc_xml) obj = RpcError(rsp=rsp) err = "RpcError(severity: error, bad_element: bgp, " "message: syntax error)" self.assertEqual(str, type(obj.__repr__())) self.assertEqual(obj.__repr__(), err) def test_rpcerror_jxml_check(self): # this test is intended to hit jxml code rsp = etree.XML(commit_xml) obj = CommitError(rsp=rsp) self.assertEqual(obj.rpc_error["bad_element"], "unit 2") def test_ConnectError(self): self.dev = Device(host="1.1.1.1", user="rick") obj = ConnectError(self.dev) self.assertEqual(obj.user, "rick") self.assertEqual(obj.host, "1.1.1.1") self.assertEqual(obj.port, 830) self.assertEqual(repr(obj), "ConnectError(1.1.1.1)") def test_ConnectError_msg(self): self.dev = Device(host="1.1.1.1", user="rick") obj = ConnectError(self.dev, msg="underlying exception info") self.assertEqual(obj.msg, "underlying exception info") self.assertEqual( repr(obj), "ConnectError(host: 1.1.1.1, msg: underlying exception info)" ) def test_CommitError_repr(self): rsp = etree.XML(commit_xml) obj = CommitError(rsp=rsp) err = ( "CommitError(edit_path: [edit interfaces ge-0/0/1], " "bad_element: unit 2, message: Only unit 0 is valid " "for this encapsulation)" ) self.assertEqual(obj.__repr__(), err) def test_ConfigLoadError_repr(self): rsp = etree.XML(conf_xml) obj = ConfigLoadError(rsp=rsp) err = ( "ConfigLoadError(severity: error, bad_element: " "system1, message: syntax error)" ) self.assertEqual(obj.__repr__(), err) def test_RpcTimeoutError_repr(self): dev = Device("test") obj = RpcTimeoutError(dev=dev, cmd="test", timeout=50) err = "RpcTimeoutError(host: test, cmd: test, timeout: 50)" self.assertEqual(obj.__repr__(), err) def test_SwRollbackError_repr(self): obj = SwRollbackError(rsp="Single RE exception") err = "SwRollbackError(output: Single RE exception)" self.assertEqual(obj.__repr__(), err) def test_SwRollbackError_repr_multi(self): obj = SwRollbackError(re="test1", rsp="Multi RE exception") err = "SwRollbackError(re: test1, output: Multi RE exception)" self.assertEqual(obj.__repr__(), err) def test_repr_multi_warning(self): rsp = etree.XML(multi_warning_xml) from ncclient.operations import RPCError warn_msg = """ warning statement not found """ errs = RPCError(etree.XML(warn_msg)) errs.errors = [errs, errs] obj = RpcError(rsp=rsp, errs=errs) self.assertEqual(obj.rpc_error["severity"], "warning") def test_json_error(self): err = "ValueError: No JSON object could be decoded" obj = JSONLoadError(err, config_json) errs = "JSONLoadError(reason: ValueError: No JSON object could be decoded)" self.assertEqual(obj.__repr__(), errs) def test_json_error_offending_line(self): err = "ValueError: No" obj = JSONLoadError(err, config_json) obj.offending_line = "Value" errs = ( "JSONLoadError(reason: ValueError: No, " "\nThe offending config appears to be: " "\nValue)" ) self.assertEqual(obj.__repr__(), errs) py-junos-eznc-2.7.3/tests/unit/test_factcache.py000066400000000000000000000260111475361112400217030ustar00rootroot00000000000000try: import unittest2 as unittest except ImportError: import unittest import nose2 from unittest.mock import patch, MagicMock, call from jnpr.junos.exception import FactLoopError from jnpr.junos import Device from ncclient.manager import Manager, make_device_handler from ncclient.transport import SSHSession __author__ = "Stacy Smith" __credits__ = "Jeremy Schulman, Nitin Kumar" class TestFactCache(unittest.TestCase): @patch("ncclient.manager.connect") def setUp(self, mock_connect): mock_connect.side_effect = self._mock_manager_setup self.dev = Device(host="1.1.1.1", user="rick", password="password123") self.dev.open() def test_factcache_unknown_fact(self): with self.assertRaises(KeyError): unknown = self.dev.facts["unknown"] def test_factcache_fact_loop(self): # The personality fact calls the # model fact. # Change the callback for the model # fact to be the same as the personality fact # in order to induce a fact loop. tmp = self.dev.facts._callbacks["model"] self.dev.facts._callbacks["model"] = self.dev.facts._callbacks["personality"] # Now, trying to fetch the personality # fact should cause a FactLoopError with self.assertRaises(FactLoopError): personality = self.dev.facts["personality"] self.dev.facts._callbacks["model"] = tmp # To clear FactLoopError def test_factcache_return_unexpected_fact(self): # Create a callback for the foo fact. self.dev.facts._callbacks["foo"] = get_foo_bar_fact # Now, trying to access the foo fact should cause a # RunTimeError because the bar fact is also unexpectedly provided with self.assertRaises(RuntimeError): foo = self.dev.facts["foo"] @patch("jnpr.junos.factcache.warnings") def test_factcache_nonmatching_old_and_new_fact(self, mock_warn): # Set fact style to 'both' self.dev._fact_style = "both" # Create a callback for the foo fact. self.dev.facts._callbacks["foo"] = get_foo_fact # Cache the new-style foo fact self.dev.facts._cache["foo"] = "foo" # Set the old-style foo fact to a different value self.dev._ofacts["foo"] = "bar" # Now, trying to access the foo fact should cause a # RunTimeWarning because the values of the new and old-style facts # do not match foo = self.dev.facts["foo"] mock_warn.assert_has_calls( [ call.warn( "New and old-style facts do not match for the foo fact.\n" " New-style value: foo\n Old-style value: bar\n", RuntimeWarning, ) ] ) def test_factcache_fail_to_return_expected_fact(self): # Create a callback for the foo fact. self.dev.facts._callbacks["foo"] = get_bar_fact self.dev.facts._callbacks["bar"] = get_bar_fact # Now, trying to access the foo fact should cause a # RunTimeError because the foo fact is not provided with self.assertRaises(RuntimeError): foo = self.dev.facts["foo"] def test_factcache_delete_fact(self): # Create a callback for the foo fact. self.dev.facts._callbacks["foo"] = get_foo_fact foo = self.dev.facts["foo"] # Now, trying to delete the foo fact should cause a # RunTimeError with self.assertRaises(RuntimeError): self.dev.facts.pop("foo", None) def test_factcache_set_fact(self): # Create a callback for the foo fact. self.dev.facts._callbacks["foo"] = get_foo_fact foo = self.dev.facts["foo"] # Now, trying to set the foo fact should cause a # RunTimeError with self.assertRaises(RuntimeError): self.dev.facts["foo"] = "bar" def test_factcache_iter_facts(self): # Override the callbacks self.dev.facts._callbacks = { "foo": get_foo_fact, "bar": get_bar_fact, "_hidden": get_foo_bar_fact, } # Now, get the length of the facts self.assertEqual(len(list(self.dev.facts)), 2) def test_factcache_len_facts(self): # Override the callbacks self.dev.facts._callbacks = {"foo": get_foo_fact, "bar": get_bar_fact} # Now, get the length of the facts self.assertEqual(len(self.dev.facts), 2) def test_factcache_string_repr(self): # Override the callbacks to only support foo and bar facts. self.dev.facts._callbacks = {"foo": get_foo_fact, "bar": get_bar_fact} # Set values for foo and bar facts self.dev.facts._cache["foo"] = "foo" self.dev.facts._cache["bar"] = {"bar": "bar"} # Now, get the string (pretty) representation of the facts self.assertEqual( str(self.dev.facts), "{'bar': {'bar': 'bar'}, " "'foo': 'foo'}" ) def test_factcache_repr_facts(self): # Override the callbacks self.dev.facts._callbacks = {"foo": get_foo_fact, "bar": get_bar_fact} # Now, get the length of the facts self.assertEqual(str(self.dev.facts), "{'bar': 'bar', 'foo': 'foo'}") def test_factcache_refresh_single_key(self): # Override the callbacks self.dev.facts._callbacks = { "foo": get_foo_fact, "bar": get_bar_fact, "_hidden": get_hidden_fact, } # Populate the cache self.dev.facts._cache["foo"] = "before" self.dev.facts._cache["bar"] = "before" self.dev.facts._cache["_hidden"] = "before" # Confirm the cached values self.assertEqual(self.dev.facts["foo"], "before") self.assertEqual(self.dev.facts["bar"], "before") self.assertEqual(self.dev.facts["_hidden"], "before") # Refresh just the foo fact self.dev.facts._refresh(keys="foo") # Confirm the values now self.assertEqual(self.dev.facts["foo"], "foo") self.assertEqual(self.dev.facts["bar"], "before") self.assertEqual(self.dev.facts["_hidden"], "before") def test_factcache_refresh_two_keys(self): # Override the callbacks self.dev.facts._callbacks = { "foo": get_foo_fact, "bar": get_bar_fact, "_hidden": get_hidden_fact, } # Populate the cache self.dev.facts._cache["foo"] = "before" self.dev.facts._cache["bar"] = "before" self.dev.facts._cache["_hidden"] = "before" # Confirm the cached values self.assertEqual(self.dev.facts["foo"], "before") self.assertEqual(self.dev.facts["bar"], "before") self.assertEqual(self.dev.facts["_hidden"], "before") # Refresh the foo and _hidden facts self.dev.facts._refresh(keys=("foo", "_hidden")) # Confirm the values now self.assertEqual(self.dev.facts["foo"], "foo") self.assertEqual(self.dev.facts["bar"], "before") self.assertEqual(self.dev.facts["_hidden"], True) def test_factcache_refresh_unknown_fact(self): # Override the callbacks self.dev.facts._callbacks = {"foo": get_foo_fact, "_hidden": get_hidden_fact} # Populate the cache self.dev.facts._cache["foo"] = "before" self.dev.facts._cache["_hidden"] = "before" # Confirm the cached values self.assertEqual(self.dev.facts["foo"], "before") self.assertEqual(self.dev.facts["_hidden"], "before") # Refresh just the unknown bar fact which should raise a RuntimeError with self.assertRaises(RuntimeError): self.dev.facts._refresh(keys=("bar")) def test_factcache_refresh_all_facts(self): # Override the callbacks self.dev.facts._callbacks = { "foo": get_foo_fact, "bar": get_bar_fact, "_hidden": get_hidden_fact, } # Populate the cache self.dev.facts._cache["foo"] = "before" self.dev.facts._cache["bar"] = "before" self.dev.facts._cache["_hidden"] = "before" # Confirm the cached values self.assertEqual(self.dev.facts["foo"], "before") self.assertEqual(self.dev.facts["bar"], "before") self.assertEqual(self.dev.facts["_hidden"], "before") # Refresh all facts self.dev.facts._refresh() # Confirm the values now self.assertEqual(self.dev.facts["foo"], "foo") self.assertEqual(self.dev.facts["bar"], "bar") self.assertEqual(self.dev.facts["_hidden"], True) @patch("jnpr.junos.device.warnings") def test_factcache_refresh_exception_on_failure(self, mock_warn): # Override the callbacks self.dev.facts._callbacks = { "foo": get_foo_raise_error, } # Populate the cache self.dev.facts._cache["foo"] = "before" # Confirm the cached values self.assertEqual(self.dev.facts["foo"], "before") with self.assertRaises(ValueError): self.dev.facts._refresh(exception_on_failure=True, keys="foo") @patch("jnpr.junos.device.warnings") def test_factcache_refresh_no_exception_on_failure(self, mock_warn): # Override the callbacks self.dev.facts._callbacks = { "foo": get_foo_raise_error, } # Populate the cache self.dev.facts._cache["foo"] = "before" # Confirm the cached values self.assertEqual(self.dev.facts["foo"], "before") self.dev.facts._refresh(exception_on_failure=False, keys="foo") self.assertEqual(self.dev.facts["foo"], None) @patch("jnpr.junos.device.warnings") @patch("jnpr.junos.factcache.warnings") def test_factcache_refresh_warnings_on_failure(self, mock_warn, mock_device_warn): # Refresh all facts with warnings on failure self.dev.facts._refresh(warnings_on_failure=True) mock_warn.assert_has_calls( [ call.warn( "Facts gathering is incomplete. To know the reason call " '"dev.facts_refresh(exception_on_failure=True)"', RuntimeWarning, ) ] ) # mock_warn.assert_called_once('Facts gathering is incomplete. ' # 'To know the reason call ' # '"dev.facts_refresh(' # 'exception_on_failure=True)"', # RuntimeWarning) def _mock_manager_setup(self, *args, **kwargs): if kwargs: device_params = kwargs["device_params"] device_handler = make_device_handler(device_params) session = SSHSession(device_handler) return Manager(session, device_handler) def get_foo_fact(device): return {"foo": "foo"} def get_foo_bar_fact(device): return { "foo": "foo", "bar": "bar", } def get_bar_fact(device): return { "bar": "bar", } def get_hidden_fact(device): return { "_hidden": True, } def get_foo_raise_error(device): raise ValueError("Error") py-junos-eznc-2.7.3/tests/unit/test_junos.py000066400000000000000000000007431475361112400211440ustar00rootroot00000000000000# Tests in this file corresponds to /jnpr/junos/__init__.py import unittest import sys import nose2 from unittest.mock import patch __author__ = "Nitin Kumar" __credits__ = "Jeremy Schulman" class TestJunosInit(unittest.TestCase): def test_warning(self): print(sys.modules["sys"].version_info) with patch.object(sys.modules["sys"], "version_info", (3, 8, 0)) as mock_sys: from jnpr import junos self.assertEqual(mock_sys, (3, 8, 0)) py-junos-eznc-2.7.3/tests/unit/test_jxml.py000066400000000000000000000061041475361112400207550ustar00rootroot00000000000000import os import unittest from io import StringIO import nose2 from unittest.mock import patch from jnpr.junos.jxml import ( NAME, INSERT, remove_namespaces, cscript_conf, normalize_xslt, ) from lxml import etree from ncclient.xml_ import NCElement __author__ = "Nitin Kumar, Rick Sherman" __credits__ = "Jeremy Schulman" class Test_JXML(unittest.TestCase): def test_name(self): op = NAME("test") self.assertEqual(op["name"], "test") def test_insert(self): op = INSERT("test") self.assertEqual(op["insert"], "test") def test_remove_namespaces(self): xmldata = """ """ import xml.etree.ElementTree as ET parser = ET.XMLParser() root = ET.parse(StringIO(xmldata), parser) test = remove_namespaces(root) for elem in test.iter(): i = elem.tag.find("}") if i > 0: i = i + 1 self.assertTrue(i <= 0) def test_cscript_conf(self): op = cscript_conf(self._read_file("get-configuration.xml")) self.assertTrue(isinstance(op, etree._Element)) @patch("ncclient.manager.make_device_handler") def test_cscript_conf_return_none(self, dev_handler): dev_handler.side_effects = ValueError op = cscript_conf(self._read_file("get-configuration.xml")) self.assertTrue(op is None) def test_cscript_conf_output_tag_child_element(self): xmldata = """ shutdown: [pid 8683] Shutdown NOW! """ xmldata_without_ns = """ shutdown: [pid 8683] Shutdown NOW! """ rpc_reply = NCElement(xmldata, normalize_xslt.encode("UTF-8")) self.assertEqual(str(rpc_reply), xmldata_without_ns) def test_cscript_conf_output_tag_not_first_child_element(self): xmldata = """ shutdown: [pid 8683] Shutdown NOW! """ xmldata_without_ns = """ shutdown: [pid 8683] Shutdown NOW! """ rpc_reply = NCElement(xmldata, normalize_xslt.encode("UTF-8")) self.assertEqual(str(rpc_reply), xmldata_without_ns) def _read_file(self, fname): fpath = os.path.join(os.path.dirname(__file__), "rpc-reply", fname) with open(fpath) as fp: foo = fp.read() return foo py-junos-eznc-2.7.3/tests/unit/test_rpcmeta.py000066400000000000000000000241421475361112400214400ustar00rootroot00000000000000import unittest import os import re import nose2 from jnpr.junos.device import Device from jnpr.junos.rpcmeta import _RpcMetaExec from jnpr.junos.facts.swver import version_info from ncclient.manager import Manager, make_device_handler from ncclient.transport import SSHSession from jnpr.junos.exception import JSONLoadError from unittest.mock import patch, MagicMock, call from lxml import etree __author__ = "Nitin Kumar, Rick Sherman" __credits__ = "Jeremy Schulman" class Test_RpcMetaExec(unittest.TestCase): @patch("ncclient.manager.connect") def setUp(self, mock_connect): mock_connect.side_effect = self._mock_manager self.dev = Device( host="1.1.1.1", user="rick", password="password123", gather_facts=False ) self.dev.open() self.rpc = _RpcMetaExec(self.dev) def test_rpcmeta_constructor(self): self.assertTrue(isinstance(self.rpc._junos, Device)) @patch("jnpr.junos.device.Device.execute") def test_rpcmeta_load_config(self, mock_execute_fn): root = etree.XML("test") self.rpc.load_config(root) self.assertEqual(mock_execute_fn.call_args[0][0].tag, "load-configuration") @patch("jnpr.junos.device.Device.execute") def test_rpcmeta_load_config_with_configuration_tag(self, mock_execute_fn): root = etree.XML("test") self.rpc.load_config(root) self.assertEqual(mock_execute_fn.call_args[0][0].tag, "load-configuration") @patch("jnpr.junos.device.Device.execute") def test_rpcmeta_load_config_option_action(self, mock_execute_fn): set_commands = """ set system host-name test_rpc set system domain-name test.juniper.net """ self.rpc.load_config(set_commands, action="set") self.assertEqual(mock_execute_fn.call_args[0][0].get("action"), "set") @patch("jnpr.junos.device.Device.execute") def test_rpcmeta_option_format(self, mock_execute_fn): set_commands = """ set system host-name test_rpc set system domain-name test.juniper.net """ self.rpc.load_config(set_commands, format="text") self.assertEqual(mock_execute_fn.call_args[0][0].get("format"), "text") @patch("jnpr.junos.device.Device.execute") def test_rpcmeta_option_format_json(self, mock_execute_fn): json_commands = """ { "configuration" : { "system" : { "services" : { "telnet" : [null] } } } } """ self.rpc.load_config(json_commands, format="json") self.assertEqual(mock_execute_fn.call_args[0][0].get("format"), "json") @patch("jnpr.junos.device.Device.execute") def test_rpcmeta_exec_rpc_vargs(self, mock_execute_fn): self.rpc.system_users_information(dict(format="text")) self.assertEqual(mock_execute_fn.call_args[0][0].get("format"), "text") @patch("jnpr.junos.device.Device.execute") def test_rpcmeta_exec_rpc_kvargs_bool_true(self, mock_execute_fn): self.rpc.system_users_information(test=True) self.assertEqual(mock_execute_fn.call_args[0][0][0].tag, "test") self.assertEqual(mock_execute_fn.call_args[0][0][0].text, None) @patch("jnpr.junos.device.Device.execute") def test_rpcmeta_exec_rpc_kvargs_bool_False(self, mock_execute_fn): self.rpc.system_users_information(test=False) self.assertEqual(mock_execute_fn.call_args[0][0].find("test"), None) @patch("jnpr.junos.device.Device.execute") def test_rpcmeta_exec_rpc_kvargs_tuple(self, mock_execute_fn): self.rpc.system_users_information(set_data=("test", "foo")) self.assertEqual(mock_execute_fn.call_args[0][0][0].text, "test") self.assertEqual(mock_execute_fn.call_args[0][0][1].text, "foo") @patch("jnpr.junos.device.Device.execute") def test_rpcmeta_exec_rpc_kvargs_dict(self, mock_execute_fn): self.assertRaises( TypeError, self.rpc.system_users_information, dict_data={"test": "foo"} ) @patch("jnpr.junos.device.Device.execute") def test_rpcmeta_exec_rpc_kvargs_list_with_dict(self, mock_execute_fn): self.assertRaises( TypeError, self.rpc.system_users_information, list_with_dict_data=[True, {"test": "foo"}], ) @patch("jnpr.junos.device.Device.execute") def test_rpcmeta_exec_rpc_normalize(self, mock_execute_fn): self.rpc.any_ole_rpc(normalize=True) self.assertEqual(mock_execute_fn.call_args[1], {"normalize": True}) @patch("jnpr.junos.device.Device.execute") def test_rpcmeta_get_config(self, mock_execute_fn): root = etree.XML("test") self.rpc.get_config(root) self.assertEqual(mock_execute_fn.call_args[0][0].tag, "get-configuration") def test_rpcmeta_exec_rpc_format_json_14_2(self): self.dev._conn.rpc = MagicMock(side_effect=self._mock_manager) self.dev.facts._cache["version_info"] = version_info("14.2X46-D15.3") op = self.rpc.get_system_users_information(dict(format="json")) self.assertEqual( op["system-users-information"][0]["uptime-information"][0]["date-time"][0][ "data" ], "4:43AM", ) def test_rpcmeta_exec_rpc_format_json_gt_14_2(self): self.dev._conn.rpc = MagicMock(side_effect=self._mock_manager) self.dev.facts._cache["version_info"] = version_info("15.1X46-D15.3") op = self.rpc.get_system_users_information(dict(format="json")) self.assertEqual( op["system-users-information"][0]["uptime-information"][0]["date-time"][0][ "data" ], "4:43AM", ) @patch("jnpr.junos.device.warnings") def test_rpcmeta_exec_rpc_format_json_lt_14_2(self, mock_warn): self.dev._conn.rpc = MagicMock(side_effect=self._mock_manager) self.dev.facts._cache["version_info"] = version_info("13.1X46-D15.3") self.rpc.get_system_users_information(dict(format="json")) mock_warn.assert_has_calls( [call.warn("Native JSON support is only from 14.2 onwards", RuntimeWarning)] ) def test_get_rpc(self): self.dev._conn.rpc = MagicMock(side_effect=self._mock_manager) resp = self.dev.rpc.get(filter_select="bgp") self.assertEqual(resp.tag, "data") def test_get_config_filter_xml_string_xml(self): self.dev._conn.rpc = MagicMock(side_effect=self._mock_manager) resp = self.dev.rpc.get_config(filter_xml="") self.assertEqual(resp.tag, "configuration") def test_get_config_filter_xml_string(self): self.dev._conn.rpc = MagicMock(side_effect=self._mock_manager) resp = self.dev.rpc.get_config(filter_xml="system/services") self.assertEqual(resp.tag, "configuration") def test_get_config_filter_xml_model(self): self.dev._conn.rpc = MagicMock(side_effect=self._mock_manager) resp = self.dev.rpc.get_config("bgp/neighbors", model="openconfig") self.assertEqual(resp.tag, "bgp") def test_get_rpc_ignore_warning_bool(self): self.dev._conn.rpc = MagicMock(side_effect=self._mock_manager) resp = self.dev.rpc.get(ignore_warning=True) self.assertEqual(resp.tag, "data") def test_get_rpc_ignore_warning_str(self): self.dev._conn.rpc = MagicMock(side_effect=self._mock_manager) resp = self.dev.rpc.get(ignore_warning="vrrp subsystem not running") self.assertEqual(resp.tag, "data") def test_get_rpc_ignore_warning_list(self): self.dev._conn.rpc = MagicMock(side_effect=self._mock_manager) resp = self.dev.rpc.get( ignore_warning=["vrrp subsystem not running", "statement not found"] ) self.assertEqual(resp.tag, "data") # below test need to be fixed for Python 3.x """ def test_get_config_remove_ns(self): self.dev._conn.rpc = MagicMock(side_effect=self._mock_manager) resp = self.dev.rpc.get_config('bgp/neighbors', model='openconfig', remove_ns=False) self.assertEqual(resp.tag, '{http://openconfig.net/yang/bgp}bgp') """ # def test_model_true(self): self.dev._conn.rpc = MagicMock(side_effect=self._mock_manager) data = self.dev.rpc.get_config(model=True) self.assertEqual(data.tag, "data") def test_get_config_format_json_JSONLoadError_with_line(self): self.dev._conn.rpc = MagicMock(side_effect=self._mock_manager) self.dev.facts._cache["version_info"] = version_info("15.1X46-D15.3") try: self.dev.rpc.get_config(options={"format": "json"}) except JSONLoadError as ex: self.assertTrue( re.search( r"Expecting '?,'? delimiter: line 17 column 39 \(char 516\)", ex.ex_msg, ) is not None ) def _mock_manager(self, *args, **kwargs): if kwargs: if "normalize" in kwargs and args: return self._read_file(args[0].tag + ".xml") device_params = kwargs["device_params"] device_handler = make_device_handler(device_params) session = SSHSession(device_handler) return Manager(session, device_handler) if args: if len(args[0]) > 0 and args[0][0].tag == "bgp": return self._read_file(args[0].tag + "_bgp_openconfig.xml") elif ( args[0].attrib.get("format") == "json" and args[0].tag == "get-configuration" ): return self._read_file(args[0].tag + ".json") return self._read_file(args[0].tag + ".xml") def _read_file(self, fname): from ncclient.xml_ import NCElement fpath = os.path.join(os.path.dirname(__file__), "rpc-reply", fname) with open(fpath) as fp: foo = fp.read() return NCElement(foo, self.dev._conn._device_handler.transform_reply()) py-junos-eznc-2.7.3/tests/unit/testfile000066400000000000000000000000001475361112400201210ustar00rootroot00000000000000py-junos-eznc-2.7.3/tests/unit/transport/000077500000000000000000000000001475361112400204255ustar00rootroot00000000000000py-junos-eznc-2.7.3/tests/unit/transport/__init__.py000066400000000000000000000000001475361112400225240ustar00rootroot00000000000000py-junos-eznc-2.7.3/tests/unit/transport/rpc-reply/000077500000000000000000000000001475361112400223425ustar00rootroot00000000000000py-junos-eznc-2.7.3/tests/unit/transport/rpc-reply/commit-configuration.xml000066400000000000000000000011011475361112400272120ustar00rootroot00000000000000 protocol operation-failed error interface-range 'axp' is not defined protocol operation-failed error interface-ranges expansion failed py-junos-eznc-2.7.3/tests/unit/transport/test_serial.py000066400000000000000000000174171475361112400233270ustar00rootroot00000000000000try: import unittest2 as unittest except ImportError: import unittest import nose2 from unittest.mock import MagicMock, patch import sys import six from jnpr.junos.console import Console if sys.version < "3": builtin_string = "__builtin__" else: builtin_string = "builtins" class TestSerial(unittest.TestCase): @patch("jnpr.junos.transport.tty_serial.serial.Serial.open") @patch("jnpr.junos.transport.tty_serial.serial.Serial.write") @patch("jnpr.junos.transport.tty_serial.serial.Serial.flush") @patch("jnpr.junos.transport.tty_serial.Serial.read_prompt") @patch("jnpr.junos.transport.tty.tty_netconf.open") def setUp(self, mock_nc_open, mock_read, mock_flush, mock_write, mock_open): self.dev = Console(port="USB/ttyUSB0", baud=9600, mode="Serial") mock_read.side_effect = [ ("login", "login"), ("passwd", "passwd"), ("shell", "shell"), ] self.dev.open() @patch("jnpr.junos.transport.tty.sleep") @patch("jnpr.junos.transport.tty.tty_netconf.close") @patch("jnpr.junos.transport.tty_serial.Serial.read_prompt") @patch("jnpr.junos.transport.tty_serial.Serial.write") @patch("jnpr.junos.transport.tty_serial.Serial._tty_close") def tearDown( self, mock_serial_close, mock_write, mock_read, mock_close, mock_sleep ): mock_read.side_effect = [ ("shell", "shell"), ("login", "login"), ("cli", "cli"), ] self.dev.close() def test_console_connected(self): self.assertTrue(self.dev.connected) def test_close_connection(self): self.dev._tty._ser = MagicMock() self.dev.close(skip_logout=True) self.assertTrue(self.dev._tty._ser.close.called) @patch("jnpr.junos.transport.tty_serial.serial.Serial.open") def test_tty_serial_open_exception(self, mock_open): dev = Console(port="USB/ttyUSB0", baud=9600, mode="Serial") mock_open.side_effect = OSError self.assertRaises(RuntimeError, dev.open) def test_tty_serial_rawwrite(self): self.dev._tty._ser = MagicMock() self.dev._tty.rawwrite("test") self.dev._tty._ser.write.assert_called_with("test") def test_tty_serial_read(self): self.dev._tty._ser = MagicMock() self.dev._tty.read() self.dev._tty._ser.readline.assert_called() def test_tty_serial_read_prompt(self): self.dev._tty._ser = MagicMock() self.dev._tty.EXPECT_TIMEOUT = 0.1 self.dev._tty._ser.readline.side_effect = ["", "test"] self.assertEqual(self.dev._tty.read_prompt()[0], None) class TestSerialWin(unittest.TestCase): @patch("jnpr.junos.transport.tty_serial.serial.Serial.open") @patch("jnpr.junos.transport.tty_serial.serial.Serial.read") @patch("jnpr.junos.transport.tty_serial.serial.Serial.write") @patch("jnpr.junos.transport.tty_serial.serial.Serial.flush") @patch("jnpr.junos.transport.tty_serial.Serial.read_prompt") def setUp(self, mock_read, mock_flush, mock_write, mock_serial_read, mock_open): self.dev = Console(port="COM4", baud=9600, mode="Serial") mock_read.side_effect = [ ("login", "login"), ("passwd", "passwd"), ("shell", "shell"), ] mock_serial_read.side_effect = [ six.b( "" ), six.b(""), six.b( """ urn:ietf:params:netconf:base:1.0 urn:ietf:params:netconf:capability:candidate:1.0 urn:ietf:params:netconf:capability:confirmed-commit:1.0 urn:ietf:params:netconf:capability:validate:1.0 urn:ietf:params:netconf:capability:url:1.0?scheme=http,ftp,file urn:ietf:params:xml:ns:netconf:base:1.0 urn:ietf:params:xml:ns:netconf:capability:candidate:1.0 urn:ietf:params:xml:ns:netconf:capability:confirmed-commit:1.0 urn:ietf:params:xml:ns:netconf:capability:validate:1.0 urn:ietf:params:xml:ns:netconf:capability:url:1.0?scheme=http,ftp,file urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring http://xml.juniper.net/netconf/junos/1.0 http://xml.juniper.net/dmi/system/1.0 7478 ]]>]]>""" ), six.b(""), ] self.dev.open() @patch("jnpr.junos.transport.tty.sleep") @patch("jnpr.junos.transport.tty.tty_netconf.close") @patch("jnpr.junos.transport.tty_serial.Serial.read_prompt") @patch("jnpr.junos.transport.tty_serial.Serial.write") @patch("jnpr.junos.transport.tty_serial.Serial._tty_close") def tearDown( self, mock_serial_close, mock_write, mock_read, mock_close, mock_sleep ): mock_read.side_effect = [ ("shell", "shell"), ("login", "login"), ("cli", "cli"), ] self.dev.close() def test_tty_serial_win_connected(self): self.assertTrue(self.dev.connected) @patch("jnpr.junos.transport.tty.tty_netconf.close") @patch("jnpr.junos.transport.tty_serial.Serial._tty_close") def test_tty_serial_win_rpc_call(self, mock_serial_close, mock_close): self.dev._tty.read = MagicMock() self.dev._tty.rawwrite = MagicMock() self.dev._tty.read.side_effect = [ six.b( '' 'OK45 degrees C / 113 degre' 'es F61 d' "egrees C / 141 degrees F40961" "02425" "2624682261472353241" "20" "6083" "RE-SRX300CV0918AF" '10222020-03-18 08:48:25 CDT1 day, 14 hours, 18 minutes, 45 seconds0x1:power cycle/failure0.120.080." "06]]>]]>" ) ] res = self.dev.rpc.get_route_engine_information() self.assertEqual(res.tag, "route-engine-information") py-junos-eznc-2.7.3/tests/unit/transport/test_tty.py000066400000000000000000000142531475361112400226630ustar00rootroot00000000000000import logging try: import unittest2 as unittest except ImportError: import unittest import nose2 from unittest.mock import MagicMock, patch from jnpr.junos.transport.tty import Terminal from jnpr.junos import exception as EzErrors class TestTTY(unittest.TestCase): def setUp(self): logging.getLogger("jnpr.junos.tty") self.terminal = Terminal(user="test", password="password123", attempts=1) def test_login_bad_password_runtimeerror(self): self.terminal._badpasswd = 4 self.terminal.read_prompt = MagicMock() self.terminal.read_prompt.return_value = (None, "badpasswd") self.terminal.write = MagicMock() self.assertRaises(RuntimeError, self.terminal._login_state_machine) def test_login_bad_password_ConnectAuthError(self): self.terminal._badpasswd = 1 self.terminal.read_prompt = MagicMock() self.terminal.read_prompt.return_value = (None, "badpasswd") self.terminal.write = MagicMock() self.assertRaises(EzErrors.ConnectAuthError, self.terminal._login_state_machine) @patch("jnpr.junos.transport.tty.sleep") def test_tty_no_login(self, mock_sleep): self.terminal._badpasswd = 4 self.terminal.read_prompt = MagicMock() self.terminal.read_prompt.return_value = (None, "testing") self.terminal.write = MagicMock() self.assertRaises(RuntimeError, self.terminal._login_state_machine) self.terminal.write.assert_called_with("\n") self.terminal.read_prompt.return_value = (None, "testing") self.terminal.write = MagicMock() self.assertRaises(RuntimeError, self.terminal._login_state_machine) self.terminal.write.assert_called_with("") @patch("jnpr.junos.transport.tty.sleep") @patch("jnpr.junos.transport.tty.logger") def test_tty_cli(self, mock_logger, mock_sleep): self.terminal.read_prompt = MagicMock() self.terminal.read_prompt.return_value = (None, "cli") self.terminal._login_state_machine() self.assertEqual(self.terminal.state, 4) @patch("jnpr.junos.transport.tty.sleep") def test_loader(self, mock_sleep): self.terminal.write = MagicMock() self.terminal.read_prompt = MagicMock() self.terminal._loader = 2 # self.terminal._login_state_machine = MagicMock() self.terminal.read_prompt.side_effect = [(None, "loader"), (None, "testing")] self.assertRaises(RuntimeError, self.terminal._login_state_machine) mock_sleep.assert_called_with(300) @patch("jnpr.junos.transport.tty.logger") def test_ev_shell(self, mock_logger): self.terminal.write = MagicMock() self.terminal.read_prompt = MagicMock() self.terminal.read_prompt.return_value = (None, "shell") self.terminal._login_state_machine() self.assertEqual(self.terminal.state, 4) @patch("jnpr.junos.transport.tty.sleep") def test_ev_option(self, mock_sleep): self.terminal.write = MagicMock() self.terminal.read_prompt = MagicMock() self.terminal.read_prompt.return_value = (None, "option") self.assertRaises(RuntimeError, self.terminal._login_state_machine) self.terminal.write.assert_called_with("1") self.assertEqual(self.terminal.state, 7) @patch("jnpr.junos.transport.tty.sleep") def test_tty_ev_netconf_closed(self, mock_sleep): self.terminal.write = MagicMock() self.terminal._tty_close = MagicMock() self.terminal.read_prompt = MagicMock() self.terminal.read_prompt.side_effect = iter( [(None, "netconf_closed"), (None, "shell"), (None, "login")] ) self.assertTrue(self.terminal._logout_state_machine()) @patch("jnpr.junos.transport.tty.sleep") def test_tty_already_logout(self, mock_sleep): self.terminal.write = MagicMock() self.terminal.read_prompt = MagicMock() self.terminal.read_prompt.return_value = (None, None) self.assertTrue(self.terminal._logout_state_machine()) @patch("jnpr.junos.transport.tty.sleep") def test_tty_login_state_machine_loader(self, mock_sleep): self.terminal.write = MagicMock() self.terminal._loader = 1 self.terminal.read_prompt = MagicMock() self.terminal.read_prompt.side_effect = iter( [(None, "loader"), (None, "hotkey"), (None, "shell")] ) self.assertRaises(RuntimeError, self.terminal._login_state_machine) @patch("jnpr.junos.transport.tty.sleep") def test_tty_login_state_machine_loader(self, mock_sleep): self.terminal.write = MagicMock() self.terminal._loader = 1 self.terminal.read_prompt = MagicMock() self.terminal.read_prompt.side_effect = iter( [(None, "loader"), (None, "shell")] ) try: self.terminal._login_state_machine() except RuntimeError as ex: self.assertEqual(str(ex), "probably corrupted image, stuck in loader") @patch("jnpr.junos.transport.tty.sleep") def test_tty_login_state_machine_hotkey(self, mock_sleep): self.terminal.write = MagicMock() self.terminal.read_prompt = MagicMock() self.terminal.read_prompt.return_value = (None, "hotkey") self.assertRaises(RuntimeError, self.terminal._login_state_machine) self.assertEqual(self.terminal.state, 8) # 8 is for hot keys @patch("jnpr.junos.transport.tty.sleep") def test_tty_ev_tty_nologin(self, mock_sleep): self.terminal.write = MagicMock() self.terminal.read_prompt = MagicMock() self.terminal.read_prompt.return_value = (None, None) self.terminal.console_has_banner = True self.assertRaises(RuntimeError, self.terminal._login_state_machine) self.terminal.write.assert_called_with("\n") @patch("jnpr.junos.transport.tty.sleep") def test_tty_logout_state_machine_attempt_10(self, mock_sleep): self.terminal.write = MagicMock() self.terminal.read_prompt = MagicMock() self.terminal.read_prompt.return_value = (None, "cli") try: self.terminal._logout_state_machine() except RuntimeError as ex: self.assertEqual(str(ex), "logout_sm_failure") py-junos-eznc-2.7.3/tests/unit/transport/test_tty_netconf.py000066400000000000000000000156251475361112400244030ustar00rootroot00000000000000try: import unittest2 as unittest except ImportError: import unittest import nose2 from unittest.mock import MagicMock, patch from jnpr.junos.transport.tty_netconf import tty_netconf import six import os import select import socket from ncclient.operations import RPCError class TestTTYNetconf(unittest.TestCase): def setUp(self): self.tty_net = tty_netconf(MagicMock()) self.tty_net._tty.port = "/dev/tty" @patch("jnpr.junos.transport.tty_netconf.tty_netconf._receive") def test_open_at_shell_true(self, mock_rcv): mock_rcv.return_value = ( b"" b"" b'' b"" b"urn:ietf:params:netconf:base:1.0" b"urn:ietf:params:xml:ns:netconf:capability:validate:1.0" b"urn:ietf:params:xml:ns:netconf:capability:url:1.0?scheme=http,ftp,file" b"urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring" b"http://xml.juniper.net/netconf/junos/1.0" b"http://xml.juniper.net/dmi/system/1.0" b"" b"82697" b"" ) self.tty_net.open(True) self.tty_net._tty.write.assert_called_with("xml-mode netconf need-trailer") @patch("jnpr.junos.transport.tty_netconf.tty_netconf._receive") @patch("jnpr.junos.transport.tty_netconf.timedelta") def test_open_RuntimeError(self, mock_delta, mock_rcv): mock_rcv.return_value = "]]>]]>" self.tty_net._tty.read.return_value = six.b("testing") from datetime import timedelta mock_delta.return_value = timedelta(seconds=0.5) self.assertRaises(RuntimeError, self.tty_net.open, False) self.tty_net._tty.write.assert_called_with("junoscript netconf need-trailer") @patch("ncclient.operations.rpc.RPCReply.parse") @patch("jnpr.junos.transport.tty_netconf.tty_netconf._receive") def test_rpc(self, mock_rcv, mock_parse): mock_rcv.return_value = "]]>]]>" self.tty_net.rpc("get-interface-information") self.tty_net._tty.rawwrite.assert_called_with( six.b("") ) @patch("jnpr.junos.transport.tty_netconf.tty_netconf._receive") def test_tty_netconf_single_rpc_error(self, mock_rcv): mock_rcv.return_value = """ protocol operation-failed error interface-ranges expansion failed """ self.assertRaises(RPCError, self.tty_net.rpc, "commit-configuration") @patch("jnpr.junos.transport.tty_netconf.tty_netconf._receive") def test_tty_netconf_multi_rpc_error(self, mock_rcv): mock_rcv.return_value = self._read_file("commit-configuration.xml") self.assertRaises(RPCError, self.tty_net.rpc, "commit-configuration") @patch("jnpr.junos.transport.tty_netconf.tty_netconf.rpc") def test_close_force_true(self, mock_rpc): self.tty_net.close(True) mock_rpc.assert_called_with("close-session") @patch("jnpr.junos.transport.tty_netconf.tty_netconf.rpc") def test_close_force_false(self, mock_rpc): self.tty_net.close(False) self.assertTrue("close-session" not in mock_rpc.call_args_list) @patch("jnpr.junos.transport.tty_netconf.tty_netconf.rpc") def test_zeroize_exception(self, mock_rpc): mock_rpc.side_effect = ValueError self.assertTrue(not self.tty_net.zeroize()) @patch("jnpr.junos.transport.tty_netconf.select.select") def test_tty_netconf_receive_select_error(self, mock_select): mock_select.side_effect = select.error self.assertRaises(select.error, self.tty_net._receive) @patch("jnpr.junos.transport.tty_netconf.select.select") def test_tty_netconf_receive_socket_error(self, mock_select): mock_select.side_effect = socket.error self.assertRaises(socket.error, self.tty_net._receive) @patch("jnpr.junos.transport.tty_netconf.select.select") def test_tty_netconf_receive_empty_line(self, mock_select): rx = MagicMock() rx.read_until.side_effect = iter([six.b(""), six.b("]]>]]>")]) mock_select.return_value = ([rx], [], []) self.assertEqual(self.tty_net._receive().tag, "error-in-receive") @patch("jnpr.junos.transport.tty_netconf.select.select") def test_tty_netconf_receive_splited_eom(self, mock_select): rx = MagicMock() rx.read_until.side_effect = iter(["testing]", "]>", "]]>"]) mock_select.return_value = ([rx], [], []) self.assertEqual(self.tty_net._receive().tag, "error-in-receive") @patch("jnpr.junos.transport.tty_netconf.select.select") def test_tty_netconf_receive_splited_eom(self, mock_select): rx = MagicMock() rx.read_until.side_effect = iter([six.b(i) for i in ["testing]", "]>", "]]>"]]) mock_select.return_value = ([rx], [], []) self.assertEqual(self.tty_net._receive().tag, "error-in-receive") @patch("jnpr.junos.transport.tty_netconf.select.select") def test_tty_netconf_receive_XMLSyntaxError(self, mock_select): rx = MagicMock() rx.read_until.side_effect = iter( [six.b("ok"), six.b("\n]]>]]>")] ) mock_select.return_value = ([rx], [], []) self.assertEqual( self.tty_net._receive(), six.b("ok") ) @patch("jnpr.junos.transport.tty_netconf.select.select") def test_tty_netconf_receive_XMLSyntaxError_eom_in_center(self, mock_select): rx = MagicMock() rx.read_until.side_effect = iter( [six.b("ok"), six.b("]]>]]>\ndummy")] ) mock_select.return_value = ([rx], [], []) self.assertEqual(self.tty_net._receive(), six.b("ok")) @patch("jnpr.junos.transport.tty_netconf.select.select") def test_tty_netconf_receive_xmn_error(self, mock_select): rx = MagicMock() rx.read_until.side_effect = iter( [ six.b("ok"), six.b("\n\n"), six.b("]]>]]>\ndummy"), ] ) mock_select.return_value = ([rx], [], []) self.assertEqual(self.tty_net._receive().tag, "error-in-receive") def _read_file(self, fname): fpath = os.path.join(os.path.dirname(__file__), "rpc-reply", fname) foo = open(fpath).read() # specific to multi rpc error if fname == "commit-configuration.xml": return foo py-junos-eznc-2.7.3/tests/unit/transport/test_tty_ssh.py000066400000000000000000000034731475361112400235420ustar00rootroot00000000000000import socket import sys try: import unittest2 as unittest except ImportError: import unittest import nose2 from unittest.mock import MagicMock, patch from jnpr.junos.transport.tty_ssh import SSH class TestTTYSSH(unittest.TestCase): @patch("jnpr.junos.transport.tty_ssh.paramiko") def setUp(self, mock_paramiko): self.ssh_conn = SSH( host="1.1.1.1", user="test", password="password123", port=3007, timeout=30 ) self._ssh = mock_paramiko.invoke_shell def test_open(self): self.ssh_conn._tty_open() self.ssh_conn._ssh_pre.connect.assert_called() def test_open_exception(self): self.ssh_conn._ssh_pre.connect.side_effect = socket.error SSH.RETRY_OPEN = 1 SSH.RETRY_BACKOFF = 0.1 self.assertRaises(RuntimeError, self.ssh_conn._tty_open) # reset SSH.RETRY_OPEN = 3 SSH.RETRY_BACKOFF = 2 def test_read(self): self.ssh_conn._tty_open() self.assertRaises(ValueError, self.ssh_conn.read) def test_close(self): self.assertEqual(self.ssh_conn._tty_close(), None) @patch("jnpr.junos.transport.tty_ssh.paramiko") def test_tty_ssh_baud(self, mock_paramiko): self.ssh_conn = SSH( host="1.1.1.1", user="test", password="password123", port=3007, timeout=30, baud=0, ) self.ssh_conn._tty_open() self.ssh_conn.rawwrite("") self.ssh_conn._ssh.sendall.assert_called_with("") def test_tty_ssh_rawwrite_sys_py3(self): with patch.object(sys.modules["sys"], "version", "3.x") as mock_sys: self.ssh_conn._tty_open() content = MagicMock() self.ssh_conn.rawwrite(content) content.decode.assert_called_with("utf-8") py-junos-eznc-2.7.3/tests/unit/transport/test_tty_telnet.py000066400000000000000000000044721475361112400242400ustar00rootroot00000000000000import sys try: import unittest2 as unittest except ImportError: import unittest import nose2 from unittest.mock import MagicMock, patch from jnpr.junos.transport.tty_telnet import Telnet import six class TestTTYTelnet(unittest.TestCase): @patch("jnpr.junos.transport.tty_telnet.telnetlib.Telnet") def setUp(self, mpock_telnet): self.tel_conn = Telnet( host="1.1.1.1", user="test", password="password123", port=23, timeout=30 ) def test_open(self): self.tel_conn._tty_open() self.tel_conn._tn.open.assert_called() def test_open_exception(self): self.tel_conn._tn.open.side_effect = Exception Telnet.RETRY_OPEN = 1 Telnet.RETRY_BACKOFF = 0.1 self.assertRaises(RuntimeError, self.tel_conn._tty_open) # reset Telnet.RETRY_OPEN = 3 Telnet.RETRY_BACKOFF = 2 def test_close(self): self.tel_conn._tty_close() self.tel_conn._tn.close.assert_called() def test_read(self): self.tel_conn.read() self.tel_conn._tn.read_until.assert_called() @patch("jnpr.junos.transport.tty_telnet.telnetlib.Telnet") def test_tty_telnet_baud(self, mock_telnet): tel_conn = Telnet( host="1.1.1.1", user="test", password="password123", port=23, timeout=30, baud=0, ) tel_conn._tty_open() tel_conn.rawwrite("") tel_conn._tn.write.assert_called_with("") def test_read_prompt_RuntimeError(self): self.tel_conn.expect = MagicMock() self.tel_conn.expect = (None, None, "port already in use") self.assertRaises(RuntimeError, self.tel_conn._login_state_machine) def test_read_prompt_in_use_RuntimeError(self): self.tel_conn.expect = MagicMock() self.tel_conn._tn.expect.return_value = ( None, None, six.b("port already in use"), ) self.assertRaises(RuntimeError, self.tel_conn._login_state_machine) def test_tty_telnet_rawwrite_sys_py3(self): with patch.object(sys.modules["sys"], "version", "3.x") as mock_sys: self.tel_conn._tty_open() content = MagicMock() self.tel_conn.rawwrite(content) content.decode.assert_called_with("utf-8") py-junos-eznc-2.7.3/tests/unit/utils/000077500000000000000000000000001475361112400175315ustar00rootroot00000000000000py-junos-eznc-2.7.3/tests/unit/utils/__init__.py000066400000000000000000000000001475361112400216300ustar00rootroot00000000000000py-junos-eznc-2.7.3/tests/unit/utils/rpc-reply/000077500000000000000000000000001475361112400214465ustar00rootroot00000000000000py-junos-eznc-2.7.3/tests/unit/utils/rpc-reply/check-in-service-upgrade.xml000066400000000000000000000020201475361112400267260ustar00rootroot00000000000000 hup Verified junos-install-mx-x86-64-16.1-20160925.0 signed by PackageDevelopmentEc_2016 Verified manifest signed by PackageDevelopmentEc_2016 Checking PIC combinations Verified fips-mode signed by PackageDevelopmentEc_2016 Verified jail-runtime signed by PackageDevelopmentEc_2016 Verified jdocs signed by PackageDevelopmentEc_2016 Verified jpfe-X960 signed by PackageDevelopmentEc_2016 Verified jpfe-common signed by PackageDevelopmentEc_2016 Verified jpfe-wrlinux signed by PackageDevelopmentEc_2016 Verified jsd signed by PackageDevelopmentEc_2016 Verified vrr-mx signed by PackageDevelopmentEc_2016 0 py-junos-eznc-2.7.3/tests/unit/utils/rpc-reply/checksum.xml000066400000000000000000000002701475361112400237710ustar00rootroot00000000000000 xxxx py-junos-eznc-2.7.3/tests/unit/utils/rpc-reply/commit-configuration.xml000066400000000000000000000011011475361112400263160ustar00rootroot00000000000000 protocol operation-failed error interface-range 'axp' is not defined protocol operation-failed error interface-ranges expansion failed py-junos-eznc-2.7.3/tests/unit/utils/rpc-reply/file-archive.xml000066400000000000000000000011071475361112400245250ustar00rootroot00000000000000 testing tgz /var/tmp//abckLjq /var/tmp//abckLjq abc.tar py-junos-eznc-2.7.3/tests/unit/utils/rpc-reply/file-list_dir.xml000066400000000000000000000015531475361112400247220ustar00rootroot00000000000000 /var 123 abc 555 root xyz 1 2 1392651039 py-junos-eznc-2.7.3/tests/unit/utils/rpc-reply/file-list_file.xml000066400000000000000000000014731475361112400250640ustar00rootroot00000000000000 /var/abc.sh 755 pqr abc 1 2 1394693680 1 py-junos-eznc-2.7.3/tests/unit/utils/rpc-reply/file-list_symlink.xml000066400000000000000000000016211475361112400256260ustar00rootroot00000000000000 /var 123 abc symlink test 555 root xyz 1 2 1392651039 py-junos-eznc-2.7.3/tests/unit/utils/rpc-reply/file-show.xml000066400000000000000000000004211475361112400240620ustar00rootroot00000000000000 testing cat functionality py-junos-eznc-2.7.3/tests/unit/utils/rpc-reply/get-chassis-inventory.xml000066400000000000000000000023161475361112400264370ustar00rootroot00000000000000 Chassis aaf5fe5f9b88 FIREFLY-PERIMETER Midplane System IO Routing Engine FIREFLY-PERIMETER RE FPC 0 Virtual FPC PIC 0 Virtual GE Power Supply 0 py-junos-eznc-2.7.3/tests/unit/utils/rpc-reply/get-checksum-information.xml000066400000000000000000000006241475361112400270740ustar00rootroot00000000000000 MD5 safecopy.tgz 96a35ab371e1ca10408c3caecdbd8a67 py-junos-eznc-2.7.3/tests/unit/utils/rpc-reply/get-configuration.xml000066400000000000000000000212331475361112400256150ustar00rootroot00000000000000 12.1X46-D15.3 firefly $1$kmSqRIU6$9EogG7ow0DWiww9mev8.b. rick 2000 super-user $1$wDDri7eJ$2Ot4pfE29PgVbeutIveov1 ge-0/0/0.0 * any messages any authorization interactive-commands interactive-commands https://ae1.juniper.net/junos/key_retrieval ge-0/0/0 0
10.0.0.31/24
ge-0/0/1 0
192.168.2.1/24
0.0.0.0/0 10.0.0.1 untrust-screen 1024 200 1024 2048 2000 20 trust trust default-permit any any any trust untrust default-permit any any any untrust trust default-deny any any any trust untrust untrust-screen ge-0/0/0.0 http https ssh telnet dhcp netconf
py-junos-eznc-2.7.3/tests/unit/utils/rpc-reply/get-directory-usage-information.xml000066400000000000000000000032171475361112400304010ustar00rootroot00000000000000 /var/tmp /var/tmp/install 2.0K /var/tmp/vi.recover 2.0K /var/tmp/pics 2.0K /var/tmp/gres-tp 34K /var/tmp/rtsdb 2.0K /var/tmp/sec-download 4.0K 223M py-junos-eznc-2.7.3/tests/unit/utils/rpc-reply/get-directory-usage-information_error1.xml000066400000000000000000000003061475361112400316670ustar00rootroot00000000000000 py-junos-eznc-2.7.3/tests/unit/utils/rpc-reply/get-directory-usage-information_error2.xml000066400000000000000000000031101475361112400316640ustar00rootroot00000000000000 /var/tmp /var/tmp/install 2.0K /var/tmp/vi.recover 2.0K /var/tmp/pics 2.0K /var/tmp/gres-tp 34K /var/tmp/rtsdb 2.0K 4.0K 223M py-junos-eznc-2.7.3/tests/unit/utils/rpc-reply/get-route-engine-information.xml000066400000000000000000000031111475361112400276650ustar00rootroot00000000000000 Testing 2048 819 40 1150 460 40 898 350 39 0 0 0 0 100 FIREFLY-PERIMETER RE 2014-03-26 13:15:20 UTC 6 hours, 29 minutes, 30 seconds Router rebooted after a normal shutdown. 0.00 0.00 0.00 py-junos-eznc-2.7.3/tests/unit/utils/rpc-reply/get-routing-task-replication-state.xml000066400000000000000000000004321475361112400310200ustar00rootroot00000000000000 Enabled Master py-junos-eznc-2.7.3/tests/unit/utils/rpc-reply/get-software-information.xml000066400000000000000000000007611475361112400271260ustar00rootroot00000000000000 firefly firefly-perimeter firefly-perimeter junos JUNOS Software Release [12.1X46-D15.3] py-junos-eznc-2.7.3/tests/unit/utils/rpc-reply/get-storage-usage-linux.xml000066400000000000000000000015571475361112400266600ustar00rootroot00000000000000 re0 /dev/sda6 2015024 2688 1874712 1 /data/config py-junos-eznc-2.7.3/tests/unit/utils/rpc-reply/get-system-storage.xml000066400000000000000000000011241475361112400257310ustar00rootroot00000000000000 /dev/abc 567431 2346455 234234 1 / py-junos-eznc-2.7.3/tests/unit/utils/rpc-reply/local.xml000066400000000000000000000034651475361112400232720ustar00rootroot00000000000000 System will be rebooted and may not boot without configuration yes Perform the operation no Don't perform the operation no Erase all data, including configuration and log files? [yes,no] (no) re1 ipsec-key-management subsystem not running - not needed by configuration. ipsec-key-management zeroizing re1 zeroizing re0 py-junos-eznc-2.7.3/tests/unit/utils/rpc-reply/request-halt.xml000066400000000000000000000022261475361112400246100ustar00rootroot00000000000000 This command will not halt the other routing-engine. If planning to switch off power, use the both-routing-engines option. yes Perform the operation no Don't perform the operation no Halt the system ? [yes,no] (no) Shutdown NOW! [pid 13517] py-junos-eznc-2.7.3/tests/unit/utils/rpc-reply/request-package-add.no_mx80_packages.xml000066400000000000000000000004121475361112400311210ustar00rootroot00000000000000 hup ERROR: package: /var/tmp/nonexistent.tgz is not found or empty py-junos-eznc-2.7.3/tests/unit/utils/rpc-reply/request-package-add.no_result.xml000066400000000000000000000025561475361112400300200ustar00rootroot00000000000000 hup /var/tmp/incoming-package.31020 1742 kB 1742 kBps Package contains junos-11.1R3.5.tgz ; renaming ... Formatting alternate root (/dev/ad0s1a)... /dev/ad0s1a: 299.7MB (613792 sectors) block size 16384, fragment size 2048 using 4 cylinder groups of 74.94MB, 4796 blks, 9600 inodes. super-block backups (for fsck -b #) at: 32, 153504, 306976, 460448 Removing /var/tmp/junos-11.1R3.5.tgz Installing package '/altroot/cf/packages/install-tmp/junos-11.1R3.5-domestic' ... Verified junos-boot-srxsme-11.1R3.5.tgz signed by PackageProduction_11_1_0 Verified junos-srxsme-11.1R3.5-domestic signed by PackageProduction_11_1_0 Saving boot file package in /var/sw/pkg/junos-boot-srxsme-11.1R3.5.tgz JUNOS 11.1R3.5 will become active at next reboot WARNING: A reboot is required to load this software correctly WARNING: Use the 'request system reboot' command WARNING: when software installation is complete Saving state for rollback ... py-junos-eznc-2.7.3/tests/unit/utils/rpc-reply/request-package-add.xml000066400000000000000000000026561475361112400260100ustar00rootroot00000000000000 hup /var/tmp/incoming-package.31020 1742 kB 1742 kBps Package contains junos-11.1R3.5.tgz ; renaming ... Formatting alternate root (/dev/ad0s1a)... /dev/ad0s1a: 299.7MB (613792 sectors) block size 16384, fragment size 2048 using 4 cylinder groups of 74.94MB, 4796 blks, 9600 inodes. super-block backups (for fsck -b #) at: 32, 153504, 306976, 460448 Removing /var/tmp/junos-11.1R3.5.tgz Installing package '/altroot/cf/packages/install-tmp/junos-11.1R3.5-domestic' ... Verified junos-boot-srxsme-11.1R3.5.tgz signed by PackageProduction_11_1_0 Verified junos-srxsme-11.1R3.5-domestic signed by PackageProduction_11_1_0 Saving boot file package in /var/sw/pkg/junos-boot-srxsme-11.1R3.5.tgz JUNOS 11.1R3.5 will become active at next reboot WARNING: A reboot is required to load this software correctly WARNING: Use the 'request system reboot' command WARNING: when software installation is complete Saving state for rollback ... 0 py-junos-eznc-2.7.3/tests/unit/utils/rpc-reply/request-package-check-pending-install-error.xml000066400000000000000000000004001475361112400325330ustar00rootroot00000000000000 There is already an install pending. Use the 'request system reboot' command to complete the install, or the 'request system software rollback' command to back it out. 1 py-junos-eznc-2.7.3/tests/unit/utils/rpc-reply/request-package-check-pending-install.xml000066400000000000000000000001201475361112400314030ustar00rootroot00000000000000 0 py-junos-eznc-2.7.3/tests/unit/utils/rpc-reply/request-package-in-service-upgrade.xml000066400000000000000000000020201475361112400307320ustar00rootroot00000000000000 hup Verified junos-install-mx-x86-64-16.1-20160925.0 signed by PackageDevelopmentEc_2016 Verified manifest signed by PackageDevelopmentEc_2016 Checking PIC combinations Verified fips-mode signed by PackageDevelopmentEc_2016 Verified jail-runtime signed by PackageDevelopmentEc_2016 Verified jdocs signed by PackageDevelopmentEc_2016 Verified jpfe-X960 signed by PackageDevelopmentEc_2016 Verified jpfe-common signed by PackageDevelopmentEc_2016 Verified jpfe-wrlinux signed by PackageDevelopmentEc_2016 Verified jsd signed by PackageDevelopmentEc_2016 Verified vrr-mx signed by PackageDevelopmentEc_2016 0 py-junos-eznc-2.7.3/tests/unit/utils/rpc-reply/request-package-nonstop-upgrade.xml000066400000000000000000000020201475361112400303660ustar00rootroot00000000000000 hup Verified junos-install-mx-x86-64-16.1-20160925.0 signed by PackageDevelopmentEc_2016 Verified manifest signed by PackageDevelopmentEc_2016 Checking PIC combinations Verified fips-mode signed by PackageDevelopmentEc_2016 Verified jail-runtime signed by PackageDevelopmentEc_2016 Verified jdocs signed by PackageDevelopmentEc_2016 Verified jpfe-X960 signed by PackageDevelopmentEc_2016 Verified jpfe-common signed by PackageDevelopmentEc_2016 Verified jpfe-wrlinux signed by PackageDevelopmentEc_2016 Verified jsd signed by PackageDevelopmentEc_2016 Verified vrr-mx signed by PackageDevelopmentEc_2016 0 py-junos-eznc-2.7.3/tests/unit/utils/rpc-reply/request-package-rollback-multi-error.xml000066400000000000000000000014121475361112400313150ustar00rootroot00000000000000 fpc0 JUNOS version "D10.2" will become active at next reboot 0 member1 ERROR: cannot locate jroute-14.2I20140424_0657_ramas: rollback aborted 1 {master:member1-re0} py-junos-eznc-2.7.3/tests/unit/utils/rpc-reply/request-package-rollback.xml000066400000000000000000000011441475361112400270400ustar00rootroot00000000000000 fpc0 JUNOS version "D10.2" will become active at next reboot 0 fpc1 Junos version 'D10.2' will become active at next reboot 0 {master:member1-re0} py-junos-eznc-2.7.3/tests/unit/utils/rpc-reply/request-package-validate.xml000066400000000000000000000035721475361112400270470ustar00rootroot00000000000000 hup Checking compatibility with configuration Initializing... rm: /var/validate/chroot/var/etc/pam.conf: Operation not permitted rm: /var/validate/chroot/var/etc: Directory not empty rm: /var/validate/chroot/var: Directory not empty rm: /var/validate/chroot: Directory not empty Using jbase-13.2I20140401_1054_katharh Using /var/tmp/py-extensions-i386-13.2I20140430_1237_katharh.tgz Checking py-extensions-i386 requirements on / Verified py-extensions-i386-13.2I20140430_1237_katharh signed by PackageDevelopment_13_2_0 Registering py-extensions-i386 as unsupported Using jruntime-13.2I20140401_1054_katharh Using jkernel-13.2I20140401_1054_katharh Using jroute-13.2I20140401_1054_katharh Using jcrypto-13.2I20140401_1054_katharh cp: /var/validate/chroot/var/etc/pam.conf: Operation not permitted Hardware Database regeneration succeeded Validating against /config/juniper.conf.gz mgd: error: schema: dbs_remap_daemon_index: could not find daemon name 'analyticsd' mgd: warning: schema: init: 'logical-systems-vlans' contains-node 'juniper-config vlans': not found mgd: error: rename failed for /var/etc/pam.conf mgd: commit complete Validation succeeded rm: /var/validate/chroot/var/etc/pam.conf: Operation not permitted rm: /var/validate/chroot/var/etc: Directory not empty rm: /var/validate/chroot/var: Directory not empty rm: /var/validate/chroot: Directory not empty 0 py-junos-eznc-2.7.3/tests/unit/utils/rpc-reply/request-power-off.xml000066400000000000000000000021731475361112400255650ustar00rootroot00000000000000 This command will not halt the other routing-engine. If planning to switch off power, use the both-routing-engines option. yes Perform the operation no Don't perform the operation no Power Off the system ? [yes,no] (no) Shutdown NOW! [pid 17221] py-junos-eznc-2.7.3/tests/unit/utils/rpc-reply/request-reboot-at.xml000066400000000000000000000015301475361112400255510ustar00rootroot00000000000000 yes Perform the operation no Don't perform the operation no Reboot the system ? [yes,no] (no) Shutdown at Wed Jul 9 18:15:00 2014 [pid 4446] py-junos-eznc-2.7.3/tests/unit/utils/rpc-reply/request-reboot-output.xml000066400000000000000000000006201475361112400265040ustar00rootroot00000000000000 Initiating vmhost reboot... warning Rebooting re0 in 1 min warning Initiating Junos shutdown... shutdown: [pid 13192] Shutdown at Thu Aug 6 09:27:13 2020. py-junos-eznc-2.7.3/tests/unit/utils/rpc-reply/request-reboot.xml000066400000000000000000000015021475361112400251460ustar00rootroot00000000000000 yes Perform the operation no Don't perform the operation no Reboot the system ? [yes,no] (no) Shutdown NOW! [pid 17221] py-junos-eznc-2.7.3/tests/unit/utils/rpc-reply/request-shell-execute.xml000066400000000000000000000012431475361112400264250ustar00rootroot00000000000000 On Not Ready {backup} py-junos-eznc-2.7.3/tests/unit/utils/rpc-reply/request-system-storage-cleanup.xml000066400000000000000000000007141475361112400302730ustar00rootroot00000000000000 /var/abc.txt 11 Apr 25 10:38 py-junos-eznc-2.7.3/tests/unit/utils/rpc-reply/request-vmhost-package-add.xml000066400000000000000000000351261475361112400273240ustar00rootroot00000000000000 Junos Validation begin. Procedure will take few minutes. Initializing... Verified os-libs-10-x86-64-20170607 signed by PackageProductionEc_2017 method ECDSA256+SHA256 Mounting os-libs-10-x86-64-20170607.351421_builder_stable_10 Verified os-runtime-x86-64-20170607 signed by PackageProductionEc_2017 method ECDSA256+SHA256 Mounting os-runtime-x86-64-20170607.351421_builder_stable_10 Verified os-zoneinfo-x86-64-20170607 signed by PackageProductionEc_2017 method ECDSA256+SHA256 Mounting os-zoneinfo-x86-64-20170607.351421_builder_stable_10 Verified os-libs-compat32-10-x86-64-20170607 signed by PackageProductionEc_2017 method ECDSA256+SHA256 Mounting os-libs-compat32-10-x86-64-20170607.351421_builder_stable_10 Verified os-compat32-x86-64-20170607 signed by PackageProductionEc_2017 method ECDSA256+SHA256 Mounting os-compat32-x86-64-20170607.351421_builder_stable_10 Verified py-base-x86-32-20170630 signed by PackageProductionEc_2017 method ECDSA256+SHA256 Mounting py-base-x86-32-20170630.054423_builder_junos_151_f6_s7 Verified os-vmguest-x86-64-20170607 signed by PackageProductionEc_2017 method ECDSA256+SHA256 Mounting os-vmguest-x86-64-20170607.351421_builder_stable_10 Verified os-crypto-x86-64-20170607 signed by PackageProductionEc_2017 method ECDSA256+SHA256 Mounting os-crypto-x86-64-20170607.351421_builder_stable_10 Verified junos-net-prd-x86-64-20170630 signed by PackageProductionEc_2017 method ECDSA256+SHA256 Mounting junos-net-prd-x86-64-20170630.054423_builder_junos_151_f6_s7 Verified junos-modules-x86-64-20170630 signed by PackageProductionEc_2017 method ECDSA256+SHA256 Mounting junos-modules-x86-64-20170630.054423_builder_junos_151_f6_s7 Verified junos-libs-compat32-x86-64-20170630 signed by PackageProductionEc_2017 method ECDSA256+SHA256 Mounting junos-libs-compat32-x86-64-20170630.054423_builder_junos_151_f6_s7 Verified junos-runtime-x86-32-20170630 signed by PackageProductionEc_2017 method ECDSA256+SHA256 Mounting junos-runtime-x86-32-20170630.054423_builder_junos_151_f6_s7 Verified junos-platform-x86-32-20170630 signed by PackageProductionEc_2017 method ECDSA256+SHA256 Mounting junos-platform-x86-32-20170630.054423_builder_junos_151_f6_s7 Verified junos-libs-x86-64-20170630 signed by PackageProductionEc_2017 method ECDSA256+SHA256 Mounting junos-libs-x86-64-20170630.054423_builder_junos_151_f6_s7 Verified junos-dp-crypto-support-mtx-x86-32-20170630 signed by PackageProductionEc_2017 method ECDSA256+SHA256 Mounting junos-dp-crypto-support-mtx-x86-32-20170630.054423_builder_junos_151_f6_s7 Verified junos-daemons-x86-64-20170630 signed by PackageProductionEc_2017 method ECDSA256+SHA256 Mounting junos-daemons-x86-64-20170630.054423_builder_junos_151_f6_s7 Verified jservices-voice-x86-32-20170630 signed by PackageProductionEc_2017 method ECDSA256+SHA256 Verified jservices-ssl-x86-32-20170630 signed by PackageProductionEc_2017 method ECDSA256+SHA256 Verified jservices-sfw-x86-32-20170630 signed by PackageProductionEc_2017 method ECDSA256+SHA256 Verified jservices-rpm-x86-32-20170630 signed by PackageProductionEc_2017 method ECDSA256+SHA256 Verified jservices-ptsp-x86-32-20170630 signed by PackageProductionEc_2017 method ECDSA256+SHA256 Verified jservices-nat-x86-32-20170630 signed by PackageProductionEc_2017 method ECDSA256+SHA256 Verified jservices-mss-x86-32-20170630 signed by PackageProductionEc_2017 method ECDSA256+SHA256 Verified jservices-mobile-x86-32-20170630 signed by PackageProductionEc_2017 method ECDSA256+SHA256 Verified jservices-llpdf-x86-32-20170630 signed by PackageProductionEc_2017 method ECDSA256+SHA256 Verified jservices-jflow-x86-32-20170630 signed by PackageProductionEc_2017 method ECDSA256+SHA256 Verified jservices-ipsec-x86-32-20170630 signed by PackageProductionEc_2017 method ECDSA256+SHA256 Verified jservices-idp-x86-32-20170630 signed by PackageProductionEc_2017 method ECDSA256+SHA256 Verified jservices-hcm-x86-32-20170630 signed by PackageProductionEc_2017 method ECDSA256+SHA256 Verified jservices-crypto-base-x86-32-20170630 signed by PackageProductionEc_2017 method ECDSA256+SHA256 Verified jservices-cpcd-x86-32-20170630 signed by PackageProductionEc_2017 method ECDSA256+SHA256 Verified jservices-cos-x86-32-20170630 signed by PackageProductionEc_2017 method ECDSA256+SHA256 Verified jservices-bgf-x86-32-20170630 signed by PackageProductionEc_2017 method ECDSA256+SHA256 Verified jservices-appid-x86-32-20170630 signed by PackageProductionEc_2017 method ECDSA256+SHA256 Verified jservices-alg-x86-32-20170630 signed by PackageProductionEc_2017 method ECDSA256+SHA256 Verified jservices-aacl-x86-32-20170630 signed by PackageProductionEc_2017 method ECDSA256+SHA256 Verified jpfe-common-x86-32-20170630 signed by PackageProductionEc_2017 method ECDSA256+SHA256 Mounting jpfe-common-x86-32-20170630.054423_builder_junos_151_f6_s7 Verified jdocs-x86-32-20170630 signed by PackageProductionEc_2017 method ECDSA256+SHA256 Mounting jdocs-x86-32-20170630.054423_builder_junos_151_f6_s7 Verified fips-mode-x86-32-20170630 signed by PackageProductionEc_2017 method ECDSA256+SHA256 Mounting fips-mode-x86-32-20170630.054423_builder_junos_151_f6_s7 Hardware Database regeneration succeeded Validating against /config/juniper.conf.gz mgd: commit complete Validation succeeded hup Verified junos-vmhost-install-ptx-x86-64-15.1F6-S7.2 signed by PackageProductionEc_2017 method ECDSA256+SHA256 Copied the config and other data to the aux disk. Transfer junos-host-upgrade.sh Transfer Done Transfer /packages/db/pkginst.69723/junos-vmhost-install*.tgz Transfer Done Starting upgrade ... Preparing for upgrade... /tmp/pkg-QWC/unpack/install/ tar --directory=/tmp/pkg-QWC/unpack/install/ -xvf /tmp/install.tgz ./ ./vm/ ./vm/re_fpga-1.0-0.x86_64.rpm ./vm/vsmartd-1.0-0.x86_64.rpm ./vm/grub.cfg.ngre ./vm/resild-1.0-0.x86_64.rpm ./vm/note ./junos/ ./junos/junos-mtre-install.sh ./junos/junos-mtre-upgrade.sh ./vmhost/ ./vmhost/vmhost-x86_64-15.1F6-S7-20170608_0128_builder.img.gz ./vmhost/README ./vmhost-core-x86_64-15.1F6-S7-20170608_0128_builder.tgz ./vmhost-version.sh ./vmhost-pkgs-version ./hostd/ ./hostd/jhost_core-1.0-1706080443.x86_64.rpm ./hostd/vehostd-note.txt ./hostd/vehostd-ovp-install.sh ./vmhost-version ./scripts/ ./scripts/mount-usb-img.sh ./scripts/target-scripts/ ./scripts/target-scripts/mk-mtre-rollback.sh ./scripts/target-scripts/savelog ./scripts/target-scripts/mk-mtre-zeroize.sh ./scripts/target-scripts/vmhost-partition.inc ./scripts/target-scripts/02setmac.sh ./scripts/target-scripts/S05rootunion.sh ./scripts/target-scripts/S05ovprootrwS.sh ./scripts/target-scripts/S05ovprootrw.sh ./scripts/target-scripts/vmhost-kdump.inc ./scripts/target-scripts/mtre-ssd-version.sh ./scripts/target-scripts/mk-mtre-partition.sh ./scripts/target-scripts/vmhost-kdump-configure ./scripts/target-scripts/vmhost-kdump-process.sh ./scripts/target-scripts/mtre-ssd-snapshot.sh ./scripts/target-scripts/01vehostd_setup.sh ./scripts/target-scripts/gt-mtre-version.sh ./scripts/target-scripts/platfom_specific_init ./scripts/target-scripts/mtre-ssd-zeroize.sh ./scripts/target-scripts/S05rootunionS.sh ./scripts/target-scripts/mk-mtre-snapshot.sh ./scripts/target-scripts/03boot_info.sh ./scripts/target-scripts/vmhost-misc.inc ./scripts/target-scripts/01boot_setup.sh ./scripts/target-scripts/vmhost-kdump-input.sh ./scripts/target-scripts/mtre-ssd-rollback.sh ./scripts/target-scripts/S08jhostrpminstall.sh ./scripts/target-scripts/vmhost_version_get_major.sh ./scripts/target-scripts/vmhost-kdump-usb-format.sh ./scripts/target-scripts/00read_only_root.sh ./scripts/target-scripts/S04modutilsPost.sh ./scripts/target-scripts/00junos_setup.sh ./scripts/target-scripts/rc.local ./scripts/mk-mtre-partition.sh ./scripts/ddimage ./scripts/mtre-installer.sh ./scripts/mtre-ssd-installer.sh ./scripts/mk-mtre-upgrade.sh ./scripts/ssd-ovp-installer.sh ./scripts/grub.cfg.ngre ./scripts/mk-part-mtre-install.sh ./scripts/mtre-ssd-upgrade.sh ./bin/ ./bin/telnet.netkit junos/ junos/junos-install-x86-64-15.1F6-S7.2.img.gz /tmp/pkg-QWC/unpack/install// sh /tmp/pkg-QWC/unpack/install///scripts/mtre-ssd-upgrade.sh /tmp/pkg-QWC/unpack/install// Current root details, Device sda, Label: jrootb_P, Partition: sda4 Copying /tmp/pkg-QWC/unpack/install///vmhost/vmhost-x86_64-15.1F6-S7-20170608_0128_builder.img.gz to tmp dir: /tmp/install-31a ... Testing /tmp/install-31a/vmhost-x86_64-15.1F6-S7-20170608_0128_builder.img.gz for compression ... Uncompressing Linux: /tmp/install-31a/vmhost-x86_64-15.1F6-S7-20170608_0128_builder.img.gz ... Image details ============= image: '/tmp/install-31a/vmhost-x86_64-15.1F6-S7-20170608_0128_builder.img' size: 1998585856 bytes modified: 2017-08-16 16:39:22.462996193 +0200 type: x86 boot sector Finding alternate root for upgrade Upgrading software on jrootp_P ... Inputs: jrootp_P p /dev/sda /tmp/install-31a/vmhost-x86_64-15.1F6-S7-20170608_0128_builder.img P /tmp/pkg-QWC/unpack/install// Mounting images and device in preparation for upgrade... USBIMG_BOOT_OFFSET: 1048576, USBIMG_BOOT_SIZELIMIT: 134217728, USBIMG_ROOT_OFFSET: 135266304, USBIMG_ROOT_SIZELIMIT: 1863319552 Cleaning target ROOTFS jrootp_P Copying ROOTFS files... Upgrading administrative Junos context ... Testing /tmp/partdisk-cfO/jlvmjunosfs/Current.p/junos-install-x86-64-15.1F6-S7.2.img.gz for compression ... Uncompressing Junos: /tmp/partdisk-cfO/jlvmjunosfs/Current.p/junos-install-x86-64-15.1F6-S7.2.img.gz ... Done with Junos Upgrade Upgrading hostd content ... ./ ./rasdaemon_install.sh ./i40e_pkg_install.sh ./resild_install.sh ./jhost_core-1.0-1706080443.x86_64.rpm ./re_fpga-1.0-0.x86_64.rpm ./i40e_pkg-1.0-0.x86_64.rpm ./bios_pkg-1.0-0.x86_64.rpm ./vsmartd-1.0-0.x86_64.rpm ./monit_install.sh ./vmhost-version.sh ./vmhost-version ./vmhost-firmware-x86_64-15.1F6-S7-20170608_0128_builder.tar ./vsmartd_install.sh ./rasdaemon-0.5.6-1.x86_64.rpm ./bios_pkg_install.sh ./vehostd_install.sh ./resild-1.0-0.x86_64.rpm ./monit-5.12.2-1.x86_64.rpm ./re_fpga_install.sh Copying /tmp/partdisk-cfO/unpack/jhost_core-1.0-1706080443.x86_64.rpm to /tmp/partdisk-cfO/jrootfs/hostd ... Installing Hostd image jhost_core-1.0-1706080443.x86_64.rpm ... rpm -ivh --prefix=/tmp/partdisk-cfO/jrootfs/ --nodeps --dbpath=/tmp/partdisk-cfO/jrootfs//var/lib/rpm /tmp/partdisk-cfO/unpack/jhost_core-1.0-1706080443.x86_64.rpm Preparing... ################################################## jhost_core ################################################## Please wait while configuration is in progress... Installation successful... Done with hostd Install rpm -ivh --prefix=/tmp/partdisk-cfO/jrootfs --nodeps --dbpath=/tmp/partdisk-cfO/jrootfs/var/lib/rpm /tmp/partdisk-cfO/unpack/re_fpga-1.0-0.x86_64.rpm Preparing... ################################################## preparing install ... re_fpga ################################################## adding module to kernel... rpm -ivh --prefix=/tmp/partdisk-cfO/jrootfs --nodeps --dbpath=/tmp/partdisk-cfO/jrootfs/var/lib/rpm /tmp/partdisk-cfO/unpack/vsmartd-1.0-0.x86_64.rpm Preparing... ################################################## preparing install ... vsmartd ################################################## adding module to kernel... rpm -ivh --prefix=/tmp/partdisk-cfO/jrootfs --nodeps --dbpath=/tmp/partdisk-cfO/jrootfs/var/lib/rpm /tmp/partdisk-cfO/unpack/resild-1.0-0.x86_64.rpm Preparing... ################################################## preparing install ... resild ################################################## adding module to kernel... rpm -ivh --prefix=/tmp/partdisk-cfO/jrootfs --nodeps --dbpath=/tmp/partdisk-cfO/jrootfs/var/lib/rpm /tmp/partdisk-cfO/unpack/rasdaemon-0.5.6-1.x86_64.rpm Preparing... ################################################## rasdaemon ################################################## Installing Monit image monit-5.12.2-1.x86_64.rpm ... rpm -ivh --prefix=/tmp/partdisk-cfO/jrootfs/ --nodeps --dbpath=/tmp/partdisk-cfO/jrootfs//var/lib/rpm /tmp/partdisk-cfO/unpack/monit-5.12.2-1.x86_64.rpm Preparing... ################################################## monit ################################################## Installation successful... Done with Monit Install... Target kernel version: 3.10.79-ovp-rt74-WR6.0.0.20_preempt-rt Creating moint points for JUNOSFS and VMFS: /junos, /vm Updating boot partition... Upgrade complete. Cmos Write successfull Cmos Write successfull for Boot_retry Cmos Write successfull for Boot_retry ... upgrade complete. A REBOOT IS REQUIRED TO LOAD THIS SOFTWARE CORRECTLY. Use the 'request vmhost reboot' command to reboot the system. 0 py-junos-eznc-2.7.3/tests/unit/utils/rpc-reply/request-zeroize.xml000066400000000000000000000013541475361112400253500ustar00rootroot00000000000000 warning ipsec-key-management subsystem not running - not needed by configuration. ipsec-key-management subsystem not running - not needed by configuration. ipsec-key-management zeroizing re1 warning zeroizing re0 py-junos-eznc-2.7.3/tests/unit/utils/rpc-reply/set-cli-working-directory.xml000066400000000000000000000001051475361112400272040ustar00rootroot00000000000000 change/directory py-junos-eznc-2.7.3/tests/unit/utils/rpc-reply/show-cli-directory.xml000066400000000000000000000003271475361112400257210ustar00rootroot00000000000000 /cf/var/home/rick py-junos-eznc-2.7.3/tests/unit/utils/test_config.py000066400000000000000000001044041475361112400224120ustar00rootroot00000000000000import unittest import sys import nose2 from jnpr.junos import Device from jnpr.junos.utils.config import Config from jnpr.junos.exception import ( RpcError, LockError, UnlockError, CommitError, RpcTimeoutError, ConfigLoadError, ConnectClosedError, ) import ncclient from ncclient.manager import Manager, make_device_handler from ncclient.transport import SSHSession from ncclient.operations import RPCError, RPCReply from unittest.mock import MagicMock, patch from lxml import etree import os __author__ = "Nitin Kumar, Rick Sherman" __credits__ = "Jeremy Schulman" if sys.version < "3": builtin_string = "__builtin__" else: builtin_string = "builtins" class TestConfig(unittest.TestCase): @patch("ncclient.manager.connect") def setUp(self, mock_connect): mock_connect.side_effect = self._mock_manager self.dev = Device( host="1.1.1.1", user="test", password="test123", gather_facts=False ) self.dev.open() self.conf = Config(self.dev) @patch("ncclient.operations.session.CloseSession.request") def tearDown(self, mock_session): self.dev.close() def test_config_constructor(self): self.assertTrue(isinstance(self.conf._dev, Device)) def test_config_confirm_true(self): self.conf.rpc.commit_configuration = MagicMock() self.conf.commit(confirm=True) self.conf.rpc.commit_configuration.assert_called_with(confirmed=True) def test_config_commit_confirm(self): self.conf.rpc.commit_configuration = MagicMock() self.conf.commit(confirm=10) self.conf.rpc.commit_configuration.assert_called_with( **{"confirm-timeout": "10", "confirmed": True} ) def test_config_commit_comment(self): self.conf.rpc.commit_configuration = MagicMock() self.conf.commit(comment="Test") self.conf.rpc.commit_configuration.assert_called_with(log="Test") def test_config_commit_sync(self): self.conf.rpc.commit_configuration = MagicMock() self.conf.commit(sync=True) self.conf.rpc.commit_configuration.assert_called_with(synchronize=True) def test_config_commit_force_sync(self): self.conf.rpc.commit_configuration = MagicMock() self.conf.commit(force_sync=True) self.conf.rpc.commit_configuration.assert_called_with( **{"synchronize": True, "force-synchronize": True} ) def test_config_commit_timeout(self): self.conf.rpc.commit_configuration = MagicMock() self.conf.commit(timeout=60) self.conf.rpc.commit_configuration.assert_called_with(dev_timeout=60) def test_config_commit_full(self): self.conf.rpc.commit_configuration = MagicMock() self.conf.commit(full=True) self.conf.rpc.commit_configuration.assert_called_with(full=True) def test_config_commit_detail(self): self.conf.rpc.commit_configuration = MagicMock() self.conf.rpc.commit_configuration.return_value = "" self.assertEqual("", self.conf.commit(detail=True)) self.conf.rpc.commit_configuration.assert_called_with({"detail": "detail"}) def test_config_commit_combination(self): self.conf.rpc.commit_configuration = MagicMock() self.conf.rpc.commit_configuration.return_value = "" self.assertEqual( "", self.conf.commit(detail=True, force_sync=True, full=True) ) self.conf.rpc.commit_configuration.assert_called_with( {"detail": "detail"}, **{"synchronize": True, "full": True, "force-synchronize": True} ) @patch("jnpr.junos.utils.config.JXML.remove_namespaces") def test_config_commit_xml_exception(self, mock_jxml): class MyException(Exception): xml = etree.fromstring("") self.conf.rpc.commit_configuration = MagicMock(side_effect=MyException) self.assertRaises(CommitError, self.conf.commit) def test_config_commit_exception(self): class MyException(Exception): pass self.conf.rpc.commit_configuration = MagicMock(side_effect=MyException) self.assertRaises(MyException, self.conf.commit) def test_config_commit_exception_RpcError(self): ex = RpcError(rsp="ok") self.conf.rpc.commit_configuration = MagicMock(side_effect=ex) self.assertTrue(self.conf.commit()) import xml.etree.ElementTree as ET xmldata = """ pyez 2013 """ root = ET.fromstring(xmldata) el = root.find("company") ex = RpcError(rsp=el) self.conf.rpc.commit_configuration = MagicMock(side_effect=ex) self.assertRaises(CommitError, self.conf.commit) def test_commit_check(self): self.conf.rpc.commit_configuration = MagicMock() self.assertTrue(self.conf.commit_check()) # @patch('jnpr.junos.utils.config.JXML.rpc_error') def test_commit_check_exception(self): class MyException(Exception): xml = etree.fromstring( """ protocol operation-failed error permission denied system """ ) self.conf.rpc.commit_configuration = MagicMock(side_effect=MyException) # with self.assertRaises(AttributeError): self.assertDictEqual( self.conf.commit_check(), { "source": None, "message": "permission denied", "bad_element": "system", "severity": "error", "edit_path": None, }, ) def test_config_commit_check_exception_RpcError(self): ex = RpcError(rsp="ok") self.conf.rpc.commit_configuration = MagicMock(side_effect=ex) self.assertTrue(self.conf.commit_check()) import xml.etree.ElementTree as ET xmldata = """ pyez 2013 """ root = ET.fromstring(xmldata) el = root.find("company") ex = RpcError(rsp=el) self.conf.rpc.commit_configuration = MagicMock(side_effect=ex) self.assertRaises(CommitError, self.conf.commit_check) def test_config_diff(self): self.conf.rpc.get_configuration = MagicMock() self.conf.diff() self.conf.rpc.get_configuration.assert_called_with( {"compare": "rollback", "rollback": "0", "format": "text"}, ignore_warning=False, ) def test_config_diff_use_fast_diff(self): self.conf.rpc.get_configuration = MagicMock() self.conf.diff(use_fast_diff=True) self.conf.rpc.get_configuration.assert_called_with( { "compare": "rollback", "rollback": "0", "format": "text", "use-fast-diff": "yes", }, ignore_warning=False, ) def test_config_diff_use_fast_diff_rb_id_gt_0(self): self.conf.rpc.get_configuration = MagicMock() with self.assertRaises(ValueError): self.conf.diff(use_fast_diff=True, rb_id=1) def test_config_diff_exception_severity_warning(self): rpc_xml = """ warning bgp mgd: statement must contain additional statements """ rsp = etree.XML(rpc_xml) self.conf.rpc.get_configuration = MagicMock(side_effect=RpcError(rsp=rsp)) self.assertEqual(self.conf.diff(), "Unable to parse diff from response!") def test_config_diff_exception_severity_warning_still_raise(self): rpc_xml = """ warning bgp statement not found """ rsp = etree.XML(rpc_xml) self.conf.rpc.get_configuration = MagicMock(side_effect=RpcError(rsp=rsp)) self.assertRaises(RpcError, self.conf.diff) def test_config_pdiff(self): self.conf.diff = MagicMock(return_value="Stuff") self.conf.pdiff() self.conf.diff.assert_called_once_with(0, False, False) def test_config_diff_rpc_timeout(self): ex = RpcTimeoutError(self.dev, None, 10) self.conf.rpc.get_configuration = MagicMock(side_effect=ex) self.assertRaises(RpcTimeoutError, self.conf.diff) def test_config_load(self): self.assertRaises(RuntimeError, self.conf.load) def test_config_load_vargs_len(self): self.assertRaises(RuntimeError, self.conf.load, "test.xml") def test_config_load_len_with_format_set(self): self.conf.rpc.load_config = MagicMock(return_value="rpc_contents") self.assertEqual(self.conf.load("test.xml", format="set"), "rpc_contents") def test_config_load_len_with_format_xml(self): self.conf.rpc.load_config = MagicMock(return_value="rpc_contents") xmldata = """ iBGP """ self.assertEqual(self.conf.load(xmldata, format="xml"), "rpc_contents") def test_config_load_len_with_format_text(self): self.conf.rpc.load_config = MagicMock(return_value="rpc_contents") textdata = """policy-options { prefix-list TEST1-NETS { 100.0.0.0/24; } policy-statement TEST1-NETS { term TEST1 { from { prefix-list TEST1-NETS; } then accept; } term REJECT { then reject; } } }""" self.assertEqual(self.conf.load(textdata), "rpc_contents") def test_config_load_with_format_json(self): self.conf.rpc.load_config = MagicMock( return_value=etree.fromstring( """ """ ) ) op = self.conf.load("test.json", format="json") self.assertEqual(op.tag, "load-configuration-results") self.assertEqual(self.conf.rpc.load_config.call_args[1]["format"], "json") @patch(builtin_string + ".open") def test_config_load_with_format_json_from_file_ext(self, mock_open): self.conf.rpc.load_config = MagicMock( return_value=etree.fromstring( """ """ ) ) op = self.conf.load(path="test.json") self.assertEqual(op.tag, "load-configuration-results") self.assertEqual(self.conf.rpc.load_config.call_args[1]["format"], "json") @patch(builtin_string + ".open") def test_config_load_update(self, mock_open): self.conf.rpc.load_config = MagicMock( return_value=etree.fromstring( """ """ ) ) op = self.conf.load(path="test.conf", update=True) self.assertEqual(op.tag, "load-configuration-results") self.assertEqual(self.conf.rpc.load_config.call_args[1]["format"], "text") def test_config_load_update_merge_overwrite(self): self.assertRaises( ValueError, self.conf.load, path="test.jnpr", update=True, merge=True, overwrite=True, ) @patch(builtin_string + ".open") def test_config_load_lformat_byext_ValueError(self, mock_open): self.conf.rpc.load_config = MagicMock(return_value="rpc_contents") self.assertRaises(ValueError, self.conf.load, path="test.jnpr") def test_config_load_lset_format_ValueError(self): self.conf.rpc.load_config = MagicMock(return_value="rpc_contents") self.assertRaises( ValueError, self.conf.load, "test.xml", format="set", overwrite=True ) @patch(builtin_string + ".open") @patch("jnpr.junos.utils.config.etree.XML") def test_config_load_path_xml(self, mock_etree, mock_open): self.conf.dev.Template = MagicMock() mock_etree.return_value = "rpc_contents" self.conf.rpc.load_config = MagicMock(return_value=mock_etree.return_value) self.assertEqual(self.conf.load(path="test.xml"), "rpc_contents") @patch(builtin_string + ".open") def test_config_load_path_text(self, mock_open): self.conf.rpc.load_config = MagicMock() self.conf.load(path="test.conf") self.assertEqual(self.conf.rpc.load_config.call_args[1]["format"], "text") @patch(builtin_string + ".open") def test_config_load_path_set(self, mock_open): self.conf.rpc.load_config = MagicMock() self.conf.load(path="test.set") self.assertEqual(self.conf.rpc.load_config.call_args[1]["action"], "set") @patch(builtin_string + ".open") def test_config_load_try_load_rpcerror(self, mock_open): ex = ConfigLoadError( rsp=etree.fromstring( ( """ error syntax error """ ) ) ) self.conf.rpc.load_config = MagicMock(side_effect=ex) self.assertRaises(ConfigLoadError, self.conf.load, path="config.conf") @patch(builtin_string + ".open") def test_config_load_try_load_rpctimeouterror(self, mock_open): ex = RpcTimeoutError(self.dev, None, 10) self.conf.rpc.load_config = MagicMock(side_effect=ex) self.assertRaises(RpcTimeoutError, self.conf.load, path="config.conf") @patch(builtin_string + ".open") def test_config_try_load_exception(self, mock_open): class OtherException(Exception): pass self.conf.rpc.load_config = MagicMock(side_effect=OtherException()) self.assertRaises(OtherException, self.conf.load, path="config.conf") @patch("jnpr.junos.utils.config.etree.XML") def test_config_load_template_path(self, mock_etree): self.conf.rpc.load_config = MagicMock() self.conf.dev.Template = MagicMock() self.conf.load(template_path="test.xml") self.assertEqual(self.conf.rpc.load_config.call_args[1]["format"], "xml") def test_config_load_template(self): class Temp: filename = "abc.xml" render = MagicMock(return_value="") self.conf.rpc.load_config = MagicMock() self.conf.load(template=Temp) self.assertEqual(self.conf.rpc.load_config.call_args[1]["format"], "xml") def test_config_diff_exception(self): self.conf.rpc.get_configuration = MagicMock() self.assertRaises(ValueError, self.conf.diff, 51) self.assertRaises(ValueError, self.conf.diff, -1) def test_config_lock(self): self.conf.rpc.lock_configuration = MagicMock() self.assertTrue(self.conf.lock()) @patch("jnpr.junos.utils.config.JXML.rpc_error") def test_config_lock_LockError(self, mock_jxml): ex = RpcError(rsp="ok") self.conf.rpc.lock_configuration = MagicMock(side_effect=ex) self.assertRaises(LockError, self.conf.lock) @patch("jnpr.junos.utils.config.JXML.rpc_error") def test_config_lock_ConnectClosedError(self, mock_jxml): ex = ConnectClosedError(dev=self) self.conf.rpc.lock_configuration = MagicMock(side_effect=ex) self.assertRaises(ConnectClosedError, self.conf.lock) @patch("jnpr.junos.utils.config.JXML.remove_namespaces") def test_config_lock_exception(self, mock_jxml): class MyException(Exception): xml = "test" self.conf.rpc.lock_configuration = MagicMock(side_effect=MyException) self.assertRaises(LockError, self.conf.lock) def test_config_unlock(self): self.conf.rpc.unlock_configuration = MagicMock() self.assertTrue(self.conf.unlock()) @patch("jnpr.junos.utils.config.JXML.rpc_error") def test_config_unlock_LockError(self, mock_jxml): ex = RpcError(rsp="ok") self.conf.rpc.unlock_configuration = MagicMock(side_effect=ex) self.assertRaises(UnlockError, self.conf.unlock) @patch("jnpr.junos.utils.config.JXML.rpc_error") def test_config_unlock_ConnectClosedError(self, mock_jxml): ex = ConnectClosedError(dev=self) self.conf.rpc.unlock_configuration = MagicMock(side_effect=ex) self.assertRaises(ConnectClosedError, self.conf.unlock) @patch("jnpr.junos.utils.config.JXML.remove_namespaces") def test_config_unlock_exception(self, mock_jxml): class MyException(Exception): xml = "test" self.conf.rpc.unlock_configuration = MagicMock(side_effect=MyException) self.assertRaises(UnlockError, self.conf.unlock) def test_config_rollback(self): self.conf.rpc.load_configuration = MagicMock() self.assertTrue(self.conf.rollback()) def test_config_rollback_exception(self): self.conf.rpc.load_configuration = MagicMock() self.assertRaises(ValueError, self.conf.rollback, 51) self.assertRaises(ValueError, self.conf.rollback, -1) @patch("jnpr.junos.Device.execute") def test_rescue_action_save(self, mock_exec): self.dev.request_save_rescue_configuration = MagicMock() self.assertTrue(self.conf.rescue("save")) @patch("jnpr.junos.Device.execute") def test_rescue_action_get_exception(self, mock_exec): self.dev.rpc.get_rescue_information = MagicMock(side_effect=Exception) self.assertTrue(self.conf.rescue("get") is None) @patch("jnpr.junos.Device.execute") def test_rescue_action_get(self, mock_exec): self.dev.rpc.get_rescue_information = MagicMock() self.dev.rpc.get_rescue_information.return_value = 1 self.assertEqual(self.conf.rescue("get", format="xml"), 1) @patch("jnpr.junos.Device.execute") def test_rescue_action_delete(self, mock_exec): self.dev.rpc.request_delete_rescue_configuration = MagicMock() self.assertTrue(self.conf.rescue("delete")) @patch("jnpr.junos.Device.execute") def test_rescue_action_reload(self, mock_exec): self.dev.rpc.load_configuration = MagicMock() self.dev.rpc.load_configuration.return_value = True self.assertTrue(self.conf.rescue("reload")) @patch("jnpr.junos.Device.execute") def test_rescue_action_reload_exception(self, mock_exec): self.dev.rpc.load_configuration = MagicMock(side_effect=Exception) self.assertFalse(self.conf.rescue("reload")) @patch("jnpr.junos.Device.execute") def test_rescue_action_unsupported_action(self, mock_exec): self.assertRaises(ValueError, self.conf.rescue, "abc") def test_config_load_lset_from_rexp_xml(self): self.conf.rpc.load_config = MagicMock() conf = """iBGP""" self.conf.load(conf) self.assertEqual(self.conf.rpc.load_config.call_args[1]["format"], "xml") def test_config_load_lset_from_rexp_json(self): self.conf.rpc.load_config = MagicMock() conf = """{ "configuration" : { "system" : { "services" : { "telnet" : [null] } } } }""" self.conf.load(conf) self.assertEqual(self.conf.rpc.load_config.call_args[1]["format"], "json") def test_config_load_lset_from_rexp_set(self): self.conf.rpc.load_config = MagicMock() conf = """set system domain-name englab.nitin.net""" self.conf.load(conf) self.assertEqual(self.conf.rpc.load_config.call_args[1]["action"], "set") def test_config_load_lset_from_rexp_set_delete(self): self.conf.rpc.load_config = MagicMock() conf = """delete snmp""" self.conf.load(conf) self.assertEqual(self.conf.rpc.load_config.call_args[1]["action"], "set") def test_config_load_lset_from_rexp_set_rename(self): self.conf.rpc.load_config = MagicMock() conf = """rename firewall family inet filter f1 to filter f2""" self.conf.load(conf) self.assertEqual(self.conf.rpc.load_config.call_args[1]["action"], "set") def test_config_load_lset_from_rexp_insert(self): self.conf.rpc.load_config = MagicMock() conf = """insert policy-options policy-statement hop term 10 after 9""" self.conf.load(conf) self.assertEqual(self.conf.rpc.load_config.call_args[1]["action"], "set") def test_config_load_lset_from_rexp_set_activate(self): self.conf.rpc.load_config = MagicMock() conf = """activate system services ftp""" self.conf.load(conf) self.assertEqual(self.conf.rpc.load_config.call_args[1]["action"], "set") def test_config_load_lset_from_rexp_set_deactivate(self): self.conf.rpc.load_config = MagicMock() conf = """deactivate system services ftp""" self.conf.load(conf) self.assertEqual(self.conf.rpc.load_config.call_args[1]["action"], "set") def test_config_load_lset_from_rexp_set_annotate(self): self.conf.rpc.load_config = MagicMock() conf = """annotate system \"Annotation test\"""" self.conf.load(conf) self.assertEqual(self.conf.rpc.load_config.call_args[1]["action"], "set") def test_config_load_lset_from_rexp_set_copy(self): self.conf.rpc.load_config = MagicMock() conf = """copy firewall family inet filter f1 to filter f2""" self.conf.load(conf) self.assertEqual(self.conf.rpc.load_config.call_args[1]["action"], "set") def test_config_load_lset_from_rexp_set_protect(self): self.conf.rpc.load_config = MagicMock() conf = """protect system services""" self.conf.load(conf) self.assertEqual(self.conf.rpc.load_config.call_args[1]["action"], "set") def test_config_load_lset_from_rexp_set_unprotect(self): self.conf.rpc.load_config = MagicMock() conf = """unprotect system services""" self.conf.load(conf) self.assertEqual(self.conf.rpc.load_config.call_args[1]["action"], "set") def test_config_load_lset_from_rexp_conf(self): self.conf.rpc.load_config = MagicMock() conf = """ snmp { location USA; community iBGP { authorization read-only; } }""" self.conf.load(conf) self.assertEqual(self.conf.rpc.load_config.call_args[1]["format"], "text") def test_config_load_lset_from_rexp_conf_replace_tag(self): self.conf.rpc.load_config = MagicMock() conf = """replace: snmp { location USA; community iBGP { authorization read-only; } }""" self.conf.load(conf) self.assertEqual(self.conf.rpc.load_config.call_args[1]["format"], "text") self.assertEqual(self.conf.rpc.load_config.call_args[1]["action"], "replace") def test_config_load_lset_from_rexp_error(self): self.conf.rpc.load_config = MagicMock() conf = """test>""" self.assertRaises(RuntimeError, self.conf.load, conf) def test_load_merge_true(self): self.conf.rpc.load_config = MagicMock() conf = """ snmp { location USA; community iBGP { authorization read-only; } }""" self.conf.load(conf, merge=True) self.assertFalse("action" in self.conf.rpc.load_config.call_args[1]) def test_commit_RpcTimeoutError(self): ex = RpcTimeoutError(self.dev, None, 10) self.dev.rpc.commit_configuration = MagicMock(side_effect=ex) self.assertRaises(RpcTimeoutError, self.conf.commit) def test_commit_check_RpcTimeoutError(self): ex = RpcTimeoutError(self.dev, None, 10) self.dev.rpc.commit_configuration = MagicMock(side_effect=ex) self.assertRaises(RpcTimeoutError, self.conf.commit_check) def test_commit_configuration_multi_rpc_error(self): self.dev._conn.rpc = MagicMock(side_effect=self._mock_manager) try: self.dev.rpc.commit_configuration() except Exception as ex: self.assertTrue(isinstance(ex, RpcError)) self.assertEqual( ex.message, "error: interface-range 'axp' is not defined\n" "error: interface-ranges expansion failed", ) self.assertEqual( ex.errs, [ { "source": None, "message": "interface-range 'axp' is not defined", "bad_element": None, "severity": "error", "edit_path": None, }, { "source": None, "message": "interface-ranges expansion failed", "bad_element": None, "severity": "error", "edit_path": None, }, ], ) @patch("jnpr.junos.utils.config.Config.lock") @patch("jnpr.junos.utils.config.Config.unlock") def test_config_mode_exclusive(self, mock_unlock, mock_lock): with Config(self.dev, mode="exclusive") as conf: conf.rpc.load_config = MagicMock() conf.load("conf", format="set") self.assertTrue(mock_lock.called and mock_unlock.called) @patch("jnpr.junos.Device.execute") def test_config_mode_batch(self, mock_exec): self.dev.rpc.open_configuration = MagicMock() with Config(self.dev, mode="batch") as conf: conf.load("conf", format="set") self.dev.rpc.open_configuration.assert_called_with(batch=True) @patch("jnpr.junos.Device.execute") def test_config_mode_private(self, mock_exec): self.dev.rpc.open_configuration = MagicMock() with Config(self.dev, mode="private") as conf: conf.load("conf", format="set") self.dev.rpc.open_configuration.assert_called_with(private=True) @patch("jnpr.junos.Device.execute") def test_config_mode_dynamic(self, mock_exec): self.dev.rpc.open_configuration = MagicMock() with Config(self.dev, mode="dynamic") as conf: conf.load("conf", format="set") self.dev.rpc.open_configuration.assert_called_with(dynamic=True) @patch("jnpr.junos.Device.execute") def test_config_mode_ephemeral_default(self, mock_exec): self.dev.rpc.open_configuration = MagicMock() with Config(self.dev, mode="ephemeral") as conf: conf.load("conf", format="set") self.dev.rpc.open_configuration.assert_called_with(ephemeral=True) @patch("jnpr.junos.Device.execute") def test_config_mode_ephemeral_instance(self, mock_exec): self.dev.rpc.open_configuration = MagicMock() with Config(self.dev, mode="ephemeral", ephemeral_instance="xyz") as conf: conf.load("conf", format="set") self.dev.rpc.open_configuration.assert_called_with(ephemeral_instance="xyz") def test_config_unsupported_kwargs(self): self.dev.rpc.open_configuration = MagicMock() try: with Config(self.dev, mode="ephemeral", xyz="xyz") as conf: conf.load("conf", format="set") except Exception as ex: self.assertEqual(str(ex), "Unsupported argument provided to Config class") @patch("jnpr.junos.Device.execute") def test_config_mode_close_configuration_ex(self, mock_exec): self.dev.rpc.open_configuration = MagicMock() ex = RpcError(rsp="ok") ex.message = "Configuration database is not open" self.dev.rpc.close_configuration = MagicMock(side_effect=ex) try: with Config(self.dev, mode="batch") as conf: conf.load("conf", format="set") except Exception as ex: self.assertTrue(isinstance(ex, RpcError)) self.assertTrue(self.dev.rpc.close_configuration.called) def test_config_mode_undefined(self): try: with Config(self.dev, mode="unknown") as conf: conf.load("conf", format="set") except Exception as ex: self.assertTrue(isinstance(ex, ValueError)) @patch("jnpr.junos.Device.execute") @patch("jnpr.junos.utils.config.warnings") def test_config_mode_batch_open_configuration_ex(self, mock_warnings, mock_exec): rpc_xml = """ warning bgp syntax error """ rsp = etree.XML(rpc_xml) obj = RpcError(rsp=rsp) self.dev.rpc.open_configuration = MagicMock(side_effect=obj) with Config(self.dev, mode="batch") as conf: conf.load("conf", format="set") self.dev.rpc.open_configuration.assert_called_with(batch=True) @patch("jnpr.junos.Device.execute") @patch("jnpr.junos.utils.config.warnings") def test_config_mode_private_open_configuration_ex(self, mock_warnings, mock_exec): rpc_xml = """ warning bgp syntax error """ rsp = etree.XML(rpc_xml) obj = RpcError(rsp=rsp) self.dev.rpc.open_configuration = MagicMock(side_effect=obj) with Config(self.dev, mode="private") as conf: conf.load("conf", format="set") self.dev.rpc.open_configuration.assert_called_with(private=True) def test__enter__private_exception_RpcTimeoutError(self): ex = RpcTimeoutError(self.dev, None, 10) self.conf.rpc.open_configuration = MagicMock(side_effect=ex) self.assertRaises( RpcTimeoutError, Config.__enter__, Config(self.dev, mode="private") ) def test__enter__private_exception_RpcError(self): rpc_xml = """ error syntax error """ rsp = etree.XML(rpc_xml) self.conf.rpc.open_configuration = MagicMock(side_effect=RpcError(rsp=rsp)) self.assertRaises(RpcError, Config.__enter__, Config(self.dev, mode="private")) def test__enter__dyanamic_exception_RpcError(self): rpc_xml = """ error syntax error """ rsp = etree.XML(rpc_xml) self.conf.rpc.open_configuration = MagicMock(side_effect=RpcError(rsp=rsp)) self.assertRaises(RpcError, Config.__enter__, Config(self.dev, mode="dynamic")) def test__enter__batch_exception_RpcTimeoutError(self): ex = RpcTimeoutError(self.dev, None, 10) self.conf.rpc.open_configuration = MagicMock(side_effect=ex) self.assertRaises( RpcTimeoutError, Config.__enter__, Config(self.dev, mode="batch") ) def test__enter__batch_exception_RpcError(self): rpc_xml = """ error syntax error """ rsp = etree.XML(rpc_xml) self.conf.rpc.open_configuration = MagicMock(side_effect=RpcError(rsp=rsp)) self.assertRaises(RpcError, Config.__enter__, Config(self.dev, mode="batch")) def test_config_load_url(self): self.conf.rpc.load_config = MagicMock() self.conf.load(url="/var/home/user/golden.conf") self.assertEqual( self.conf.rpc.load_config.call_args[1]["url"], "/var/home/user/golden.conf" ) @patch("jnpr.junos.Device.execute") def test_load_config_patch(self, mock_exec): conf = """[edit system] - host-name pakzds904; + host-name pakzds904_set; """ self.conf.load(conf, format="text", patch=True) self.assertEqual(mock_exec.call_args[0][0].tag, "load-configuration") self.assertEqual( mock_exec.call_args[0][0].attrib, {"format": "text", "action": "patch"} ) @patch("jnpr.junos.Device.execute") def test_load_config_text(self, mock_exec): textdata = """policy-options { prefix-list TEST1-NETS { 100.0.0.0/24; } policy-statement TEST1-NETS { term TEST1 { from { prefix-list TEST1-NETS; } then accept; } term REJECT { then reject; } } }""" self.conf.load(textdata, overwrite=True) self.assertEqual(mock_exec.call_args[0][0].tag, "load-configuration") self.assertEqual( mock_exec.call_args[0][0].getchildren()[0].tag, "configuration-text" ) self.assertEqual( mock_exec.call_args[0][0].attrib, {"format": "text", "action": "override"} ) def _read_file(self, fname): fpath = os.path.join(os.path.dirname(__file__), "rpc-reply", fname) foo = open(fpath).read() # specific to multi rpc error if fname == "commit-configuration.xml": raw = etree.XML(foo) obj = RPCReply(raw) obj.parse() raise RPCError(etree.XML(foo), errs=obj._errors) def _mock_manager(self, *args, **kwargs): if kwargs: device_params = kwargs["device_params"] device_handler = make_device_handler(device_params) session = SSHSession(device_handler) return Manager(session, device_handler) elif args: return self._read_file(args[0].tag + ".xml") py-junos-eznc-2.7.3/tests/unit/utils/test_fs.py000066400000000000000000000443671475361112400215700ustar00rootroot00000000000000import unittest import nose2 import os from ncclient.manager import Manager, make_device_handler from ncclient.transport import SSHSession from jnpr.junos import Device from jnpr.junos.utils.fs import FS from jnpr.junos.exception import RpcError from unittest.mock import patch, MagicMock, call from lxml import etree __author__ = "Nitin Kumar, Rick Sherman" __credits__ = "Jeremy Schulman" class TestFS(unittest.TestCase): @patch("ncclient.manager.connect") def setUp(self, mock_connect): mock_connect.side_effect = self._mock_manager self.dev = Device( host="1.1.1.1", user="rick", password="password123", gather_facts=False ) self.dev.open() self.fs = FS(self.dev) @patch("jnpr.junos.device.warnings") def test_cat_wrong_path_return_none(self, mock_warnings): path = "test/report" self.assertEqual(self.fs.cat(path), None) def test_cat(self): self.fs._dev.rpc.file_show = MagicMock(side_effect=self._mock_manager) path = "test/cat.txt" self.assertTrue("testing cat functionality" in self.fs.cat(path)) self.fs._dev.rpc.file_show.assert_called_with(filename="test/cat.txt") def test_cwd(self): self.fs._dev.rpc.set_cli_working_directory = MagicMock( side_effect=self._mock_manager ) folder = "change/directory" self.assertEqual("change/directory", self.fs.cwd(folder)) self.fs._dev.rpc.set_cli_working_directory.assert_called_with( directory="change/directory" ) @patch("jnpr.junos.Device.execute") def test_pwd(self, mock_execute): mock_execute.side_effect = MagicMock(side_effect=self._mock_manager) self.fs.pwd() self.assertEqual(self.fs.pwd(), "/cf/var/home/rick") @patch("jnpr.junos.device.warnings") def test_checksum_return_none(self, mock_warnings): path = "test/report" self.assertEqual(self.fs.checksum(path), None) def test_checksum_unknown_calc(self): path = "test/report" self.assertRaises(ValueError, self.fs.checksum, path=path, calc="abc") def test_checksum_return_rsp(self): self.fs.dev.rpc.get_sha256_checksum_information = MagicMock( side_effect=self._mock_manager ) path = "test/checksum" self.assertEqual(self.fs.checksum(path, "sha256"), "xxxx") self.fs.dev.rpc.get_sha256_checksum_information.assert_called_with( path="test/checksum" ) def test_stat_calling___decode_file(self): path = "test/stat/decode_file" self.fs.dev.rpc.file_list = MagicMock(side_effect=self._mock_manager) self.assertEqual( self.fs.stat(path), { "owner": "pqr", "path": "/var/abc.sh", "permissions": 755, "permissions_text": "-rwxr-xr-x", "size": 2, "ts_date": "Mar 13 06:54", "ts_epoc": "1394693680", "type": "file", }, ) def test_stat_calling___decode_dir(self): path = "test/stat/decode_dir" self.fs.dev.rpc.file_list = MagicMock(side_effect=self._mock_manager) self.assertEqual( self.fs.stat(path), {"path": "/var", "type": "dir", "file_count": 1, "size": 2}, ) def test_stat_return_none(self): path = "test/abc" self.fs.dev.rpc.file_list = MagicMock() self.fs.dev.rpc.file_list.find.return_value = "output" self.assertEqual(self.fs.stat(path), None) def test_ls_calling___decode_file(self): path = "test/stat/decode_file" self.fs.dev.rpc.file_list = MagicMock(side_effect=self._mock_manager) self.assertEqual( self.fs.ls(path), { "owner": "pqr", "path": "/var/abc.sh", "permissions": 755, "permissions_text": "-rwxr-xr-x", "size": 2, "ts_date": "Mar 13 06:54", "ts_epoc": "1394693680", "type": "file", }, ) def test_ls_calling___decode_dir(self): path = "test/stat/decode_dir" self.fs.dev.rpc.file_list = MagicMock(side_effect=self._mock_manager) self.assertEqual( self.fs.ls(path), { "files": { "abc": { "permissions_text": "drwxr-xr-x", "ts_date": "Feb 17 15:30", "ts_epoc": "1392651039", "owner": "root", "path": "abc", "size": 2, "type": "dir", "permissions": 555, } }, "path": "/var", "type": "dir", "file_count": 1, "size": 2, }, ) def test_ls_return_none(self): path = "test/abc" self.fs.dev.rpc.file_list = MagicMock() self.fs.dev.rpc.file_list.find.return_value = "output" self.assertEqual(self.fs.ls(path), None) @patch("jnpr.junos.utils.fs.FS._decode_file") def test_ls_link_path_false(self, mock_decode_file): mock_decode_file.get.return_value = False path = "test/stat/decode_file" self.fs.dev.rpc.file_list = MagicMock(side_effect=self._mock_manager) self.fs.ls(path, followlink=False) mock_decode_file.assert_has_calls([call().get("link")]) def test_ls_brief_true(self): path = "test/stat/decode_dir" self.fs.dev.rpc.file_list = MagicMock(side_effect=self._mock_manager) self.assertEqual( self.fs.ls(path, brief=True), { "files": ["abc"], "path": "/var", "type": "dir", "file_count": 1, "size": 2, }, ) def test_ls_calling___decode_dir_type_symbolic_link(self): path = "test/stat/decode_symbolic_link" self.fs.dev.rpc.file_list = MagicMock(side_effect=self._mock_manager) self.assertEqual( self.fs.ls(path), { "files": { "abc": { "permissions_text": "drwxr-xr-x", "ts_date": "Feb 17 15:30", "link": "symlink test", "ts_epoc": "1392651039", "owner": "root", "path": "abc", "size": 2, "type": "link", "permissions": 555, } }, "path": "/var", "type": "dir", "file_count": 1, "size": 2, }, ) def test_rm_return_true(self): self.fs.dev.rpc.file_delete = MagicMock(return_value=True) path = "test/abc" self.assertTrue(self.fs.rm(path)) self.fs.dev.rpc.file_delete.assert_called_once_with(path="test/abc") def test_rm_return_false(self): path = "test/abc" self.fs.dev.rpc.file_delete = MagicMock(return_value=False) self.assertFalse(self.fs.rm(path)) self.fs.dev.rpc.file_delete.assert_called_once_with(path="test/abc") def test_copy_return_true(self): self.fs.dev.rpc.file_copy = MagicMock() initial = "test/abc" final = "test/xyz" self.assertTrue(self.fs.cp(initial, final)) self.fs.dev.rpc.file_copy.assert_called_once_with( source="test/abc", destination="test/xyz" ) def test_copy_routing_instance_return_true(self): self.fs.dev.rpc.file_copy = MagicMock() initial = "test/abc" final = "test/xyz" ri_name = "test_ri" self.assertTrue(self.fs.cp(initial, final, routing_instance=ri_name)) self.fs.dev.rpc.file_copy.assert_called_once_with( source="test/abc", destination="test/xyz", routing_instance="test_ri" ) def test_copy_source_address_return_true(self): self.fs.dev.rpc.file_copy = MagicMock() initial = "test/abc" final = "test/xyz" s_add = "0.0.0.0" self.assertTrue(self.fs.cp(initial, final, source_address=s_add)) self.fs.dev.rpc.file_copy.assert_called_once_with( source="test/abc", destination="test/xyz", source_address="0.0.0.0" ) def test_copy_return_false(self): initial = "test/abc" final = "test/xyz" self.fs.dev.rpc.file_copy = MagicMock(side_effect=Exception) self.assertFalse(self.fs.cp(initial, final)) self.fs.dev.rpc.file_copy.assert_called_once_with( source="test/abc", destination="test/xyz" ) def test_move_return_true(self): self.fs.dev.rpc.file_rename = MagicMock(return_value=True) initial = "test/abc" final = "test/xyz" self.assertTrue(self.fs.mv(initial, final)) self.fs.dev.rpc.file_rename.assert_called_once_with( source="test/abc", destination="test/xyz" ) def test_move_return_false(self): initial = "test/abc" final = "test/xyz" self.fs.dev.rpc.file_rename = MagicMock(return_value=False) self.assertFalse(self.fs.mv(initial, final)) self.fs.dev.rpc.file_rename.assert_called_once_with( source="test/abc", destination="test/xyz" ) def test_tgz_return_true(self): src = "test/tgz.txt" dst = "test/xyz" self.fs.dev.rpc.file_archive = MagicMock(return_value=True) self.assertTrue(self.fs.tgz(src, dst)) self.fs.dev.rpc.file_archive.assert_called_once_with( source="test/tgz.txt", destination="test/xyz", compress=True ) @patch("jnpr.junos.Device.execute") def test_tgz_return_error(self, mock_execute): mock_execute.side_effect = self._mock_manager src = "test/tgz.txt" dst = "test/xyz" self.assertTrue("testing tgz" in self.fs.tgz(src, dst)) @patch("jnpr.junos.utils.fs.StartShell") def test_rmdir(self, mock_StartShell): path = "test/rmdir" print(self.fs.rmdir(path)) calls = [ call().__enter__(), call().__enter__().run("rmdir test/rmdir"), call().__exit__(None, None, None), ] mock_StartShell.assert_has_calls(calls) @patch("jnpr.junos.utils.fs.StartShell") def test_mkdir(self, mock_StartShell): path = "test/mkdir" print(self.fs.mkdir(path)) calls = [ call().__enter__(), call().__enter__().run("mkdir -p test/mkdir"), call().__exit__(None, None, None), ] mock_StartShell.assert_has_calls(calls) @patch("jnpr.junos.utils.fs.StartShell") def test_symlink(self, mock_StartShell): src = "test/tgz.txt" dst = "test/xyz" print(self.fs.symlink(src, dst)) calls = [ call().__enter__(), call().__enter__().run("ln -sf test/tgz.txt test/xyz"), call().__exit__(None, None, None), ] mock_StartShell.assert_has_calls(calls) @patch("jnpr.junos.Device.execute") def test_storage_usage(self, mock_execute): mock_execute.side_effect = self._mock_manager self.assertEqual( self.fs.storage_usage(), { "/dev/abc": { "avail_block": 234234, "used_blocks": 2346455, "used_pct": "1", "mount": "/", "total_blocks": 567431, "avail": "2F", "used": "481M", "total": "4F", } }, ) @patch("jnpr.junos.Device.execute") def test_storage_usage_linux(self, mock_execute): mock_execute.side_effect = self._mock_manager_linux self.assertEqual( self.fs.storage_usage(), { "re0": { "/dev/sda6": { "avail": "916M", "avail_block": 1874712, "mount": "/data/config", "total": "984M", "total_blocks": 2015024, "used": "1.4M", "used_blocks": 2688, "used_pct": "1", } } }, ) @patch("jnpr.junos.Device.execute") def test_directory_usage(self, mock_execute): mock_execute.side_effect = self._mock_manager self.assertEqual( self.fs.directory_usage(path="/var/tmp", depth=1), { "/var/tmp": {"blocks": 456076, "bytes": 233510912, "size": "223M"}, "/var/tmp/gres-tp": {"blocks": 68, "bytes": 34816, "size": "34K"}, "/var/tmp/install": {"blocks": 4, "bytes": 2048, "size": "2.0K"}, "/var/tmp/pics": {"blocks": 4, "bytes": 2048, "size": "2.0K"}, "/var/tmp/rtsdb": {"blocks": 4, "bytes": 2048, "size": "2.0K"}, "/var/tmp/sec-download": {"blocks": 8, "bytes": 4096, "size": "4.0K"}, "/var/tmp/vi.recover": {"blocks": 4, "bytes": 2048, "size": "2.0K"}, }, ) @patch("jnpr.junos.Device.execute") def test_directory_usage_error(self, mock_execute): mock_execute.return_value = etree.fromstring( """ 223M """ ) self.assertRaises(RpcError, self.fs.directory_usage, path="/var/tmp", depth=1) @patch("jnpr.junos.Device.execute") def test_directory_usage_no_directory(self, mock_execute): mock_execute.side_effect = self._mock_manager_error1 self.assertRaises(RpcError, self.fs.directory_usage, path="/var/tmp", depth="1") @patch("jnpr.junos.Device.execute") def test_directory_usage_no_dir_name(self, mock_execute): mock_execute.side_effect = self._mock_manager_error2 self.assertRaises(RpcError, self.fs.directory_usage, path="/var/tmp", depth="1") @patch("jnpr.junos.Device.execute") def test_storage_cleanup(self, mock_execute): mock_execute.side_effect = self._mock_manager self.assertEqual( self.fs.storage_cleanup(), {"/var/abc.txt": {"ts_date": "Apr 25 10:38", "size": 11}}, ) @patch("jnpr.junos.Device.execute") def test_storage_cleanup_check(self, mock_execute): mock_execute.side_effect = self._mock_manager self.assertEqual( self.fs.storage_cleanup_check(), {"/var/abc.txt": {"ts_date": "Apr 25 10:38", "size": 11}}, ) def _read_file(self, fname): from ncclient.xml_ import NCElement fpath = os.path.join(os.path.dirname(__file__), "rpc-reply", fname) foo = open(fpath).read() if ( fname == "get-rpc-error.xml" or fname == "get-index-error.xml" or fname == "get-system-core-dumps.xml" ): rpc_reply = NCElement(foo, self.dev._conn._device_handler.transform_reply()) elif ( fname == "show-configuration.xml" or fname == "show-system-alarms.xml" or fname == "set-cli-working-directory.xml" ): rpc_reply = NCElement( foo, self.dev._conn._device_handler.transform_reply() )._NCElement__doc else: rpc_reply = NCElement( foo, self.dev._conn._device_handler.transform_reply() )._NCElement__doc[0] return rpc_reply def _mock_manager(self, *args, **kwargs): if kwargs: # if 'path' in kwargs and 'detail' in kwargs: # return self._read_file('dir_list_detail.xml') if "path" in kwargs: if kwargs["path"] == "test/stat/decode_dir": return self._read_file("file-list_dir.xml") elif kwargs["path"] == "test/stat/decode_file": return self._read_file("file-list_file.xml") elif kwargs["path"] == "test/checksum": return self._read_file("checksum.xml") elif kwargs["path"] == "test/stat/decode_symbolic_link": return self._read_file("file-list_symlink.xml") if "directory" in kwargs: if kwargs["directory"] == "change/directory": return self._read_file("set-cli-working-directory.xml") if "filename" in kwargs: if kwargs["filename"] == "test/cat.txt": return self._read_file("file-show.xml") device_params = kwargs["device_params"] device_handler = make_device_handler(device_params) session = SSHSession(device_handler) return Manager(session, device_handler) elif args: if args[0].tag == "command": if args[0].text == "show cli directory": return self._read_file("show-cli-directory.xml") elif args[0].tag == "get-system-storage": return self._read_file("get-system-storage.xml") elif args[0].tag == "get-directory-usage-information": return self._read_file("get-directory-usage-information.xml") elif args[0].tag == "request-system-storage-cleanup": return self._read_file("request-system-storage-cleanup.xml") elif args[0].tag == "file-archive": return self._read_file("file-archive.xml") def _mock_manager_error1(self, *args, **kwargs): if args: if args[0].tag == "get-directory-usage-information": return self._read_file("get-directory-usage-information_error1.xml") def _mock_manager_error2(self, *args, **kwargs): if args: if args[0].tag == "get-directory-usage-information": return self._read_file("get-directory-usage-information_error2.xml") def _mock_manager_linux(self, *args, **kwargs): if args: if args[0].tag == "get-system-storage": return self._read_file("get-storage-usage-linux.xml") py-junos-eznc-2.7.3/tests/unit/utils/test_ftp.py000066400000000000000000000116751475361112400217450ustar00rootroot00000000000000import unittest import nose2 import ftplib import sys import os from jnpr.junos import Device import jnpr.junos.utils.ftp from unittest.mock import patch if sys.version < "3": builtin_string = "__builtin__" else: builtin_string = "builtins" @unittest.skipIf(sys.platform == "win32", "will work for windows in coming days") class TestFtp(unittest.TestCase): @patch("ftplib.FTP.connect") @patch("ftplib.FTP.login") @patch("ftplib.FTP.close") @patch("ncclient.manager.connect") def setUp(self, mock_connect, mock_ftp_connect, mock_ftpconnect, mock_ftplogin): self.dev = Device( host="1.1.1.1", user="testuser", passwd="testpasswd", gather_facts=False ) self.dev.open() self.dev._facts = {"hostname": "1.1.1.1"} self.dev_ftp = jnpr.junos.utils.ftp.FTP(self.dev) def test_ftp_open(self): assert isinstance(self.dev_ftp, ftplib.FTP) @patch("ftplib.FTP.login") @patch("ftplib.FTP.connect") def test_ftp_open_erors(self, mock_ftpconnect, mock_ftplogin): jnpr.junos.utils.ftp.FTP(self.dev) mock_ftplogin.assert_called_with("testuser", "testpasswd", "") # @patch("ftplib.FTP.close") def test_ftp_close(self, mock_close): self.dev_ftp.open() self.dev_ftp.close() mock_close.assert_called() @patch("ftplib.FTP.connect") @patch("ftplib.FTP.login") @patch("ftplib.FTP.close") def test_ftp_context(self, mock_ftpconnect, mock_ftplogin, mock_ftpclose): with jnpr.junos.utils.ftp.FTP(self.dev) as dev_ftp: assert isinstance(dev_ftp, ftplib.FTP) @patch(builtin_string + ".open") def test_ftp_upload_file_errors(self, mock_open): self.assertEqual(self.dev_ftp.put(local_file="testfile"), False) self.assertEqual(self.dev_ftp.put(local_file="/var/testfile"), False) @patch("ftplib.FTP.storbinary") @patch(builtin_string + ".open") def test_ftp_upload_file(self, mock_ftpstore, mock_open): self.assertEqual(self.dev_ftp.put(local_file="testfile"), True) @patch(builtin_string + ".open") def test_ftp_dnload_file_errors(self, mock_open): self.assertEqual( self.dev_ftp.get(local_path="testfile", remote_file="testfile"), False ) @patch(builtin_string + ".open") def test_ftp_dnload_file_get(self, mock_open): self.assertEqual(self.dev_ftp.get(remote_file="/var/tmp/testfile"), False) @patch("ftplib.FTP.retrbinary") @patch(builtin_string + ".open") def test_ftp_dnload_file_get_retr(self, mock_open, mock_ftpretr): self.assertEqual(self.dev_ftp.get(remote_file="/var/tmp/testfile"), True) @patch("ftplib.FTP.retrbinary") @patch(builtin_string + ".open") def test_ftp_dnload_file_get_rf_filename(self, mock_open, mock_ftpretr): self.assertEqual(self.dev_ftp.get(remote_file="testfile.txt"), True) @patch("ftplib.FTP.retrbinary") @patch(builtin_string + ".open") def test_ftp_dnload_file(self, mock_ftpretr, mock_open): self.assertEqual( self.dev_ftp.get(local_path="testfile", remote_file="testfile"), True ) @patch("ftplib.FTP.connect") @patch("ftplib.FTP.login") @patch("ftplib.FTP.retrbinary") def test_ftp_dnload_file_get_rf_filename_cb( self, mock_ftp_connect, mock_ftp_login, mock_ftp_retrbinary, ): def callback(): pass kwargs = {"callback": callback} dev_ftp = jnpr.junos.utils.ftp.FTP(self.dev, **kwargs) self.assertEqual(dev_ftp.get(remote_file="/var/tmp/testfile"), True) @patch("ftplib.FTP.storbinary") @patch(builtin_string + ".open") def test_ftp_upload_file_rem_path(self, mock_open, mock_ftpstore): self.assertEqual( self.dev_ftp.put(local_file="/var/tmp/conf.txt", remote_path="/var/tmp"), True, ) self.assertEqual( tuple(mock_ftpstore.call_args)[1]["cmd"], "STOR /var/tmp/conf.txt" ) @patch("ftplib.FTP.storbinary") @patch(builtin_string + ".open") def test_ftp_upload_file_rem_full_path(self, mock_open, mock_ftpstore): self.assertEqual( self.dev_ftp.put( local_file=os.path.abspath("/var/tmp/conf.txt"), remote_path=os.path.abspath("/var/tmp/test.txt"), ), True, ) self.assertEqual( tuple(mock_ftpstore.call_args)[1]["cmd"], "STOR " + os.path.abspath("/var/tmp/test.txt"), ) @patch("ftplib.FTP.storbinary") @patch(builtin_string + ".open") def test_ftp_upload_file_rem_path_create(self, mock_open, mock_ftpstore): self.assertEqual( self.dev_ftp.put( local_file="conf.txt", remote_path=os.path.abspath("/var/tmp") ), True, ) self.assertEqual( tuple(mock_ftpstore.call_args)[1]["cmd"], "STOR " + os.path.abspath("/var/tmp/conf.txt"), ) py-junos-eznc-2.7.3/tests/unit/utils/test_scp.py000066400000000000000000000101311475361112400217230ustar00rootroot00000000000000import sys from six import StringIO from contextlib import contextmanager import unittest import nose2 from jnpr.junos import Device from jnpr.junos.utils.scp import SCP from unittest.mock import patch __author__ = "Rick Sherman, Nitin Kumar" __credits__ = "Jeremy Schulman" if sys.version < "3": builtin_string = "__builtin__" else: builtin_string = "builtins" class TestScp(unittest.TestCase): def setUp(self): self.dev = Device(host="1.1.1.1") @patch("paramiko.SSHClient") def test_scp_open(self, mock_connect): from scp import SCPClient self.dev.bind(scp=SCP) assert isinstance(self.dev.scp.open(), SCPClient) @patch("paramiko.SSHClient") def test_scp_close(self, mock_connect): self.dev.bind(scp=SCP) self.dev.scp.open() self.assertEqual(self.dev.scp.close(), None) @patch("paramiko.SSHClient") def test_scp_context(self, mock_connect): with SCP(self.dev) as scp: scp.get("addrbook.conf") def test_scp_console(self): dev = Device(host="1.1.1.1", mode="telnet") self.assertRaises(RuntimeError, SCP, dev) @patch("jnpr.junos.device.os") @patch(builtin_string + ".open") @patch("paramiko.config.SSHConfig.lookup") @patch("paramiko.SSHClient") @patch("paramiko.proxy.ProxyCommand") def test_scp_proxycommand( self, mock_proxy, mock_paramiko, mock_connect, open_mock, os_mock ): os_mock.path.exists.return_value = True # self.dev._sshconf_path = '/home/rsherman/.ssh/config' with SCP(self.dev) as scp: scp.get("addrbook.conf") mock_proxy.assert_called_once() def test_scp_progress(self): scp = SCP(self.dev) print(scp._scp_progress("test", 100, 50)) @patch("paramiko.SSHClient") @patch("scp.SCPClient.put") @patch("scp.SCPClient.__init__") def test_scp_user_def_progress(self, mock_scpclient, mock_put, mock_ssh): mock_scpclient.return_value = None def fn(file, total, tfd): pass package = "test.tgz" with SCP(self.dev, progress=fn) as scp: scp.put(package) self.assertEqual(mock_scpclient.mock_calls[0][2]["progress"].__name__, "fn") @patch("paramiko.SSHClient") @patch("scp.SCPClient.put") @patch("scp.SCPClient.__init__") def test_scp_user_def_progress_args_2(self, mock_scpclient, mock_put, mock_ssh): mock_scpclient.return_value = None def myprogress(dev, report): print("host: %s, report: %s" % (dev.hostname, report)) package = "test.tgz" with SCP(self.dev, progress=myprogress) as scp: scp.put(package) self.assertEqual( mock_scpclient.mock_calls[0][2]["progress"].__name__, "_scp_progress" ) @patch("paramiko.SSHClient") @patch("scp.SCPClient.put") @patch("scp.SCPClient.__init__") def test_scp_progress_true(self, mock_scpclient, mock_put, mock_sshclient): mock_scpclient.return_value = None package = "test.tgz" with SCP(self.dev, progress=True) as scp: scp.put(package) self.assertEqual( mock_scpclient.mock_calls[0][2]["progress"].__name__, "_scp_progress" ) @patch("ncclient.manager.connect") @patch("paramiko.SSHClient.connect") @patch("scp.SCPClient.put") @patch("scp.SCPClient.__init__") def test_ssh_private_key_file( self, mock_scpclient, mock_put, mock_sshclient, mock_ncclient ): mock_scpclient.return_value = None package = "test.tgz" dev = Device( host="1.1.1.1", user="user", ssh_private_key_file="/Users/test/testkey" ) dev.open(gather_facts=False) with SCP(dev) as scp: scp.put(package) self.assertEqual( mock_sshclient.mock_calls[0][2]["key_filename"], "/Users/test/testkey" ) @contextmanager def capture(self, command, *args, **kwargs): out, sys.stdout = sys.stdout, StringIO() command(*args, **kwargs) sys.stdout.seek(0) yield sys.stdout.read() sys.stdout = out py-junos-eznc-2.7.3/tests/unit/utils/test_start_shell.py000066400000000000000000000075451475361112400235010ustar00rootroot00000000000000import unittest import nose2 from jnpr.junos import Device from jnpr.junos.utils.start_shell import StartShell from unittest.mock import patch, MagicMock, call __author__ = "Rick Sherman" __credits__ = "Jeremy Schulman, Nitin Kumar" class TestStartShell(unittest.TestCase): @patch("paramiko.SSHClient") def setUp(self, mock_connect): self.dev = Device(host="1.1.1.1") self.shell = StartShell(self.dev) @patch("paramiko.SSHClient") @patch("jnpr.junos.utils.start_shell.StartShell.wait_for") def test_startshell_open_with_shell_term(self, mock_wait, mock_connect): mock_wait.return_value = ["user # "] self.shell.open() mock_wait.assert_called_with("(%|>|#|\\$)") @patch("paramiko.SSHClient") @patch("jnpr.junos.utils.start_shell.StartShell.wait_for") def test_startshell_open_with_junos_term(self, mock_wait, mock_connect): mock_wait.return_value = ["user > "] self.shell.open() mock_wait.assert_called_with("(%|#|\\$)\\s") @patch("paramiko.SSHClient") @patch("jnpr.junos.utils.start_shell.StartShell.wait_for") def test_startshell_open_with_bourne_shell(self, mock_wait, mock_connect): mock_wait.return_value = ["foo@bar:~$ "] self.shell.open() mock_wait.assert_called_with("(%|>|#|\\$)") @patch("paramiko.SSHClient") def test_startshell_close(self, mock_connect): self.shell._chan = MagicMock() self.shell._client = MagicMock() self.shell.close() self.shell._client.close.assert_called_once() @patch("jnpr.junos.utils.start_shell.StartShell.wait_for") def test_startshell_run(self, mock_wait): self.shell._chan = MagicMock() mock_wait.return_value = ["user % "] self.shell.run("ls") self.assertTrue(call.send("echo $?") in self.shell._chan.mock_calls) @patch("jnpr.junos.utils.start_shell.select") def test_startshell_wait_for(self, mock_select): mock_select.return_value = ["> ", 2, 3] self.shell._chan = MagicMock() self.shell._chan.recv.return_value = "> " self.assertTrue(self.shell.wait_for("> ")[0].endswith("> ")) @patch("jnpr.junos.utils.start_shell.select") def test_startshell_wait_for_regex(self, mock_select): mock_select.return_value = ["> ", 2, 3] self.shell._chan = MagicMock() # output from command: cli -c "show version" self.shell._chan.recv.return_value = """ ------------ JUNOS Services Deep Packet Inspection package [15.1 ---(more)--- """ self.assertTrue( str(self.shell.wait_for(r"---\(more\s?\d*%?\)---\n\s*|%")[0]) in self.shell._chan.recv.return_value ) @patch("jnpr.junos.utils.start_shell.StartShell.open") @patch("jnpr.junos.utils.start_shell.StartShell.close") def test_startshell_context(self, mock_close, mock_open): with StartShell(self.dev) as shell: shell._chan = MagicMock() shell.send("test") mock_close.assert_called_once_with() @patch("jnpr.junos.utils.start_shell.StartShell.wait_for") def test_startshell_run_regex(self, mock_wait_for): self.shell._chan = MagicMock() mock_wait_for.return_value = [ """ ------------ JUNOS Services Deep Packet Inspection package [15.1 ---(more)--- """ ] self.assertTrue( self.shell.run("show version", r"---\(more\s?\d*%?\)---\n\s*|%")[0] ) @patch("jnpr.junos.utils.start_shell.StartShell.wait_for") def test_startshell_run_this_None(self, mock_wait_for): self.shell._chan = MagicMock() mock_wait_for.return_value = [ """ ------------ JUNOS Services Deep Packet Inspection package [15.1 """ ] self.assertTrue(self.shell.run("show version", this=None)[0]) py-junos-eznc-2.7.3/tests/unit/utils/test_sw.py000066400000000000000000001325531475361112400216040ustar00rootroot00000000000000from __future__ import print_function import os import sys from six import StringIO try: import unittest2 as unittest except ImportError: import unittest import nose2 from contextlib import contextmanager from jnpr.junos import Device from jnpr.junos.exception import RpcError, SwRollbackError, RpcTimeoutError from jnpr.junos.utils.sw import SW from jnpr.junos.facts.swver import version_info from ncclient.manager import Manager, make_device_handler from ncclient.transport import SSHSession from lxml import etree from unittest.mock import patch, MagicMock, call, mock_open if sys.version < "3": builtin_string = "__builtin__" else: builtin_string = "builtins" __author__ = "Nitin Kumar, Rick Sherman" __credits__ = "Jeremy Schulman" facts = { "domain": None, "hostname": "firefly", "ifd_style": "CLASSIC", "version_info": version_info("12.1X46-D15.3"), "2RE": True, "serialnumber": "aaf5fe5f9b88", "fqdn": "firefly", "virtual": True, "switch_style": "NONE", "version": "12.1X46-D15.3", "HOME": "/cf/var/home/rick", "srx_cluster": False, "version_RE0": "16.1-20160925.0", "version_RE1": "16.1-20160925.0", "model": "FIREFLY-PERIMETER", "_is_linux": False, "junos_info": { "re0": {"text": "16.1-20160925.0"}, "re1": {"text": "16.1-20160925.0"}, }, "RE0": { "status": "Testing", "last_reboot_reason": "Router rebooted after a " "normal shutdown.", "model": "FIREFLY-PERIMETER RE", "up_time": "6 hours, 29 minutes, 30 seconds", }, "current_re": ["re0", "master"], "vc_capable": False, "personality": "SRX_BRANCH", } class TestSW(unittest.TestCase): @patch("ncclient.manager.connect") def setUp(self, mock_connect): mock_connect.side_effect = self._mock_manager self.dev = Device( host="1.1.1.1", user="rick", password="password123", gather_facts=False ) self.dev.open() self.dev.facts = facts self.sw = self.get_sw() @patch("jnpr.junos.Device.execute") def get_sw(self, mock_execute): mock_execute.side_effect = self._mock_manager return SW(self.dev) @patch("ncclient.operations.session.CloseSession.request") def tearDown(self, mock_session): self.dev.close() def test_sw_hashfile(self): with patch(builtin_string + ".open", mock_open(), create=True): import jnpr.junos.utils.sw with open("foo") as h: h.read.side_effect = ("abc", "a", "") jnpr.junos.utils.sw._hashfile(h, MagicMock()) self.assertEqual(h.read.call_count, 3) @patch("jnpr.junos.Device.execute") def test_sw_constructor_multi_re(self, mock_execute): mock_execute.side_effect = self._mock_manager self.sw = SW(self.dev) self.assertTrue(self.sw._multi_RE) @patch("jnpr.junos.Device.execute") def test_sw_constructor_multi_vc(self, mock_execute): mock_execute.side_effect = self._mock_manager self.sw = SW(self.dev) self.assertFalse(self.sw._multi_VC) @patch(builtin_string + ".open") def test_sw_local_sha256(self, mock_built_open): package = "test.tgz" self.assertEqual( SW.local_checksum(package, algorithm="sha256"), "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934" "ca495991b7852b855", ) @patch(builtin_string + ".open") def test_sw_local_md5(self, mock_built_open): package = "test.tgz" self.assertEqual( self.sw.local_checksum(package, algorithm="md5"), "d41d8cd98f00b204e9800998ecf8427e", ) @patch(builtin_string + ".open") def test_sw_local_sha1(self, mock_built_open): package = "test.tgz" self.assertEqual( SW.local_checksum(package, algorithm="sha1"), "da39a3ee5e6b4b0d3255bfef95601890afd80709", ) def test_sw_local_checksum_unknown_alg(self): self.assertRaises(ValueError, SW.local_checksum, "foo.tgz", algorithm="foo") def test_sw_progress(self): with self.capture(SW.progress, self.dev, "running") as output: self.assertEqual("1.1.1.1: running\n", output) @patch("jnpr.junos.Device.execute") @patch("paramiko.SSHClient") @patch("scp.SCPClient.put") def test_sw_progress_true(self, scp_put, mock_paramiko, mock_execute): mock_execute.side_effect = self._mock_manager with self.capture(SW.progress, self.dev, "testing") as output: self.sw.install("test.tgz", progress=True, checksum=345, cleanfs=False) self.assertEqual("1.1.1.1: testing\n", output) @patch("paramiko.SSHClient") @patch("scp.SCPClient.put") def test_sw_put(self, mock_scp_put, mock_scp): package = "test.tgz" self.sw.put(package) self.assertTrue(call("test.tgz", "/var/tmp") in mock_scp_put.mock_calls) @patch("jnpr.junos.utils.sw.FTP") def test_sw_put_ftp(self, mock_ftp_put): dev = Device( host="1.1.1.1", user="rick", password="password123", mode="telnet", port=23, gather_facts=False, ) dev.facts = facts sw = SW(dev) sw.put(package="test.tgz") self.assertTrue( any("('test.tgz', '/var/tmp')" in str(s) for s in mock_ftp_put.mock_calls) ) @patch("jnpr.junos.utils.scp.SCP.__exit__") @patch("jnpr.junos.utils.scp.SCP.__init__") @patch("jnpr.junos.utils.scp.SCP.__enter__") def test_sw_put_progress(self, mock_enter, mock_scp, mock_exit): package = "test.tgz" mock_scp.side_effect = self._fake_scp with self.capture( self.sw.put, package, progress=self._my_scp_progress ) as output: self.assertEqual("test.tgz 100 50\n", output) def _fake_scp(self, *args, **kwargs): progress = kwargs["progress"] progress("test.tgz", 100, 50) @patch("jnpr.junos.Device.execute") def test_sw_pkgadd(self, mock_execute): mock_execute.side_effect = self._mock_manager package = "test.tgz" self.assertTrue(self.sw.pkgadd(package)) @patch("jnpr.junos.Device.execute") @patch("jnpr.junos.utils.sw.SW.local_md5") def test_sw_install_url_in_pkg_set(self, mock_md5, mock_execute): mock_md5.return_value = "96a35ab371e1ca10408c3caecdbd8a67" mock_execute.side_effect = self._mock_manager self.sw.put = MagicMock() self.sw._mixed_VC = True self.assertTrue( self.sw.install( pkg_set=["safecopy.tgz", "safecopy.tgz", "ftp://server/path/test.tgz"] ) ) @patch("jnpr.junos.Device.execute") def test_sw_install_via_url(self, mock_execute): mock_execute.side_effect = self._mock_manager self.assertTrue(self.sw.install(package="ftp://server/path/test.tgz")) @patch("jnpr.junos.Device.execute") def test_sw_install_single_re_on_multi_re(self, mock_execute): mock_execute.side_effect = self._mock_manager self.sw._multi_RE = True self.assertTrue(self.sw.install("test.tgz", all_re=False, no_copy=True)) @patch("jnpr.junos.Device.execute") def test_sw_install_single_re(self, mock_execute): mock_execute.side_effect = self._mock_manager self.sw._multi_RE = False self.assertTrue(self.sw.install("test.tgz", no_copy=True)) @patch("jnpr.junos.Device.execute") def test_sw_install_srx_branch_cluster(self, mock_execute): mock_execute.side_effect = self._mock_manager self.sw._multi_RE = False self.sw._dev.facts["personality"] = "SRX_BRANCH" self.sw._dev.facts["srx_cluster"] = True self.assertTrue(self.sw.install("test.tgz", no_copy=True)) @patch("jnpr.junos.Device.execute") def test_sw_install_no_package_result(self, mock_execute): mock_execute.side_effect = self._mock_manager self.sw._multi_RE = False self.assertTrue(self.sw.install("test_no_result.tgz", no_copy=True)) @patch("jnpr.junos.Device.execute") def test_sw_install_nonexistent_mx80_package(self, mock_execute): mock_execute.side_effect = self._mock_manager self.sw._multi_RE = False var_ret = self.sw.install("test_no_mx80_packages.tgz", no_copy=True) self.assertFalse(var_ret[0]) @patch("jnpr.junos.Device.execute") def test_sw_install_issu(self, mock_execute): mock_execute.side_effect = self._mock_manager package = "test.tgz" self.assertTrue(self.sw.install(package, issu=True, no_copy=True)) @patch("jnpr.junos.Device.execute") def test_sw_install_issu_validate_False(self, mock_execute): mock_execute.side_effect = self._mock_manager package = "test.tgz" self.assertTrue(self.sw.install(package, issu=True, no_copy=True, validate=False)) @patch("jnpr.junos.Device.execute") def test_sw_install_issu_validate_True(self, mock_execute): mock_execute.side_effect = self._mock_manager package = "test.tgz" self.assertTrue(self.sw.install(package, issu=True, no_copy=True, validate=True)) @patch("jnpr.junos.Device.execute") def test_sw_install_nssu(self, mock_execute): mock_execute.side_effect = self._mock_manager package = "test.tgz" self.assertTrue(self.sw.install(package, nssu=True, no_copy=True)) @patch("jnpr.junos.Device.execute") def test_sw_install_nssu_validate_False(self, mock_execute): mock_execute.side_effect = self._mock_manager package = "test.tgz" self.assertTrue(self.sw.install(package, nssu=True, no_copy=True, validate=False)) @patch("jnpr.junos.Device.execute") def test_sw_install_nssu_validate_True(self, mock_execute): mock_execute.side_effect = self._mock_manager package = "test.tgz" self.assertTrue(self.sw.install(package, nssu=True, no_copy=True, validate=True)) @patch("jnpr.junos.Device.execute") def test_sw_install_issu_nssu_both_error(self, mock_execute): mock_execute.side_effect = self._mock_manager try: self.sw.install("test.tgz", issu=True, nssu=True) except TypeError as ex: self.assertEqual( str(ex), "install function can either take issu or nssu not both" ) @patch("jnpr.junos.Device.execute") def test_sw_install_issu_single_re_error(self, mock_execute): mock_execute.side_effect = self._mock_manager self.sw._multi_RE = False try: self.sw.install("test.tgz", issu=True) except TypeError as ex: self.assertEqual(str(ex), "ISSU/NSSU requires Multi RE setup") @patch("jnpr.junos.Device.execute") def test_sw_install_issu_nssu_single_re_error(self, mock_execute): mock_execute.side_effect = self._mock_manager package = "test.tgz" self.sw._multi_RE = False self.assertRaises(TypeError, self.sw.install, package, nssu=True, issu=True) @patch("jnpr.junos.Device.execute") def test_sw_pkgaddISSU(self, mock_execute): mock_execute.side_effect = self._mock_manager package = "test.tgz" self.assertTrue(self.sw.pkgaddISSU(package)) @patch("jnpr.junos.Device.execute") def test_sw_pkgaddNSSU(self, mock_execute): mock_execute.side_effect = self._mock_manager package = "test.tgz" self.assertTrue(self.sw.pkgaddNSSU(package)) @patch("jnpr.junos.Device.execute") def test_sw_pkgadd_pkg_set(self, mock_execute): mock_execute.side_effect = self._mock_manager pkg_set = ["abc.tgz", "pqr.tgz"] self.sw._mixed_VC = True self.sw.pkgadd(pkg_set) self.assertEqual( [i.text for i in mock_execute.call_args[0][0].findall("set")], pkg_set ) @patch("jnpr.junos.Device.execute") def test_sw_validate(self, mock_execute): mock_execute.side_effect = self._mock_manager self.assertTrue(self.sw.validate("package.tgz")) @patch("jnpr.junos.Device.execute") def test_sw_validate_nssu(self, mock_execute): mock_execute.side_effect = self._mock_manager self.sw.log = MagicMock() # get_config returns false self.assertFalse(self.sw.validate("package.tgz", nssu=True)) self.sw.log.assert_called_with( "Requirement FAILED: GRES is not Enabled in configuration" ) @patch("jnpr.junos.Device.execute") def test_sw_validate_issu(self, mock_execute): mock_execute.side_effect = self._mock_manager self.dev.rpc.get_config = MagicMock() self.assertTrue(self.sw.validate("package.tgz", issu=True)) @patch("jnpr.junos.Device.execute") def test_sw_val_issu_request_shell_execute_gres_on(self, mock_execute): mock_execute.side_effect = self._mock_manager self.dev.rpc.get_config = MagicMock() self.dev.rpc.request_shell_execute = MagicMock() self.dev.rpc.request_shell_execute.return_value = etree.fromstring( """ Graceful switchover: On """ ) self.assertTrue(self.sw.validate("package.tgz", issu=True)) @patch("jnpr.junos.Device.execute") def test_sw_validate_issu_2re_false(self, mock_execute): mock_execute.side_effect = self._mock_manager self.dev.facts["2RE"] = False self.assertFalse(self.sw.validate("package.tgz", issu=True)) self.dev.facts["2RE"] = True @patch("paramiko.SSHClient") @patch("jnpr.junos.utils.start_shell.StartShell.wait_for") def test_sw_validate_issu_request_shell_execute(self, mock_ss, mock_ssh): self._issu_test_helper() with patch("jnpr.junos.utils.start_shell.StartShell.run") as ss: ss.return_value = (True, "Graceful switchover: On") self.assertTrue(self.sw.validate("package.tgz", issu=True)) @patch("paramiko.SSHClient") @patch("jnpr.junos.utils.start_shell.StartShell.wait_for") def test_sw_validate_issu_ss_login_other_re_fail(self, mock_ss, mock_ssh): self._issu_test_helper() with patch("jnpr.junos.utils.start_shell.StartShell.run") as ss: ss.return_value = (False, "Graceful switchover: On") self.assertFalse(self.sw.validate("package.tgz", issu=True)) self.sw.log.assert_called_with( 'Requirement FAILED: Not able run "show system switchover"' ) @patch("paramiko.SSHClient") @patch("jnpr.junos.utils.start_shell.StartShell.wait_for") def test_sw_validate_issu_ss_graceful_off(self, mock_ss, mock_ssh): self._issu_test_helper() with patch("jnpr.junos.utils.start_shell.StartShell.run") as ss: ss.return_value = (True, "Graceful switchover: Off") self.assertFalse(self.sw.validate("package.tgz", issu=True)) self.sw.log.assert_called_with( "Requirement FAILED: Graceful switchover status is not On" ) def _issu_test_helper(self): self.sw.log = MagicMock() self.dev.rpc.request_shell_execute = MagicMock() self.dev.rpc = MagicMock() self.dev.rpc.get_routing_task_replication_state.return_value = self._read_file( "get-routing-task-replication-state.xml" ) self.dev.rpc.check_in_service_upgrade.return_value = self._read_file( "check-in-service-upgrade.xml" ) self.dev.rpc.request_shell_execute.side_effect = RpcError(rsp="not ok") @patch("jnpr.junos.Device.execute") def test_sw_validate_issu_stateful_replication_off(self, mock_execute): mock_execute.side_effect = self._mock_manager self.dev.rpc.get_config = MagicMock() self.dev.rpc.get_routing_task_replication_state = MagicMock() self.sw.log = MagicMock() self.assertFalse(self.sw.validate("package.tgz", issu=True)) self.sw.log.assert_called_with( "Requirement FAILED: Either Stateful Replication is not Enabled " "or RE mode\nis not Master" ) @patch("jnpr.junos.Device.execute") def test_sw_validate_issu_commit_sync_off(self, mock_execute): mock_execute.side_effect = self._mock_manager self.dev.rpc.get_config = MagicMock() self.dev.rpc.get_config.return_value = etree.fromstring( """ """ ) self.sw.log = MagicMock() self.assertFalse(self.sw.validate("package.tgz", issu=True)) self.sw.log.assert_called_with( "Requirement FAILED: commit synchronize is not Enabled " "in configuration" ) @patch("jnpr.junos.Device.execute") def test_sw_validate_issu_nonstop_routing_off(self, mock_execute): mock_execute.side_effect = self._mock_manager self.dev.rpc.get_config = MagicMock() self.dev.rpc.get_config.side_effect = iter( [ etree.fromstring( """ """ ), etree.fromstring( """ """ ), etree.fromstring( """ """ ), ] ) self.sw.log = MagicMock() self.assertFalse(self.sw.validate("package.tgz", issu=True)) self.sw.log.assert_called_with( "Requirement FAILED: NSR is not Enabled in configuration" ) @patch("jnpr.junos.Device.execute") def test_sw_validate_issu_validation_succeeded(self, mock_execute): rpc_reply = """mgd: commit complete Validation succeeded 1 """ mock_execute.side_effect = etree.fromstring(rpc_reply) package = "package.tgz" self.assertFalse(self.sw.validate(package, issu=True)) @patch("jnpr.junos.Device.execute") def test_sw_remote_checksum_not_found(self, mock_execute): xml = """ error md5: /var/tmp/123: No such file or directory """ mock_execute.side_effect = RpcError(rsp=etree.fromstring(xml)) package = "test.tgz" self.assertEqual(self.sw.remote_checksum(package), None) @patch("jnpr.junos.Device.execute") def test_sw_remote_checksum_not_rpc_error(self, mock_execute): xml = """ error something else! """ mock_execute.side_effect = RpcError(rsp=etree.fromstring(xml)) package = "test.tgz" with self.assertRaises(RpcError): self.sw.remote_checksum(package) @patch("jnpr.junos.Device.execute") def test_sw_remote_checksum_md5(self, mock_execute): xml = """ MD5 /var/tmp/foo.tgz 8a04cfc475e21507be5145bc0e82ce09 """ mock_execute.side_effect = etree.fromstring(xml) package = "foo.tgz" self.assertEqual( self.sw.remote_checksum(package), "8a04cfc475e21507be5145bc0e82ce09" ) @patch("jnpr.junos.Device.execute") def test_sw_remote_checksum_sha1(self, mock_execute): xml = """ SHA1 /var/tmp/foo.tgz 33c12913e81599452270ee849511e2e7578db00c """ mock_execute.side_effect = etree.fromstring(xml) package = "foo.tgz" self.assertEqual( self.sw.remote_checksum(package, algorithm="sha1"), "33c12913e81599452270ee849511e2e7578db00c", ) @patch("jnpr.junos.Device.execute") def test_sw_remote_checksum_sha256(self, mock_execute): xml = """ SHA256 /var/tmp/foo.tgz 27bccf64babe4ea6687d3461e6d724d165aa140933e77b582af615dad4f02170 """ mock_execute.side_effect = etree.fromstring(xml) package = "foo.tgz" self.assertEqual( self.sw.remote_checksum(package, algorithm="sha256"), "27bccf64babe4ea6687d3461e6d724d165aa140933e77b582af615dad4f02170", ) def test_sw_remote_checksum_unknown_alg(self): self.assertRaises( ValueError, self.sw.remote_checksum, "foo.tgz", algorithm="foo" ) @patch("jnpr.junos.Device.execute") def test_sw_safe_copy(self, mock_execute): mock_execute.side_effect = self._mock_manager package = "safecopy.tgz" self.sw.put = MagicMock() with patch("jnpr.junos.utils.sw.SW.local_md5"): self.assertTrue( self.sw.safe_copy( package, progress=self._myprogress, cleanfs=True, checksum="96a35ab371e1ca10408c3caecdbd8a67", ) ) @patch("jnpr.junos.Device.execute") @patch("jnpr.junos.utils.sw.SW.local_checksum") def test_sw_safe_copy_missing_local_file(self, mock_checksum, mock_execute): mock_execute.side_effect = self._mock_manager mock_checksum.side_effect = IOError() package = "foo.tgz" self.assertFalse( self.sw.safe_copy(package, progress=self._myprogress, cleanfs=True) ) @patch("jnpr.junos.Device.execute") def test_sw_safe_copy_cleanfs_fail(self, mock_execute): mock_execute.side_effect = RpcError() package = "foo.tgz" self.assertFalse( self.sw.safe_copy( package, progress=self._myprogress, cleanfs=True, checksum="96a35ab371e1ca10408c3caecdbd8a67", ) ) @patch("jnpr.junos.Device.execute") def test_sw_safe_copy_return_false(self, mock_execute): # not passing checksum value, will get random from magicmock mock_execute.side_effect = self._mock_manager package = "safecopy.tgz" self.sw.put = MagicMock() with patch("jnpr.junos.utils.sw.SW.local_md5"): self.assertFalse( self.sw.safe_copy(package, progress=self._myprogress, cleanfs=True) ) @patch("jnpr.junos.Device.execute") def test_sw_safe_copy_checksum_none(self, mock_execute): mock_execute.side_effect = self._mock_manager package = "safecopy.tgz" self.sw.put = MagicMock() with patch( "jnpr.junos.utils.sw.SW.local_md5", MagicMock(return_value="96a35ab371e1ca10408c3caecdbd8a67"), ): self.assertTrue( self.sw.safe_copy(package, progress=self._myprogress, cleanfs=True) ) @patch("jnpr.junos.Device.execute") def test_sw_safe_install(self, mock_execute): mock_execute.side_effect = self._mock_manager package = "install.tgz" self.sw.put = MagicMock() with patch( "jnpr.junos.utils.sw.SW.local_md5", MagicMock(return_value="96a35ab371e1ca10408c3caecdbd8a67"), ): self.assertTrue( self.sw.install(package, progress=self._myprogress, cleanfs=True) ) @patch("jnpr.junos.utils.sw.SW.safe_copy") def test_sw_safe_install_copy_fail(self, mock_copy): mock_copy.return_value = False output = self.sw.install("file") self.assertFalse(output[0]) @patch("jnpr.junos.utils.sw.SW.validate") def test_sw_install_validate(self, mock_validate): mock_validate.return_value = False output = self.sw.install("file", validate=True, no_copy=True) self.assertFalse(output[0]) @patch(builtin_string + ".print") @patch("jnpr.junos.utils.sw.SW.pkgadd") def test_sw_install_multi_mx(self, mock_pkgadd, mock_print): mock_pkgadd.return_value = True, "msg" self.sw._multi_RE = True self.sw._multi_MX = True self.assertTrue(self.sw.install("file", no_copy=True, progress=True)[0]) @patch(builtin_string + ".print") @patch("jnpr.junos.utils.sw.SW.pkgadd") def test_sw_install_multi_mx_msg_check(self, mock_pkgadd, mock_print): # mock_pkgadd.return_value = True mock_pkgadd.side_effect = [(True, "re0"), (True, "re1")] self.sw._multi_RE = True self.sw._multi_MX = True bool_ret, msg = self.sw.install("file", no_copy=True, progress=True) self.assertEqual(msg, "re0\nre1") self.assertTrue(bool_ret) @patch(builtin_string + ".print") @patch("jnpr.junos.utils.sw.SW.pkgadd") def test_sw_install_multi_mx_msg_check_failure(self, mock_pkgadd, mock_print): # mock_pkgadd.return_value = True mock_pkgadd.side_effect = [(True, "re0"), (False, "re1 install failed")] self.sw._multi_RE = True self.sw._multi_MX = True bool_ret, msg = self.sw.install("file", no_copy=True, progress=True) self.assertEqual(msg, "re0\nre1 install failed") self.assertFalse(bool_ret) @patch("jnpr.junos.utils.sw.SW.pkgadd") def test_sw_install_multi_vc(self, mock_pkgadd): mock_pkgadd.return_value = True, "msg" self.sw._multi_RE = True self.sw._multi_VC = True self.sw._RE_list = ("version_RE0", "version_RE1") self.assertTrue(self.sw.install("file", no_copy=True)[0]) @patch("jnpr.junos.utils.sw.SW.pkgadd") def test_sw_install_multi_vc_member_id(self, mock_pkgadd): mock_pkgadd.return_value = True, "msg" self.dev.facts["vc_master"] = "0" self.sw._multi_RE = True self.sw._multi_VC = True self.sw._RE_list = ("version_RE0", "version_RE1") self.assertTrue(self.sw.install("file", member_id=["1"], no_copy=True)[0]) @patch("jnpr.junos.utils.sw.SW.pkgadd") def test_sw_install_multi_vc_multiple_member_id(self, mock_pkgadd): mock_pkgadd.return_value = True, "msg" self.dev.facts["vc_master"] = "0" self.sw._multi_RE = False self.sw._multi_VC_nsync = True self.sw._RE_list = ("version_RE0", "version_RE1") self.assertTrue(self.sw.install("file", member_id=["0", "1"], no_copy=True)[0]) @patch("jnpr.junos.utils.sw.SW.pkgadd") def test_sw_install_mixed_vc(self, mock_pkgadd): mock_pkgadd.return_value = True self.dev.facts["vc_master"] = "0" self.sw._mixed_VC = True self.sw._RE_list = ("version_RE0", "version_RE1") self.assertTrue(self.sw.install(pkg_set=["abc.tgz", "pqr.tgz"], no_copy=True)) @patch("jnpr.junos.utils.sw.SW.pkgadd") def test_sw_install_multi_vc_mode_disabled(self, mock_pkgadd): mock_pkgadd.return_value = True, "msg" self.dev._facts = { "2RE": True, "domain": None, "RE1": {"status": "OK", "model": "RE-EX8208", "mastership_state": "backup"}, "ifd_style": "SWITCH", "version_RE1": "12.3R7.7", "version_RE0": "12.3", "serialnumber": "XXXXXX", "fqdn": "XXXXXX", "RE0": {"status": "OK", "model": "RE-EX8208", "mastership_state": "master"}, "switch_style": "VLAN", "version": "12.3R5-S3.1", "master": "RE0", "hostname": "XXXXXX", "HOME": "/var/home/sn", "vc_mode": "Disabled", "model": "EX8208", "vc_capable": True, "personality": "SWITCH", } sw = self.get_sw() sw.install(package="abc.tgz", no_copy=True) self.assertFalse(sw._multi_VC) calls = [ call("/var/tmp/abc.tgz", dev_timeout=1800, vmhost=False, re0=True), call("/var/tmp/abc.tgz", dev_timeout=1800, re1=True, vmhost=False), ] mock_pkgadd.assert_has_calls(calls) @patch("jnpr.junos.utils.sw.SW.pkgadd") def test_sw_install_mixed_vc_with_copy(self, mock_pkgadd): mock_pkgadd.return_value = True self.sw._mixed_VC = True self.sw.put = MagicMock() self.sw.remote_checksum = MagicMock( return_value="d41d8cd98f00b204e9800998ecf8427e" ) self.sw._RE_list = ("version_RE0", "version_RE1") with patch( "jnpr.junos.utils.sw.SW.local_md5", MagicMock(return_value="d41d8cd98f00b204e9800998ecf8427e"), ): self.assertTrue( self.sw.install(pkg_set=["install.tgz", "install.tgz"], cleanfs=False) ) @patch("jnpr.junos.utils.sw.SW.pkgadd") def test_sw_install_mixed_vc_safe_copy_false(self, mock_pkgadd): mock_pkgadd.return_value = True self.sw._mixed_VC = True self.sw.safe_copy = MagicMock(return_value=False) self.sw.remote_checksum = MagicMock( return_value="d41d8cd98f00b204e9800998ecf8427e" ) self.sw._RE_list = ("version_RE0", "version_RE1") with patch( "jnpr.junos.utils.sw.SW.local_md5", MagicMock(return_value="d41d8cd98f00b204e9800998ecf8427e"), ): output = self.sw.install( pkg_set=["install.tgz", "install.tgz"], cleanfs=False ) self.assertFalse(output[0]) @patch("jnpr.junos.utils.sw.SW.pkgadd") def test_sw_install_mixed_vc_ValueError(self, mock_pkgadd): mock_pkgadd.return_value = True self.sw._mixed_VC = True self.sw.remote_checksum = MagicMock( return_value="d41d8cd98f00b204e9800998ecf8427e" ) self.sw._RE_list = ("version_RE0", "version_RE1") with patch( "jnpr.junos.utils.sw.SW.local_md5", MagicMock(return_value="d41d8cd98f00b204e9800998ecf8427e"), ): self.assertRaises( ValueError, self.sw.install, pkg_set="install.tgz", cleanfs=False ) @patch("jnpr.junos.utils.sw.SW.pkgadd") def test_sw_install_mixed_vc_TypeError(self, mock_pkgadd): self.assertRaises(TypeError, self.sw.install, cleanfs=False) @patch("jnpr.junos.Device.execute") def test_sw_install_vmhost(self, mock_execute): mock_execute.side_effect = self._mock_manager package = "test.tgz" self.assertTrue(self.sw.install(package, no_copy=True, vmhost=True)) @patch("jnpr.junos.Device.execute") def test_sw_install_kwargs_force_host(self, mock_execute): self.sw.install("file", no_copy=True, force_host=True) rpc = [ "/var/tmp/file", "/var/tmp/file", "/var/tmp/file", "/var/tmp/file", "/var/tmp/file", "/var/tmp/file", "/var/tmp/file", "/var/tmp/file", "/var/tmp/file", "/var/tmp/file", "/var/tmp/file", "/var/tmp/file", "/var/tmp/file", "/var/tmp/file", "/var/tmp/file", "/var/tmp/file", "/var/tmp/file", "/var/tmp/file", "/var/tmp/file", "/var/tmp/file", "/var/tmp/file", "/var/tmp/file", "/var/tmp/file", "/var/tmp/file", "/var/tmp/file", "/var/tmp/file", "/var/tmp/file", "/var/tmp/file", "/var/tmp/file", "/var/tmp/file", ] self.assertTrue( etree.tostring(mock_execute.call_args[0][0]).decode("utf-8") in rpc ) @patch("jnpr.junos.Device.execute") def test_sw_rollback(self, mock_execute): rsp = ( "junos-vsrx-12.1X46-D30.2-domestic will " "become active at next reboot" ) mock_execute.side_effect = etree.XML(rsp) msg = "junos-vsrx-12.1X46-D30.2-domestic will become active " "at next reboot" self.assertEqual(self.sw.rollback(), msg) @patch("jnpr.junos.Device.execute") def test_sw_rollback_multi(self, mock_execute): mock_execute.side_effect = self._mock_manager msg = { "fpc1": "Junos version 'D10.2' will become active at next reboot", "fpc0": 'JUNOS version "D10.2" will become active at next reboot', } self.assertEqual(eval(self.sw.rollback()), msg) @patch("jnpr.junos.Device.execute") @unittest.skipIf(sys.platform == "win32", "will work for windows in coming days") def test_sw_rollback_multi_exception(self, mock_execute): fname = "request-package-rollback-multi-error.xml" mock_execute.side_effect = self._read_file(fname) self.assertRaises(SwRollbackError, self.sw.rollback) @patch("jnpr.junos.Device.execute") def test_sw_rollback_exception(self, mock_execute): rsp = ( "WARNING: Cannot rollback, " "/packages/junos.old is not valid" ) mock_execute.side_effect = etree.XML(rsp) self.assertRaises(SwRollbackError, self.sw.rollback) def test_sw_inventory(self): self.sw.dev.rpc.file_list = MagicMock(side_effect=self._mock_manager) self.assertEqual(self.sw.inventory, {"current": None, "rollback": None}) @patch("jnpr.junos.Device.execute") def test_sw_reboot(self, mock_execute): mock_execute.side_effect = self._mock_manager self.sw._multi_MX = True self.assertTrue("Shutdown NOW" in self.sw.reboot()) @patch("jnpr.junos.Device.execute") def test_sw_reboot_output_in_reply(self, mock_execute): mock_execute.side_effect = self._mock_manager self.sw._multi_MX = True self.assertTrue("shutdown: [pid 13192]" in self.sw.reboot()) @patch("jnpr.junos.Device.execute") def test_sw_reboot_at(self, mock_execute): mock_execute.side_effect = self._mock_manager self.assertTrue("Shutdown at" in self.sw.reboot(at="201407091815")) @patch("jnpr.junos.Device.execute") def test_sw_reboot_multi_re_vc(self, mock_execute): mock_execute.side_effect = self._mock_manager self.sw._multi_RE = True self.sw._multi_VC = False self.assertTrue("Shutdown NOW" in self.sw.reboot()) @patch("jnpr.junos.Device.execute") def test_sw_reboot_mixed_vc(self, mock_execute): mock_execute.side_effect = self._mock_manager self.sw._mixed_VC = True self.sw._multi_VC = True self.sw.reboot() self.assertTrue( "all-members" in (etree.tostring(mock_execute.call_args[0][0]).decode("utf-8")) ) @patch("jnpr.junos.Device.execute") def test_sw_reboot_mixed_vc_all_re_false(self, mock_execute): mock_execute.side_effect = self._mock_manager self.sw._mixed_VC = True self.sw._multi_VC = True self.sw.reboot(all_re=False) self.assertTrue( "all-members" not in (etree.tostring(mock_execute.call_args[0][0]).decode("utf-8")) ) @patch("jnpr.junos.Device.execute") def test_sw_reboot_exception(self, mock_execute): rsp = etree.XML("test") mock_execute.side_effect = RpcError(rsp=rsp) self.assertRaises(Exception, self.sw.reboot) @patch("jnpr.junos.Device.execute") def test_sw_reboot_exception_RpcTimeoutError(self, mock_execute): rsp = (self.dev, "request-reboot", 60) mock_execute.side_effect = RpcTimeoutError(*rsp) self.assertRaises(Exception, self.sw.reboot) @patch("jnpr.junos.Device.execute") def test_sw_poweroff(self, mock_execute): mock_execute.side_effect = self._mock_manager self.sw._multi_MX = True self.assertTrue("Shutdown NOW" in self.sw.poweroff()) @patch("jnpr.junos.Device.execute") def test_sw_poweroff_exception(self, mock_execute): rsp = etree.XML("test") mock_execute.side_effect = RpcError(rsp=rsp) self.assertRaises(Exception, self.sw.poweroff) @patch("jnpr.junos.Device.execute") def test_sw_poweroff_multi_re_vc(self, mock_execute): mock_execute.side_effect = self._mock_manager self.sw._multi_RE = True self.sw._multi_VC = False self.assertTrue("Shutdown NOW" in self.sw.poweroff()) @patch("jnpr.junos.Device.execute") def test_sw_halt(self, mock_execute): mock_execute.side_effect = self._mock_manager self.sw._multi_MX = True self.assertTrue("Shutdown NOW" in self.sw.halt()) @patch("jnpr.junos.Device.execute") def test_sw_halt_exception(self, mock_execute): rsp = etree.XML("test") mock_execute.side_effect = RpcError(rsp=rsp) self.assertRaises(Exception, self.sw.halt) @patch("jnpr.junos.Device.execute") def test_sw_halt_multi_re_vc(self, mock_execute): mock_execute.side_effect = self._mock_manager self.sw._multi_RE = True self.sw._multi_VC = False self.assertTrue("Shutdown NOW" in self.sw.halt()) @patch("jnpr.junos.Device.execute") def test_sw_zeroize(self, mock_execute): mock_execute.side_effect = self._mock_manager self.sw._multi_MX = True self.assertTrue("zeroizing" in self.sw.zeroize()) @patch("jnpr.junos.Device.execute") def test_sw_zeroize_exception(self, mock_execute): rsp = etree.XML("test") mock_execute.side_effect = RpcError(rsp=rsp) self.assertRaises(Exception, self.sw.zeroize) @patch("jnpr.junos.Device.execute") def test_sw_check_pending_install(self, mock_execute): mock_execute.side_effect = self._mock_manager package = "test.tgz" output = self.sw.install(package) self.assertFalse(output[0]) @patch("jnpr.junos.utils.sw.SW.pkgadd") def test_sw_check_pending_install_RpcError_continue(self, mock_pkgadd): mock_pkgadd.return_value = True, "msg" self.assertTrue(self.sw.install("test.tgz", no_copy=True)[0]) def _myprogress(self, dev, report): pass def _my_scp_progress(self, _path, _total, _xfrd): print(_path, _total, _xfrd) @contextmanager def capture(self, command, *args, **kwargs): out, sys.stdout = sys.stdout, StringIO() command(*args, **kwargs) sys.stdout.seek(0) yield sys.stdout.read() sys.stdout = out def _read_file(self, fname): from ncclient.xml_ import NCElement fpath = os.path.join(os.path.dirname(__file__), "rpc-reply", fname) foo = open(fpath).read() rpc_reply = NCElement( foo, self.dev._conn._device_handler.transform_reply() )._NCElement__doc[0] return rpc_reply def _mock_manager(self, *args, **kwargs): if kwargs and "ignore_warning" not in kwargs: # Little hack for mocked execute if "dev_timeout" in kwargs: if ( args and args[0].findtext("package-name") == "/var/tmp/test_no_result.tgz" ): return self._read_file(args[0].tag + ".no_result.xml") elif ( args and args[0].findtext("package-name") == "/var/tmp/test_no_mx80_packages.tgz" ): return self._read_file(args[0].tag + ".no_mx80_packages.xml") else: return self._read_file(args[0].tag + ".xml") if "path" in kwargs: if kwargs["path"] == "/packages": return self._read_file("file-list_dir.xml") if args and self._testMethodName == "test_sw_zeroize": return self._read_file("request-zeroize.xml") device_params = kwargs["device_params"] device_handler = make_device_handler(device_params) session = SSHSession(device_handler) return Manager(session, device_handler) elif args: if self._testMethodName == "test_sw_reboot_output_in_reply": return self._read_file("request-reboot-output.xml") elif args[0].find("at") is not None: return self._read_file("request-reboot-at.xml") elif self._testMethodName == "test_sw_check_pending_install": if args[0].text == "request-package-check-pending-install": return self._read_file( "request-package-check-pending-install-error.xml" ) elif ( self._testMethodName == "test_sw_check_pending_install_RpcError_continue" ): if args[0].text == "request-package-check-pending-install": xml = """ protocol operation-failed error syntax error request-package-check-pendings-install """ return RpcError(rsp=etree.fromstring(xml)) else: return self._read_file(args[0].tag + ".xml") if __name__ == "__main__": suite = unittest.TestLoader().loadTestsFromTestCase(TestSW) unittest.TextTestRunner(verbosity=2).run(suite) py-junos-eznc-2.7.3/tests/unit/utils/test_util.py000066400000000000000000000016021475361112400221160ustar00rootroot00000000000000__author__ = "Nitin Kumar, Rick Sherman" __credits__ = "Jeremy Schulman" import unittest import nose2 from jnpr.junos import Device from jnpr.junos.utils.util import Util from unittest.mock import patch class TestUtil(unittest.TestCase): @patch("ncclient.manager.connect") def setUp(self, mock_connect): self.dev = Device( host="1.1.1.1", user="nitin", password="password123", gather_facts=False ) self.dev.open() self.util = Util(self.dev) def test_repr(self): self.assertEqual(repr(self.util), "jnpr.junos.utils.Util(1.1.1.1)") def test_dev_setter_exception(self): def mod_dev(): self.util.dev = "abc" self.assertRaises(RuntimeError, mod_dev) def test_rpc_setter_exception(self): def mod_rpc(): self.util.rpc = "abc" self.assertRaises(RuntimeError, mod_rpc) py-junos-eznc-2.7.3/vagrant/000077500000000000000000000000001475361112400157125ustar00rootroot00000000000000py-junos-eznc-2.7.3/vagrant/README.md000066400000000000000000000041731475361112400171760ustar00rootroot00000000000000Vagrant ======= The intent of the Vagrant directory is to provide multiple examples of installing PyEZ using tools such as Ansible, Puppet, and Chef. The host and guest operating systems will vary based on capability of each provisioner, and updates are provided as best effort. ---------- Prerequisites --------- - **[vagrant](http://www.vagrantup.com) 1.5** - **[virtualbox](http://www.virtualbox.org) 4.3** #### `vagrant status` Display status of configured machines. #### `vagrant up` or `vagrant up ` This will bring up a new virtual machine, after downloading the image from [Opscode's Bento project](https://github.com/opscode/bento). #### `vagrant ssh ` Creates an SSH session to the VM #### `vagrant halt` or `vagrant halt ` Stop the VM(s). Leaving the machine name out will perform the action on all created VMs. This doesn't work with all commands. #### `vagrant destroy` or `vagrant destory ` Delete the virtual machines from your system. The actual base box files will remain in `.vagrant.d` in your home directory, and can be listed with `vagrant box list`, and removed with `vagrant box delete `. #### `vagrant provision ` Provisions a VM, e.g. installs prerequisites and builds/installs py-junos-eznc. *(Runs automatically after vagrant up. Only needed when something fails. Safe to run multiple times (idempotent))* > **NOTE:** See [ the official Vagrant documentation](http://docs.vagrantup.com/v2/) for a more detailed information ---------- Usage --------------- - Manually testing the build against different host platforms - Creating builders that can be called from [jenkins-ci](http://jenkins-ci.org/) - Determining the best practices for prerequisite and Python installs, e.g. CentOS 6 only supports Python up to 2.6 with [EPEL](http://fedoraproject.org/wiki/EPEL), so Python should be installed from source, with [pyenv](https://github.com/yyuu/pyenv) (as the local user, not system-wide), etc. - The Vagrantfile can be very easily modified to use cloud environments or VMware, as opposed to virtualbox py-junos-eznc-2.7.3/vagrant/ansible/000077500000000000000000000000001475361112400173275ustar00rootroot00000000000000py-junos-eznc-2.7.3/vagrant/ansible/Vagrantfile000066400000000000000000000034601475361112400215170ustar00rootroot00000000000000# -*- mode: ruby -*- # vi: set ft=ruby : VAGRANTFILE_API_VERSION = "2" require "vagrant" if Vagrant::VERSION < "1.2.1" raise "py-junos-eznc requires Vagrant 1.2.x or higher (1.3.x preferred)" end builders = [ { name: "centos6", box: "opscode-centos-6.4", url: "https://opscode-vm-bento.s3.amazonaws.com/vagrant/opscode_centos-6.4_provisionerless.box", ssh_port: 2001 }, { name: "fedora-19", box: "opscode-fedora-19", url: "https://opscode-vm-bento.s3.amazonaws.com/vagrant/opscode-fedora-19_provisionerless.box", ssh_port: 2002 }, { name: "precise", box: "opscode-ubuntu-12.04", url: "https://opscode-vm-bento.s3.amazonaws.com/vagrant/opscode_ubuntu-12.04_provisionerless.box", ssh_port: 2003 }, { name: "saucy", box: "opscode-ubuntu-13.10", url: "https://opscode-vm-bento.s3.amazonaws.com/vagrant/opscode_ubuntu-13.10_provisionerless.box", ssh_port: 2004 }, { name: "debian71", box: "opscode-debian-7.1.0", url: "https://opscode-vm-bento.s3.amazonaws.com/vagrant/opscode_debian-7.1.0_provisionerless.box", ssh_port: 2005 }, ] Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| builders.each do |opts| config.vm.define opts[:name] do |config| config.vm.hostname = opts[:name] config.vm.box = opts[:box] config.vm.box_url = opts[:url] config.vm.boot_timeout = 120 config.vm.network "forwarded_port", guest: 22, host: opts[:ssh_port], id: "ssh", auto_correct: true end config.vm.provider :virtualbox do |vb| vb.customize ["modifyvm", :id, "--memory", "1024"] vb.customize ["modifyvm", :id, "--cpus", "1"] end end config.vm.provision "ansible" do |ansible| ansible.playbook = "vagrant.yml" ansible.sudo = true ansible.verbose = "vv" #ansible.inventory_path = "./hosts" end end py-junos-eznc-2.7.3/vagrant/ansible/group_vars/000077500000000000000000000000001475361112400215165ustar00rootroot00000000000000py-junos-eznc-2.7.3/vagrant/ansible/group_vars/all000066400000000000000000000014621475361112400222140ustar00rootroot00000000000000--- ubuntu_package: - libxml2 - libxml2-dev - libxslt1.1 - libxslt1-dev - libgmp10 - libgmp-dev - python-dev - python-setuptools - python-lxml - python-yaml - python-jinja2 - python-paramiko - git debian_package: - libxml2 - libxml2-dev - libxslt1.1 - libxslt1-dev - libgmp10 - libgmp-dev - python-dev - python-setuptools centos_package: - libxml2 - libxml2-devel - libxslt - libxslt-devel - gmp - gmp-devel pip_package: - lxml - paramiko - PyYAML - jinja2 - scp ncclient: url: https://github.com/Juniper/ncclient.git installdir: /usr/local/lib/python2.7/dist-packages/ncclient-0.1a-py2.7.egg py-junos-eznc: url: https://github.com/jeremyschulman/py-junos-eznc installdir: /usr/local/lib/python2.7/dist-packages/junos_eznc-0.0.1-py2.7.egg py-junos-eznc-2.7.3/vagrant/ansible/vagrant.yml000066400000000000000000000032031475361112400215120ustar00rootroot00000000000000--- - hosts: all user: vagrant tasks: - group_by: key={{ ansible_distribution }} - hosts: Ubuntu gather_facts: False tasks: - name: Install all prerequisites from vars apt: pkg={{ item }} state=installed update_cache=yes with_items: - ${ubuntu_package} - hosts: Debian gather_facts: False tasks: - name: Install all prerequisites from vars apt: pkg={{ item }} state=installed update_cache=yes with_items: - ${debian_package} - hosts: CentOS gather_facts: False tasks: - name: Install all prerequisites from vars apt: pkg={{ item }} state=installed update_cache=yes with_items: - ${centos_package} - name: Install pip prerequisites pip: name={{ item }} state=present virtualenv=/home/vagrant/virtualenv with_items: - ${pip_package} - hosts: Fedora gather_facts: False tasks: - name: Install all prerequisites from vars apt: pkg={{ item }} state=installed update_cache=yes with_items: - ${fedora_package} - hosts: all gather_facts: False tasks: - name: clone Juniper repos git: repo={{ item.url }} dest=/home/vagrant/{{ item.path }} update=no with_items: - { url: '${ncclient.url}', path: 'ncclient' } - { url: '${py-junos-eznc.url}', path: 'py-junos-eznc' } - name: install Juniper python modules command: /usr/bin/python setup.py install chdir=/home/vagrant/{{ item.path }} creates={{ item.installdir }} with_items: - { installdir: '${ncclient.installdir}', path: 'ncclient' } - { installdir: '${py-junos-eznc.installdir}', path: 'py-junos-eznc' } py-junos-eznc-2.7.3/vagrant/puppet/000077500000000000000000000000001475361112400172275ustar00rootroot00000000000000py-junos-eznc-2.7.3/vagrant/puppet/README.md000066400000000000000000000033161475361112400205110ustar00rootroot00000000000000Vagrant/Puppet ======= This example uses Puppet to install PyEz with PIP using either PyPi or Git. ---------- Prerequisites --------- - **[vagrant](http://www.vagrantup.com) 1.5** - **[virtualbox](http://www.virtualbox.org) 4.3** - rsync on host Once Vagrant brings up the guest OS, two provisioners are executed in the following order: 1. Shell 1. Install Puppet 2. Execute Puppet manifest 1. Install dependencies with system package manager 2. Install PyEZ with pip For the script provisioner to install Puppet the required shell script must be present (as defined in the Vagrantfile). These are provided at https://github.com/hashicorp/puppet-bootstrap/ Some editing of the files is necessary. For example, centos_6_x.sh can be changed to fedora-20.sh with the following update: ``` REPO_URL="https://yum.puppetlabs.com/fedora/f20/products/x86_64/puppetlabs-release-20-10.noarch.rpm" ``` In testing the Debian script had to be modified. A diff is provided below. debian.sh ``` 5a6,10 > if [ "$(id -u)" != "0" ]; then > echo "This script must be run as root." >&2 > exit 1 > fi > 22,25d26 < if [ "$EUID" -ne "0" ]; then < echo "This script must be run as root." >&2 < exit 1 < fi ``` Guest Operating Systems --------------- - Ubuntu 12.04 - Ubuntu 12.10 - Ubuntu 13.10 - Fedora 19 - Fedora 20 - CentOS 6.5 - Debian 7.4 - FreeBSD 9.2 Usage --------------- The Puppet module is initialized from manifests/default.pp. PyEZ can be installed either via PyPi or Git. PyPi ``` class{'pyez': mode => 'pypi', version => 'present', # Can be any version published to PyPi } ``` Git ``` class{'pyez': mode => 'git', version => 'present', # present for HEAD or any commit, tag, or branch. } ``` py-junos-eznc-2.7.3/vagrant/puppet/Vagrantfile000066400000000000000000000054621475361112400214230ustar00rootroot00000000000000# -*- mode: ruby -*- # vi: set ft=ruby : VAGRANTFILE_API_VERSION = "2" require "vagrant" if Vagrant::VERSION < "1.5.0" raise "py-junos-eznc requires Vagrant 1.5.x or higher" end builders = [ { name: "ubuntu-12.04", box: "ubuntu-12.04", url: "http://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_ubuntu-12.04_chef-provisionerless.box", script: "ubuntu.sh", ssh_port: 2001 }, { name: "ubuntu-12.10", box: "ubuntu-12.10", url: "http://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_ubuntu-12.10_chef-provisionerless.box", script: "ubuntu.sh", ssh_port: 2002 }, { name: "ubuntu-13.10", box: "ubuntu-13.10", url: "http://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_ubuntu-13.10_chef-provisionerless.box", script: "ubuntu.sh", ssh_port: 2003 }, { name: "fedora-19", box: "fedora-19", url: "http://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_fedora-19_chef-provisionerless.box", script: "fedora-19.sh", ssh_port: 2004 }, { name: "fedora-20", box: "fedora-20", url: "http://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_fedora-20_chef-provisionerless.box", script: "fedora-20.sh", ssh_port: 2005 }, { name: "centos-6.5", box: "centos-6.5", url: "http://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_centos-6.5_chef-provisionerless.box", script: "centos_6_x.sh", ssh_port: 2006 }, { name: "debian-7.4", box: "debian-7.4", url: "http://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_debian-7.4_chef-provisionerless.box", script: "debian.sh", ssh_port: 2007 }, { name: "freebsd-9.2", box: "freebsd-9.2", url: "http://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_freebsd-9.2_chef-provisionerless.box", script: "freebsd.sh", ssh_port: 2008 }, ] Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| builders.each do |opts| config.vm.define opts[:name] do |config| config.vm.box = opts[:box] config.vm.box_url = opts[:url] config.vm.boot_timeout = 120 config.vm.network :forwarded_port, guest: 22, host: 2222, id: "ssh", disabled: true config.vm.network :forwarded_port, guest: 22, host: opts[:ssh_port], auto_correct: true config.ssh.port = opts[:ssh_port] # use sh to support FreeBSD config.ssh.shell = "sh" # use rsync for the synced folder to support FreeBSD config.vm.synced_folder ".", "/vagrant", type: "rsync" config.vm.provision :shell, :path => opts[:script] config.vm.provision :puppet, :module_path => "modules", :options => "--debug", :synced_folder_type => "rsync" end config.vm.provider :virtualbox do |vb| vb.customize ["modifyvm", :id, "--memory", "1024"] vb.customize ["modifyvm", :id, "--cpus", "1"] end end end py-junos-eznc-2.7.3/vagrant/puppet/manifests/000077500000000000000000000000001475361112400212205ustar00rootroot00000000000000py-junos-eznc-2.7.3/vagrant/puppet/manifests/default.pp000066400000000000000000000000741475361112400232060ustar00rootroot00000000000000class{'pyez': mode => 'pypi', version => 'present', }py-junos-eznc-2.7.3/vagrant/puppet/modules/000077500000000000000000000000001475361112400206775ustar00rootroot00000000000000py-junos-eznc-2.7.3/vagrant/puppet/modules/pyez/000077500000000000000000000000001475361112400216665ustar00rootroot00000000000000py-junos-eznc-2.7.3/vagrant/puppet/modules/pyez/Modulefile000066400000000000000000000003371475361112400237010ustar00rootroot00000000000000name 'juniper-pyez' version '0.1.0' source '' author 'Rick Sherman, Juniper Networks' license 'Apache 2.0' summary '' description '' project_page '' ## Add dependencies, if any: # dependency 'username/name', '>= 1.2.0' py-junos-eznc-2.7.3/vagrant/puppet/modules/pyez/Rakefile000066400000000000000000000000771475361112400233370ustar00rootroot00000000000000require 'rubygems' require 'puppetlabs_spec_helper/rake_tasks' py-junos-eznc-2.7.3/vagrant/puppet/modules/pyez/manifests/000077500000000000000000000000001475361112400236575ustar00rootroot00000000000000py-junos-eznc-2.7.3/vagrant/puppet/modules/pyez/manifests/init.pp000066400000000000000000000036741475361112400251750ustar00rootroot00000000000000# Class: pyez # # This module manages pyez # # Parameters: none # # Actions: # # Requires: see Modulefile # # Sample Usage: # class pyez ( $packages = $pyez::params::packages, $version = $pyez::params::version, $freebsdsource = $pyez::params::freebsdsource, $mode = $pyez::params::mode, ) inherits pyez::params { case $operatingsystem { # FreeBSD 9.2 has a buggy version of Puppet. This is a hack for now. 'FreeBSD': { package { 'devel/py27-pip': ensure => installed, source => 'ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-9.2-release/devel/py27-pip-1.4.tbz', before => Package['junos-eznc'], } package { 'textproc/libxml2': ensure => installed, source => 'ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-9.2-release/textproc/libxml2-2.8.0_2.tbz', before => Package['junos-eznc'], } package { 'textproc/libxslt': ensure => installed, source => 'ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-9.2-release/textproc/libxslt-1.1.28_1.tbz', before => Package['junos-eznc'], } Package <| title == 'git' |> { name => 'devel/git', source => 'ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-9.2-release/devel/git-1.8.3.4.tbz' } } 'RedHat', 'CentOS': { package { 'epel': provider => 'rpm', ensure => installed, source => 'http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm', before => Package['python-pip'], } package { $packages: ensure => 'present', before => Package['junos-eznc'],} } default: { package { $packages: ensure => 'present', before => Package['junos-eznc'],} } } if $mode == 'git' { package{ 'git': ensure => present, before => Package['junos-eznc'], } package{ 'junos-eznc': ensure => $version, provider => 'pip', source => 'git+https://github.com/Juniper/py-junos-eznc.git' } } else { package{ 'junos-eznc': ensure => $version, provider => 'pip', } } } py-junos-eznc-2.7.3/vagrant/puppet/modules/pyez/manifests/params.pp000066400000000000000000000006131475361112400255030ustar00rootroot00000000000000class pyez::params { $packages = $operatingsystem ? { /(?i-mx:ubuntu|debian)/ => ['python-pip', 'python-dev', 'libxml2-dev', 'libxslt-dev'], /(?i-mx:centos|fedora|redhat)/ => ['python-pip', 'python-devel', 'libxml2-devel', 'libxslt-devel', 'gcc'], /(?i-mx:freebsd)/ => ['devel/py27-pip', 'textproc/libxml2', 'textproc/libxslt'], } $version = 'present' $mode = 'pypi' }py-junos-eznc-2.7.3/vagrant/puppet/modules/pyez/metadata.json000066400000000000000000000013311475361112400243370ustar00rootroot00000000000000{ "author": "Rick Sherman, Juniper Networks", "checksums": { "manifests\\init.pp": "1e6680acb92445e71521c777a5a7f8f4", "Rakefile": "f37e6131fe7de9a49b09d31596f5fbf1", "spec\\spec_helper.rb": "3ea886dd135e120afa31e0aab12e85b0", "tests\\init.pp": "0d9ec1e464c5abf75c385f087294680d", "manifests\\params.pp": "d9cf5d5f8d01a35f01c391ebb787345c", "spec\\spec.opts": "a600ded995d948e393fbe2320ba8e51c", "Modulefile": "cccc2dde1144f9fd5f1beea464358281", "README.markdown": "99dd9fd290347d0e074a4d6fb9c9e652" }, "dependencies": [], "description": "", "license": "Apache 2.0", "name": "juniper-pyez", "project_page": "", "source": "", "summary": "", "types": [], "version": "0.1.0" }py-junos-eznc-2.7.3/vagrant/puppet/modules/pyez/spec/000077500000000000000000000000001475361112400226205ustar00rootroot00000000000000py-junos-eznc-2.7.3/vagrant/puppet/modules/pyez/spec/spec.opts000066400000000000000000000000571475361112400244630ustar00rootroot00000000000000--format s --colour --loadby mtime --backtrace py-junos-eznc-2.7.3/vagrant/puppet/modules/pyez/spec/spec_helper.rb000066400000000000000000000001071475361112400254340ustar00rootroot00000000000000require 'rubygems' require 'puppetlabs_spec_helper/module_spec_helper' py-junos-eznc-2.7.3/vagrant/puppet/modules/pyez/tests/000077500000000000000000000000001475361112400230305ustar00rootroot00000000000000py-junos-eznc-2.7.3/vagrant/puppet/modules/pyez/tests/init.pp000066400000000000000000000000151475361112400243300ustar00rootroot00000000000000include pyez py-junos-eznc-2.7.3/versioneer.py000066400000000000000000002515061475361112400170140ustar00rootroot00000000000000# Version: 0.29 """The Versioneer - like a rocketeer, but for versions. The Versioneer ============== * like a rocketeer, but for versions! * https://github.com/python-versioneer/python-versioneer * Brian Warner * License: Public Domain (Unlicense) * Compatible with: Python 3.7, 3.8, 3.9, 3.10, 3.11 and pypy3 * [![Latest Version][pypi-image]][pypi-url] * [![Build Status][travis-image]][travis-url] This is a tool for managing a recorded version number in setuptools-based python projects. The goal is to remove the tedious and error-prone "update the embedded version string" step from your release process. Making a new release should be as easy as recording a new tag in your version-control system, and maybe making new tarballs. ## Quick Install Versioneer provides two installation modes. The "classic" vendored mode installs a copy of versioneer into your repository. The experimental build-time dependency mode is intended to allow you to skip this step and simplify the process of upgrading. ### Vendored mode * `pip install versioneer` to somewhere in your $PATH * A [conda-forge recipe](https://github.com/conda-forge/versioneer-feedstock) is available, so you can also use `conda install -c conda-forge versioneer` * add a `[tool.versioneer]` section to your `pyproject.toml` or a `[versioneer]` section to your `setup.cfg` (see [Install](INSTALL.md)) * Note that you will need to add `tomli; python_version < "3.11"` to your build-time dependencies if you use `pyproject.toml` * run `versioneer install --vendor` in your source tree, commit the results * verify version information with `python setup.py version` ### Build-time dependency mode * `pip install versioneer` to somewhere in your $PATH * A [conda-forge recipe](https://github.com/conda-forge/versioneer-feedstock) is available, so you can also use `conda install -c conda-forge versioneer` * add a `[tool.versioneer]` section to your `pyproject.toml` or a `[versioneer]` section to your `setup.cfg` (see [Install](INSTALL.md)) * add `versioneer` (with `[toml]` extra, if configuring in `pyproject.toml`) to the `requires` key of the `build-system` table in `pyproject.toml`: ```toml [build-system] requires = ["setuptools", "versioneer[toml]"] build-backend = "setuptools.build_meta" ``` * run `versioneer install --no-vendor` in your source tree, commit the results * verify version information with `python setup.py version` ## Version Identifiers Source trees come from a variety of places: * a version-control system checkout (mostly used by developers) * a nightly tarball, produced by build automation * a snapshot tarball, produced by a web-based VCS browser, like github's "tarball from tag" feature * a release tarball, produced by "setup.py sdist", distributed through PyPI Within each source tree, the version identifier (either a string or a number, this tool is format-agnostic) can come from a variety of places: * ask the VCS tool itself, e.g. "git describe" (for checkouts), which knows about recent "tags" and an absolute revision-id * the name of the directory into which the tarball was unpacked * an expanded VCS keyword ($Id$, etc) * a `_version.py` created by some earlier build step For released software, the version identifier is closely related to a VCS tag. Some projects use tag names that include more than just the version string (e.g. "myproject-1.2" instead of just "1.2"), in which case the tool needs to strip the tag prefix to extract the version identifier. For unreleased software (between tags), the version identifier should provide enough information to help developers recreate the same tree, while also giving them an idea of roughly how old the tree is (after version 1.2, before version 1.3). Many VCS systems can report a description that captures this, for example `git describe --tags --dirty --always` reports things like "0.7-1-g574ab98-dirty" to indicate that the checkout is one revision past the 0.7 tag, has a unique revision id of "574ab98", and is "dirty" (it has uncommitted changes). The version identifier is used for multiple purposes: * to allow the module to self-identify its version: `myproject.__version__` * to choose a name and prefix for a 'setup.py sdist' tarball ## Theory of Operation Versioneer works by adding a special `_version.py` file into your source tree, where your `__init__.py` can import it. This `_version.py` knows how to dynamically ask the VCS tool for version information at import time. `_version.py` also contains `$Revision$` markers, and the installation process marks `_version.py` to have this marker rewritten with a tag name during the `git archive` command. As a result, generated tarballs will contain enough information to get the proper version. To allow `setup.py` to compute a version too, a `versioneer.py` is added to the top level of your source tree, next to `setup.py` and the `setup.cfg` that configures it. This overrides several distutils/setuptools commands to compute the version when invoked, and changes `setup.py build` and `setup.py sdist` to replace `_version.py` with a small static file that contains just the generated version data. ## Installation See [INSTALL.md](./INSTALL.md) for detailed installation instructions. ## Version-String Flavors Code which uses Versioneer can learn about its version string at runtime by importing `_version` from your main `__init__.py` file and running the `get_versions()` function. From the "outside" (e.g. in `setup.py`), you can import the top-level `versioneer.py` and run `get_versions()`. Both functions return a dictionary with different flavors of version information: * `['version']`: A condensed version string, rendered using the selected style. This is the most commonly used value for the project's version string. The default "pep440" style yields strings like `0.11`, `0.11+2.g1076c97`, or `0.11+2.g1076c97.dirty`. See the "Styles" section below for alternative styles. * `['full-revisionid']`: detailed revision identifier. For Git, this is the full SHA1 commit id, e.g. "1076c978a8d3cfc70f408fe5974aa6c092c949ac". * `['date']`: Date and time of the latest `HEAD` commit. For Git, it is the commit date in ISO 8601 format. This will be None if the date is not available. * `['dirty']`: a boolean, True if the tree has uncommitted changes. Note that this is only accurate if run in a VCS checkout, otherwise it is likely to be False or None * `['error']`: if the version string could not be computed, this will be set to a string describing the problem, otherwise it will be None. It may be useful to throw an exception in setup.py if this is set, to avoid e.g. creating tarballs with a version string of "unknown". Some variants are more useful than others. Including `full-revisionid` in a bug report should allow developers to reconstruct the exact code being tested (or indicate the presence of local changes that should be shared with the developers). `version` is suitable for display in an "about" box or a CLI `--version` output: it can be easily compared against release notes and lists of bugs fixed in various releases. The installer adds the following text to your `__init__.py` to place a basic version in `YOURPROJECT.__version__`: from ._version import get_versions __version__ = get_versions()['version'] del get_versions ## Styles The setup.cfg `style=` configuration controls how the VCS information is rendered into a version string. The default style, "pep440", produces a PEP440-compliant string, equal to the un-prefixed tag name for actual releases, and containing an additional "local version" section with more detail for in-between builds. For Git, this is TAG[+DISTANCE.gHEX[.dirty]] , using information from `git describe --tags --dirty --always`. For example "0.11+2.g1076c97.dirty" indicates that the tree is like the "1076c97" commit but has uncommitted changes (".dirty"), and that this commit is two revisions ("+2") beyond the "0.11" tag. For released software (exactly equal to a known tag), the identifier will only contain the stripped tag, e.g. "0.11". Other styles are available. See [details.md](details.md) in the Versioneer source tree for descriptions. ## Debugging Versioneer tries to avoid fatal errors: if something goes wrong, it will tend to return a version of "0+unknown". To investigate the problem, run `setup.py version`, which will run the version-lookup code in a verbose mode, and will display the full contents of `get_versions()` (including the `error` string, which may help identify what went wrong). ## Known Limitations Some situations are known to cause problems for Versioneer. This details the most significant ones. More can be found on Github [issues page](https://github.com/python-versioneer/python-versioneer/issues). ### Subprojects Versioneer has limited support for source trees in which `setup.py` is not in the root directory (e.g. `setup.py` and `.git/` are *not* siblings). The are two common reasons why `setup.py` might not be in the root: * Source trees which contain multiple subprojects, such as [Buildbot](https://github.com/buildbot/buildbot), which contains both "master" and "slave" subprojects, each with their own `setup.py`, `setup.cfg`, and `tox.ini`. Projects like these produce multiple PyPI distributions (and upload multiple independently-installable tarballs). * Source trees whose main purpose is to contain a C library, but which also provide bindings to Python (and perhaps other languages) in subdirectories. Versioneer will look for `.git` in parent directories, and most operations should get the right version string. However `pip` and `setuptools` have bugs and implementation details which frequently cause `pip install .` from a subproject directory to fail to find a correct version string (so it usually defaults to `0+unknown`). `pip install --editable .` should work correctly. `setup.py install` might work too. Pip-8.1.1 is known to have this problem, but hopefully it will get fixed in some later version. [Bug #38](https://github.com/python-versioneer/python-versioneer/issues/38) is tracking this issue. The discussion in [PR #61](https://github.com/python-versioneer/python-versioneer/pull/61) describes the issue from the Versioneer side in more detail. [pip PR#3176](https://github.com/pypa/pip/pull/3176) and [pip PR#3615](https://github.com/pypa/pip/pull/3615) contain work to improve pip to let Versioneer work correctly. Versioneer-0.16 and earlier only looked for a `.git` directory next to the `setup.cfg`, so subprojects were completely unsupported with those releases. ### Editable installs with setuptools <= 18.5 `setup.py develop` and `pip install --editable .` allow you to install a project into a virtualenv once, then continue editing the source code (and test) without re-installing after every change. "Entry-point scripts" (`setup(entry_points={"console_scripts": ..})`) are a convenient way to specify executable scripts that should be installed along with the python package. These both work as expected when using modern setuptools. When using setuptools-18.5 or earlier, however, certain operations will cause `pkg_resources.DistributionNotFound` errors when running the entrypoint script, which must be resolved by re-installing the package. This happens when the install happens with one version, then the egg_info data is regenerated while a different version is checked out. Many setup.py commands cause egg_info to be rebuilt (including `sdist`, `wheel`, and installing into a different virtualenv), so this can be surprising. [Bug #83](https://github.com/python-versioneer/python-versioneer/issues/83) describes this one, but upgrading to a newer version of setuptools should probably resolve it. ## Updating Versioneer To upgrade your project to a new release of Versioneer, do the following: * install the new Versioneer (`pip install -U versioneer` or equivalent) * edit `setup.cfg` and `pyproject.toml`, if necessary, to include any new configuration settings indicated by the release notes. See [UPGRADING](./UPGRADING.md) for details. * re-run `versioneer install --[no-]vendor` in your source tree, to replace `SRC/_version.py` * commit any changed files ## Future Directions This tool is designed to make it easily extended to other version-control systems: all VCS-specific components are in separate directories like src/git/ . The top-level `versioneer.py` script is assembled from these components by running make-versioneer.py . In the future, make-versioneer.py will take a VCS name as an argument, and will construct a version of `versioneer.py` that is specific to the given VCS. It might also take the configuration arguments that are currently provided manually during installation by editing setup.py . Alternatively, it might go the other direction and include code from all supported VCS systems, reducing the number of intermediate scripts. ## Similar projects * [setuptools_scm](https://github.com/pypa/setuptools_scm/) - a non-vendored build-time dependency * [minver](https://github.com/jbweston/miniver) - a lightweight reimplementation of versioneer * [versioningit](https://github.com/jwodder/versioningit) - a PEP 518-based setuptools plugin ## License To make Versioneer easier to embed, all its code is dedicated to the public domain. The `_version.py` that it creates is also in the public domain. Specifically, both are released under the "Unlicense", as described in https://unlicense.org/. [pypi-image]: https://img.shields.io/pypi/v/versioneer.svg [pypi-url]: https://pypi.python.org/pypi/versioneer/ [travis-image]: https://img.shields.io/travis/com/python-versioneer/python-versioneer.svg [travis-url]: https://travis-ci.com/github/python-versioneer/python-versioneer """ # pylint:disable=invalid-name,import-outside-toplevel,missing-function-docstring # pylint:disable=missing-class-docstring,too-many-branches,too-many-statements # pylint:disable=raise-missing-from,too-many-lines,too-many-locals,import-error # pylint:disable=too-few-public-methods,redefined-outer-name,consider-using-with # pylint:disable=attribute-defined-outside-init,too-many-arguments import configparser import errno import json import os import re import subprocess import sys from pathlib import Path from typing import Any, Callable, cast, Dict, List, Optional, Tuple, Union from typing import NoReturn import functools have_tomllib = True if sys.version_info >= (3, 11): import tomllib else: try: import tomli as tomllib except ImportError: have_tomllib = False class VersioneerConfig: """Container for Versioneer configuration parameters.""" VCS: str style: str tag_prefix: str versionfile_source: str versionfile_build: Optional[str] parentdir_prefix: Optional[str] verbose: Optional[bool] def get_root() -> str: """Get the project root directory. We require that all commands are run from the project root, i.e. the directory that contains setup.py, setup.cfg, and versioneer.py . """ root = os.path.realpath(os.path.abspath(os.getcwd())) setup_py = os.path.join(root, "setup.py") pyproject_toml = os.path.join(root, "pyproject.toml") versioneer_py = os.path.join(root, "versioneer.py") if not ( os.path.exists(setup_py) or os.path.exists(pyproject_toml) or os.path.exists(versioneer_py) ): # allow 'python path/to/setup.py COMMAND' root = os.path.dirname(os.path.realpath(os.path.abspath(sys.argv[0]))) setup_py = os.path.join(root, "setup.py") pyproject_toml = os.path.join(root, "pyproject.toml") versioneer_py = os.path.join(root, "versioneer.py") if not ( os.path.exists(setup_py) or os.path.exists(pyproject_toml) or os.path.exists(versioneer_py) ): err = ( "Versioneer was unable to run the project root directory. " "Versioneer requires setup.py to be executed from " "its immediate directory (like 'python setup.py COMMAND'), " "or in a way that lets it use sys.argv[0] to find the root " "(like 'python path/to/setup.py COMMAND')." ) raise VersioneerBadRootError(err) try: # Certain runtime workflows (setup.py install/develop in a setuptools # tree) execute all dependencies in a single python process, so # "versioneer" may be imported multiple times, and python's shared # module-import table will cache the first one. So we can't use # os.path.dirname(__file__), as that will find whichever # versioneer.py was first imported, even in later projects. my_path = os.path.realpath(os.path.abspath(__file__)) me_dir = os.path.normcase(os.path.splitext(my_path)[0]) vsr_dir = os.path.normcase(os.path.splitext(versioneer_py)[0]) if me_dir != vsr_dir and "VERSIONEER_PEP518" not in globals(): print( "Warning: build in %s is using versioneer.py from %s" % (os.path.dirname(my_path), versioneer_py) ) except NameError: pass return root def get_config_from_root(root: str) -> VersioneerConfig: """Read the project setup.cfg file to determine Versioneer config.""" # This might raise OSError (if setup.cfg is missing), or # configparser.NoSectionError (if it lacks a [versioneer] section), or # configparser.NoOptionError (if it lacks "VCS="). See the docstring at # the top of versioneer.py for instructions on writing your setup.cfg . root_pth = Path(root) pyproject_toml = root_pth / "pyproject.toml" setup_cfg = root_pth / "setup.cfg" section: Union[Dict[str, Any], configparser.SectionProxy, None] = None if pyproject_toml.exists() and have_tomllib: try: with open(pyproject_toml, "rb") as fobj: pp = tomllib.load(fobj) section = pp["tool"]["versioneer"] except (tomllib.TOMLDecodeError, KeyError) as e: print(f"Failed to load config from {pyproject_toml}: {e}") print("Try to load it from setup.cfg") if not section: parser = configparser.ConfigParser() with open(setup_cfg) as cfg_file: parser.read_file(cfg_file) parser.get("versioneer", "VCS") # raise error if missing section = parser["versioneer"] # `cast`` really shouldn't be used, but its simplest for the # common VersioneerConfig users at the moment. We verify against # `None` values elsewhere where it matters cfg = VersioneerConfig() cfg.VCS = section["VCS"] cfg.style = section.get("style", "") cfg.versionfile_source = cast(str, section.get("versionfile_source")) cfg.versionfile_build = section.get("versionfile_build") cfg.tag_prefix = cast(str, section.get("tag_prefix")) if cfg.tag_prefix in ("''", '""', None): cfg.tag_prefix = "" cfg.parentdir_prefix = section.get("parentdir_prefix") if isinstance(section, configparser.SectionProxy): # Make sure configparser translates to bool cfg.verbose = section.getboolean("verbose") else: cfg.verbose = section.get("verbose") return cfg class NotThisMethod(Exception): """Exception raised if a method is not valid for the current scenario.""" # these dictionaries contain VCS-specific tools LONG_VERSION_PY: Dict[str, str] = {} HANDLERS: Dict[str, Dict[str, Callable]] = {} def register_vcs_handler(vcs: str, method: str) -> Callable: # decorator """Create decorator to mark a method as the handler of a VCS.""" def decorate(f: Callable) -> Callable: """Store f in HANDLERS[vcs][method].""" HANDLERS.setdefault(vcs, {})[method] = f return f return decorate def run_command( commands: List[str], args: List[str], cwd: Optional[str] = None, verbose: bool = False, hide_stderr: bool = False, env: Optional[Dict[str, str]] = None, ) -> Tuple[Optional[str], Optional[int]]: """Call the given command(s).""" assert isinstance(commands, list) process = None popen_kwargs: Dict[str, Any] = {} if sys.platform == "win32": # This hides the console window if pythonw.exe is used startupinfo = subprocess.STARTUPINFO() startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW popen_kwargs["startupinfo"] = startupinfo for command in commands: try: dispcmd = str([command] + args) # remember shell=False, so use git.cmd on windows, not just git process = subprocess.Popen( [command] + args, cwd=cwd, env=env, stdout=subprocess.PIPE, stderr=(subprocess.PIPE if hide_stderr else None), **popen_kwargs, ) break except OSError as e: if e.errno == errno.ENOENT: continue if verbose: print("unable to run %s" % dispcmd) print(e) return None, None else: if verbose: print("unable to find command, tried %s" % (commands,)) return None, None stdout = process.communicate()[0].strip().decode() if process.returncode != 0: if verbose: print("unable to run %s (error)" % dispcmd) print("stdout was %s" % stdout) return None, process.returncode return stdout, process.returncode LONG_VERSION_PY[ "git" ] = r''' # This file helps to compute a version number in source trees obtained from # git-archive tarball (such as those provided by githubs download-from-tag # feature). Distribution tarballs (built by setup.py sdist) and build # directories (produced by setup.py build) will contain a much shorter file # that just contains the computed version number. # This file is released into the public domain. # Generated by versioneer-0.29 # https://github.com/python-versioneer/python-versioneer """Git implementation of _version.py.""" import errno import os import re import subprocess import sys from typing import Any, Callable, Dict, List, Optional, Tuple import functools def get_keywords() -> Dict[str, str]: """Get the keywords needed to look up the version information.""" # these strings will be replaced by git during git-archive. # setup.py/versioneer.py will grep for the variable names, so they must # each be defined on a line of their own. _version.py will just call # get_keywords(). git_refnames = "%(DOLLAR)sFormat:%%d%(DOLLAR)s" git_full = "%(DOLLAR)sFormat:%%H%(DOLLAR)s" git_date = "%(DOLLAR)sFormat:%%ci%(DOLLAR)s" keywords = {"refnames": git_refnames, "full": git_full, "date": git_date} return keywords class VersioneerConfig: """Container for Versioneer configuration parameters.""" VCS: str style: str tag_prefix: str parentdir_prefix: str versionfile_source: str verbose: bool def get_config() -> VersioneerConfig: """Create, populate and return the VersioneerConfig() object.""" # these strings are filled in when 'setup.py versioneer' creates # _version.py cfg = VersioneerConfig() cfg.VCS = "git" cfg.style = "%(STYLE)s" cfg.tag_prefix = "%(TAG_PREFIX)s" cfg.parentdir_prefix = "%(PARENTDIR_PREFIX)s" cfg.versionfile_source = "%(VERSIONFILE_SOURCE)s" cfg.verbose = False return cfg class NotThisMethod(Exception): """Exception raised if a method is not valid for the current scenario.""" LONG_VERSION_PY: Dict[str, str] = {} HANDLERS: Dict[str, Dict[str, Callable]] = {} def register_vcs_handler(vcs: str, method: str) -> Callable: # decorator """Create decorator to mark a method as the handler of a VCS.""" def decorate(f: Callable) -> Callable: """Store f in HANDLERS[vcs][method].""" if vcs not in HANDLERS: HANDLERS[vcs] = {} HANDLERS[vcs][method] = f return f return decorate def run_command( commands: List[str], args: List[str], cwd: Optional[str] = None, verbose: bool = False, hide_stderr: bool = False, env: Optional[Dict[str, str]] = None, ) -> Tuple[Optional[str], Optional[int]]: """Call the given command(s).""" assert isinstance(commands, list) process = None popen_kwargs: Dict[str, Any] = {} if sys.platform == "win32": # This hides the console window if pythonw.exe is used startupinfo = subprocess.STARTUPINFO() startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW popen_kwargs["startupinfo"] = startupinfo for command in commands: try: dispcmd = str([command] + args) # remember shell=False, so use git.cmd on windows, not just git process = subprocess.Popen([command] + args, cwd=cwd, env=env, stdout=subprocess.PIPE, stderr=(subprocess.PIPE if hide_stderr else None), **popen_kwargs) break except OSError as e: if e.errno == errno.ENOENT: continue if verbose: print("unable to run %%s" %% dispcmd) print(e) return None, None else: if verbose: print("unable to find command, tried %%s" %% (commands,)) return None, None stdout = process.communicate()[0].strip().decode() if process.returncode != 0: if verbose: print("unable to run %%s (error)" %% dispcmd) print("stdout was %%s" %% stdout) return None, process.returncode return stdout, process.returncode def versions_from_parentdir( parentdir_prefix: str, root: str, verbose: bool, ) -> Dict[str, Any]: """Try to determine the version from the parent directory name. Source tarballs conventionally unpack into a directory that includes both the project name and a version string. We will also support searching up two directory levels for an appropriately named parent directory """ rootdirs = [] for _ in range(3): dirname = os.path.basename(root) if dirname.startswith(parentdir_prefix): return {"version": dirname[len(parentdir_prefix):], "full-revisionid": None, "dirty": False, "error": None, "date": None} rootdirs.append(root) root = os.path.dirname(root) # up a level if verbose: print("Tried directories %%s but none started with prefix %%s" %% (str(rootdirs), parentdir_prefix)) raise NotThisMethod("rootdir doesn't start with parentdir_prefix") @register_vcs_handler("git", "get_keywords") def git_get_keywords(versionfile_abs: str) -> Dict[str, str]: """Extract version information from the given file.""" # the code embedded in _version.py can just fetch the value of these # keywords. When used from setup.py, we don't want to import _version.py, # so we do it with a regexp instead. This function is not used from # _version.py. keywords: Dict[str, str] = {} try: with open(versionfile_abs, "r") as fobj: for line in fobj: if line.strip().startswith("git_refnames ="): mo = re.search(r'=\s*"(.*)"', line) if mo: keywords["refnames"] = mo.group(1) if line.strip().startswith("git_full ="): mo = re.search(r'=\s*"(.*)"', line) if mo: keywords["full"] = mo.group(1) if line.strip().startswith("git_date ="): mo = re.search(r'=\s*"(.*)"', line) if mo: keywords["date"] = mo.group(1) except OSError: pass return keywords @register_vcs_handler("git", "keywords") def git_versions_from_keywords( keywords: Dict[str, str], tag_prefix: str, verbose: bool, ) -> Dict[str, Any]: """Get version information from git keywords.""" if "refnames" not in keywords: raise NotThisMethod("Short version file found") date = keywords.get("date") if date is not None: # Use only the last line. Previous lines may contain GPG signature # information. date = date.splitlines()[-1] # git-2.2.0 added "%%cI", which expands to an ISO-8601 -compliant # datestamp. However we prefer "%%ci" (which expands to an "ISO-8601 # -like" string, which we must then edit to make compliant), because # it's been around since git-1.5.3, and it's too difficult to # discover which version we're using, or to work around using an # older one. date = date.strip().replace(" ", "T", 1).replace(" ", "", 1) refnames = keywords["refnames"].strip() if refnames.startswith("$Format"): if verbose: print("keywords are unexpanded, not using") raise NotThisMethod("unexpanded keywords, not a git-archive tarball") refs = {r.strip() for r in refnames.strip("()").split(",")} # starting in git-1.8.3, tags are listed as "tag: foo-1.0" instead of # just "foo-1.0". If we see a "tag: " prefix, prefer those. TAG = "tag: " tags = {r[len(TAG):] for r in refs if r.startswith(TAG)} if not tags: # Either we're using git < 1.8.3, or there really are no tags. We use # a heuristic: assume all version tags have a digit. The old git %%d # expansion behaves like git log --decorate=short and strips out the # refs/heads/ and refs/tags/ prefixes that would let us distinguish # between branches and tags. By ignoring refnames without digits, we # filter out many common branch names like "release" and # "stabilization", as well as "HEAD" and "master". tags = {r for r in refs if re.search(r'\d', r)} if verbose: print("discarding '%%s', no digits" %% ",".join(refs - tags)) if verbose: print("likely tags: %%s" %% ",".join(sorted(tags))) for ref in sorted(tags): # sorting will prefer e.g. "2.0" over "2.0rc1" if ref.startswith(tag_prefix): r = ref[len(tag_prefix):] # Filter out refs that exactly match prefix or that don't start # with a number once the prefix is stripped (mostly a concern # when prefix is '') if not re.match(r'\d', r): continue if verbose: print("picking %%s" %% r) return {"version": r, "full-revisionid": keywords["full"].strip(), "dirty": False, "error": None, "date": date} # no suitable tags, so version is "0+unknown", but full hex is still there if verbose: print("no suitable tags, using unknown + full revision id") return {"version": "0+unknown", "full-revisionid": keywords["full"].strip(), "dirty": False, "error": "no suitable tags", "date": None} @register_vcs_handler("git", "pieces_from_vcs") def git_pieces_from_vcs( tag_prefix: str, root: str, verbose: bool, runner: Callable = run_command ) -> Dict[str, Any]: """Get version from 'git describe' in the root of the source tree. This only gets called if the git-archive 'subst' keywords were *not* expanded, and _version.py hasn't already been rewritten with a short version string, meaning we're inside a checked out source tree. """ GITS = ["git"] if sys.platform == "win32": GITS = ["git.cmd", "git.exe"] # GIT_DIR can interfere with correct operation of Versioneer. # It may be intended to be passed to the Versioneer-versioned project, # but that should not change where we get our version from. env = os.environ.copy() env.pop("GIT_DIR", None) runner = functools.partial(runner, env=env) _, rc = runner(GITS, ["rev-parse", "--git-dir"], cwd=root, hide_stderr=not verbose) if rc != 0: if verbose: print("Directory %%s not under git control" %% root) raise NotThisMethod("'git rev-parse --git-dir' returned error") # if there is a tag matching tag_prefix, this yields TAG-NUM-gHEX[-dirty] # if there isn't one, this yields HEX[-dirty] (no NUM) describe_out, rc = runner(GITS, [ "describe", "--tags", "--dirty", "--always", "--long", "--match", f"{tag_prefix}[[:digit:]]*" ], cwd=root) # --long was added in git-1.5.5 if describe_out is None: raise NotThisMethod("'git describe' failed") describe_out = describe_out.strip() full_out, rc = runner(GITS, ["rev-parse", "HEAD"], cwd=root) if full_out is None: raise NotThisMethod("'git rev-parse' failed") full_out = full_out.strip() pieces: Dict[str, Any] = {} pieces["long"] = full_out pieces["short"] = full_out[:7] # maybe improved later pieces["error"] = None branch_name, rc = runner(GITS, ["rev-parse", "--abbrev-ref", "HEAD"], cwd=root) # --abbrev-ref was added in git-1.6.3 if rc != 0 or branch_name is None: raise NotThisMethod("'git rev-parse --abbrev-ref' returned error") branch_name = branch_name.strip() if branch_name == "HEAD": # If we aren't exactly on a branch, pick a branch which represents # the current commit. If all else fails, we are on a branchless # commit. branches, rc = runner(GITS, ["branch", "--contains"], cwd=root) # --contains was added in git-1.5.4 if rc != 0 or branches is None: raise NotThisMethod("'git branch --contains' returned error") branches = branches.split("\n") # Remove the first line if we're running detached if "(" in branches[0]: branches.pop(0) # Strip off the leading "* " from the list of branches. branches = [branch[2:] for branch in branches] if "master" in branches: branch_name = "master" elif not branches: branch_name = None else: # Pick the first branch that is returned. Good or bad. branch_name = branches[0] pieces["branch"] = branch_name # parse describe_out. It will be like TAG-NUM-gHEX[-dirty] or HEX[-dirty] # TAG might have hyphens. git_describe = describe_out # look for -dirty suffix dirty = git_describe.endswith("-dirty") pieces["dirty"] = dirty if dirty: git_describe = git_describe[:git_describe.rindex("-dirty")] # now we have TAG-NUM-gHEX or HEX if "-" in git_describe: # TAG-NUM-gHEX mo = re.search(r'^(.+)-(\d+)-g([0-9a-f]+)$', git_describe) if not mo: # unparsable. Maybe git-describe is misbehaving? pieces["error"] = ("unable to parse git-describe output: '%%s'" %% describe_out) return pieces # tag full_tag = mo.group(1) if not full_tag.startswith(tag_prefix): if verbose: fmt = "tag '%%s' doesn't start with prefix '%%s'" print(fmt %% (full_tag, tag_prefix)) pieces["error"] = ("tag '%%s' doesn't start with prefix '%%s'" %% (full_tag, tag_prefix)) return pieces pieces["closest-tag"] = full_tag[len(tag_prefix):] # distance: number of commits since tag pieces["distance"] = int(mo.group(2)) # commit: short hex revision ID pieces["short"] = mo.group(3) else: # HEX: no tags pieces["closest-tag"] = None out, rc = runner(GITS, ["rev-list", "HEAD", "--left-right"], cwd=root) pieces["distance"] = len(out.split()) # total number of commits # commit date: see ISO-8601 comment in git_versions_from_keywords() date = runner(GITS, ["show", "-s", "--format=%%ci", "HEAD"], cwd=root)[0].strip() # Use only the last line. Previous lines may contain GPG signature # information. date = date.splitlines()[-1] pieces["date"] = date.strip().replace(" ", "T", 1).replace(" ", "", 1) return pieces def plus_or_dot(pieces: Dict[str, Any]) -> str: """Return a + if we don't already have one, else return a .""" if "+" in pieces.get("closest-tag", ""): return "." return "+" def render_pep440(pieces: Dict[str, Any]) -> str: """Build up version string, with post-release "local version identifier". Our goal: TAG[+DISTANCE.gHEX[.dirty]] . Note that if you get a tagged build and then dirty it, you'll get TAG+0.gHEX.dirty Exceptions: 1: no tags. git_describe was just HEX. 0+untagged.DISTANCE.gHEX[.dirty] """ if pieces["closest-tag"]: rendered = pieces["closest-tag"] if pieces["distance"] or pieces["dirty"]: rendered += plus_or_dot(pieces) rendered += "%%d.g%%s" %% (pieces["distance"], pieces["short"]) if pieces["dirty"]: rendered += ".dirty" else: # exception #1 rendered = "0+untagged.%%d.g%%s" %% (pieces["distance"], pieces["short"]) if pieces["dirty"]: rendered += ".dirty" return rendered def render_pep440_branch(pieces: Dict[str, Any]) -> str: """TAG[[.dev0]+DISTANCE.gHEX[.dirty]] . The ".dev0" means not master branch. Note that .dev0 sorts backwards (a feature branch will appear "older" than the master branch). Exceptions: 1: no tags. 0[.dev0]+untagged.DISTANCE.gHEX[.dirty] """ if pieces["closest-tag"]: rendered = pieces["closest-tag"] if pieces["distance"] or pieces["dirty"]: if pieces["branch"] != "master": rendered += ".dev0" rendered += plus_or_dot(pieces) rendered += "%%d.g%%s" %% (pieces["distance"], pieces["short"]) if pieces["dirty"]: rendered += ".dirty" else: # exception #1 rendered = "0" if pieces["branch"] != "master": rendered += ".dev0" rendered += "+untagged.%%d.g%%s" %% (pieces["distance"], pieces["short"]) if pieces["dirty"]: rendered += ".dirty" return rendered def pep440_split_post(ver: str) -> Tuple[str, Optional[int]]: """Split pep440 version string at the post-release segment. Returns the release segments before the post-release and the post-release version number (or -1 if no post-release segment is present). """ vc = str.split(ver, ".post") return vc[0], int(vc[1] or 0) if len(vc) == 2 else None def render_pep440_pre(pieces: Dict[str, Any]) -> str: """TAG[.postN.devDISTANCE] -- No -dirty. Exceptions: 1: no tags. 0.post0.devDISTANCE """ if pieces["closest-tag"]: if pieces["distance"]: # update the post release segment tag_version, post_version = pep440_split_post(pieces["closest-tag"]) rendered = tag_version if post_version is not None: rendered += ".post%%d.dev%%d" %% (post_version + 1, pieces["distance"]) else: rendered += ".post0.dev%%d" %% (pieces["distance"]) else: # no commits, use the tag as the version rendered = pieces["closest-tag"] else: # exception #1 rendered = "0.post0.dev%%d" %% pieces["distance"] return rendered def render_pep440_post(pieces: Dict[str, Any]) -> str: """TAG[.postDISTANCE[.dev0]+gHEX] . The ".dev0" means dirty. Note that .dev0 sorts backwards (a dirty tree will appear "older" than the corresponding clean one), but you shouldn't be releasing software with -dirty anyways. Exceptions: 1: no tags. 0.postDISTANCE[.dev0] """ if pieces["closest-tag"]: rendered = pieces["closest-tag"] if pieces["distance"] or pieces["dirty"]: rendered += ".post%%d" %% pieces["distance"] if pieces["dirty"]: rendered += ".dev0" rendered += plus_or_dot(pieces) rendered += "g%%s" %% pieces["short"] else: # exception #1 rendered = "0.post%%d" %% pieces["distance"] if pieces["dirty"]: rendered += ".dev0" rendered += "+g%%s" %% pieces["short"] return rendered def render_pep440_post_branch(pieces: Dict[str, Any]) -> str: """TAG[.postDISTANCE[.dev0]+gHEX[.dirty]] . The ".dev0" means not master branch. Exceptions: 1: no tags. 0.postDISTANCE[.dev0]+gHEX[.dirty] """ if pieces["closest-tag"]: rendered = pieces["closest-tag"] if pieces["distance"] or pieces["dirty"]: rendered += ".post%%d" %% pieces["distance"] if pieces["branch"] != "master": rendered += ".dev0" rendered += plus_or_dot(pieces) rendered += "g%%s" %% pieces["short"] if pieces["dirty"]: rendered += ".dirty" else: # exception #1 rendered = "0.post%%d" %% pieces["distance"] if pieces["branch"] != "master": rendered += ".dev0" rendered += "+g%%s" %% pieces["short"] if pieces["dirty"]: rendered += ".dirty" return rendered def render_pep440_old(pieces: Dict[str, Any]) -> str: """TAG[.postDISTANCE[.dev0]] . The ".dev0" means dirty. Exceptions: 1: no tags. 0.postDISTANCE[.dev0] """ if pieces["closest-tag"]: rendered = pieces["closest-tag"] if pieces["distance"] or pieces["dirty"]: rendered += ".post%%d" %% pieces["distance"] if pieces["dirty"]: rendered += ".dev0" else: # exception #1 rendered = "0.post%%d" %% pieces["distance"] if pieces["dirty"]: rendered += ".dev0" return rendered def render_git_describe(pieces: Dict[str, Any]) -> str: """TAG[-DISTANCE-gHEX][-dirty]. Like 'git describe --tags --dirty --always'. Exceptions: 1: no tags. HEX[-dirty] (note: no 'g' prefix) """ if pieces["closest-tag"]: rendered = pieces["closest-tag"] if pieces["distance"]: rendered += "-%%d-g%%s" %% (pieces["distance"], pieces["short"]) else: # exception #1 rendered = pieces["short"] if pieces["dirty"]: rendered += "-dirty" return rendered def render_git_describe_long(pieces: Dict[str, Any]) -> str: """TAG-DISTANCE-gHEX[-dirty]. Like 'git describe --tags --dirty --always -long'. The distance/hash is unconditional. Exceptions: 1: no tags. HEX[-dirty] (note: no 'g' prefix) """ if pieces["closest-tag"]: rendered = pieces["closest-tag"] rendered += "-%%d-g%%s" %% (pieces["distance"], pieces["short"]) else: # exception #1 rendered = pieces["short"] if pieces["dirty"]: rendered += "-dirty" return rendered def render(pieces: Dict[str, Any], style: str) -> Dict[str, Any]: """Render the given version pieces into the requested style.""" if pieces["error"]: return {"version": "unknown", "full-revisionid": pieces.get("long"), "dirty": None, "error": pieces["error"], "date": None} if not style or style == "default": style = "pep440" # the default if style == "pep440": rendered = render_pep440(pieces) elif style == "pep440-branch": rendered = render_pep440_branch(pieces) elif style == "pep440-pre": rendered = render_pep440_pre(pieces) elif style == "pep440-post": rendered = render_pep440_post(pieces) elif style == "pep440-post-branch": rendered = render_pep440_post_branch(pieces) elif style == "pep440-old": rendered = render_pep440_old(pieces) elif style == "git-describe": rendered = render_git_describe(pieces) elif style == "git-describe-long": rendered = render_git_describe_long(pieces) else: raise ValueError("unknown style '%%s'" %% style) return {"version": rendered, "full-revisionid": pieces["long"], "dirty": pieces["dirty"], "error": None, "date": pieces.get("date")} def get_versions() -> Dict[str, Any]: """Get version information or return default if unable to do so.""" # I am in _version.py, which lives at ROOT/VERSIONFILE_SOURCE. If we have # __file__, we can work backwards from there to the root. Some # py2exe/bbfreeze/non-CPython implementations don't do __file__, in which # case we can only use expanded keywords. cfg = get_config() verbose = cfg.verbose try: return git_versions_from_keywords(get_keywords(), cfg.tag_prefix, verbose) except NotThisMethod: pass try: root = os.path.realpath(__file__) # versionfile_source is the relative path from the top of the source # tree (where the .git directory might live) to this file. Invert # this to find the root from __file__. for _ in cfg.versionfile_source.split('/'): root = os.path.dirname(root) except NameError: return {"version": "0+unknown", "full-revisionid": None, "dirty": None, "error": "unable to find root of source tree", "date": None} try: pieces = git_pieces_from_vcs(cfg.tag_prefix, root, verbose) return render(pieces, cfg.style) except NotThisMethod: pass try: if cfg.parentdir_prefix: return versions_from_parentdir(cfg.parentdir_prefix, root, verbose) except NotThisMethod: pass return {"version": "0+unknown", "full-revisionid": None, "dirty": None, "error": "unable to compute version", "date": None} ''' @register_vcs_handler("git", "get_keywords") def git_get_keywords(versionfile_abs: str) -> Dict[str, str]: """Extract version information from the given file.""" # the code embedded in _version.py can just fetch the value of these # keywords. When used from setup.py, we don't want to import _version.py, # so we do it with a regexp instead. This function is not used from # _version.py. keywords: Dict[str, str] = {} try: with open(versionfile_abs, "r") as fobj: for line in fobj: if line.strip().startswith("git_refnames ="): mo = re.search(r'=\s*"(.*)"', line) if mo: keywords["refnames"] = mo.group(1) if line.strip().startswith("git_full ="): mo = re.search(r'=\s*"(.*)"', line) if mo: keywords["full"] = mo.group(1) if line.strip().startswith("git_date ="): mo = re.search(r'=\s*"(.*)"', line) if mo: keywords["date"] = mo.group(1) except OSError: pass return keywords @register_vcs_handler("git", "keywords") def git_versions_from_keywords( keywords: Dict[str, str], tag_prefix: str, verbose: bool, ) -> Dict[str, Any]: """Get version information from git keywords.""" if "refnames" not in keywords: raise NotThisMethod("Short version file found") date = keywords.get("date") if date is not None: # Use only the last line. Previous lines may contain GPG signature # information. date = date.splitlines()[-1] # git-2.2.0 added "%cI", which expands to an ISO-8601 -compliant # datestamp. However we prefer "%ci" (which expands to an "ISO-8601 # -like" string, which we must then edit to make compliant), because # it's been around since git-1.5.3, and it's too difficult to # discover which version we're using, or to work around using an # older one. date = date.strip().replace(" ", "T", 1).replace(" ", "", 1) refnames = keywords["refnames"].strip() if refnames.startswith("$Format"): if verbose: print("keywords are unexpanded, not using") raise NotThisMethod("unexpanded keywords, not a git-archive tarball") refs = {r.strip() for r in refnames.strip("()").split(",")} # starting in git-1.8.3, tags are listed as "tag: foo-1.0" instead of # just "foo-1.0". If we see a "tag: " prefix, prefer those. TAG = "tag: " tags = {r[len(TAG) :] for r in refs if r.startswith(TAG)} if not tags: # Either we're using git < 1.8.3, or there really are no tags. We use # a heuristic: assume all version tags have a digit. The old git %d # expansion behaves like git log --decorate=short and strips out the # refs/heads/ and refs/tags/ prefixes that would let us distinguish # between branches and tags. By ignoring refnames without digits, we # filter out many common branch names like "release" and # "stabilization", as well as "HEAD" and "master". tags = {r for r in refs if re.search(r"\d", r)} if verbose: print("discarding '%s', no digits" % ",".join(refs - tags)) if verbose: print("likely tags: %s" % ",".join(sorted(tags))) for ref in sorted(tags): # sorting will prefer e.g. "2.0" over "2.0rc1" if ref.startswith(tag_prefix): r = ref[len(tag_prefix) :] # Filter out refs that exactly match prefix or that don't start # with a number once the prefix is stripped (mostly a concern # when prefix is '') if not re.match(r"\d", r): continue if verbose: print("picking %s" % r) return { "version": r, "full-revisionid": keywords["full"].strip(), "dirty": False, "error": None, "date": date, } # no suitable tags, so version is "0+unknown", but full hex is still there if verbose: print("no suitable tags, using unknown + full revision id") return { "version": "0+unknown", "full-revisionid": keywords["full"].strip(), "dirty": False, "error": "no suitable tags", "date": None, } @register_vcs_handler("git", "pieces_from_vcs") def git_pieces_from_vcs( tag_prefix: str, root: str, verbose: bool, runner: Callable = run_command ) -> Dict[str, Any]: """Get version from 'git describe' in the root of the source tree. This only gets called if the git-archive 'subst' keywords were *not* expanded, and _version.py hasn't already been rewritten with a short version string, meaning we're inside a checked out source tree. """ GITS = ["git"] if sys.platform == "win32": GITS = ["git.cmd", "git.exe"] # GIT_DIR can interfere with correct operation of Versioneer. # It may be intended to be passed to the Versioneer-versioned project, # but that should not change where we get our version from. env = os.environ.copy() env.pop("GIT_DIR", None) runner = functools.partial(runner, env=env) _, rc = runner(GITS, ["rev-parse", "--git-dir"], cwd=root, hide_stderr=not verbose) if rc != 0: if verbose: print("Directory %s not under git control" % root) raise NotThisMethod("'git rev-parse --git-dir' returned error") # if there is a tag matching tag_prefix, this yields TAG-NUM-gHEX[-dirty] # if there isn't one, this yields HEX[-dirty] (no NUM) describe_out, rc = runner( GITS, [ "describe", "--tags", "--dirty", "--always", "--long", "--match", f"{tag_prefix}[[:digit:]]*", ], cwd=root, ) # --long was added in git-1.5.5 if describe_out is None: raise NotThisMethod("'git describe' failed") describe_out = describe_out.strip() full_out, rc = runner(GITS, ["rev-parse", "HEAD"], cwd=root) if full_out is None: raise NotThisMethod("'git rev-parse' failed") full_out = full_out.strip() pieces: Dict[str, Any] = {} pieces["long"] = full_out pieces["short"] = full_out[:7] # maybe improved later pieces["error"] = None branch_name, rc = runner(GITS, ["rev-parse", "--abbrev-ref", "HEAD"], cwd=root) # --abbrev-ref was added in git-1.6.3 if rc != 0 or branch_name is None: raise NotThisMethod("'git rev-parse --abbrev-ref' returned error") branch_name = branch_name.strip() if branch_name == "HEAD": # If we aren't exactly on a branch, pick a branch which represents # the current commit. If all else fails, we are on a branchless # commit. branches, rc = runner(GITS, ["branch", "--contains"], cwd=root) # --contains was added in git-1.5.4 if rc != 0 or branches is None: raise NotThisMethod("'git branch --contains' returned error") branches = branches.split("\n") # Remove the first line if we're running detached if "(" in branches[0]: branches.pop(0) # Strip off the leading "* " from the list of branches. branches = [branch[2:] for branch in branches] if "master" in branches: branch_name = "master" elif not branches: branch_name = None else: # Pick the first branch that is returned. Good or bad. branch_name = branches[0] pieces["branch"] = branch_name # parse describe_out. It will be like TAG-NUM-gHEX[-dirty] or HEX[-dirty] # TAG might have hyphens. git_describe = describe_out # look for -dirty suffix dirty = git_describe.endswith("-dirty") pieces["dirty"] = dirty if dirty: git_describe = git_describe[: git_describe.rindex("-dirty")] # now we have TAG-NUM-gHEX or HEX if "-" in git_describe: # TAG-NUM-gHEX mo = re.search(r"^(.+)-(\d+)-g([0-9a-f]+)$", git_describe) if not mo: # unparsable. Maybe git-describe is misbehaving? pieces["error"] = "unable to parse git-describe output: '%s'" % describe_out return pieces # tag full_tag = mo.group(1) if not full_tag.startswith(tag_prefix): if verbose: fmt = "tag '%s' doesn't start with prefix '%s'" print(fmt % (full_tag, tag_prefix)) pieces["error"] = "tag '%s' doesn't start with prefix '%s'" % ( full_tag, tag_prefix, ) return pieces pieces["closest-tag"] = full_tag[len(tag_prefix) :] # distance: number of commits since tag pieces["distance"] = int(mo.group(2)) # commit: short hex revision ID pieces["short"] = mo.group(3) else: # HEX: no tags pieces["closest-tag"] = None out, rc = runner(GITS, ["rev-list", "HEAD", "--left-right"], cwd=root) pieces["distance"] = len(out.split()) # total number of commits # commit date: see ISO-8601 comment in git_versions_from_keywords() date = runner(GITS, ["show", "-s", "--format=%ci", "HEAD"], cwd=root)[0].strip() # Use only the last line. Previous lines may contain GPG signature # information. date = date.splitlines()[-1] pieces["date"] = date.strip().replace(" ", "T", 1).replace(" ", "", 1) return pieces def do_vcs_install(versionfile_source: str, ipy: Optional[str]) -> None: """Git-specific installation logic for Versioneer. For Git, this means creating/changing .gitattributes to mark _version.py for export-subst keyword substitution. """ GITS = ["git"] if sys.platform == "win32": GITS = ["git.cmd", "git.exe"] files = [versionfile_source] if ipy: files.append(ipy) if "VERSIONEER_PEP518" not in globals(): try: my_path = __file__ if my_path.endswith((".pyc", ".pyo")): my_path = os.path.splitext(my_path)[0] + ".py" versioneer_file = os.path.relpath(my_path) except NameError: versioneer_file = "versioneer.py" files.append(versioneer_file) present = False try: with open(".gitattributes", "r") as fobj: for line in fobj: if line.strip().startswith(versionfile_source): if "export-subst" in line.strip().split()[1:]: present = True break except OSError: pass if not present: with open(".gitattributes", "a+") as fobj: fobj.write(f"{versionfile_source} export-subst\n") files.append(".gitattributes") run_command(GITS, ["add", "--"] + files) def versions_from_parentdir( parentdir_prefix: str, root: str, verbose: bool, ) -> Dict[str, Any]: """Try to determine the version from the parent directory name. Source tarballs conventionally unpack into a directory that includes both the project name and a version string. We will also support searching up two directory levels for an appropriately named parent directory """ rootdirs = [] for _ in range(3): dirname = os.path.basename(root) if dirname.startswith(parentdir_prefix): return { "version": dirname[len(parentdir_prefix) :], "full-revisionid": None, "dirty": False, "error": None, "date": None, } rootdirs.append(root) root = os.path.dirname(root) # up a level if verbose: print( "Tried directories %s but none started with prefix %s" % (str(rootdirs), parentdir_prefix) ) raise NotThisMethod("rootdir doesn't start with parentdir_prefix") SHORT_VERSION_PY = """ # This file was generated by 'versioneer.py' (0.29) from # revision-control system data, or from the parent directory name of an # unpacked source archive. Distribution tarballs contain a pre-generated copy # of this file. import json version_json = ''' %s ''' # END VERSION_JSON def get_versions(): return json.loads(version_json) """ def versions_from_file(filename: str) -> Dict[str, Any]: """Try to determine the version from _version.py if present.""" try: with open(filename) as f: contents = f.read() except OSError: raise NotThisMethod("unable to read _version.py") mo = re.search( r"version_json = '''\n(.*)''' # END VERSION_JSON", contents, re.M | re.S ) if not mo: mo = re.search( r"version_json = '''\r\n(.*)''' # END VERSION_JSON", contents, re.M | re.S ) if not mo: raise NotThisMethod("no version_json in _version.py") return json.loads(mo.group(1)) def write_to_version_file(filename: str, versions: Dict[str, Any]) -> None: """Write the given version number to the given _version.py file.""" contents = json.dumps(versions, sort_keys=True, indent=1, separators=(",", ": ")) with open(filename, "w") as f: f.write(SHORT_VERSION_PY % contents) print("set %s to '%s'" % (filename, versions["version"])) def plus_or_dot(pieces: Dict[str, Any]) -> str: """Return a + if we don't already have one, else return a .""" if "+" in pieces.get("closest-tag", ""): return "." return "+" def render_pep440(pieces: Dict[str, Any]) -> str: """Build up version string, with post-release "local version identifier". Our goal: TAG[+DISTANCE.gHEX[.dirty]] . Note that if you get a tagged build and then dirty it, you'll get TAG+0.gHEX.dirty Exceptions: 1: no tags. git_describe was just HEX. 0+untagged.DISTANCE.gHEX[.dirty] """ if pieces["closest-tag"]: rendered = pieces["closest-tag"] if pieces["distance"] or pieces["dirty"]: rendered += plus_or_dot(pieces) rendered += "%d.g%s" % (pieces["distance"], pieces["short"]) if pieces["dirty"]: rendered += ".dirty" else: # exception #1 rendered = "0+untagged.%d.g%s" % (pieces["distance"], pieces["short"]) if pieces["dirty"]: rendered += ".dirty" return rendered def render_pep440_branch(pieces: Dict[str, Any]) -> str: """TAG[[.dev0]+DISTANCE.gHEX[.dirty]] . The ".dev0" means not master branch. Note that .dev0 sorts backwards (a feature branch will appear "older" than the master branch). Exceptions: 1: no tags. 0[.dev0]+untagged.DISTANCE.gHEX[.dirty] """ if pieces["closest-tag"]: rendered = pieces["closest-tag"] if pieces["distance"] or pieces["dirty"]: if pieces["branch"] != "master": rendered += ".dev0" rendered += plus_or_dot(pieces) rendered += "%d.g%s" % (pieces["distance"], pieces["short"]) if pieces["dirty"]: rendered += ".dirty" else: # exception #1 rendered = "0" if pieces["branch"] != "master": rendered += ".dev0" rendered += "+untagged.%d.g%s" % (pieces["distance"], pieces["short"]) if pieces["dirty"]: rendered += ".dirty" return rendered def pep440_split_post(ver: str) -> Tuple[str, Optional[int]]: """Split pep440 version string at the post-release segment. Returns the release segments before the post-release and the post-release version number (or -1 if no post-release segment is present). """ vc = str.split(ver, ".post") return vc[0], int(vc[1] or 0) if len(vc) == 2 else None def render_pep440_pre(pieces: Dict[str, Any]) -> str: """TAG[.postN.devDISTANCE] -- No -dirty. Exceptions: 1: no tags. 0.post0.devDISTANCE """ if pieces["closest-tag"]: if pieces["distance"]: # update the post release segment tag_version, post_version = pep440_split_post(pieces["closest-tag"]) rendered = tag_version if post_version is not None: rendered += ".post%d.dev%d" % (post_version + 1, pieces["distance"]) else: rendered += ".post0.dev%d" % (pieces["distance"]) else: # no commits, use the tag as the version rendered = pieces["closest-tag"] else: # exception #1 rendered = "0.post0.dev%d" % pieces["distance"] return rendered def render_pep440_post(pieces: Dict[str, Any]) -> str: """TAG[.postDISTANCE[.dev0]+gHEX] . The ".dev0" means dirty. Note that .dev0 sorts backwards (a dirty tree will appear "older" than the corresponding clean one), but you shouldn't be releasing software with -dirty anyways. Exceptions: 1: no tags. 0.postDISTANCE[.dev0] """ if pieces["closest-tag"]: rendered = pieces["closest-tag"] if pieces["distance"] or pieces["dirty"]: rendered += ".post%d" % pieces["distance"] if pieces["dirty"]: rendered += ".dev0" rendered += plus_or_dot(pieces) rendered += "g%s" % pieces["short"] else: # exception #1 rendered = "0.post%d" % pieces["distance"] if pieces["dirty"]: rendered += ".dev0" rendered += "+g%s" % pieces["short"] return rendered def render_pep440_post_branch(pieces: Dict[str, Any]) -> str: """TAG[.postDISTANCE[.dev0]+gHEX[.dirty]] . The ".dev0" means not master branch. Exceptions: 1: no tags. 0.postDISTANCE[.dev0]+gHEX[.dirty] """ if pieces["closest-tag"]: rendered = pieces["closest-tag"] if pieces["distance"] or pieces["dirty"]: rendered += ".post%d" % pieces["distance"] if pieces["branch"] != "master": rendered += ".dev0" rendered += plus_or_dot(pieces) rendered += "g%s" % pieces["short"] if pieces["dirty"]: rendered += ".dirty" else: # exception #1 rendered = "0.post%d" % pieces["distance"] if pieces["branch"] != "master": rendered += ".dev0" rendered += "+g%s" % pieces["short"] if pieces["dirty"]: rendered += ".dirty" return rendered def render_pep440_old(pieces: Dict[str, Any]) -> str: """TAG[.postDISTANCE[.dev0]] . The ".dev0" means dirty. Exceptions: 1: no tags. 0.postDISTANCE[.dev0] """ if pieces["closest-tag"]: rendered = pieces["closest-tag"] if pieces["distance"] or pieces["dirty"]: rendered += ".post%d" % pieces["distance"] if pieces["dirty"]: rendered += ".dev0" else: # exception #1 rendered = "0.post%d" % pieces["distance"] if pieces["dirty"]: rendered += ".dev0" return rendered def render_git_describe(pieces: Dict[str, Any]) -> str: """TAG[-DISTANCE-gHEX][-dirty]. Like 'git describe --tags --dirty --always'. Exceptions: 1: no tags. HEX[-dirty] (note: no 'g' prefix) """ if pieces["closest-tag"]: rendered = pieces["closest-tag"] if pieces["distance"]: rendered += "-%d-g%s" % (pieces["distance"], pieces["short"]) else: # exception #1 rendered = pieces["short"] if pieces["dirty"]: rendered += "-dirty" return rendered def render_git_describe_long(pieces: Dict[str, Any]) -> str: """TAG-DISTANCE-gHEX[-dirty]. Like 'git describe --tags --dirty --always -long'. The distance/hash is unconditional. Exceptions: 1: no tags. HEX[-dirty] (note: no 'g' prefix) """ if pieces["closest-tag"]: rendered = pieces["closest-tag"] rendered += "-%d-g%s" % (pieces["distance"], pieces["short"]) else: # exception #1 rendered = pieces["short"] if pieces["dirty"]: rendered += "-dirty" return rendered def render(pieces: Dict[str, Any], style: str) -> Dict[str, Any]: """Render the given version pieces into the requested style.""" if pieces["error"]: return { "version": "unknown", "full-revisionid": pieces.get("long"), "dirty": None, "error": pieces["error"], "date": None, } if not style or style == "default": style = "pep440" # the default if style == "pep440": rendered = render_pep440(pieces) elif style == "pep440-branch": rendered = render_pep440_branch(pieces) elif style == "pep440-pre": rendered = render_pep440_pre(pieces) elif style == "pep440-post": rendered = render_pep440_post(pieces) elif style == "pep440-post-branch": rendered = render_pep440_post_branch(pieces) elif style == "pep440-old": rendered = render_pep440_old(pieces) elif style == "git-describe": rendered = render_git_describe(pieces) elif style == "git-describe-long": rendered = render_git_describe_long(pieces) else: raise ValueError("unknown style '%s'" % style) return { "version": rendered, "full-revisionid": pieces["long"], "dirty": pieces["dirty"], "error": None, "date": pieces.get("date"), } class VersioneerBadRootError(Exception): """The project root directory is unknown or missing key files.""" def get_versions(verbose: bool = False) -> Dict[str, Any]: """Get the project version from whatever source is available. Returns dict with two keys: 'version' and 'full'. """ if "versioneer" in sys.modules: # see the discussion in cmdclass.py:get_cmdclass() del sys.modules["versioneer"] root = get_root() cfg = get_config_from_root(root) assert cfg.VCS is not None, "please set [versioneer]VCS= in setup.cfg" handlers = HANDLERS.get(cfg.VCS) assert handlers, "unrecognized VCS '%s'" % cfg.VCS verbose = verbose or bool(cfg.verbose) # `bool()` used to avoid `None` assert ( cfg.versionfile_source is not None ), "please set versioneer.versionfile_source" assert cfg.tag_prefix is not None, "please set versioneer.tag_prefix" versionfile_abs = os.path.join(root, cfg.versionfile_source) # extract version from first of: _version.py, VCS command (e.g. 'git # describe'), parentdir. This is meant to work for developers using a # source checkout, for users of a tarball created by 'setup.py sdist', # and for users of a tarball/zipball created by 'git archive' or github's # download-from-tag feature or the equivalent in other VCSes. get_keywords_f = handlers.get("get_keywords") from_keywords_f = handlers.get("keywords") if get_keywords_f and from_keywords_f: try: keywords = get_keywords_f(versionfile_abs) ver = from_keywords_f(keywords, cfg.tag_prefix, verbose) if verbose: print("got version from expanded keyword %s" % ver) return ver except NotThisMethod: pass try: ver = versions_from_file(versionfile_abs) if verbose: print("got version from file %s %s" % (versionfile_abs, ver)) return ver except NotThisMethod: pass from_vcs_f = handlers.get("pieces_from_vcs") if from_vcs_f: try: pieces = from_vcs_f(cfg.tag_prefix, root, verbose) ver = render(pieces, cfg.style) if verbose: print("got version from VCS %s" % ver) return ver except NotThisMethod: pass try: if cfg.parentdir_prefix: ver = versions_from_parentdir(cfg.parentdir_prefix, root, verbose) if verbose: print("got version from parentdir %s" % ver) return ver except NotThisMethod: pass if verbose: print("unable to compute version") return { "version": "0+unknown", "full-revisionid": None, "dirty": None, "error": "unable to compute version", "date": None, } def get_version() -> str: """Get the short version string for this project.""" return get_versions()["version"] def get_cmdclass(cmdclass: Optional[Dict[str, Any]] = None): """Get the custom setuptools subclasses used by Versioneer. If the package uses a different cmdclass (e.g. one from numpy), it should be provide as an argument. """ if "versioneer" in sys.modules: del sys.modules["versioneer"] # this fixes the "python setup.py develop" case (also 'install' and # 'easy_install .'), in which subdependencies of the main project are # built (using setup.py bdist_egg) in the same python process. Assume # a main project A and a dependency B, which use different versions # of Versioneer. A's setup.py imports A's Versioneer, leaving it in # sys.modules by the time B's setup.py is executed, causing B to run # with the wrong versioneer. Setuptools wraps the sub-dep builds in a # sandbox that restores sys.modules to it's pre-build state, so the # parent is protected against the child's "import versioneer". By # removing ourselves from sys.modules here, before the child build # happens, we protect the child from the parent's versioneer too. # Also see https://github.com/python-versioneer/python-versioneer/issues/52 cmds = {} if cmdclass is None else cmdclass.copy() # we add "version" to setuptools from setuptools import Command class cmd_version(Command): description = "report generated version string" user_options: List[Tuple[str, str, str]] = [] boolean_options: List[str] = [] def initialize_options(self) -> None: pass def finalize_options(self) -> None: pass def run(self) -> None: vers = get_versions(verbose=True) print("Version: %s" % vers["version"]) print(" full-revisionid: %s" % vers.get("full-revisionid")) print(" dirty: %s" % vers.get("dirty")) print(" date: %s" % vers.get("date")) if vers["error"]: print(" error: %s" % vers["error"]) cmds["version"] = cmd_version # we override "build_py" in setuptools # # most invocation pathways end up running build_py: # distutils/build -> build_py # distutils/install -> distutils/build ->.. # setuptools/bdist_wheel -> distutils/install ->.. # setuptools/bdist_egg -> distutils/install_lib -> build_py # setuptools/install -> bdist_egg ->.. # setuptools/develop -> ? # pip install: # copies source tree to a tempdir before running egg_info/etc # if .git isn't copied too, 'git describe' will fail # then does setup.py bdist_wheel, or sometimes setup.py install # setup.py egg_info -> ? # pip install -e . and setuptool/editable_wheel will invoke build_py # but the build_py command is not expected to copy any files. # we override different "build_py" commands for both environments if "build_py" in cmds: _build_py: Any = cmds["build_py"] else: from setuptools.command.build_py import build_py as _build_py class cmd_build_py(_build_py): def run(self) -> None: root = get_root() cfg = get_config_from_root(root) versions = get_versions() _build_py.run(self) if getattr(self, "editable_mode", False): # During editable installs `.py` and data files are # not copied to build_lib return # now locate _version.py in the new build/ directory and replace # it with an updated value if cfg.versionfile_build: target_versionfile = os.path.join(self.build_lib, cfg.versionfile_build) print("UPDATING %s" % target_versionfile) write_to_version_file(target_versionfile, versions) cmds["build_py"] = cmd_build_py if "build_ext" in cmds: _build_ext: Any = cmds["build_ext"] else: from setuptools.command.build_ext import build_ext as _build_ext class cmd_build_ext(_build_ext): def run(self) -> None: root = get_root() cfg = get_config_from_root(root) versions = get_versions() _build_ext.run(self) if self.inplace: # build_ext --inplace will only build extensions in # build/lib<..> dir with no _version.py to write to. # As in place builds will already have a _version.py # in the module dir, we do not need to write one. return # now locate _version.py in the new build/ directory and replace # it with an updated value if not cfg.versionfile_build: return target_versionfile = os.path.join(self.build_lib, cfg.versionfile_build) if not os.path.exists(target_versionfile): print( f"Warning: {target_versionfile} does not exist, skipping " "version update. This can happen if you are running build_ext " "without first running build_py." ) return print("UPDATING %s" % target_versionfile) write_to_version_file(target_versionfile, versions) cmds["build_ext"] = cmd_build_ext if "cx_Freeze" in sys.modules: # cx_freeze enabled? from cx_Freeze.dist import build_exe as _build_exe # type: ignore # nczeczulin reports that py2exe won't like the pep440-style string # as FILEVERSION, but it can be used for PRODUCTVERSION, e.g. # setup(console=[{ # "version": versioneer.get_version().split("+", 1)[0], # FILEVERSION # "product_version": versioneer.get_version(), # ... class cmd_build_exe(_build_exe): def run(self) -> None: root = get_root() cfg = get_config_from_root(root) versions = get_versions() target_versionfile = cfg.versionfile_source print("UPDATING %s" % target_versionfile) write_to_version_file(target_versionfile, versions) _build_exe.run(self) os.unlink(target_versionfile) with open(cfg.versionfile_source, "w") as f: LONG = LONG_VERSION_PY[cfg.VCS] f.write( LONG % { "DOLLAR": "$", "STYLE": cfg.style, "TAG_PREFIX": cfg.tag_prefix, "PARENTDIR_PREFIX": cfg.parentdir_prefix, "VERSIONFILE_SOURCE": cfg.versionfile_source, } ) cmds["build_exe"] = cmd_build_exe del cmds["build_py"] if "py2exe" in sys.modules: # py2exe enabled? try: from py2exe.setuptools_buildexe import py2exe as _py2exe # type: ignore except ImportError: from py2exe.distutils_buildexe import py2exe as _py2exe # type: ignore class cmd_py2exe(_py2exe): def run(self) -> None: root = get_root() cfg = get_config_from_root(root) versions = get_versions() target_versionfile = cfg.versionfile_source print("UPDATING %s" % target_versionfile) write_to_version_file(target_versionfile, versions) _py2exe.run(self) os.unlink(target_versionfile) with open(cfg.versionfile_source, "w") as f: LONG = LONG_VERSION_PY[cfg.VCS] f.write( LONG % { "DOLLAR": "$", "STYLE": cfg.style, "TAG_PREFIX": cfg.tag_prefix, "PARENTDIR_PREFIX": cfg.parentdir_prefix, "VERSIONFILE_SOURCE": cfg.versionfile_source, } ) cmds["py2exe"] = cmd_py2exe # sdist farms its file list building out to egg_info if "egg_info" in cmds: _egg_info: Any = cmds["egg_info"] else: from setuptools.command.egg_info import egg_info as _egg_info class cmd_egg_info(_egg_info): def find_sources(self) -> None: # egg_info.find_sources builds the manifest list and writes it # in one shot super().find_sources() # Modify the filelist and normalize it root = get_root() cfg = get_config_from_root(root) self.filelist.append("versioneer.py") if cfg.versionfile_source: # There are rare cases where versionfile_source might not be # included by default, so we must be explicit self.filelist.append(cfg.versionfile_source) self.filelist.sort() self.filelist.remove_duplicates() # The write method is hidden in the manifest_maker instance that # generated the filelist and was thrown away # We will instead replicate their final normalization (to unicode, # and POSIX-style paths) from setuptools import unicode_utils normalized = [ unicode_utils.filesys_decode(f).replace(os.sep, "/") for f in self.filelist.files ] manifest_filename = os.path.join(self.egg_info, "SOURCES.txt") with open(manifest_filename, "w") as fobj: fobj.write("\n".join(normalized)) cmds["egg_info"] = cmd_egg_info # we override different "sdist" commands for both environments if "sdist" in cmds: _sdist: Any = cmds["sdist"] else: from setuptools.command.sdist import sdist as _sdist class cmd_sdist(_sdist): def run(self) -> None: versions = get_versions() self._versioneer_generated_versions = versions # unless we update this, the command will keep using the old # version self.distribution.metadata.version = versions["version"] return _sdist.run(self) def make_release_tree(self, base_dir: str, files: List[str]) -> None: root = get_root() cfg = get_config_from_root(root) _sdist.make_release_tree(self, base_dir, files) # now locate _version.py in the new base_dir directory # (remembering that it may be a hardlink) and replace it with an # updated value target_versionfile = os.path.join(base_dir, cfg.versionfile_source) print("UPDATING %s" % target_versionfile) write_to_version_file( target_versionfile, self._versioneer_generated_versions ) cmds["sdist"] = cmd_sdist return cmds CONFIG_ERROR = """ setup.cfg is missing the necessary Versioneer configuration. You need a section like: [versioneer] VCS = git style = pep440 versionfile_source = src/myproject/_version.py versionfile_build = myproject/_version.py tag_prefix = parentdir_prefix = myproject- You will also need to edit your setup.py to use the results: import versioneer setup(version=versioneer.get_version(), cmdclass=versioneer.get_cmdclass(), ...) Please read the docstring in ./versioneer.py for configuration instructions, edit setup.cfg, and re-run the installer or 'python versioneer.py setup'. """ SAMPLE_CONFIG = """ # See the docstring in versioneer.py for instructions. Note that you must # re-run 'versioneer.py setup' after changing this section, and commit the # resulting files. [versioneer] #VCS = git #style = pep440 #versionfile_source = #versionfile_build = #tag_prefix = #parentdir_prefix = """ OLD_SNIPPET = """ from ._version import get_versions __version__ = get_versions()['version'] del get_versions """ INIT_PY_SNIPPET = """ from . import {0} __version__ = {0}.get_versions()['version'] """ def do_setup() -> int: """Do main VCS-independent setup function for installing Versioneer.""" root = get_root() try: cfg = get_config_from_root(root) except (OSError, configparser.NoSectionError, configparser.NoOptionError) as e: if isinstance(e, (OSError, configparser.NoSectionError)): print("Adding sample versioneer config to setup.cfg", file=sys.stderr) with open(os.path.join(root, "setup.cfg"), "a") as f: f.write(SAMPLE_CONFIG) print(CONFIG_ERROR, file=sys.stderr) return 1 print(" creating %s" % cfg.versionfile_source) with open(cfg.versionfile_source, "w") as f: LONG = LONG_VERSION_PY[cfg.VCS] f.write( LONG % { "DOLLAR": "$", "STYLE": cfg.style, "TAG_PREFIX": cfg.tag_prefix, "PARENTDIR_PREFIX": cfg.parentdir_prefix, "VERSIONFILE_SOURCE": cfg.versionfile_source, } ) ipy = os.path.join(os.path.dirname(cfg.versionfile_source), "__init__.py") maybe_ipy: Optional[str] = ipy if os.path.exists(ipy): try: with open(ipy, "r") as f: old = f.read() except OSError: old = "" module = os.path.splitext(os.path.basename(cfg.versionfile_source))[0] snippet = INIT_PY_SNIPPET.format(module) if OLD_SNIPPET in old: print(" replacing boilerplate in %s" % ipy) with open(ipy, "w") as f: f.write(old.replace(OLD_SNIPPET, snippet)) elif snippet not in old: print(" appending to %s" % ipy) with open(ipy, "a") as f: f.write(snippet) else: print(" %s unmodified" % ipy) else: print(" %s doesn't exist, ok" % ipy) maybe_ipy = None # Make VCS-specific changes. For git, this means creating/changing # .gitattributes to mark _version.py for export-subst keyword # substitution. do_vcs_install(cfg.versionfile_source, maybe_ipy) return 0 def scan_setup_py() -> int: """Validate the contents of setup.py against Versioneer's expectations.""" found = set() setters = False errors = 0 with open("setup.py", "r") as f: for line in f.readlines(): if "import versioneer" in line: found.add("import") if "versioneer.get_cmdclass()" in line: found.add("cmdclass") if "versioneer.get_version()" in line: found.add("get_version") if "versioneer.VCS" in line: setters = True if "versioneer.versionfile_source" in line: setters = True if len(found) != 3: print("") print("Your setup.py appears to be missing some important items") print("(but I might be wrong). Please make sure it has something") print("roughly like the following:") print("") print(" import versioneer") print(" setup( version=versioneer.get_version(),") print(" cmdclass=versioneer.get_cmdclass(), ...)") print("") errors += 1 if setters: print("You should remove lines like 'versioneer.VCS = ' and") print("'versioneer.versionfile_source = ' . This configuration") print("now lives in setup.cfg, and should be removed from setup.py") print("") errors += 1 return errors def setup_command() -> NoReturn: """Set up Versioneer and exit with appropriate error code.""" errors = do_setup() errors += scan_setup_py() sys.exit(1 if errors else 0) if __name__ == "__main__": cmd = sys.argv[1] if cmd == "setup": setup_command()