]> git-server-git.apps.pok.os.sepia.ceph.com Git - teuthology.git/log
teuthology.git
6 weeks agokernel: Support UEFI and BLS wip-dg-maas3
David Galloway [Tue, 16 Dec 2025 02:57:00 +0000 (21:57 -0500)]
kernel: Support UEFI and BLS

Signed-off-by: David Galloway <david.galloway@ibm.com>
(cherry picked from commit dc3469495ce0fb697e7a7a7126ef040033f95bde)

6 weeks agoprovisioner: Add maas provisioner
Ceph Teuthology [Tue, 4 Nov 2025 16:19:08 +0000 (21:49 +0530)]
provisioner: Add maas provisioner

Signed-off-by: Vaibhav Mahajan <vaibhavsm04@gmail.com>
6 weeks agokill: Look for, and kill, the supervisor process
Zack Cerza [Fri, 9 Jan 2026 00:36:30 +0000 (17:36 -0700)]
kill: Look for, and kill, the supervisor process

Useful if one wants to kill a job that is still waiting for its nodes to be
provisioned.

Signed-off-by: Zack Cerza <zack@cerza.org>
6 weeks agoteuthology: implement strtobool and use it
Kefu Chai [Thu, 18 Dec 2025 09:27:35 +0000 (17:27 +0800)]
teuthology: implement strtobool and use it

The distutils module was deprecated in Python 3.10 and removed in
Python 3.12. This commit replaces the deprecated distutils.utils.strtobool
imports with strtobool in teuthology.util module.

Changes:
- Add strtobool.py to teuthology/util
- Replace distutils.util.strtobool with
teuthology.util.strtobool.strtobool

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
6 weeks agoteuthology/task/install: implement LooseVersion and use it
Kefu Chai [Thu, 18 Dec 2025 09:05:58 +0000 (17:05 +0800)]
teuthology/task/install: implement LooseVersion and use it

The distutils module was deprecated in Python 3.10 and removed in
Python 3.12. This commit replaces the deprecated distutils.version
imports with the a homebrew LooseVersion implementation.

Changes:
- implement LooseVersion which is able to parse versions like
  '10.2.2-63-g8542898-1trusty'.
- Replace distutils.version.LooseVersion with
  teuthology.util.version.LooseVersion packaging.version.LooseVersion

Fixes:
```
Traceback (most recent call last):
  File "/home/jenkins-build/build/workspace/ceph-api/build/../qa/tasks/vstart_runner.py", line 81, in <module>
    from teuthology.orchestra.remote import RemoteShell
  File "/tmp/tmp.xwxq8FOScf/teuthology/teuthology/orchestra/remote.py", line 6, in <module>
    import teuthology.lock.util
  File "/tmp/tmp.xwxq8FOScf/teuthology/teuthology/lock/util.py", line 6, in <module>
    import teuthology.provision.downburst
  File "/tmp/tmp.xwxq8FOScf/teuthology/teuthology/provision/__init__.py", line 4, in <module>
    import teuthology.exporter
  File "/tmp/tmp.xwxq8FOScf/teuthology/teuthology/exporter.py", line 11, in <module>
    import teuthology.dispatcher
  File "/tmp/tmp.xwxq8FOScf/teuthology/teuthology/dispatcher/__init__.py", line 22, in <module>
    from teuthology.dispatcher import supervisor
  File "/tmp/tmp.xwxq8FOScf/teuthology/teuthology/dispatcher/supervisor.py", line 18, in <module>
    from teuthology.task import internal
  File "/tmp/tmp.xwxq8FOScf/teuthology/teuthology/task/internal/__init__.py", line 27, in <module>
    from teuthology.task.internal.redhat import (setup_cdn_repo, setup_base_repo,            # noqa
  File "/tmp/tmp.xwxq8FOScf/teuthology/teuthology/task/internal/redhat.py", line 13, in <module>
    from teuthology.task.install.redhat import set_deb_repo
  File "/tmp/tmp.xwxq8FOScf/teuthology/teuthology/task/install/__init__.py", line 14, in <module>
    from distutils.version import LooseVersion
ModuleNotFoundError: No module named 'distutils'
```

Related: https://peps.python.org/pep-0632/

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
6 weeks agoteuthology/task/pexec.py: add logs to command executed
Matan Breizman [Wed, 19 Nov 2025 13:49:36 +0000 (15:49 +0200)]
teuthology/task/pexec.py: add logs to command executed

The current output by pexec is:
```
INFO:teuthology.run_tasks:Running task pexec...
INFO:teuthology.task.pexec:Executing custom commands...
INFO:teuthology.task.pexec:Running commands on host ubuntu@smithi012.front.sepia.ceph.com
DEBUG:teuthology.orchestra.run.smithi012:> TESTDIR=/home/ubuntu/cephtest bash -s
```

The output should include the acutal command executed, similar to
exec.py:

```
INFO:teuthology.run_tasks:Running task exec...
INFO:teuthology.task.exec:Executing custom commands...
INFO:teuthology.task.exec:Running commands on role client.0 host ubuntu@smithi168.front.sepia.ceph.com
DEBUG:teuthology.orchestra.run.smithi168:> sudo TESTDIR=/home/ubuntu/cephtest bash -c 'sudo ceph osd pool create low_tier 4'
```

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
6 weeks agoFix dispatcher crash on gevent LoopExit exceptions
deepssin [Tue, 11 Nov 2025 13:16:20 +0000 (13:16 +0000)]
Fix dispatcher crash on gevent LoopExit exceptions
Handle gevent LoopExit exceptions gracefully to prevent dispatcher
crashes. Add exception handling in main loop and lock_machines() call,
with loop exit counter (max 10) to prevent infinite restarts. Isolate
child processes using start_new_session=True so job supervisors
continue running independently if dispatcher encounters exceptions.

Signed-off-by: deepssin <deepssin@redhat.com>
6 weeks agoAdd NTP security group rules for OpenStack instances
deepssin [Mon, 17 Nov 2025 13:48:35 +0000 (13:48 +0000)]
Add NTP security group rules for OpenStack instances

Add UDP port 123 ingress and egress rules for both server and worker
security groups to enable NTP time synchronization. Also refactor
add_rule() to accept direction parameter instead of hardcoding ingress.

Signed-off-by: deepssin <deepssin@redhat.com>
6 weeks agosuite.run: Fix parent commit search
Zack Cerza [Tue, 8 Jul 2025 19:14:37 +0000 (13:14 -0600)]
suite.run: Fix parent commit search

We were only looking in ceph.git; look in e.g. ceph-ci.git if that is the ceph
repo being tested.

Signed-off-by: Zack Cerza <zack@cerza.org>
6 weeks agosuite: Filter YAML fragments for distro, version
Zack Cerza [Thu, 20 Mar 2025 21:02:44 +0000 (15:02 -0600)]
suite: Filter YAML fragments for distro, version

The behavior of --distro{,-version} was never well-defined. With this change,
they can independently be used to provide a default for jobs which don't
otherwise specify a value; and more importantly, perform a post-merge filter
looking at each job's values, rejecting those which don't match. This behavior
should be more intuitive and more easy to understand.

Signed-off-by: Zack Cerza <zack@cerza.org>
6 weeks agosupervisor.reimage: Change error message wording
Zack Cerza [Mon, 15 Sep 2025 17:26:11 +0000 (11:26 -0600)]
supervisor.reimage: Change error message wording

Signed-off-by: Zack Cerza <zack@cerza.org>
6 weeks agolock.ops.lock_many: Unlock on reimage failure
Zack Cerza [Mon, 15 Sep 2025 17:25:39 +0000 (11:25 -0600)]
lock.ops.lock_many: Unlock on reimage failure

Signed-off-by: Zack Cerza <zack@cerza.org>
6 weeks agotask/install: don't attempt to handle strings for extra_system_packages
Ilya Dryomov [Tue, 4 Nov 2025 12:02:46 +0000 (13:02 +0100)]
task/install: don't attempt to handle strings for extra_system_packages

To the best of my knowledge, extra_system_packages has never accepted
a string as a value -- whether at the top level (i.e. on the install
task itself) or on a particular project (e.g. ceph).

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
6 weeks agotask/install: extra_system_packages at the top level can be a list
Ilya Dryomov [Tue, 4 Nov 2025 12:02:46 +0000 (13:02 +0100)]
task/install: extra_system_packages at the top level can be a list

Commit fc5a3197f22e ("task/install: allow both list and dicts for
extra_system_packages") introduced a regression for job definitions
where extra_system_packages at the top level (i.e. on the install
task itself) is a list.  For example

  overrides:
    install:
      ceph:
        flavor: default
        sha1: b7d57fefbec68934ae5e6e7d7c48ac09182397a5
      extra_system_packages:
      - pv

produces AssertionError on

  assert isinstance(b, dict)

in deep_merge() when it's called from _override_extra_system_packages().

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
6 weeks agoorchestra/test: drop opensuse 42.2 from opsys
Kyrylo Shatskyy [Sat, 25 Oct 2025 01:05:02 +0000 (03:05 +0200)]
orchestra/test: drop opensuse 42.2 from opsys

Signed-off-by: Kyrylo Shatskyy <kyrylo.shatskyy@gmail.com>
6 weeks agopackaging: fix test for distro version
Kyrylo Shatskyy [Sat, 25 Oct 2025 00:37:14 +0000 (02:37 +0200)]
packaging: fix test for distro version

Signed-off-by: Kyrylo Shatskyy <kyrylo.shatskyy@clyso.com>
6 weeks agoorchestra/opsys: update suse related versions
Kyrylo Shatskyy [Sat, 25 Oct 2025 00:23:14 +0000 (02:23 +0200)]
orchestra/opsys: update suse related versions

Signed-off-by: Kyrylo Shatskyy <kyrylo.shatskyy@clyso.com>
6 weeks agocargo-cult some packaging updates for rocky
Greg Farnum [Fri, 24 Oct 2025 16:32:10 +0000 (16:32 +0000)]
cargo-cult some packaging updates for rocky

Signed-off-by: Greg Farnum <gfarnum@redhat.com>
6 weeks agotask/install/rpm: don't use builder when using custom repos
Kyr Shatskyy [Thu, 4 Sep 2025 22:07:06 +0000 (00:07 +0200)]
task/install/rpm: don't use builder when using custom repos

Signed-off-by: Kyr Shatskyy <kyrylo.shatskyy@clyso.com>
6 weeks agotask/install/rpm: add/remove yum repos
Kyr Shatskyy [Wed, 3 Sep 2025 21:14:52 +0000 (23:14 +0200)]
task/install/rpm: add/remove yum repos

Signed-off-by: Kyr Shatskyy <kyrylo.shatskyy@clyso.com>
6 weeks agoorchestra/opsys: alma and rocky are rpm distro
Kyr Shatskyy [Wed, 3 Sep 2025 11:22:40 +0000 (13:22 +0200)]
orchestra/opsys: alma and rocky are rpm distro

Signed-off-by: Kyr Shatskyy <kyrylo.shatskyy@clyso.com>
6 weeks agotask/install: allow both list and dicts for extra_system_packages
Kyr Shatskyy [Wed, 15 Oct 2025 22:41:21 +0000 (00:41 +0200)]
task/install: allow both list and dicts for extra_system_packages

Fixes: https://tracker.ceph.com/issues/73527
Signed-off-by: Kyr Shatskyy <kyrylo.shatskyy@clyso.com>
6 weeks agoOpenstack: handle attached_volumes field when fetching volumes
deepssin [Thu, 25 Sep 2025 11:22:32 +0000 (07:22 -0400)]
Openstack: handle attached_volumes field when fetching volumes

Some clouds use attached_volumes instead of os-extended-volumes:volumes_attached

Signed-off-by: deepssin <deepssin@redhat.com>
6 weeks agoorchestra/console.py: increase 'power status' timeout
Dan Mick [Mon, 29 Sep 2025 17:29:39 +0000 (10:29 -0700)]
orchestra/console.py: increase 'power status' timeout

in set_power() we check to see if the power operation worked by
examining ipmi power status.  Give longer than 1s for the
status command to complete.

Signed-off-by: Dan Mick <dan.mick@redhat.com>
2 months agolock.ops.unlock_one_safe: Invert run-match logic 2036/head
Zack Cerza [Wed, 19 Mar 2025 18:35:11 +0000 (12:35 -0600)]
lock.ops.unlock_one_safe: Invert run-match logic

When unlock_one_safe is called with run_name, the caller means to express
"unlock this node if it belongs to this run".
When it is called with run_name and job_id, it means "unlock this node if it
belongs to this job in this run".
We had inverted the logic, causing leaks on reimage failures.

Signed-off-by: Zack Cerza <zack@cerza.org>