This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
dongxiaoyan-tsg-autotest/02-Keyword/tsg_bfapi/PolicyObject.robot
2021-03-04 17:20:36 +08:00

446 lines
22 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

*** Settings ***
Resource ../../03-Variable/BifangApiVariable.txt
Resource ../tsg_common/ManagePolicyBody.robot
Resource ../tsg_common/ManageObjectBody.robot
Resource ../../02-Keyword/tsg_bfapi/policy_file_interface/FunctionalKeywords.robot
Resource ../../02-Keyword/tsg_bfapi/policy_object/Object.robot
Library REST http://${host}:${port}
Library Collections
Library RequestsLibrary
Resource Common.robot
*** Keywords ***
AddLocalIPObject
#创建对象IP
log to_AddLocalIPObject
# ${localIP} set variable {"opAction":"add","returnData":1,"objectList":{"objectType":"ip","objectSubType":"endpoint","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"autotestLocalIPObject_${testClentIP}","objectDesc":"LocalIPObject_${testClentIP}自动化测试机IP","subObjectIds":[],"addItemList":[{"addrType":4,"protocol":0,"direction":0,"isSession":"endpoint","clientIp1":"${testClentIP}","clientIp2":"${testClentIP}","clientIpFormat":"range","clientPortFormat":"range","clientPort1":0,"clientPort2":0,"serverIpFormat":"range","serverIp1":"","serverIp2":"","serverPortFormat":"range","serverPort1":0,"serverPort2":0}],"updateItemList":[],"deleteItemIds":[]}}
# ${rescodeip} ${objidip} AddObject ${localIP}
# ${localSubIP} set variable {"opAction":"add","returnData":1,"objectList":{"objectType":"subscriberid","objectSubType":"","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"test57","objectDesc":"${testSubscriberID}","subObjectIds":[],"addItemList":[{"keywordArray":["${testSubscriberID}"],"itemId":"","isHexbin":0}],"updateItemList":[],"deleteItemIds":[]}}
# ${rescodesub} ${subiid} AddObject ${localSubIP}
# 创建对象-IP
# Create Dictionary
# ${objectDict} Create Dictionary
# ... objectType=ip
# ... objectSubType=${Default_ObjectSubType}
# ... isInitialize=${Default_IsInitialize}
# ... isExclusion=${Default_IsExclusion}
# ... objectName=autotest_localIP_${testClentIP}
# ... objectDesc=${Default_ObjectDesc}
# ... subObjectIds=${Default_SubObjectIds}
# ... isValid=${1}
# ... addItemList=range|${testClentIP}|${testClentIP}|0/0&${Default_AddItem_ServerIpFormat}|${Default_AddItem_ServerIp1}|${Default_AddItem_ServerIp2}|${Default_AddItem_ServerPort}|${Default_AddItem_IsInitialize}|${Default_AddItem_ItemName}|${Default_AddItem_ItemDesc}
# ${rescode} ${objectId} AddObject2 ${1} ${objectDict}
# #log ${rescodeip}
# log LocalIP${objectId}
Comment 创建IP
#object为IP→endpoint时的addItemList单个对象
${addItemList1} Create Dictionary isSession=endpoint ip=${testClentIP}-${testClentIP} port=0-0 direction=0 protocol=0 isInitialize=0
#可以添加多个
${addItemLists} Create list ${addItemList1}
#objectList对象
${objectDict} Create Dictionary objectType=ip objectSubType=endpoint isValid=${1} addItemList=${addItemLists}
${rescode} ${objectId1} AddObjects ${1} ${objectDict}
SET GLOBAL VARIABLE ${testClentID} ${objectId1}
log to_AddLocalSubidObject
${objectDict} Create Dictionary
... objectType=subscriberid
... objectSubType=subscriberid
... isInitialize=${Default_IsInitialize}
... isExclusion=${Default_IsExclusion}
... objectName=autotest_localSubId_${testSubscriberID}
... objectDesc=${Default_ObjectDesc}
... subObjectIds=${Default_SubObjectIds}
... isValid=${1}
... addItemList=${testSubscriberID}|${Default_AddItem_IsHexbin}|${Default_AddItem_IsInitialize}|${Default_AddItem_ItemName}|${Default_AddItem_ItemDesc}
${rescode} ${subiid} AddObject2 ${1} ${objectDict}
#log ${subiid}
log LocalSubIP${subiid}
SET GLOBAL VARIABLE ${testClentSubID} ${subiid}
DelLocalIPObject
log to_DelLocalIPObject
${emptyList} Create List
${objectId1} Create List [${testClentID},${testClentSubID}]
DeletePolicyAndGroupObject ${emptyList} ${objectId1}
SET GLOBAL VARIABLE ${testClentID} ${EMPTY}
SET GLOBAL VARIABLE ${testClentSubID} ${EMPTY}
#${response} BaseDeleteRequest /${version}/policy/object {"objectIds":[${testClentID}]}
#${response_code} Get From Dictionary ${response} code
#Should Be Equal As Strings ${response} {'code': 200, 'msg': 'Success', 'success': True}
#SET GLOBAL VARIABLE ${testClentID} ${EMPTY}
#${response} BaseDeleteRequest /${version}/policy/object {"objectIds":[${testClentSubID}]}
#SET GLOBAL VARIABLE ${testClentSubID} ${EMPTY}
AddObject
[Arguments] ${body}
#addIPobject#################################################################################
${response} BasePostRequest /${version}/policy/object body=${body}
log 11111111111111${response}
${objectId} Set Variable ${response['data']['objectList'][0]['objectId']}
${rescodeReturn} Set Variable ${response['code']}
[Return] ${rescodeReturn} ${objectId}
AddObject2
[Arguments] ${returnData} ${objectList}
${body} ObjectParamsOpertion ${returnData} ${objectList} add
${response} BasePostRequest /${version}/policy/object body=${body}
${objectId} Set Variable ${response['data']['objectList'][0]['objectId']}
${rescodeReturn} Set Variable ${response['code']}
[Return] ${rescodeReturn} ${objectId}
AddWanVpn
[Arguments] ${wan_vpnList}
${body} WanVpn ${wan_vpnList}
${response} BasePostRequest /${version}/policy/profile/wannat/vpn/account ${body}
log ${response}
${rescodeReturn} Set Variable ${response['code']}
[Return] ${rescodeReturn}
DeleteWanVpn
[Arguments] ${vpnlist}
#删除Vpn
${body} Create Dictionary ids=${vpnlist}
log 删除vpn
${response} BaseDeleteRequest /${version}/policy/profile/wannat/vpn/account ${body}
${response_code} Get From Dictionary ${response} code
Should Be Equal As Strings ${response_code} 200
${response} Convert to String ${response}
log ${response}
Add&EditWanIpPood
[Arguments] ${must_parameter} ${wan_nat_ip_iplist}
${body} WanNatIpPood ${must_parameter} ${wan_nat_ip_iplist}
log ${body}
# ${body1} Set Variable {"refuseCode":true,"opAction":"add","returnData":0,"list":[{"ipList":[{"flag":"add","ip":"192.168.50.60","status":1597124967143,"isError":false,"testIp":"192.168.50.60","testIpRelativeLocation":"internal","testResult":[{"serverIp":"192.168.32.92","serverRelativeLocation":"external","serverGeoLocation":"UA","reachable":"pass"},{"serverIp":"192.168.32.91","serverRelativeLocation":"internal","serverGeoLocation":"Hongkang","reachable":"pass"}],"linkInfo":{"todo1":"fake-result","todo2":"test-API-only","todo3":"not-get-from-galaxy"},"relative_location":"internal","reachableCollect":"success"}],"profileName":"12313123123"}]}
${response} run keyword if '${must_parameter}[profileId]'=="" BasePostRequest /${version}/policy/profile/wannat/ippool ${body}
... ELSE BaseEditRequestOK /${version}/policy/profile/wannat/ippool ${body}
log ${response}
${response_code} Set Variable ${response['code']}
${response_id} Set Variable ${response['data']['list'][0]['profileId']}
# log 11111111111111111111222222222222222
# log ${response_id}
Should Be Equal As Strings ${response_code} 200
${response} Convert to String ${response}
log ${response}
[Return] ${response_id}
DeleteWanIpPood
[Arguments] ${vpnlist}
#删除Vpn
${body} Create Dictionary profileIds=${vpnlist}
log 删除vpn
${response} BaseDeleteRequest /${version}/policy/profile/wannat/ippool ${body}
${response_code} Get From Dictionary ${response} code
Should Be Equal As Strings ${response_code} 200
${response} Convert to String ${response}
log ${response}
Add&Edit_PacketCapture
[Arguments] ${PacketCapture_data} ${DataCenter}
${body} PacketCapture ${PacketCapture_data} ${DataCenter}
log ${body}
# ${body1} Set Variable {"refuseCode":true,"opAction":"add","returnData":0,"list":[{"ipList":[{"flag":"add","ip":"192.168.50.60","status":1597124967143,"isError":false,"testIp":"192.168.50.60","testIpRelativeLocation":"internal","testResult":[{"serverIp":"192.168.32.92","serverRelativeLocation":"external","serverGeoLocation":"UA","reachable":"pass"},{"serverIp":"192.168.32.91","serverRelativeLocation":"internal","serverGeoLocation":"Hongkang","reachable":"pass"}],"linkInfo":{"todo1":"fake-result","todo2":"test-API-only","todo3":"not-get-from-galaxy"},"relative_location":"internal","reachableCollect":"success"}],"profileName":"12313123123"}]}
${response} run keyword if '${PacketCapture_data}[policyId]'=="" BasePostRequest /${version}/troubleshooting/packetcapture/policy ${body}
... ELSE BaseEditRequestOK /${version}/troubleshooting/packetcapture/policy ${body}
log ${response}
${response_code} Set Variable ${response['code']}
${response_policy_id} Set Variable ${response['data']['packetCaptureList'][0]['policyId']}
${response_task_id} Set Variable ${response['data']['packetCaptureList'][0]['taskId']}
# log 11111111111111111111222222222222222
# log ${response_id}
Should Be Equal As Strings ${response_code} 200
${response} Convert to String ${response}
log ${response}
[Return] ${response_policy_id} ${response_task_id}
DeletePacketCapture
[Arguments] ${vpnlist}
#删除Vpn
${body} Create Dictionary profileIds=${vpnlist}
log 删除vpn
${response} BaseDeleteRequest /${version}/troubleshooting/packetcapture/policy ${body}
${response_code} Get From Dictionary ${response} code
Should Be Equal As Strings ${response_code} 200
${response} Convert to String ${response}
log ${response}
EditObject
[Arguments] ${objectList} ${opAction}
${body} ObjectParamsOpertion ${0} ${objectList} ${opAction}
${response} BaseEditRequest /${version}/policy/object ${body}
${rescodeReturn} Set Variable ${response['code']}
[Return] ${rescodeReturn}
DeleteObjectbak
[Arguments] ${objectids}
${body} String {"objectIds":[${objectids}]}
DELETE /policy/object body=${body} headers=${headers}
Object response body
log DeleteObject
log dxytestOUtputstart
Output response body
log dxytestOUtputstart
${rescode} Integer $.code
${rescodeReturn} Get From List ${rescode} 0
[Return] ${rescodeReturn}
AddPolicy
[Arguments] ${body}
# ${response} BasePostRequest /${version}/policy/compile body=${body}
${response} BasePostRequest /${version2}/policy/compile body=${body}
#log ${response}
${policyId} Set Variable ${response['data']['policyList'][0]['policyId']}
${rescode} Set Variable ${response['code']}
[Return] ${rescode} ${policyId}
QueryPolicy
[Arguments] ${body}
${response} BaseGetRequest /${version}/policy/compile body=${body}
#log ${response}
${rescode} Set Variable ${response['code']}
[Return] ${rescode} ${response}
QueryObject
#hbn
[Arguments] ${body}
${response} BaseGetRequest /${version}/policy/object body=${body}
log ${response}
${rescode} Set Variable ${response['code']}
[Return] ${rescode} ${response}
AddPolicy2
[Arguments] ${returnData} ${policyList}
${body} PolicyParamsOpertion ${returnData} ${policyList} add
${response} BasePostRequest /${version}/policy/compile body=${body}
${policyId} Set Variable ${response['data']['policyList'][0]['policyId']}
${rescode} Set Variable ${response['code']}
[Return] ${rescode} ${policyId}
AddPolicy2006
[Arguments] ${returnData} ${policyList}
${objectDict} Jsoneditmanu ${policyall} ${policyList}
#${body} Convert To String ${objectDict}
${body} json.Dumps ${objectDict}
#${body} PolicyParamsOpertion ${returnData} ${policyList} add
${response} BasePostRequest /${version}/policy/compile body=${body}
${policyId} Set Variable ${response['data']['policyList'][0]['policyId']}
${rescode} Set Variable ${response['code']}
[Return] ${rescode} ${policyId}
EditPolicy
[Arguments] ${policyList} ${opAction}
#add:表示新增
#update:表示修改策略内容,包括策略名称,策略动作,策略动作参数,引用的策略文件,引用的策略对象等有修改时
#disable:表示停用只修改isValid属性为0
#enable表示启用只修改isValid属性为1
${body} PolicyParamsOpertion ${0} ${policyList} ${opAction}
${response} BaseEditRequest /${version}/policy/compile ${body}
${rescode} Set Variable ${response['code']}
[Return] ${rescode} ${response}
DeletePolicybak
[Arguments] ${policyids}
${body} String {"policyType":"tsg_security","policyIds":[${policyids}]}
DELETE /${version}/policy/compile body=${body} headers=${headers}
Object response body
log DeletePolicy
Output response body
${rescode} Integer $.code
${rescodeReturn} Get From List ${rescode} 0
[Return] ${rescodeReturn}
DeletePolicy
[Arguments] ${body}
#删除策略
log toDeletePolicy_DeletePolicyDeletePolicy
${response} BaseDeleteRequest /${version}/policy/compile ${body}
#{"policyType":"tsg_security","policyIds":[${policyids}]}
${response_code} Get From Dictionary ${response} code
Should Be Equal As Strings ${response_code} 200
${response} Convert to String ${response}
log ${response}
#Should Be Equal As Strings ${response} {'code': 200, 'msg': 'Success', 'success': True}
DeleteObject
[Arguments] ${objectids}
#删除对象
log todeleteobj
${response} BaseDeleteRequest /${version}/policy/object {"objectIds":[${objectids}]}
${response_code} Get From Dictionary ${response} code
#log aaaaaaaaaa:${response_code}
Should Be Equal As Strings ${response_code} 200
#Integer ${response_code} 200
${response} Convert to String ${response}
log ${response}
#Should Be Equal As Strings ${response} {'code': 200, 'msg': 'Success', 'success': True}
DeleteProfile
[Arguments] ${typeUrl} ${profileIds}
#删除对象
log DeleteProfile
${response} BaseDeleteRequest /${version}/policy/profile/${typeUrl} {"profileIds":[${profileIds}]}
${response_code} Get From Dictionary ${response} code
#log aaaaaaaaaa:${response_code}
Should Be Equal As Strings ${response_code} 200
#Integer ${response_code} 200
${response} Convert to String ${response}
log ${response}
#Should Be Equal As Strings ${response} {'code': 200, 'msg': 'Success', 'success': True}
# DeleteProfile_defeated
# [Arguments] ${typeUrl} ${profileIds}
# #删除对象
# log DeleteProfile
# ${response} BaseDeleteRequest /${version}/policy/profile/${typeUrl} {"profileIds":[${profileIds}]}
# ${response_code} Get From Dictionary ${response} code
# #log aaaaaaaaaa:${response_code}
# Should Be Equal As Strings ${response_code} 40090030
# #Integer ${response_code} 200
# ${response} Convert to String ${response}
# log ${response}
# #Should Be Equal As Strings ${response} {'code': 200, 'msg': 'Success', 'success': True}
DeleteProfiles
[Arguments] ${profiles}
FOR ${profile} IN @{profiles}
Run Keyword If "${profile}"!="" and ${profile}!="${EMPTY}" DeleteProfile ${profile}[typeUrl] ${profile}[profileIds]
END
DeletePolicyAndObject
[Arguments] ${policyids} ${objectids}
#删除和对象
#2020-09-01修改引用DeletePolicyAndGroupObject避免分别维护并兼容之前用例
${objectId1} Create List [${objectids}]
DeletePolicyAndGroupObject ${policyIds} ${objectId1}
#删除策略
#log toDeletePolicy_DeletePolicyAndObject
#${listlenth}= Get Length ${policyids}
#FOR ${var} IN RANGE ${listlenth}
#log dxytest111111
#log ${var}
#DeletePolicy ${policyids}[${var}]
#Should Contain ${commandreturn} ${ca}
#END
#删除对象
#log todeleteobj_DeletePolicyAndObject
#Run Keyword If "${objectids}"=="${EMPTY}" log no obj to del
# ... ELSE DeleteObject ${objectids}
DeletePolicyAndGroupObject
[Arguments] ${policyids} ${objectids}
#引用此关键字,${objectids}参数必须是双层列表eg['[1]','[2,3]','[4,5,6,7]']
#删除和对象
#删除策略
log toDeletePolicy_DeletePolicyAndObject
${listlenth}= Get Length ${policyids}
Run Keyword If "${listlenth}"=="0" log no Policys to del
... ELSE DeletePolicys ${policyids}
#删除对象
log todeleteobj_DeletePolicyAndObject
log ${objectids}
Run Keyword If "${objectids}"=="${EMPTY}" log no Objects to del
... ELSE IF ${objectids}==['[]'] log no Objects to del
... ELSE DeleteGroupObjects ${objectids}
DeletePolicys
[Arguments] ${policyids}
${listlenth}= Get Length ${policyids}
FOR ${var} IN RANGE ${listlenth}
log ${var}
DeletePolicy ${policyids}[${var}]
END
DeleteGroupObjects
[Arguments] ${objectids}
FOR ${var} IN @{objectids}
log ${var}
DeleteGroupObject ${var}
END
DeleteGroupObject
[Arguments] ${objectids}
#删除对象
log todeleteobj
${response} BaseDeleteRequest /${version}/policy/object {"objectIds":${objectids}}
${response_code} Get From Dictionary ${response} code
Should Be Equal As Strings ${response_code} 200
${response} Convert to String ${response}
log ${response}
DeletePolicyAndObjectAndProfile
[Arguments] ${policyids} ${objectids} ${profiles}
DeletePolicyAndObject ${policyids} ${objectids}
DeleteProfiles ${profiles}
DeleteAfterCase
[Arguments] ${policyids} ${objectids}
Run Keyword If '${testPart}'=='all' or '${testPart}'=='3' DeletePolicyAndObject ${policyids} ${objectids}
DeletePolicyAndObject1
[Arguments] ${policyids} ${objectids} ${url} ${profiledId}
#删除策略
log toDeletePolicy_DeletePolicyAndObject
${listlenth}= Get Length ${policyids}
FOR ${var} IN RANGE ${listlenth}
log ${var}
DeletePolicy ${policyids}[${var}]
END
#删除对象
log todeleteobj_DeletePolicyAndObject
Run Keyword If "${objectids}"=="${EMPTY}" log no obj to del
... ELSE DeleteObject ${objectids}
#删除文件
log todeleteobj_DeletePolicyAndObject
Run Keyword If "${profiledId}"=="${EMPTY}" log no file to del
... ELSE DeletePolicyFile1 ${url} ${profiledId}
DeletePolicyAndObjectAndVpn
[Arguments] ${policyids} ${objectids} ${wan_vpn}
#删除策略
log toDeletePolicy_DeletePolicyAndObject
${listlenth}= Get Length ${policyids}
FOR ${var} IN RANGE ${listlenth}
log ${var}
DeletePolicy ${policyids}[${var}]
END
#删除对象
log todeleteobj_DeletePolicyAndObject
Run Keyword If "${objectids}"=="${EMPTY}" log no obj to del
... ELSE DeleteObject ${objectids}
#删除文件
log todeleteobj_DeletePolicyAndObject
Run Keyword If "${profiledId}"=="${EMPTY}" log no file to del
... ELSE DeletePolicyFile1 ${url} ${profiledId}
# 删除VPN
log todelete_wan_vpn
Run Keyword If "${wan_vpn}"=="${EMPTY}" log no vpn to del
... ELSE DeleteWanVpn ${wan_vpn}
DeletePolicyAndObjectAndIPpoor
[Arguments] ${policyids} ${objectids} ${wan_ippoor}
#删除策略
log toDeletePolicy_DeletePolicyAndObject
${listlenth}= Get Length ${policyids}
FOR ${var} IN RANGE ${listlenth}
log ${var}
DeletePolicy ${policyids}[${var}]
END
#删除对象
log todeleteobj_DeletePolicyAndObject
Run Keyword If "${objectids}"=="${EMPTY}" log no obj to del
... ELSE DeleteObject ${objectids}
#删除文件
log todeleteobj_DeletePolicyAndObject
Run Keyword If "${profiledId}"=="${EMPTY}" log no file to del
... ELSE DeletePolicyFile1 ${url} ${profiledId}
# 删除VPN
log todelete_wan_vpn
Run Keyword If "${wan_ippoor}"=="${EMPTY}" log no vpn to del
... ELSE DeleteWanIpPood ${wan_ippoor}