summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* controller: allow parsing credsfile from anywherePavel Raiskup2014-10-221-1/+3
| | | | | * controller/parse_credsfile: Detect $srcdir to be able to read the correct secret file from any CWD.
* tester/controller: better test-result layoutPavel Raiskup2014-10-222-11/+26
| | | | | | | | | | | | Make sure that on tester machine everything is put into $DTF_RESULTDIR. Similarly, on controller machine, everything should be put into --workdir. * controller/run_remote: Detect $srcdir. (workdir_prereq): The $opt_workdir is temporary directory by default. * tester/run (run): Task results now go into $DTF_RESULTDIR/tasks. The main xml result goes into $DTF_RESULT/dtf.xml.
* big reorg: prepare for generalizationPavel Raiskup2014-10-2248-50/+111
| | | | | | | | | | | | Try to split into three separate components -> controller, tester, and 'tasks' (postgresql-tasks in our case). The controller component is the main part which is able to run the task remotely. Tester is more-like library for 'tasks' component (should be reusable on the raw git level). * controller: Almost separated component. * postgresql-tasks: Likewise. * tester: Likewise.
* run_remote/ansible: wait for VM start 10 minutesPavel Raiskup2014-10-211-1/+1
| | | | | | .. as the default 180s seems to often not sufficient. * ansible/fedora.yml: Add wait_for=600 to nova_compute.
* tasks/initdb: the --MODE options are in f22+Pavel Raiskup2014-10-211-1/+1
| | | | * tasks/initdb/runtests.sh: Skip this test if performed on f21-.
* lib_pgsql.sh: add fedora 21/22 into upgrade matrixPavel Raiskup2014-10-211-3/+3
| | | | | | | .. because data for x86_64 servers are already generated. * lib_pgsql.sh (dtf_postgresql_upgrade_matrix): Testing upgrade from f21 and f22 is now possible.
* docs: adjust template config filesPavel Raiskup2014-10-212-14/+23
| | | | | * config/config.sh.template: Variable description adjusted. * config/os/EXAMPLE.sh: Likewise.
* runner: template fix for NOT AVAILABLE resultsPavel Raiskup2014-10-201-1/+3
| | | | | * runner/result_templates/html.tmpl: When particular task results are not available, print NOT AVAILABLE instead of FAIL.
* run_remote: allow installing not-yet-stable packagesPavel Raiskup2014-10-204-2/+20
| | | | | | | | | | | | | | | | For that purpose you may use '--extra-rpms-file FILE' option where the file contains list of rpms to be installed. The RPMs should be defined like accessible URLs from testing machine. Also, export the overall log file as dtf-run.overview. * run_remote: Add new option --extra-rpms-file. * ansible/fedora.yml: Include conditionally the additional-packages playbook. Generate the dtf-run.overview. * ansible/include/additional-packages.yml: New playbook used to install explicit list of additional packages. * ansible/include/download-results.yml: Fix to download also dtf-run.overview file.
* lib: lint bash constructsPavel Raiskup2014-10-202-16/+9
| | | | | * lib.sh: Mostly fix double-quoting and back-tick removal. * lib_pgsql.sh: Likewise.
* tasks/upgrade-locale-utf8-syntax: new testcasePavel Raiskup2014-10-204-34/+76
| | | | | | | | | | | | | | | | | | | | When system's locale changed e.g. from en_US.utf8 to en_US.UTF-8, older PostgreSQL versions were unable to upgrade the data directory. From Fedora 20 we should be able to upgrade without issues. Related: #1007802 * lib_pgsql.sh (dtf_postgresql_cb_upgrade) (dtf_postgresql_cb_upgrade_select): New callbacks for dtf_postgresql_upgrade_tour function. (dtf_postgresql_upgrade_tour): Function determining against which data the installation is able to upgrade and performs all the possible upgrade scenarios. * tasks/upgrade-basic/runtest.sh: Switch to dtf_postgresql_upgrade_tour usage. * tasks/upgrade-utf8-syntax/config.sh: New testcase config. * tasks/upgrade-utf8-syntax/runtest.sh: New testcase.
* tasks/upgrade: add basic upgrade testcasePavel Raiskup2014-10-204-0/+82
| | | | | | | | | | | | Based on pre-generated tarball with PostgreSQL data - download the tarball, unpack and perform 'postgresql-setup upgrade'. * lib_pgsql.sh (dtf_postgresql_unpack_remote_data): New function. (dtf_postgresql_upgrade_matrix): New function. Detect which data should we test against. * run: Define new global $dtf_dataurl. * tasks/upgrade-basic/config.sh: New testcase config. * tasks/upgrade-basic/runtest.sh: New testcase.
* parse_credsfile: export OpenStack variablesPavel Raiskup2014-10-171-1/+1
| | | | | * parse_credsfile: Use export to correctly propagate values which are parsed.
* gen-data: remote_generate addedPavel Raiskup2014-10-175-0/+29
| | | | | | | | | | | | | Allow automatized generating of data structures on remote host. Run like ./remote_generate IP_ADDRESS. * gen-data/dist/dist: New file. Wrapper around tar to package important files for data generation. * gen-data/dist/dist.list: Include list for ^. * gen-data/dist/dist.exclude: Exclude list for ^. * gen-data/prep: Remote script to prepare everything for successful ./generate run. * gen-data/remote_generate: Wrapper running all the above.
* gen-data/tasks: new task 'locale-utf-typo'Pavel Raiskup2014-10-173-16/+24
| | | | | | | | | | | | | In F20+ we should be able to deal with upgrades where user (or system itself) changed the system locale like from 'en_US.utf8' to 'en_US.UTF-8' (which is just a syntax change). Data generated by this task should help testing this. * gen-data/tasks/templates/locale-change.sh: Add new template for locale related data-generation. * gen-data/tasks/locale-cz/run.sh: Reuse template ^^. * gen-data/tasks/locale-utf-typo/run.sh: New file for 'en_US.UTF-8' to 'en_US.utf8' switch. Reuse template ^^.
* gen-data/tasks: add new 'locale-cz' taskPavel Raiskup2014-10-172-5/+31
| | | | | | | | | | | | | | | This data should help with checking of 'postgresql --upgrade' behavior when the system locale changed significantly (from en_US.UTF-8 to cs_CZ.utf8). * gen-data/tasks/locale-cz/run.sh: New task file. * gen-data/generate (locale_prereq): Fix missing LANG= prefix in expected locale. Quote current/expected locale strings in error output. (single_task): Adjust $INDENT in sub-shell to not affect subsequent calls. Create tarball in $OUTPUTDIR rather than in `pwd`. Introduce hook_end callback. (generate_tasks): Use dynamic list of tasks.
* get_machine: use the default configurationPavel Raiskup2014-10-172-45/+59
| | | | | | * get_machine: Rework, new options, using parse_credsfile script to parse configuration etc. * parse_credsfile: New config-parsing script.
* gen-data: add infrastructure for data generationPavel Raiskup2014-10-173-0/+166
| | | | | | | | | Add also first task 'basic' which generates simple 'pagila' database. * generate: New file. * databases/pagila.sh: New database file. * tasks/basic/run.sh: New task file.
* controller: rsync results to presenterPavel Raiskup2014-10-142-1/+12
| | | | | | * controller: Just rsync. * config/config.sh.template: Document the DTF_PRESENTER_PLACE option.
* controller: configuration cleanupPavel Raiskup2014-10-1413-48/+129
| | | | | | | | | | | | | | | | | | | | | | | Better define configuration and provide examples. * controller: Unpack results to correct directory, load the configuration from new place, call run_remote with proper arguments, generate 'results.html' with result_stats script. * ansible/run_include: Adjust to better simulate run_remote. * ansible/fedora.yml: Adjust for fixed configuration. * run_remote: Likewise. Also small issues with option parsing fixed. * config.sh.template: Moved as config/config.sh.template. * config/config.sh.template: Copyyed from /config.sh.template, better documented options. * run: Fix typo - use 'while read i' instead of 'for i in'. * config/os/EXAMPLE.sh: New file - exmaple configuration. * private/os/EXAMPLE.yml: Likewise. * config/hosts.template: Likewise. * dist.include: New file with file patterns that should be distributed to test machine. * dist: Distribute only those files which are necessary. * config/.gitignore: New gitignore file.
* ansible: fix syntaxe errorsPavel Raiskup2014-10-142-5/+5
| | | | | | * ansible/fedora.yml: Remove leading dashes from before dict keys. * ansible/include/download-results.yml: Make sure that trailing slash is added to fetch destination.
* run: shell-lint some constructsPavel Raiskup2014-10-121-20/+22
| | | | | * run: Double-quote variables, do not use A && B || C construct, do not use backticks but rather use $().
* ansible: add result downloadingPavel Raiskup2014-10-122-2/+14
| | | | | | | * ansible/fedora.yml: Make the ./run non-fatal. Include download-results.yml and add skeleton for VM shutdown. * ansible/include/download-results.yml: Download the run results into directory specified by opt_tmp_resultdir.
* controller: createPavel Raiskup2014-10-124-0/+182
| | | | | | | | | | | | | Controller script runs the script on remote machine (OpenStack), downloads the results, stores the result into its own result-database and re-generates statistics for runs done so far. It will be able to upload the results to "presenter" machine. * config.sh.template: New doc file. * controller: New file (the central script for CI). * runner/result_stats: New file. Based on downloaded results from testing machine, it generates single html file with stats. * runner/result_templates/html.tmpl: New file. Template for ^^^.
* runner: create yml file per each taskPavel Raiskup2014-10-121-0/+5
| | | | * run (run): Create the yml file as TASK_ID.result.
* run_remote: add options handlerPavel Raiskup2014-10-121-1/+37
| | | | * run_remote: Do $subject by incorporating getopt.
* run_include: fix to be more like 'run_remote'Pavel Raiskup2014-10-122-5/+15
| | | | | | | * ansible/dummy-wrapper.yml: Do not require 'script_name' variable. * ansible/run_include: Better work with actual directory when including other scripts or searching for included playbook.
* tasks/initdb: fixes for f20Pavel Raiskup2014-10-032-4/+10
| | | | | | | | | Older versions of postgresql-setup do not support --initdb option. * lib_pgsql.sh (dtf_postgresql_phase_cleanup): Do not fail when the data directory is not created by test. * tasks/initdb/runtest.sh: Avoid running this test on older RHEL/Fedora systems.
* ansible: incorporate os1 triggersPavel Raiskup2014-10-0312-6/+210
| | | | | | | | | | | | | | | | | | | | | * ansible/dummy-wrapper.yml: Helper playbook to directly invoke "included" playbooks. * ansible/fedora.yml: The "main" playbook (new file). * ansible/include/beakerlib.yml: New file, install beakerlib remotely. * ansible/include/prepare-testenv.yml: Install the test dependencies remotely. * ansible/run_include: Helper script to run included playbooks. * dist: Do not distribute ansible playbooks in tarball. * get_machine: Helper script to obtain openstack machine, not used currently. * lib_pgsql.sh: Assert for PG_VERSION, not for datadir (as it by default exists after postgresql-server installation. * run_remote: Helper script invoking the main ansible playbook. * ansible_helpers/wait-for-ssh: Helper script as 'wait_for' is broken? * README: Document. * .gitignore: Ignore private files.
* dist: create distribution scriptPavel Raiskup2014-10-032-0/+11
| | | | | | | | This script creates tarball having self-standing testsuite which is able to run on remote host. * dist: New file. * .gitignore: New file, ignore tarballs.
* library/run: structured output in xmlPavel Raiskup2014-10-033-2/+57
| | | | | | | | | | Generate xml output easily parse-able by xsltproc. * lib.sh (dtf_resultxml_init, dtf_resultxml_finish, dtf_resultxml_cache, dtf_die): New functions. * run.sh: Include lib.sh globally. * run.sh (run): Reuse new lib api. * tasks/initdb_old/config.sh: Typo: use DTF_TEST_DESCRIPTION.
* Initial commitPavel Raiskup2014-10-038-0/+282
Initializet the lib/run structure and created two basic tests for PostgreSQL. * README: New file. * lib.sh: Likewise. * lib_pgsql.sh: Likewise. * run: Likewise. * tasks/initdb/config.sh: Likewise. * tasks/initdb/runtest.sh: Likewise. * tasks/initdb_old/config.sh: Likewise. * tasks/initdb_old/runtest.sh: Likewise.