Use docker exec_start api with raw socket = True to avoid hangs while executing a command waiting for result.
Also remove the requirement for a specific docker-py version.
Change-Id: Ia89a425724327db0532d4e6168ed4ed924c4969e
diff --git a/src/test/setup/requirements.txt b/src/test/setup/requirements.txt
index 490bd61..514cc17 100644
--- a/src/test/setup/requirements.txt
+++ b/src/test/setup/requirements.txt
@@ -2,7 +2,7 @@
scapy==2.3.2
monotonic
configObj
-docker-py==1.9.0
+docker-py
pyyaml
nsenter
pyroute2
diff --git a/src/test/utils/CordContainer.py b/src/test/utils/CordContainer.py
index 6ab5363..b8a4ec0 100644
--- a/src/test/utils/CordContainer.py
+++ b/src/test/utils/CordContainer.py
@@ -244,7 +244,10 @@
return res
for c in cmds:
i = self.dckr.exec_create(container=self.name, cmd=c, tty = tty, privileged = True)
- self.dckr.exec_start(i['Id'], stream = stream, detach=detach)
+ s = self.dckr.exec_start(i['Id'], stream = stream, detach=detach, socket=True)
+ try:
+ s.close()
+ except: pass
result = self.dckr.exec_inspect(i['Id'])
res += 0 if result['ExitCode'] == None else result['ExitCode']
return res