Control-CLI-Extreme
view release on metacpan or search on metacpan
lib/Control/CLI/Extreme.pm view on Meta::CPAN
$devMorePage->{cmdString} = $devMorePage->{enable} ? 'enable' : 'disable' unless defined $devMorePage->{cmdString};
my ($ok, undef, $resref) = $self->poll_cmd($pkgsub, "terminal more $devMorePage->{cmdString}");
return $self->poll_return($ok) unless $ok;
return $self->poll_return($self->error("$pkgsub: Failed to set more-paging mode")) if !$$resref && defined $self->{$Package}{ATTRIB}{'model'};
$devMorePage->{stage}++; # Go to next section (8300) if we failed here and 'model' attrib not defined
$devMorePage->{stage}++ if $$resref; # Skip next section if we succeded
$devMorePage->{cmdString} = undef;
}
if ($devMorePage->{stage} < 3) { # 8300 NNCLI
$devMorePage->{cmdString} = $devMorePage->{enable} ? '' : 'no ' unless defined $devMorePage->{cmdString};
my ($ok, undef, $resref) = $self->cmdConfig($pkgsub, '', "$devMorePage->{cmdString}more");
return $self->poll_return($ok) unless $ok;
return $self->poll_return($self->error("$pkgsub: Failed to set more-paging mode")) unless $$resref;
}
}
else { # CLI
$devMorePage->{cmdString} = $devMorePage->{enable} ? 'true' : 'false' unless defined $devMorePage->{cmdString};
my ($ok, undef, $resref) = $self->poll_cmd($pkgsub, "config cli more $devMorePage->{cmdString}");
return $self->poll_return($ok) unless $ok;
return $self->poll_return($self->error("$pkgsub: Failed to set more-paging mode")) unless $$resref;
}
}
elsif ($familyType eq $Prm{sr}) {
$devMorePage->{cmdString} = $devMorePage->{enable} ? 23 : 0 unless defined $devMorePage->{cmdString};
my ($ok, undef, $resref) = $self->cmdConfig($pkgsub, '', "terminal length $devMorePage->{cmdString}");
return $self->poll_return($ok) unless $ok;
return $self->poll_return($self->error("$pkgsub: Failed to set more-paging mode")) unless $$resref;
}
elsif ($familyType eq $Prm{trpz}) {
$devMorePage->{cmdString} = $devMorePage->{enable} ? 23 : 0 unless defined $devMorePage->{cmdString};
my ($ok, undef, $resref) = $self->poll_cmd($pkgsub, "set length $devMorePage->{cmdString}");
return $self->poll_return($ok) unless $ok;
return $self->poll_return($self->error("$pkgsub: Failed to set more-paging mode")) unless $$resref;
}
elsif ($familyType eq $Prm{xirrus}) {
$devMorePage->{cmdString} = $devMorePage->{enable} ? 'enable' : 'disable' unless defined $devMorePage->{cmdString};
my ($ok, undef, $resref) = $self->poll_cmd($pkgsub, "more $devMorePage->{cmdString}");
return $self->poll_return($ok) unless $ok;
return $self->poll_return($self->error("$pkgsub: Failed to set more-paging mode")) unless $$resref;
}
elsif ($familyType eq $Prm{xos}) {
$devMorePage->{cmdString} = $devMorePage->{enable} ? 'enable' : 'disable' unless defined $devMorePage->{cmdString};
my ($ok, undef, $resref) = $self->poll_cmd($pkgsub, "$devMorePage->{cmdString} clipaging");
return $self->poll_return($ok) unless $ok;
return $self->poll_return($self->error("$pkgsub: Failed to set more-paging mode")) unless $$resref;
}
elsif ($familyType eq $Prm{s200}) {
$devMorePage->{cmdString} = $devMorePage->{enable} ? '24' : '0' unless defined $devMorePage->{cmdString};
my ($ok, undef, $resref) = $self->cmdPrivExec($pkgsub, undef, "terminal length $devMorePage->{cmdString}");
return $self->poll_return($ok) unless $ok;
return $self->poll_return($self->error("$pkgsub: Failed to set more-paging mode")) unless $$resref;
}
elsif ($familyType eq $Prm{isw}) {
$devMorePage->{cmdString} = $devMorePage->{enable} ? '24' : '0' unless defined $devMorePage->{cmdString};
my ($ok, undef, $resref) = $self->cmdPrivExec($pkgsub, undef, ($self->config_context ? 'do ':'') . "terminal length $devMorePage->{cmdString}");
return $self->poll_return($ok) unless $ok;
return $self->poll_return($self->error("$pkgsub: Failed to set more-paging mode")) unless $$resref;
}
elsif ($familyType eq $Prm{iswMarv}) {
$devMorePage->{cmdString} = $devMorePage->{enable} ? '1' : '0' unless defined $devMorePage->{cmdString};
my ($ok, undef, $resref) = $self->cmdConfig($pkgsub, '', "setenv pagefilter $devMorePage->{cmdString}");
return $self->poll_return($ok) unless $ok;
return $self->poll_return($self->error("$pkgsub: Failed to set more-paging mode")) unless $$resref;
}
elsif ($familyType eq $Prm{wing}) {
$devMorePage->{cmdString} = $devMorePage->{enable} ? '24' : '0' unless defined $devMorePage->{cmdString};
my ($ok, undef, $resref) = $self->cmdPrivExec($pkgsub, undef, ($self->config_context ? 'do ':'') . "terminal length $devMorePage->{cmdString}");
return $self->poll_return($ok) unless $ok;
return $self->poll_return($self->error("$pkgsub: Failed to set more-paging mode")) unless $$resref;
}
elsif ($familyType eq $Prm{slx}) {
$devMorePage->{cmdString} = $devMorePage->{enable} ? 'no length' : 'length 0' unless defined $devMorePage->{cmdString};
my ($ok, undef, $resref) = $self->cmdPrivExec($pkgsub, undef, ($self->config_context ? 'do ':'') . "terminal $devMorePage->{cmdString}");
return $self->poll_return($ok) unless $ok;
return $self->poll_return($self->error("$pkgsub: Failed to set more-paging mode")) unless $$resref;
}
elsif ($familyType eq $Prm{hive}) {
$devMorePage->{cmdString} = $devMorePage->{enable} ? '22' : '0' unless defined $devMorePage->{cmdString};
my ($ok, undef, $resref) = $self->poll_cmd($pkgsub, "console page $devMorePage->{cmdString}");
return $self->poll_return($ok) unless $ok;
return $self->poll_return($self->error("$pkgsub: Failed to set more-paging mode")) unless $$resref;
}
elsif ($familyType eq $Prm{eos}) {
$devMorePage->{cmdString} = $devMorePage->{enable} ? '23' : '0' unless defined $devMorePage->{cmdString};
my ($ok, undef, $resref) = $self->poll_cmd($pkgsub, "set length $devMorePage->{cmdString}");
return $self->poll_return($ok) unless $ok;
return $self->poll_return($self->error("$pkgsub: Failed to set more-paging mode")) unless $$resref;
}
elsif ($familyType eq $Prm{oneos}) {
$devMorePage->{cmdString} = $devMorePage->{enable} ? '24' : '0' unless defined $devMorePage->{cmdString};
my ($ok, undef, $resref) = $self->poll_cmd($pkgsub, "terminal length $devMorePage->{cmdString}");
return $self->poll_return($ok) unless $ok;
return $self->poll_return($self->error("$pkgsub: Failed to set more-paging mode")) unless $$resref;
}
else {
return $self->poll_return($self->error("$pkgsub: Cannot configure more paging on family type $familyType"));
}
return $self->poll_return(1);
}
sub poll_device_peer_cpu { # Method to handle device_peer_cpu for poll methods (used for both blocking & non-blocking modes)
my $self = shift;
my $pkgsub = shift;
my $pollsub = "${Package}::device_peer_cpu";
unless ($self->{POLLING}) { # Sanity check
my (undef, $fileName, $lineNumber) = caller;
croak "$pollsub (called from $fileName line $lineNumber) can only be used within polled methods";
}
unless (defined $self->{POLL}{$pollsub}) { # Only applicable if called from another method already in polling mode
my @validArgs = ('username', 'password', 'prompt_credentials', 'timeout', 'errmode');
my %args = parseMethodArgs($pkgsub, \@_, \@validArgs, 1);
if (@_ && !%args) { # Legacy syntax
($args{username}, $args{password}, $args{prompt_credentials}, $args{timeout}, $args{errmode}) = @_;
}
# In which case we need to setup the poll structure for them here (the main poll structure remains unchanged)
$self->{POLL}{$pollsub} = { # Populate structure with method arguments/storage
# Set method argument keys
username => defined $args{username} ? $args{username} : $self->username,
( run in 0.410 second using v1.01-cache-2.11-cpan-5511b514fd6 )