397 lines
35 KiB
Plaintext
397 lines
35 KiB
Plaintext
*** 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
|
||
... 支持如下匹配方式:
|
||
... abc:substring matching
|
||
... *abc:suffix matching
|
||
... abc*:prefix matching
|
||
... $abc:exactly 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
|
||
... 支持如下匹配方式:
|
||
... abc:substring matching
|
||
... *abc:suffix matching
|
||
... abc*:prefix matching
|
||
... $abc:exactly 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_manipulation:proxy控制策略;pxy_cache:proxy缓存策略;active_defence:主动防御策略;inline_device:串联设备策略${policyType} Get From List ${parmList} 3
|
||
... policyList对象属性,安全策略:allow:128;monitor:1;deny:16;intercept:2;代理管控策略:deny:16;manipulation:48;allow:128;monitor:1;主动防御策略:activeDefence:4;串联设备策略:inlineDevice:96;地址转换策略:wannat:8;pxy_tcp_option:代理tcp option设置策略none:0.此参数只输入字符串不输入数字${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 Object,return statuscode,objectid 多个返回以英文逗号分隔
|
||
${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} |