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