From ac26593edf2b6cacbe17506328f4cf56b9b1dd3a Mon Sep 17 00:00:00 2001 From: Brian Freeman Date: Thu, 30 May 2019 22:35:30 -0500 Subject: Cherry pick: vfwclosedloop for new vFW Manual cherry pick from dublin Issue-ID: INT-838 Change-Id: I19f619f6e5b1c0a788e0f6014d79c07c88e3eecd Signed-off-by: Brian Freeman --- .../packet_generator_interface.robot | 71 +++++++++++++++------- 1 file changed, 48 insertions(+), 23 deletions(-) (limited to 'robot/resources/stack_validation') diff --git a/robot/resources/stack_validation/packet_generator_interface.robot b/robot/resources/stack_validation/packet_generator_interface.robot index c75e61b5..62ac91d2 100644 --- a/robot/resources/stack_validation/packet_generator_interface.robot +++ b/robot/resources/stack_validation/packet_generator_interface.robot @@ -2,97 +2,122 @@ Documentation The main interface for interacting with A&AI. It handles low level stuff like managing the http request library and A&AI required fields Library RequestsLibrary Library StringTemplater -Library UUID -Library OperatingSystem +Library UUID +Library OperatingSystem Resource ../global_properties.robot Resource ../json_templater.robot *** Variables *** ${PGN_URL_TEMPLATE} http://\${host}:\${port} ${PGN_PATH} /restconf/config/sample-plugin:sample-plugin +${PGN_PATH_V2} /restconf/config/stream-count:stream-count ${PGN_ENABLE_STREAM_TEMPLATE} robot/assets/templates/vfw_pg_stream_enable.template ${PGN_ENABLE_STREAMS_TEMPLATE} robot/assets/templates/vfw_pg_streams_enable.template +${PGN_ENABLE_STREAMS_V2_TEMPLATE} robot/assets/templates/vfw_pg_streams_v2.template *** Keywords *** Connect To Packet Generator [Documentation] Enables packet generator for the passed stream on the passed host [Arguments] ${host} ${alias}=pgn - ${map}= Create Dictionary host=${host} port=${GLOBAL_PACKET_GENERATOR_PORT} path=${PGN_PATH} - ${url}= Template String ${PGN_URL_TEMPLATE} ${map} - ${auth}= Create List ${GLOBAL_PACKET_GENERATOR_USERNAME} ${GLOBAL_PACKET_GENERATOR_PASSWORD} + ${map}= Create Dictionary host=${host} port=${GLOBAL_PACKET_GENERATOR_PORT} path=${PGN_PATH} + ${url}= Template String ${PGN_URL_TEMPLATE} ${map} + ${auth}= Create List ${GLOBAL_PACKET_GENERATOR_USERNAME} ${GLOBAL_PACKET_GENERATOR_PASSWORD} ${session}= Create Session ${alias} ${url} auth=${auth} - [Return] ${session} + [Return] ${session} Enable Stream - [Documentation] Enable a single stream on the passed packet generator host IP + [Documentation] Enable a single stream on the passed packet generator host IP [Arguments] ${host} ${stream}=udp1 ${alias}=pgn Connect To Packet Generator ${host} alias=${alias} ${headers}= Create Headers - ${data_path}= Catenate ${PGN_PATH}/pg-streams + ${data_path}= Catenate ${PGN_PATH}/pg-streams ${map}= Create Dictionary stream=${stream} ${streams}= Fill JSON Template File ${PGN_ENABLE_STREAM_TEMPLATE} ${map} ${streams}= evaluate json.dumps(${streams}) json ${map}= Create Dictionary pgstreams=${streams} - ${data}= Fill JSON Template File ${PGN_ENABLE_STREAMS_TEMPLATE} ${map} + ${data}= Fill JSON Template File ${PGN_ENABLE_STREAMS_TEMPLATE} ${map} ${resp}= Put Request ${alias} ${data_path} data=${data} headers=${headers} Should Be Equal As Strings ${resp.status_code} 200 [Return] ${resp} Enable Streams - [Documentation] Enable number of streams on the passed packet generator host IP + [Documentation] Enable number of streams on the passed packet generator host IP [Arguments] ${host} ${stream_count}=5 ${alias}=pgn ${prefix}=fw_udp Connect To Packet Generator ${host} alias=${alias} ${headers}= Create Headers ${data_path}= Catenate ${PGN_PATH}/pg-streams ${streams}= Set Variable ${comma}= Set Variable - ${stream_count}= Evaluate ${stream_count}+1 + ${stream_count}= Evaluate ${stream_count}+1 :FOR ${i} IN RANGE 1 ${stream_count} \ ${name}= Catenate ${prefix}${i} \ ${map}= Create Dictionary stream=${name} \ ${one}= Fill JSON Template File ${PGN_ENABLE_STREAM_TEMPLATE} ${map} - \ ${one}= evaluate json.dumps(${one}) json + \ ${one}= evaluate json.dumps(${one}) json \ ${streams}= Set Variable ${streams}${comma}${one} - \ ${comma}= Set Variable , + \ ${comma}= Set Variable , ${map}= Create Dictionary pgstreams=${streams} - ${data}= Fill JSON Template File ${PGN_ENABLE_STREAMS_TEMPLATE} ${map} + ${data}= Fill JSON Template File ${PGN_ENABLE_STREAMS_TEMPLATE} ${map} ${resp}= Put Request ${alias} ${data_path} data=${data} headers=${headers} Should Be Equal As Strings ${resp.status_code} 200 [Return] ${resp} + +Enable Streams V2 + [Documentation] V2 is for new honeycomb steams interface + ... Enable number of streams on the passed packet generator host IP + [Arguments] ${host} ${stream_count}=5 ${alias}=pgn ${prefix}=fw_udp + Connect To Packet Generator ${host} alias=${alias} + ${headers}= Create Headers + ${data_path}= Catenate ${PGN_PATH_V2}/streams + ${map}= Create Dictionary number_streams=${stream_count} + ${data}= Fill JSON Template File ${PGN_ENABLE_STREAMS_V2_TEMPLATE} ${map} + ${resp}= Put Request ${alias} ${data_path} data=${data} headers=${headers} + Should Be Equal As Strings ${resp.status_code} 200 + + Disable All Streams [Documentation] Disable all streams on the passed packet generator host IP [Arguments] ${host} ${stream}=udp1 ${alias}=pgn Connect To Packet Generator ${host} alias=${alias} ${headers}= Create Headers - ${data_path}= Catenate ${PGN_PATH}/pg-streams + ${data_path}= Catenate ${PGN_PATH}/pg-streams ${data}= Catenate {"pg-streams":{"pg-stream": []}} ${resp}= Put Request ${alias} ${data_path} data=${data} headers=${headers} Should Be Equal As Strings ${resp.status_code} 200 [Return] ${resp} Disable Stream - [Documentation] Disables packet generator for the passed stream + [Documentation] Disables packet generator for the passed stream [Arguments] ${host} ${stream}=udp1 ${alias}=pgn ${session}= Connect To Packet Generator ${host} alias=${alias} ${headers}= Create Headers - ${data_path}= Catenate ${PGN_PATH}/pg-streams/pg-stream/${stream} + ${data_path}= Catenate ${PGN_PATH}/pg-streams/pg-stream/${stream} ${resp}= Delete Request ${alias} ${data_path} headers=${headers} Should Be Equal As Strings ${resp.status_code} 200 [Return] ${resp} - + Get List Of Enabled Streams - [Documentation] Get a list of streams on the passed packet generator host IP + [Documentation] Get a list of streams on the passed packet generator host IP [Arguments] ${host} ${alias}=pgn ${session}= Connect To Packet Generator ${host} alias=${alias} ${headers}= Create Headers - ${data_path}= Catenate / + ${data_path}= Catenate / ${resp}= Get Request ${alias} ${PGN_PATH} headers=${headers} Should Be Equal As Strings ${resp.status_code} 200 [Return] ${resp.json()} - - + +Get List Of Enabled Streams V2 + [Documentation] V2 Get a list of streams on the passed packet generator host IP + [Arguments] ${host} ${alias}=pgn + ${session}= Connect To Packet Generator ${host} alias=${alias} + ${headers}= Create Headers + ${data_path}= Catenate / + ${resp}= Get Request ${alias} ${PGN_PATH_V2} headers=${headers} + Should Be Equal As Strings ${resp.status_code} 200 + [Return] ${resp.json()} + Create Headers ${uuid}= Generate UUID ${headers}= Create Dictionary Accept=application/json Content-Type=application/json X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID} - [Return] ${headers} \ No newline at end of file + [Return] ${headers} -- cgit 1.2.3-korg