* Update masakari from branch 'master'
to 88c07347b9e6ba74350d373590790f0887ac9bfb
- Merge "reno: Update master for unmaintained/xena"
- reno: Update master for unmaintained/xena
Update the xena release notes configuration to build from
unmaintained/xena.
Change-Id: Id0ca4a9e31d855b927e65b707eff659ea12a2b45
* Update masakari from branch 'master'
to d2b44cd70620d4009aa3145ab2a50b150db9b0a5
- Merge "reno: Update master for unmaintained/victoria"
- reno: Update master for unmaintained/victoria
Update the victoria release notes configuration to build from
unmaintained/victoria.
Change-Id: I9cdd67af7b2726646dc129ee25c985c349f93b9b
* Update masakari from branch 'master'
to a94fad707f1a09ec5b8c445101f5d47d874c68d5
- Merge "reno: Update master for unmaintained/wallaby"
- reno: Update master for unmaintained/wallaby
Update the wallaby release notes configuration to build from
unmaintained/wallaby.
Change-Id: I8f8dc91cdff25db7170ac536f827725c26ee56f4
* Update masakari from branch 'master'
to d585c1be0ec7a0a844907c4677adb8a61bc36436
- Merge "reno: Update master for unmaintained/yoga"
- reno: Update master for unmaintained/yoga
Update the yoga release notes configuration to build from
unmaintained/yoga.
Change-Id: Idbd1d1a09d99c8329229726b767f5b269acfbc28
* Update masakari from branch 'master'
to d468c78e4180b9619b53236f567738a68623e43b
- Merge "Update master for stable/2024.1"
- Update master for stable/2024.1
Add file to the reno documentation build to show release notes for
stable/2024.1.
Use pbr instruction to increment the minor version number
automatically so that master versions are higher than the versions on
stable/2024.1.
Sem-Ver: feature
Change-Id: I729ddc3c1f672c2c9840dce2982792154fd8f1ae
* Update masakari from branch 'master'
to 8fbcb68ee6a680ad526bb46ab4b7a0c61290df23
- Merge "Update python classifier in setup.cfg"
- Update python classifier in setup.cfg
As per the current release tested runtime, we test
till python 3.11 so updating the same in python
classifier in setup.cfg
Change-Id: I4bb6f61e833e1b32252db7dcf6773139746e5335
* Update masakari from branch 'master'
to 6b38affa154f82f885190a70770581aadf6d7dd4
- tests: Fix syntax error in hacking test
Under Python 3.12 this results in a syntax error rather than
M329 being detected on line 8 of the test code.
Change-Id: Ia1bb4dfb43b00115cde1158681d34d6ad7c7d744
* Update masakari from branch 'master'
to 19bf5068163d996cbe6beaf419fb9cd1dd455691
- remove sqlalchemy-migrate requirement
We switch to alembic, and not support sqlalchemy-migrate.
Change-Id: Id8f1e3a880e8939e1c9f3234304d010de2819f2e
* Update masakari from branch 'master'
to 72b30839990d01b6344fdb4f0c3dbf1b027bd206
- Add job to test with SQLAlchemy master (2.x)
Change-Id: I26e49c2ea77d3eed852c30de3d8ff9122812cb48
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
* Update masakari from branch 'master'
to 5647c6b1320ad2e597a297487085f39235c525a7
- db: Don't rely on implicit autocommit
Resolve the following RemovedIn20Warning warning:
The current statement is being autocommitted using implicit
autocommit, which will be removed in SQLAlchemy 2.0. Use the .begin()
method of Engine or Connection in order to use an explicit transaction
for DML and DDL statements.
This is the beefiest one due to our extensive reliance on auto-commit.
Change-Id: Iebf9d022c312b8f5457ff34eb497cdb851aa4901
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
* Update masakari from branch 'master'
to bbc4f7edd0a6539e8fce9d696cc236864315ad84
- db: Don't use legacy select() calling style
Resolve the following RemovedIn20Warning warning:
The legacy calling style of select() is deprecated and will be removed
in SQLAlchemy 2.0. Please use the new calling style described at
select().
Change-Id: I00206489e97468d98a3a516c7c081c70348e3998
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
* Update masakari from branch 'master'
to 6f2a70455696377798fa85770953314a0e464900
- db: Don't use strings to indicate paths
Resolve the following RemovedIn20Warning warning:
Using strings to indicate column or relationship paths in loader
options is deprecated and will be removed in SQLAlchemy 2.0. Please
use the class-bound attribute directly.
Change-Id: I1b71331796c2730713797043489b6c11710b9851
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
* Update masakari from branch 'master'
to 69d62e3e6d5428f0d84486f243bf4813245e2f62
- db: Don't pass strings to Connection.execute()
Resolve the following RemovedIn20Warning warning:
Passing a string to Connection.execute() is deprecated and will be
removed in version 2.0. Use the text() construct, or the
Connection.exec_driver_sql() method to invoke a driver-level SQL
string.
We do the latter.
Change-Id: I0ee518022772beeb0298e12b5b36279fd384fb4a
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
* Update masakari from branch 'master'
to 4545fdf69fae6096831783ae4b20269f8c6734e0
- tests: Resolve various warnings
These are highlighted by the new WarningsFixture.
Change-Id: If9a27784e4f4fde61dff73c1f6fde99324e1aa07
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
* Update masakari from branch 'master'
to df3fdb4f4ed0c6321bf8de1b2c814e4597c9c053
- db: Remove legacy migrations
These are no longer used. Curiously, sqlalchemy-migrate is not in the
dependencies and was instead being pulled in as a transitive dependency
of oslo.db. This will therefore disappear when oslo.db is bumped to 13.x
or later in upper-constraints, since that version removes
sqlalchemy-migrate support.
Change-Id: I4ea8ae36c9f8d3e5e5a9ac9548c5fe8f975cd666
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
* Update masakari from branch 'master'
to 6823ea5ed1ceb0a4b69bf45f0566962c68d6341f
- db: Migrate to alembic
This is easier than Cinder, Nova etc. but more difficult than Heat.
Masakari hasn't had many database migrations in recent cycles but it did
have on in Antelope. This means we need to handle people doing
skip-level upgrades and validate which version of the legacy migrations
they are currently on. We support users coming from both Zed and
Antelope and anyone else will need to go through an older version of
Masakari to update their database migrations first. Other than this
difference, the logic is pretty similar: as with other projects, we
simply determine if we're upgrading a deployment that was previously
using sqlalchemy-migrate, upgrading a deployment that has already
migrated to alembic, or deploying a new deployment, and adjust
accordingly.
In addition, we also have to consider Taskflow's migrations. These were
previously being run once as part of the legacy
006_add_persistence_tables migrations. Since Taskflow uses Alembic under
the hood, it's safe to run every time. The presence of Taskflow does
force us to use a different table name in Masakari though.
Note that one curious side-effect of this is that the order than table
rows are purged change. This appears to be happening because the
notification table is now being created in the initial Alembic
migration, which alters the return value of 'MetaData.sorted_tables'.
In any case, the fix is simply a case of adjusting this order in the
tests.
Change-Id: I5285d7cc3c6da0059c0908cedc195b2262cb1fce
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
* Update masakari from branch 'master'
to 85fd89726c516d9e14718338c171f622858bcc78
- tests: Validate number of rows _before_ purging
A nice sanity check.
Change-Id: I387fa387f392d2511d75ef955ae69df3978c65cb
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
* Update masakari from branch 'master'
to d7a918f2b1a25998e5bd92f329ef0427c54810ea
- db: Sync alembic, sqlalchemy-migrate migrations
Alembic's auto-generate functionality doesn't preserve index names or
column order. This causes comparisons between databases to fail. Update
the initial alembic migration to match the schema's generated by
sqlalchemy-migrate.
Change-Id: I16763a82cc2db9138882ace2dad6f0cae330b9e8
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
* Update masakari from branch 'master'
to ed872b3fe04a4ad2674d30ecb3bdc984633fdfb7
- db: Add initial alembic migration
This was generated using the same approach first used in heat [1], but
with a difference to account for the fact that, unlike heat, we have a
migration added in recent times. We generate our initial schema
automatically based on our models using alembic's auto-generate
functionality:
alembic --config masakari/db/sqlalchemy/alembic.ini \
revision -m 'Initial empty revision'
alembic --config masakari/db/sqlalchemy/alembic.ini \
upgrade head
alembic --config masakari/db/sqlalchemy/alembic.ini \
revision -m 'Auto-generated revision' --autogenerate
The two files were then combined, formatting and imports adjusted. We
then *remove* the parts of the migration related to the 'vm_moves' table
and run the autogeneration step again:
alembic --config masakari/db/sqlalchemy/alembic.ini \
revision -m 'Add vm moves table' --autogenerate
As noted above, this is necessary since we're going to need to support
alembic-based migrations for users jumping from e.g. Zed to Bobcat.
Once done, the schema of these migrations and the sqlalchemy-migrate
migrations are compared. This step was done by comparing the schemas of
a database created by the sqlalchemy-migrate tool to the one created by
alembic. First, we compared the initial alembic migration which
corresponds to the state of the database after sqlalchemy-migrate
migration 007:
alembic --config masakari/db/sqlalchemy/alembic.ini \
upgrade 8f848eb45d03
python masakari/db/sqlalchemy/migrate_repo/manage.py version_control \
sqlite:///masakari-old.db 000
python masakari/db/sqlalchemy/migrate_repo/manage.py upgrade \
sqlite:///masakari-old.db 007
With the two databases created, we can compare them using the
methodologies described in [2]. Once this is done, we do the same things
for the final migration to generate its own alembic variation of the
migration.
alembic --config masakari/db/sqlalchemy/alembic.ini \
upgrade head
python masakari/db/sqlalchemy/migrate_repo/manage.py upgrade \
sqlite:///masakari-old.db
These last steps highlight some small differences between the schemas.
These changes are kept to a separate change to make them more obvious.
[1] https://review.opendev.org/c/openstack/heat/+/878350
[2] https://that.guru/blog/comparing-nova-db-migrations/
Change-Id: I6d0f27ba1d81e75010e8b56c70172ccf32c1abb3
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
* Update masakari from branch 'master'
to 13ae6c01c9d910aead73abb3ce2b24af6af7a6a2
- db: Wire up for auto-generation
Change-Id: I81b4c80b592230befb7bb315411b9f0b1214aee3
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
* Update masakari from branch 'master'
to 50a46964a2a1f78473840d9d62f9b7eaa4be36e3
- db: Add initial alembic configuration
No migrations yet: this is simply the output of 'alembic init' with some
minor tweaks.
Change-Id: Ib9423c2f751d7ec0a0dec89bdc39f9b6ab043655
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
* Update masakari from branch 'master'
to 962cf0abedc12b11cfb8ec0707b2b91e67d54417
- db: Remove configurable backends
oslo.db has killed the idea of the migration wrappers. This knob is
therefore no longer useful.
Change-Id: Ia61b3291668b17b13d5f674c0dceff29a7b9b4cf
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
* Update masakari from branch 'master'
to 94257be795be4673ffdd8c0ca816afa9743e4483
- pre-commit: Update dependencies
We also bump the hacking version and remove some unnecessary notes from
the top of the requirements files: these don't apply with the dependency
resolver introduced in pip 20.3.
Change-Id: Ifebaec916264bfd10eec13040295719fd47ae107
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
* Update masakari from branch 'master'
to e6ab50131e58fa7fba12e009b4389880acdba154
- fix ci broken
1.Add sqlalchemy-migrate dependence in test-requirements.txt.
It will remove the dependence after this project switchs to alembic.
Remove "check-requirements" temporarily.
2.Fix unit tests broken by olso.utils
Some of the object unit tests grub Mock object unintentionally, and
that results in failure during initializing an versioned object,
because the Mock object does not present its version correctly.
3.make functional jobs not voting
Fix functional jobs later.
Change-Id: Id3c952a54e77952cfd0d76d259f49a14edca1d8b
* Update masakari from branch 'master'
to b72beecca27ffced88c4d68fe955fed38d842bda
- Merge "Fix compatability with new oslo.messaging"
- Fix compatability with new oslo.messaging
A recent change to oslo.messaging to redact contexts before sending them
to a notification bus broke masakari due to the invalid default for
read_deleted. This ensures that a "None" value for read_deleted ends up
being interpreted as a 'none'.
Related-bug: #2030976
Change-Id: Ic9b895601f301c1e9ba135766493d4234fa9b50b
* Update masakari from branch 'master'
to d4feef4b969634e7c1945790c67e0ba7aa39368c
- Merge "Move functional tests to Jammy; focal unsupported"
- Move functional tests to Jammy; focal unsupported
Focal is no longer supported in devstack, and the PTI indicates this
should be testing against Jammy.
Change-Id: I4780d25e45b694527bf644cd228104f4429f6e6f
* Update masakari from branch 'master'
to 2d6ecd36238f3cab7dcd75a79b7a481dfb93ede2
- Fix bindep.txt for python 3.11 job(Debian Bookworm)
Python 3.11 job run on Debian Bookworm which does
not the mysql pkg for example, mariadb-server, libmysqlclient-dev
instead they have mariadb. Updating bindep.txt file
to adjust the pkgs as per Debian bookworm.
Change-Id: Ic1008c7368bd1f658c48ddaef260e33d14358a03
* Update masakari from branch 'master'
to bad1f2fe6e5b4cc1f04c8723d9aba8c4cfffb164
- log when set host on maintenance
Change-Id: I44b1db763d3a0ed9eb4c007278c8f131db9b57dd
* Update masakari from branch 'master'
to c6afc1bc8f510ad7b627a56d1714444dcd448b7c
- Merge "add pre-commit"
- add pre-commit
This tool provides a extensible way to configure pre-commit hooks
to do something from running linters to spell-checking and it proved
to be useful.
Change-Id: I77cf6c85559989bd051798e601640e0039342924
* Update masakari from branch 'master'
to dcb7c0b7e19c5547cb5016fb81f226409234b762
- extend wait period for process notification
Change-Id: I99247ebd2d1384930eb5c3d3f01fdab1687570bd
* Update masakari from branch 'master'
to b2f2a58e3c3b4cdb3801e1d09b0a1f5aa62fc4ce
- use looping call with timeout
When period call, use loopingcall with timeout instead of etimeout.
Change-Id: I5c7d77a0578bbf96ba9d13f6b2784eb912fc548a
* Update masakari from branch 'master'
to 4f3749099545699c1479869d74b7ba1ce47fedd7
- Update master for stable/2023.1
Add file to the reno documentation build to show release notes for
stable/2023.1.
Use pbr instruction to increment the minor version number
automatically so that master versions are higher than the versions on
stable/2023.1.
Sem-Ver: feature
Change-Id: I9c0c1aebda728918029eb05f307c285581d8f0d7
* Update masakari from branch 'master'
to 3e1b85133a59ee68a3b18e47e7dc49ab30097e63
- vmoves table purge support
Change-Id: I10b4793d0471a26df4381988670334a695067d27
* Update masakari from branch 'master'
to 72a35ed293e2676f026d38649dfad28b68561678
- update api microversion for masakari vmoves
Change-Id: If85a1dc8e0801fc52effdaf17f0fa6da11688eab
* Update masakari from branch 'master'
to e8db24c63720765781d5e15c1e215fa5f13d67c3
- Merge "vm moves for host notification"
- vm moves for host notification
This feature is mainly to persist vm moves information of one host
notification into the database. It also provides a new 'VMove' api,
which could help users to insight the process or result of the host
recovery workflow, such as which vms evacuated succeed or failed, and
which ones are still evacuating.
Implements: BP vm-evacuations-for-host-recovery
Change-Id: I334af06ef526bf11dfe5030e8cba210b98f1ceea
* Update masakari from branch 'master'
to 73e35991fff18115cb2e02637d4eb0ef728af0ac
- Use new get_rpc_client API from oslo.messaging
Use the new API that is consistent with
the existing API instead of instantiating the client
class directly.
This was introduced in release 14.1.0 here [1] and
added into oslo.messaging here [2]
[1] https://review.opendev.org/c/openstack/requirements/+/869340
[2] https://review.opendev.org/c/openstack/oslo.messaging/+/862419
Change-Id: Ica14ddd31fa6be22b0d1f4bed26f266c6d9f660f
* Update masakari from branch 'master'
to 324fe6e69b40cd1eb1dfe449340a6a2811759436
- Fix tox4 issues
New tox version 4 has changed interpretation of tox.ini
The passenv parsing requires the list to be comma-separated.
Since the names are case-insensitive, duplicates are removed.
skipsdist is now a synonym of no_package and avoids the
installation of the package in all cases.
However, some environments require it (for setup metadata).
Fix allowlist_externals where appropriate.
Change-Id: Icb067e85e4f4874a52710d7053a2048e337305c8
* Update masakari from branch 'master'
to 7ec3edda1ada9c2464d79c84b0fd1d1be22f9336
- Fix notfication stuck into running status when timeout
For instance or process failure workflow, the failure notification
would stuck into running status if timeout.
Closes-Bug: #1996835
Change-Id: I61e941ab9dd831369fcc46a132ae2b11c1dd23ba
* Update masakari from branch 'master'
to 0837d7787c1be35df4b4330dbe6cdd2c160a69ab
- Handle host notification without host status
If an user sends host notification without host status:
openstack notification create COMPUTE_HOST <host> <date> '{"event": "STOPPED"}'
logging registers silly error like object None has not method 'upper' and
notification gets status 'running', host is set in maintenance status.
It's impossible to set manually host status to non-maintanence
until there are host-related running notifications.
Running notifications are expired in 24 hours by default.
The patch makes engine to set 'ignore' status for such
notifications.
Closes-Bug: 1960619
Change-Id: Id873b3300b6de49082805654c85414a8868dd925
* Update masakari from branch 'master'
to a4f745d4777f0cb8096aa123ceda212d87510848
- Switch to 2023.1 Python3 unit tests and generic template name
This is an automatically generated patch to ensure unit testing
is in place for all the of the tested runtimes for antelope. Also,
updating the template name to generic one.
See also the PTI in governance [1].
[1]: https://governance.openstack.org/tc/reference/project-testing-interface.html
Change-Id: Ic0fff11fa308ea9ad5dd46f1121124b01c397263
* Update masakari from branch 'master'
to 97ddf329a514928c984053ad70e5fb4a1f2aecdd
- Update master for stable/zed
Add file to the reno documentation build to show release notes for
stable/zed.
Use pbr instruction to increment the minor version number
automatically so that master versions are higher than the versions on
stable/zed.
Sem-Ver: feature
Change-Id: I20befc055a4d271bf0dd62434745c6bd4b67fa9d
* Update masakari from branch 'master'
to 6773fa9b110d8d011d61d5cbefad3b984624676e
- Merge "Cleanup py27 support"
- Cleanup py27 support
This repo is now testing only with Python 3, so let's make
a few cleanups:
- Remove python 2.7 stanza from setup.py
Change-Id: Ide6a052532382edcabbae9a8a1e8c1efd02f9f0c
* Update masakari from branch 'master'
to 16001fdf025f508fad4846032ffab901fa7e186f
- Merge "Fix stopping stopped instances"
- Fix stopping stopped instances
Nova-compute would periodically sync the instance status. So in the
instance failure recovery workflow,it would stop instance random failed
because of conflict, which will terminate the recovery workflow.
This patch can catch the Confict exception and continue the recovery
workflow if the instance already stopped.
Closes-Bug: 1980736
Change-Id: I59a1f9d7078614c1ddc8f4c362e967a15b8ec5e8