2 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
3 Library RequestsLibrary
4 Library ONAPLibrary.Utilities
5 Library ONAPLibrary.Templating
6 Library OperatingSystem
7 Resource ../global_properties.robot
10 ${PGN_URL_TEMPLATE} http://\${host}:\${port}
11 ${PGN_PATH} /restconf/config/sample-plugin:sample-plugin
12 ${PGN_PATH_V2} /restconf/config/stream-count:stream-count
13 ${PGN_ENABLE_STREAM_TEMPLATE} vfw/vfw_pg_stream_enable.jinja
14 ${PGN_ENABLE_STREAMS_TEMPLATE} vfw/vfw_pg_streams_enable.jinja
15 ${PGN_ENABLE_STREAMS_V2_TEMPLATE} vfw/vfw_pg_streams_v2.jinja
18 Connect To Packet Generator
19 [Documentation] Enables packet generator for the passed stream on the passed host
20 [Arguments] ${host} ${alias}=pgn
21 ${map}= Create Dictionary host=${host} port=${GLOBAL_PACKET_GENERATOR_PORT}
22 ${url}= Template String ${PGN_URL_TEMPLATE} ${map}
23 ${auth}= Create List ${GLOBAL_PACKET_GENERATOR_USERNAME} ${GLOBAL_PACKET_GENERATOR_PASSWORD}
24 ${session}= Create Session ${alias} ${url} auth=${auth}
28 [Documentation] Enable a single stream on the passed packet generator host IP
29 [Arguments] ${host} ${stream}=udp1 ${alias}=pgn
30 Connect To Packet Generator ${host} alias=${alias}
31 ${headers}= Create Headers
32 ${data_path}= Catenate ${PGN_PATH}/pg-streams
33 ${map}= Create Dictionary stream=${stream}
34 Create Environment pgi ${GLOBAL_TEMPLATE_FOLDER}
35 ${streams}= Apply Template pgi ${PGN_ENABLE_STREAM_TEMPLATE} ${map}
36 ${streams}= evaluate json.dumps(${streams}) json
37 ${map}= Create Dictionary pgstreams=${streams}
38 ${data}= Apply Template pgi ${PGN_ENABLE_STREAMS_TEMPLATE} ${map}
39 ${resp}= Put Request ${alias} ${data_path} data=${data} headers=${headers}
40 Should Be Equal As Strings ${resp.status_code} 200
44 [Documentation] Enable <stream_count> number of streams on the passed packet generator host IP
45 [Arguments] ${host} ${stream_count}=5 ${alias}=pgn ${prefix}=fw_udp
46 Connect To Packet Generator ${host} alias=${alias}
47 ${headers}= Create Headers
48 ${data_path}= Catenate ${PGN_PATH}/pg-streams
49 ${streams}= Set Variable
50 ${comma}= Set Variable
51 ${stream_count}= Evaluate ${stream_count}+1
52 Create Environment pgi ${GLOBAL_TEMPLATE_FOLDER}
53 :FOR ${i} IN RANGE 1 ${stream_count}
54 \ ${name}= Catenate ${prefix}${i}
55 \ ${map}= Create Dictionary stream=${name}
56 \ ${one}= Apply Template pgi ${PGN_ENABLE_STREAM_TEMPLATE} ${map}
57 \ ${one}= evaluate json.dumps(${one}) json
58 \ ${streams}= Set Variable ${streams}${comma}${one}
59 \ ${comma}= Set Variable ,
60 ${map}= Create Dictionary pgstreams=${streams}
61 ${data}= Apply Template pgi ${PGN_ENABLE_STREAMS_TEMPLATE} ${map}
62 ${resp}= Put Request ${alias} ${data_path} data=${data} headers=${headers}
63 Should Be Equal As Strings ${resp.status_code} 200
68 [Documentation] V2 is for new honeycomb steams interface
69 ... Enable <stream_count> number of streams on the passed packet generator host IP
70 [Arguments] ${host} ${stream_count}=5 ${alias}=pgn ${prefix}=fw_udp
71 Connect To Packet Generator ${host} alias=${alias}
72 Create Environment pgi ${GLOBAL_TEMPLATE_FOLDER}
73 ${headers}= Create Headers
74 ${data_path}= Catenate ${PGN_PATH_V2}/streams
75 ${map}= Create Dictionary number_streams=${stream_count}
76 ${data}= Apply Template pgi ${PGN_ENABLE_STREAMS_V2_TEMPLATE} ${map}
77 ${resp}= Put Request ${alias} ${data_path} data=${data} headers=${headers}
78 Should Be Equal As Strings ${resp.status_code} 200
82 [Documentation] Disable all streams on the passed packet generator host IP
83 [Arguments] ${host} ${stream}=udp1 ${alias}=pgn
84 Connect To Packet Generator ${host} alias=${alias}
85 ${headers}= Create Headers
86 ${data_path}= Catenate ${PGN_PATH}/pg-streams
87 ${data}= Catenate {"pg-streams":{"pg-stream": []}}
88 ${resp}= Put Request ${alias} ${data_path} data=${data} headers=${headers}
89 Should Be Equal As Strings ${resp.status_code} 200
93 [Documentation] Disables packet generator for the passed stream
94 [Arguments] ${host} ${stream}=udp1 ${alias}=pgn
95 ${session}= Connect To Packet Generator ${host} alias=${alias}
96 ${headers}= Create Headers
97 ${data_path}= Catenate ${PGN_PATH}/pg-streams/pg-stream/${stream}
98 ${resp}= Delete Request ${alias} ${data_path} headers=${headers}
99 Should Be Equal As Strings ${resp.status_code} 200
102 Get List Of Enabled Streams
103 [Documentation] Get a list of streams on the passed packet generator host IP
104 [Arguments] ${host} ${alias}=pgn
105 ${session}= Connect To Packet Generator ${host} alias=${alias}
106 ${headers}= Create Headers
107 ${data_path}= Catenate /
108 ${resp}= Get Request ${alias} ${PGN_PATH} headers=${headers}
109 Should Be Equal As Strings ${resp.status_code} 200
110 [Return] ${resp.json()}
112 Get List Of Enabled Streams V2
113 [Documentation] V2 Get a list of streams on the passed packet generator host IP
114 [Arguments] ${host} ${alias}=pgn
115 ${session}= Connect To Packet Generator ${host} alias=${alias}
116 ${headers}= Create Headers
117 ${data_path}= Catenate /
118 ${resp}= Get Request ${alias} ${PGN_PATH_V2} headers=${headers}
119 Should Be Equal As Strings ${resp.status_code} 200
120 [Return] ${resp.json()}
123 ${uuid}= Generate UUID4
124 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID}