aboutsummaryrefslogtreecommitdiff
path: root/contrib/python/test
diff options
context:
space:
mode:
authorJhon Honce <jhonce@redhat.com>2018-06-18 20:33:20 -0700
committerJhon Honce <jhonce@redhat.com>2018-06-19 20:08:20 -0700
commit7ea95a6afa28ab6fc993a26170f15b73946ab39d (patch)
treeaab22c6ca4048934a6be30cd5f26a76caf6d352c /contrib/python/test
parentf228cf73e0318f48c94ec4cd1b9b3115cfbb763a (diff)
downloadpodman-7ea95a6afa28ab6fc993a26170f15b73946ab39d.tar.gz
podman-7ea95a6afa28ab6fc993a26170f15b73946ab39d.tar.bz2
podman-7ea95a6afa28ab6fc993a26170f15b73946ab39d.zip
Implement SSH tunnels between client and podman server
* client currently forks ssh client pending finding a well maintained ssh library for python. Including support for AF_UNIX forwarding. Signed-off-by: Jhon Honce <jhonce@redhat.com>
Diffstat (limited to 'contrib/python/test')
-rwxr-xr-xcontrib/python/test/test_runner.sh22
-rw-r--r--contrib/python/test/test_system.py17
2 files changed, 30 insertions, 9 deletions
diff --git a/contrib/python/test/test_runner.sh b/contrib/python/test/test_runner.sh
index 4e5844831..602e0d6fd 100755
--- a/contrib/python/test/test_runner.sh
+++ b/contrib/python/test/test_runner.sh
@@ -13,13 +13,18 @@ if [[ ! -x ../../bin/podman ]]; then
fi
export PATH=../../bin:$PATH
+function usage {
+ echo 1>&2 $0 [-v] [-h] [test.TestCase|test.TestCase.step]
+}
+
while getopts "vh" arg; do
case $arg in
v ) VERBOSE='-v' ;;
- h ) echo >2 $0 [-v] [-h] [test.TestCase|test.TestCase.step] ; exit 2 ;;
+ h ) usage ; exit 0;;
+ \? ) usage ; exit 2;;
esac
done
-shift $((OPTIND-1))
+shift $((OPTIND -1))
function cleanup {
# aggressive cleanup as tests may crash leaving crap around
@@ -49,7 +54,7 @@ EOT
}
# Need locations to store stuff
-mkdir -p ${TMPDIR}/{podman,crio,crio-run,cni/net.d,ctnr}
+mkdir -p ${TMPDIR}/{podman,crio,crio-run,cni/net.d,ctnr,tunnel}
# Cannot be done in python unittest fixtures. EnvVar not picked up.
export REGISTRIES_CONFIG_PATH=${TMPDIR}/registry.conf
@@ -102,11 +107,14 @@ ENTRYPOINT ["/tmp/hello.sh"]
EOT
export PODMAN_HOST="unix:${TMPDIR}/podman/io.projectatomic.podman"
-PODMAN_ARGS="--storage-driver=vfs\
- --root=${TMPDIR}/crio\
- --runroot=${TMPDIR}/crio-run\
- --cni-config-dir=$CNI_CONFIG_PATH\
+PODMAN_ARGS="--storage-driver=vfs \
+ --root=${TMPDIR}/crio \
+ --runroot=${TMPDIR}/crio-run \
+ --cni-config-dir=$CNI_CONFIG_PATH \
"
+if [[ -n $VERBOSE ]]; then
+ PODMAN_ARGS="$PODMAN_ARGS --log-level=debug"
+fi
PODMAN="podman $PODMAN_ARGS"
# document what we're about to do...
diff --git a/contrib/python/test/test_system.py b/contrib/python/test/test_system.py
index c0d30acd7..93fb9aded 100644
--- a/contrib/python/test/test_system.py
+++ b/contrib/python/test/test_system.py
@@ -1,14 +1,15 @@
import os
import unittest
-
-import varlink
+from urllib.parse import urlparse
import podman
+import varlink
class TestSystem(unittest.TestCase):
def setUp(self):
self.host = os.environ['PODMAN_HOST']
+ self.tmpdir = os.environ['TMPDIR']
def tearDown(self):
pass
@@ -22,6 +23,18 @@ class TestSystem(unittest.TestCase):
with podman.Client(self.host) as pclient:
self.assertTrue(pclient.system.ping())
+ def test_remote_ping(self):
+ host = urlparse(self.host)
+ remote_uri = 'ssh://root@localhost/{}'.format(host.path)
+
+ local_uri = 'unix:{}/tunnel/podman.sock'.format(self.tmpdir)
+ with podman.Client(
+ uri=local_uri,
+ remote_uri=remote_uri,
+ identity_file=os.path.expanduser('~/.ssh/id_rsa'),
+ ) as pclient:
+ pclient.system.ping()
+
def test_versions(self):
with podman.Client(self.host) as pclient:
# Values change with each build so we cannot test too much