diff options
author | Jhon Honce <jhonce@redhat.com> | 2018-06-18 20:33:20 -0700 |
---|---|---|
committer | Jhon Honce <jhonce@redhat.com> | 2018-06-19 20:08:20 -0700 |
commit | 7ea95a6afa28ab6fc993a26170f15b73946ab39d (patch) | |
tree | aab22c6ca4048934a6be30cd5f26a76caf6d352c /contrib/python/test | |
parent | f228cf73e0318f48c94ec4cd1b9b3115cfbb763a (diff) | |
download | podman-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-x | contrib/python/test/test_runner.sh | 22 | ||||
-rw-r--r-- | contrib/python/test/test_system.py | 17 |
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 |