It was noticed that some files were not being installed / shipped by the setuptool script. It turned out that we were using the package data feature but providing the module directory twice.
Also, this patch removes some directories that should no longer be shipped/installed as part of core autotest, and some that should (installation_support). Signed-off-by: Cleber Rosa <[email protected]> --- client/setup.py | 1 - frontend/setup.py | 4 ++++ installation_support/setup.py | 51 +++++++++++++++++++++++++++++++++++++++ server/setup.py | 2 -- setup.py | 56 +++++++++++++++++++++++++++++++++++-------- 5 files changed, 101 insertions(+), 13 deletions(-) create mode 100644 installation_support/setup.py diff --git a/client/setup.py b/client/setup.py index a579584..2492fac 100644 --- a/client/setup.py +++ b/client/setup.py @@ -32,7 +32,6 @@ def _get_files(path): def get_filelist(): pd_filelist=['config/*' ] pd_filelist.extend(_get_files(os.path.join(client_dir, 'profilers'))) - pd_filelist.extend(_get_files(os.path.join(client_dir, 'tests'))) pd_filelist.extend(_get_files(os.path.join(client_dir, 'tools'))) return pd_filelist diff --git a/frontend/setup.py b/frontend/setup.py index faf12ca..59464bb 100644 --- a/frontend/setup.py +++ b/frontend/setup.py @@ -34,7 +34,11 @@ def get_file_list(): pd_filelist.extend(_get_files(os.path.join(fe_dir, 'client'))) pd_filelist.extend(_get_files(os.path.join(fe_dir, 'afe', 'doctests'))) pd_filelist.extend(_get_files(os.path.join(fe_dir, 'afe', 'fixtures'))) + pd_filelist.extend(_get_files(os.path.join(fe_dir, 'afe', 'migrations'))) pd_filelist.extend(_get_files(os.path.join(fe_dir, 'afe', 'templates'))) + pd_filelist.extend(_get_files(os.path.join(fe_dir, 'tko', 'fixtures'))) + pd_filelist.extend(_get_files(os.path.join(fe_dir, 'tko', 'migrations'))) + pd_filelist.extend(_get_files(os.path.join(fe_dir, 'tko', 'sql'))) pd_filelist.extend(_get_files(os.path.join(fe_dir, 'static'))) pd_filelist.extend(_get_files(os.path.join(fe_dir, 'templates'))) pd_filelist.extend(_get_files(os.path.join(fe_dir, 'tko', 'preconfigs'))) diff --git a/installation_support/setup.py b/installation_support/setup.py new file mode 100644 index 0000000..3516784 --- /dev/null +++ b/installation_support/setup.py @@ -0,0 +1,51 @@ +from distutils.core import setup +import os + +try: + import autotest.common as common +except ImportError: + import common + +from autotest.client.shared import version + +# Mostly needed when called one level up +if os.path.isdir('installation_support'): + pkg_dir = 'installation_support' +else: + pkg_dir = '.' + + +def get_package_dir(): + return {'autotest.installation_support': pkg_dir} + + +def get_package_data(): + return {'autotest.frontend' : get_file_list()} + + +def get_scripts(): + return [os.path.join(pkg_dir, 'autotest-database-turnkey'), + os.path.join(pkg_dir, 'autotest-firewalld-add-service'), + os.path.join(pkg_dir, 'autotest-install-packages-deps')] + + +def get_packages(): + return ['autotest.installation_support', + 'autotest.installation_support.database_manager'] + + +def run(): + setup(name='autotest', + description='Autotest test framework - installation support', + maintainer='Lucas Meneghel Rodrigues', + author_email='[email protected]', + version=version.get_version(), + url='http://autotest.github.com', + package_dir=get_package_dir(), + package_data=get_package_data(), + packages=get_packages(), + scripts=get_scripts()) + + +if __name__ == '__main__': + run() diff --git a/server/setup.py b/server/setup.py index a18419e..1323688 100644 --- a/server/setup.py +++ b/server/setup.py @@ -32,8 +32,6 @@ def get_file_list(): # and call it a day. we can clean up some other time pd_filelist=[] pd_filelist.extend(_get_files(os.path.join(server_dir, 'control_segments'))) - pd_filelist.extend(_get_files(os.path.join(server_dir, 'hosts', 'monitors'))) - pd_filelist.extend(_get_files(os.path.join(server_dir, 'tests'))) return pd_filelist diff --git a/setup.py b/setup.py index 2d80585..c046730 100644 --- a/setup.py +++ b/setup.py @@ -1,3 +1,5 @@ +import os + # High level way of installing each autotest component import client.setup import frontend.setup @@ -8,6 +10,7 @@ import database_legacy.setup import tko.setup import utils.setup import mirror.setup +import installation_support.setup from distutils.core import setup @@ -26,6 +29,35 @@ def _combine_dicts(list_dicts): return result_dict +def _fix_data_paths(package_data_dict): + ''' + Corrects package data paths + + When the package name is compound, and the package contents, that + is, file paths, contain the same path name found in the package + name, setuptools thinks there's an extra directory. This checks + that condition and adjusts (strips) the 1st directory name. + ''' + result = {} + for package_name, package_content in package_data_dict.items(): + package_structure = package_name.split('.') + package_structure_1st_level = package_structure[1] + + result[package_name] = [] + for p in package_content: + path_structure = p.split(os.path.sep) + path_structure_1st_level = path_structure[0] + + if package_structure_1st_level == path_structure_1st_level: + path = os.path.join(*path_structure[1:]) + else: + path = p + + result[package_name].append(path) + + return result + + def get_package_dir(): return _combine_dicts([client.setup.get_package_dir(), frontend.setup.get_package_dir(), @@ -47,7 +79,8 @@ def get_packages(): database_legacy.setup.get_packages() + tko.setup.get_packages() + utils.setup.get_packages() + - mirror.setup.get_packages()) + mirror.setup.get_packages() + + installation_support.setup.get_packages()) def get_data_files(): @@ -58,14 +91,16 @@ def get_data_files(): def get_package_data(): - return _combine_dicts([client.setup.get_package_data(), - frontend.setup.get_package_data(), - cli.setup.get_package_data(), - server.setup.get_package_data(), - scheduler.setup.get_package_data(), - database_legacy.setup.get_package_data(), - tko.setup.get_package_data(), - utils.setup.get_package_data()]) + return _combine_dicts([ + _fix_data_paths(client.setup.get_package_data()), + _fix_data_paths(frontend.setup.get_package_data()), + _fix_data_paths(cli.setup.get_package_data()), + _fix_data_paths(server.setup.get_package_data()), + _fix_data_paths(scheduler.setup.get_package_data()), + _fix_data_paths(database_legacy.setup.get_package_data()), + _fix_data_paths(tko.setup.get_package_data()), + _fix_data_paths(utils.setup.get_package_data()) + ]) def get_scripts(): @@ -75,7 +110,8 @@ def get_scripts(): server.setup.get_scripts() + scheduler.setup.get_scripts() + database_legacy.setup.get_scripts() + - tko.setup.get_scripts()) + tko.setup.get_scripts() + + installation_support.setup.get_scripts()) def run(): -- 1.7.11.7 _______________________________________________ Autotest-kernel mailing list [email protected] https://www.redhat.com/mailman/listinfo/autotest-kernel
