7 [Documentation] Sends ICMP requests from docker container to remote address.
8 [Arguments] ${docker_name} ${dest_address} ${count}=1
9 ${output} ${rc} SSHLibrary.Execute Command
10 ... docker exec ${docker_name} ping ${dest_address} -c ${count} >/dev/null 2>&1 && echo success
11 ... return_stdout=True
12 ... return_stderr=False
14 Should Contain ${output} success
15 Should Be Equal As Numbers ${rc} 0
17 Start Endless Ping from Docker
18 [Documentation] Starts endless ICMP pinging from docker container to remote address.
19 [Arguments] ${docker_name} ${dest_address}
20 Ping from Docker ${docker_name} ${dest_address}
21 SSHLibrary.Execute Command docker exec -d ${docker_name} ping ${dest_address}
23 Start HTTP Service on Docker
24 [Documentation] Starts SimpleHTTPServer on docker container. Service port should be idle.
25 [Arguments] ${docker_name} ${service_port}=80 ${timeout}=20s
26 ${stdout} SSHLibrary.Execute Command
27 ... docker exec ${docker_name} ps aux | grep 'SimpleHTTPServer ${service_port}'
28 ... return_stdout=True
29 ... return_stderr=False
31 Should Be Empty ${stdout}
32 SSHLibrary.Write docker exec ${docker_name} python -m SimpleHTTPServer ${service_port} &
33 Wait Until Keyword Succeeds 2 min 5 sec Test Port On Docker ${docker_name} ${service_port}
35 Stop HTTP Service on Docker
36 [Documentation] Stops SimpleHTTPServer on docker container. Service port should not be idle.
37 [Arguments] ${docker_name} ${service_port}=80
38 ${stdout} SSHLibrary.Execute Command
39 ... docker exec ${docker_name} ps aux | grep 'SimpleHTTPServer ${service_port}' | awk '{print $2}'
40 ... return_stdout=True
41 ... return_stderr=False
43 Should Not Be Empty ${stdout}
44 ${stdout} SSHLibrary.Execute Command
45 ... docker exec ${docker_name} kill ${stdout}
46 ... return_stdout=True
47 ... return_stderr=False
51 [Documentation] Sends HTTP request to remote server. Endless curl should not be running.
52 [Arguments] ${docker_name} ${dest_address} ${service_port}=80 ${connect_timeout}=2 ${retry}=5x ${retry_after}=1s
53 ${output} SSHLibrary.Execute Command
54 ... docker exec ${docker_name} ls | grep curl_running
55 ... return_stdout=True
56 ... return_stderr=False
58 Should Be Empty ${output}
59 Wait Until Keyword Succeeds
67 Start Endless Curl from Docker
68 [Documentation] Starts endless curl from docker container. Only one endless curl can be running on docker container.
69 [Arguments] ${docker_name} ${dest_address} ${service_port} ${retry_after}=1s ${retry}=5 ${timeout}=20s
71 ${output} SSHLibrary.Execute Command
72 ... docker exec ${docker_name} ls | grep curl_running
73 ... return_stdout=True
74 ... return_stderr=False
76 Should Be Empty ${output}
77 ${output} SSHLibrary.Execute Command
78 ... docker exec ${docker_name} touch curl_running && echo success
79 ... return_stdout=True
80 ... return_stderr=False
82 Should Contain ${output} success
83 Execute Curl ${docker_name} ${dest_address} ${service_port} endless="TRUE"
85 Stop Endless Curl from Docker
86 [Documentation] Stops endless curl from docker container. Endless curl should be running before stopping it.
87 [Arguments] ${docker_name}
88 ${output} SSHLibrary.Execute Command
89 ... docker exec ${docker_name} ls | grep curl_running
90 ... return_stdout=True
91 ... return_stderr=False
93 Should Not Be Empty ${output}
94 ${output} SSHLibrary.Execute Command
95 ... docker exec ${docker_name} rm curl_running && echo success
96 ... return_stdout=True
97 ... return_stderr=False
99 Should Contain ${output} success
101 Stop Endless Ping from Docker to Address
102 [Documentation] Stops endless ping from docker to remote address. Endless ping session should be running before stopping it.
103 [Arguments] ${docker_name} ${dest_address}
104 ${output} SSHLibrary.Execute Command
105 ... docker exec ${docker_name} ps aux | grep 'ping ${dest_address}' | grep -v grep | awk '{print $2}'
106 ... return_stdout=True
107 ... return_stderr=False
109 Should Not Be Empty ${output}
110 SSHLibrary.Execute Command docker exec ${docker_name} kill ${output}
111 ${output} SSHLibrary.Execute Command
112 ... docker exec ${docker_name} ps aux | grep 'ping ${dest_address}' | grep -v grep | awk '{print $2}'
113 Should Be Empty ${output}
116 [Documentation] Tests if a service is running on service port.
117 [Arguments] ${docker_name} ${service_port}
118 ${out} SSHLibrary.Execute Command
119 ... docker exec ${docker_name} nc -z -w 5 127.0.0.1 ${service_port} && echo 'opened'
120 Should Not Be Empty ${out}
123 [Documentation] Executes curl or curl loop for caller methods based on given parameters.
124 [Arguments] ${docker_name} ${dest_address} ${service_port} ${endless}="FALSE" ${sleep}=1
125 IF ${endless} == "TRUE"
126 SSHLibrary.Execute Command
127 ... docker exec -d ${docker_name} /bin/sh -c "while [ -f curl_running ]; do curl ${dest_address}:${service_port} -m 1 && sleep ${sleep}; done"
130 ${output} SSHLibrary.Execute Command
131 ... docker exec ${docker_name} curl ${dest_address}:${service_port} -m 5 >/dev/null 2>&1 && echo success
132 Should Contain ${output} success