mirror of
				https://github.com/xcat2/xcat-core.git
				synced 2025-11-03 21:02:34 +00:00 
			
		
		
		
	modify output format of rvitals leds
This commit is contained in:
		@@ -34,27 +34,26 @@ class OpenBMCSensorTask(ParallelNodesCommand):
 | 
			
		||||
 | 
			
		||||
    def _get_beacon_info(self, beacon_dict, display_type='full'):
 | 
			
		||||
 | 
			
		||||
        led_label = 'LEDs'
 | 
			
		||||
        info_list = []
 | 
			
		||||
        # display_type == 'full'    for detailed output for 'rvitals leds' command
 | 
			
		||||
        # display_type == 'compact' for compact  output for 'rbeacon stat' command
 | 
			
		||||
        if display_type == 'compact':
 | 
			
		||||
            info_list.append('Front:%s Rear:%s' % (beacon_dict.get('front_id'), beacon_dict.get('rear_id', 'N/A'))) 
 | 
			
		||||
            info_list.append('Front:%s Rear:%s' % (beacon_dict.get('front_id'), beacon_dict.get('rear_id', 'N/A')))
 | 
			
		||||
            return info_list
 | 
			
		||||
        info_list.append('Front . . . . . : Power:%s Fault:%s Identify:%s' %
 | 
			
		||||
                         (beacon_dict.get('front_power', 'N/A'),
 | 
			
		||||
                          beacon_dict.get('front_fault', 'N/A'),
 | 
			
		||||
                          beacon_dict.get('front_id', 'N/A')))
 | 
			
		||||
        if (beacon_dict.get('fan0', 'N/A') == 'Off' and beacon_dict.get('fan1', 'N/A') == 'Off' and
 | 
			
		||||
            beacon_dict.get('fan2', 'N/A') == 'Off' and beacon_dict.get('fan3', 'N/A') == 'Off'):
 | 
			
		||||
            info_list.append('Front Fans  . . : No LEDs On')
 | 
			
		||||
        else:
 | 
			
		||||
            info_list.append('Front Fans  . . : fan0:%s fan1:%s fan2:%s fan3:%s' %
 | 
			
		||||
                             (beacon_dict.get('fan0', 'N/A'), beacon_dict.get('fan1', 'N/A'),
 | 
			
		||||
                              beacon_dict.get('fan2', 'N/A'), beacon_dict.get('fan3', 'N/A')))
 | 
			
		||||
        info_list.append('Rear  . . . . . : Power:%s Fault:%s Identify:%s' %
 | 
			
		||||
                         (beacon_dict.get('rear_power', 'N/A'),
 | 
			
		||||
                          beacon_dict.get('rear_fault', 'N/A'),
 | 
			
		||||
                          beacon_dict.get('rear_id', 'N/A')))
 | 
			
		||||
 | 
			
		||||
        for i in range(4):
 | 
			
		||||
            info_list.append('%s Fan%s: %s' % (led_label, i, beacon_dict.get('fan' + str(i), 'N/A')))
 | 
			
		||||
 | 
			
		||||
        led_types = ('Fault', 'Identify', 'Power')
 | 
			
		||||
        for i in ('Front', 'Rear'):
 | 
			
		||||
            for led_type in led_types:
 | 
			
		||||
                tmp_type = led_type.lower()
 | 
			
		||||
                if led_type == 'Identify':
 | 
			
		||||
                    tmp_type = 'id'
 | 
			
		||||
                key_type = i.lower() + '_' + tmp_type
 | 
			
		||||
                info_list.append('%s %s %s: %s' % (led_label, i, led_type, beacon_dict.get(key_type, 'N/A')))
 | 
			
		||||
 | 
			
		||||
        return info_list
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1863,6 +1863,10 @@ sub parse_command_status {
 | 
			
		||||
            $next_status{LOGIN_RESPONSE} = "RVITALS_REQUEST";
 | 
			
		||||
            $next_status{RVITALS_REQUEST} = "RVITALS_RESPONSE";
 | 
			
		||||
            $status_info{RVITALS_RESPONSE}{argv} = "$subcommand";
 | 
			
		||||
            if ($subcommand eq "all") {
 | 
			
		||||
                $next_status{RVITALS_RESPONSE} = "RVITALS_LEDS_REQUEST";
 | 
			
		||||
                $next_status{RVITALS_LEDS_REQUEST} = "RVITALS_LEDS_RESPONSE";
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -4150,17 +4154,23 @@ sub rvitals_response {
 | 
			
		||||
            push (@sorted_output, $content_info);
 | 
			
		||||
        } else {
 | 
			
		||||
            # Full output for "rvitals leds" command
 | 
			
		||||
            $content_info = "Front . . . . . : Power:$leds{front_power} Fault:$leds{front_fault} Identify:$leds{front_id}";
 | 
			
		||||
            push (@sorted_output, $content_info);
 | 
			
		||||
            $content_info = "Rear  . . . . . : Power:$leds{rear_power} Fault:$leds{rear_fault} Identify:$leds{rear_id}";
 | 
			
		||||
            push (@sorted_output, $content_info);
 | 
			
		||||
            # Fans 
 | 
			
		||||
            if ($leds{fan0} =~ "Off" and $leds{fan1} =~ "Off" and $leds{fan2} eq "Off" and $leds{fan3} eq "Off") {
 | 
			
		||||
                $content_info = "Front Fans  . . : No LEDs On";
 | 
			
		||||
            } else { 
 | 
			
		||||
                $content_info = "Front Fans  . . : fan0:$leds{fan0} fan1:$leds{fan1} fan2:$leds{fan2} fan3:$leds{fan3}";
 | 
			
		||||
            } 
 | 
			
		||||
            push (@sorted_output, $content_info);
 | 
			
		||||
            my @front_rear = ("Front", "Rear");
 | 
			
		||||
            my @led_types = ("Power", "Fault", "Identify");
 | 
			
		||||
            foreach my $i (@front_rear) {
 | 
			
		||||
                foreach my $led_type (@led_types) {
 | 
			
		||||
                    my $tmp_type = lc($led_type);
 | 
			
		||||
                    $tmp_type = "id" if ($led_type eq "Identify");
 | 
			
		||||
                    my $key_type = lc($i) . "_" . $tmp_type;
 | 
			
		||||
                    $content_info = "LEDs $i $led_type: $leds{$key_type}";
 | 
			
		||||
                    push (@sorted_output, $content_info);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            # Fans
 | 
			
		||||
            for (my $i = 0; $i < 4; $i++) {
 | 
			
		||||
                my $tmp_key = "fan" . $i;
 | 
			
		||||
                $content_info = "LEDs Fan$i: $leds{$tmp_key}";
 | 
			
		||||
                push (@sorted_output, $content_info);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user