import requests

import json

requests.packages.urllib3.disable_warnings()

##使用一个system总的URL分别获取到cpu、内存、存储三个url.所以只修改system的URL即可

##sel日志单独使用URL获取

class GetHostInfo(object):

def __init__(self,ipaddr,username,password):

self.URLprefix='https://'+ipaddr.strip()

self.username=username.strip()

self.password=password.strip()

global token ##同时存在4-5个token链接,每个token链接时间为5分钟,可以自己设置。

token=0

tokenurl=self.URLprefix+'/redfish/v1/Sessions' ##dell获取token的ID

print(tokenurl)

data={

"UserName":self.username,

"Password":self.password

}

header={

"Content-Type":"application/json"

}

re1=requests.post(tokenurl,json.dumps(data),headers=header,verify=False)

#re1=requests.post(tokenurl,auth=(self.username,self.password),headers=header,verify=False)

print (re1.status_code)

if re1.status_code == 201:

#print (re1.json())

#print (re1.headers)

print (re1.headers['X-Auth-Token'])

token=re1.headers['X-Auth-Token']

else:

pass

def GetInfo(self,URL_suffix): #定义总获取函数,传参url的后半部分。如'/redfish/v1/Systems/1/Memory'

urlset=self.URLprefix+URL_suffix

if token !=0:

header = {

"Content-Type":"application/json",

"X-Auth-Token":token

}

re1=requests.get(urlset,headers=header,verify=False)

print(re1.status_code)

return re1.json()

else:

pass

def Collect_Info(ipaddr,username,password):

dell740=GetHostInfo(ipaddr,username,password)

####total_system_URL收集/redfish/v1/Systems/System.Embedded.1

select_system_total = '/redfish/v1/Systems/System.Embedded.1'

#print('cpu_total', hw2288HV5.GetInfo(select_cpu_total))

temp_system_result1= dell740.GetInfo(select_system_total)

if isinstance(temp_system_result1,dict) and ('error' not in temp_system_result1.keys() ):

##处理cpu

cpu = temp_system_result1['Processors'][[email protected]'] ##获取CPU的URL

#print ('Processors',dell740.GetInfo(cpu))

cpu_result1 = dell740.GetInfo(cpu)

cpu_count = cpu_result1[[email protected]']

cpu_URLsuffix_list = [x[[email protected]'] for x in cpu_result1['Members']]

print('CPU count:', cpu_count)

for single_cpuurl in cpu_URLsuffix_list:

singlecpu_result2= dell740.GetInfo(single_cpuurl)

if isinstance(singlecpu_result2, dict) and ('error' not in singlecpu_result2.keys()):

#print ('singlecpu_result2',singlecpu_result2)

print('CPU single name:', singlecpu_result2['Name'])

print('CPU single ID:', singlecpu_result2['Id'])

print('CPU single TotalCores(cpus):', singlecpu_result2['TotalCores'])

print('CPU single Model(cpus):', singlecpu_result2['Model'])

###处理内存

memory = temp_system_result1['Memory'][[email protected]'] ##获取内存的URL

memory_result1 = dell740.GetInfo(memory)

memory_count = memory_result1[[email protected]']

memory_URLsuffix_list = [x[[email protected]'] for x in memory_result1['Members']]

print ('Memory count:',memory_count)

for single_memoryurl in memory_URLsuffix_list:

singlememory_result2 = dell740.GetInfo(single_memoryurl)

if isinstance(singlememory_result2, dict) and ('error' not in singlememory_result2.keys()):

#print('singlecpu_result2', singlememory_result2)

print('Memory name:', singlememory_result2['Name'])

print('Memory ID:', singlememory_result2['Id'])

print('Memory Size:', singlememory_result2['CapacityMiB'])

print('Memory Type:', singlememory_result2['MemoryDeviceType'])

##处理存储

storage = temp_system_result1['Storage'][[email protected]'] ##获取存储URL

#print ('storage',dell740.GetInfo(storage))

storage_result1 = dell740.GetInfo(storage)

storage_URLsuffix_list = [x[[email protected]'] for x in storage_result1['Members']]

for single_storageurl in storage_URLsuffix_list:

singlestorage_result2 = dell740.GetInfo(single_storageurl)

if isinstance(singlestorage_result2, dict) and ('error' not in singlestorage_result2.keys()):

#print('singlecpu_result2', singlestorage_result2)

disk_count=singlestorage_result2[[email protected]']

print('disk count:',disk_count)

print('storage name:',singlestorage_result2['Id'])

if disk_count >0: ##有的URL中disk为0,不需要去获取值

single_disk_URLsuffix_list = [x[[email protected]'] for x in singlestorage_result2['Drives']]

for disk_single in single_disk_URLsuffix_list:

single_disk_result1 = dell740.GetInfo(disk_single)

if isinstance(single_disk_result1, dict) and ('error' not in single_disk_result1.keys()):

#print ('single_disk_result1',single_disk_result1)

print('disk name:', single_disk_result1['Name'])

print('disk ID:', single_disk_result1['Id'])

print('disk CapacityBytes:', single_disk_result1['CapacityBytes'])

print('disk MediaType:', single_disk_result1['MediaType'])

else:

pass

##获取sel日志

logurlsuffix = '/redfish/v1/Managers/iDRAC.Embedded.1/Logs/Sel' ##日志sel

sellog=dell740.GetInfo(logurlsuffix)

if isinstance(sellog,dict) and ('error' not in sellog.keys() ):

print('SEL log:',sellog)

if __name__ == '__main__':

Collect_Info('10.252.209.7', 'username', 'password')

r740服务器增加内存,戴尔R740服务器获取cpu、内存、硬盘参数信息。相关推荐

  1. t310服务器装系统,戴尔T310服务器

    戴尔服务器PowerEdgeT310旨在通过提供比基本的入门级服务器更多的功能和更高的性能,满足不断成长的小型企业或远程办公室的需求.[1] 中文名 戴尔T310服务器外文名 Dell PowerEd ...

  2. 新硬盘做戴尔服务器raid设置,戴尔dell服务器做raid0操作

    介绍raid Redundant Arrays of Independent Drives简称raid中文名磁盘阵列 磁盘阵列是由很多块独立的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产 ...

  3. 戴尔服务器型号r730,戴尔 R730 服务器装 server 2016。

    服务器里面原装系统是 centos 7 ,服务器快递过来时 我没用root账号,(主要是主管忘了这台服务器用户名密码了). 需要用的系统是 server 2016 我这边就按正常的装机流程装机. 1, ...

  4. 戴尔服务器型号720xd,戴尔R720xd服务器系统安装

    animate.css(第三方动画使用方法) p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 17.0px Monaco; color: #a5b2b9 } ...

  5. 戴尔R730服务器增加内存,多功能存储密集型 戴尔R730xd拆解评测

    [IT168 真机拆解]2014年9月,戴尔基于英特尔E5-2600 v3处理器平台的新一代13G PowerEdge服务器在北京正式发布.首批戴尔13G PowerEdge服务器包括PowerEdg ...

  6. 戴尔R720服务器评测

    转自:http://server.zol.com.cn/345/3458599_all.html 戴尔12G经典机架服务器综述 随着服务器市场"同质化"产品增加,无论是性能.稳定性 ...

  7. 湖北性能优良戴尔服务器,超高密度的1U机架 戴尔R630服务器评测

    [IT168 评测]2014年9月,戴尔基于英特尔E5-2600 v3处理器平台的新一代13G PowerEdge服务器正式发布.首批戴尔13G PowerEdge服务器包括PowerEdge R73 ...

  8. 戴尔服务器r740硬盘指示灯,戴尔R740服务器获取cpu、内存、硬盘参数信息。

    戴尔R740服务器获取cpu.内存.硬盘参数信息.使用redfish协议,只使用了system的一个总URL即可获取所有参数. import requests import json requests ...

  9. dellr服务器性能测试软件,戴尔Poweredge R740服务器使用感受 | 小迪的生产力工具室...

    戴尔Poweredge R740服务器是戴尔第14代服务器产品的主流型号,是R730的升级替代品,这个机器怎么样呢,今天借着安装调试的机会感受了下. 戴尔 Poweredge R740 服务器是戴尔第 ...

最新文章

  1. ASP.NET--Menu控件
  2. 完全二叉树、平衡二叉树、二叉查找树(二叉排序树)
  3. hht时频谱 matlab 乱序_频谱、能量谱、功率谱的区别与联系
  4. 【干货】引爆公式,让你的APP成为下一个“爆款”!
  5. 在Linux PC上查看arm交叉编译的可执行文件依赖的动态库
  6. Oracle业务适合用PostgreSQL去O的一些评判标准
  7. c 求最小公倍数_公务员备考-最小公倍数和最小公约数问题
  8. 安装TCExam经验
  9. java http 返回码_【Java】Http返回状态码
  10. JavaFX:TouchGesture内存泄漏?
  11. Guava 是个风火轮之基础工具(4)
  12. 区块链原理设计与应用_我如何设计一个可以在6个月内吸引200K用户的区块链应用...
  13. html5 canvas图表,Chart.js基于Canvas画布的HTML5统计图表库 - 资源分享
  14. python标点符号全是英文吗_python 过滤中文、英文标点特殊符号
  15. 剑指offerJZ1 二维数组中的查找 C++ python
  16. 字符串过滤html代码
  17. Swift4.0 实现底部弹出框
  18. HarmonyOS助力构建“食用菌智慧农场”
  19. Kubernetes 集群部署 NFS-Subdir-External-Provisioner 存储插件
  20. java 字体变形_怎样用java绘制弧形文字

热门文章

  1. python os模块system_python 中 os.system 的本质 | 编程知识2
  2. arm优化编译参数选项解释
  3. html入门moz a,css 让文字不被选中之-moz-user-select 属性介绍
  4. anaconda打不开没反应_为什么账户总是有点击没对话?无非这2个原因
  5. 百度智能云开物再收“一个奖状”
  6. rust挖油机怎么整_挖掘机发动机进气管断裂该怎么办?
  7. format函数使用matlab,Matlab基本函数-format函数
  8. python mysql example_Python_Example_ Pycharm(python) 与 数据库(MySQL) 连接学习/示例
  9. Java基础语法十二 泛型程序设计
  10. 构建高可用ZooKeeper集群