On 03/27/2015 06:01 AM, Pavel Hrdina wrote:
The first four patches only cleanup the flags checking in our APIs
by
introducing new macros to check exclusive flags and requirements.
Patch 5/7 uses the new macros to do better flags checking for
virDomainSetvcpusFlags API.
Patch 6/7 introduces macro to check virsh options requirements.
The last patch uses the requirement macro to cleanup virsh setvcpus code
and fixes a bug with --maximum option.
Because only the last patch actually fixes a bug issue, I'm not sure whether
this patch series should wait for next release cycle.
Luyao Huang (1):
tools: fix the wrong check when use virsh setvcpus --maximum
Pavel Hrdina (6):
internal: introduce macro helpers to reject exclusive flags
internal: introduce macro helpers to check flag requirements
use new macro helpers to check exclusive flags
use new macro helpers to check flag requirements
qemu: use new macros for setvcpus to check flags and cleanup the code
virsh: introduce new macros to help check flag requirements
src/internal.h | 87 +++++++++++
src/libvirt-domain-snapshot.c | 56 +++-----
src/libvirt-domain.c | 286 +++++++++++--------------------------
src/qemu/qemu_driver.c | 33 +----
src/storage/storage_backend_disk.c | 10 +-
src/storage/storage_backend_fs.c | 11 +-
tools/virsh-domain.c | 30 +---
tools/virsh.h | 52 +++++++
8 files changed, 256 insertions(+), 309 deletions(-)
Since there's been too many changes since this was posted, these won't
'git am -3' for me, so it's a visual inspection...
Patches 1-4 -
* In general - ACK - just be sure to heed Jeff's comment regarding use
of do { } while(0); within each #define.
* On the plus side - less code, easier checks, and consistency with the
output. However...
* This does change error message output from using strings like
'redefine', 'halt', running', 'paused', 'children',
'children_only', etc
to the #NAME-OF-FLAG output. Not that I find that a problem; however, I
have to wonder how that affects tests which search for certain strings
for failure case checking - eg. autotest/virt-test. This also has a side
effect on message i18n, but that's no different than any other message
outputting text in a message I suppose. We are reducing our messages.
* You're also removing the __FUNCTION__ from the output for some errors
- I have no problem with that since it should be fairly obvious, but it
is different. Then again, the messages are
Patch 5 (ACK)
* The error for GUEST && CONFIG changes - doesn't specifically call out
guest agent, but I would think someone supplying GUEST would know that
anyway, so it's a no big deal, except of course for the test script that
may look for a specific error message.
Patches 6-7 (ACK in general)
* I agree with Jeff regarding the "do { } while(0);"
* The commit message needs some massaging - it'd be nice to see the
output with the changes in place
* What happens after these changes if someone does "virsh setvcpus
--current --maximum 10" to an inactive domain?
John