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/policy/PolicyJsonVariable.robot
dongxiaoyan 21e0834607 1、IP类适配GEO类型;
2、appid变量内置初始化补全;
3、策略对象删除必填部分校验;
4、公共对象适配addobjects;
2021-01-26 17:56:36 +08:00

397 lines
35 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 ***
Library Collections
Library RequestsLibrary
Resource ../../../03-Variable/BifangApiVariable.txt
Variables ../../../05-Other/variable/policy/apipolicyjsonbase.py
Library json
Library ../../../04-CustomLibrary/Custometest/Common.py
*** Variables ***
*** Keywords ***
JsonIPItem
[Documentation]
... 生成IP催下json
... parm${ip}Example Format
... IPv4 x.x.x.x
... IPv4 CIDR x.x.x.x/n
... IPv4 Range x.x.x.x-y.y.y.y
... IPv6 CIDR x:x:x::x/n
... IPv6 Range x:x:x::x-y:y:y::y
... parm ${port}
... Port Range
... 0-65535
[Arguments] ${parmList}
#"ip":"1.1.1.1","ipIf":false,"portIf":false,"port":"0-65535","itemId":"","clientIp1":"1.1.1.1","clientIp2":"1.1.1.1","clientPort1":"","clientPort2":"","clientIpFormat":"range","clientPortFormat":"range","addrType":4,"direction":0
log ${Test-LoadBase_IP_OBJ_IP}
${clientIp1} Set Variable ${EMPTY}
${clientIp2} Set Variable ${EMPTY}
${clientPort1} Set Variable ${EMPTY}
${clientPort2} Set Variable ${EMPTY}
${clientIpFormat} Set Variable ${EMPTY}
${clientPortFormat} Set Variable ${EMPTY}
${addrType} Set Variable ${EMPTY}
${itemId} Set Variable ${EMPTY}
${ip} Get From List ${parmList} 0
${port} Get From List ${parmList} 1
${isinclude} aisincludeb . ${ip}
${addrType} Set Variable If '${isinclude}'=='True' 4 6
${Test-LoadBase_IP_OBJ_IP} Replace String ${Test-LoadBase_IP_OBJ_IP} base_ip ${ip}
${Test-LoadBase_IP_OBJ_IP} Replace String ${Test-LoadBase_IP_OBJ_IP} base_port ${port}
${Test-LoadBase_IP_OBJ_IP} Replace String ${Test-LoadBase_IP_OBJ_IP} base_clientIp1 ${clientIp1}
${Test-LoadBase_IP_OBJ_IP} Replace String ${Test-LoadBase_IP_OBJ_IP} base_clientIp2 ${clientIp1}
${Test-LoadBase_IP_OBJ_IP} Replace String ${Test-LoadBase_IP_OBJ_IP} base_clientPort1 ${clientPort1}
${Test-LoadBase_IP_OBJ_IP} Replace String ${Test-LoadBase_IP_OBJ_IP} base_clientPort2 ${clientPort2}
${Test-LoadBase_IP_OBJ_IP} Replace String ${Test-LoadBase_IP_OBJ_IP} base_clientIpFormat ${clientIpFormat}
${Test-LoadBase_IP_OBJ_IP} Replace String ${Test-LoadBase_IP_OBJ_IP} base_clientPortFormat ${clientPortFormat}
${Test-LoadBase_IP_OBJ_IP} Replace String ${Test-LoadBase_IP_OBJ_IP} base_addrType ${addrType}
${Test-LoadBase_IP_OBJ_IP} Replace String ${Test-LoadBase_IP_OBJ_IP} base_itemId ${itemId}
[Return] ${Test-LoadBase_IP_OBJ_IP}
JsonGEOItem
[Documentation]
... 生成GEOjson
... parm${ip}Example Format
... Armenia.Abovyan.* Armenia.Agarak.* Armenia.*
... [Return] josn{"keywordArray":["Armenia.Agarak.*"]}
[Arguments] ${parmList}
#"Test-LoadBase_IP_OBJ_GEO":'{"keywordArray":["base_keywordArray"]}'
log ${Test-LoadBase_IP_OBJ_GEO}
${keywordArray} Get From List ${parmList} 0
${Test-LoadBase_IP_OBJ_GEO} Replace String ${Test-LoadBase_IP_OBJ_GEO} base_keywordArray ${keywordArray}
[Return] ${Test-LoadBase_IP_OBJ_GEO}
JsonIPLEARNItem
[Documentation]
... 生成单个对象
... parm${parmList}Example Format
... ${fromFqdns} "*abc.com","$www.dce.com"
... ${fromProtocol} HTTP,SSL
... ${learningDepth} 1 2
... ${agingTime} 1至2147483647
... ${voteClientNum} 1至10000
... ${learnedIpLimit} 1至10000
... [Return]"fromFqdns":[base_fromFqdns],"fromProtocol":"base_fromProtocol","learningDepth":"base_learningDepth","agingTime":"base_agingTime","voteClientNum":"base_voteClientNum","learnedIpLimit":"base_learnedIpLimit"
[Arguments] ${parmList}
#"Test-LoadBase_IP_OBJ_LEARN":'"fromFqdns":[base_fromFqdns],"fromProtocol":"base_fromProtocol","learningDepth":"base_learningDepth","agingTime":"base_agingTime","voteClientNum":"base_voteClientNum","learnedIpLimit":"base_learnedIpLimit"',
log ${Test-LoadBase_IP_OBJ_LEARN}
#${fromFqdns} ${fromProtocol} ${learningDepth} ${agingTime} ${voteClientNum} ${learnedIpLimit}
${fromFqdns} Get From List ${parmList} 0
${fromProtocol} Get From List ${parmList} 1
${learningDepth} Get From List ${parmList} 2
${agingTime} Get From List ${parmList} 3
${voteClientNum} Get From List ${parmList} 4
${learnedIpLimit} Get From List ${parmList} 5
${Test-LoadBase_IP_OBJ_LEARN} Replace String ${Test-LoadBase_IP_OBJ_LEARN} base_fromFqdns ${fromFqdns}
${Test-LoadBase_IP_OBJ_LEARN} Replace String ${Test-LoadBase_IP_OBJ_LEARN} base_fromProtocol ${fromProtocol}
${Test-LoadBase_IP_OBJ_LEARN} Replace String ${Test-LoadBase_IP_OBJ_LEARN} base_learningDepth ${learningDepth}
${Test-LoadBase_IP_OBJ_LEARN} Replace String ${Test-LoadBase_IP_OBJ_LEARN} base_agingTime ${agingTime}
${Test-LoadBase_IP_OBJ_LEARN} Replace String ${Test-LoadBase_IP_OBJ_LEARN} base_voteClientNum ${voteClientNum}
${Test-LoadBase_IP_OBJ_LEARN} Replace String ${Test-LoadBase_IP_OBJ_LEARN} base_learnedIpLimit ${learnedIpLimit}
[Return] ${Test-LoadBase_IP_OBJ_LEARN}
JsonKeywords
[Documentation]
... 生成单个对象
... parm${parmList}Example Format${itemId} Get From List ${parmList} 0
... ${keywordArray} Get From List ${parmList} 1
... 支持如下匹配方式:
... abcsubstring matching
... *abcsuffix matching
... abc*prefix matching
... $abcexactly matching
... ${isHexbin} Get From List ${parmList} 2
... 0:大小写不敏感且非HEX缺省
... 1:HEX格式二进制
... 2:大小写敏感且非HEX
... ${isInitialize} Get From List ${parmList} 3
... 0非内置单元
... 1内置单元
... 缺省为0
... [Return] json{"keywordArray":["base_keywordArray"],"itemId":"base_itemId","isHexbin":"base_isHexbin","isInitialize":base_isInitialize}
[Arguments] ${parmList}
#[Arguments] ${itemId} ${keywordArray} ${isHexbin} ${isInitialize}
#"Test-LoadBase_KEYWORDS":'{"keywordArray":["base_keywordArray"],"itemId":"base_itemId","isHexbin":"base_isHexbin","isInitialize":base_isInitialize}',
log ${Test-LoadBase_KEYWORDS}
${itemId} Get From List ${parmList} 0
${keywordArray} Get From List ${parmList} 1
${isHexbin} Get From List ${parmList} 2
${isInitialize} Get From List ${parmList} 3
${Test-LoadBase_KEYWORDS} Replace String ${Test-LoadBase_KEYWORDS} base_keywordArray ${keywordArray}
${Test-LoadBase_KEYWORDS} Replace String ${Test-LoadBase_KEYWORDS} base_itemId ${itemId}
${Test-LoadBase_KEYWORDS} Replace String ${Test-LoadBase_KEYWORDS} base_isHexbin ${isHexbin}
${Test-LoadBase_KEYWORDS} Replace String ${Test-LoadBase_KEYWORDS} base_isInitialize ${isInitialize}
[Return] ${Test-LoadBase_KEYWORDS}
JsonDISTRICTKeywords
[Documentation]
... 生成单个对象
... parm${parmList}Example Format${itemId} Get From List ${parmList} 0
... ${keywordArray} Get From List ${parmList} 1
... 支持如下匹配方式:
... abcsubstring matching
... *abcsuffix matching
... abc*prefix matching
... $abcexactly matching
... ${isHexbin} Get From List ${parmList} 2
... 0:大小写不敏感且非HEX缺省
... 1:HEX格式二进制
... 2:大小写敏感且非HEX
... ${isInitialize} Get From List ${parmList} 3
... 0非内置单元
... 1内置单元
... 缺省为0
... ${district} 指定位置
... [Return] json{"keywordArray":["base_keywordArray"],"itemId":"base_itemId","isHexbin":"base_isHexbin","isInitialize":base_isInitialize}
[Arguments] ${parmList}
#${itemId} ${keywordArray} ${isHexbin} ${isInitialize} ${district}
#"Test-LoadBase_KEYWORDS":'{"keywordArray":["base_keywordArray"],"itemId":"base_itemId","isHexbin":"base_isHexbin","isInitialize":base_isInitialize}',
log ${Test-LoadBase_KEYWORDS}
${itemId} Get From List ${parmList} 0
${keywordArray} Get From List ${parmList} 1
${isHexbin} Get From List ${parmList} 2
${isInitialize} Get From List ${parmList} 3
${district} Get From List ${parmList} 4
#"Test-LoadBase_DISTRICTKEYWORDS":'{"keywordArray":["base_keywordArray"],"district":"base_district","itemId":"base_itemId","isHexbin":"base_isHexbin","isInitialize":base_isInitialize}',
log ${Test-LoadBase_DISTRICTKEYWORDS}
${Test-LoadBase_DISTRICTKEYWORDS} Replace String ${Test-LoadBase_DISTRICTKEYWORDS} base_keywordArray ${keywordArray}
${Test-LoadBase_DISTRICTKEYWORDS} Replace String ${Test-LoadBase_DISTRICTKEYWORDS} base_district ${district}
${Test-LoadBase_DISTRICTKEYWORDS} Replace String ${Test-LoadBase_DISTRICTKEYWORDS} base_itemId ${itemId}
${Test-LoadBase_DISTRICTKEYWORDS} Replace String ${Test-LoadBase_DISTRICTKEYWORDS} base_isHexbin ${isHexbin}
${Test-LoadBase_DISTRICTKEYWORDS} Replace String ${Test-LoadBase_DISTRICTKEYWORDS} base_isInitialize ${isInitialize}
[Return] ${Test-LoadBase_DISTRICTKEYWORDS}
JsonNumberOrFile
[Arguments] ${itemId} ${lowBoundary} ${upBoundary} ${isInitialize}
#"Test-LoadBase_NUMBERORFILE":'{"lowBoundary":base_lowBoundary,"upBoundary":base_upBoundary,"itemId":"base_itemId","isInitialize":base_isInitialize}',
log ${Test-LoadBase_NUMBERORFILE}
${Test-LoadBase_NUMBERORFILE} Replace String ${Test-LoadBase_NUMBERORFILE} base_lowBoundary ${lowBoundary}
${Test-LoadBase_NUMBERORFILE} Replace String ${Test-LoadBase_NUMBERORFILE} base_upBoundary ${upBoundary}
${Test-LoadBase_NUMBERORFILE} Replace String ${Test-LoadBase_NUMBERORFILE} base_itemId ${itemId}
${Test-LoadBase_NUMBERORFILE} Replace String ${Test-LoadBase_NUMBERORFILE} base_isInitialize ${isInitialize}
[Return] ${Test-LoadBase_NUMBERORFILE}
JsonOBJ
[Documentation]
... 生成单个对象
... parm${parmList}Example Format
... ${objectType} Get From List ${parmList} 0
... ${objectSubType} Get From List ${parmList} 1
... ${objectName} Get From List ${parmList} 2
... ${addItemList} Get From List ${parmList} 3
... ${updateItemList} Get From List ${parmList} 4
... ${deleteItemIds} Get From List ${parmList} 5
... ${subObjectIds} Get From List ${parmList} 6
... ${ipLearning} Get From List ${parmList} 7
[Arguments] ${parmList}
#${objectType} ${objectSubType} ${objectName} ${itemList}
#"Test-LoadBase_IP_OBJ":'{"objectType":"base_objectType","objectSubType":"base_objectSubType","isValid":base_isValid,"isInitialize":base_isInitialize,"isExclusion":base_isExclusion,"objectName":"base_objectName","objectDesc":"base_objectDesc","subObjectIds":[base_subObjectIds],"addItemList":[base_addItemList],"updateItemList":[base_updateItemList],"deleteItemIds":[base_deleteItemIds],"iconColor":"base_iconColor"}',
log ${Test-LoadBase_OBJ}
${isValid} Set Variable 1
${isInitialize} Set Variable 0
${isExclusion} Set Variable 0
#${objectSubType} Set Variable ${objectSubType}
#${objectName} Set Variable ${objectName}
${objectDesc} Set Variable AUTOTEST
#${addItemList} ${updateItemList} ${deleteItemIds} ${subObjectIds} ${ipLearning}
#${listlenth}= Get Length ${parmList}
#FOR ${var} IN RANGE ${listlenth}
# log ${var}
# ${tempValue${var}} Get From List ${listtest} ${var}
#END
${objectType} Get From List ${parmList} 0
${objectSubType} Get From List ${parmList} 1
${objectName} Get From List ${parmList} 2
${addItemList} Get From List ${parmList} 3
${updateItemList} Get From List ${parmList} 4
${deleteItemIds} Get From List ${parmList} 5
${subObjectIds} Get From List ${parmList} 6
${ipLearning} Get From List ${parmList} 7
${iconColor} Get From List ${parmList} 8
${iconColor} Set Variable IF "${iconColor}"=="${EMPTY}" 31739C ${iconColor}
${Test-LoadBase_OBJ} Replace String ${Test-LoadBase_OBJ} base_isValid ${isValid}
${Test-LoadBase_OBJ} Replace String ${Test-LoadBase_OBJ} base_isInitialize ${isInitialize}
${Test-LoadBase_OBJ} Replace String ${Test-LoadBase_OBJ} base_isExclusion ${isExclusion}
${Test-LoadBase_OBJ} Replace String ${Test-LoadBase_OBJ} base_objectName ${objectName}
${Test-LoadBase_OBJ} Replace String ${Test-LoadBase_OBJ} base_objectDesc ${objectDesc}
${Test-LoadBase_OBJ} Replace String ${Test-LoadBase_OBJ} base_iconColor ${iconColor}
#${Test-LoadBase_OBJ} Replace String ${Test-LoadBase_OBJ} base_objectType ${tempValue1}
#${Test-LoadBase_OBJ} Replace String ${Test-LoadBase_OBJ} base_objectSubType ${tempValue2}
#${Test-LoadBase_OBJ} Replace String ${Test-LoadBase_OBJ} base_objectName ${tempValue3}
#${Test-LoadBase_OBJ} Replace String ${Test-LoadBase_OBJ} base_addItemList ${tempValue4}
#${Test-LoadBase_OBJ} Replace String ${Test-LoadBase_OBJ} base_updateItemList ${tempValue5}
#${Test-LoadBase_OBJ} Replace String ${Test-LoadBase_OBJ} base_deleteItemIds ${tempValue6}
#${Test-LoadBase_OBJ} Replace String ${Test-LoadBase_OBJ} base_subObjectIds ${tempValue7}
#${Test-LoadBase_OBJ} Replace String ${Test-LoadBase_OBJ} base_IPLEARN ${tempValue8}
${Test-LoadBase_OBJ} Replace String ${Test-LoadBase_OBJ} base_objectType ${objectType}
${Test-LoadBase_OBJ} Replace String ${Test-LoadBase_OBJ} base_objectSubType ${objectSubType}
${Test-LoadBase_OBJ} Replace String ${Test-LoadBase_OBJ} base_objectName ${objectName}
${Test-LoadBase_OBJ} Replace String ${Test-LoadBase_OBJ} base_addItemList ${addItemList}
${Test-LoadBase_OBJ} Replace String ${Test-LoadBase_OBJ} base_updateItemList ${updateItemList}
${Test-LoadBase_OBJ} Replace String ${Test-LoadBase_OBJ} base_deleteItemIds ${deleteItemIds}
${Test-LoadBase_OBJ} Replace String ${Test-LoadBase_OBJ} base_subObjectIds ${subObjectIds}
${ipLearning} run keyword if '${objectSubType}' == 'ip_learning' set variable ,${ipLearning}
... ELSE set variable ${EMPTY}
${Test-LoadBase_OBJ} Replace String ${Test-LoadBase_OBJ} base_IPLEARN ${ipLearning}
[Return] ${Test-LoadBase_OBJ}
JsonOBJS
[Documentation]
... 生成新增对象接口的json
... parm${parmList}Example Format
... 操作参数add:表示新增${opAction} Get From List ${parmList} 0
... update:表示修改策略对象内容,包括对象名称,对象引用的子级策略对象等有修改时
... disable:表示停用只修改isValid属性为0
... enable表示启用只修改isValid属性为1
... ${returnData}是否返回请求数据(新增)${returnData} Get From List ${parmList} 1
... 1返回
... 0不返回 默认; Get From List ${parmList} 1
... 对象列表:${objectList} Get From List ${parmList} 2
[Arguments] ${parmList}
#"Test-LoadBase_OBJS":'{"opAction":"base_opAction","refuseCode":true,"returnData":base_returnData,"objectList":[base_objectList]}',
log ${Test-LoadBase_OBJS}
${opAction} Get From List ${parmList} 0
${returnData} Get From List ${parmList} 1
${objectList} Get From List ${parmList} 2
${Test-LoadBase_OBJS} Replace String ${Test-LoadBase_OBJS} base_opAction ${opAction}
${Test-LoadBase_OBJS} Replace String ${Test-LoadBase_OBJS} base_returnData ${returnData}
${Test-LoadBase_OBJS} Replace String ${Test-LoadBase_OBJS} base_objectList ${objectList}
#2020-12-30
#策略:{"opAction":"add","refuseCode":true,"policyList":{"policyId":"","policyName":"dxytest","policyType":"tsg_security","action":"deny","userTags":"451,455,429","doBlacklist":0,"doLog":1,"policyDesc":"TSG-4961TSG-4961TSG-4961TSG-4961","effectiveRange":{"tag_sets":[[{"tag":"data_center","value":["Nur-sultan","Aktau"],"ids":[2,3]}],[{"tag":"data_center","value":["Aktubinsk"],"ids":[4]}]]},"userRegion":{"method":"drop"},"source":[{"objectId":108300,"protocolField":"TSG_SECURITY_SOURCE_ADDR","objectName":"dxytest50.9,50.29,50.40","objectType":"ip","objectSubType":"endpoint","objectDesc":"","iconColor":""},{"objectId":108430,"protocolField":"TSG_SECURITY_SOURCE_ADDR","objectName":"dxytest关系subobj","objectType":"ip","objectSubType":"endpoint","objectDesc":"啊手动阀","iconColor":"#31739C"},{"objectId":109036,"protocolField":"","objectName":"dxytest40","objectType":"subscriberid","objectDesc":"","iconColor":"#31739C"},{"objectId":108577,"protocolField":"","objectName":"dxytest50.8","objectType":"subscriberid","objectDesc":"","iconColor":"#31739C"},{"objectId":108431,"protocolField":"TSG_SECURITY_SOURCE_LOCATION","objectName":"dxytestsubGeography","objectType":"ip","objectSubType":"geo_location","objectDesc":"","iconColor":"#31739C"},{"objectId":108433,"protocolField":"TSG_SECURITY_SOURCE_LOCATION","objectName":"dxytestGeography引用一级sub","objectType":"ip","objectSubType":"geo_location","objectDesc":"","iconColor":"#31739C"},{"objectId":108428,"protocolField":"TSG_SECURITY_SOURCE_ADDR","objectName":"dxytest","objectType":"ip","objectSubType":"ip_learning","objectDesc":"","iconColor":"#31739C"},{"objectId":108415,"protocolField":"TSG_SECURITY_SOURCE_ADDR","objectName":"dxytestlearning","objectType":"ip","objectSubType":"ip_learning","objectDesc":"*.platinumai.net\n*m.iqiyipic.com\n*.sogou.com","iconColor":"#E46D6D"}],"destination":[{"objectId":108300,"protocolField":"TSG_SECURITY_DESTINATION_ADDR","objectName":"dxytest50.9,50.29,50.40","objectType":"ip","objectSubType":"endpoint","objectDesc":"","iconColor":""},{"objectId":111766,"protocolField":"TSG_SECURITY_DESTINATION_ADDR","objectName":"dxytest引用","objectType":"ip","objectSubType":"endpoint","objectDesc":"","iconColor":"#31739C"},{"objectId":144695,"protocolField":"TSG_SECURITY_DESTINATION_LOCATION","objectName":"dxytestGeography","objectType":"ip","objectSubType":"geo_location","objectDesc":"","iconColor":"#31739C"},{"objectId":125097,"protocolField":"TSG_SECURITY_DESTINATION_LOCATION","objectName":"dxytest城市","objectType":"ip","objectSubType":"geo_location","objectDesc":"","iconColor":"#31739C"},{"objectId":110307,"protocolField":"TSG_SECURITY_DESTINATION_ADDR","objectName":"dxytest","objectType":"ip","objectSubType":"ip_learning","objectDesc":"","iconColor":"#31739C"},{"objectId":110292,"protocolField":"TSG_SECURITY_DESTINATION_ADDR","objectName":"dxytest3996","objectType":"ip","objectSubType":"ip_learning","objectDesc":"dxytest","iconColor":"#31739C"}],"filterList":[],"appIdObjects":[21,24,25,44],"appSelectorObjects":[],"isValid":0,"scheduleId":[233,55]}}
#IP对象{"opAction":"add","refuseCode":true,"returnData":0,"objectList":{"objectType":"ip","objectSubType":"endpoint","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"dxytest","objectDesc":"sdf","subObjectIds":[],"addItemList":[{"ip":"1.1.1.1","ipIf":false,"portIf":false,"port":"0-65535","itemId":"","clientIp1":"1.1.1.1","clientIp2":"1.1.1.1","clientPort1":"","clientPort2":"","clientIpFormat":"range","clientPortFormat":"range","addrType":4,"direction":0,"temporaryItemId":1609325256},{"ip":"2.2.2.2","ipIf":false,"portIf":false,"port":"1-65535","itemId":"","clientIp1":"2.2.2.2","clientIp2":"2.2.2.2","clientPort1":"1","clientPort2":"65535","clientIpFormat":"range","clientPortFormat":"range","addrType":4,"direction":0,"temporaryItemId":1609325266},{"ip":"3.3.3.3","ipIf":false,"portIf":false,"port":"65535","itemId":"","clientIp1":"3.3.3.3","clientIp2":"3.3.3.3","clientPort1":"65535","clientPort2":"65535","clientIpFormat":"range","clientPortFormat":"range","addrType":4,"direction":0,"temporaryItemId":1609325277},{"ip":"1.1.1.1-1.1.1.254","ipIf":false,"portIf":false,"port":"0-65535","itemId":"","clientIp1":"","clientIp2":"","clientPort1":"","clientPort2":"","clientIpFormat":"range","clientPortFormat":"range","addrType":4,"direction":0,"temporaryItemId":1609325293},{"ip":"2.2.2.2-2.2.2.254","ipIf":false,"portIf":false,"port":"8080","itemId":"","clientIp1":"","clientIp2":"","clientPort1":"8080","clientPort2":"8080","clientIpFormat":"range","clientPortFormat":"range","addrType":4,"direction":0,"temporaryItemId":1609325335},{"ip":"a1::b1/128","ipIf":false,"portIf":false,"port":"0-65535","itemId":"","clientIp1":"a1::b1","clientIp2":"a1::b1","clientPort1":"","clientPort2":"","clientIpFormat":"CIDR","clientPortFormat":"range","addrType":6,"direction":0,"temporaryItemId":1609325350}],"updateItemList":[],"deleteItemIds":[],"iconColor":"#E46D6D"}}
#IP对象引用{"opAction":"add","refuseCode":true,"returnData":0,"objectList":{"objectType":"ip","objectSubType":"endpoint","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"dxytest","objectDesc":"asdf","subObjectIds":[155107],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"iconColor":"#31739C"}}
#Geography对象{"opAction":"add","refuseCode":true,"returnData":0,"objectList":{"objectType":"ip","objectSubType":"geo_location","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"dxytest","objectDesc":"asdf","subObjectIds":[],"addItemList":[{"keywordArray":["Armenia.Abovyan.*"]},{"keywordArray":["Armenia.Agarak.*"]},{"keywordArray":["Iran.Abadan.*"]},{"keywordArray":["1000.1000.*"]}],"updateItemList":[],"deleteItemIds":[],"iconColor":"#31739C"}}
#IPLearnning{"opAction":"add","refuseCode":true,"returnData":0,"objectList":{"objectType":"ip","objectSubType":"ip_learning","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"dxytest","objectDesc":"1111","subObjectIds":[],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"iconColor":"#31739C","fromFqdns":["*abc.com","$www.dce.com"],"fromProtocol":"HTTP,SSL","learningDepth":"2","agingTime":"48","voteClientNum":"20","learnedIpLimit":10000}}
#fqdn{"opAction":"add","refuseCode":true,"returnData":0,"objectList":{"objectType":"fqdn","objectSubType":"fqdn","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"dxytest","objectDesc":"asdf","subObjectIds":[],"addItemList":[{"keywordArray":["$www.abc.com"],"t":"16093258203690","itemId":"","isHexbin":0,"state":2},{"keywordArray":["*bec.com"],"t":"16093258203691","isHexbin":0,"state":2}],"updateItemList":[],"deleteItemIds":[],"iconColor":"#31739C"}}
#subid{"opAction":"add","refuseCode":true,"returnData":0,"objectList":{"objectType":"subscriberid","objectSubType":"subscriberid","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"dxytest","objectDesc":"$test3","subObjectIds":[],"addItemList":[{"keywordArray":"$test30","status":"","temporaryId":1609384206},{"status":"","keywordArray":"$test31","temporaryId":1609384242},{"keywordArray":"$test1","itemDesc":"{source:history_recommend,IP:192.168.50.4FIRST_FOUND_TIME:2020-12-14 13:11:22,LAST_FOUND_TIME:2020-12-15 20:03:06}","customId":"18test1","type":null,"ifEdit":"noEdit","searcHide":true}],"updateItemList":[],"deleteItemIds":[],"iconColor":"#31739C"}}
[Return] ${Test-LoadBase_OBJS}
JsonPolicy
[Documentation]
... 生成新增对象接口的json
... parm${parmList}Example Format,相关参数说明地址https://docs.geedge.net/pages/viewpage.action?pageId=8041075
... 策略id新增为空修改不为空${policyId} Get From List ${parmList} 0
... 是否有效0无效1有效${isValid} Get From List ${parmList} 1
... ${policyName} Get From List ${parmList} 2
... policyList对象属性策略类型tsg_security安全策略pxy_manipulationproxy控制策略pxy_cacheproxy缓存策略active_defence主动防御策略inline_device串联设备策略${policyType} Get From List ${parmList} 3
... policyList对象属性安全策略allow:128;monitor:1;deny:16;intercept:2;代理管控策略deny:16;manipulation48;allow:128;monitor:1;主动防御策略activeDefence:4;串联设备策略inlineDevice:96;地址转换策略wannat8;pxy_tcp_option代理tcp option设置策略none0.此参数只输入字符串不输入数字${action} Get From List ${parmList} 4
... 策略标签policyList对象属性标签ID【可用于标识第三方的任务ID等信息】, 多个标签用英文逗号","分割${userTags} Get From List ${parmList} 5
... policyList对象属性是否生成日志0不需要1:需要2只记录结构化日志${doLog} Get From List ${parmList} 6
... 动作参数对象:${userRegion} Get From List ${parmList} 7
... source的多个object+protocolField之间是“或”的关系 ${source} Get From List ${parmList} 8
... destination的多个object+protocolField之间是“或”的关系${destination} Get From List ${parmList} 9
... 策略协议字段类的filter(condition)列表多个filter之间是“与”的关系,filter的多个object+protocolField之间是“或”的关系一个filter内的protocolField必须相同${filterList} Get From List ${parmList} 10
... ${appIdObjects} Get From List ${parmList} 11
... ${policyDesc} Get From List ${parmList} 12
... ${effectiveRange} Get From List ${parmList} 13
... ${appSelectorObjects} Get From List ${parmList} 14
... ${scheduleId} Get From List ${parmList} 15
[Arguments] ${parmList}
log ${Test-LoadBase_POLICY}
#Test-LoadBase_POLICY
${policyId} Get From List ${parmList} 0
${isValid} Get From List ${parmList} 1
${policyName} Get From List ${parmList} 2
${policyType} Get From List ${parmList} 3
${action} Get From List ${parmList} 4
${userTags} Get From List ${parmList} 5
${doLog} Get From List ${parmList} 6
${userRegion} Get From List ${parmList} 7
${source} Get From List ${parmList} 8
${destination} Get From List ${parmList} 9
${filterList} Get From List ${parmList} 10
${appIdObjects} Get From List ${parmList} 11
${policyDesc} Get From List ${parmList} 12
${effectiveRange} Get From List ${parmList} 13
${appSelectorObjects} Get From List ${parmList} 14
${scheduleId} Get From List ${parmList} 15
#${doBlacklist} Get From List ${parmList} 5
${Test-LoadBase_POLICY} Replace String ${Test-LoadBase_POLICY} base_policyId ${policyId}
${Test-LoadBase_POLICY} Replace String ${Test-LoadBase_POLICY} base_isValid ${isValid}
${Test-LoadBase_POLICY} Replace String ${Test-LoadBase_POLICY} base_policyName ${policyName}
${Test-LoadBase_POLICY} Replace String ${Test-LoadBase_POLICY} base_policyType ${policyType}
${Test-LoadBase_POLICY} Replace String ${Test-LoadBase_POLICY} base_action ${action}
${Test-LoadBase_POLICY} Replace String ${Test-LoadBase_POLICY} base_userTags ${userTags}
${Test-LoadBase_POLICY} Replace String ${Test-LoadBase_POLICY} base_doLog ${doLog}
${Test-LoadBase_POLICY} Replace String ${Test-LoadBase_POLICY} base_userRegion ${userRegion}
${Test-LoadBase_POLICY} Replace String ${Test-LoadBase_POLICY} base_source ${source}
${Test-LoadBase_POLICY} Replace String ${Test-LoadBase_POLICY} base_destination ${destination}
${Test-LoadBase_POLICY} Replace String ${Test-LoadBase_POLICY} base_filter ${filterList}
${Test-LoadBase_POLICY} Replace String ${Test-LoadBase_POLICY} base_appIdObjects ${appIdObjects}
${Test-LoadBase_POLICY} Replace String ${Test-LoadBase_POLICY} base_policyDesc ${policyDesc}
${Test-LoadBase_POLICY} Replace String ${Test-LoadBase_POLICY} base_effectiveRange ${effectiveRange}
${Test-LoadBase_POLICY} Replace String ${Test-LoadBase_POLICY} base_appSelectorObjects ${appSelectorObjects}
${Test-LoadBase_POLICY} Replace String ${Test-LoadBase_POLICY} base_scheduleId ${scheduleId}
${Test-LoadBase_POLICY} Replace String ${Test-LoadBase_POLICY} base_doBlacklist 0
#{"policyId":"","policyName":"dxytest","policyType":"tsg_security","action":"deny","userTags":"451,455,429","doBlacklist":0,"doLog":1,"policyDesc":"TSG-4961TSG-4961TSG-4961TSG-4961","effectiveRange":{"tag_sets":[[{"tag":"data_center","value":["Nur-sultan","Aktau"],"ids":[2,3]}],[{"tag":"data_center","value":["Aktubinsk"],"ids":[4]}]]},"userRegion":{"method":"drop"},"source":[{"objectId":108300,"protocolField":"TSG_SECURITY_SOURCE_ADDR","objectName":"dxytest50.9,50.29,50.40","objectType":"ip","objectSubType":"endpoint","objectDesc":"","iconColor":""},{"objectId":108430,"protocolField":"TSG_SECURITY_SOURCE_ADDR","objectName":"dxytest关系subobj","objectType":"ip","objectSubType":"endpoint","objectDesc":"啊手动阀","iconColor":"#31739C"},{"objectId":109036,"protocolField":"","objectName":"dxytest40","objectType":"subscriberid","objectDesc":"","iconColor":"#31739C"},{"objectId":108577,"protocolField":"","objectName":"dxytest50.8","objectType":"subscriberid","objectDesc":"","iconColor":"#31739C"},{"objectId":108431,"protocolField":"TSG_SECURITY_SOURCE_LOCATION","objectName":"dxytestsubGeography","objectType":"ip","objectSubType":"geo_location","objectDesc":"","iconColor":"#31739C"},{"objectId":108433,"protocolField":"TSG_SECURITY_SOURCE_LOCATION","objectName":"dxytestGeography引用一级sub","objectType":"ip","objectSubType":"geo_location","objectDesc":"","iconColor":"#31739C"},{"objectId":108428,"protocolField":"TSG_SECURITY_SOURCE_ADDR","objectName":"dxytest","objectType":"ip","objectSubType":"ip_learning","objectDesc":"","iconColor":"#31739C"},{"objectId":108415,"protocolField":"TSG_SECURITY_SOURCE_ADDR","objectName":"dxytestlearning","objectType":"ip","objectSubType":"ip_learning","objectDesc":"*.platinumai.net\n*m.iqiyipic.com\n*.sogou.com","iconColor":"#E46D6D"}],"destination":[{"objectId":108300,"protocolField":"TSG_SECURITY_DESTINATION_ADDR","objectName":"dxytest50.9,50.29,50.40","objectType":"ip","objectSubType":"endpoint","objectDesc":"","iconColor":""},{"objectId":111766,"protocolField":"TSG_SECURITY_DESTINATION_ADDR","objectName":"dxytest引用","objectType":"ip","objectSubType":"endpoint","objectDesc":"","iconColor":"#31739C"},{"objectId":144695,"protocolField":"TSG_SECURITY_DESTINATION_LOCATION","objectName":"dxytestGeography","objectType":"ip","objectSubType":"geo_location","objectDesc":"","iconColor":"#31739C"},{"objectId":125097,"protocolField":"TSG_SECURITY_DESTINATION_LOCATION","objectName":"dxytest城市","objectType":"ip","objectSubType":"geo_location","objectDesc":"","iconColor":"#31739C"},{"objectId":110307,"protocolField":"TSG_SECURITY_DESTINATION_ADDR","objectName":"dxytest","objectType":"ip","objectSubType":"ip_learning","objectDesc":"","iconColor":"#31739C"},{"objectId":110292,"protocolField":"TSG_SECURITY_DESTINATION_ADDR","objectName":"dxytest3996","objectType":"ip","objectSubType":"ip_learning","objectDesc":"dxytest","iconColor":"#31739C"}],"filterList":[],"appIdObjects":[21,24,25,44],"appSelectorObjects":[],"isValid":0,"scheduleId":[233,55]}
[Return] ${Test-LoadBase_POLICY}
JsonPolicys
[Documentation]
... 生成新增策略接口的json
... 操作参数add:表示新增${opAction} Get From List ${parmList} 0
... update:表示修改策略象内容
... disable:表示停用只修改isValid属性为0
... enable表示启用只修改isValid属性为1
... ${returnData}是否返回请求数据(新增)${returnData} Get From List ${parmList} 1
... 1返回
... 0不返回 默认; Get From List ${parmList} 1
... 策略列表:${policyList} Get From List ${parmList} 2
[Arguments] ${parmList}
log ${Test-LoadBase_POLICYS}
#Test-LoadBase_POLICY
${opAction} Get From List ${parmList} 0
${returnData} Get From List ${parmList} 1
${policyList} Get From List ${parmList} 2
${Test-LoadBase_POLICYS} Replace String ${Test-LoadBase_POLICYS} base_opAction ${opAction}
${Test-LoadBase_POLICYS} Replace String ${Test-LoadBase_POLICYS} base_returnData ${returnData}
${Test-LoadBase_POLICYS} Replace String ${Test-LoadBase_POLICYS} base_policyList ${policyList}
#{"opAction":"base_opAction","refuseCode":true,"returnData":base_returnData,"policyList":[base_policyList]}',
[Return] ${Test-LoadBase_POLICYS}
AddObjects
[Documentation]
... 根据输入参数,新增对象并返回对象拼接到策略中的参数
... ${parmList} 对象列表
... ${objectSubType} endpoint
... ${opration} 对象新增方式0${parmList}作为多个item新增到一个对象1${parmList}每个新增一个对象一个对象3.${parmList}新增多个对象并添加到一个对象group中
... ${position} 对象位置指定策略对象在哪个协议字段上生效参照https://docs.geedge.net/pages/viewpage.action?pageId=8041075
[Arguments] ${parmList} ${opration} ${position}
#IP对象
${ipObjs} Set Variable ${EMPTY}
:FOR ${element} IN @{parmList}
\ LOG ${element}
\ ${ipObj} JsonIPItem ${parmList}
\ ${ipObjs} Catenate SEPARATOR=, ${ipObjs} ${ipObj}
${ipObjs} removeBeforOrAfter ${ipObjs} [1:]
#拼接obj对象
${objectType} Run Keyword If '${objectSubType}'=='endpoint' or '${objectSubType}'=='geo_location' or '${objectSubType}'=='ip_learning' Set Variable ip
${objectSubType} objectSubType
# ${parmList} ${objectType} 0 ${objectSubType} 1 ${objectName} 2 ${addItemList} 3 ${updateItemList} 4 ${deleteItemIds} 5 ${subObjectIds} 6 ${ipLearning} 7
${parmList} Create List ${objectType} ${objectType} ${TEST NAME}_IP ${ipObjs} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${iconColor}
${ipObjjson} JsonOBJ ${parmList}
#拼接新增json
#${parmList}${opAction}0 ${returnData} 1 ${objectList} 2
${parmList} Create List add 1 ${ipObjjson}
${ipObjjson} JsonOBJS ${parmList}
#add Objectreturn statuscodeobjectid 多个返回以英文逗号分隔
${returncode} ${ipid} AddObjectData 1 ${ipObjjson}
#新增对象添加到删除对象列表,及时添加避免下面异常导致遗留垃圾数据
${objectid} Set Variable ${ipid}
${objectIds} Create List [${objectid}]
${sourcejson} Set Variable {"objectId" : ${ipid},"protocolField" : "TSG_SECURITY_SOURCE_ADDR"}
${destjson} Set Variable {"objectId" : ${ipid},"protocolField" : "TSG_SECURITY_DESTINATION_ADDR"}
[Return] ${Test-LoadBase_POLICYS}