This is a solution to #502 - on a system wide install, drone_utility will try to create a temporary directory on a non readable python library area:
Aug 08 09:18:14 localhost autotest-scheduler-watcher[1491]: File "/usr/lib/python2.7/site-packages/autotest/scheduler/drone_utility.py", line 66, in initialize Aug 08 09:18:14 localhost autotest-scheduler-watcher[1491]: self._ensure_directory_exists(temporary_directory) Aug 08 09:18:14 localhost autotest-scheduler-watcher[1491]: File "/usr/lib/python2.7/site-packages/autotest/scheduler/drone_utility.py", line 211, in _ensure_directory_exists Aug 08 09:18:14 localhost autotest-scheduler-watcher[1491]: os.makedirs(path) Aug 08 09:18:14 localhost autotest-scheduler-watcher[1491]: File "/usr/lib64/python2.7/os.py", line 150, in makedirs Aug 08 09:18:14 localhost autotest-scheduler-watcher[1491]: makedirs(head, mode) Aug 08 09:18:14 localhost autotest-scheduler-watcher[1491]: File "/usr/lib64/python2.7/os.py", line 157, in makedirs Aug 08 09:18:14 localhost autotest-scheduler-watcher[1491]: mkdir(name, mode) Aug 08 09:18:14 localhost autotest-scheduler-watcher[1491]: OSError: [Errno 13] Permission denied: '/usr/lib/python2.7/site-packages/autotest/results' Use the COMMON.test_output_dir setting on global_config.ini if available to fix this. Signed-off-by: Lucas Meneghel Rodrigues <[email protected]> --- scheduler/drone_utility.py | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/scheduler/drone_utility.py b/scheduler/drone_utility.py index 94ccb18..d40a05d 100755 --- a/scheduler/drone_utility.py +++ b/scheduler/drone_utility.py @@ -1,6 +1,6 @@ #!/usr/bin/python -import pickle, subprocess, os, shutil, sys, time, signal, getpass +import pickle, subprocess, os, shutil, sys, time, signal, getpass, logging import datetime, traceback, tempfile, itertools try: import autotest.common as common @@ -15,7 +15,15 @@ from autotest.scheduler import email_manager, scheduler_config # something else during recovery. Name credit goes to showard. ;) DARK_MARK_ENVIRONMENT_VAR = 'AUTOTEST_SCHEDULER_DARK_MARK' -_TEMPORARY_DIRECTORY = 'drone_tmp' +_OUTPUT_DIR = global_config.global_config.get_config_value('COMMON', + 'test_output_dir', + default="") + +if _OUTPUT_DIR: + _TEMPORARY_DIRECTORY = os.path.join(_OUTPUT_DIR, 'drone_tmp') +else: + _TEMPORARY_DIRECTORY = 'drone_tmp' + _TRANSFER_FAILED_FILE = '.transfer_failed' @@ -60,7 +68,13 @@ class DroneUtility(object): def initialize(self, results_dir): - temporary_directory = os.path.join(results_dir, _TEMPORARY_DIRECTORY) + if _OUTPUT_DIR: + temporary_directory = _TEMPORARY_DIRECTORY + logging.info("Output dir set in global_config.ini, overriding %s", + results_dir) + else: + temporary_directory = os.path.join(results_dir, + _TEMPORARY_DIRECTORY) if os.path.exists(temporary_directory): shutil.rmtree(temporary_directory) self._ensure_directory_exists(temporary_directory) -- 1.7.11.2 _______________________________________________ Autotest-kernel mailing list [email protected] https://www.redhat.com/mailman/listinfo/autotest-kernel
