Add compute API admin test for swap volume

This change adds a test for the swap volume API in
the compute service (updating a volume attachment).

This is an admin-only API by default so it uses
admin credentials to perform the volume attachment
update operation. The server and volumes used during
the test are created with non-admin credentials though.

The only virt driver that supports this operation
is libvirt so a feaure flag is added which will be
configured in devstack to run this test in the gate.

The create_volume and attach_volume methods are added
to the base compute API test class so that we can
refactor other compute API tests that have similar
function and reduce duplication. That will come in a
separate change.

This is tested with devstack change:

Ibb6b309574d2c6a06fcecb0626ea21527fb7f412

Co-Authored-By: Matt Riedemann <mriedem@us.ibm.com>

Change-Id: I2d4779de8d21aa84533f4f92d347e932db2de58e
3 files changed