*** Settings *** Force Tags tsg_oam tsg_device Library REST Resource ../../03-Variable/BifangApiVariable.txt Library OperatingSystem Library Selenium2Library Library RequestsLibrary Library Collections Library REST http://${oamHost}:${oamPort}/ *** Variables *** ${url} chassis-daji-00001 ${profileId} ${EMPTY} *** Keywords *** OamGetRequest [Arguments] ${requestUri} ${data} ${headers} set variable {"Content-Type":"application/json"} create session api http://${oamHost}:${oamPort}/ ${headers} ${response} Get Request api ${requestUri} data=${data} log return data =${response} Should Be Equal As Strings ${response.status_code} 200 ${response} to json ${response.content} ${rescode} Set Variable ${response}[code] Should Be Equal As Strings ${rescode} 200 [Return] ${response} OamPostRequest [Arguments] ${requestUri} ${data} ${headers} set variable {"Content-Type":"application/json"} create session api http://${oamHost}:${oamPort}/ ${headers} ${response}= Post Request api ${requestUri} data=${data} log return data =${response} Should Be Equal As Strings ${response.status_code} 200 ${response} to json ${response.content} ${rescode} Set Variable ${response}[code] Should Be Equal As Strings ${rescode} 200 [Return] ${response} OamDeleteRequest [Arguments] ${requestUri} ${data} ${headers} set variable {"Content-Type":"application/json"} create session api http://${oamHost}:${oamPort}/ ${headers} ${response}= Delete Request api ${requestUri} data=${data} log return data =${response} Should Be Equal As Strings ${response.status_code} 200 ${response} to json ${response.content} ${rescode} Set Variable ${response}[code] Should Be Equal As Strings ${rescode} 200 ${datalist} Get From Dictionary ${response}[data] list ${len} Get Length ${datalist} FOR ${var} IN RANGE ${len} Should Contain ${datalist}[${var}][result] success END [Return] ${response} *** Test Cases *** writestarttime ${starttime} Get Time Append To File ${path}/OamApi_file.txt ${starttime}---------------------------------------------- chassis-danji-00165 #获取单个板卡的信息 #${caseName} set variable chassis-danji-00001 Comment chassis-danji-00165 ${response} OamGetRequest /tsgoam/cm/chassis/192.168.40.165 ${EMPTY} ${responseString} Convert To String ${response} Append To File ${path}/OamApi_file.txt ${responseString} Log 165:${response} chassis-danji-00170 ${response} OamGetRequest /tsgoam/cm/chassis/192.168.40.170 ${EMPTY} ${responseString} Convert To String ${response} Append To File ${path}/OamApi_file.txt ${responseString} Log 170:${response} chassis-danji-00175 ${response} OamGetRequest /tsgoam/cm/chassis/192.168.40.175 ${EMPTY} ${responseString} Convert To String ${response} Append To File ${path}/OamApi_file.txt ${responseString} Log 175:${response} chassis-danji-0025 ${response} OamGetRequest /tsgoam/cm/chassis/192.168.40.25 ${EMPTY} ${responseString} Convert To String ${response} Append To File ${path}/OamApi_file.txt ${responseString} Log 25:${response} fru-sled-00001-165 #获取单个板卡的FRU信息 获取单个板卡的FRU信息 #${caseName} set variable chassis-danji-00001 Comment fru-sled-00001 ${response} OamGetRequest /tsgoam/cm/FRU/192.168.40.165/0 ${EMPTY} ${responseString} Convert To String ${response} Append To File ${path}/OamApi_file.txt ${responseString} Log 165:${response} ${response} OamGetRequest /tsgoam/cm/FRU/192.168.40.165/1 ${EMPTY} ${responseString} Convert To String ${response} Append To File ${path}/OamApi_file.txt ${responseString} Log 165:${response} ${response} OamGetRequest /tsgoam/cm/FRU/192.168.40.165/2 ${EMPTY} ${responseString} Convert To String ${response} Append To File ${path}/OamApi_file.txt ${responseString} Log 165:${response} ${response} OamGetRequest /tsgoam/cm/FRU/192.168.40.165/3 ${EMPTY} ${responseString} Convert To String ${response} Append To File ${path}/OamApi_file.txt ${responseString} Log 165:${response} ${response} OamGetRequest /tsgoam/cm/FRU/192.168.40.165/100 ${EMPTY} ${responseString} Convert To String ${response} Append To File ${path}/OamApi_file.txt ${responseString} Log 165:${response} fru-sled-00002-170 #获取单个板卡的FRU信息 获取单个板卡的FRU信息 #${caseName} set variable chassis-danji-00001 Comment fru-sled-00002 ${response} OamGetRequest /tsgoam/cm/FRU/192.168.40.170/100 ${EMPTY} ${responseString} Convert To String ${response} Append To File ${path}/OamApi_file.txt ${responseString} Log 170:${response} ${response} OamGetRequest /tsgoam/cm/FRU/192.168.40.170/0 ${EMPTY} ${responseString} Convert To String ${response} Append To File ${path}/OamApi_file.txt ${responseString} Log 170:${response} ${response} OamGetRequest /tsgoam/cm/FRU/192.168.40.170/1 ${EMPTY} ${responseString} Convert To String ${response} Append To File ${path}/OamApi_file.txt ${responseString} Log 170:${response} ${response} OamGetRequest /tsgoam/cm/FRU/192.168.40.170/2 ${EMPTY} ${responseString} Convert To String ${response} Append To File ${path}/OamApi_file.txt ${responseString} Log 170:${response} ${response} OamGetRequest /tsgoam/cm/FRU/192.168.40.170/3 ${EMPTY} ${responseString} Convert To String ${response} Append To File ${path}/OamApi_file.txt ${responseString} Log 170:${response} fru-sled-00003-175 ${response} OamGetRequest /tsgoam/cm/FRU/192.168.40.175/100 ${EMPTY} ${responseString} Convert To String ${response} Append To File ${path}/OamApi_file.txt ${responseString} Log 175:${response} ${response} OamGetRequest /tsgoam/cm/FRU/192.168.40.175/0 ${EMPTY} ${responseString} Convert To String ${response} Append To File ${path}/OamApi_file.txt ${responseString} Log 175:${response} ${response} OamGetRequest /tsgoam/cm/FRU/192.168.40.175/1 ${EMPTY} ${responseString} Convert To String ${response} Append To File ${path}/OamApi_file.txt ${responseString} Log 175:${response} ${response} OamGetRequest /tsgoam/cm/FRU/192.168.40.175/2 ${EMPTY} ${responseString} Convert To String ${response} Append To File ${path}/OamApi_file.txt ${responseString} Log 175:${response} ${response} OamGetRequest /tsgoam/cm/FRU/192.168.40.175/3 ${EMPTY} ${responseString} Convert To String ${response} Append To File ${path}/OamApi_file.txt ${responseString} Log 175:${response} fru-sled-00003-25 ${response} OamGetRequest /tsgoam/cm/FRU/192.168.40.25/100 ${EMPTY} ${responseString} Convert To String ${response} Append To File ${path}/OamApi_file.txt ${responseString} Log 25:${response} ${response} OamGetRequest /tsgoam/cm/FRU/192.168.40.25/0 ${EMPTY} ${responseString} Convert To String ${response} Append To File ${path}/OamApi_file.txt ${responseString} Log 25:${response} ${response} OamGetRequest /tsgoam/cm/FRU/192.168.40.25/1 ${EMPTY} ${responseString} Convert To String ${response} Append To File ${path}/OamApi_file.txt ${responseString} Log 25:${response} ${response} OamGetRequest /tsgoam/cm/FRU/192.168.40.25/2 ${EMPTY} ${responseString} Convert To String ${response} Append To File ${path}/OamApi_file.txt ${responseString} Log 25:${response} ${response} OamGetRequest /tsgoam/cm/FRU/192.168.40.25/3 ${EMPTY} ${responseString} Convert To String ${response} Append To File ${path}/OamApi_file.txt ${responseString} Log 25:${response} hostname-sled-00001可以在170xxg-adc03-mxn Comment ntpsrv-sled-00001更新hostname更新板卡CentOS的hostname,需要用户手动重启network service或reboot后才能生效 ${response} OamPostRequest /tsgoam/cm/hostname/ [{"chassis_ip":"192.168.40.170","sled_id":0,"hostname":"hy-adc03-mxn"}] ${responseString} Convert To String ${response} Append To File ${path}/OamApi_file.txt ${responseString} Log 170:${response} ${response} OamPostRequest /tsgoam/cm/hostname/ [{"chassis_ip":"192.168.40.170","sled_id":0,"hostname":"xxg-adc03-mxn"}] ${responseString} Convert To String ${response} Append To File ${path}/OamApi_file.txt ${responseString} ntpsrv-sled-00001 Comment ntpsrv-sled-00001更新ntp server设置设置ntp server,注意调用此方法会同时更新TSG上所有板卡的ntp配置,即将计算板的ntp server指向交换板,将交换板的ntp server指向目标机器。 ${response} OamPostRequest /tsgoam/cm/ntpsrv/ [{"chassis_ip":"192.168.40.170","ntpsrv_ip":"192.168.40.1"}] ${responseString} Convert To String ${response} Append To File ${path}/OamApi_file.txt ${responseString} Log 25:${response} softwarereboot-sled-00001 Comment softwarereboot-sled-00001 重启板卡软件 #${response} OamPostRequest /tsgoam/cm/softwarereboot/ [{"chassis_ip":"192.168.40.170","sled_id":0},{"chassis_ip":"192.168.40.170","sled_id":1},{"chassis_ip":"192.168.40.170","sled_id":2},{"chassis_ip":"192.168.40.170","sled_id":3},,{"chassis_ip":"192.168.40.170","sled_id":100}] #${response} OamPostRequest /tsgoam/cm/softreboot/ [{"chassis_ip":"192.168.40.170","sled_id":0},{"chassis_ip":"192.168.40.170","sled_id":1},{"chassis_ip":"192.168.40.170","sled_id":2},{"chassis_ip":"192.168.40.170","sled_id":3},{"chassis_ip":"192.168.40.170","sled_id":100}] ${response} OamPostRequest /tsgoam/cm/softreboot/ [{"chassis_ip":"192.168.40.165","sled_id":3}] ${responseString} Convert To String ${response} Append To File ${path}/OamApi_file.txt ${responseString} Log 25:${response} ###################################################################### alarm-chassis-00001 Comment alarm-chassis-00001 获取一个或多个设备的告警列表 ${response} OamPostRequest /tsgoam/fm/alarms/ [{"chassis_ip":"192.168.40.165","chassis_sn":"CBT2201925000001","where":"component = 'syslog'"},{"chassis_ip":"192.168.40.170","chassis_sn":"CBT2201925000003","where":"component = 'syslog'"},{"chassis_ip":"192.168.40.175","chassis_sn":"CBT2201925000004","where":"component = 'syslog'"},{"chassis_ip":"192.168.40.25","chassis_sn":"CBT2201925000200","where":"component = 'syslog'"}] ${responseString} Convert To String ${response} Append To File ${path}/OamApi_file.txt ${responseString} Log 25:${response} del-alarm-chassis-00001 Comment del-alarm-chassis-00001 清除指定告警 #${response} OamDeleteRequest /tsgoam/fm/alarms/ [{"alarm_id":"CBT22019250000030000000000255100","chassis_ip":"192.168.40.170","operator":"dongxiaoyan","notes":"auto"}] ${response} OamDeleteRequest /tsgoam/fm/alarms/ [{"alarm_id":"CBT22019250000010000000003422719","chassis_ip":"192.168.40.165","operator":"dongxiaoyan","notes":"auto"}] ${responseString} Convert To String ${response} Append To File ${path}/OamApi_file.txt ${responseString} Log 25:${response} status-chassis-00001 Comment status-chassis-00001 获取板卡的状态 根据chassis或者sled的alarm数量,计算板卡状态:green, yellow, red。返回改chassis下所有sled的状态和chassis的状态 ${response} OamPostRequest /tsgoam/fm/status/ [{"chassis_ip":"192.168.40.165","chassis_sn":"CBT2201925000001"},{"chassis_ip":"192.168.40.170","chassis_sn":"CBT2201925000003"},{"chassis_ip":"192.168.40.175","chassis_sn":"CBT2201925000004"},{"chassis_ip":"192.168.40.25","chassis_sn":"CBT2201925000200"}] ${responseString} Convert To String ${response} Append To File ${path}/OamApi_file.txt ${responseString} Log 4:${response} ${response} OamPostRequest /tsgoam/fm/status/ [{"chassis_ip":"192.168.40.165","chassis_sn":"CBT2201925000001"},{"chassis_ip":"192.168.40.170","chassis_sn":"CBT2201925000003"},{"chassis_ip":"192.168.40.175","chassis_sn":"CBT2201925000004"}] ${responseString} Convert To String ${response} Append To File ${path}/OamApi_file.txt ${responseString} Log 3:${response} ${response} OamPostRequest /tsgoam/fm/status/ [{"chassis_ip":"192.168.40.165","chassis_sn":"CBT2201925000001"},{"chassis_ip":"192.168.40.170","chassis_sn":"CBT2201925000003"}] ${responseString} Convert To String ${response} Append To File ${path}/OamApi_file.txt ${responseString} Log 2:${response} ${response} OamPostRequest /tsgoam/fm/status/ [{"chassis_ip":"192.168.40.165","chassis_sn":"CBT2201925000001"}] ${responseString} Convert To String ${response} Append To File ${path}/OamApi_file.txt ${responseString} Log 1:${response} threshold-chassis-00001 Comment threshold-chassis-00001获取设备counter的threshold值 ${response} OamPostRequest /tsgoam/fm/threshold/ [{"chassis_ip":"192.168.40.165"}] ${responseString} Convert To String ${response} Append To File ${path}/OamApi_file.txt ${responseString} Log 165:${response} ${response} OamPostRequest /tsgoam/fm/threshold/ [{"chassis_ip":"192.168.40.170"}] ${responseString} Convert To String ${response} Append To File ${path}/OamApi_file.txt ${responseString} Log 170:${response} ${response} OamPostRequest /tsgoam/fm/threshold/ [{"chassis_ip":"192.168.40.25"}] ${responseString} Convert To String ${response} Append To File ${path}/OamApi_file.txt ${responseString} Log 25:${response} ${response} OamPostRequest /tsgoam/fm/threshold/ [{"chassis_ip":"192.168.40.165"},{"chassis_ip":"192.168.40.170"},{"chassis_ip":"192.168.40.175"},{"chassis_ip":"192.168.40.25"}] ${responseString} Convert To String ${response} Append To File ${path}/OamApi_file.txt ${responseString} Log 4:${response} thresholds-chassis-00165 Comment thresholds-chassis-00001 设置设备counter的threshold值,覆盖更新传入的值 ${response} OamPostRequest /tsgoam/fm/thresholds/ [{"chassis_ip":"192.168.40.165","Temp_XL710_82599@CBT2201925000001_mcn2_hardware":[ {"critical+":90.5,"critical-":-10.5}, { "major+":80.5,"major-":-5.5}, { "minor+":70.5, "minor-":0.5} ] }] ${responseString} Convert To String ${response} ${response} OamPostRequest /tsgoam/fm/threshold/ [{"chassis_ip":"192.168.40.165"}] ${responseString} Convert To String ${response} ${response} OamPostRequest /tsgoam/fm/thresholds/ [{"chassis_ip":"192.168.40.165","Temp_XL710_82599@CBT2201925000001_mcn2_hardware":[ {"critical+":90.0,"critical-":-10.0}, { "major+":80.0,"major-":-5.0}, { "minor+":70.0, "minor-":0.0} ] }] ${responseString} Convert To String ${response} Append To File ${path}/OamApi_file.txt ${responseString} Log ${response} syn-chassis-00170 Comment syn-chassis-00001告警强制同步接口 ${response} OamPostRequest /tsgoam/fm/syn/ [{"chassis_ip":"192.168.40.165","chassis_sn":"CBT2201925000001"}] ${responseString} Convert To String ${response} Append To File ${path}/OamApi_file.txt ${responseString} Log ${response} ###################################################################### oamcore-chassis-00165 Comment oamcore-chassis-00001 设置oam_core的运行参数 #${response} OamPostRequest /tsgoam/settings/oam_core/ [{"chassis_ip":"192.168.40.165","oam.cluster.server.ip":"192.168.40.2110","datasource.second.username":"root1","datasource.second.password":"1111110","oam.writer.scheduler.interval":"600001","oam.writer.scheduler.ipmi.interval":"1800001","logging.level.com.tsg.oam":"DEBUG"}] #${responseString} Convert To String ${response} #Append To File ${path}/OamApi_file.txt ${responseString} ${response} OamPostRequest /tsgoam/settings/oam_core/ [{"chassis_ip":"192.168.40.165","oam.cluster.server.ip":"192.168.40.210","datasource.second.username":"root","datasource.second.password":"111111","oam.writer.scheduler.interval":"60000","oam.writer.scheduler.ipmi.interval":"180000","logging.level.com.tsg.oam":"ERROR"}] ${responseString} Convert To String ${response} Append To File ${path}/OamApi_file.txt ${responseString} Log ${response} oamsnmp-chassis-00165 Comment oamsnmp-chassis-00001设置oam_snmp的运行参数 ${response} OamPostRequest /tsgoam/settings/oam_snmp/ [{"chassis_ip":"192.168.40.165","oam.influx.recentminutes":6,"logging.level.com.oam.snmp":"DEBUG"}] ${responseString} Convert To String ${response} Append To File ${path}/OamApi_file.txt ${responseString} ${response} OamPostRequest /tsgoam/settings/oam_snmp/ [{"chassis_ip":"192.168.40.165","oam.influx.recentminutes":5,"logging.level.com.oam.snmp":"ERROR"}] ${responseString} Convert To String ${response} Append To File ${path}/OamApi_file.txt ${responseString} Log ${response} oamcliagent-chassis-00170 Comment oamcliagent-chassis-00001设置cli_agent的运行参 ${response} OamPostRequest /tsgoam/settings/cli_agent/ [{"chassis_ip":"192.168.40.165","logging.level.com.oam.agent":"DEBUG"}] ${responseString} Convert To String ${response} Append To File ${path}/OamApi_file.txt ${responseString} ${response} OamPostRequest /tsgoam/settings/cli_agent/ [{"chassis_ip":"192.168.40.165","logging.level.com.oam.agent":"ERROR"}] ${responseString} Convert To String ${response} Append To File ${path}/OamApi_file.txt ${responseString} Log ${response} oamcli-chassis-00001 Comment oamcli-chassis-00001设置cli的运行参数 ${response} OamPostRequest /tsgoam/settings/cli/ [{"chassis_ip":"192.168.40.165","cli.rest.root":"http://192.168.40.4:80821/v1","logging.level.com.cs.oam.cli":"DEBUG"}] ${responseString} Convert To String ${response} Append To File ${path}/OamApi_file.txt ${responseString} ${response} OamPostRequest /tsgoam/settings/cli/ [{"chassis_ip":"192.168.40.165","cli.rest.root":"http://192.168.40.4:8082/v1","logging.level.com.cs.oam.cli":"ERROR"}] ${responseString} Convert To String ${response} Append To File ${path}/OamApi_file.txt ${responseString} Log ${response} writeENDtime ${endtime} Get Time Append To File ${path}/OamApi_file.txt ${endtime}!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!