teuthology 1.0.0__tar.gz → 1.2.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- teuthology-1.2.0/.coveragerc +2 -0
- teuthology-1.2.0/.dockerignore +3 -0
- teuthology-1.2.0/.github/workflows/ci.yml +40 -0
- teuthology-1.2.0/.github/workflows/dependencies.yml +55 -0
- teuthology-1.2.0/.github/workflows/dev_container.yml +37 -0
- teuthology-1.2.0/.github/workflows/integration.yml +12 -0
- teuthology-1.2.0/.gitignore +32 -0
- teuthology-1.2.0/.gitlab-ci.yml +3 -0
- teuthology-1.2.0/.readthedocs.yml +20 -0
- teuthology-1.2.0/.travis.yml +17 -0
- teuthology-1.2.0/LICENSE +19 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/MANIFEST.in +2 -0
- teuthology-1.2.0/PKG-INFO +89 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/README.rst +1 -1
- teuthology-1.2.0/ansible.cfg +4 -0
- teuthology-1.2.0/beanstalk/alpine/Dockerfile +13 -0
- teuthology-1.2.0/bootstrap +251 -0
- teuthology-1.2.0/build_qemu_image.sh +61 -0
- teuthology-1.2.0/containers/teuthology-dev/.teuthology.yaml +9 -0
- teuthology-1.2.0/containers/teuthology-dev/Dockerfile +42 -0
- teuthology-1.2.0/containers/teuthology-dev/containerized_node.yaml +12 -0
- teuthology-1.2.0/containers/teuthology-dev/teuthology.sh +40 -0
- teuthology-1.2.0/docs/COMPONENTS.rst +71 -0
- teuthology-1.2.0/docs/ChangeLog.rst +6 -0
- teuthology-1.2.0/docs/INSTALL.rst +119 -0
- teuthology-1.2.0/docs/LAB_SETUP.rst +142 -0
- teuthology-1.2.0/docs/Makefile +180 -0
- teuthology-1.2.0/docs/README.rst +149 -0
- teuthology-1.2.0/docs/_static/create_nodes.py +65 -0
- teuthology-1.2.0/docs/_static/nginx_paddles +11 -0
- teuthology-1.2.0/docs/_static/nginx_pulpito +11 -0
- teuthology-1.2.0/docs/_static/nginx_test_logs +7 -0
- teuthology-1.2.0/docs/_static/worker_start.sh +40 -0
- teuthology-1.2.0/docs/_themes/ceph/static/font/ApexSans-Book.eot +0 -0
- teuthology-1.2.0/docs/_themes/ceph/static/font/ApexSans-Book.svg +1 -0
- teuthology-1.2.0/docs/_themes/ceph/static/font/ApexSans-Book.ttf +0 -0
- teuthology-1.2.0/docs/_themes/ceph/static/font/ApexSans-Book.woff +0 -0
- teuthology-1.2.0/docs/_themes/ceph/static/font/ApexSans-Medium.eot +0 -0
- teuthology-1.2.0/docs/_themes/ceph/static/font/ApexSans-Medium.svg +1 -0
- teuthology-1.2.0/docs/_themes/ceph/static/font/ApexSans-Medium.ttf +0 -0
- teuthology-1.2.0/docs/_themes/ceph/static/font/ApexSans-Medium.woff +0 -0
- teuthology-1.2.0/docs/_themes/ceph/static/nature.css_t +325 -0
- teuthology-1.2.0/docs/_themes/ceph/theme.conf +4 -0
- teuthology-1.2.0/docs/cephlab.png +0 -0
- teuthology-1.2.0/docs/cephlab.svg +3 -0
- teuthology-1.2.0/docs/commands/list.rst +9 -0
- teuthology-1.2.0/docs/commands/teuthology-describe.rst +4 -0
- teuthology-1.2.0/docs/commands/teuthology-dispatcher.rst +9 -0
- teuthology-1.2.0/docs/commands/teuthology-kill.rst +4 -0
- teuthology-1.2.0/docs/commands/teuthology-lock.rst +4 -0
- teuthology-1.2.0/docs/commands/teuthology-ls.rst +4 -0
- teuthology-1.2.0/docs/commands/teuthology-openstack.rst +4 -0
- teuthology-1.2.0/docs/commands/teuthology-prune-logs.rst +4 -0
- teuthology-1.2.0/docs/commands/teuthology-queue.rst +4 -0
- teuthology-1.2.0/docs/commands/teuthology-reimage.rst +4 -0
- teuthology-1.2.0/docs/commands/teuthology-report.rst +4 -0
- teuthology-1.2.0/docs/commands/teuthology-results.rst +4 -0
- teuthology-1.2.0/docs/commands/teuthology-schedule.rst +4 -0
- teuthology-1.2.0/docs/commands/teuthology-suite.rst +4 -0
- teuthology-1.2.0/docs/commands/teuthology-update-inventory.rst +4 -0
- teuthology-1.2.0/docs/commands/teuthology-updatekeys.rst +4 -0
- teuthology-1.2.0/docs/commands/teuthology-wait.rst +4 -0
- teuthology-1.2.0/docs/commands/teuthology-worker.rst +4 -0
- teuthology-1.2.0/docs/commands/teuthology.rst +4 -0
- teuthology-1.2.0/docs/conf.py +262 -0
- teuthology-1.2.0/docs/detailed_test_config.rst +309 -0
- teuthology-1.2.0/docs/docker-compose/README.md +93 -0
- teuthology-1.2.0/docs/docker-compose/db/01-init.sh +8 -0
- teuthology-1.2.0/docs/docker-compose/docker-compose.yml +92 -0
- teuthology-1.2.0/docs/docker-compose/start.sh +48 -0
- teuthology-1.2.0/docs/docker-compose/testnode/Dockerfile +26 -0
- teuthology-1.2.0/docs/docker-compose/testnode/testnode_start.sh +17 -0
- teuthology-1.2.0/docs/docker-compose/testnode/testnode_stop.sh +9 -0
- teuthology-1.2.0/docs/docker-compose/testnode/testnode_sudoers +4 -0
- teuthology-1.2.0/docs/docker-compose/teuthology/.teuthology.yaml +9 -0
- teuthology-1.2.0/docs/docker-compose/teuthology/Dockerfile +47 -0
- teuthology-1.2.0/docs/docker-compose/teuthology/containerized_node.yaml +8 -0
- teuthology-1.2.0/docs/docker-compose/teuthology/teuthology.sh +46 -0
- teuthology-1.2.0/docs/downburst_vms.rst +89 -0
- teuthology-1.2.0/docs/exporter.rst +67 -0
- teuthology-1.2.0/docs/fragment_merging.rst +318 -0
- teuthology-1.2.0/docs/index.rst +26 -0
- teuthology-1.2.0/docs/intro_testers.rst +81 -0
- teuthology-1.2.0/docs/laptop/README.md +434 -0
- teuthology-1.2.0/docs/laptop/default-pool.xml +7 -0
- teuthology-1.2.0/docs/laptop/front.xml +15 -0
- teuthology-1.2.0/docs/laptop/hosts +7 -0
- teuthology-1.2.0/docs/laptop/ssh_config +6 -0
- teuthology-1.2.0/docs/laptop/targets.sql +9 -0
- teuthology-1.2.0/docs/laptop/teuthology.yaml +30 -0
- teuthology-1.2.0/docs/libcloud_backend.rst +43 -0
- teuthology-1.2.0/docs/openstack_backend.rst +214 -0
- teuthology-1.2.0/docs/requirements.txt +3 -0
- teuthology-1.2.0/docs/siteconfig.rst +260 -0
- teuthology-1.2.0/examples/3node_ceph.yaml +15 -0
- teuthology-1.2.0/examples/3node_rgw.yaml +24 -0
- teuthology-1.2.0/examples/parallel_example.yaml +20 -0
- teuthology-1.2.0/hammer.sh +32 -0
- teuthology-1.2.0/openstack-delegate.sh +7 -0
- teuthology-1.2.0/pyproject.toml +10 -0
- teuthology-1.2.0/pytest.ini +5 -0
- teuthology-1.2.0/requirements.txt +206 -0
- teuthology-1.2.0/requirements.yml +12 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/scripts/describe.py +1 -0
- teuthology-1.2.0/scripts/dispatcher.py +62 -0
- teuthology-1.2.0/scripts/exporter.py +18 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/scripts/lock.py +1 -1
- teuthology-1.2.0/scripts/node_cleanup.py +58 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/scripts/openstack.py +9 -9
- teuthology-1.2.0/scripts/results.py +25 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/scripts/run.py +4 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/scripts/schedule.py +4 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/scripts/suite.py +61 -16
- teuthology-1.2.0/scripts/supervisor.py +44 -0
- teuthology-1.2.0/scripts/test/script.py +16 -0
- teuthology-1.2.0/scripts/test/test_dispatcher_.py +5 -0
- teuthology-1.2.0/scripts/test/test_exporter_.py +5 -0
- teuthology-1.2.0/scripts/test/test_lock.py +5 -0
- teuthology-1.2.0/scripts/test/test_ls.py +15 -0
- teuthology-1.2.0/scripts/test/test_prune_logs.py +5 -0
- teuthology-1.2.0/scripts/test/test_report.py +5 -0
- teuthology-1.2.0/scripts/test/test_results.py +5 -0
- teuthology-1.2.0/scripts/test/test_run.py +45 -0
- teuthology-1.2.0/scripts/test/test_schedule.py +5 -0
- teuthology-1.2.0/scripts/test/test_suite.py +5 -0
- teuthology-1.2.0/scripts/test/test_supervisor_.py +5 -0
- teuthology-1.2.0/scripts/test/test_updatekeys.py +21 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/scripts/update_inventory.py +10 -4
- teuthology-1.2.0/scripts/wait.py +31 -0
- teuthology-1.2.0/setup.cfg +156 -0
- teuthology-1.2.0/systemd/teuthology-dispatcher@.service +18 -0
- teuthology-1.2.0/systemd/teuthology-exporter.service +12 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/__init__.py +24 -21
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/beanstalk.py +4 -3
- teuthology-1.2.0/teuthology/ceph.conf.template +101 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/config.py +17 -6
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/contextutil.py +18 -14
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/describe_tests.py +25 -18
- teuthology-1.2.0/teuthology/dispatcher/__init__.py +365 -0
- teuthology-1.2.0/teuthology/dispatcher/supervisor.py +374 -0
- teuthology-1.2.0/teuthology/dispatcher/test/test_dispatcher.py +203 -0
- teuthology-1.2.0/teuthology/dispatcher/test/test_reimage_error_mark_machine_down.py +104 -0
- teuthology-1.2.0/teuthology/dispatcher/test/test_supervisor.py +117 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/exceptions.py +54 -0
- teuthology-1.2.0/teuthology/exporter.py +347 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/kill.py +76 -75
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/lock/cli.py +16 -7
- teuthology-1.2.0/teuthology/lock/ops.py +505 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/lock/query.py +61 -44
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/ls.py +9 -18
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/misc.py +152 -137
- teuthology-1.2.0/teuthology/nuke/__init__.py +20 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/openstack/__init__.py +4 -3
- teuthology-1.2.0/teuthology/openstack/bootstrap-teuthology.sh +33 -0
- teuthology-1.2.0/teuthology/openstack/openstack-basic.yaml +15 -0
- teuthology-1.2.0/teuthology/openstack/openstack-buildpackages.yaml +10 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/openstack/openstack-centos-7.0-user-data.txt +1 -1
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/openstack/openstack-centos-7.1-user-data.txt +1 -1
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/openstack/openstack-centos-7.2-user-data.txt +1 -1
- teuthology-1.2.0/teuthology/openstack/openstack-centos-7.3-user-data.txt +21 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/openstack/openstack-debian-8.0-user-data.txt +1 -1
- teuthology-1.2.0/teuthology/openstack/openstack-opensuse-15.0-user-data.txt +26 -0
- teuthology-1.2.0/teuthology/openstack/openstack-opensuse-15.1-user-data.txt +26 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/openstack/openstack-opensuse-42.1-user-data.txt +1 -1
- teuthology-1.2.0/teuthology/openstack/openstack-opensuse-42.2-user-data.txt +28 -0
- teuthology-1.2.0/teuthology/openstack/openstack-opensuse-42.3-user-data.txt +27 -0
- teuthology-1.2.0/teuthology/openstack/openstack-sle-12.1-user-data.txt +25 -0
- teuthology-1.2.0/teuthology/openstack/openstack-sle-12.2-user-data.txt +27 -0
- teuthology-1.2.0/teuthology/openstack/openstack-sle-12.3-user-data.txt +24 -0
- teuthology-1.2.0/teuthology/openstack/openstack-sle-15.0-user-data.txt +25 -0
- teuthology-1.2.0/teuthology/openstack/openstack-sle-15.1-user-data.txt +37 -0
- teuthology-1.2.0/teuthology/openstack/openstack-teuthology.cron +1 -0
- teuthology-1.2.0/teuthology/openstack/openstack-ubuntu-14.04-user-data.txt +21 -0
- teuthology-1.2.0/teuthology/openstack/openstack-ubuntu-16.04-user-data.txt +21 -0
- teuthology-1.2.0/teuthology/openstack/test/archive-on-error.yaml +1 -0
- teuthology-1.2.0/teuthology/openstack/test/noop.yaml +12 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/openstack/test/openstack-integration.py +3 -46
- teuthology-1.2.0/teuthology/openstack/test/resources_hint.yaml +25 -0
- teuthology-1.2.0/teuthology/openstack/test/resources_hint_no_cinder.yaml +20 -0
- teuthology-1.2.0/teuthology/openstack/test/stop_worker.yaml +1 -0
- teuthology-1.2.0/teuthology/openstack/test/suites/noop/noop.yaml +9 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/openstack/test/test_config.py +1 -1
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/openstack/test/test_openstack.py +7 -7
- teuthology-1.2.0/teuthology/openstack/test/user-data-test1.txt +5 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/orchestra/cluster.py +51 -9
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/orchestra/connection.py +23 -16
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/orchestra/console.py +111 -50
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/orchestra/daemon/cephadmunit.py +23 -5
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/orchestra/daemon/state.py +10 -3
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/orchestra/daemon/systemd.py +10 -8
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/orchestra/opsys.py +32 -11
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/orchestra/remote.py +369 -152
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/orchestra/run.py +21 -12
- teuthology-1.2.0/teuthology/orchestra/test/files/daemon-systemdstate-pid-ps-ef.output +5 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/orchestra/test/integration/test_integration.py +1 -1
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/orchestra/test/test_cluster.py +66 -74
- teuthology-1.2.0/teuthology/orchestra/test/test_connection.py +119 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/orchestra/test/test_console.py +1 -1
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/orchestra/test/test_opsys.py +24 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/orchestra/test/test_remote.py +50 -13
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/orchestra/test/test_run.py +2 -2
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/packaging.py +54 -15
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/provision/__init__.py +30 -10
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/provision/cloud/openstack.py +12 -6
- teuthology-1.2.0/teuthology/provision/cloud/test/test_base.py +90 -0
- teuthology-1.2.0/teuthology/provision/cloud/test/test_cloud_init.py +60 -0
- teuthology-1.2.0/teuthology/provision/cloud/test/test_cloud_util.py +172 -0
- teuthology-1.2.0/teuthology/provision/cloud/test/test_openstack.py +781 -0
- teuthology-1.2.0/teuthology/provision/cloud/test/test_openstack_userdata_conf.yaml +24 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/provision/cloud/util.py +1 -2
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/provision/downburst.py +83 -29
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/provision/fog.py +68 -20
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/provision/openstack.py +5 -4
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/provision/pelagos.py +13 -5
- teuthology-1.2.0/teuthology/provision/test/test_downburst.py +105 -0
- teuthology-1.2.0/teuthology/provision/test/test_fog.py +339 -0
- teuthology-1.2.0/teuthology/provision/test/test_init_provision.py +46 -0
- teuthology-1.2.0/teuthology/provision/test/test_pelagos.py +46 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/repo_utils.py +91 -44
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/report.py +57 -35
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/results.py +5 -3
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/run.py +21 -15
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/run_tasks.py +114 -40
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/schedule.py +4 -3
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/scrape.py +28 -22
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/suite/__init__.py +75 -46
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/suite/build_matrix.py +34 -24
- teuthology-1.2.0/teuthology/suite/fragment-merge.lua +105 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/suite/matrix.py +31 -2
- teuthology-1.2.0/teuthology/suite/merge.py +175 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/suite/placeholder.py +8 -8
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/suite/run.py +204 -102
- teuthology-1.2.0/teuthology/suite/test/conftest.py +4 -0
- teuthology-1.2.0/teuthology/suite/test/suites/noop/noop.yaml +7 -0
- teuthology-1.2.0/teuthology/suite/test/test_build_matrix.py +815 -0
- teuthology-1.2.0/teuthology/suite/test/test_init.py +267 -0
- teuthology-1.2.0/teuthology/suite/test/test_matrix.py +82 -0
- teuthology-1.2.0/teuthology/suite/test/test_merge.py +231 -0
- teuthology-1.2.0/teuthology/suite/test/test_placeholder.py +57 -0
- teuthology-1.2.0/teuthology/suite/test/test_run_.py +402 -0
- teuthology-1.2.0/teuthology/suite/test/test_util.py +267 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/suite/util.py +67 -211
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/task/__init__.py +1 -1
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/task/ansible.py +101 -31
- teuthology-1.2.0/teuthology/task/buildpackages/Makefile +84 -0
- teuthology-1.2.0/teuthology/task/buildpackages/centos-6.5-user-data.txt +15 -0
- teuthology-1.2.0/teuthology/task/buildpackages/centos-7.0-user-data.txt +10 -0
- teuthology-1.2.0/teuthology/task/buildpackages/centos-7.1-user-data.txt +10 -0
- teuthology-1.2.0/teuthology/task/buildpackages/centos-7.2-user-data.txt +10 -0
- teuthology-1.2.0/teuthology/task/buildpackages/centos-7.3-user-data.txt +10 -0
- teuthology-1.2.0/teuthology/task/buildpackages/common.sh +169 -0
- teuthology-1.2.0/teuthology/task/buildpackages/debian-8.0-user-data.txt +12 -0
- teuthology-1.2.0/teuthology/task/buildpackages/make-deb.sh +160 -0
- teuthology-1.2.0/teuthology/task/buildpackages/make-rpm.sh +294 -0
- teuthology-1.2.0/teuthology/task/buildpackages/opensuse-15.0-user-data.txt +16 -0
- teuthology-1.2.0/teuthology/task/buildpackages/opensuse-42.1-user-data.txt +13 -0
- teuthology-1.2.0/teuthology/task/buildpackages/opensuse-42.2-user-data.txt +14 -0
- teuthology-1.2.0/teuthology/task/buildpackages/opensuse-42.3-user-data.txt +14 -0
- teuthology-1.2.0/teuthology/task/buildpackages/sle-12.1-user-data.txt +14 -0
- teuthology-1.2.0/teuthology/task/buildpackages/sle-12.2-user-data.txt +14 -0
- teuthology-1.2.0/teuthology/task/buildpackages/sle-12.3-user-data.txt +14 -0
- teuthology-1.2.0/teuthology/task/buildpackages/sle-15.0-user-data.txt +14 -0
- teuthology-1.2.0/teuthology/task/buildpackages/ubuntu-12.04-user-data.txt +10 -0
- teuthology-1.2.0/teuthology/task/buildpackages/ubuntu-14.04-user-data.txt +10 -0
- teuthology-1.2.0/teuthology/task/buildpackages/ubuntu-16.04-user-data.txt +10 -0
- teuthology-1.2.0/teuthology/task/buildpackages/user-data.txt +10 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/task/buildpackages.py +2 -2
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/task/ceph_ansible.py +13 -6
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/task/cephmetrics.py +2 -1
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/task/clock.py +33 -14
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/task/exec.py +18 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/task/hadoop.py +2 -2
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/task/install/__init__.py +51 -22
- teuthology-1.2.0/teuthology/task/install/bin/adjust-ulimits +16 -0
- teuthology-1.2.0/teuthology/task/install/bin/daemon-helper +114 -0
- teuthology-1.2.0/teuthology/task/install/bin/stdin-killer +263 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/task/install/deb.py +24 -4
- teuthology-1.2.0/teuthology/task/install/packages.yaml +37 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/task/install/redhat.py +36 -32
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/task/install/rpm.py +41 -14
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/task/install/util.py +48 -22
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/task/internal/__init__.py +69 -11
- teuthology-1.2.0/teuthology/task/internal/edit_sudoers.sh +10 -0
- teuthology-1.2.0/teuthology/task/internal/lock_machines.py +29 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/task/internal/redhat.py +48 -28
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/task/internal/syslog.py +31 -8
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/task/kernel.py +155 -147
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/task/lockfile.py +1 -1
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/task/mpi.py +10 -10
- teuthology-1.2.0/teuthology/task/pcp.j2 +15 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/task/pcp.py +1 -1
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/task/selinux.py +17 -8
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/task/ssh_keys.py +6 -6
- teuthology-1.2.0/teuthology/task/tests/__init__.py +170 -0
- teuthology-1.2.0/teuthology/task/tests/test_fetch_coredumps.py +116 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/task/tests/test_run.py +4 -4
- teuthology-1.2.0/teuthology/templates/email-sleep-before-teardown.jinja2 +10 -0
- teuthology-1.2.0/teuthology/templates/rocketchat-sleep-before-teardown.jinja2 +6 -0
- teuthology-1.2.0/teuthology/test/__init__.py +9 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/test/fake_fs.py +2 -4
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/test/integration/test_suite.py +20 -20
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/test/task/__init__.py +1 -1
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/test/task/test_ansible.py +68 -33
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/test/task/test_ceph_ansible.py +2 -1
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/test/task/test_console_log.py +14 -10
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/test/task/test_install.py +1 -1
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/test/task/test_internal.py +1 -1
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/test/task/test_kernel.py +1 -1
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/test/task/test_pcp.py +2 -2
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/test/task/test_selinux.py +1 -1
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/test/test_config.py +4 -4
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/test/test_contextutil.py +30 -1
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/test/test_describe_tests.py +3 -2
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/test/test_email_sleep_before_teardown.py +1 -1
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/test/test_exit.py +2 -9
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/test/test_get_distro.py +1 -1
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/test/test_get_distro_version.py +3 -3
- teuthology-1.2.0/teuthology/test/test_imports.py +31 -0
- teuthology-1.2.0/teuthology/test/test_kill.py +46 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/test/test_misc.py +41 -29
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/test/test_packaging.py +136 -105
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/test/test_repo_utils.py +74 -28
- teuthology-1.2.0/teuthology/test/test_report.py +86 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/test/test_results.py +1 -1
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/test/test_run.py +17 -11
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/test/test_vps_os_vers_parameter_checking.py +1 -1
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/timer.py +3 -3
- teuthology-1.2.0/teuthology/util/__init__.py +0 -0
- teuthology-1.2.0/teuthology/util/loggerfile.py +19 -0
- teuthology-1.2.0/teuthology/util/scanner.py +159 -0
- teuthology-1.2.0/teuthology/util/sentry.py +52 -0
- teuthology-1.2.0/teuthology/util/test/files/test_unit_test.xml +7 -0
- teuthology-1.2.0/teuthology/util/test/files/test_valgrind.xml +31 -0
- teuthology-1.2.0/teuthology/util/test/test_scanner.py +191 -0
- teuthology-1.2.0/teuthology/util/test/test_time.py +54 -0
- teuthology-1.2.0/teuthology/util/time.py +52 -0
- teuthology-1.2.0/teuthology.egg-info/PKG-INFO +89 -0
- teuthology-1.2.0/teuthology.egg-info/SOURCES.txt +422 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology.egg-info/entry_points.txt +5 -2
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology.egg-info/requires.txt +41 -28
- teuthology-1.2.0/tox.ini +82 -0
- teuthology-1.2.0/update-requirements.sh +3 -0
- teuthology-1.2.0/watch-suite.sh +4 -0
- teuthology-1.0.0/PKG-INFO +0 -34
- teuthology-1.0.0/requirements.txt +0 -106
- teuthology-1.0.0/scripts/nuke.py +0 -45
- teuthology-1.0.0/scripts/results.py +0 -24
- teuthology-1.0.0/scripts/worker.py +0 -37
- teuthology-1.0.0/setup.cfg +0 -4
- teuthology-1.0.0/setup.py +0 -136
- teuthology-1.0.0/teuthology/lock/ops.py +0 -299
- teuthology-1.0.0/teuthology/nuke/__init__.py +0 -359
- teuthology-1.0.0/teuthology/nuke/actions.py +0 -456
- teuthology-1.0.0/teuthology/openstack/openstack-teuthology.cron +0 -2
- teuthology-1.0.0/teuthology/orchestra/test/test_connection.py +0 -106
- teuthology-1.0.0/teuthology/sentry.py +0 -18
- teuthology-1.0.0/teuthology/task/internal/lock_machines.py +0 -159
- teuthology-1.0.0/teuthology/task/tests/__init__.py +0 -110
- teuthology-1.0.0/teuthology/test/test_nuke.py +0 -232
- teuthology-1.0.0/teuthology/test/test_report.py +0 -77
- teuthology-1.0.0/teuthology/test/test_worker.py +0 -303
- teuthology-1.0.0/teuthology/worker.py +0 -339
- teuthology-1.0.0/teuthology.egg-info/PKG-INFO +0 -34
- teuthology-1.0.0/teuthology.egg-info/SOURCES.txt +0 -214
- {teuthology-1.0.0 → teuthology-1.2.0}/scripts/__init__.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/scripts/kill.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/scripts/ls.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/scripts/prune_logs.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/scripts/queue.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/scripts/reimage.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/scripts/report.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/scripts/updatekeys.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/exit.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/job_status.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/lock/__init__.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/lock/test/__init__.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/lock/test/test_lock.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/lock/util.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/openstack/archive-key +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/openstack/archive-key.pub +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/openstack/openstack-centos-6.5-user-data.txt +0 -0
- /teuthology-1.0.0/teuthology/openstack/openstack-ubuntu-14.04-user-data.txt → /teuthology-1.2.0/teuthology/openstack/openstack-debian-7.0-user-data.txt +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/openstack/openstack-teuthology.init +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/openstack/openstack-ubuntu-12.04-user-data.txt +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/openstack/openstack-user-data.txt +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/openstack/setup-openstack.sh +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/openstack/test/__init__.py +0 -0
- /teuthology-1.0.0/teuthology/orchestra/__init__.py → /teuthology-1.2.0/teuthology/openstack/test/suites/noop/+ +0 -0
- /teuthology-1.0.0/teuthology/orchestra/test/__init__.py → /teuthology-1.2.0/teuthology/openstack/test/suites/nuke/+ +0 -0
- {teuthology-1.0.0/teuthology/orchestra/test/integration → teuthology-1.2.0/teuthology/orchestra}/__init__.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/orchestra/daemon/__init__.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/orchestra/daemon/group.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/orchestra/monkey.py +0 -0
- {teuthology-1.0.0/teuthology → teuthology-1.2.0/teuthology/orchestra}/test/__init__.py +0 -0
- {teuthology-1.0.0/teuthology → teuthology-1.2.0/teuthology/orchestra}/test/integration/__init__.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/orchestra/test/test_systemd.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/orchestra/test/util.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/parallel.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/provision/cloud/__init__.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/provision/cloud/base.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/prune.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/reimage.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/safepath.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/task/args.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/task/background_exec.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/task/common_fs_utils.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/task/console_log.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/task/dump_ctx.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/task/full_sequential.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/task/full_sequential_finally.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/task/interactive.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/task/internal/check_lock.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/task/internal/git_ignore_ssl.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/task/internal/vm_setup.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/task/iscsi.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/task/knfsd.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/task/localdir.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/task/loop.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/task/nfs.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/task/nop.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/task/parallel.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/task/parallel_example.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/task/pexec.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/task/print.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/task/proc_thrasher.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/task/sequential.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/task/sleep.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/task/tasktest.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/task/tests/test_locking.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/task/timer.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/test/fake_archive.py +0 -0
- {teuthology-1.0.0/teuthology/util → teuthology-1.2.0/teuthology/test/integration}/__init__.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/test/test_get_multi_machine_types.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/test/test_job_status.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/test/test_ls.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/test/test_parallel.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/test/test_safepath.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/test/test_schedule.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/test/test_scrape.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/test/test_timer.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/util/compat.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology/util/flock.py +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology.egg-info/dependency_links.txt +0 -0
- {teuthology-1.0.0 → teuthology-1.2.0}/teuthology.egg-info/top_level.txt +0 -0
@@ -0,0 +1,40 @@
|
|
1
|
+
name: CI
|
2
|
+
|
3
|
+
on:
|
4
|
+
pull_request:
|
5
|
+
branches:
|
6
|
+
- main
|
7
|
+
workflow_dispatch:
|
8
|
+
|
9
|
+
jobs:
|
10
|
+
test:
|
11
|
+
name: CI on python${{ matrix.python }} via ${{ matrix.os }}
|
12
|
+
runs-on: ${{ matrix.os }}
|
13
|
+
strategy:
|
14
|
+
matrix:
|
15
|
+
include:
|
16
|
+
- os: ubuntu-20.04
|
17
|
+
python: "3.10"
|
18
|
+
- os: ubuntu-22.04
|
19
|
+
python: "3.10"
|
20
|
+
- os: ubuntu-22.04
|
21
|
+
python: "3.11"
|
22
|
+
- os: ubuntu-24.04
|
23
|
+
python: "3.12"
|
24
|
+
steps:
|
25
|
+
- uses: actions/checkout@v4
|
26
|
+
- name: Add deadsnakes PPA
|
27
|
+
if: matrix.os == 'ubuntu-20.04'
|
28
|
+
run: sudo add-apt-repository --yes ppa:deadsnakes/ppa
|
29
|
+
- name: Setup Python
|
30
|
+
uses: actions/setup-python@v5
|
31
|
+
with:
|
32
|
+
python-version: ${{ matrix.python }}
|
33
|
+
- name: Install tox
|
34
|
+
run: pip install tox
|
35
|
+
- name: Run flake8
|
36
|
+
run: tox -e flake8
|
37
|
+
- name: Run unit tests
|
38
|
+
run: tox -e py3
|
39
|
+
- name: Run docs build
|
40
|
+
run: tox -e docs
|
@@ -0,0 +1,55 @@
|
|
1
|
+
name: dependencies
|
2
|
+
|
3
|
+
on:
|
4
|
+
pull_request:
|
5
|
+
branches:
|
6
|
+
- main
|
7
|
+
workflow_dispatch:
|
8
|
+
|
9
|
+
jobs:
|
10
|
+
upgrade:
|
11
|
+
name: Test dependencies
|
12
|
+
runs-on: ${{ matrix.os }}
|
13
|
+
strategy:
|
14
|
+
matrix:
|
15
|
+
include:
|
16
|
+
- os: ubuntu-20.04
|
17
|
+
python: "3.10"
|
18
|
+
- os: ubuntu-22.04
|
19
|
+
python: "3.10"
|
20
|
+
- os: ubuntu-22.04
|
21
|
+
python: "3.11"
|
22
|
+
steps:
|
23
|
+
- name: Add deadsnakes PPA
|
24
|
+
if: matrix.os == 'ubuntu-20.04'
|
25
|
+
run: sudo add-apt-repository --yes ppa:deadsnakes/ppa
|
26
|
+
- name: Set up Python
|
27
|
+
uses: actions/setup-python@v5
|
28
|
+
with:
|
29
|
+
python-version: ${{ matrix.python }}
|
30
|
+
- name: Checkout default branch
|
31
|
+
uses: actions/checkout@v4
|
32
|
+
with:
|
33
|
+
ref: main
|
34
|
+
path: teuthology
|
35
|
+
- name: virtualenv
|
36
|
+
run: |
|
37
|
+
pip install --user virtualenv
|
38
|
+
virtualenv ./virtualenv
|
39
|
+
cd ./virtualenv/lib/python*
|
40
|
+
touch no-global-site-packages.txt
|
41
|
+
working-directory: ./teuthology
|
42
|
+
- name: Initial bootstrap
|
43
|
+
run: ./bootstrap install
|
44
|
+
working-directory: ./teuthology
|
45
|
+
- name: Move initial repository
|
46
|
+
run: mv teuthology teuthology.orig
|
47
|
+
- name: Checkout desired ref
|
48
|
+
uses: actions/checkout@v4
|
49
|
+
with:
|
50
|
+
path: teuthology
|
51
|
+
- name: Move virtualenv to new checkout
|
52
|
+
run: mv ./teuthology.orig/virtualenv ./teuthology/
|
53
|
+
- name: Re-run bootstrap
|
54
|
+
run: ./bootstrap install
|
55
|
+
working-directory: ./teuthology
|
@@ -0,0 +1,37 @@
|
|
1
|
+
---
|
2
|
+
name: dev_container
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches:
|
6
|
+
- main
|
7
|
+
workflow_dispatch:
|
8
|
+
|
9
|
+
jobs:
|
10
|
+
docker:
|
11
|
+
runs-on: ubuntu-latest
|
12
|
+
steps:
|
13
|
+
- name: Checkout
|
14
|
+
uses: actions/checkout@v4
|
15
|
+
- name: Set up QEMU
|
16
|
+
uses: docker/setup-qemu-action@v3
|
17
|
+
- name: Set up Docker Buildx
|
18
|
+
uses: docker/setup-buildx-action@v3
|
19
|
+
- name: Login to Quay.io
|
20
|
+
uses: docker/login-action@v3
|
21
|
+
with:
|
22
|
+
registry: quay.io
|
23
|
+
username: ${{ secrets.QUAY_USERNAME }}
|
24
|
+
password: ${{ secrets.QUAY_ROBOT_TOKEN }}
|
25
|
+
- name: Build and push
|
26
|
+
uses: docker/build-push-action@v5
|
27
|
+
env:
|
28
|
+
QUAY_URI: quay.io/ceph-infra/teuthology-dev
|
29
|
+
QUAY_TAG: ${{ github.event_name == 'pull_request' && github.head_ref || github.ref_name }}
|
30
|
+
with:
|
31
|
+
context: .
|
32
|
+
file: containers/teuthology-dev/Dockerfile
|
33
|
+
platforms: linux/amd64,linux/arm64
|
34
|
+
push: true
|
35
|
+
tags: ${{ env.QUAY_URI }}:${{ env.QUAY_TAG }}
|
36
|
+
outputs: type=image,name=target
|
37
|
+
|
@@ -0,0 +1,32 @@
|
|
1
|
+
*~
|
2
|
+
.#*
|
3
|
+
## the next line needs to start with a backslash to avoid looking like
|
4
|
+
## a comment
|
5
|
+
\#*#
|
6
|
+
.*.swp
|
7
|
+
|
8
|
+
*.pyc
|
9
|
+
*.pyo
|
10
|
+
.tox
|
11
|
+
|
12
|
+
/*.egg-info
|
13
|
+
/virtualenv
|
14
|
+
/build
|
15
|
+
/*.yaml
|
16
|
+
docs/build
|
17
|
+
|
18
|
+
.ropeproject
|
19
|
+
.coverage
|
20
|
+
|
21
|
+
# autogenerated docs from sphinx-apidoc
|
22
|
+
docs/modules.rst
|
23
|
+
docs/teuthology.rst
|
24
|
+
docs/teuthology.*.rst
|
25
|
+
|
26
|
+
# PyCharm
|
27
|
+
.idea
|
28
|
+
|
29
|
+
# vscode
|
30
|
+
.vscode/
|
31
|
+
|
32
|
+
.ansible
|
@@ -0,0 +1,20 @@
|
|
1
|
+
---
|
2
|
+
# Read the Docs configuration file
|
3
|
+
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
|
4
|
+
|
5
|
+
version: 2
|
6
|
+
formats: []
|
7
|
+
build:
|
8
|
+
os: ubuntu-22.04
|
9
|
+
tools:
|
10
|
+
python: "3.10"
|
11
|
+
python:
|
12
|
+
install:
|
13
|
+
- method: pip
|
14
|
+
path: .
|
15
|
+
extra_requirements:
|
16
|
+
- orchestra
|
17
|
+
- requirements: docs/requirements.txt
|
18
|
+
sphinx:
|
19
|
+
builder: html
|
20
|
+
configuration: docs/conf.py
|
teuthology-1.2.0/LICENSE
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
Copyright (c) 2014 Red Hat, Inc.
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
|
+
of this software and associated documentation files (the "Software"), to deal
|
5
|
+
in the Software without restriction, including without limitation the rights
|
6
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
7
|
+
copies of the Software, and to permit persons to whom the Software is
|
8
|
+
furnished to do so, subject to the following conditions:
|
9
|
+
|
10
|
+
The above copyright notice and this permission notice shall be included in
|
11
|
+
all copies or substantial portions of the Software.
|
12
|
+
|
13
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
16
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
19
|
+
THE SOFTWARE.
|
@@ -0,0 +1,89 @@
|
|
1
|
+
Metadata-Version: 2.1
|
2
|
+
Name: teuthology
|
3
|
+
Version: 1.2.0
|
4
|
+
Summary: Ceph test framework
|
5
|
+
Home-page: https://github.com/ceph/teuthology
|
6
|
+
Author: Ceph Community
|
7
|
+
License: MIT
|
8
|
+
Keywords: teuthology,test,ceph,cluster
|
9
|
+
Classifier: Intended Audience :: Developers
|
10
|
+
Classifier: License :: OSI Approved :: MIT License
|
11
|
+
Classifier: Natural Language :: English
|
12
|
+
Classifier: Operating System :: POSIX :: Linux
|
13
|
+
Classifier: Programming Language :: Python :: 3
|
14
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
15
|
+
Classifier: Programming Language :: Python :: 3.10
|
16
|
+
Classifier: Programming Language :: Python :: 3.11
|
17
|
+
Classifier: Programming Language :: Python :: 3.12
|
18
|
+
Classifier: Programming Language :: Python :: Implementation :: CPython
|
19
|
+
Classifier: Topic :: Software Development :: Quality Assurance
|
20
|
+
Classifier: Topic :: Software Development :: Testing
|
21
|
+
Classifier: Topic :: System :: Distributed Computing
|
22
|
+
Classifier: Topic :: System :: Filesystems
|
23
|
+
Requires-Python: >=3.10
|
24
|
+
Description-Content-Type: text/x-rst
|
25
|
+
License-File: LICENSE
|
26
|
+
Requires-Dist: PyYAML
|
27
|
+
Requires-Dist: ansible-core==2.16.6
|
28
|
+
Requires-Dist: apache-libcloud
|
29
|
+
Requires-Dist: backports.ssl-match-hostname
|
30
|
+
Requires-Dist: beanstalkc3>=0.4.0
|
31
|
+
Requires-Dist: configobj
|
32
|
+
Requires-Dist: configparser
|
33
|
+
Requires-Dist: cryptography==41.0.7
|
34
|
+
Requires-Dist: docopt
|
35
|
+
Requires-Dist: gevent
|
36
|
+
Requires-Dist: httplib2
|
37
|
+
Requires-Dist: humanfriendly
|
38
|
+
Requires-Dist: lupa
|
39
|
+
Requires-Dist: lxml
|
40
|
+
Requires-Dist: ndg-httpsclient
|
41
|
+
Requires-Dist: netaddr
|
42
|
+
Requires-Dist: paramiko
|
43
|
+
Requires-Dist: pexpect
|
44
|
+
Requires-Dist: pip-tools
|
45
|
+
Requires-Dist: prettytable
|
46
|
+
Requires-Dist: prometheus_client>=0.16.0
|
47
|
+
Requires-Dist: psutil>=2.1.0
|
48
|
+
Requires-Dist: pyasn1
|
49
|
+
Requires-Dist: pynacl>=1.5.0
|
50
|
+
Requires-Dist: pyopenssl>=0.13
|
51
|
+
Requires-Dist: python-dateutil
|
52
|
+
Requires-Dist: requests>2.13.0
|
53
|
+
Requires-Dist: sentry-sdk
|
54
|
+
Requires-Dist: types-psutil
|
55
|
+
Requires-Dist: urllib3<1.27,>=1.25.4
|
56
|
+
Provides-Extra: manhole
|
57
|
+
Requires-Dist: manhole; extra == "manhole"
|
58
|
+
Provides-Extra: rocketchat
|
59
|
+
Requires-Dist: rocket-python>=1.2.15; extra == "rocketchat"
|
60
|
+
Provides-Extra: sentry
|
61
|
+
Requires-Dist: sentry-sdk; extra == "sentry"
|
62
|
+
Provides-Extra: test
|
63
|
+
Requires-Dist: PyJWT; extra == "test"
|
64
|
+
Requires-Dist: boto>=2.0b4; extra == "test"
|
65
|
+
Requires-Dist: boto3; extra == "test"
|
66
|
+
Requires-Dist: coverage; extra == "test"
|
67
|
+
Requires-Dist: ipy; extra == "test"
|
68
|
+
Requires-Dist: mock; extra == "test"
|
69
|
+
Requires-Dist: pynose; extra == "test"
|
70
|
+
Requires-Dist: pytest; extra == "test"
|
71
|
+
Requires-Dist: pytest-cov; extra == "test"
|
72
|
+
Requires-Dist: toml; extra == "test"
|
73
|
+
Requires-Dist: tox; extra == "test"
|
74
|
+
Requires-Dist: xmltodict; extra == "test"
|
75
|
+
Provides-Extra: openstack
|
76
|
+
Requires-Dist: python-openstackclient; extra == "openstack"
|
77
|
+
Requires-Dist: python-novaclient; extra == "openstack"
|
78
|
+
|
79
|
+
===================================================
|
80
|
+
`Teuthology` -- The Ceph integration test framework
|
81
|
+
===================================================
|
82
|
+
|
83
|
+
|
84
|
+
Welcome! Teuthology's documentation is primarily hosted at `docs.ceph.com
|
85
|
+
<https://docs.ceph.com/projects/teuthology/>`__.
|
86
|
+
|
87
|
+
You can also look at docs `inside this repository <docs/>`__, but note that
|
88
|
+
GitHub's `RST <http://docutils.sourceforge.net/rst.html>`__ rendering is quite
|
89
|
+
limited. Mainly that means that links between documents will be broken.
|
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
|
6
6
|
Welcome! Teuthology's documentation is primarily hosted at `docs.ceph.com
|
7
|
-
<
|
7
|
+
<https://docs.ceph.com/projects/teuthology/>`__.
|
8
8
|
|
9
9
|
You can also look at docs `inside this repository <docs/>`__, but note that
|
10
10
|
GitHub's `RST <http://docutils.sourceforge.net/rst.html>`__ rendering is quite
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# For beanstalkd 1.12 use edge branch
|
2
|
+
#FROM alpine:edge
|
3
|
+
|
4
|
+
FROM alpine:3.12.3
|
5
|
+
|
6
|
+
MAINTAINER Kyrylo Shatskyy <kyrylo.shatskyy@suse.com>
|
7
|
+
|
8
|
+
RUN apk update && apk add beanstalkd beanstalkd-doc
|
9
|
+
|
10
|
+
ENV BEANSTALK_ADDR "0.0.0.0"
|
11
|
+
ENV BEANSTALK_PORT "11300"
|
12
|
+
|
13
|
+
CMD /usr/bin/beanstalkd -V -l $BEANSTALK_ADDR -p $BEANSTALK_PORT
|
@@ -0,0 +1,251 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
set -e
|
3
|
+
if [ $# -eq 0 ]; then
|
4
|
+
install=false
|
5
|
+
else
|
6
|
+
if [ "$1" = "install" ]; then
|
7
|
+
install=true
|
8
|
+
else
|
9
|
+
echo "Invalid command, supported commands are: 'install'"
|
10
|
+
exit 1
|
11
|
+
fi
|
12
|
+
fi
|
13
|
+
|
14
|
+
if [[ "$PYTHON" =~ "python2" ]]; then
|
15
|
+
echo "python2 is not supported." >&2
|
16
|
+
exit 1
|
17
|
+
fi
|
18
|
+
|
19
|
+
# Use the newest version we find
|
20
|
+
if [ -z "$PYTHON" ]; then
|
21
|
+
for i in 12 11 10; do
|
22
|
+
command -v "python3.$i" && PYTHON="python3.$i" && break
|
23
|
+
done
|
24
|
+
fi
|
25
|
+
if [ -z "$PYTHON" ]; then
|
26
|
+
# This would be bizarre, but I suppose possible
|
27
|
+
PYTHON=${PYTHON:-"python3"}
|
28
|
+
fi
|
29
|
+
|
30
|
+
case "$(uname -s)" in
|
31
|
+
Linux)
|
32
|
+
if command -v lsb_release; then
|
33
|
+
OS=$(lsb_release --id --short)
|
34
|
+
else
|
35
|
+
. /etc/os-release
|
36
|
+
OS=$(echo $NAME | tr -d ' ')
|
37
|
+
fi
|
38
|
+
case "$OS" in
|
39
|
+
Ubuntu|Debian|LinuxMint)
|
40
|
+
deps=(qemu-utils python3-dev libssl-dev python3-pip python3-wheel $PYTHON-venv libev-dev libvirt-dev libffi-dev libyaml-dev)
|
41
|
+
for package in ${deps[@]}; do
|
42
|
+
if [ "$(dpkg --status -- $package|sed -n 's/^Status: //p')" != "install ok installed" ]; then
|
43
|
+
# add a space after old values
|
44
|
+
missing="${missing:+$missing }$package"
|
45
|
+
fi
|
46
|
+
done
|
47
|
+
if [ -n "$missing" ]; then
|
48
|
+
echo "$0: missing required packages:" 1>&2
|
49
|
+
echo "$missing"
|
50
|
+
if [ "$install" = true ]; then
|
51
|
+
echo "Updating metadata..."
|
52
|
+
sudo apt-get update
|
53
|
+
echo "Installing missing packages..."
|
54
|
+
sudo apt-get -y install $missing
|
55
|
+
else
|
56
|
+
echo "Please install missing packages or run './bootstrap install' if you have sudo"
|
57
|
+
echo "sudo apt-get -y install $missing"
|
58
|
+
exit 1
|
59
|
+
fi
|
60
|
+
fi
|
61
|
+
;;
|
62
|
+
RedHatEnterpriseWorkstation|RedHatEnterpriseServer|RedHatEnterprise|CentOS)
|
63
|
+
deps=(python39-pip python39-devel mariadb-devel libev-devel libvirt-devel libffi-devel)
|
64
|
+
for package in ${deps[@]}; do
|
65
|
+
if ! rpm -q --whatprovides $package ; then
|
66
|
+
missing="${missing:+$missing }$package"
|
67
|
+
fi
|
68
|
+
done
|
69
|
+
if [ -n "$missing" ]; then
|
70
|
+
echo "$0: missing required packages:" 1>&2
|
71
|
+
echo "$missing"
|
72
|
+
if [ "$install" = true ]; then
|
73
|
+
echo "Installing missing packages..."
|
74
|
+
sudo yum -y install $missing
|
75
|
+
else
|
76
|
+
echo "Please install missing packages or run './bootstrap install' if you have sudo"
|
77
|
+
echo "sudo yum -y install $missing"
|
78
|
+
exit 1
|
79
|
+
fi
|
80
|
+
fi
|
81
|
+
;;
|
82
|
+
CentOSStream)
|
83
|
+
PYTHON=python3.12
|
84
|
+
deps=($PYTHON-pip $PYTHON-devel)
|
85
|
+
for package in ${deps[@]}; do
|
86
|
+
if ! rpm -q --whatprovides $package ; then
|
87
|
+
missing="${missing:+$missing }$package"
|
88
|
+
fi
|
89
|
+
done
|
90
|
+
if [ -n "$missing" ]; then
|
91
|
+
echo "$0: missing required packages:" 1>&2
|
92
|
+
echo "$missing"
|
93
|
+
if [ "$install" = true ]; then
|
94
|
+
echo "Installing missing packages..."
|
95
|
+
sudo yum -y install $missing
|
96
|
+
else
|
97
|
+
echo "Please install missing packages or run './bootstrap install' if you have sudo"
|
98
|
+
echo "sudo yum -y install $missing"
|
99
|
+
exit 1
|
100
|
+
fi
|
101
|
+
fi
|
102
|
+
;;
|
103
|
+
AlmaLinux|RockyLinux)
|
104
|
+
PYTHON=python3.12
|
105
|
+
deps=($PYTHON-pip $PYTHON-devel libev-devel libvirt-devel libffi-devel)
|
106
|
+
for package in ${deps[@]}; do
|
107
|
+
if ! rpm -q --whatprovides $package; then
|
108
|
+
missing="${missing:+$missing }$package"
|
109
|
+
fi
|
110
|
+
done
|
111
|
+
if [ -n "$missing" ]; then
|
112
|
+
echo "$0: missing required packages:" 1>&2
|
113
|
+
echo "$missing"
|
114
|
+
if [ "$install" = true ]; then
|
115
|
+
echo "Installing missing packages..."
|
116
|
+
sudo yum -y install $missing
|
117
|
+
else
|
118
|
+
echo "Please install missing packages or run './bootstrap install' if you have sudo"
|
119
|
+
echo "sudo yum -y install $missing"
|
120
|
+
exit 1
|
121
|
+
fi
|
122
|
+
fi
|
123
|
+
;;
|
124
|
+
Fedora|FedoraLinux)
|
125
|
+
PYTHON=python3.12
|
126
|
+
deps=($PYTHON-pip $PYTHON-devel)
|
127
|
+
deps=($PYTHON-pip $PYTHON-devel libev-devel libvirt-devel libffi-devel)
|
128
|
+
for package in ${deps[@]}; do
|
129
|
+
if ! rpm -q --whatprovides $package; then
|
130
|
+
missing="${missing:+$missing }$package"
|
131
|
+
fi
|
132
|
+
done
|
133
|
+
fedora_release=$(lsb_release -rs)
|
134
|
+
package_manager=dnf
|
135
|
+
if [ $fedora_release -lt 23 ]; then
|
136
|
+
package_manager=yum
|
137
|
+
fi
|
138
|
+
if [ -n "$missing" ]; then
|
139
|
+
echo "$0: missing required packages:" 1>&2
|
140
|
+
echo "$missing"
|
141
|
+
if [ "$install" = true ]; then
|
142
|
+
echo "Installing missing packages..."
|
143
|
+
sudo $package_manager -y install $missing
|
144
|
+
else
|
145
|
+
echo "Please install missing packages or run './bootstrap install' if you have sudo"
|
146
|
+
echo "sudo $package_manager -y install $missing"
|
147
|
+
exit 1
|
148
|
+
fi
|
149
|
+
fi
|
150
|
+
;;
|
151
|
+
"openSUSE project"|"SUSE LINUX"|"openSUSE"|"openSUSELeap"|"openSUSETumbleweed")
|
152
|
+
PYTHON=python3.12
|
153
|
+
deps=(python312-pip python312-devel python312 libev-devel libvirt-devel libffi-devel)
|
154
|
+
for package in ${deps[@]}; do
|
155
|
+
if ! rpm -q --whatprovides $package; then
|
156
|
+
if [ "$(rpm -q --whatprovides $package)" == "no package provides $package" ]; then
|
157
|
+
missing="${missing:+$missing }$package"
|
158
|
+
fi
|
159
|
+
fi
|
160
|
+
done
|
161
|
+
if [ -n "$missing" ]; then
|
162
|
+
echo "$0: missing required packages, please install them:" 1>&2
|
163
|
+
echo "sudo zypper install $missing"
|
164
|
+
exit 1
|
165
|
+
fi
|
166
|
+
;;
|
167
|
+
*)
|
168
|
+
echo "This script does not support your Linux distribution yet. Patches encouraged!"
|
169
|
+
exit 1
|
170
|
+
;;
|
171
|
+
esac
|
172
|
+
;;
|
173
|
+
Darwin)
|
174
|
+
if ! brew --version &>/dev/null; then
|
175
|
+
echo "You need Homebrew: http://brew.sh/"
|
176
|
+
exit 1
|
177
|
+
fi
|
178
|
+
for keg in python libvirt libev libffi; do
|
179
|
+
if brew list $keg >/dev/null 2>&1; then
|
180
|
+
echo "Found $keg"
|
181
|
+
else
|
182
|
+
if [ "$install" = true ]; then
|
183
|
+
brew install $keg
|
184
|
+
else
|
185
|
+
missing="${missing:+$missing }$keg"
|
186
|
+
echo "Please install missing packages or run './bootstrap install':"
|
187
|
+
echo "brew install $missing"
|
188
|
+
exit 1
|
189
|
+
fi
|
190
|
+
fi
|
191
|
+
done
|
192
|
+
;;
|
193
|
+
*)
|
194
|
+
echo "This script does not support your OS yet. Patches encouraged!"
|
195
|
+
exit 1
|
196
|
+
;;
|
197
|
+
esac
|
198
|
+
|
199
|
+
PYTHON_BIN=$(command -v $PYTHON)
|
200
|
+
if [ -z $PYTHON_BIN -o ! -e $PYTHON_BIN -o ! -x $PYTHON_BIN ]; then
|
201
|
+
echo "Cannot find $PYTHON!"
|
202
|
+
exit 1
|
203
|
+
fi
|
204
|
+
PYTHON_VER_OUT=$($PYTHON_BIN --version)
|
205
|
+
|
206
|
+
VENV=${VENV:-"./virtualenv"}
|
207
|
+
# If the venv was set to use system site-packages, fix that
|
208
|
+
if [ -f "$VENV/pyvenv.cfg" ]; then
|
209
|
+
sed -i'' -e 's/\(include-system-site-packages\s*=\s*\)true/\1false/g' $VENV/pyvenv.cfg
|
210
|
+
fi
|
211
|
+
|
212
|
+
# Attempt to force a UTF-8 locale without being specific to English
|
213
|
+
export LANG=${LANG:-C.UTF-8}
|
214
|
+
(echo $LANG | grep -qi utf-8) || export LC_ALL=$LANG.UTF-8
|
215
|
+
|
216
|
+
if [ -z "$NO_CLOBBER" ] && \
|
217
|
+
[ ! -e "$VENV/bin/pip" -o ! -e "$VENV/bin/$PYTHON" ] || \
|
218
|
+
[ "${PYTHON_VER_OUT}" != "$($VENV/bin/$PYTHON --version)" ] \
|
219
|
+
; then
|
220
|
+
rm -rf virtualenv
|
221
|
+
fi
|
222
|
+
|
223
|
+
if [ -z "$NO_CLOBBER" ] || [ ! -e $VENV ]; then
|
224
|
+
$PYTHON_BIN -m venv $VENV
|
225
|
+
fi
|
226
|
+
|
227
|
+
$VENV/bin/pip install packaging
|
228
|
+
|
229
|
+
# It is impossible to upgrade ansible from 2.9 to 2.10 via pip.
|
230
|
+
# See https://docs.ansible.com/ansible/devel/porting_guides/porting_guide_2.10.html#known-issues
|
231
|
+
if [ -f "$VENV/bin/ansible" ]; then
|
232
|
+
uninstall_ansible=$($VENV/bin/python3 -c "import ansible; from packaging.version import parse; print(parse(ansible.__version__) < parse('2.10.0'))")
|
233
|
+
if [ "$uninstall_ansible" = "True" ]; then
|
234
|
+
$VENV/bin/pip uninstall -y ansible
|
235
|
+
fi
|
236
|
+
fi
|
237
|
+
|
238
|
+
# First, upgrade pip
|
239
|
+
$VENV/bin/pip install --upgrade pip
|
240
|
+
|
241
|
+
# See https://github.com/pypa/pip/issues/8559
|
242
|
+
$VENV/bin/pip install -r requirements.txt --use-pep517
|
243
|
+
|
244
|
+
# By default, install teuthology in editable mode
|
245
|
+
$VENV/bin/pip install ${PIP_INSTALL_FLAGS:---editable '.[test]'}
|
246
|
+
|
247
|
+
# Check to make sure requirements are met
|
248
|
+
$VENV/bin/pip check
|
249
|
+
|
250
|
+
# Install ansible collections
|
251
|
+
$VENV/bin/ansible-galaxy install -r requirements.yml
|