forked from autotest/autotest
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Autotest: Introducing setup.py script to install autotest files
In order to support packaging, we need the ability to determine which file goes where and which ones get packaged. I decided to use the standard setup.py approach to accomplish this. This is an initial first cut and should be reviewed and tweaked as needed. Changes from v3: * More fixes with regards to file positioning inside FS * Corrected system wide prefixes Changes from v2: * Updated several entry points to the current status of the tree Changes from v1: * Starting the tweaks - Change references to author * Remove unneeded glob imports Signed-off-by: Lucas Meneghel Rodrigues <[email protected]>
- Loading branch information
Showing
10 changed files
with
368 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
from distutils.core import setup | ||
import os, sys | ||
|
||
try: | ||
import autotest.common as common | ||
except ImportError: | ||
import common | ||
|
||
from autotest_lib.client.common_lib import version | ||
|
||
# Mostly needed when called one level up | ||
cli_dir = os.path.dirname(sys.modules[__name__].__file__) or '.' | ||
autotest_dir = os.path.abspath(os.path.join(cli_dir, "..")) | ||
|
||
setup(name='autotest', | ||
description='Autotest framework - cli interface to rpc server', | ||
author='Autotest Team', | ||
author_email='[email protected]', | ||
version=version.get_git_version(), | ||
url='autotest.kernel.org', | ||
package_dir={'autotest.cli': cli_dir }, | ||
package_data={'autotest.cli' : ['contrib/*' ] }, | ||
packages=['autotest.cli' ], | ||
scripts=[cli_dir + '/autotest-rpc-client', | ||
cli_dir + '/autotest-rpc-change-protection-level', | ||
cli_dir + '/autotest-rpc-compose-query', | ||
cli_dir + '/autotest-rpc-migrate-host', | ||
cli_dir + '/autotest-rpc-query-keyvals', | ||
cli_dir + '/autotest-rpc-query-results', | ||
], | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
from distutils.core import setup | ||
import os, sys | ||
|
||
try: | ||
import autotest.common as common | ||
except ImportError: | ||
import common | ||
|
||
from autotest_lib.client.common_lib import version | ||
|
||
# Mostly needed when called one level up | ||
client_dir = os.path.dirname(sys.modules[__name__].__file__) or '.' | ||
autotest_dir = os.path.abspath(os.path.join(client_dir, "..")) | ||
|
||
def get_data_files(path): | ||
''' | ||
Given a path, return all the files in there to package | ||
''' | ||
flist=[] | ||
for root, _, files in sorted(os.walk(path)): | ||
for name in files: | ||
fullname = os.path.join(root, name) | ||
flist.append(fullname) | ||
return flist | ||
|
||
# Some stuff is too hard to package. just grab every file in these directories | ||
# and call it a day. we can clean up some other time | ||
pd_filelist=['virt/scripts/*.py', 'virt/*.sample', 'virt/passfd.c', 'config/*' ] | ||
pd_filelist.extend(get_data_files(os.path.join(client_dir, 'profilers'))) | ||
pd_filelist.extend(get_data_files(os.path.join(client_dir, 'samples'))) | ||
pd_filelist.extend(get_data_files(os.path.join(client_dir, 'tests'))) | ||
pd_filelist.extend(get_data_files(os.path.join(client_dir, 'virt', 'autoit'))) | ||
pd_filelist.extend(get_data_files(os.path.join(client_dir, 'virt', 'autotest_control'))) | ||
pd_filelist.extend(get_data_files(os.path.join(client_dir, 'virt', 'blkdebug'))) | ||
pd_filelist.extend(get_data_files(os.path.join(client_dir, 'virt', 'deps'))) | ||
pd_filelist.extend(get_data_files(os.path.join(client_dir, 'virt', 'steps'))) | ||
pd_filelist.extend(get_data_files(os.path.join(client_dir, 'virt', 'tests'))) | ||
pd_filelist.extend(get_data_files(os.path.join(client_dir, 'virt', 'unattended'))) | ||
pd_filelist.extend(get_data_files(os.path.join(client_dir, 'tools'))) | ||
|
||
|
||
setup(name='autotest', | ||
description='Autotest test framework - local module', | ||
author='Autotest Team', | ||
author_email='[email protected]', | ||
version=version.get_git_version(), | ||
url='autotest.kernel.org', | ||
package_dir={'autotest.client': client_dir, | ||
'autotest' : autotest_dir, | ||
}, | ||
package_data={'autotest.client' : pd_filelist }, | ||
packages=['autotest.client.common_lib', | ||
'autotest.client.common_lib.hosts', | ||
'autotest.client.common_lib.test_utils', | ||
'autotest.client.bin', | ||
'autotest.client.bin.net', | ||
'autotest.client.tools', | ||
'autotest.client.profilers', | ||
'autotest.client.tests', | ||
'autotest.client.virt', | ||
'autotest.client', | ||
'autotest', | ||
], | ||
scripts=[client_dir + '/bin/autotest-local'], | ||
data_files=[('/etc/autotest', [autotest_dir + '/global_config.ini', | ||
autotest_dir + '/shadow_config.ini', | ||
]), | ||
], | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
from distutils.core import setup | ||
import os, sys | ||
|
||
try: | ||
import autotest.common as common | ||
except ImportError: | ||
import common | ||
|
||
from autotest_lib.client.common_lib import version | ||
|
||
# Mostly needed when called one level up | ||
db_dir = os.path.dirname(sys.modules[__name__].__file__) or '.' | ||
autotest_dir = os.path.abspath(os.path.join(db_dir, "..")) | ||
|
||
setup(name='autotest', | ||
description='Autotest test framework - results database module', | ||
author='Autotest Team', | ||
author_email='[email protected]', | ||
version=version.get_git_version(), | ||
url='autotest.kernel.org', | ||
package_dir={'autotest.database': db_dir }, | ||
package_data={'autotest.database' : ['*.sql' ] }, | ||
packages=['autotest.database' ], | ||
scripts=[db_dir + '/autotest-upgrade-db'], | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
from distutils.core import setup | ||
import os, sys | ||
|
||
try: | ||
import autotest.common as common | ||
except ImportError: | ||
import common | ||
|
||
from autotest_lib.client.common_lib import version | ||
|
||
# Mostly needed when called one level up | ||
fe_dir = os.path.dirname(sys.modules[__name__].__file__) or '.' | ||
|
||
# TODO: handle the client directory | ||
def get_data_files(path): | ||
''' | ||
Given a path, return all the files in there to package | ||
''' | ||
flist=[] | ||
for root, _, files in sorted(os.walk(path)): | ||
for name in files: | ||
fullname = os.path.join(root, name) | ||
flist.append(fullname) | ||
return flist | ||
|
||
# Some stuff is too hard to package. just grab every file in these directories | ||
# and call it a day. we can clean up some other time | ||
pd_filelist=[] | ||
pd_filelist.extend(get_data_files(os.path.join(fe_dir, 'client'))) | ||
pd_filelist.extend(get_data_files(os.path.join(fe_dir, 'afe', 'doctests'))) | ||
pd_filelist.extend(get_data_files(os.path.join(fe_dir, 'afe', 'fixtures'))) | ||
pd_filelist.extend(get_data_files(os.path.join(fe_dir, 'afe', 'templates'))) | ||
pd_filelist.extend(get_data_files(os.path.join(fe_dir, 'static'))) | ||
pd_filelist.extend(get_data_files(os.path.join(fe_dir, 'templates'))) | ||
pd_filelist.extend(get_data_files(os.path.join(fe_dir, 'tko', 'preconfigs'))) | ||
|
||
setup(name='autotest', | ||
description='Autotest test framework - rpc server', | ||
author='Autotest Team', | ||
author_email='[email protected]', | ||
version=version.get_git_version(), | ||
url='autotest.kernel.org', | ||
package_dir={'autotest.frontend': fe_dir }, | ||
package_data={'autotest.frontend' : pd_filelist }, | ||
packages=['autotest.frontend.afe', | ||
'autotest.frontend.afe.feeds', | ||
'autotest.frontend.afe.json_rpc', | ||
'autotest.frontend.db', | ||
'autotest.frontend.db.backends', | ||
'autotest.frontend.db.backends.afe', | ||
'autotest.frontend.db.backends.afe_sqlite', | ||
'autotest.frontend.migrations', | ||
'autotest.frontend.shared', | ||
'autotest.frontend.tko', | ||
'autotest.frontend', | ||
], | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
from distutils.core import setup | ||
import os, sys | ||
|
||
try: | ||
import autotest.common as common | ||
except ImportError: | ||
import common | ||
|
||
from autotest_lib.client.common_lib import version | ||
|
||
# Mostly needed when called one level up | ||
mirror_dir = os.path.dirname(sys.modules[__name__].__file__) or '.' | ||
autotest_dir = os.path.abspath(os.path.join(mirror_dir, "..")) | ||
|
||
setup(name='autotest', | ||
description='Autotest testing framework - mirror module', | ||
author='Autotest Team', | ||
author_email='[email protected]', | ||
version=version.get_git_version(), | ||
url='autotest.kernel.org', | ||
package_dir={'autotest.mirror': mirror_dir }, | ||
packages=['autotest.mirror' ], | ||
data_files=[('share/autotest/mirror', [ mirror_dir + '/mirror' ])], | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
from distutils.core import setup | ||
import os, sys | ||
|
||
try: | ||
import autotest.common as common | ||
except ImportError: | ||
import common | ||
|
||
from autotest_lib.client.common_lib import version | ||
|
||
#mostly needed when called one level up | ||
scheduler_dir = os.path.dirname(sys.modules[__name__].__file__) or '.' | ||
autotest_dir = os.path.abspath(os.path.join(scheduler_dir, "..")) | ||
|
||
setup(name='autotest', | ||
description='Autotest testing framework - scheduler module', | ||
author='Autotest Team', | ||
author_email='[email protected]', | ||
version=version.get_git_version(), | ||
url='autotest.kernel.org', | ||
package_dir={'autotest.scheduler': scheduler_dir }, | ||
package_data={'autotest.scheduler': ['archive_results.control.srv']}, | ||
packages=['autotest.scheduler' ], | ||
scripts=[scheduler_dir + '/autotest-scheduler', | ||
scheduler_dir + '/autotest-scheduler-watcher', | ||
], | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
from distutils.core import setup | ||
import os, sys | ||
|
||
try: | ||
import autotest.common as common | ||
except ImportError: | ||
import common | ||
|
||
from autotest_lib.client.common_lib import version | ||
|
||
# Mostly needed when called one level up | ||
server_dir = os.path.dirname(sys.modules[__name__].__file__) or '.' | ||
|
||
def get_data_files(path): | ||
''' | ||
Given a path, return all the files in there to package | ||
''' | ||
flist=[] | ||
for root, _, files in sorted(os.walk(path)): | ||
for name in files: | ||
fullname = os.path.join(root, name) | ||
flist.append(fullname) | ||
return flist | ||
|
||
# Some stuff is too hard to package. just grab every file in these directories | ||
# and call it a day. we can clean up some other time | ||
pd_filelist=[] | ||
pd_filelist.extend(get_data_files(os.path.join(server_dir, 'control_segments'))) | ||
pd_filelist.extend(get_data_files(os.path.join(server_dir, 'hosts', 'monitors'))) | ||
pd_filelist.extend(get_data_files(os.path.join(server_dir, 'samples'))) | ||
pd_filelist.extend(get_data_files(os.path.join(server_dir, 'tests'))) | ||
|
||
setup(name='autotest', | ||
description='Autotest testing framework - remote module', | ||
author='Autotest Team', | ||
author_email='[email protected]', | ||
version=version.get_git_version(), | ||
url='autotest.kernel.org', | ||
package_dir={'autotest.server': server_dir }, | ||
package_data={'autotest.server' : pd_filelist }, | ||
packages=['autotest.server.hosts', | ||
'autotest.server.hosts.monitors', | ||
'autotest.server', | ||
], | ||
scripts=[server_dir + '/autotest-remote', | ||
], | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
# High level way of installing each autotest component | ||
import client.setup | ||
import frontend.setup | ||
import cli.setup | ||
import server.setup | ||
import scheduler.setup | ||
import database.setup | ||
import tko.setup | ||
import utils.setup | ||
import mirror.setup |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
from distutils.core import setup | ||
from glob import glob | ||
import os, sys | ||
|
||
try: | ||
import autotest.common as common | ||
except ImportError: | ||
import common | ||
|
||
from autotest_lib.client.common_lib import version | ||
|
||
# Mostly needed when called one level up | ||
tko_dir = os.path.dirname(sys.modules[__name__].__file__) or '.' | ||
|
||
# TODO: add some toplevel non-python files | ||
|
||
setup(name='autotest', | ||
description='Autotest testing framework - tko module', | ||
author='Autotest Team', | ||
author_email='[email protected]', | ||
version=version.get_git_version(), | ||
url='autotest.kernel.org', | ||
package_dir={'autotest.tko': tko_dir }, | ||
package_data={'autotest.tko' : ['*.cgi', | ||
], | ||
}, | ||
packages=['autotest.tko.migrations', | ||
'autotest.tko.parsers', | ||
'autotest.tko.parsers.test', | ||
'autotest.tko.parsers.test.templates', | ||
'autotest.tko', | ||
], | ||
data_files=[('share/autotest/tko', [ tko_dir + '/blank.gif', | ||
tko_dir + '/draw_graphs', | ||
tko_dir + '/machine_load', | ||
tko_dir + '/parse', | ||
tko_dir + '/plotgraph', | ||
tko_dir + '/retrieve_jobs', | ||
tko_dir + '/tko.proto', | ||
]), | ||
], | ||
scripts=[tko_dir + '/autotest-db-delete-job', | ||
], | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
from distutils.core import setup | ||
import os, sys | ||
|
||
try: | ||
import autotest.common as common | ||
except ImportError: | ||
import common | ||
|
||
from autotest_lib.client.common_lib import version | ||
|
||
# Mostly needed when called one level up | ||
utils_dir = os.path.dirname(sys.modules[__name__].__file__) or '.' | ||
|
||
# TODO handle the init scripts | ||
|
||
setup(name='autotest', | ||
description='Autotest testing framework - utility scripts', | ||
author='Autotest Team', | ||
author_email='[email protected]', | ||
version=version.get_git_version(), | ||
url='autotest.kernel.org', | ||
package_dir={'autotest.utils': utils_dir }, | ||
package_data={'autotest.utils' : ['named_semaphore/*', | ||
'modelviz/*', | ||
], | ||
}, | ||
packages=['autotest.utils'], | ||
data_files=[('share/autotest/utils', [ utils_dir + '/autotestd.service', | ||
utils_dir + '/autotest.init', | ||
utils_dir + '/autotest-rh.init', | ||
utils_dir + '/release' | ||
]) | ||
], | ||
) |