[rancid] Small issue with drancid and old Dell PowerConnect 3324

John Jetmore jj33 at pobox.com
Thu Mar 25 14:27:56 UTC 2010


I have the dlogin/drancid scripts from rickyninja.net working well(*)
for a PowerConnect M6220, thanks much for the package.  After getting
it working I decided to try it on some older 3324s I have deployed.
They are close to working just as well, I have only one oddity.  The
end of the config that gets committed to CVS looks like this:

    (...)
    plv-sw-02#exitConnection closed by foreign host.
    end

In the output from the run I have this:

    FOUND PROMPT: plv-sw-02#
    found_end = 1, clean_run = 0
    plv-sw-02: End of run not found
    end
    All routers sucessfully completed.

I've confirmed that the final "end" gets added statically, so that's
not as odd as I thought it was at first.  The line which should be
getting rid of that prompt is in drancid:WriteTerm():

    if (/$prompt\s?exit$/) { warn "left WriteTerm on: $_"; $clean_run=1;last; }

It seems I could make this go away by changing the regexp like so:

    if (/$prompt\s?exit(?:Connection closed by foreign host.\s*)?$/) {
warn "left WriteTerm on: $_"; $clean_run=1;last; }

My question then is whether this seems like the appropriate change
(and possibly something that could go back into the rickyninja
scripts) or if this is a sign of some issue with my switch config or
some other item that I would be better off addressing externally to
rancid.

Thanks
--John

(*) For posterity, the rickyninja page lists the last release as
11/14/2009, but the package was actually last updated on 11/20/2009.
I just happened to grab it on 11/19/2009, and though I only
implemented it in the last couple of weeks I would have saved a bunch
of diagnosing if I had realized I didn't have the most recent version.
 Here's the diff between the 20091114 and 20091120 versions:

--- rancid-dell-extension-20091114/drancid      2009-11-14
13:02:14.000000000 -0600
+++ rancid-dell-extension-20091120/drancid      2009-11-20
00:28:19.000000000 -0600
@@ -154,8 +154,9 @@
         return(1) if /^% Unrecognized command/;
         return(0) if ($found_version);                # Only do this
routine once
         # the pager can not be disabled per-session on the dell
-        s/^More: <space>.+<return>.*//sg;
-        s/^\s*--More-- or \\(q\\)uit.*//sg;
+        s/^More: <space>.+<return> \033\[\K//;
+        s/^More: <space>.+<return>\s*//;
+        s/^\s*--More-- or \(q\)uit\s*//;
         ProcessHistory("","","","$_");
     }
     ProcessHistory("","","","!\n");
@@ -173,8 +174,9 @@
         next if (/^(\s*|\s*$cmd\s*)$/);
         return(1) if /^% Unrecognized command/;
         # the pager can not be disabled per-session on the dell
-        s/^More: <space>.+<return>.*//sg;
-        s/^\s*--More-- or \\(q\\)uit.*//sg;
+        s/^More: <space>.+<return> \033\[\K//;
+        s/^More: <space>.+<return>\s*//;
+        s/^\s*--More-- or \(q\)uit\s*//;
         ProcessHistory("","","","$_");
     }
     ProcessHistory("","","","!\n");
@@ -191,8 +193,9 @@
         next if (/^(\s*|\s*$cmd\s*)$/);
         return(1) if /^% Unrecognized command/;
         # the pager can not be disabled per-session on the dell
-        s/^More: <space>.+<return>.*//sg;
-        s/^\s*--More-- or \\(q\\)uit.*//sg;
+        s/^More: <space>.+<return> \033\[\K//;
+        s/^More: <space>.+<return>\s*//;
+        s/^\s*--More-- or \(q\)uit\s*//;

         if (/^(enable )?(password|passwd)( level \d+)? / &&
$filter_pwds >= 1) {
             ProcessHistory("ENABLE","","","!$1$2$3 <removed>\n");


More information about the Rancid-discuss mailing list