91 lines
5.4 KiB
Plaintext
91 lines
5.4 KiB
Plaintext
*** Settings ***
|
||
Library Collections
|
||
Library RequestsLibrary
|
||
Resource ../../../03-Variable/BifangApiVariable.txt
|
||
Resource ../../../02-Keyword/tsg_bfapi/policy_file_interface/FunctionalKeywords.robot
|
||
Resource ProcessPolicyBody.robot
|
||
Library Collections
|
||
Resource ../Common.robot
|
||
*** Variables ***
|
||
${url} /policy/compile
|
||
*** Keywords ***
|
||
#拼接字典类型数据为get请求的字符串
|
||
Dictionary-To-QueryParams
|
||
[Documentation]
|
||
... 接收get参数字典,转换为请求字符串
|
||
[Arguments] ${params}
|
||
${paramsString} = Set Variable ${EMPTY}
|
||
FOR ${key} IN @{params}
|
||
${value} = Get From Dictionary ${params} ${key}
|
||
${paramStr} = Catenate SEPARATOR=\= ${key} ${value}
|
||
${len} = Get Length ${paramsString}
|
||
${paramsString} = Run Keyword If ${len} != 0 Catenate SEPARATOR=& ${paramsString} ${paramStr}
|
||
... ELSE Set Variable ${paramStr}
|
||
END
|
||
Log To Console ${paramsString}
|
||
[Return] ${paramsString}
|
||
#get查询策略,传入字典对象,该方法将字典对象自动拼接成get请求查询条件
|
||
QueryPolicies
|
||
[Documentation]
|
||
... 查询策略,params为参数字典,version为接口版本号
|
||
[Arguments] ${params} ${version}
|
||
Log To Console Call QueryPolicies
|
||
Dictionary Should Contain Key ${params} policyType
|
||
${paramsStr} Dictionary-To-QueryParams ${params}
|
||
${response} BaseGetRequestForV2 ${url} ${paramsStr} ${version}
|
||
${rescode} Set Variable ${response['code']}
|
||
[Return] ${rescode} ${response}
|
||
|
||
AddPolicies
|
||
[Documentation]
|
||
... 新增策略
|
||
... returnData:是否返回数据,这里需要设置为1
|
||
... policyList:策略列表,支持dict与list两种形式
|
||
... version:接口版本号
|
||
... 支持v1版本接口与v2版本接口
|
||
... v1版本特殊参数说明:
|
||
... referenceObject=${265}|TSG_FIELD_HTTP_HOST,${266}|TSG_FIELD_SSL_SNI&TSG_FIELD_SSL_SAN
|
||
... 为字符串类型,每条引用的策略对象信息以','分隔
|
||
... [objectId]|[protocolFileds],... ,多个protocolFileds用'&'连接
|
||
... appObjectIdArray==${2},${3}
|
||
... 为字符串类型,以','分隔
|
||
... v2版本特殊参数说明:
|
||
... v2版本中无referenceObject,取而代之的是source,destination,filterList
|
||
... source= ${265}|TSG_FIELD_HTTP_HOST,${266}|TSG_FIELD_SSL_SNI&TSG_FIELD_SSL_SAN
|
||
... destination= ${265}|TSG_FIELD_HTTP_HOST,${266}|TSG_FIELD_SSL_SNI&TSG_FIELD_SSL_SAN
|
||
... filterList= ${265}|${257}:TSG_FIELD_HTTP_HOST,${266}|${299}:TSG_FIELD_SSL_SNI&TSG_FIELD_SSL_SAN
|
||
... filterList由多个数字用‘|’分隔,加上:对上对应的protocolFiled,
|
||
... 一个filter中的protocolFiled是确定的,一个protocolFiled对应多个objectId
|
||
... appIdObjects==${2},${3}
|
||
[Arguments] ${returnData} ${policyList} ${version}
|
||
Log To Console Call AddPolicies
|
||
${returnData}= Run Keyword If '${returnData}' == '${EMPTY}' Set Variable 1
|
||
... ELSE Set Variable ${returnData}
|
||
#控制台打印参数
|
||
#Log To Console ${policyList}
|
||
#必选参数判定
|
||
Should Not Be Empty ${policyList}
|
||
${dictType} = Evaluate type(${policyList})
|
||
${body} Run Keyword If "${dictType}" == "<class 'list'>" WxPolicyListOperation ${returnData} ${policyList} add ${version}
|
||
... ELSE IF "${dictType}" == "<class 'dict'>" WxPolicyOperation ${returnData} ${policyList} add ${version}
|
||
... ELSE Set Variable ${EMPTY}
|
||
#${body} Set Variable {"opAction":"add","policyList":{"policyName":"wx-test","policyType":"tsg_security","action":"deny","userTags":"","doBlacklist":0,"doLog":1,"policyDesc":"","effectiveRange":{"tag_sets":[[]]},"userRegion":{"protocol":"SSL","method":"drop"},"source":[{"objectId":3101,"protocolField":"TSG_SECURITY_SOURCE_ADDR"}],"destination":[],"filterList":[{"filter":[{"objectId":3404,"protocolField":"TSG_FIELD_SSL_CN"}]}],"appIdObjects":[3],"isValid":0,"scheduleId":[]}}
|
||
${response} BasePostRequestForV2 ${url} ${body} ${version}
|
||
${policyIds} Run Keyword If "${returnData}" == "1" WxGet-PolicyIds ${response}
|
||
... ELSE Create List
|
||
${rescode} Set Variable ${response['code']}
|
||
[Return] ${rescode} ${policyIds}
|
||
UpdatePolicies
|
||
[Arguments] ${returnData} ${policyList} ${version} ${opAction}
|
||
Log To Console Call UpdatePolicies
|
||
${returnData}= Run Keyword If '${returnData}' == '${EMPTY}' Set Variable 1
|
||
... ELSE Set Variable ${returnData}
|
||
#必选参数判定
|
||
Should Not Be Empty ${policyList}
|
||
${dictType} = Evaluate type(${policyList})
|
||
${body} Run Keyword If "${dictType}" == "<class 'list'>" WxPolicyListOperation ${returnData} ${policyList} ${opAction} ${version}
|
||
... ELSE IF "${dictType}" == "<class 'dict'>" WxPolicyOperation ${returnData} ${policyList} ${opAction} ${version}
|
||
... ELSE Set Variable ${EMPTY}
|
||
${response} BaseEditRequestForV2 ${url} ${body} ${version}
|
||
${rescode} Set Variable ${response['code']}
|
||
[Return] ${rescode} |