*** 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 isValid=${1} addItemList=${addItemLists} ${rescode} ${objectId1} AddObjects ${1} ${objectDict} SET GLOBAL VARIABLE ${testClentID} ${objectId1} log to_AddLocalSubidObject ${objectDict} Create Dictionary ... objectType=subscriberid ... objectSubType=${Default_ObjectSubType} ... 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 ${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 ${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} 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} 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} #删除和对象 #删除策略 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} 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}