Block network access for unit tests in docker.

This commit is contained in:
Matt Clay 2018-09-18 16:48:59 -07:00
parent af40d8c2a5
commit 99cac99cbc
2 changed files with 28 additions and 0 deletions

View file

@ -52,6 +52,8 @@ from lib.docker_util import (
docker_rm,
docker_run,
docker_available,
docker_network_disconnect,
get_docker_networks,
)
from lib.cloud import (
@ -276,6 +278,7 @@ def delegate_docker(args, exclude, require, integration_targets):
cmd += ['--python', 'default']
# run unit tests unprivileged to prevent stray writes to the source tree
# also disconnect from the network once requirements have been installed
if isinstance(args, UnitsConfig):
writable_dirs = [
'/root/ansible/.pytest_cache',
@ -293,6 +296,11 @@ def delegate_docker(args, exclude, require, integration_targets):
docker_exec(args, test_id, cmd + ['--requirements-mode', 'only'], options=cmd_options)
networks = get_docker_networks(args, test_id)
for network in networks:
docker_network_disconnect(args, test_id, network)
cmd += ['--requirements-mode', 'skip']
cmd_options += ['--user', 'pytest']