FIX: Allow configuration of IPMI privilege level
[ta/hw-detector.git] / src / hw_detector / hw_detect_lib.py
old mode 100644 (file)
new mode 100755 (executable)
index 4b46b66..268e02d
@@ -17,8 +17,8 @@ import hw_detector.hw_utils as hw_utils
 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)
@@ -32,8 +32,8 @@ def get_local_os_hd():
 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)
@@ -41,25 +41,26 @@ def 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)