13
13
# under the License.
14
14
15
15
import json
16
+ import os
16
17
import select
17
18
import socket
18
19
import time
@@ -167,17 +168,64 @@ def test_portforward_raw(self):
167
168
client = api_client .ApiClient (configuration = self .config )
168
169
api = core_v1_api .CoreV1Api (client )
169
170
171
+ with open (os .path .join (os .path .dirname (__file__ ), 'port_server.py' )) as fh :
172
+ port_server_py = fh .read ()
170
173
name = 'portforward-raw-' + short_uuid ()
171
- pod_manifest = manifest_with_command (
172
- name ,
173
- ' ' .join ((
174
- '((while true;do nc -l -p 1234 -e /bin/cat; done)&);' ,
175
- '((while true;do nc -l -p 1235 -e /bin/cat; done)&);' ,
176
- 'sleep 60' ,
177
- ))
174
+ resp = api .create_namespaced_config_map (
175
+ body = {
176
+ 'apiVersion' : 'v1' ,
177
+ 'kind' : 'ConfigMap' ,
178
+ 'metadata' : {
179
+ 'name' : name ,
180
+ },
181
+ 'data' : {
182
+ 'port-server.py' : port_server_py ,
183
+ }
184
+ },
185
+ namespace = 'default' ,
186
+ )
187
+ resp = api .create_namespaced_pod (
188
+ body = {
189
+ 'apiVersion' : 'v1' ,
190
+ 'kind' : 'Pod' ,
191
+ 'metadata' : {
192
+ 'name' : name
193
+ },
194
+ 'spec' : {
195
+ 'containers' : [
196
+ {
197
+ 'name' : 'port-server' ,
198
+ 'image' : 'python' ,
199
+ 'command' : [
200
+ '/opt/port-server.py' , '1234' , '1235' ,
201
+ ],
202
+ 'volumeMounts' : [
203
+ {
204
+ 'name' : 'port-server' ,
205
+ 'mountPath' : '/opt' ,
206
+ 'readOnly' : True ,
207
+ },
208
+ ],
209
+ 'startupProbe' : {
210
+ 'tcpSocket' : {
211
+ 'port' : 1234 ,
212
+ },
213
+ },
214
+ },
215
+ ],
216
+ 'volumes' : [
217
+ {
218
+ 'name' : 'port-server' ,
219
+ 'configMap' : {
220
+ 'name' : name ,
221
+ 'defaultMode' : 0o777 ,
222
+ },
223
+ },
224
+ ],
225
+ },
226
+ },
227
+ namespace = 'default' ,
178
228
)
179
- resp = api .create_namespaced_pod (body = pod_manifest ,
180
- namespace = 'default' )
181
229
self .assertEqual (name , resp .metadata .name )
182
230
self .assertTrue (resp .status .phase )
183
231
@@ -189,6 +237,7 @@ def test_portforward_raw(self):
189
237
if resp .status .phase != 'Pending' :
190
238
break
191
239
time .sleep (1 )
240
+ self .assertEqual (resp .status .phase , 'Running' )
192
241
193
242
pf = portforward (api .connect_get_namespaced_pod_portforward ,
194
243
name , 'default' ,
@@ -251,8 +300,8 @@ def test_portforward_raw(self):
251
300
self .assertIsNone (pf .error (1234 ))
252
301
self .assertIsNone (pf .error (1235 ))
253
302
254
- resp = api .delete_namespaced_pod (name = name , body = {},
255
- namespace = 'default' )
303
+ resp = api .delete_namespaced_pod (name = name , namespace = 'default' )
304
+ resp = api . delete_namespaced_config_map ( name = name , namespace = 'default' )
256
305
257
306
def test_portforward_http (self ):
258
307
client = api_client .ApiClient (configuration = self .config )
0 commit comments