[rancid] Fixed Ciena-ws Rancid 3.6.2

Tanner Lyle tannerlyle at gmail.com
Mon Jun 19 17:14:37 UTC 2017


Ciena Engineer provided the changes needed, prompts were not matching make
following changes to your wavesvros.pm file in /usr/local/rancid/lib/rancid/

[rancid at localhost rancid]$ pwd
/usr/local/rancid/lib/rancid

*wavesvros.pm <http://wavesvros.pm>*

*Line 112*
*change this line*
       while (/>\s*($cmds_regexp)\s*$/) {
*to this *
       while (/[#]\s*($cmds_regexp)\s*$/) {


*Line 115*
*change this line*
               $prompt = ($_ =~ /^([^>]+>)/)[0];
*to this*
               $prompt = ($_ =~ /^([^#]+#)/)[0];


*Line 140*
*change this line*
       if (/>\s*exit/) {
*to this*
       if (/\s*exit/) {


*Line 207 add *
        $found_end = 0;

*from this*

# This routine parses "configuration show"
sub WriteTerm {
    my($INPUT, $OUTPUT, $cmd) = @_;
    my($snmp) = 0;
    print STDERR "    In ShowConfiguration: $_" if ($debug);

    # include the command

*to this*

# This routine parses "configuration show"
sub WriteTerm {
    my($INPUT, $OUTPUT, $cmd) = @_;
    my($snmp) = 0;
        $found_end = 0;
    print STDERR "    In ShowConfiguration: $_" if ($debug);

    # include the command

*Original line 212 now line 214*

*from this *

    while (<$INPUT>) {
        tr/\015//d;
        last if (/^$prompt/);
        /no matching entry found/ && return(-1);        # unknown cmd

*to this*

    while (<$INPUT>) {
        tr/\015//d;
                return (0) if (/^$prompt/);
        /no matching entry found/ && return(-1);        # unknown cmd
            return (0) if ($found_end == 1);


*Change Line 265*

*from this*

       if (/^! END OF CONFIG:/) {

*to this*

        if (/! END OF CONFIG:/) {



For those of you better at reading diffs than me

[rancid at localhost rancid]$ diff wavesvros.pm wavesvros.pm.orig

112c112
<       while (/[#]\s*($cmds_regexp)\s*$/) {
---
>       while (/>\s*($cmds_regexp)\s*$/) {
115c115
<               $prompt = ($_ =~ /^([^#]+#)/)[0];
---
>               $prompt = ($_ =~ /^([^>]+>)/)[0];
140c140
<       if (/\s*exit/) {
---
>       if (/>\s*exit/) {
207d206
<       $found_end = 0;
215c214
<               return (0) if (/^$prompt/);
---
>       last if (/^$prompt/);
217d215
<           return (0) if ($found_end == 1);
265c263
<         if (/! END OF CONFIG:/) {
---
>       if (/^! END OF CONFIG:/) {


---------- Forwarded message ----------
From: Tanner Lyle <tannerlyle at gmail.com>
Date: Thu, Jun 8, 2017 at 7:29 AM
Subject: Help ciena-ws Rancid 3.6.2
To: rancid-discuss at shrubbery.net


I cannot get a Ciena Waveserver (192.168.168.32 in the files) to complete,
all commands run and login works but never makes it to the parse output or
get a PROMPT MATCH: like it's trying to run the perl module against the
device.  Trying to gain some traction on this, out of ideas and know how to
trouble shoot it.  Any suggestions, i think the problem is still in hlogin
or in the wavesvros.pm.

[rancid at localhost logs]$ export NOPIPE=YES && rancid -d -t ciena-ws
192.168.168.32
loadtype: device type ciena-ws
loadtype: found device type ciena-ws in /usr/local/rancid/etc/rancid.t
ypes.base
executing hlogin -t 120 -c"software show;chassis show;configuration show"
192.168.168.32
192.168.168.32: missed cmd(s): all commands
192.168.168.32: End of run not found
!


I can get different devices to complete and run so i don't think it's a
permissions or install issue

[rancid at localhost logs]$ export NOPIPE=YES && rancid -d -t foundry 10.0.2.2
loadtype: device type foundry
loadtype: found device type foundry in /usr/local/rancid/etc/rancid.t
ypes.base
executing flogin -t 90 -c"show version;show chassis;show module;show
media;show media validation;show flash;write term;show running-config"
10.0.2.2
PROMPT MATCH: telnet at LAB_MLX16#
HIT COMMAND:telnet at LAB_MLX16#show version
    In ShowVersion: telnet at LAB_MLX16#show version
HIT COMMAND:telnet at LAB_MLX16#show chassis
    In ShowChassis: telnet at LAB_MLX16#show chassis
HIT COMMAND:telnet at LAB_MLX16#show module
    In ShowModule: telnet at LAB_MLX16#show module
HIT COMMAND:telnet at LAB_MLX16#show media
    In ShowMedia: telnet at LAB_MLX16#show media
HIT COMMAND:telnet at LAB_MLX16#show media validation
    In ShowMedia: telnet at LAB_MLX16#show media validation
HIT COMMAND:telnet at LAB_MLX16#show flash
    In ShowFlash: telnet at LAB_MLX16#show flash
HIT COMMAND:telnet at LAB_MLX16#write term
    In WriteTerm: telnet at LAB_MLX16#write term
HIT COMMAND:telnet at LAB_MLX16#show running-config
    In WriteTerm: telnet at LAB_MLX16#show running-config
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.shrubbery.net/pipermail/rancid-discuss/attachments/20170619/eba9a403/attachment.html>


More information about the Rancid-discuss mailing list