2020-04-01 12:42:05 +08:00
*** Settings ***
Resource ../../03-Variable/BifangApiVariable.txt
2020-04-07 14:11:59 +08:00
Resource ../tsg_common/ManagePolicyBody.robot
2020-04-08 19:16:24 +08:00
Resource ../tsg_common/ManageObjectBody.robot
2020-04-14 18:20:47 +08:00
Resource ../../02-Keyword/tsg_bfapi/policy_file_interface/FunctionalKeywords.robot
2020-07-22 18:38:44 +08:00
Resource ../../02-Keyword/tsg_bfapi/policy_object/Object.robot
2020-06-16 16:42:04 +08:00
Library REST http://${host}:${port}
2020-04-01 12:42:05 +08:00
Library Collections
Library RequestsLibrary
Resource Common.robot
*** Keywords ***
AddLocalIPObject
2020-07-22 18:38:44 +08:00
2020-04-01 12:42:05 +08:00
#创建对象IP
log to_AddLocalIPObject
2020-07-22 19:02:59 +08:00
# ${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}
2020-04-14 18:20:47 +08:00
# 创建对象-IP
2020-07-22 19:28:51 +08:00
# Create Dictionary
2020-07-22 18:38:44 +08:00
2020-07-22 19:28:51 +08:00
# ${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}
2020-04-14 18:20:47 +08:00
2020-07-22 19:28:51 +08:00
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 isValid=${1} addItemList=${addItemLists}
${rescode} ${objectId1} AddObjects ${1} ${objectDict}
2020-07-22 18:38:44 +08:00
SET GLOBAL VARIABLE ${testClentID} ${objectId1}
2020-04-09 19:38:26 +08:00
log to_AddLocalSubidObject
2020-04-14 18:20:47 +08:00
${objectDict} Create Dictionary
... objectType=subscriberid
2020-04-16 14:27:54 +08:00
... objectSubType=${Default_ObjectSubType}
... isInitialize=${Default_IsInitialize}
... isExclusion=${Default_IsExclusion}
2020-04-14 18:20:47 +08:00
... objectName=autotest_localSubId_${testSubscriberID}
2020-04-16 14:27:54 +08:00
... objectDesc=${Default_ObjectDesc}
... subObjectIds=${Default_SubObjectIds}
2020-04-14 18:20:47 +08:00
... isValid=${1}
2020-04-16 14:27:54 +08:00
... addItemList=${testSubscriberID}|${Default_AddItem_IsHexbin}|${Default_AddItem_IsInitialize}|${Default_AddItem_ItemName}|${Default_AddItem_ItemDesc}
${rescode} ${subiid} AddObject2 ${1} ${objectDict}
2020-04-09 19:38:26 +08:00
#log ${subiid}
log LocalSubIP: ${subiid}
SET GLOBAL VARIABLE ${testClentSubID} ${subiid}
2020-04-01 12:42:05 +08:00
DelLocalIPObject
log to_DelLocalIPObject
2020-06-16 16:42:04 +08:00
${response} BaseDeleteRequest /${version}/policy/object {"objectIds":[${testClentID}]}
2020-04-01 12:42:05 +08:00
#${response_code} Get From Dictionary ${response} code
2020-04-02 19:50:46 +08:00
#Should Be Equal As Strings ${response} {'code': 200, 'msg': 'Success', 'success': True}
2020-04-01 12:42:05 +08:00
SET GLOBAL VARIABLE ${testClentID} ${EMPTY}
2020-06-16 16:42:04 +08:00
${response} BaseDeleteRequest /${version}/policy/object {"objectIds":[${testClentSubID}]}
2020-04-09 19:38:26 +08:00
SET GLOBAL VARIABLE ${testClentSubID} ${EMPTY}
2020-04-01 12:42:05 +08:00
AddObject
[Arguments] ${body}
#addIPobject#################################################################################
2020-06-16 16:42:04 +08:00
${response} BasePostRequest /${version}/policy/object body=${body}
2020-07-30 19:10:03 +08:00
log 11111111111111${response}
2020-04-01 12:42:05 +08:00
${objectId} Set Variable ${response['data']['objectList'][0]['objectId']}
${rescodeReturn} Set Variable ${response['code']}
[Return] ${rescodeReturn} ${objectId}
2020-04-08 19:16:24 +08:00
AddObject2
2020-06-11 09:26:43 +08:00
[Arguments] ${returnData} ${objectList}
${body} ObjectParamsOpertion ${returnData} ${objectList} add
2020-04-08 19:16:24 +08:00
2020-06-16 16:42:04 +08:00
${response} BasePostRequest /${version}/policy/object body=${body}
2020-04-08 19:16:24 +08:00
${objectId} Set Variable ${response['data']['objectList'][0]['objectId']}
${rescodeReturn} Set Variable ${response['code']}
[Return] ${rescodeReturn} ${objectId}
2020-04-01 12:42:05 +08:00
2020-08-03 15:20:03 +08:00
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}
2020-08-07 18:02:06 +08:00
Add&EditWanIpPood
[Arguments] ${must_parameter} ${wan_nat_ip_iplist}
${body} WanNatIpPood ${must_parameter} ${wan_nat_ip_iplist}
log ${body}
2020-08-11 14:17:43 +08:00
# ${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"}]}
2020-08-07 18:02:06 +08:00
${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']}
2020-08-11 14:17:43 +08:00
${response_id} Set Variable ${response['data']['list'][0]['profileId']}
# log 11111111111111111111222222222222222
# log ${response_id}
2020-08-07 18:02:06 +08:00
Should Be Equal As Strings ${response_code} 200
${response} Convert to String ${response}
log ${response}
2020-08-11 14:17:43 +08:00
[Return] ${response_id}
2020-08-07 18:02:06 +08:00
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}
2020-08-13 09:32:08 +08:00
Add&Edit_PacketCapture
[Arguments] ${PacketCapture_data}
${body} PacketCapture ${PacketCapture_data}
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}[profileId]'=="" BasePostRequest /${version}/troubleshooting/packetcapture/policy ${body}
... ELSE BaseEditRequestOK /${version}/troubleshooting/packetcapture/policy ${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}
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}
2020-08-07 18:02:06 +08:00
2020-08-03 15:20:03 +08:00
2020-04-01 12:42:05 +08:00
EditObject
2020-06-11 09:26:43 +08:00
[Arguments] ${objectList} ${opAction}
${body} ObjectParamsOpertion ${0} ${objectList} ${opAction}
2020-06-16 16:42:04 +08:00
${response} BaseEditRequest /${version}/policy/object ${body}
2020-06-11 09:26:43 +08:00
${rescodeReturn} Set Variable ${response['code']}
[Return] ${rescodeReturn}
2020-04-01 12:42:05 +08:00
DeleteObjectbak
[Arguments] ${objectids}
${body} String {"objectIds":[${objectids}]}
2020-04-28 17:03:28 +08:00
DELETE /policy/object body=${body} headers=${headers}
2020-04-01 12:42:05 +08:00
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}
2020-07-21 19:21:39 +08:00
# ${response} BasePostRequest /${version}/policy/compile body=${body}
${response} BasePostRequest /${version2}/policy/compile body=${body}
2020-04-01 12:42:05 +08:00
#log ${response}
${policyId} Set Variable ${response['data']['policyList'][0]['policyId']}
${rescode} Set Variable ${response['code']}
[Return] ${rescode} ${policyId}
2020-05-07 17:23:25 +08:00
QueryPolicy
[Arguments] ${body}
2020-06-16 16:42:04 +08:00
${response} BaseGetRequest /${version}/policy/compile body=${body}
2020-05-07 17:23:25 +08:00
#log ${response}
${rescode} Set Variable ${response['code']}
[Return] ${rescode} ${response}
2020-04-07 14:11:59 +08:00
AddPolicy2
[Arguments] ${returnData} ${policyList}
2020-04-28 17:03:28 +08:00
${body} PolicyParamsOpertion ${returnData} ${policyList} add
2020-04-08 19:16:24 +08:00
2020-06-16 16:42:04 +08:00
${response} BasePostRequest /${version}/policy/compile body=${body}
2020-04-07 14:11:59 +08:00
${policyId} Set Variable ${response['data']['policyList'][0]['policyId']}
${rescode} Set Variable ${response['code']}
[Return] ${rescode} ${policyId}
2020-06-11 09:26:43 +08:00
AddPolicy2006
[Arguments] ${returnData} ${policyList}
${objectDict} Jsoneditmanu ${policyall} ${policyList}
#${body} Convert To String ${objectDict}
${body} json.Dumps ${objectDict}
#${body} PolicyParamsOpertion ${returnData} ${policyList} add
2020-04-07 14:11:59 +08:00
2020-06-16 16:42:04 +08:00
${response} BasePostRequest /${version}/policy/compile body=${body}
2020-06-11 09:26:43 +08:00
${policyId} Set Variable ${response['data']['policyList'][0]['policyId']}
${rescode} Set Variable ${response['code']}
[Return] ${rescode} ${policyId}
2020-04-01 12:42:05 +08:00
EditPolicy
2020-05-07 20:00:23 +08:00
[Arguments] ${policyList} ${opAction}
2020-05-07 17:23:25 +08:00
#add:表示新增
#update:表示修改策略内容,包括策略名称,策略动作,策略动作参数,引用的策略文件,引用的策略对象等有修改时
#disable:表示停用, 只修改isValid属性为0
#enable: 表示启用, 只修改isValid属性为1
2020-05-07 20:00:23 +08:00
${body} PolicyParamsOpertion ${0} ${policyList} ${opAction}
2020-06-16 16:42:04 +08:00
${response} BaseEditRequest /${version}/policy/compile ${body}
2020-05-07 17:23:25 +08:00
${rescode} Set Variable ${response['code']}
2020-05-07 19:50:49 +08:00
[Return] ${rescode} ${response}
2020-04-01 12:42:05 +08:00
DeletePolicybak
[Arguments] ${policyids}
${body} String {"policyType":"tsg_security","policyIds":[${policyids}]}
2020-06-16 16:42:04 +08:00
DELETE /${version}/policy/compile body=${body} headers=${headers}
2020-04-01 12:42:05 +08:00
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
2020-06-16 16:42:04 +08:00
${response} BaseDeleteRequest /${version}/policy/compile ${body}
2020-04-01 12:42:05 +08:00
#{"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}
2020-04-02 19:50:46 +08:00
log ${response}
#Should Be Equal As Strings ${response} {'code': 200, 'msg': 'Success', 'success': True}
2020-04-01 12:42:05 +08:00
DeleteObject
[Arguments] ${objectids}
#删除对象
log todeleteobj
2020-06-16 16:42:04 +08:00
${response} BaseDeleteRequest /${version}/policy/object {"objectIds":[${objectids}]}
2020-04-01 12:42:05 +08:00
${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}
2020-04-02 19:50:46 +08:00
log ${response}
#Should Be Equal As Strings ${response} {'code': 200, 'msg': 'Success', 'success': True}
2020-06-16 18:13:05 +08:00
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}
2020-07-21 19:21:39 +08:00
# 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}
2020-06-16 18:13:05 +08:00
DeleteProfiles
[Arguments] ${profiles}
FOR ${profile} IN @{profiles}
Run Keyword If "${profile}"!="" and ${profile}!="${EMPTY}" DeleteProfile ${profile}[typeUrl] ${profile}[profileIds]
END
2020-04-01 12:42:05 +08:00
DeletePolicyAndObject
2020-08-04 14:39:30 +08:00
[Arguments] ${policyids} ${objectids}
2020-04-01 12:42:05 +08:00
#删除和对象
#删除策略
log toDeletePolicy_DeletePolicyAndObject
${listlenth}= Get Length ${policyids}
FOR ${var} IN RANGE ${listlenth}
#log dxytest111111
log ${var}
2020-07-30 19:10:03 +08:00
DeletePolicy ${policyids}[${var}]
2020-04-01 12:42:05 +08:00
#Should Contain ${commandreturn} ${ca}
END
#删除对象
log todeleteobj_DeletePolicyAndObject
2020-04-24 18:44:07 +08:00
Run Keyword If "${objectids}"=="${EMPTY}" log no obj to del
2020-06-16 18:13:05 +08:00
... ELSE DeleteObject ${objectids}
2020-08-06 17:46:04 +08:00
DeletePolicyAndGroupObject
[Arguments] ${policyids} ${objectids}
#引用此关键字,${objectids}参数必须是双层列表, eg: ['[1]','[2,3]','[4,5,6,7]']
#删除和对象
#删除策略
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 DeleteGroupObjects ${objectids}
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}
2020-06-16 18:13:05 +08:00
DeletePolicyAndObjectAndProfile
[Arguments] ${policyids} ${objectids} ${profiles}
DeletePolicyAndObject ${policyids} ${objectids}
DeleteProfiles ${profiles}
2020-04-21 13:30:41 +08:00
DeleteAfterCase
[Arguments] ${policyids} ${objectids}
Run Keyword If '${testPart}'=='all' or '${testPart}'=='3' DeletePolicyAndObject ${policyids} ${objectids}
2020-06-16 11:48:13 +08:00
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}
2020-08-05 17:54:28 +08:00
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}
2020-08-11 15:20:07 +08:00
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}