2
0
mirror of https://opendev.org/x/pyghmi synced 2026-06-19 18:11:00 +00:00

Fix up error status situation

This commit is contained in:
Jarrod Johnson
2013-05-20 10:49:59 -04:00
parent da9f801c1f
commit 785e712763
2 changed files with 15 additions and 7 deletions
+9 -3
View File
@@ -33,11 +33,11 @@ rmcp_codes = {
}
command_completion_codes = {
0x39: {
(7,0x39): {
0x81: "Invalid user name",
0x82: "Null user disabled",
},
0x3a: {
(7,0x3a): {
0x81: "No available login slots",
0x82: "No available login slots for requested user",
0x83: "No slot available with requested privilege level",
@@ -45,11 +45,17 @@ command_completion_codes = {
0x85: "Invalid session ID",
0x86: "Requested privilege level exceeds requested user permissions on this channel",
},
0x3b: {
(7,0x3b): { #Set session privilege level
0x80: "User is not allowed requested priveleg level",
0x81: "Requested privilege level is not allowed over this channel",
0x82: "Cannot disable user level authentication",
},
(1,8): { #set system boot options
0x80: "Parameter not supported",
0x81: "Attempt to set set 'set in progress' when not 'set complete'",
0x82: "Attempt to write read-only parameter",
}
}
ipmi_completion_codes = {
+6 -4
View File
@@ -43,11 +43,12 @@ def get_ipmi_error(response,suffix=""):
if 'error' in response:
return response['error']+suffix
code = response['code']
command = response['commmand']
command = response['command']
netfn = response['netfn']
if code == 0:
return False
if command in command_completion_codes and code in command_completion_codes[command]:
return command_completion_codes[command][code]+suffix
if (netfn,command) in command_completion_codes and code in command_completion_codes[(netfn,command)]:
return command_completion_codes[(netfn,command)][code]+suffix
elif code in ipmi_completion_codes:
return ipmi_completion_codes[code]+suffix
else:
@@ -625,7 +626,7 @@ class ipmi_session:
response['netfn'] = payload[1]>>2
del payload[0:5] # remove header of rsaddr/netfn/lun/checksum/rq/seq/lun
del payload[-1] # remove the trailing checksum
response['commmand']=payload[0]
response['command']=payload[0]
response['code']=payload[1]
del payload[0:2]
response['data']=payload
@@ -674,3 +675,4 @@ if __name__ == "__main__":
import sys
ipmis = ipmi_session(bmc=sys.argv[1],userid=sys.argv[2],password=os.environ['IPMIPASS'])
print ipmis.raw_command(command=2,data=[1],netfn=0)
print get_ipmi_error({'command':8,'code':128,'netfn':1})