Juniper / jsnapy

Python version of Junos Snapshot Administrator
Apache License 2.0
115 stars 58 forks source link

ERROR!! TypeError | Complete Message: 'NoneType' object is not iterable #223

Closed nskalis closed 7 years ago

nskalis commented 7 years ago

Hi guys,

Could you please advise how to troubleshoot the following issue ?

$ jsnapy --snap ONE -f netops.yml --hostname __ --login __ --passwd __ --port 22
Connecting to device __ ................
ERROR!! TypeError 
Complete Message:  'NoneType' object is not iterable

netops.yml looks like:

tests_include:
  - show_chassis_hardware
  - show_chassis_fpc
  - ...

while show_chassis_hardware looks like this:

show_chassis_hardware:
- command: 'show chassis hardware '
- iterate:
    id: 'name '
    tests:
    - err: 'ERROR: the module {{id_1}} has changed from {{pre["/name"]}} to {{post["/name"]}}.'
      info: Checking chassis modules names ...
      no-diff-in: name
    - err: 'ERROR: the version of the module {{id_1}} has changed from {{pre["/version"]}}
        to {{post["/version"]}}.'
      info: Checking chassis module version ...
      no-diff-in: version
    - err: 'ERROR: the part-number of module {{id_1}} has changed from {{pre["/part-number"]}}
        to {{post["/part-number"]}}.'
      info: Checking chassis module part-number ...
      no-diff-in: part-number
    - err: 'ERROR: the serial-number of module {{id_1}} has changed from {{pre["/serial-number"]}}
        to {{post["/serial-number"]}}.'
      info: Checking chassis module serial-number ...
      no-diff-in: serial-number
    - err: 'ERROR: the description of module {{id_1}} has changed from {{pre["/description"]}}
        to {{post["/description"]}}.'
      info: Checking chassis module description ...
      no-diff-in: description
    - err: 'ERROR: the model-number of module {{id_1}} has changed from {{pre["/model-number"]}}
        to {{post["/model-number"]}}.'
      info: Checking chassis module model-number ...
      no-diff-in: model-number
    - err: 'ERROR: the module {{id_1}} is missing.'
      info: Checking for missing modules ...
      list-not-less: name
    - err: 'ERROR: the module {{id_1}} was installed.'
      info: Checking for new modules ...
      list-not-more: name
    xpath: chassis/chassis-module
- iterate:
    id: 'name , ../name '
    tests:
    - err: 'ERROR: the sub-module {{id_1}} of module {{id_2}} has changed from {{pre["/name"]}}
        to {{post["/name"]}}.'
      info: Checking chassis sub-modules names ...
      no-diff-in: name
    - err: 'ERROR: the version of the sub-module {{id_1}} of module {{id_2}} has changed
        from {{pre["/name"]}} to {{post["/name"]}}.'
      info: Checking chassis sub-module version ...
      no-diff-in: version
    - err: 'ERROR: the part-number of sub-module {{id_1}} of module {{id_2}} has changed
        from {{pre["/part-number"]}} to {{post["/part-number"]}}.'
      info: Checking chassis sub-module part-number ...
      no-diff-in: part-number
    - err: 'ERROR: the serial-number of sub-module {{id_1}} of module {{id_2}} has
        changed from {{pre["/serial-number"]}} to {{post["/serial-number"]}}.'
      info: Checking chassis sub-module serial-number ...
      no-diff-in: serial-number
    - err: 'ERROR: the description of sub-module {{id_1}} of module {{id_2}} has changed
        from {{pre["/description"]}} to {{post["/description"]}}.'
      info: Checking chassis sub-module description ...
      no-diff-in: description
    - err: 'ERROR: the model-number of sub-module {{id_1}} of module {{id_2}} has
        changed from {{pre["/model-number"]}} to {{post["/model-number"]}}.'
      info: Checking chassis sub-module model-number ...
      no-diff-in: model-number
    - err: 'ERROR: the sub-module {{id_1}} of module {{id_2}} is missing.'
      info: Checking for missing sub-modules ...
      list-not-less: name
    - err: 'ERROR: the sub-module {{id_1}} of module {{id_2}} was installed.'
      info: Checking for new sub-modules ...
      list-not-more: name
    xpath: chassis/chassis-module/chassis-sub-module
dmontagner commented 7 years ago

Hi Nikos,

very likely your problem is here:

xpath: chassis/chassis-module/chassis-sub-module

Some of the components in the chassis do not have a sub-module. You may need to make use of ignore-null here.

It will be helpful if you could share the following for us to help further:

Thanks

Diogo Montagner Juniper Networks

On 30 Jan 2017, at 23:57, Nikos Skalis notifications@github.com wrote:

Hi guys,

Could you please advise how to troubleshoot the following issue ?

$ jsnapy --snap ONE -f netops.yml --hostname --login --passwd --port 22 Connecting to device ................ ERROR!! TypeError Complete Message: 'NoneType' object is not iterable

netops.yml looks like:

tests_include:

  • show_chassis_hardware
  • show_chassis_fpc
  • ...

while show_chassis_hardware looks like this:

show_chassis_hardware:

  • command: 'show chassis hardware '
  • iterate: id: 'name ' tests:
    • err: 'ERROR: the module {{id_1}} has changed from {{pre["/name"]}} to {{post["/name"]}}.' info: Checking chassis modules names ... no-diff-in: name
    • err: 'ERROR: the version of the module {{id_1}} has changed from {{pre["/version"]}} to {{post["/version"]}}.' info: Checking chassis module version ... no-diff-in: version
    • err: 'ERROR: the part-number of module {{id_1}} has changed from {{pre["/part-number"]}} to {{post["/part-number"]}}.' info: Checking chassis module part-number ... no-diff-in: part-number
    • err: 'ERROR: the serial-number of module {{id_1}} has changed from {{pre["/serial-number"]}} to {{post["/serial-number"]}}.' info: Checking chassis module serial-number ... no-diff-in: serial-number
    • err: 'ERROR: the description of module {{id_1}} has changed from {{pre["/description"]}} to {{post["/description"]}}.' info: Checking chassis module description ... no-diff-in: description
    • err: 'ERROR: the model-number of module {{id_1}} has changed from {{pre["/model-number"]}} to {{post["/model-number"]}}.' info: Checking chassis module model-number ... no-diff-in: model-number
    • err: 'ERROR: the module {{id_1}} is missing.' info: Checking for missing modules ... list-not-less: name
    • err: 'ERROR: the module {{id_1}} was installed.' info: Checking for new modules ... list-not-more: name xpath: chassis/chassis-module
  • iterate: id: 'name , ../name ' tests:
    • err: 'ERROR: the sub-module {{id_1}} of module {{id_2}} has changed from {{pre["/name"]}} to {{post["/name"]}}.' info: Checking chassis sub-modules names ... no-diff-in: name
    • err: 'ERROR: the version of the sub-module {{id_1}} of module {{id_2}} has changed from {{pre["/name"]}} to {{post["/name"]}}.' info: Checking chassis sub-module version ... no-diff-in: version
    • err: 'ERROR: the part-number of sub-module {{id_1}} of module {{id_2}} has changed from {{pre["/part-number"]}} to {{post["/part-number"]}}.' info: Checking chassis sub-module part-number ... no-diff-in: part-number
    • err: 'ERROR: the serial-number of sub-module {{id_1}} of module {{id_2}} has changed from {{pre["/serial-number"]}} to {{post["/serial-number"]}}.' info: Checking chassis sub-module serial-number ... no-diff-in: serial-number
    • err: 'ERROR: the description of sub-module {{id_1}} of module {{id_2}} has changed from {{pre["/description"]}} to {{post["/description"]}}.' info: Checking chassis sub-module description ... no-diff-in: description
    • err: 'ERROR: the model-number of sub-module {{id_1}} of module {{id_2}} has changed from {{pre["/model-number"]}} to {{post["/model-number"]}}.' info: Checking chassis sub-module model-number ... no-diff-in: model-number
    • err: 'ERROR: the sub-module {{id_1}} of module {{id_2}} is missing.' info: Checking for missing sub-modules ... list-not-less: name
    • err: 'ERROR: the sub-module {{id_1}} of module {{id_2}} was installed.' info: Checking for new sub-modules ... list-not-more: name xpath: chassis/chassis-module/chassis-sub-module

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or mute the thread.

nskalis commented 7 years ago

Thanks @dmontagner for looking into it.

Please note that the JSNAP version works ok with it, and I used the jsnap2py for getting the jsnapy version of it.

Maybe I am missing sth obvious here, and it is the 1st time I am using jsnapy.

I have attached the test case and the output in question below:

show_chassis_hardware.yml

show_chassis_hardware:
- command: 'show chassis hardware '
- iterate:
    id: 'name '
    tests:
    - err: 'ERROR: the module {{id_1}} has changed from {{pre["/name"]}} to {{post["/name"]}}.'
      info: Checking chassis modules names ...
      no-diff: name
      ignore-null: True
    - err: 'ERROR: the version of the module {{id_1}} has changed from {{pre["/version"]}}
        to {{post["/version"]}}.'
      info: Checking chassis module version ...
      no-diff: version
      ignore-null: True
    - err: 'ERROR: the part-number of module {{id_1}} has changed from {{pre["/part-number"]}}
        to {{post["/part-number"]}}.'
      info: Checking chassis module part-number ...
      no-diff: part-number
      ignore-null: True
    - err: 'ERROR: the serial-number of module {{id_1}} has changed from {{pre["/serial-number"]}}
        to {{post["/serial-number"]}}.'
      info: Checking chassis module serial-number ...
      no-diff: serial-number
      ignore-null: True
    - err: 'ERROR: the description of module {{id_1}} has changed from {{pre["/description"]}}
        to {{post["/description"]}}.'
      info: Checking chassis module description ...
      no-diff: description
      ignore-null: True
    - err: 'ERROR: the model-number of module {{id_1}} has changed from {{pre["/model-number"]}}
        to {{post["/model-number"]}}.'
      info: Checking chassis module model-number ...
      no-diff: model-number
      ignore-null: True
    - err: 'ERROR: the module {{id_1}} is missing.'
      info: Checking for missing modules ...
      list-not-less: name
    - err: 'ERROR: the module {{id_1}} was installed.'
      info: Checking for new modules ...
      list-not-more: name
    xpath: chassis/chassis-module
- iterate:
    id: 'name , ../name '
    tests:
    - err: 'ERROR: the sub-module {{id_1}} of module {{id_2}} has changed from {{pre["/name"]}}
        to {{post["/name"]}}.'
      info: Checking chassis sub-modules names ...
      no-diff: name
      ignore-null: True
    - err: 'ERROR: the version of the sub-module {{id_1}} of module {{id_2}} has changed
        from {{pre["/name"]}} to {{post["/name"]}}.'
      info: Checking chassis sub-module version ...
      no-diff: version
      ignore-null: True
    - err: 'ERROR: the part-number of sub-module {{id_1}} of module {{id_2}} has changed
        from {{pre["/part-number"]}} to {{post["/part-number"]}}.'
      info: Checking chassis sub-module part-number ...
      no-diff: part-number
      ignore-null: True
    - err: 'ERROR: the serial-number of sub-module {{id_1}} of module {{id_2}} has
        changed from {{pre["/serial-number"]}} to {{post["/serial-number"]}}.'
      info: Checking chassis sub-module serial-number ...
      no-diff: serial-number
      ignore-null: True
    - err: 'ERROR: the description of sub-module {{id_1}} of module {{id_2}} has changed
        from {{pre["/description"]}} to {{post["/description"]}}.'
      info: Checking chassis sub-module description ...
      no-diff: description
      ignore-null: True
    - err: 'ERROR: the model-number of sub-module {{id_1}} of module {{id_2}} has
        changed from {{pre["/model-number"]}} to {{post["/model-number"]}}.'
      info: Checking chassis sub-module model-number ...
      no-diff: model-number
      ignore-null: True
    - err: 'ERROR: the sub-module {{id_1}} of module {{id_2}} is missing.'
      info: Checking for missing sub-modules ...
      list-not-less: name
    - err: 'ERROR: the sub-module {{id_1}} of module {{id_2}} was installed.'
      info: Checking for new sub-modules ...
      list-not-more: name
    xpath: chassis/chassis-module/chassis-sub-module

show chassis hardware | display xml

> show chassis hardware | display xml 
<rpc-reply xmlns:junos="http://xml.juniper.net/junos/16.1R2/junos">
    <chassis-inventory xmlns="http://xml.juniper.net/junos/16.1R2/junos-chassis">
        <chassis junos:style="inventory">
            <name>Chassis</name>
            <serial-number>JN125B057AFA</serial-number>
            <description>MX960</description>
            <chassis-module>
                <name>Midplane</name>
                <version>REV 15</version>
                <part-number>750-047853</part-number>
                <serial-number>ACRG1498</serial-number>
                <description>Enhanced MX960 Backplane</description>
                <clei-code>CMMJB10BRA</clei-code>
                <model-number>CHAS-BP3-MX960-ECM-S</model-number>
            </chassis-module>
            <chassis-module>
                <name>Fan Extender</name>
                <version>REV 02</version>
                <part-number>710-018051</part-number>
                <serial-number>CAFA1587</serial-number>
                <description>Extended Cable Manager</description>
                <model-number>ECM-MX960</model-number>
            </chassis-module>
            <chassis-module>
                <name>FPM Board</name>
                <version>REV 03</version>
                <part-number>710-014974</part-number>
                <serial-number>CAFJ1615</serial-number>
                <description>Front Panel Display</description>
                <model-number>CRAFT-MX960-S</model-number>
            </chassis-module>
            <chassis-module>
                <name>PDM</name>
                <version>Rev 01</version>
                <part-number>740-063049</part-number>
                <serial-number>QCS193550AU</serial-number>
                <description>Power Distribution Module</description>
            </chassis-module>
            <chassis-module>
                <name>PEM 0</name>
                <version>Rev 01</version>
                <part-number>740-063047</part-number>
                <serial-number>QCS1947N03C</serial-number>
                <description>PS 4.1kW; 200-240V AC in</description>
                <model-number>PWR-MX960-4100-AC-S</model-number>
            </chassis-module>
            <chassis-module>
                <name>PEM 1</name>
                <version>Rev 01</version>
                <part-number>740-063047</part-number>
                <serial-number>QCS1947N085</serial-number>
                <description>PS 4.1kW; 200-240V AC in</description>
                <model-number>PWR-MX960-4100-AC-S</model-number>
            </chassis-module>
            <chassis-module>
                <name>PEM 2</name>
                <version>Rev 01</version>
                <part-number>740-063047</part-number>
                <serial-number>QCS1944N0BP</serial-number>
                <description>PS 4.1kW; 200-240V AC in</description>
                <model-number>PWR-MX960-4100-AC-S</model-number>
            </chassis-module>
            <chassis-module>
                <name>PEM 3</name>
                <version>Rev 01</version>
                <part-number>740-063047</part-number>
                <serial-number>QCS1947N09V</serial-number>
                <description>PS 4.1kW; 200-240V AC in</description>
                <model-number>PWR-MX960-4100-AC-S</model-number>
            </chassis-module>
            <chassis-module>
                <name>Routing Engine 0</name>
                <version>REV 11</version>
                <part-number>740-031116</part-number>
                <serial-number>9009254789</serial-number>
                <description>RE-S-1800x4</description>
                <clei-code>COUCASYBAB</clei-code>
                <model-number>RE-S-1800X4-16G-S</model-number>
            </chassis-module>
            <chassis-module>
                <name>Routing Engine 1</name>
                <version>REV 11</version>
                <part-number>740-031116</part-number>
                <serial-number>9009254822</serial-number>
                <description>RE-S-1800x4</description>
                <clei-code>COUCASYBAB</clei-code>
                <model-number>RE-S-1800X4-16G-S</model-number>
            </chassis-module>
            <chassis-module>
                <name>CB 0</name>
                <version>REV 08</version>
                <part-number>750-055976</part-number>
                <serial-number>CAFE3751</serial-number>
                <description>Enhanced MX SCB 2</description>
                <clei-code>COUCATYBAA</clei-code>
                <model-number>SCBE2-MX-S</model-number>
            </chassis-module>
            <chassis-module>
                <name>CB 1</name>
                <version>REV 08</version>
                <part-number>750-055976</part-number>
                <serial-number>CAFE3797</serial-number>
                <description>Enhanced MX SCB 2</description>
                <clei-code>COUCATYBAA</clei-code>
                <model-number>SCBE2-MX-S</model-number>
            </chassis-module>
            <chassis-module>
                <name>CB 2</name>
                <version>REV 08</version>
                <part-number>750-055976</part-number>
                <serial-number>CAFH7497</serial-number>
                <description>Enhanced MX SCB 2</description>
                <clei-code>COUCATYBAA</clei-code>
                <model-number>SCBE2-MX-S</model-number>
            </chassis-module>           
            <chassis-module>
                <name>FPC 0</name>
                <version>REV 36</version>
                <part-number>750-056519</part-number>
                <serial-number>CAFJ7425</serial-number>
                <description>MPC7E 3D MRATE-12xQSFPP-XGE-XLGE-CGE</description>
                <clei-code>COUCAU4BAA</clei-code>
                <model-number>MPC7E-MRATE</model-number>
                <chassis-sub-module>
                    <name>CPU</name>
                    <version>REV 16</version>
                    <part-number>750-057177</part-number>
                    <serial-number>CAFH0834</serial-number>
                    <description>SMPC PMB</description>
                </chassis-sub-module>
                <chassis-sub-module>
                    <name>PIC 0</name>
                    <part-number>BUILTIN</part-number>
                    <serial-number>BUILTIN</serial-number>
                    <description>MRATE-6xQSFPP-XGE-XLGE-CGE</description>
                    <chassis-sub-sub-module>
                        <name>Xcvr 2</name>
                        <version>REV 01</version>
                        <part-number>740-058732</part-number>
                        <serial-number>1GCQA05103X</serial-number>
                        <description>QSFP-100GBASE-LR4</description>
                    </chassis-sub-sub-module>
                    <chassis-sub-sub-module>
                        <name>Xcvr 5</name>
                        <version>REV 01</version>
                        <part-number>740-058732</part-number>
                        <serial-number>1GCQA050007</serial-number>
                        <description>QSFP-100GBASE-LR4</description>
                    </chassis-sub-sub-module>
                </chassis-sub-module>
                <chassis-sub-module>
                    <name>PIC 1</name>
                    <part-number>BUILTIN</part-number>
                    <serial-number>BUILTIN</serial-number>
                    <description>MRATE-6xQSFPP-XGE-XLGE-CGE</description>
                    <chassis-sub-sub-module>
                        <name>Xcvr 2</name>
                        <version>REV 01</version>
                        <part-number>740-058732</part-number>
                        <serial-number>1GCQA104017</serial-number>
                        <description>QSFP-100GBASE-LR4</description>
                    </chassis-sub-sub-module>
                    <chassis-sub-sub-module>
                        <name>Xcvr 5</name>
                        <version>REV 01</version>
                        <part-number>740-058732</part-number>
                        <serial-number>1GCQA104036</serial-number>
                        <description>QSFP-100GBASE-LR4</description>
                    </chassis-sub-sub-module>
                </chassis-sub-module>
            </chassis-module>
            <chassis-module>            
                <name>FPC 1</name>
                <version>REV 36</version>
                <part-number>750-056519</part-number>
                <serial-number>CAFM6710</serial-number>
                <description>MPC7E 3D MRATE-12xQSFPP-XGE-XLGE-CGE</description>
                <clei-code>COUCAU4BAA</clei-code>
                <model-number>MPC7E-MRATE</model-number>
                <chassis-sub-module>
                    <name>CPU</name>
                    <version>REV 17</version>
                    <part-number>750-057177</part-number>
                    <serial-number>CAFJ0853</serial-number>
                    <description>SMPC PMB</description>
                </chassis-sub-module>
                <chassis-sub-module>
                    <name>PIC 0</name>
                    <part-number>BUILTIN</part-number>
                    <serial-number>BUILTIN</serial-number>
                    <description>MRATE-6xQSFPP-XGE-XLGE-CGE</description>
                    <chassis-sub-sub-module>
                        <name>Xcvr 2</name>
                        <version>REV 01</version>
                        <part-number>740-058732</part-number>
                        <serial-number>1GCQA051004</serial-number>
                        <description>QSFP-100GBASE-LR4</description>
                    </chassis-sub-sub-module>
                    <chassis-sub-sub-module>
                        <name>Xcvr 5</name>
                        <version>REV 01</version>
                        <part-number>740-058732</part-number>
                        <serial-number>1GCQA05104U</serial-number>
                        <description>QSFP-100GBASE-LR4</description>
                    </chassis-sub-sub-module>
                </chassis-sub-module>
                <chassis-sub-module>
                    <name>PIC 1</name>
                    <part-number>BUILTIN</part-number>
                    <serial-number>BUILTIN</serial-number>
                    <description>MRATE-6xQSFPP-XGE-XLGE-CGE</description>
                    <chassis-sub-sub-module>
                        <name>Xcvr 2</name>
                        <version>REV 01</version>
                        <part-number>740-058732</part-number>
                        <serial-number>1GCQA05004V</serial-number>
                        <description>QSFP-100GBASE-LR4</description>
                    </chassis-sub-sub-module>
                    <chassis-sub-sub-module>
                        <name>Xcvr 5</name>
                        <version>REV 01</version>
                        <part-number>740-058732</part-number>
                        <serial-number>1GCQA10602L</serial-number>
                        <description>QSFP-100GBASE-LR4</description>
                    </chassis-sub-sub-module>
                </chassis-sub-module>
            </chassis-module>
            <chassis-module>
                <name>FPC 2</name>      
                <version>REV 31</version>
                <part-number>750-037355</part-number>
                <serial-number>CABS5483</serial-number>
                <description>MPC4E 3D 2CGE+8XGE</description>
                <clei-code>IPU3A4DHAA</clei-code>
                <model-number>MPC4E-3D-2CGE-8XGE</model-number>
                <chassis-sub-module>
                    <name>CPU</name>
                    <version>REV 08</version>
                    <part-number>711-035209</part-number>
                    <serial-number>CABT5202</serial-number>
                    <description>HMPC PMB 2G </description>
                </chassis-sub-module>
                <chassis-sub-module>
                    <name>PIC 0</name>
                    <part-number>BUILTIN</part-number>
                    <serial-number>BUILTIN</serial-number>
                    <description>4x10GE SFPP</description>
                    <chassis-sub-sub-module>
                        <name>Xcvr 0</name>
                        <version>REV 01</version>
                        <part-number>740-031981</part-number>
                        <serial-number>3YT012407159</serial-number>
                        <description>SFP+-10G-LR</description>
                    </chassis-sub-sub-module>
                    <chassis-sub-sub-module>
                        <name>Xcvr 1</name>
                        <version>REV 01</version>
                        <part-number>740-031981</part-number>
                        <serial-number>UGS05T5</serial-number>
                        <description>SFP+-10G-LR</description>
                    </chassis-sub-sub-module>
                    <chassis-sub-sub-module>
                        <name>Xcvr 2</name>
                        <version>REV 01</version>
                        <part-number>740-031981</part-number>
                        <serial-number>UHQ083T</serial-number>
                        <description>SFP+-10G-LR</description>
                    </chassis-sub-sub-module>
                    <chassis-sub-sub-module>
                        <name>Xcvr 3</name>
                        <version>REV 01</version>
                        <part-number>740-031981</part-number>
                        <serial-number>UHQ08AQ</serial-number>
                        <description>SFP+-10G-LR</description>
                    </chassis-sub-sub-module>
                </chassis-sub-module>
                <chassis-sub-module>
                    <name>PIC 1</name>
                    <part-number>BUILTIN</part-number>
                    <serial-number>BUILTIN</serial-number>
                    <description>1X100GE CFP</description>
                    <chassis-sub-sub-module>
                        <name>Xcvr 0</name>
                        <version>REV 01</version>
                        <part-number>740-032210</part-number>
                        <serial-number>UQP17YT</serial-number>
                        <description>CFP-100G-LR4</description>
                    </chassis-sub-sub-module>
                </chassis-sub-module>
                <chassis-sub-module>
                    <name>PIC 2</name>
                    <part-number>BUILTIN</part-number>
                    <serial-number>BUILTIN</serial-number>
                    <description>4x10GE SFPP</description>
                    <chassis-sub-sub-module>
                        <name>Xcvr 0</name>
                        <version>REV 01</version>
                        <part-number>740-031981</part-number>
                        <serial-number>DCF2001446</serial-number>
                        <description>SFP+-10G-LR</description>
                    </chassis-sub-sub-module>
                    <chassis-sub-sub-module>
                        <name>Xcvr 1</name>
                        <version>REV 01</version>
                        <part-number>740-031981</part-number>
                        <serial-number>3YT012406633</serial-number>
                        <description>SFP+-10G-LR</description>
                    </chassis-sub-sub-module>
                    <chassis-sub-sub-module>
                        <name>Xcvr 2</name>
                        <version>REV 01</version>
                        <part-number>740-031981</part-number>
                        <serial-number>UHQ09KM</serial-number>
                        <description>SFP+-10G-LR</description>
                    </chassis-sub-sub-module>
                    <chassis-sub-sub-module>
                        <name>Xcvr 3</name>
                        <version>REV 01</version>
                        <part-number>740-031981</part-number>
                        <serial-number>UHQ09WX</serial-number>
                        <description>SFP+-10G-LR</description>
                    </chassis-sub-sub-module>
                </chassis-sub-module>
                <chassis-sub-module>
                    <name>PIC 3</name>
                    <part-number>BUILTIN</part-number>
                    <serial-number>BUILTIN</serial-number>
                    <description>1X100GE CFP</description>
                    <chassis-sub-sub-module>
                        <name>Xcvr 0</name>
                        <version>REV 01</version>
                        <part-number>740-032210</part-number>
                        <serial-number>UQS03CA</serial-number>
                        <description>CFP-100G-LR4</description>
                    </chassis-sub-sub-module>
                </chassis-sub-module>
            </chassis-module>
            <chassis-module>
                <name>FPC 3</name>
                <version>REV 23</version>
                <part-number>750-037355</part-number>
                <serial-number>CACB5092</serial-number>
                <description>MPC4E 3D 2CGE+8XGE</description>
                <clei-code>IPU3A4DHAB</clei-code>
                <model-number>MPC4E-3D-2CGE-8XGE</model-number>
                <chassis-sub-module>
                    <name>CPU</name>
                    <version>REV 10</version>
                    <part-number>711-035209</part-number>
                    <serial-number>CACD3074</serial-number>
                    <description>HMPC PMB 2G </description>
                </chassis-sub-module>
                <chassis-sub-module>
                    <name>PIC 0</name>
                    <part-number>BUILTIN</part-number>
                    <serial-number>BUILTIN</serial-number>
                    <description>4x10GE SFPP</description>
                </chassis-sub-module>
                <chassis-sub-module>
                    <name>PIC 1</name>
                    <part-number>BUILTIN</part-number>
                    <serial-number>BUILTIN</serial-number>
                    <description>1X100GE CFP</description>
                    <chassis-sub-sub-module>
                        <name>Xcvr 0</name>
                        <version>REV 01</version>
                        <part-number>740-047682</part-number>
                        <serial-number>F3C2017091</serial-number>
                        <description>CFP-100G-LR4</description>
                    </chassis-sub-sub-module>
                </chassis-sub-module>
                <chassis-sub-module>
                    <name>PIC 2</name>
                    <part-number>BUILTIN</part-number>
                    <serial-number>BUILTIN</serial-number>
                    <description>4x10GE SFPP</description>
                </chassis-sub-module>
                <chassis-sub-module>
                    <name>PIC 3</name>
                    <part-number>BUILTIN</part-number>
                    <serial-number>BUILTIN</serial-number>
                    <description>1X100GE CFP</description>
                    <chassis-sub-sub-module>
                        <name>Xcvr 0</name>
                        <version>REV 01</version>
                        <part-number>740-047682</part-number>
                        <serial-number>ECF2020225</serial-number>
                        <description>CFP-100G-LR4</description>
                    </chassis-sub-sub-module>
                </chassis-sub-module>
            </chassis-module>
            <chassis-module>
                <name>FPC 4</name>
                <version>REV 33</version>
                <part-number>750-037355</part-number>
                <serial-number>CAEA2040</serial-number>
                <description>MPC4E 3D 2CGE+8XGE</description>
                <clei-code>IPU3BAFHAA</clei-code>
                <model-number>MPC4E-3D-2CGE-8XGE</model-number>
                <chassis-sub-module>    
                    <name>CPU</name>
                    <version>REV 10</version>
                    <part-number>711-035209</part-number>
                    <serial-number>CAEE7498</serial-number>
                    <description>HMPC PMB 2G </description>
                </chassis-sub-module>
                <chassis-sub-module>
                    <name>PIC 0</name>
                    <part-number>BUILTIN</part-number>
                    <serial-number>BUILTIN</serial-number>
                    <description>4x10GE SFPP</description>
                    <chassis-sub-sub-module>
                        <name>Xcvr 0</name>
                        <version>REV 01</version>
                        <part-number>740-031981</part-number>
                        <serial-number>51T021401496</serial-number>
                        <description>SFP+-10G-LR</description>
                    </chassis-sub-sub-module>
                    <chassis-sub-sub-module>
                        <name>Xcvr 1</name>
                        <version>REV 01</version>
                        <part-number>740-031981</part-number>
                        <serial-number>51T021402859</serial-number>
                        <description>SFP+-10G-LR</description>
                    </chassis-sub-sub-module>
                    <chassis-sub-sub-module>
                        <name>Xcvr 2</name>
                        <version>REV 01</version>
                        <part-number>740-031981</part-number>
                        <serial-number>51T021401472</serial-number>
                        <description>SFP+-10G-LR</description>
                    </chassis-sub-sub-module>
                </chassis-sub-module>
                <chassis-sub-module>
                    <name>PIC 1</name>
                    <part-number>BUILTIN</part-number>
                    <serial-number>BUILTIN</serial-number>
                    <description>1X100GE CFP</description>
                    <chassis-sub-sub-module>
                        <name>Xcvr 0</name>
                        <version>REV 01</version>
                        <part-number>740-047682</part-number>
                        <serial-number>53T829400088</serial-number>
                        <description>CFP-100G-LR4</description>
                    </chassis-sub-sub-module>
                </chassis-sub-module>
                <chassis-sub-module>
                    <name>PIC 2</name>
                    <part-number>BUILTIN</part-number>
                    <serial-number>BUILTIN</serial-number>
                    <description>4x10GE SFPP</description>
                    <chassis-sub-sub-module>
                        <name>Xcvr 0</name>
                        <version>REV 01</version>
                        <part-number>740-031981</part-number>
                        <serial-number>52T021400953</serial-number>
                        <description>SFP+-10G-LR</description>
                    </chassis-sub-sub-module>
                    <chassis-sub-sub-module>
                        <name>Xcvr 1</name>
                        <version>REV 01</version>
                        <part-number>740-031981</part-number>
                        <serial-number>51T021402883</serial-number>
                        <description>SFP+-10G-LR</description>
                    </chassis-sub-sub-module>
                    <chassis-sub-sub-module>
                        <name>Xcvr 2</name>
                        <version>REV 01</version>
                        <part-number>740-031981</part-number>
                        <serial-number>51T021401500</serial-number>
                        <description>SFP+-10G-LR</description>
                    </chassis-sub-sub-module>
                </chassis-sub-module>
                <chassis-sub-module>
                    <name>PIC 3</name>
                    <part-number>BUILTIN</part-number>
                    <serial-number>BUILTIN</serial-number>
                    <description>1X100GE CFP</description>
                    <chassis-sub-sub-module>
                        <name>Xcvr 0</name>
                        <version>REV 01</version>
                        <part-number>740-047682</part-number>
                        <serial-number>53T829400082</serial-number>
                        <description>CFP-100G-LR4</description>
                    </chassis-sub-sub-module>
                </chassis-sub-module>
            </chassis-module>
            <chassis-module>
                <name>FPC 7</name>
                <version>REV 23</version>
                <part-number>750-037355</part-number>
                <serial-number>CACJ7906</serial-number>
                <description>MPC4E 3D 2CGE+8XGE</description>
                <clei-code>IPU3A4DHAB</clei-code>
                <model-number>MPC4E-3D-2CGE-8XGE</model-number>
                <chassis-sub-module>
                    <name>CPU</name>
                    <version>REV 10</version>
                    <part-number>711-035209</part-number>
                    <serial-number>CACJ1983</serial-number>
                    <description>HMPC PMB 2G </description>
                </chassis-sub-module>
                <chassis-sub-module>
                    <name>PIC 0</name>
                    <part-number>BUILTIN</part-number>
                    <serial-number>BUILTIN</serial-number>
                    <description>4x10GE SFPP</description>
                </chassis-sub-module>
                <chassis-sub-module>
                    <name>PIC 1</name>
                    <part-number>BUILTIN</part-number>
                    <serial-number>BUILTIN</serial-number>
                    <description>1X100GE CFP</description>
                    <chassis-sub-sub-module>
                        <name>Xcvr 0</name>
                        <version>REV 01</version>
                        <part-number>740-032210</part-number>
                        <serial-number>UQR07VD</serial-number>
                        <description>CFP-100G-LR4</description>
                    </chassis-sub-sub-module>
                </chassis-sub-module>
                <chassis-sub-module>
                    <name>PIC 2</name>
                    <part-number>BUILTIN</part-number>
                    <serial-number>BUILTIN</serial-number>
                    <description>4x10GE SFPP</description>
                </chassis-sub-module>
                <chassis-sub-module>
                    <name>PIC 3</name>
                    <part-number>BUILTIN</part-number>
                    <serial-number>BUILTIN</serial-number>
                    <description>1X100GE CFP</description>
                    <chassis-sub-sub-module>
                        <name>Xcvr 0</name>
                        <version>REV 01</version>
                        <part-number>740-032210</part-number>
                        <serial-number>UQR0LS2</serial-number>
                        <description>CFP-100G-LR4</description>
                    </chassis-sub-sub-module>
                </chassis-sub-module>
            </chassis-module>
            <chassis-module>
                <name>FPC 8</name>
                <version>REV 33</version>
                <part-number>750-037355</part-number>
                <serial-number>CAEA2225</serial-number>
                <description>MPC4E 3D 2CGE+8XGE</description>
                <clei-code>IPU3BAFHAA</clei-code>
                <model-number>MPC4E-3D-2CGE-8XGE</model-number>
                <chassis-sub-module>
                    <name>CPU</name>
                    <version>REV 10</version>
                    <part-number>711-035209</part-number>
                    <serial-number>CAEE7315</serial-number>
                    <description>HMPC PMB 2G </description>
                </chassis-sub-module>
                <chassis-sub-module>
                    <name>PIC 0</name>
                    <part-number>BUILTIN</part-number>
                    <serial-number>BUILTIN</serial-number>
                    <description>4x10GE SFPP</description>
                </chassis-sub-module>
                <chassis-sub-module>
                    <name>PIC 1</name>
                    <part-number>BUILTIN</part-number>
                    <serial-number>BUILTIN</serial-number>
                    <description>1X100GE CFP</description>
                    <chassis-sub-sub-module>
                        <name>Xcvr 0</name>
                        <version>REV 01</version>
                        <part-number>740-047682</part-number>
                        <serial-number>ECJ2022996</serial-number>
                        <description>CFP-100G-LR4</description>
                    </chassis-sub-sub-module>
                </chassis-sub-module>
                <chassis-sub-module>
                    <name>PIC 2</name>
                    <part-number>BUILTIN</part-number>
                    <serial-number>BUILTIN</serial-number>
                    <description>4x10GE SFPP</description>
                </chassis-sub-module>
                <chassis-sub-module>
                    <name>PIC 3</name>
                    <part-number>BUILTIN</part-number>
                    <serial-number>BUILTIN</serial-number>
                    <description>1X100GE CFP</description>
                    <chassis-sub-sub-module>
                        <name>Xcvr 0</name>
                        <version>REV 01</version>
                        <part-number>740-047682</part-number>
                        <serial-number>53T829400081</serial-number>
                        <description>CFP-100G-LR4</description>
                    </chassis-sub-sub-module>
                </chassis-sub-module>
            </chassis-module>
            <chassis-module>
                <name>FPC 9</name>
                <version>REV 23</version>
                <part-number>750-037355</part-number>
                <serial-number>CACB5086</serial-number>
                <description>MPC4E 3D 2CGE+8XGE</description>
                <clei-code>IPU3A4DHAB</clei-code>
                <model-number>MPC4E-3D-2CGE-8XGE</model-number>
                <chassis-sub-module>
                    <name>CPU</name>
                    <version>REV 10</version>
                    <part-number>711-035209</part-number>
                    <serial-number>CACD3250</serial-number>
                    <description>HMPC PMB 2G </description>
                </chassis-sub-module>
                <chassis-sub-module>
                    <name>PIC 0</name>
                    <part-number>BUILTIN</part-number>
                    <serial-number>BUILTIN</serial-number>
                    <description>4x10GE SFPP</description>
                </chassis-sub-module>
                <chassis-sub-module>
                    <name>PIC 1</name>
                    <part-number>BUILTIN</part-number>
                    <serial-number>BUILTIN</serial-number>
                    <description>1X100GE CFP</description>
                </chassis-sub-module>
                <chassis-sub-module>
                    <name>PIC 2</name>
                    <part-number>BUILTIN</part-number>
                    <serial-number>BUILTIN</serial-number>
                    <description>4x10GE SFPP</description>
                </chassis-sub-module>   
                <chassis-sub-module>
                    <name>PIC 3</name>
                    <part-number>BUILTIN</part-number>
                    <serial-number>BUILTIN</serial-number>
                    <description>1X100GE CFP</description>
                </chassis-sub-module>
            </chassis-module>
            <chassis-module>
                <name>FPC 10</name>
                <version>REV 22</version>
                <part-number>750-028467</part-number>
                <serial-number>YD7813</serial-number>
                <description>MPC 3D 16x 10GE</description>
                <model-number>MPC-3D-16XGE-SFPP</model-number>
                <chassis-sub-module>
                    <name>CPU</name>
                    <version>REV 09</version>
                    <part-number>711-029089</part-number>
                    <serial-number>YE0877</serial-number>
                    <description>AMPC PMB</description>
                </chassis-sub-module>
                <chassis-sub-module>
                    <name>PIC 0</name>
                    <part-number>BUILTIN</part-number>
                    <serial-number>BUILTIN</serial-number>
                    <description>4x 10GE(LAN) SFP+</description>
                    <chassis-sub-sub-module>
                        <name>Xcvr 0</name>
                        <version>REV 01</version>
                        <part-number>740-031981</part-number>
                        <serial-number>UHQ0581</serial-number>
                        <description>SFP+-10G-LR</description>
                    </chassis-sub-sub-module>
                    <chassis-sub-sub-module>
                        <name>Xcvr 1</name>
                        <version>REV 01</version>
                        <part-number>740-031981</part-number>
                        <serial-number>UHQ086X</serial-number>
                        <description>SFP+-10G-LR</description>
                    </chassis-sub-sub-module>
                    <chassis-sub-sub-module>
                        <name>Xcvr 2</name>
                        <version>REV 01</version>
                        <part-number>740-031981</part-number>
                        <serial-number>UJR0HGX</serial-number>
                        <description>SFP+-10G-LR</description>
                    </chassis-sub-sub-module>
                    <chassis-sub-sub-module>
                        <name>Xcvr 3</name>
                        <version>REV 01</version>
                        <part-number>740-031981</part-number>
                        <serial-number>ANF0KG2</serial-number>
                        <description>SFP+-10G-LR</description>
                    </chassis-sub-sub-module>
                </chassis-sub-module>
                <chassis-sub-module>
                    <name>PIC 1</name>  
                    <part-number>BUILTIN</part-number>
                    <serial-number>BUILTIN</serial-number>
                    <description>4x 10GE(LAN) SFP+</description>
                    <chassis-sub-sub-module>
                        <name>Xcvr 0</name>
                        <version>REV 01</version>
                        <part-number>740-031981</part-number>
                        <serial-number>UKQ07K5</serial-number>
                        <description>SFP+-10G-LR</description>
                    </chassis-sub-sub-module>
                    <chassis-sub-sub-module>
                        <name>Xcvr 1</name>
                        <version>REV 01</version>
                        <part-number>740-031981</part-number>
                        <serial-number>UHQ098Y</serial-number>
                        <description>SFP+-10G-LR</description>
                    </chassis-sub-sub-module>
                    <chassis-sub-sub-module>
                        <name>Xcvr 2</name>
                        <version>REV 01</version>
                        <part-number>740-031981</part-number>
                        <serial-number>UJ908F2</serial-number>
                        <description>SFP+-10G-LR</description>
                    </chassis-sub-sub-module>
                    <chassis-sub-sub-module>
                        <name>Xcvr 3</name>
                        <version>REV 01</version>
                        <part-number>740-030128</part-number>
                        <serial-number>T10D48041</serial-number>
                        <description>SFP+-10G-ER</description>
                    </chassis-sub-sub-module>
                </chassis-sub-module>
                <chassis-sub-module>
                    <name>PIC 2</name>
                    <part-number>BUILTIN</part-number>
                    <serial-number>BUILTIN</serial-number>
                    <description>4x 10GE(LAN) SFP+</description>
                    <chassis-sub-sub-module>
                        <name>Xcvr 0</name>
                        <version>REV 01</version>
                        <part-number>740-031981</part-number>
                        <serial-number>UHQ0AB0</serial-number>
                        <description>SFP+-10G-LR</description>
                    </chassis-sub-sub-module>
                    <chassis-sub-sub-module>
                        <name>Xcvr 1</name>
                        <version>REV 01</version>
                        <part-number>740-031981</part-number>
                        <serial-number>UHP00VW</serial-number>
                        <description>SFP+-10G-LR</description>
                    </chassis-sub-sub-module>
                    <chassis-sub-sub-module>
                        <name>Xcvr 2</name>
                        <version>REV 01</version>
                        <part-number>740-031981</part-number>
                        <serial-number>UHQ056B</serial-number>
                        <description>SFP+-10G-LR</description>
                    </chassis-sub-sub-module>
                    <chassis-sub-sub-module>
                        <name>Xcvr 3</name>
                        <version>REV 01</version>
                        <part-number>740-031981</part-number>
                        <serial-number>UHQ04PM</serial-number>
                        <description>SFP+-10G-LR</description>
                    </chassis-sub-sub-module>
                </chassis-sub-module>
                <chassis-sub-module>
                    <name>PIC 3</name>
                    <part-number>BUILTIN</part-number>
                    <serial-number>BUILTIN</serial-number>
                    <description>4x 10GE(LAN) SFP+</description>
                    <chassis-sub-sub-module>
                        <name>Xcvr 0</name>
                        <version>REV 01</version>
                        <part-number>740-031981</part-number>
                        <serial-number>UHQ085P</serial-number>
                        <description>SFP+-10G-LR</description>
                    </chassis-sub-sub-module>
                    <chassis-sub-sub-module>
                        <name>Xcvr 1</name>
                        <version>REV 01</version>
                        <part-number>740-031981</part-number>
                        <serial-number>UHQ08D9</serial-number>
                        <description>SFP+-10G-LR</description>
                    </chassis-sub-sub-module>
                    <chassis-sub-sub-module>
                        <name>Xcvr 2</name>
                        <version>REV 01</version>
                        <part-number>740-031981</part-number>
                        <serial-number>UHQ056J</serial-number>
                        <description>SFP+-10G-LR</description>
                    </chassis-sub-sub-module>
                    <chassis-sub-sub-module>
                        <name>Xcvr 3</name>
                        <version>REV 01</version>
                        <part-number>740-031981</part-number>
                        <serial-number>UHQ053W</serial-number>
                        <description>SFP+-10G-LR</description>
                    </chassis-sub-sub-module>
                </chassis-sub-module>
            </chassis-module>
            <chassis-module>
                <name>FPC 11</name>
                <version>REV 22</version>
                <part-number>750-028467</part-number>
                <serial-number>YE3973</serial-number>
                <description>MPC 3D 16x 10GE</description>
                <model-number>MPC-3D-16XGE-SFPP</model-number>
                <chassis-sub-module>
                    <name>CPU</name>
                    <version>REV 09</version>
                    <part-number>711-029089</part-number>
                    <serial-number>YC6168</serial-number>
                    <description>AMPC PMB</description>
                </chassis-sub-module>
                <chassis-sub-module>
                    <name>PIC 0</name>
                    <part-number>BUILTIN</part-number>
                    <serial-number>BUILTIN</serial-number>
                    <description>4x 10GE(LAN) SFP+</description>
                    <chassis-sub-sub-module>
                        <name>Xcvr 0</name>
                        <version>REV 01</version>
                        <part-number>740-031981</part-number>
                        <serial-number>UL100MG</serial-number>
                        <description>SFP+-10G-LR</description>
                    </chassis-sub-sub-module>
                    <chassis-sub-sub-module>
                        <name>Xcvr 1</name>
                        <version>REV 01</version>
                        <part-number>740-031981</part-number>
                        <serial-number>UHQ097G</serial-number>
                        <description>SFP+-10G-LR</description>
                    </chassis-sub-sub-module>
                    <chassis-sub-sub-module>
                        <name>Xcvr 2</name>
                        <version>REV 01</version>
                        <part-number>740-031981</part-number>
                        <serial-number>UJ704HQ</serial-number>
                        <description>SFP+-10G-LR</description>
                    </chassis-sub-sub-module>
                    <chassis-sub-sub-module>
                        <name>Xcvr 3</name>
                        <version>REV 01</version>
                        <part-number>740-031981</part-number>
                        <serial-number>UHQ06ET</serial-number>
                        <description>SFP+-10G-LR</description>
                    </chassis-sub-sub-module>
                </chassis-sub-module>
                <chassis-sub-module>
                    <name>PIC 1</name>
                    <part-number>BUILTIN</part-number>
                    <serial-number>BUILTIN</serial-number>
                    <description>4x 10GE(LAN) SFP+</description>
                    <chassis-sub-sub-module>
                        <name>Xcvr 0</name>
                        <version>REV 01</version>
                        <part-number>740-031981</part-number>
                        <serial-number>UJ7043L</serial-number>
                        <description>SFP+-10G-LR</description>
                    </chassis-sub-sub-module>
                    <chassis-sub-sub-module>
                        <name>Xcvr 1</name>
                        <version>REV 01</version>
                        <part-number>740-031981</part-number>
                        <serial-number>UJR0CK5</serial-number>
                        <description>SFP+-10G-LR</description>
                    </chassis-sub-sub-module>
                    <chassis-sub-sub-module>
                        <name>Xcvr 2</name>
                        <version>REV 01</version>
                        <part-number>740-031981</part-number>
                        <serial-number>ANG0N10</serial-number>
                        <description>SFP+-10G-LR</description>
                    </chassis-sub-sub-module>
                    <chassis-sub-sub-module>
                        <name>Xcvr 3</name>
                        <version>REV 01</version>
                        <part-number>740-031981</part-number>
                        <serial-number>UL10KZ7</serial-number>
                        <description>SFP+-10G-LR</description>
                    </chassis-sub-sub-module>
                </chassis-sub-module>
                <chassis-sub-module>
                    <name>PIC 2</name>
                    <part-number>BUILTIN</part-number>
                    <serial-number>BUILTIN</serial-number>
                    <description>4x 10GE(LAN) SFP+</description>
                    <chassis-sub-sub-module>
                        <name>Xcvr 0</name>
                        <version>REV 01</version>
                        <part-number>740-031981</part-number>
                        <serial-number>UHQ0812</serial-number>
                        <description>SFP+-10G-LR</description>
                    </chassis-sub-sub-module>
                    <chassis-sub-sub-module>
                        <name>Xcvr 1</name>
                        <version>REV 01</version>
                        <part-number>740-031981</part-number>
                        <serial-number>ANG0MWX</serial-number>
                        <description>SFP+-10G-LR</description>
                    </chassis-sub-sub-module>
                    <chassis-sub-sub-module>
                        <name>Xcvr 2</name>
                        <version>REV 01</version>
                        <part-number>740-031981</part-number>
                        <serial-number>UHQ09MV</serial-number>
                        <description>SFP+-10G-LR</description>
                    </chassis-sub-sub-module>
                    <chassis-sub-sub-module>
                        <name>Xcvr 3</name>
                        <version>REV 01</version>
                        <part-number>740-031981</part-number>
                        <serial-number>UHQ09L5</serial-number>
                        <description>SFP+-10G-LR</description>
                    </chassis-sub-sub-module>
                </chassis-sub-module>
                <chassis-sub-module>
                    <name>PIC 3</name>
                    <part-number>BUILTIN</part-number>
                    <serial-number>BUILTIN</serial-number>
                    <description>4x 10GE(LAN) SFP+</description>
                    <chassis-sub-sub-module>
                        <name>Xcvr 0</name>
                        <version>REV 01</version>
                        <part-number>740-030128</part-number>
                        <serial-number>T10C81720</serial-number>
                        <description>SFP+-10G-ER</description>
                    </chassis-sub-sub-module>
                    <chassis-sub-sub-module>
                        <name>Xcvr 1</name>
                        <version>REV 01</version>
                        <part-number>740-031981</part-number>
                        <serial-number>UHQ09GY</serial-number>
                        <description>SFP+-10G-LR</description>
                    </chassis-sub-sub-module>
                    <chassis-sub-sub-module>
                        <name>Xcvr 2</name>
                        <version>REV 01</version>
                        <part-number>740-031981</part-number>
                        <serial-number>UHQ09N7</serial-number>
                        <description>SFP+-10G-LR</description>
                    </chassis-sub-sub-module>
                    <chassis-sub-sub-module>
                        <name>Xcvr 3</name>
                        <version>REV 01</version>
                        <part-number>740-031981</part-number>
                        <serial-number>UKM06WN</serial-number>
                        <description>SFP+-10G-LR</description>
                    </chassis-sub-sub-module>
                </chassis-sub-module>
            </chassis-module>
            <chassis-module>
                <name>Fan Tray 0</name>
                <version>REV 01</version>
                <part-number>740-057995</part-number>
                <serial-number>ACDE3501</serial-number>
                <description>Enhanced Fan Tray</description>
                <clei-code>COUCAP7BAB</clei-code>
                <model-number>FFANTRAY-MX960-HC-S</model-number>
            </chassis-module>
            <chassis-module>
                <name>Fan Tray 1</name>
                <version>REV 02</version>
                <part-number>740-057995</part-number>
                <serial-number>ACDE5100</serial-number>
                <description>Enhanced Fan Tray</description>
                <clei-code>COUCAP7BAC</clei-code>
                <model-number>FFANTRAY-MX960-HC-S</model-number>
            </chassis-module>
        </chassis>
    </chassis-inventory>
    <cli>
        <banner>{master}</banner>
    </cli>
</rpc-reply>
dmontagner commented 7 years ago

@nskalis

I tested your .yaml file and it worked fine for me.

→ jsnapy -v --snap test1 --folder . -f services.yaml --hostname ____ --login ___ --password  --port 22
jsnapy.cfg file location used : /etc/jsnapy
Configuration file location used : ./
Connecting to device ____ ................

Enter Password for username <lab> :
Connecting to device _____ ................
Tests Included: show_chassis_hardware
Taking snapshot of COMMAND: show chassis hardware

It collected the snapshot correctly:

 ls -l snapshots
total 32
-rw-r--r--  1 dmontagner  707  15331 31 Jan 13:47 ________test1_show_chassis_hardware.xml
cat snapshots/_______test1_show_chassis_hardware.xml
<chassis-inventory>
<chassis style="inventory">
<name>Chassis</name>
<serial-number>JN108D75EAFA</serial-number>
<description>MX960</description>
<chassis-module>
<name>Midplane</name>

<... omitted for brevity ...>

There are two possibilities that I can think of:

1- you are not using jsnapy 1.1.0 2- the problem on your file is elsewhere in that .yaml file (I think you shared only part of it)

Can you please check the following:

1- check your jsnapy version:

→ jsnapy --version
JSNAPy version: 1.1.0

2- Run jsnapy using -v option and post the output here. Below is an example how to run it with -v:

$ jsnapy -v --snap ONE -f netops.yml --hostname __ --login __ --passwd __ --port 22
nskalis commented 7 years ago

jsnapy version

$ jsnapy --version
JSNAPy version: 1.1.0

show_chassis_hardware.yml (posted above) is included in netops.yml like

$ more netops.yml 

tests_include:
  - show_chassis_hardware

$ jsnapy -v --snap ONE -f netops.yml --hostname --login --passwd __ --port 22

$ jsnapy -v --snap ONE -f netops.yml --hostname __ --login __ --passwd __ --port 22 
jsnapy.cfg file location used : /etc/jsnapy
Configuration file location used : /etc/jsnapy
Connecting to device nl-srk03a-ri1 ................
ERROR!! TypeError 
Complete Message:  'NoneType' object is not iterable
dmontagner commented 7 years ago

Do you have netconf enabled and allowed on your protect RE filter ?

set system services netconf ssh

Sent from my iPhone

On 31 Jan 2017, at 17:21, Nikos Skalis notifications@github.com<mailto:notifications@github.com> wrote:

jsnapy version

$ jsnapy --version JSNAPy version: 1.1.0

show_chassis_hardware.yml (posted above) is included in netops.yml like

$ more netops.yml

tests_include:

$ jsnapy -v --snap ONE -f netops.yml --hostname --login --passwd __ --port 22

$ jsnapy -v --snap ONE -f netops.yml --hostname --login --passwd __ --port 22 jsnapy.cfg file location used : /etc/jsnapy Configuration file location used : /etc/jsnapy Connecting to device nl-srk03a-ri1 ................ ERROR!! TypeError Complete Message: 'NoneType' object is not iterable

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/Juniper/jsnapy/issues/223#issuecomment-276284712, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AEtR2n-zggE5cYaRCfLUxsU3PSRETkxkks5rXtLygaJpZM4LxXzi.

nskalis commented 7 years ago

yes. yes. it is configured. (JSNAP works, but jsnapy does not)

> show configuration system services netconf 
ssh;

{master}
nskalis commented 7 years ago

I just wanted to provide an update:

jsnapy is 1.1.0 and installed via pip (tried also with PyPI and GitHub)

dmontagner commented 7 years ago

Nikos,

It is not clear to me if it is failing during the connection or after the connection.

I will give you few more steps to take in order to try to find where it is failing.

In case we still can't identify where it is failing, we will need a remote troubleshooting (desktop sharing) to find out where it is failing.

Step #1:

Example:

→ ssh lab@172.27.18.27 netconf Password:

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?protocol=http,ftp,file http://xml.juniper.net/netconf/junos/1.0 http://xml.juniper.net/dmi/system/1.0 8352

]]>]]>

show chassis hardware

→ which jsnapy /opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin/jsnapy

python -m pdb /opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin/jsnapy -v --snap test1 --folder . -f services.yaml --hostname 172.27.18.171 --login lab --password --port 22

/opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin/jsnapy(3)() -> requires = 'jsnapy==1.1.0' (Pdb)

/opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin/jsnapy(3)() -> requires = 'jsnapy==1.1.0' (Pdb) cont

jsnapy.cfg file location used : /etc/jsnapy Configuration file location used : ./ Connecting to device 172.27.18.171 ................

Enter Password for username :

<...>

The above should show where it failed. But before you close the session with (Ctrl-C), type bt

(Pdb) bt

Then, send the above outputs.

Thanks

Diogo Montagner Juniper Networks

On 31 Jan 2017, at 17:21, Nikos Skalis notifications@github.com wrote:

jsnapy version

$ jsnapy --version JSNAPy version: 1.1.0

show_chassis_hardware.yml (posted above) is included in netops.yml like

$ more netops.yml

tests_include:

  • show_chassis_hardware

$ jsnapy -v --snap ONE -f netops.yml --hostname --login --passwd __ --port 22

$ jsnapy -v --snap ONE -f netops.yml --hostname --login --passwd __ --port 22 jsnapy.cfg file location used : /etc/jsnapy Configuration file location used : /etc/jsnapy Connecting to device nl-srk03a-ri1 ................ ERROR!! TypeError Complete Message: 'NoneType' object is not iterable

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

nskalis commented 7 years ago

thanks a lot @dmontagner for the hints. below are the outputs:

$ ssh __@__ netconf

 ************************************************************************
 *                                                                      *
 *       THIS SYSTEM IS FOR THE USE OF AUTHORISED USERS ONLY!           *
 *                                                                      *
 *  For unauthorized users all access is prohibited and protected by    *
 *  international law.                                                  *
 *                                                                      *
 *  Individuals using this system are subject to having all of their    *
 *  activities on this system monitored, logged and checked by systems  *
 *  and personnel.                                                      *
 *                                                                      *
 *  When you login to this host you automatically agree with the above  *
 *  mentioned terms!                                                    *
 *                                                                      *
 ************************************************************************

Password: 
<!-- No zombies were killed during the creation of this user interface -->
<!-- user remote, class j-superuser-local -->
<hello xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
  <capabilities>
    <capability>urn:ietf:params:netconf:base:1.0</capability>
    <capability>urn:ietf:params:netconf:capability:candidate:1.0</capability>
    <capability>urn:ietf:params:netconf:capability:confirmed-commit:1.0</capability>
    <capability>urn:ietf:params:netconf:capability:validate:1.0</capability>
    <capability>urn:ietf:params:netconf:capability:url:1.0?scheme=http,ftp,file</capability>
    <capability>urn:ietf:params:xml:ns:netconf:base:1.0</capability>
    <capability>urn:ietf:params:xml:ns:netconf:capability:candidate:1.0</capability>
    <capability>urn:ietf:params:xml:ns:netconf:capability:confirmed-commit:1.0</capability>
    <capability>urn:ietf:params:xml:ns:netconf:capability:validate:1.0</capability>
    <capability>urn:ietf:params:xml:ns:netconf:capability:url:1.0?protocol=http,ftp,file</capability>
    <capability>http://xml.juniper.net/netconf/junos/1.0</capability>
    <capability>http://xml.juniper.net/dmi/system/1.0</capability>
  </capabilities>
  <session-id>82828</session-id>
</hello>
]]>]]>
<rpc><command>show chassis hardware</command></rpc>
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:junos="http://xml.juniper.net/junos/16.1R2/junos">
<chassis-inventory xmlns="http://xml.juniper.net/junos/16.1R2/junos-chassis">
<chassis junos:style="inventory">
<name>Chassis</name>
...
<model-number>FFANTRAY-MX960-HC-S</model-number>
</chassis-module>
</chassis>
</chassis-inventory>
</rpc-reply>
]]>]]>
^CKilled by signal 2.
[__@__ ~]$ 
$ python -m pdb /usr/bin/jsnapy -v --snap test1 -f netops.yml --hostname __ --login __ --password --port 22
> /usr/bin/jsnapy(3)<module>()
-> __requires__ = 'jsnapy==1.1.0'
(Pdb) cont
jsnapy.cfg file location used : /etc/jsnapy
Configuration file location used : /etc/jsnapy
Connecting to device __ ................

Enter Password for username <__> : 
Connecting to device __ ................

ERROR occurred ConnectTimeoutError(__)
ERROR!! Exception 
Complete Message:  ConnectTimeoutError(__)
The program exited via sys.exit(). Exit status:  
> /usr/bin/jsnapy(3)<module>()
-> __requires__ = 'jsnapy==1.1.0'
(Pdb) bt
  /usr/lib64/python2.7/bdb.py(400)run()
-> exec cmd in globals, locals
  <string>(1)<module>()
> /usr/bin/jsnapy(3)<module>()
-> __requires__ = 'jsnapy==1.1.0'
(Pdb) 

Hmmm.. it cannot connect. Strange.

UPDATE: it seems that fails over here: for tfile in config_data.get('tests'):

nskalis commented 7 years ago

the following was corrected (it was a mistake):

tests_include was present in the config file for a snapshot, instead of the testfile so tests replaced tests_include in the config file for a snapshot tests_include was added to every testfile

so the same behaviour like in #224 is observed and it times out then

nskalis commented 7 years ago

UPDATE: there are two issues here

  1. installation from PyPI does not work, explained above in the latest message
  2. it seems that the 1st connection is in port 22, but it tries without the password so it fails, while the 2nd attempt for connecting is made using the default port 830 which should not be the case

after installing it from GitHub, I was able to get a snapshot.

nskalis commented 7 years ago

So snapshot works, but check does not work, at least after using the jsnap2py utility.

More specifically,

$ jsnapy --check ONE TWO -f netops.yml --hostname __ where

netops.yml

tests:
  - show_chassis_hardware.yml
  - show_chassis_fpc.yml
  - show_chassis_fpc_pic_status.yml
  - show_chassis_routing_engine.yml
  - show_chassis_alarms.yml
  - show_interfaces_terse.yml
  - show_interfaces_extensive.yml
  - show_vrrp_summary.yml
  - show_isis_interface.yml
  - show_isis_adjacency.yml
  - show_ldp_interface.yml
  - show_ldp_session.yml
  - show_bgp_summary.yml
  - show_pfe_statistics_traffic.yml
  - show_krt_queue.yml
  - show_multicast_route.yml
  - show_route_forwarding_table_multicast.yml
  - show_vpls_connections.yml
  - show_l2circuit_connections.yml

and show_chassis_hardware.yml

tests_include:
  - show_chassis_hardware

show_chassis_hardware:
- command: 'show chassis hardware '
- iterate:
    id: 'name '
    tests:
    - err: 'ERROR: the module {{id_1}} has changed from {{pre["/name"]}} to {{post["/name"]}}.'
      info: Checking chassis modules names ...
      no-diff: name
      ignore-null: True
    - err: 'ERROR: the version of the module {{id_1}} has changed from {{pre["/version"]}}
        to {{post["/version"]}}.'
      info: Checking chassis module version ...
      no-diff: version
      ignore-null: True
    - err: 'ERROR: the part-number of module {{id_1}} has changed from {{pre["/part-number"]}}
        to {{post["/part-number"]}}.'
      info: Checking chassis module part-number ...
      no-diff: part-number
      ignore-null: True
    - err: 'ERROR: the serial-number of module {{id_1}} has changed from {{pre["/serial-number"]}}
        to {{post["/serial-number"]}}.'
      info: Checking chassis module serial-number ...
      no-diff: serial-number
      ignore-null: True
    - err: 'ERROR: the description of module {{id_1}} has changed from {{pre["/description"]}}
        to {{post["/description"]}}.'
      info: Checking chassis module description ...
      no-diff: description
      ignore-null: True
    - err: 'ERROR: the model-number of module {{id_1}} has changed from {{pre["/model-number"]}}
        to {{post["/model-number"]}}.'
      info: Checking chassis module model-number ...
      no-diff: model-number
      ignore-null: True
    - err: 'ERROR: the module {{id_1}} is missing.'
      info: Checking for missing modules ...
      list-not-less: name
    - err: 'ERROR: the module {{id_1}} was installed.'
      info: Checking for new modules ...
      list-not-more: name
    xpath: chassis/chassis-module
- iterate:
    id: 'name , ../name '
    tests:
    - err: 'ERROR: the sub-module {{id_1}} of module {{id_2}} has changed from {{pre["/name"]}}
        to {{post["/name"]}}.'
      info: Checking chassis sub-modules names ...
      no-diff: name
      ignore-null: True
    - err: 'ERROR: the version of the sub-module {{id_1}} of module {{id_2}} has changed
        from {{pre["/name"]}} to {{post["/name"]}}.'
      info: Checking chassis sub-module version ...
      no-diff: version
      ignore-null: True
    - err: 'ERROR: the part-number of sub-module {{id_1}} of module {{id_2}} has changed
        from {{pre["/part-number"]}} to {{post["/part-number"]}}.'
      info: Checking chassis sub-module part-number ...
      no-diff: part-number
      ignore-null: True
    - err: 'ERROR: the serial-number of sub-module {{id_1}} of module {{id_2}} has
        changed from {{pre["/serial-number"]}} to {{post["/serial-number"]}}.'
      info: Checking chassis sub-module serial-number ...
      no-diff: serial-number
      ignore-null: True
    - err: 'ERROR: the description of sub-module {{id_1}} of module {{id_2}} has changed
        from {{pre["/description"]}} to {{post["/description"]}}.'
      info: Checking chassis sub-module description ...
      no-diff: description
      ignore-null: True
    - err: 'ERROR: the model-number of sub-module {{id_1}} of module {{id_2}} has
        changed from {{pre["/model-number"]}} to {{post["/model-number"]}}.'
      info: Checking chassis sub-module model-number ...
      no-diff: model-number
      ignore-null: True
    - err: 'ERROR: the sub-module {{id_1}} of module {{id_2}} is missing.'
      info: Checking for missing sub-modules ...
      list-not-less: name
    - err: 'ERROR: the sub-module {{id_1}} of module {{id_2}} was installed.'
      info: Checking for new sub-modules ...
      list-not-more: name
    xpath: chassis/chassis-module/chassis-sub-module

produces the following error:

*************************** Device: __ ***************************
Tests Included: show_chassis_hardware 
*********************** Command: show chassis hardware ***********************
ERROR!! SyntaxError 
Complete Message: cannot use absolute path on element
ERROR!! IndexError 
Complete Message:  list index out of range
nskalis commented 7 years ago

pre["/ and post["/were replaced with pre[" and post["

could you please fix it in jsnap2py please ?

dmontagner commented 7 years ago

Nikos,

just to clarify my understanding. The original issue you reported on #223 is the same than #224.

And now you are reporting a problem with jsnap2py, which is not related to both #223 and #224.

Is the above correct ?

If yes, can you please open a specific issue for jsnap2py ?

Thanks

Diogo Montagner Juniper Networks

On 1 Feb 2017, at 01:59, Nikos Skalis notifications@github.com wrote:

pre["/ and post["/were replaced with pre[" and post["

could you please fix it in jsnap2py please ?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

nskalis commented 7 years ago

thanks @dmontagner for the support. i learned also how to send netconf commands :) i just did as you advised.