Skip to content
This repository has been archived by the owner on Jan 16, 2019. It is now read-only.

Commit

Permalink
Fix temperature command failing issue
Browse files Browse the repository at this point in the history
  • Loading branch information
ktbyers committed Oct 9, 2017
1 parent 2a5c1c5 commit 60fa050
Show file tree
Hide file tree
Showing 5 changed files with 353 additions and 11 deletions.
27 changes: 16 additions & 11 deletions napalm_ios/ios.py
Original file line number Diff line number Diff line change
Expand Up @@ -1554,18 +1554,23 @@ def get_environment(self):
environment['memory']['used_ram'] = used_mem
environment['memory']['available_ram'] = free_mem

output = self._send_command(temp_cmd)
for line in output.splitlines():
if 'System Temperature Value' in line:
system_temp = float(line.split(':')[1].split()[0])
elif 'Yellow Threshold' in line:
system_temp_alert = float(line.split(':')[1].split()[0])
elif 'Red Threshold' in line:
system_temp_crit = float(line.split(':')[1].split()[0])
environment.setdefault('temperature', {})
env_value = {'is_alert': system_temp >= system_temp_alert,
'is_critical': system_temp >= system_temp_crit, 'temperature': system_temp}
environment['temperature']['system'] = env_value
# The 'show env temperature status' is not ubiquitous in Cisco IOS
output = self._send_command(temp_cmd)
if '% Invalid' not in output:
for line in output.splitlines():
if 'System Temperature Value' in line:
system_temp = float(line.split(':')[1].split()[0])
elif 'Yellow Threshold' in line:
system_temp_alert = float(line.split(':')[1].split()[0])
elif 'Red Threshold' in line:
system_temp_crit = float(line.split(':')[1].split()[0])
env_value = {'is_alert': system_temp >= system_temp_alert,
'is_critical': system_temp >= system_temp_crit, 'temperature': system_temp}
environment['temperature']['system'] = env_value
else:
env_value = {'is_alert': False, 'is_critical': False, 'temperature': -1.0}
environment['temperature']['invalid'] = env_value

# Initialize 'power' and 'fan' to default values (not implemented)
environment.setdefault('power', {})
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
{
"fans": {
"invalid": {
"status": true
}
},
"temperature": {
"invalid": {
"is_alert": false,
"temperature": -1.0,
"is_critical": false
}
},
"cpu": {
"0": {
"%usage": 6.0
}
},
"power": {
"invalid": {
"status": true,
"output": -1.0,
"capacity": -1.0
}
},
"memory": {
"available_ram": 4826256,
"used_ram": 20873476
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
^
% Invalid input detected at '^' marker.

Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Head Total(b) Used(b) Free(b) Lowest(b) Largest(b)
Processor 277B88C 21505428 18498044 3007384 2136352 2061756
I/O 2C00000 4194304 2375432 1818872 1581372 1817552
Driver te 18C0000 1048576 44 1048532 1048532 1048532
Loading

0 comments on commit 60fa050

Please sign in to comment.