1313# under the License.
1414
1515import json
16+ import os
1617import select
1718import socket
1819import time
@@ -167,17 +168,64 @@ def test_portforward_raw(self):
167168 client = api_client .ApiClient (configuration = self .config )
168169 api = core_v1_api .CoreV1Api (client )
169170
171+ with open (os .path .join (os .path .dirname (__file__ ), 'port_server.py' )) as fh :
172+ port_server_py = fh .read ()
170173 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' ,
178228 )
179- resp = api .create_namespaced_pod (body = pod_manifest ,
180- namespace = 'default' )
181229 self .assertEqual (name , resp .metadata .name )
182230 self .assertTrue (resp .status .phase )
183231
@@ -189,6 +237,7 @@ def test_portforward_raw(self):
189237 if resp .status .phase != 'Pending' :
190238 break
191239 time .sleep (1 )
240+ self .assertEqual (resp .status .phase , 'Running' )
192241
193242 pf = portforward (api .connect_get_namespaced_pod_portforward ,
194243 name , 'default' ,
@@ -251,8 +300,8 @@ def test_portforward_raw(self):
251300 self .assertIsNone (pf .error (1234 ))
252301 self .assertIsNone (pf .error (1235 ))
253302
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' )
256305
257306 def test_portforward_http (self ):
258307 client = api_client .ApiClient (configuration = self .config )
0 commit comments