华为2288 hv5获取cpu、内存,存储等参数信息

  

华为2288 hv5获取cpu、内存,存储等参数信息,采用鲑协议。华为的技术支撑团队很给力,获取资料很全面,讲解也很到位。所以第一个鲑案例就是用华为。

  
 <代码>导入请求
  进口json
  requests.packages.urllib3.disable_warnings ()
  
  # # #原理:cpu、内存,存储分别使用不同的url获取到值,如url不一致只分别修改对应的第一个url即可,后面的详细参数的url函数自动提取
  # #选取日志单独使用URL获取
  
  类GetHostInfo(对象):
  def __init__(自我,ipaddr,用户名、密码):
  self.URLprefix=' https://' + ipaddr.strip ()
  self.username=username.strip ()
  self.password=password.strip ()
  全球标记# #同时存在4 - 5个令牌链接,每个令牌链接时间为5分钟,可以自己设置。
  令牌=0
  tokenurl=self.URLprefix +/鲑/v1/SessionService/会话的
  打印(tokenurl)
  data=https://www.yisu.com/zixun/{“用户名”:self.username,
  “密码”:self.password
  }
  头={
  “内容类型”:“application/json”
  }
  re1=requests.post (tokenurl json.dumps(数据),标题=头,验证=False)
  #打印(re1.status_code)
  如果re1。status_code==201:
  #打印(re1.json ())
  #打印(re1.headers)
  print (re1.headers [' X-Auth-Token '])
  令牌=re1.headers (“X-Auth-Token”)
  其他:
  通过
  def GetInfo(自我,URL_suffix): #定义总获取函数,传参url的后半部分。如/鲑/v1/系统/1/内存的
  urlset=self.URLprefix + URL_suffix
  如果令牌!=0:
  头={
  “内容类型”:“application/json”,
  “X-Auth-Token”:令牌
  }
  re1=requests.get (urlset header=头,验证=False)
  #打印(re1.status_code)
  返回(re1.json ())
  其他:
  通过
  def selectlog(自我):# #查询选取日志,13版pdf815页
  # #发布https://device_ip/redfish/v1/Systems/system_id/LogServices/LogService_id/Actions/Oem/Huawei/LogService.QuerySelLogEntries
  url_selcetSELlog=self.URLprefix +/鲑/v1/系统/1/LogServices/Log1/行动/Oem/华为/LogService。# # LogService_id==Log1 QuerySelLogEntries”
  如果令牌!=0:
  头={
  “内容类型”:“application/json”,
  “X-Auth-Token”:令牌
  }
  #“StartEntryId”: StartEntryId_value, # #查询选取日志的起始条数,必选项,从1开始,且不大于日志总数
  #“EntriesCount”: EntriesCount_value, # #日志条数,大于0的整数
  #“SelLevel”: SelLevelvalue, # #日志级别,非必选,四类:信息性,小,专业,至关重要的
  #“SelObjectType”: SelObjectTypevalue, # #主题类型,非必选
  #“SelBeginTime”: SelBeginTime_value, # #起始时间,非必选,支持的日期格式:yyyy-MM-dd HH: mm: ss
  #“SelEndTime”: SelEndTimevalue, # #结束时间,非必选,支持的日期格式:yyyy-MM-dd HH: mm: ss
  #“SelSearchString”: SelSearchStringvalue # #关键字,非必选
  # # # # # # # # # # # # # # # # # # # ssh iBMC # # # # # # # # # # # # # # # # # # # # #
  # iBMC:/鷌pmcget - d sel - v信息# #显示日志信息
  #选取信息
  :#版本1.0.0
  #当前事件数量:97 # # 97个条目,鲑协议查不出多少条目
  #马克斯事件数量:4000
  # iBMC:/鷌pmcget - d sel - v列表# #显示所有条目,数据库格式
  # iBMC:/鷌pmcget - d sel - v建议1 # # 1为事件数量。
  # iBMC:/鷌pmcset - d sel - v清楚# #清空历史记录
  #警告:操作可能会有很多负面影响。
  #你想要继续吗? [Y/N]: Y
  #清楚选取成功记录。
  # iBMC:/?
  数据=https://www.yisu.com/zixun/{“StartEntryId”: 1、
  “EntriesCount”: 10
  }
  re1=请求。帖子(url_selcetSELlog json.dumps(数据),标题=头,验证=False)
  打印(SelectLog_StatusCode, re1.status_code)
  返回re1.json ()
  
  def Collect_Info (ipaddr、用户名、密码):
  hw2288HV5=GetHostInfo (ipaddr、用户名、密码)
  # # # #处理CPU
  select_cpu_total='/鲑/v1/系统/1/处理器的
  #打印(cpu_total, hw2288HV5.GetInfo (select_cpu_total))
  temp_cpu_result1=hw2288HV5.GetInfo (select_cpu_total)
  如果isinstance (temp_cpu_result1, dict)和(“错误”不是temp_cpu_result1.keys ()):
  cpu_count=temp_cpu_result1 (“Members@odata.count”)
  打印(‘@’* 50)
  打印(“CPU数:”,cpu_count)
  # #获取多个cpu的URLsuffix值
  #打印(“select_cpu_single_URLsuffix:”, [x [' @odata。id '] x temp_cpu_result1['成员']])
  cpu_single_URLsuffix_list=[x [' @odata。id '] x temp_cpu_result1[“成员”]]
  在cpu_single_URLsuffix_list cpu_single:
  temp_cpu_single_result1=hw2288HV5.GetInfo (cpu_single)
  #打印(temp_cpu_single_result1)
  如果isinstance (temp_cpu_single_result1, dict)和(“错误”不是temp_cpu_single_result1.keys ()):
  print (CPU单名称:,temp_cpu_single_result1['名字'])
  print (CPU单ID:, temp_cpu_single_result1 [' ID '])
  打印(“CPU单TotalCores (CPU):“, temp_cpu_single_result1 [' TotalCores '])
  print (CPU单模型(CPU):, temp_cpu_single_result1(“模型”))
  
  # # # #处理内存
  #取出内存个数,字典键“Members@odata.count”
  select_memory_total='/鲑/v1/系统/1/内存的
  temp_memory_result1=hw2288HV5.GetInfo (select_memory_total)
  如果isinstance (temp_memory_result1, dict)和(“错误”不是temp_memory_result1.keys ()):
  Mem_count=temp_memory_result1 (“Members@odata.count”)
  打印(‘@’* 50)
  打印(“内存数:”,Mem_count)
  #获取内存的URLsuffix。
  #打印(“select_memory_single_URLsuffix:”, [x [' @odata。id '] x temp_memory_result1['成员']])
  Mem_single_URLsuffix_list=[x [' @odata。id '] x temp_memory_result1[“成员”]]
  #打印(Mem_single_URLsuffix_list)
  #取出类型和大小
  在Mem_single_URLsuffix_list select_memory_single:
  temp_memory_result2=hw2288HV5.GetInfo (select_memory_single)
  #打印(temp_memory_result2)
  如果isinstance (temp_memory_result2, dict)和(“错误”不是temp_memory_result2.keys ()):
  #返回temp_memory_result2 [' CapacityMiB ']/1024 # #/1024=G
  print(名称:记忆,temp_memory_result2['名字'])
  print(内存ID:, temp_memory_result2 [' ID '])
  print(内存大小:,temp_memory_result2 [' CapacityMiB '])
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null

华为2288 hv5获取cpu、内存,存储等参数信息