def process(self): raw_data = shell("dmidecode -t 17") raw_list = raw_data.split("\n") raw_ram_list = [] item_list = [] for line in raw_list: if line.startswith("Memory Device"): raw_ram_list.append(item_list) item_list = [] else: item_list.append(line.strip()) ram_list = [] for item in raw_ram_list: item_ram_size = 0 ram_item_to_dic = {} for i in item: # print i data = i.split(":") if len(data) == 2: key, v = data if key == "Size": # print key ,v if v.strip() != "No Module Installed": ram_item_to_dic["capacity"] = v.split()[0].strip( ) # e.g split "1024 MB" item_ram_size = int(v.split()[0]) # print item_ram_size else: ram_item_to_dic["capacity"] = 0 if key == "Type": ram_item_to_dic["model"] = v.strip() if key == "Manufacturer": ram_item_to_dic["manufactory"] = v.strip() if key == "Serial Number": ram_item_to_dic["sn"] = v.strip() if key == "Asset Tag": ram_item_to_dic["asset_tag"] = v.strip() if key == "Locator": ram_item_to_dic["slot"] = v.strip() if item_ram_size == 0: # empty slot , need to report this pass else: ram_list.append(ram_item_to_dic) raw_total_size = shell("cat /proc/meminfo|grep MemTotal ").split(":") ram_data = {"ram": ram_list} if len(raw_total_size) == 2: # correct total_mb_size = int(raw_total_size[1].split()[0]) / 1024 ram_data["ram_size"] = total_mb_size return ram_data
def process(self): base_cmd = "cat /proc/cpuinfo" raw_data = { "cpu_moel": "%s |grep 'model name' |head -1 " % base_cmd, "cpu_count": "%s |grep 'processor'|wc -l" % base_cmd, "cpu_core_count": "%s |grep 'cpu cores' |awk -F: '{SUM +=$2} END {print SUM}'" % base_cmd, } for k, cmd in raw_data.items(): cmd_res = shell(cmd) raw_data[k] = cmd_res.strip() data = { "cpu_count": raw_data["cpu_count"], "cpu_core_count": raw_data["cpu_core_count"] } cpu_model = raw_data["cpu_model"].split(":") if len(cpu_model) > 1: data["cpu_model"] = cpu_model[1].strip() else: data["cpu_model"] = -1 return data
def pocess(self): filter_keys = [ "Manufacturer", "Serial Number", "Product Name", "UUID", "Wake-up Type" ] raw_data = {} for key in filter_keys: try: cmd_res = shell("dmidecode -t system|grep '%s'" % key) cmd_res = cmd_res.strip() res_to_list = cmd_res.split(":") if len(res_to_list) > 1: # the second one is wanted string raw_data[key] = res_to_list[1].strip() else: raw_data[key] = -1 except Exception as e: print(e) raw_data[key] = -2 # means cmd went wrong data = {"asset_type": "server"} data["manufactory"] = raw_data["Manufacturer"] data["sn"] = raw_data["Serial Number"] data["model"] = raw_data["Product Name"] data["uuid"] = raw_data["UUID"] data["os"] = platform.platform() return data
def process(self): raw_data = shell("ifconfig -a") raw_data = raw_data.split("\n") nic_dic = {} next_ip_line = False last_mac_addr = None for line in raw_data: if next_ip_line: # print last_mac_addr # print line #, last_mac_addr.strip() next_ip_line = False nic_name = last_mac_addr.split()[0] mac_addr = last_mac_addr.split("HWaddr")[1].strip() raw_ip_addr = line.split("inet addr:") raw_bcast = line.split("Bcast:") raw_netmask = line.split("Mask:") if len(raw_ip_addr) > 1: # has addr ip_addr = raw_ip_addr[1].split()[0] network = raw_bcast[1].split()[0] netmask = raw_netmask[1].split()[0] # print(ip_addr,network,netmask) else: ip_addr = None network = None netmask = None if mac_addr not in nic_dic: nic_dic[mac_addr] = { "name": nic_name, "macaddress": mac_addr, "netmask": netmask, "network": network, "bonding": 0, "model": "unknown", "ipaddress": ip_addr, } else: # mac already exist , must be boding address if "%s_bonding_addr" % (mac_addr) not in nic_dic: random_mac_addr = "%s_bonding_addr" % (mac_addr) else: random_mac_addr = "%s_bonding_addr2" % (mac_addr) nic_dic[random_mac_addr] = { "name": nic_name, "macaddress": random_mac_addr, "netmask": netmask, "network": network, "bonding": 1, "model": "unknown", "ipaddress": ip_addr, } if "HWaddr" in line: # print line next_ip_line = True last_mac_addr = line nic_list = [] for k, v in nic_dic.items(): nic_list.append(v) return nic_list
def linux(self): result = {"physical_disk_driver": []} try: script_path = os.path.dirname(os.path.abspath(__file__)) shell_command = "sudo %s/MegaCli -PDList -aALL" % script_path output = shell(shell_command) result["physical_disk_driver"] = self.parse(output[1]) except Exception as e: result["error"] = e return result