cinder/releasenotes/notes/cinder-manage-online-migrations-exit-status-7c16edb7facc37bb.yaml
imacdonn d47486d317 cinder-manage online_data_migrations fixes
Addresses some issues with this command:

1) When used without the --max-count option, the summary table will
   always show zero migrations run, because it only accounts for the
   last batch, and the loop only exits when the last batch does no work.

2) "remaining" counts cannot be accurate, given the way migrations are
   implemented, because the "found" count refers to the number of rows
   that exist in the database, not the number that still need the
   migration applied.

3) In the case where no migrations are successful, but some raise
   exceptions, the command was exiting with status zero, which usually
   indicates "success". This can cause issues that cause migration
   failures to go unnoticed, especially when automated.

4) When exceptions do occur, a minimally useful message is output, and
   no detail about the exception is available to the user. The exception
   detail should be logged.

5) Inaccuracies in the documentation - "--max_number" should be
   "--max-count", and stale references to the "--ignore_state" option,
   which was removed in [1]

The solution for (3) introduces a new exit status, 2. See release note
for details.

These changes are aligned with equivalents [2][3] for the nova-manage
command, except for the calculation of "Total Needed" - nova seems to
interpret the "found" count differently/inconsistently.

[1] https://review.openstack.org/510201
[2] https://review.openstack.org/605828
[3] https://review.openstack.org/608091

Change-Id: I878480eb2359625cde839b073230844acc645cba
Closes-Bug: #1794364
Closes-Bug: #1796192
2018-10-17 23:22:48 +00:00

14 lines
771 B
YAML

---
upgrade:
- |
The ``cinder-manage db online_data_migrations`` command now returns exit
status 2 in the case where some migrations failed (raised exceptions) and
no others were completed successfully from the last batch attempted. This
should be considered a fatal condition that requires intervention. Exit
status 1 will be returned in the case where the ``--max-count`` option was
used and some migrations failed but others succeeded (updated at least one
row), because more work may remain for the non-failing migrations, and
their completion may be a dependency for the failing ones. The command
should be reiterated while it returns exit status 1, and considered
completed successfully only when it returns exit status 0.