252 lines
11 KiB
Plaintext
252 lines
11 KiB
Plaintext
|
|
*** Settings ***
|
|||
|
|
Library Collections
|
|||
|
|
Library RequestsLibrary
|
|||
|
|
Library json
|
|||
|
|
Resource ../../../03-Variable/BifangApiVariable.txt
|
|||
|
|
Resource ../../../02-Keyword/tsg_bfapi/policy_file_interface/FunctionalKeywords.robot
|
|||
|
|
Library Collections
|
|||
|
|
Resource ../Common.robot
|
|||
|
|
*** Variables ***
|
|||
|
|
${deviceUrl} /device
|
|||
|
|
${listSplitor} ,
|
|||
|
|
${itemSplitor} |
|
|||
|
|
*** Keywords ***
|
|||
|
|
GetSNList
|
|||
|
|
[Documentation]
|
|||
|
|
... 设备SN列表查询
|
|||
|
|
[Arguments]
|
|||
|
|
${response} BaseFormRequest ${deviceUrl}/sn ${EMPTY} ${version}
|
|||
|
|
${rescode} Set Variable ${response['code']}
|
|||
|
|
Should Be Equal As Strings ${rescode} 200
|
|||
|
|
[Return] ${response['data']['list']}
|
|||
|
|
|
|||
|
|
GetSNInfo
|
|||
|
|
[Documentation]
|
|||
|
|
... 设备SN信息查询
|
|||
|
|
[Arguments] ${sn}
|
|||
|
|
${response} BaseFormRequest ${deviceUrl} sn=${sn} ${version}
|
|||
|
|
${rescode} Set Variable ${response['code']}
|
|||
|
|
Should Be Equal As Strings ${rescode} 200
|
|||
|
|
[Return] ${response['data']['list']}
|
|||
|
|
|
|||
|
|
GetDeviceDatas
|
|||
|
|
[Documentation]
|
|||
|
|
... 设备信息数据查询
|
|||
|
|
... SN=${SN}
|
|||
|
|
... startTime YYYY-MM-DD HH:mm:ss
|
|||
|
|
... endTime YYYY-MM-DD HH:mm:ss
|
|||
|
|
... dataType,数据类型,可为:traffics,cpu,mem,port,alarm
|
|||
|
|
[Arguments] ${SN} ${startTime} ${endTime} ${dataType}
|
|||
|
|
Should Not Be Empty ${SN}
|
|||
|
|
Should Not Be Empty ${startTime}
|
|||
|
|
Should Not Be Empty ${endTime}
|
|||
|
|
Should Not Be Empty ${dataType}
|
|||
|
|
${dict} Create Dictionary SN=${SN} startTime=${startTime} endTime=${endTime}
|
|||
|
|
${queryParams} Dictionary-To-QueryParams ${dict}
|
|||
|
|
${response} BaseGetRequestForV2 ${deviceUrl}/${dataType} ${queryParams} ${version}
|
|||
|
|
${rescode} Set Variable ${response['code']}
|
|||
|
|
Should Be Equal As Strings ${rescode} 200
|
|||
|
|
[Return] ${response['data']}
|
|||
|
|
|
|||
|
|
ClearAlarm
|
|||
|
|
[Documentation]
|
|||
|
|
... 清除设备告警数据
|
|||
|
|
... params为一个list
|
|||
|
|
... list中一个单元的结构如下:
|
|||
|
|
... ${alarm_id}|${chassis_ip}|${operated_by}|${notes}
|
|||
|
|
... alarm_id,chassis_ip不能为空
|
|||
|
|
[Arguments] ${params}
|
|||
|
|
${list} Create List
|
|||
|
|
FOR ${param} IN @{params}
|
|||
|
|
${param} Evaluate re.split('[${itemSplitor}]', '${param}') re
|
|||
|
|
Should Not Be Empty ${param[0]}
|
|||
|
|
Should Not Be Empty ${param[1]}
|
|||
|
|
#${alarm_id} Evaluate int(${param[0]})
|
|||
|
|
${dict} Create Dictionary alarm_id=${param[0]} chassis_ip=${param[1]}
|
|||
|
|
Run Keyword If "${param[2]}" != "${EMPTY}" Set To Dictionary ${dict} operated_by=${param[2]}
|
|||
|
|
Run Keyword If "${param[3]}" != "${EMPTY}" Set To Dictionary ${dict} notes=${param[3]}
|
|||
|
|
Append To List ${list} ${dict}
|
|||
|
|
END
|
|||
|
|
${json} json.Dumps ${list}
|
|||
|
|
${response} BaseDeleteRequest /${version}${deviceUrl}/alarm ${json}
|
|||
|
|
${rescode} Set Variable ${response['code']}
|
|||
|
|
Should Be Equal As Strings ${rescode} 200
|
|||
|
|
[Return] ${rescode}
|
|||
|
|
|
|||
|
|
GetDeviceChassis
|
|||
|
|
[Documentation]
|
|||
|
|
... 获取设备板卡信息
|
|||
|
|
... sn sn号
|
|||
|
|
[Arguments] ${sn}
|
|||
|
|
Should Not Be Empty ${sn}
|
|||
|
|
${response} BaseGetRequestForV2 ${deviceUrl}/chassis sn=${sn} ${version}
|
|||
|
|
${rescode} Set Variable ${response['code']}
|
|||
|
|
Should Be Equal As Strings ${rescode} 200
|
|||
|
|
[Return] ${response['data']}
|
|||
|
|
|
|||
|
|
GetClusterStatus
|
|||
|
|
[Documentation]
|
|||
|
|
... 获取集群设备状态
|
|||
|
|
[Arguments]
|
|||
|
|
${response} BaseGetRequestForV2 ${deviceUrl}/clusterStatus ${EMPTY} ${version}
|
|||
|
|
${rescode} Set Variable ${response['code']}
|
|||
|
|
Should Be Equal As Strings ${rescode} 200
|
|||
|
|
[Return] ${response['data']}
|
|||
|
|
|
|||
|
|
GetDeviceTag
|
|||
|
|
[Documentation]
|
|||
|
|
... 查询设备标签信息
|
|||
|
|
[Arguments] ${pageSize} ${pageNo} ${id} ${tagType} ${tagName} ${pid}
|
|||
|
|
${dict} Create Dictionary
|
|||
|
|
Run Keyword If "${pageSize}" != "${EMPTY}" Set To Dictionary ${dict} pageSize=${pageSize}
|
|||
|
|
Run Keyword If "${pageNo}" != "${EMPTY}" Set To Dictionary ${dict} pageNo=${pageNo}
|
|||
|
|
Run Keyword If "${id}" != "${EMPTY}" Set To Dictionary ${dict} id=${id}
|
|||
|
|
Run Keyword If "${tagType}" != "${EMPTY}" Set To Dictionary ${dict} tagType=${tagType}
|
|||
|
|
Run Keyword If "${tagName}" != "${EMPTY}" Set To Dictionary ${dict} tagName=${tagName}
|
|||
|
|
Run Keyword If "${pid}" != "${EMPTY}" Set To Dictionary ${dict} pid=${pid}
|
|||
|
|
${queryParams} Dictionary-To-QueryParams ${dict}
|
|||
|
|
${response} BaseGetRequestForV2 /deviceTag ${queryParams} ${version}
|
|||
|
|
${rescode} Set Variable ${response['code']}
|
|||
|
|
Should Be Equal As Strings ${rescode} 200
|
|||
|
|
[Return] ${response['data']['list']}
|
|||
|
|
|
|||
|
|
AddDeviceTag
|
|||
|
|
[Documentation]
|
|||
|
|
... 新增设备标签
|
|||
|
|
... params结构如下:
|
|||
|
|
... pid1|tagName1,pid2|tagName2
|
|||
|
|
[Arguments] ${params}
|
|||
|
|
Should Not Be Empty ${params}
|
|||
|
|
${list} Evaluate re.split('[${listSplitor}]', '${params}') re
|
|||
|
|
${dataList} Create List
|
|||
|
|
FOR ${param} IN @{list}
|
|||
|
|
${paramList} Evaluate re.split('[${itemSplitor}]', '${param}') re
|
|||
|
|
${dict} Create Dictionary tagName=${paramList[1]}
|
|||
|
|
${pid} Run Keyword If "${paramList[0]}" != "${EMPTY}" Evaluate int(${paramList[0]})
|
|||
|
|
... ELSE Set Variable ${EMPTY}
|
|||
|
|
Run Keyword If "${pid}" != "${EMPTY}" Set To Dictionary ${dict} pid=${pid}
|
|||
|
|
Append To List ${dataList} ${dict}
|
|||
|
|
END
|
|||
|
|
${dict} Create Dictionary list=${dataList}
|
|||
|
|
${json} json.Dumps ${dict}
|
|||
|
|
${response} BasePostRequestForV2 /deviceTag ${json} ${version}
|
|||
|
|
${rescode} Set Variable ${response['code']}
|
|||
|
|
Should Be Equal As Strings ${rescode} 200
|
|||
|
|
[Return] ${rescode}
|
|||
|
|
|
|||
|
|
GetDeviceTagRefer
|
|||
|
|
[Documentation]
|
|||
|
|
... 获取设备标签引用
|
|||
|
|
[Arguments]
|
|||
|
|
${response} BaseGetRequestForV2 /deviceTag/refer ${EMPTY} ${version}
|
|||
|
|
${rescode} Set Variable ${response['code']}
|
|||
|
|
Should Be Equal As Strings ${rescode} 200
|
|||
|
|
[Return] ${response['data']}
|
|||
|
|
|
|||
|
|
GetNtpInfo
|
|||
|
|
[Documentation]
|
|||
|
|
... ntp信息查询
|
|||
|
|
[Arguments]
|
|||
|
|
${response} BaseFormRequest /ntp ${EMPTY} ${version}
|
|||
|
|
${rescode} Set Variable ${response['code']}
|
|||
|
|
Should Be Equal As Strings ${rescode} 200
|
|||
|
|
[Return] ${response['data']}
|
|||
|
|
|
|||
|
|
EditNtpInfo
|
|||
|
|
[Documentation]
|
|||
|
|
... ntp信息修改
|
|||
|
|
[Arguments] ${serverIP}
|
|||
|
|
${dict} Create Dictionary serverIP=${serverIP}
|
|||
|
|
${response} BaseFormEditRequest /ntp ${dict} ${version}
|
|||
|
|
${rescode} Set Variable ${response['code']}
|
|||
|
|
Should Be Equal As Strings ${rescode} 200
|
|||
|
|
[Return] ${response['data']}
|
|||
|
|
|
|||
|
|
TsgOamRedirect
|
|||
|
|
[Documentation]
|
|||
|
|
... oam转发调用
|
|||
|
|
... path:请求转发oam的路径
|
|||
|
|
... method:http请求方式,大写
|
|||
|
|
... params: 请求参数
|
|||
|
|
[Arguments] ${path} ${method} ${contentType} ${params}
|
|||
|
|
${params} Run Keyword If "${method}" == "GET" Dictionary-To-QueryParams ${params}
|
|||
|
|
... ELSE IF "${contentType}"=="application/json" json.Dumps ${params}
|
|||
|
|
... ELSE Set Variable ${params}
|
|||
|
|
${response} OamRequest /${version}/tsgoam ${path} ${method} ${contentType} ${params}
|
|||
|
|
${rescode} Set Variable ${response['code']}
|
|||
|
|
Should Be Equal As Strings ${rescode} 200
|
|||
|
|
[Return] ${response['data']}
|
|||
|
|
UpdateSnmp
|
|||
|
|
[Documentation]
|
|||
|
|
... 更新SNMP配置
|
|||
|
|
... params 支持list或者dict
|
|||
|
|
... params参数
|
|||
|
|
... chassis_ip 必填
|
|||
|
|
... snmp_version 必填
|
|||
|
|
... users: user1|pwd1|operation1,user2|pwd2|operation2
|
|||
|
|
[Arguments] ${params}
|
|||
|
|
${type} Evaluate type(${params})
|
|||
|
|
${dictOrList} Run Keyword If "${type}"=="<class 'dict'>" ProcessUpdateSnmpBody ${params}
|
|||
|
|
... ELSE UpdateSnmpList ${params}
|
|||
|
|
${data} TsgOamRedirect /cm/snmp/ POST application/json ${dictOrList}
|
|||
|
|
[Return] ${data}
|
|||
|
|
UpdateSnmpBatch
|
|||
|
|
[Documentation]
|
|||
|
|
... 批量更新SNMP配置
|
|||
|
|
[Arguments] ${snmp_version} ${user} ${pwd}
|
|||
|
|
${dict} Create Dictionary snmp_version=${snmp_version} user=${user} pwd=${pwd}
|
|||
|
|
${response} BaseFormPostRequest /tsgoam/snmpBatch ${dict} ${version}
|
|||
|
|
${rescode} Set Variable ${response['code']}
|
|||
|
|
Should Be Equal As Strings ${rescode} 200
|
|||
|
|
[Return] ${response['data']}
|
|||
|
|
UpdateSnmpList
|
|||
|
|
[Documentation]
|
|||
|
|
... 更新SNMP配置
|
|||
|
|
... params参数list
|
|||
|
|
[Arguments] ${params}
|
|||
|
|
${list} Create List
|
|||
|
|
FOR ${param} IN @{params}
|
|||
|
|
${dict} ProcessUpdateSnmpBody ${param}
|
|||
|
|
Append To List ${list} ${dict}
|
|||
|
|
END
|
|||
|
|
[Return] ${list}
|
|||
|
|
ProcessUpdateSnmpBody
|
|||
|
|
[Documentation]
|
|||
|
|
... 更新SNMP配置
|
|||
|
|
... params参数
|
|||
|
|
... chassis_ip 必填
|
|||
|
|
... snmp_version 必填
|
|||
|
|
... users: user1|pwd1|operation1,user2|pwd2|operation2
|
|||
|
|
[Arguments] ${params}
|
|||
|
|
${return} ${chassis_ip} Run Keyword And Ignore Error Get From Dictionary ${params} chassis_ip
|
|||
|
|
${chassis_ip} Run Keyword If "${return}" == "FAIL" Set Variable ${EMPTY}
|
|||
|
|
... ELSE Set Variable ${chassis_ip}
|
|||
|
|
${return} ${snmp_version} Run Keyword And Ignore Error Get From Dictionary ${params} snmp_version
|
|||
|
|
${snmp_version} Run Keyword If "${return}" == "FAIL" Set Variable ${EMPTY}
|
|||
|
|
... ELSE Set Variable ${snmp_version}
|
|||
|
|
${return} ${users} Run Keyword And Ignore Error Get From Dictionary ${params} users
|
|||
|
|
${users} Run Keyword If "${return}" == "FAIL" Set Variable ${EMPTY}
|
|||
|
|
... ELSE Set Variable ${users}
|
|||
|
|
|
|||
|
|
Should Not Be Empty ${chassis_ip}
|
|||
|
|
Should Not Be Empty ${snmp_version}
|
|||
|
|
|
|||
|
|
${users} Run Keyword If "${snmp_version}" == "v2" Create List
|
|||
|
|
... ELSE ProcessUserList ${users}
|
|||
|
|
${dict} Create Dictionary chassis_ip=${chassis_ip} snmp_version=${snmp_version} users=${users}
|
|||
|
|
[Return] ${dict}
|
|||
|
|
ProcessUserList
|
|||
|
|
[Documentation]
|
|||
|
|
... 处理用户
|
|||
|
|
[Arguments] ${userList}
|
|||
|
|
${users} Create List
|
|||
|
|
${userList} Evaluate re.split('[${listSplitor}]', '${userList}') re
|
|||
|
|
FOR ${user} IN @{userList}
|
|||
|
|
${user} Evaluate re.split('[${itemSplitor}]', '${user}') re
|
|||
|
|
Should Not Be Empty ${user[2]}
|
|||
|
|
${dict} Create Dictionary operation=${user[2]}
|
|||
|
|
Run Keyword If "${user[0]}" != "${EMPTY}" Set To Dictionary ${dict} user=${user[0]}
|
|||
|
|
Run Keyword If "${user[1]}" != "${EMPTY}" Set To Dictionary ${dict} pwd=${user[1]}
|
|||
|
|
Append To List ${users} ${dict}
|
|||
|
|
END
|
|||
|
|
[Return] ${users}
|