YAGNI - remove store session plain text
This commit is contained in:
		
							
								
								
									
										76
									
								
								Info.pm
									
									
									
									
									
								
							
							
						
						
									
										76
									
								
								Info.pm
									
									
									
									
									
								
							| @@ -1106,16 +1106,6 @@ sub new { | |||||||
|         delete $sess_args{IgnoreNetSNMPConf}; |         delete $sess_args{IgnoreNetSNMPConf}; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     if ( exists $args{StoreSession} ) { |  | ||||||
|         $new_obj->{StoreSession} = ($args{StoreSession} ? 1 : 0); |  | ||||||
|         delete $sess_args{StoreSession}; |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     if ( defined $args{SessionDataFile} ) { |  | ||||||
|         $new_obj->{SessionDataFile} = $args{SessionDataFile}; |  | ||||||
|         delete $sess_args{SessionDataFile}; |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     my $sess = undef; |     my $sess = undef; | ||||||
|     if ( defined $args{Session} ) { |     if ( defined $args{Session} ) { | ||||||
|         $sess = $args{Session}; |         $sess = $args{Session}; | ||||||
| @@ -1201,8 +1191,6 @@ sub update { | |||||||
|     delete $sess_args{BulkRepeaters}; |     delete $sess_args{BulkRepeaters}; | ||||||
|     delete $sess_args{BulkWalk}; |     delete $sess_args{BulkWalk}; | ||||||
|     delete $sess_args{LoopDetect}; |     delete $sess_args{LoopDetect}; | ||||||
|     delete $sess_args{StoreSession}; |  | ||||||
|     delete $sess_args{SessionDataFile}; |  | ||||||
|     delete $sess_args{IgnoreNetSNMPConf}; |     delete $sess_args{IgnoreNetSNMPConf}; | ||||||
|     delete $sess_args{BigInt}; |     delete $sess_args{BigInt}; | ||||||
|     delete $sess_args{MibDirs}; |     delete $sess_args{MibDirs}; | ||||||
| @@ -3567,12 +3555,11 @@ sub _global { | |||||||
|             }  |             }  | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         # Let's get the MIB Module and leaf name along with the OID |         if ( $self->debug() ) { | ||||||
|         my $qual_leaf = SNMP::translateObj($oid,0,1) || ''; |             # Let's get the MIB Module and leaf name along with the OID | ||||||
|  |             my $qual_leaf = SNMP::translateObj($oid,0,1) || ''; | ||||||
|         print "SNMP::Info::_global $method : $qual_leaf : $oid\n" |             print "SNMP::Info::_global $method : $qual_leaf : $oid\n"; | ||||||
|             if $self->debug(); |         } | ||||||
|  |  | ||||||
|         my $val = $sess->get($oid); |         my $val = $sess->get($oid); | ||||||
|  |  | ||||||
|         # Mark as gotten. Even if it fails below, we don't want to keep failing. |         # Mark as gotten. Even if it fails below, we don't want to keep failing. | ||||||
| @@ -3595,11 +3582,11 @@ sub _global { | |||||||
|         } |         } | ||||||
|  |  | ||||||
|         # Save Cached Value |         # Save Cached Value | ||||||
|         $self->_cache($qual_leaf, $attr, $val); |         $self->_cache($attr, $val); | ||||||
|  |  | ||||||
|         # Data Munging |         # Data Munging | ||||||
|         if ( !$raw ) { |         if ( !$raw ) { | ||||||
|             $self->_munge($attr, $val); |             $val = $self->_munge($attr, $val); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         return $val; |         return $val; | ||||||
| @@ -4055,7 +4042,7 @@ sub _load_attr { | |||||||
|  |  | ||||||
|         # Cache data if we are not getting partial data: |         # Cache data if we are not getting partial data: | ||||||
|         if ( !defined $partial ) { |         if ( !defined $partial ) { | ||||||
|             $self->_cache($qual_leaf, $attr, $localstore); |             $self->_cache($attr, $localstore); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         # Data Munging |         # Data Munging | ||||||
| @@ -4156,22 +4143,19 @@ sub modify_port_list { | |||||||
|     return pack( "B*", join( '', @$portlist ) ); |     return pack( "B*", join( '', @$portlist ) ); | ||||||
| } | } | ||||||
|  |  | ||||||
| =item $info->_cache(qual_leaf, attr, data) | =item $info->_cache(attr, data) | ||||||
|  |  | ||||||
| Cache retrieved data so that if it's asked for again, we use the cache instead | Cache retrieved data so that if it's asked for again, we use the cache instead | ||||||
| of going back to Net-SNMP. Data is cached inside the blessed hashref C<$self>. | of going back to Net-SNMP. Data is cached inside the blessed hashref C<$self>. | ||||||
|  |  | ||||||
| Accepts the qualified leaf, unqualified leaf, and value. Does not return | Accepts the leaf and value (scalar, or hashref for a table). Does not return | ||||||
| anything useful. | anything useful. | ||||||
|  |  | ||||||
| See also C<< $info->store_session() >> which allows dumping raw received data |  | ||||||
| into a text file for debugging or troubleshooting. |  | ||||||
|  |  | ||||||
| =cut | =cut | ||||||
|  |  | ||||||
| sub _cache { | sub _cache { | ||||||
|     my $self = shift; |     my $self = shift; | ||||||
|     my ($qual_leaf, $attr, $data) = @_; |     my ($attr, $data) = @_; | ||||||
|     my $store = $self->store(); |     my $store = $self->store(); | ||||||
|  |  | ||||||
|     if (ref {} eq ref $data) { |     if (ref {} eq ref $data) { | ||||||
| @@ -4181,8 +4165,6 @@ sub _cache { | |||||||
|     else { |     else { | ||||||
|         $self->{"_$attr"} = $data; |         $self->{"_$attr"} = $data; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     $self->store_session($qual_leaf, $data); |  | ||||||
| } | } | ||||||
|  |  | ||||||
| =item $info->_munge(attr, data) | =item $info->_munge(attr, data) | ||||||
| @@ -4219,42 +4201,6 @@ sub _munge { | |||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
| =item $info->store_session(leaf, data) |  | ||||||
|  |  | ||||||
| As well as maintaining an internal cache of retrieved data, SNMP::Info can |  | ||||||
| store SNMP responses to a file on disk. This is used for testing and |  | ||||||
| development work. |  | ||||||
|  |  | ||||||
| This feature is enabled by setting the C<StoreSession> parameter to true in |  | ||||||
| C<new()>. Data is written to a file named "C<< <DestHost>.txt >>" unless you |  | ||||||
| pass a name in the C<SessionDataFile> parameter. On instantiation SNMP::Info |  | ||||||
| will overwrite any pre-existing file. |  | ||||||
|  |  | ||||||
| The data stored by this method is a simple "leaf = val" text format, and is |  | ||||||
| not retrieved by any part of SNMP::Info. To have the store also be retrieved |  | ||||||
| and thereby allow SNMP::Info to operate "offline", see L<SNMP::Info::Offline>. |  | ||||||
|  |  | ||||||
| =cut |  | ||||||
|  |  | ||||||
| sub store_session { |  | ||||||
|     my ($self, $leaf, $data) = @_; |  | ||||||
|     return unless $self->{StoreSession} and $leaf and $data; |  | ||||||
|  |  | ||||||
|     if (!exists $self->{SessionData}) { |  | ||||||
|         $self->{SessionDataFile} ||= $self->session->{DestHost} .'.txt'; |  | ||||||
|         open $self->{SessionData}, '>', $self->{SessionDataFile} |  | ||||||
|             or return; |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     if (ref {} eq ref $data) { |  | ||||||
|         print {$self->{SessionData}} "${leaf}.$_ = $data->{$_}\n" |  | ||||||
|             for sort keys %$data; |  | ||||||
|     } |  | ||||||
|     else { |  | ||||||
|         print {$self->{SessionData}} "$leaf = $data\n"; |  | ||||||
|     } |  | ||||||
| } |  | ||||||
|  |  | ||||||
| =item _validate_autoload_method(method) | =item _validate_autoload_method(method) | ||||||
|  |  | ||||||
| Used internally by AUTOLOAD to validate that a dynamic method should be | Used internally by AUTOLOAD to validate that a dynamic method should be | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user