[DEFAULT]

# The list of modules to copy from openstack-common
modules=setup,cfg,iniparser,install_venv_common

# The base module to hold the copy of openstack.common
base=tempest
