ip = args.ip
user = args.user
passw = args.passwd
+ priv = args.priv
try:
- data = hw.get_hw_data(ip, user, passw, False)
+ data = hw.get_hw_data(ip, user, passw, priv, False)
except HWException as e:
data = "Detect failed: {}".format(str(e))
dump_data(data)
remote_group.add_argument('--ip', type=str, required=True, help='IP')
remote_group.add_argument('--user', type=str, required=True, help='User')
remote_group.add_argument('--passwd', type=str, required=True, help='Password')
-
+ remote_group.add_argument('--priv', type=str, required=False, default='ADMINISTRATOR', help='Privilege level (default: ADMINISTRATOR)')
local_group.set_defaults(func=local_dump)
remote_group.set_defaults(func=remote_dump)
def get_local_hw_type():
return hw_utils.get_type()
-def get_hw_type(ipmi_addr, ipmi_user, ipmi_pass, detect_virtual=True):
- return hw_utils.get_type(ipmi_addr, ipmi_user, ipmi_pass, detect_virtual)
+def get_hw_type(ipmi_addr, ipmi_user, ipmi_pass, ipmi_priv_level='ADMINISTRATOR', detect_virtual=True):
+ return hw_utils.get_type(ipmi_addr, ipmi_user, ipmi_pass, ipmi_priv_level, detect_virtual)
def get_os_hd(hw_type):
return hw_utils.os_hd(hw_type)
def get_local_osd_hd():
return get_hd_with_usage(get_local_hw_type(), 'osd')
-def get_remote_os_hd(ipmi_addr, ipmi_user, ipmi_pass, detect_virtual=True):
- return get_os_hd(get_hw_type(ipmi_addr, ipmi_user, ipmi_pass, detect_virtual))
+def get_remote_os_hd(ipmi_addr, ipmi_user, ipmi_pass, ipmi_priv_level='ADMINISTRATOR', detect_virtual=True):
+ return get_os_hd(get_hw_type(ipmi_addr, ipmi_user, ipmi_pass, ipmi_priv_level, detect_virtual))
def get_vendor(hw_type):
return hw_utils.get_vendor(hw_type)
def get_product_family(hw_type):
return hw_utils.get_product_family(hw_type)
-def _populate_data(hw_type, data_source, ipmi_addr=None, ipmi_user=None, ipmi_pass=None, detect_virtual=True):
+def _populate_data(hw_type, data_source, ipmi_addr=None, ipmi_user=None, ipmi_pass=None, ipmi_priv_level='ADMINISTRATOR', detect_virtual=True):
data = {}
data['hw_type'] = hw_type
data['os_hd'] = get_os_hd(hw_type)
data['osd_hd'] = get_hd_with_usage(hw_type, 'osd')
data['vendor'] = get_vendor(hw_type)
data['product_family'] = get_product_family(hw_type)
- data['info'] = hw_utils.get_info(ipmi_addr, ipmi_user, ipmi_pass, detect_virtual)
+ data['info'] = hw_utils.get_info(ipmi_addr, ipmi_user, ipmi_pass, ipmi_priv_level, detect_virtual)
data['data_source'] = data_source
if data_source == 'remote':
data['ipmi_addr'] = ipmi_addr
data['ipmi_user'] = ipmi_user
data['ipmi_pass'] = ipmi_pass
+ data['ipmi_priv_level'] = ipmi_priv_level
return data
def get_local_hw_data():
hw_type = get_local_hw_type()
return _populate_data(hw_type, 'local')
-def get_hw_data(ipmi_addr, ipmi_user, ipmi_pass, detect_virtual=True):
- hw_type = get_hw_type(ipmi_addr, ipmi_user, ipmi_pass, detect_virtual)
- return _populate_data(hw_type, 'remote', ipmi_addr, ipmi_user, ipmi_pass, detect_virtual)
+def get_hw_data(ipmi_addr, ipmi_user, ipmi_pass, ipmi_priv_level='ADMINISTRATOR', detect_virtual=True):
+ hw_type = get_hw_type(ipmi_addr, ipmi_user, ipmi_pass, ipmi_priv_level, detect_virtual)
+ return _populate_data(hw_type, 'remote', ipmi_addr, ipmi_user, ipmi_pass, ipmi_priv_level, detect_virtual)
from hw_detector.hw_exception import HWException
-def get_ipmi_info(ipmi_addr, ipmi_user, ipmi_pass):
- command = "ipmitool -I lanplus -H %s -U %s -P %s fru print 0" % (ipmi_addr, ipmi_user, ipmi_pass)
+def get_ipmi_info(ipmi_addr, ipmi_user, ipmi_pass, ipmi_priv_level='ADMINISTRATOR'):
+ command = "ipmitool -I lanplus -H %s -U %s -P %s -L %s fru print 0" % (ipmi_addr, ipmi_user, ipmi_pass, ipmi_priv_level)
info = ipmi_info(command)
- command = "ipmitool -I lanplus -H %s -U %s -P %s lan print" % (ipmi_addr, ipmi_user, ipmi_pass)
+ command = "ipmitool -I lanplus -H %s -U %s -P %s -L %s lan print" % (ipmi_addr, ipmi_user, ipmi_pass, ipmi_priv_level)
info.update(ipmi_info(command))
return info
return 'Unknown'
-def get_info(ipmi_addr=None, ipmi_user=None, ipmi_pass=None, detect_virtual=True):
+def get_info(ipmi_addr=None, ipmi_user=None, ipmi_pass=None, ipmi_priv_level='ADMINISTRATOR', detect_virtual=True):
global info
if is_virtual(detect_virtual):
return {'Board Product' : 'VIRTUAL'}
if info.get(ipmi_addr, False):
return info[ipmi_addr]
if ipmi_addr:
- info[ipmi_addr] = hw_ipmi_lib.get_ipmi_info(ipmi_addr, ipmi_user, ipmi_pass)
+ info[ipmi_addr] = hw_ipmi_lib.get_ipmi_info(ipmi_addr, ipmi_user, ipmi_pass, ipmi_priv_level)
else:
return hw_ipmi_lib.get_local_ipmi_info()
if ipmi_addr and not info.get(ipmi_addr):
return info[ipmi_addr]
-def get_type(ipmi_addr=None, ipmi_user=None, ipmi_pass=None, detect_virtual=True):
- info = get_info(ipmi_addr, ipmi_user, ipmi_pass, detect_virtual)
+def get_type(ipmi_addr=None, ipmi_user=None, ipmi_pass=None, ipmi_priv_level='ADMINISTRATOR', detect_virtual=True):
+ info = get_info(ipmi_addr, ipmi_user, ipmi_pass, ipmi_priv_level, detect_virtual)
if not info:
return 'Unknown'