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 )