]> git.sesse.net Git - nms/blob - include/nms.pm
Move switch_connect() into nms module.
[nms] / include / nms.pm
1 #! /usr/bin/perl
2 use strict;
3 use warnings;
4 use DBI;
5 use Net::Telnet;
6 package nms;
7
8 BEGIN {
9         require "config.pm";
10         eval {
11                 require "config.local.pm";
12         };
13 }
14
15 sub db_connect {
16         my $dbh = DBI->connect("dbi:Pg:" .
17                                 "dbname=" . $nms::config::db_name .
18                                 ";host=" . $nms::config::db_host,
19                                 $nms::config::db_username,
20                                 $nms::config::db_password)
21                 or die "Couldn't connect to database";
22         return $dbh;    
23 }
24
25 sub switch_connect($) {
26         my ($ip) = @_;
27
28 #                                       Dump_Log => '/tmp/dumplog-queue',
29         my $conn = new Net::Telnet(     Timeout => $nms::config::telnet_timeout,
30                                         Errmode => 'return',
31                                         Prompt => '/(es3024|e\d+\-\dsw)>/i');
32         my $ret = $conn->open(  Host => $ip);
33         if (!$ret || $ret != 1) {
34                 return (undef);
35         }
36         # XXX: Just send the password as text, I did not figure out how to
37         # handle authentication with only password through $conn->login().
38         #$conn->login(»·Prompt => '/password[: ]*$/i',
39         #               Name => $password,
40         #               Password => $password);
41         $conn->cmd($nms::config::zyxel_password);
42         # Get rid of banner
43         $conn->get;
44         return ($conn);
45 }
46
47 1;