|
|
@@ -53,21 +53,11 @@ async bdcom_login => sub {
|
|
|
|
|
|
};
|
|
|
|
|
|
-async bdcom_inspect => sub
|
|
|
+async bdcom_get_onu_info => sub
|
|
|
{
|
|
|
- my $ip = shift;
|
|
|
- my $login = shift;
|
|
|
- my $password = shift;
|
|
|
+ my $t = shift;
|
|
|
my $tree = shift;
|
|
|
|
|
|
- ############################
|
|
|
-
|
|
|
- my $t = new telnet($ip);
|
|
|
-# $t->debug(1);
|
|
|
- await bdcom_login($t, $login, $password);
|
|
|
-
|
|
|
- #######################
|
|
|
-
|
|
|
my @inactive_onu = await $t->cmd("show epon inactive-onu interface ePON 0/$tree");
|
|
|
$inactive_onu[0] =~ m|Interface EPON0/\d+ has bound (\d+)|;
|
|
|
my $inactive_count = $1 || "?";
|
|
|
@@ -84,26 +74,59 @@ async bdcom_inspect => sub
|
|
|
|
|
|
my $total_count = $active_count + $inactive_count;
|
|
|
|
|
|
+ my @in_onu_info = bdcom_extract_onu_info(@inactive_onu);
|
|
|
+ my @compact_in_onu_info = map( [bdcom_extract_onu_num(@$_[0]), @$_[1]], @in_onu_info );
|
|
|
+ #@compact_in_onu_info = map( join(" ", @$_), @compact_in_onu_info);
|
|
|
+
|
|
|
+# say Dumper @active_onu;
|
|
|
+ my @a_onu_info = bdcom_extract_onu_info(@active_onu);
|
|
|
+# say "test2";
|
|
|
+ my @compact_a_onu_info = map( [bdcom_extract_onu_num(@$_[0]), @$_[1]], @a_onu_info );
|
|
|
+ #@compact_a_onu_info = map( join(" ", @$_), @compact_a_onu_info);
|
|
|
+
|
|
|
+
|
|
|
+ my %res = (
|
|
|
+ 'total_cnt' => $total_count,
|
|
|
+ 'active_cnt' => $active_count,
|
|
|
+ 'inactive_cnt' => $inactive_count,
|
|
|
+ 'active' => [ @compact_a_onu_info ],
|
|
|
+ 'inactive' => [ @compact_in_onu_info ],
|
|
|
+ );
|
|
|
+
|
|
|
+ return %res;
|
|
|
+};
|
|
|
+
|
|
|
+async bdcom_inspect => sub
|
|
|
+{
|
|
|
+ my $ip = shift;
|
|
|
+ my $login = shift;
|
|
|
+ my $password = shift;
|
|
|
+ my $tree = shift;
|
|
|
+
|
|
|
+ ############################
|
|
|
+
|
|
|
+ my $t = new telnet($ip);
|
|
|
+# $t->debug(1);
|
|
|
+ await bdcom_login($t, $login, $password);
|
|
|
+
|
|
|
+ #######################
|
|
|
+
|
|
|
+ my %onu_info = await bdcom_get_onu_info($t, $tree);
|
|
|
+
|
|
|
$t->close;
|
|
|
|
|
|
+ my $total_count = $onu_info{'total_cnt'};
|
|
|
+ my $active_count = $onu_info{'active_cnt'};
|
|
|
+ my $inactive_count = $onu_info{'inactive_cnt'};
|
|
|
+
|
|
|
my $res = "Всего: $total_count
|
|
|
Количество активных ONU: $active_count
|
|
|
Количество неактивных ONU: $inactive_count
|
|
|
\n";
|
|
|
|
|
|
- my @in_onu_info = bdcom_extract_onu_info(@inactive_onu);
|
|
|
- my @compact_in_onu_info = map( [bdcom_extract_onu_num(@$_[0]), @$_[1]], @in_onu_info );
|
|
|
- @compact_in_onu_info = map( join(" ", @$_), @compact_in_onu_info);
|
|
|
+ $res = $res . "Неактивные ONU:\n" . join("\n", map( join(" ", @$_), @{$onu_info{'inactive'}} ) ) . "\n\n";
|
|
|
|
|
|
- say Dumper @active_onu;
|
|
|
- my @a_onu_info = bdcom_extract_onu_info(@active_onu);
|
|
|
- say "test2";
|
|
|
- my @compact_a_onu_info = map( [bdcom_extract_onu_num(@$_[0]), @$_[1]], @a_onu_info );
|
|
|
- @compact_a_onu_info = map( join(" ", @$_), @compact_a_onu_info);
|
|
|
-
|
|
|
- $res = $res . "Неактивные ONU:\n" . join("\n", @compact_in_onu_info) . "\n\n";
|
|
|
-
|
|
|
- $res = $res . "Активные ONU:\n" . join("\n", @compact_a_onu_info);
|
|
|
+ $res = $res . "Активные ONU:\n" . join("\n", map( join(" ", @$_), @{$onu_info{'active'}} ) );
|
|
|
|
|
|
return $res;
|
|
|
};
|
|
|
@@ -123,6 +146,7 @@ async bdcom_onu => sub
|
|
|
await bdcom_login($t, $login, $password);
|
|
|
|
|
|
#######################
|
|
|
+
|
|
|
my @inactive_onu = await $t->cmd("show epon inactive-onu interface ePON 0/$tree");
|
|
|
$inactive_onu[0] =~ m|Interface EPON0/\d+ has bound (\d+)|;
|
|
|
my $inactive_count = $1 || "?";
|