Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: RANCID: Users

I got it working Re: help request after I developed new module 'vnxrancid', but it don't save output properly to configs directory

 

 

RANCID users RSS feed   Index | Next | Previous | View Threaded


danielc at vmware

Sep 17, 2011, 7:27 PM

Post #1 of 1 (334 views)
Permalink
I got it working Re: help request after I developed new module 'vnxrancid', but it don't save output properly to configs directory

Nevermind again.
I was working backwards. I should have started with the fnlogin equivalent first, then work on the fnrancid equivalent second.
I have some minor clean-up to program vnxrancid to ignore certain run-time statistics.


I made a new copy of fnlogin and made a few changes:
1)
# FortiOS 2.x prompts can end in either '#' or '$'
# set prompt "\[#\\$] "
# VNX prompt looks like [nasadmin [at] r2778-vnx01cs ~]$
set prompt "\[~.\\$] "

2)
some of the expect during the proc run_command to match more closely to a linux workstation

I made a new copy of fnrancid and made some more changes to the prompt processing there:
while (/^.+(#|\$)\s*($cmds_regexp)\s*$/) {
$cmd = $2;
# - FortiGate prompts end with either '#' or '$'. Further, they may
# be prepended with a '~' if the hostname is too long. Therefore,
# we need to figure out what our prompt really is.
# if (!defined($prompt)) {
# if ($_ =~ m/^.+\~\$/) {
# $prompt = '\~\$ .*';
# print STDERR ("line0:$_\nprompt:$prompt\n") if ($debug);
# } else {
# if ($_ =~ m/^.+\$/) {
# $prompt = ' \$ .*';
# print STDERR ("line1:$_\nprompt:$prompt\n") if ($debug);
# } else {
# if ($_ =~ m/^.+\~#/) {
# $prompt = '\~# .*';
# print STDERR ("linei2:$_\nprompt:$prompt\n") if ($debug);
# } else {
# if ($_ =~ m/^.+#/) {
# $prompt = ' # .*';
# print STDERR ("linei3:$_\nprompt:$prompt\n") if ($debug);
# }
# }
# }
# }
# }
print STDERR ("line:$_\ncmd:$2\n") if ($debug);
if (!defined($prompt)) {
print STDERR ("PROMPT0 MATCH: $1\n") if ($debug);
# $prompt = ($_ =~ /^([^#]+#)/)[0];
# $prompt = ($_ =~ /\a([^\$]+\$)/)[0];
# $prompt = ($_ =~ /\a(.+\b)/)[0];
$prompt = ($_ =~ /\a(.+\b)/)[1];
print STDERR ("PROMPT1 MATCH: $prompt\n") if ($debug);
# $prompt =~ s/([][}{)(\\])/\\$1/g;
# $prompt =~ s/([][}{)(\\])//g;
print STDERR ("PROMPT2 MATCH: $prompt\n") if ($debug);
# $prompt =~ s/[\$]//g;
print STDERR ("PROMPT3 MATCH: $prompt\n") if ($debug);
}


Daniel Chen


----- Original Message -----
From: danielc [at] vmware
To: rancid-discuss [at] shrubbery
Sent: Saturday, September 17, 2011 1:43:59 PM
Subject: Re: [rancid] help request after I developed new module 'vnxrancid', but it don't save output properly to configs directory

I backtracked my changes to which part of the changes caused the rancid-run to fail.
I think I broke my variation of the fnrancid when I attempted to get the prompt to be recognized.
As stand-alone, vnxrancid -d vnx01 appear to be able to generate the vnx01.raw and vnx01.new files when NOPIPE=yes was engaged.

The prompt looks like the following during a ssh:
[nasadmin [at] r2778-vnx01cs ~]$

In looking at the .raw file, it looks like a there is an escape sequence:
^[]0;nasadmin [at] r2778-vnx01cs:~^G[nasadmin [at] r2778-vnx01cs ~]$ ^M




while (/^.+(#|\$)\s*($cmds_regexp)\s*$/) {
$cmd = $2;
# - FortiGate prompts end with either '#' or '$'. Further, they may
# be prepended with a '~' if the hostname is too long. Therefore,
# we need to figure out what our prompt really is.
# if (!defined($prompt)) {
# if ($_ =~ m/^.+\~\$/) {
# $prompt = '\~\$ .*';
# } else {
# if ($_ =~ m/^.+\$/) {
# $prompt = ' \$ .*';
# } else {
# if ($_ =~ m/^.+\~#/) {
# $prompt = '\~# .*';
# } else {
# if ($_ =~ m/^.+#/) {
# $prompt = ' # .*';
# }
# }
# }
# }
# }

print STDERR ("line:$_\ncmd:$2\n") if ($debug);
if (!defined($prompt)) {
print STDERR ("PROMPT0 MATCH: $1\n") if ($debug);
# $prompt = ($_ =~ /^([^#]+#)/)[0];
$prompt = ($_ =~ /^([^\$]+\$)/)[0];
print STDERR ("PROMPT1 MATCH: $prompt\n") if ($debug);
# $prompt =~ s/([][}{)(\\])/\\$1/g;
print STDERR ("PROMPT2 MATCH: $prompt\n") if ($debug);
# $prompt =~ s/[\$]//g;
print STDERR ("PROMPT3 MATCH: $prompt\n") if ($debug);
}

Regards,
Daniel Chen

----- Original Message -----
From: danielc [at] vmware
To: rancid-discuss [at] shrubbery
Sent: Saturday, September 17, 2011 8:35:38 AM
Subject: Re: [rancid] help request after I developed new module 'vnxrancid', but it don't save output properly to configs directory

Nevermind.

I used ProcessHistory("","","","","!field:$_");
so all the lines in the .new are practically comments as there is no "configuration" to capture as such.

I think that would be it. Trying now.

Sorry,
Daniel Chen

----- Original Message -----
From: danielc [at] vmware
To: rancid-discuss [at] shrubbery
Sent: Saturday, September 17, 2011 7:56:04 AM
Subject: [rancid] help request after I developed new module 'vnxrancid', but it don't save output properly to configs directory

I hacked fnlogin/fnrancid pair to do some EMC VNX commands on their RHAT/Linux shell, but the only a portion of the output is not being checked into the configs directory.

I have done the following:
NOPIPE=yes;export NOPIPE
vnxrancid -d vnx01

I get the two files: vnx01.raw and vnx01.new

But if I do just:
rancid-run -r vnx01 testing

The .../var/testing/configs/vnx01 file only has saved some lines like:
!RANCID-CONTENT-TYPE: vnxrancid

The contents of the vnx01.new file looks perfect (in my opinion)

I noticed that the end of the vnx01.raw file still have lots of control characters, is this interfering with the rancid-run
^M
^[]0;nasadmin [at] r2778-vnx01cs:~^G[nasadmin [at] r2778-vnx01cs ~]$ ^M
^[]0;nasadmin [at] r2778-vnx01cs:~^G[nasadmin [at] r2778-vnx01cs ~]$ exit^M
logout^M
^[.[.H^[.[.2JConnection to vnx01 closed.^M^M

whereas an UCS, N7K, Vyatta device the .raw file is much cleaner.
exit^M
r2845-n6k-B#exit^M
Connection to r2845-n6k02 closed.^M^M

commit^M
^[]0;rancidnms [at] hub-las01-fw01: ~^G^[[01;32mrancidnms [at] hub-las01-fw01^[[00m:^[[01;34m~^[[00m$ ^M
^[]0;rancidnms [at] hub-las01-fw01: ~^G^[[01;32mrancidnms [at] hub-las01-fw01^[[00m:^[[01;34m~^[[00m$ exit^M
logout^M
Connection to hub-las01-fw01b closed.^M^M
^M


Thanks,
Daniel Chen
_______________________________________________
Rancid-discuss mailing list
Rancid-discuss [at] shrubbery
http://www.shrubbery.net/mailman/listinfo.cgi/rancid-discuss
_______________________________________________
Rancid-discuss mailing list
Rancid-discuss [at] shrubbery
http://www.shrubbery.net/mailman/listinfo.cgi/rancid-discuss
_______________________________________________
Rancid-discuss mailing list
Rancid-discuss [at] shrubbery
http://www.shrubbery.net/mailman/listinfo.cgi/rancid-discuss
_______________________________________________
Rancid-discuss mailing list
Rancid-discuss [at] shrubbery
http://www.shrubbery.net/mailman/listinfo.cgi/rancid-discuss

RANCID users RSS feed   Index | Next | Previous | View Threaded
 
 


Interested in having your list archived? Contact Gossamer Threads
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.