
rwest at zyedge
Apr 27, 2010, 4:46 PM
Post #2 of 6
(2405 views)
Permalink
|
|
Re: [PATCH] Add support for the Cisco WLC
[In reply to]
|
|
Michael, > -----Original Message----- > From: rancid-discuss-bounces [at] shrubbery [mailto:rancid-discuss- > bounces [at] shrubbery] On Behalf Of Michael Stefaniuc > Sent: Tuesday, April 27, 2010 4:04 PM > To: rancid-discuss [at] shrubbery > Subject: [rancid] [PATCH] Add support for the Cisco WLC > > Hello guys, > > I hoped that somebody would beat me to add the Cisco WLC upstream... > Though there was a lot of interest in testing such a patch so here it is. > Especially testing on versions 4.x is needed as I could test it only on 5.2.x > and 6.0.x. It's much cleaner with this version, but it's still failing on the pager or an expect loop. I would move over to version 6 assurewave but I think I would hit some of the bugs, so I'm holding on to 4.2.207 for a bit longer. Here is what's happening: rancid [at] netma:~/bin$ rancid-run -V rancid 2.3.3 rancid [at] netma:~/bin$ expect -v expect version 5.43.0 - debian Lenny 5.43.0-17 build rancid [at] netma:~/bin$ wlclogin -c 'show run-config commands' cisco-wlc4 cisco-wlc4 spawn ssh -c 3des -x -l adminuser1234 cisco-wlc4 (Cisco Controller) User: adminuser1234 Password:******** (Cisco Controller) > (Cisco Controller) >term length 0 Incorrect usage. Use the '?' or <TAB> key to list commands. (Cisco Controller) >show run-config commands System Inventory NAME: "Chassis" , DESCR: "4400 Series WLAN Controller:12 APs" PID: AIR-WLC4402-12-K9, VID: V02, SN: FOC11111111 Burned-in MAC Address............................ xx:xx:xx:xx:xx:xx Crypto Accelerator 1............................. Absent Crypto Accelerator 2............................. Absent Power Supply 1................................... Absent Power Supply 2................................... Present, OK Error: TIMEOUT reached ============ same command with debug level set ========================= (Cisco Controller) > expect: does "term length 0\r\n\r\nIncorrect usage. Use the '?' or <TAB> key to list commands.\r\n\r\n(Cisco Controller) >" (spawn_id exp6) match regular expression "\(Cisco Con([^#>\r\n]+)?[#>](\([^)\r\n]+\))?"? yes expect: set expect_out(0,string) "(Cisco Controller) >" expect: set expect_out(1,string) "troller) " expect: set expect_out(spawn_id) "exp6" expect: set expect_out(buffer) "term length 0\r\n\r\nIncorrect usage. Use the '?' or <TAB> key to list commands.\r\n\r\n(Cisco Controller) >" send: sending "show run-config commands\r" to { exp6 } expect: does "" (spawn_id exp6) match regular expression "\u0008+"? no "^[^\n\r *]*\(Cisco Con([^#>\r\n]+)?[#>](\([^)\r\n]+\))?"? no "^[^\n\r]*\(Cisco Con([^#>\r\n]+)?[#>](\([^)\r\n]+\))?."? no "^--More--\r\n"? no "[\n\r]+"? no "[^\r\n]*Press <SPACE> to cont[^\r\n]*"? no "^ *--More--[^\n\r]*"? no "^<-+ More -+>[^\n\r]*"? no "^Press Enter to continue or <Ctrl-Z> to abort[^\n\r]*"? no expect: does "s" (spawn_id exp6) match regular expression "\u0008+"? no "^[^\n\r *]*\(Cisco Con([^#>\r\n]+)?[#>](\([^)\r\n]+\))?"? no "^[^\n\r]*\(Cisco Con([^#>\r\n]+)?[#>](\([^)\r\n]+\))?."? no "^--More--\r\n"? no "[\n\r]+"? no "[^\r\n]*Press <SPACE> to cont[^\r\n]*"? no "^ *--More--[^\n\r]*"? no "^<-+ More -+>[^\n\r]*"? no "^Press Enter to continue or <Ctrl-Z> to abort[^\n\r]*"? no expect: does "show run-config commands\r\nSystem Inventory\n\rNAME: "Chassis" , DESCR: "4400 Series WLAN Controller:12 APs"\n\rPID: AIR-WLC4402-12-K9, VID: V02, SN: FOC11111111\r\n\r\nBurned-in MAC Address............................ xx:xx:xx:xx:xx:xx\r\nCrypto Accelerator 1............................. Absent\r\nCrypto Accelerator 2............................. Absent\r\nPower Supply 1................................... Absent\r\nPower Supply 2................................... Present, OK\r\n\r\nPress Enter to continue Or <Ctl Z> to abort" (spawn_id exp6) match regular expression "\u0008+"? no "^[^\n\r *]*\(Cisco Con([^#>\r\n]+)?[#>](\([^)\r\n]+\))?"? no "^[^\n\r]*\(Cisco Con([^#>\r\n]+)?[#>](\([^)\r\n]+\))?."? no "^--More--\r\n"? no "[\n\r]+"? yes expect: set expect_out(0,string) "\r\n" expect: set expect_out(spawn_id) "exp6" expect: set expect_out(buffer) "show run-config commands\r\n" show run-config commands expect: continuing expect expect: does "System Inventory\n\rNAME: "Chassis" , DESCR: "4400 Series WLAN Controller:12 APs"\n\rPID: AIR-WLC4402-12-K9, VID: V02, SN: FOC11111111\r\n\r\nBurned-in MAC Address............................ xx:xx:xx:xx:xx:xx\r\nCrypto Accelerator 1............................. Absent\r\nCrypto Accelerator 2............................. Absent\r\nPower Supply 1................................... Absent\r\nPower Supply 2................................... Present, OK\r\n\r\nPress Enter to continue Or <Ctl Z> to abort" (spawn_id exp6) match regular expression "\u0008+"? no "^[^\n\r *]*\(Cisco Con([^#>\r\n]+)?[#>](\([^)\r\n]+\))?"? no "^[^\n\r]*\(Cisco Con([^#>\r\n]+)?[#>](\([^)\r\n]+\))?."? no "^--More--\r\n"? no "[\n\r]+"? yes expect: set expect_out(0,string) "\n\r" expect: set expect_out(spawn_id) "exp6" expect: set expect_out(buffer) "System Inventory\n\r" System Inventory expect: continuing expect expect: does "NAME: "Chassis" , DESCR: "4400 Series WLAN Controller:12 APs"\n\rPID: AIR-WLC4402-12-K9, VID: V02, SN: FOC11111111\r\n\r\nBurned-in MAC Address............................ xx:xx:xx:xx:xx:xx\r\nCrypto Accelerator 1............................. Absent\r\nCrypto Accelerator 2............................. Absent\r\nPower Supply 1................................... Absent\r\nPower Supply 2................................... Present, OK\r\n\r\nPress Enter to continue Or <Ctl Z> to abort" (spawn_id exp6) match regular expression "\u0008+"? no "^[^\n\r *]*\(Cisco Con([^#>\r\n]+)?[#>](\([^)\r\n]+\))?"? no "^[^\n\r]*\(Cisco Con([^#>\r\n]+)?[#>](\([^)\r\n]+\))?."? no "^--More--\r\n"? no "[\n\r]+"? yes expect: set expect_out(0,string) "\n\r" expect: set expect_out(spawn_id) "exp6" expect: set expect_out(buffer) "NAME: "Chassis" , DESCR: "4400 Series WLAN Controller:12 APs"\n\r" NAME: "Chassis" , DESCR: "4400 Series WLAN Controller:12 APs" expect: continuing expect expect: does "PID: AIR-WLC4402-12-K9, VID: V02, SN: FOC11111111\r\n\r\nBurned-in MAC Address............................ xx:xx:xx:xx:xx:xx\r\nCrypto Accelerator 1............................. Absent\r\nCrypto Accelerator 2............................. Absent\r\nPower Supply 1................................... Absent\r\nPower Supply 2................................... Present, OK\r\n\r\nPress Enter to continue Or <Ctl Z> to abort" (spawn_id exp6) match regular expression "\u0008+"? no "^[^\n\r *]*\(Cisco Con([^#>\r\n]+)?[#>](\([^)\r\n]+\))?"? no "^[^\n\r]*\(Cisco Con([^#>\r\n]+)?[#>](\([^)\r\n]+\))?."? no "^--More--\r\n"? no "[\n\r]+"? yes expect: set expect_out(0,string) "\r\n\r\n" expect: set expect_out(spawn_id) "exp6" expect: set expect_out(buffer) "PID: AIR-WLC4402-12-K9, VID: V02, SN: FOC11111111\r\n\r\n" PID: AIR-WLC4402-12-K9, VID: V02, SN: FOC11111111 expect: continuing expect expect: does "Burned-in MAC Address............................ xx:xx:xx:xx:xx:xx\r\nCrypto Accelerator 1............................. Absent\r\nCrypto Accelerator 2............................. Absent\r\nPower Supply 1................................... Absent\r\nPower Supply 2................................... Present, OK\r\n\r\nPress Enter to continue Or <Ctl Z> to abort" (spawn_id exp6) match regular expression "\u0008+"? no "^[^\n\r *]*\(Cisco Con([^#>\r\n]+)?[#>](\([^)\r\n]+\))?"? no "^[^\n\r]*\(Cisco Con([^#>\r\n]+)?[#>](\([^)\r\n]+\))?."? no "^--More--\r\n"? no "[\n\r]+"? yes expect: set expect_out(0,string) "\r\n" expect: set expect_out(spawn_id) "exp6" expect: set expect_out(buffer) "Burned-in MAC Address............................ xx:xx:xx:xx:xx:xx\r\n" Burned-in MAC Address............................ xx:xx:xx:xx:xx:xx expect: continuing expect expect: does "Crypto Accelerator 1............................. Absent\r\nCrypto Accelerator 2............................. Absent\r\nPower Supply 1................................... Absent\r\nPower Supply 2................................... Present, OK\r\n\r\nPress Enter to continue Or <Ctl Z> to abort" (spawn_id exp6) match regular expression "\u0008+"? no "^[^\n\r *]*\(Cisco Con([^#>\r\n]+)?[#>](\([^)\r\n]+\))?"? no "^[^\n\r]*\(Cisco Con([^#>\r\n]+)?[#>](\([^)\r\n]+\))?."? no "^--More--\r\n"? no "[\n\r]+"? yes expect: set expect_out(0,string) "\r\n" expect: set expect_out(spawn_id) "exp6" expect: set expect_out(buffer) "Crypto Accelerator 1............................. Absent\r\n" Crypto Accelerator 1............................. Absent expect: continuing expect expect: does "Crypto Accelerator 2............................. Absent\r\nPower Supply 1................................... Absent\r\nPower Supply 2................................... Present, OK\r\n\r\nPress Enter to continue Or <Ctl Z> to abort" (spawn_id exp6) match regular expression "\u0008+"? no "^[^\n\r *]*\(Cisco Con([^#>\r\n]+)?[#>](\([^)\r\n]+\))?"? no "^[^\n\r]*\(Cisco Con([^#>\r\n]+)?[#>](\([^)\r\n]+\))?."? no "^--More--\r\n"? no "[\n\r]+"? yes expect: set expect_out(0,string) "\r\n" expect: set expect_out(spawn_id) "exp6" expect: set expect_out(buffer) "Crypto Accelerator 2............................. Absent\r\n" Crypto Accelerator 2............................. Absent expect: continuing expect expect: does "Power Supply 1................................... Absent\r\nPower Supply 2................................... Present, OK\r\n\r\nPress Enter to continue Or <Ctl Z> to abort" (spawn_id exp6) match regular expression "\u0008+"? no "^[^\n\r *]*\(Cisco Con([^#>\r\n]+)?[#>](\([^)\r\n]+\))?"? no "^[^\n\r]*\(Cisco Con([^#>\r\n]+)?[#>](\([^)\r\n]+\))?."? no "^--More--\r\n"? no "[\n\r]+"? yes expect: set expect_out(0,string) "\r\n" expect: set expect_out(spawn_id) "exp6" expect: set expect_out(buffer) "Power Supply 1................................... Absent\r\n" Power Supply 1................................... Absent expect: continuing expect expect: does "Power Supply 2................................... Present, OK\r\n\r\nPress Enter to continue Or <Ctl Z> to abort" (spawn_id exp6) match regular expression "\u0008+"? no "^[^\n\r *]*\(Cisco Con([^#>\r\n]+)?[#>](\([^)\r\n]+\))?"? no "^[^\n\r]*\(Cisco Con([^#>\r\n]+)?[#>](\([^)\r\n]+\))?."? no "^--More--\r\n"? no "[\n\r]+"? yes expect: set expect_out(0,string) "\r\n\r\n" expect: set expect_out(spawn_id) "exp6" expect: set expect_out(buffer) "Power Supply 2................................... Present, OK\r\n\r\n" Power Supply 2................................... Present, OK expect: continuing expect expect: does "Press Enter to continue Or <Ctl Z> to abort" (spawn_id exp6) match regular expression "\u0008+"? no "^[^\n\r *]*\(Cisco Con([^#>\r\n]+)?[#>](\([^)\r\n]+\))?"? no "^[^\n\r]*\(Cisco Con([^#>\r\n]+)?[#>](\([^)\r\n]+\))?."? no "^--More--\r\n"? no "[\n\r]+"? no "[^\r\n]*Press <SPACE> to cont[^\r\n]*"? no "^ *--More--[^\n\r]*"? no "^<-+ More -+>[^\n\r]*"? no "^Press Enter to continue or <Ctrl-Z> to abort[^\n\r]*"? no expect: timed out Error: TIMEOUT reached write() failed to write anything - will sleep(1) and retry... When the 'show run-config commands' is run from CLI, I am able to page properly through the file. Can anyone shed any light on what might be causing what appears to be an expect loop? Thanks, -ryan _______________________________________________ Rancid-discuss mailing list Rancid-discuss [at] shrubbery http://www.shrubbery.net/mailman/listinfo.cgi/rancid-discuss
|