mirror of
				https://github.com/xcat2/xcat-core.git
				synced 2025-10-31 11:22:27 +00:00 
			
		
		
		
	Increase discovery performance and resolve stale blade macmap issue.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@272 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This commit is contained in:
		| @@ -79,3 +79,5 @@ if [ -d /proc/device-tree/lhea* ]; then | ||||
|             done | ||||
| fi | ||||
|  | ||||
| #Give 10 seconds for things to quiesce. | ||||
| sleep 10 | ||||
|   | ||||
| @@ -36,6 +36,7 @@ my %usage = ( | ||||
|     "rscan" => "Usage: rscan <noderange> [-w][-x|-z]" | ||||
| ); | ||||
| my %macmap; #Store responses from rinv for discovery | ||||
| my $macmaptimestamp; #reflect freshness of cache | ||||
| my $mmprimoid = '1.3.6.1.4.1.2.3.51.2.22.5.1.1.4';#mmPrimary | ||||
| my $beaconoid = '1.3.6.1.4.1.2.3.51.2.2.8.2.1.1.11'; #ledBladeIdentity | ||||
| my $powerstatoid = '1.3.6.1.4.1.2.3.51.2.22.1.5.1.1.4';#bladePowerState | ||||
| @@ -885,7 +886,13 @@ sub process_request { | ||||
|     unless ($mac) { return }; | ||||
|  | ||||
|     #Only refresh the the cache when the request permits and no useful answer | ||||
|     unless ($request->{cacheonly}->[0] or $macmap{$mac}) {  | ||||
|     if ($macmaptimestamp < (time() - 300)) { #after five minutes, invalidate cache | ||||
|        %macmap = (); | ||||
|     } | ||||
|      | ||||
|     unless ($request->{cacheonly}->[0] or $macmap{$mac} or $macmaptimestamp > (time() - 20)) { #do not refresh cache if requested not to, if it has an entry, or is recent | ||||
|       %macmap = (); | ||||
|       $macmaptimestamp=time(); | ||||
|       process_request(\%invreq,\&fillresps); | ||||
|     } | ||||
|     unless ($macmap{$mac}) {  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user