I run a network of approximately 250 ciscos.
Several of these are 'larger' ciscos, like AGS+, 4000, and 7xxx.
I have setup each of my routers as a 'group', with the 'members'
of that group being:
1/ the router itself (having the loopback address of the router)
2/ the cards on the router (ie ethernet, serial, fddi).
Further, each card then, is a group, which has members being the
interfaces:
I would like to modify the tkined code such that I can ping,
telnet, and do snmp queries to 'groups'. The rationale for this
is that the operators can have a map w/ a few simple routers, and
ping them, and telnet to them. If there's a problem, a member of
the group will start flashing (like say a particular interface)
then they can open up the group/router, and look to see what part
of the router has the problem, ie what interface isn't reachable.
Is this a large undertaking?
I have tried to modify the tkined code of library.tcl in the
following manner:
Before:
if { ([ined type $comp] == "NODE") }
After:
if { ([ined type $comp] == "NODE") || ([ined type $comp] == "GROUP"]) }
But, it does not work :(
Perhaps someone could give me some direction on this:
1/ Is it relatively simple or hard?
2/ What procedures must be changed?
3/ Are there any side effects of this that I should be concerned with?
Thanks alot!
Alan Hannan
ps -> here's the modified code I've done, w/ debugging in the form
of 'ined acknowledge's. It never appears to actually get into the
routine, and never runs the line:
ined acknowledge "lid = $lid"
------------------------ = ------------------------
##
## Evaluate body for every node where we get an IP address for. The id
## and ip variables are set to the id of the NODE object and it's IP
## address.
##
proc ForeachIpNode { id ip host list body } {
upvar $id lid
upvar $ip lip
upvar $host lhost
foreach comp $list {
ined acknowledge "I am executing ForeachIpNode on list = $list ."
ined acknowledge "The comp is $comp."
if { ([ined type $comp] == "NODE") || ([ined type $comp] == "GROUP"]) }
{
set lid [ined id $comp]
ined acknowledge "lid = $lid"
set lip [GetIpAddress $comp]
ined acknowledge "lip = $lip"
set lhost [ined name $comp]
ined acknowledge "lhost = $lhost"
if {$lip == ""} {
set host [lindex [ined name $comp] 0]
ined acknowledge "Can not lookup IP Address for $host."
continue
}
uplevel 1 $body
ined acknowledge "body = $body"
}
}
}