Includes sec group quota details in limits API response

Added the security groups quota details to
the limit API response so that these details
also get displayed to the user.

Fixes bug 1049578
Change-Id: I45c345141747f99359c8948e959030f8cb99e866
Add admin actions extension

The optional os-admin-actions extension adds new wsgi_actions to the
volumes/action resource and a new snapshots/action endpoint.

With this extension both controllers will support an os-reset_status
action to force a database update of a volume or snapshot that is stuck
in a failed/incorrect status. The os-reset_status action works
similarly to the compute api's os-reset_state action for instances.

The os-force_delete action behaves similarly to the "cinder-manage
volume delete" command and allows operators/admins to retry the delete
operation after it has gone into an error_deleting status with an admin
api call.

The os-admin-actions extension is enabled by default, but limited to the
admin api by the default policy.json rules. Individual admin actions
can be disabled with policy rules as well.

Example of os-reset_status action on a volume:

curl http://localhost:8776/v1/${PROJECT_ID}/volumes/${VOLUME_ID}/action \
    -H "x-auth-token: ${ADMIN_AUTH_TOKEN}" \
    -H 'content-type: application/json' \
    -d '{"os-reset_status": {"status": "error"}}'

The new admin only api can assist deployers who encounter bugs or
operational issues that result in failed actions.

It can also be used by future storage backends to support async callback
style status updates from long running actions or operations which have
encountered an error will be retried.

Also updates the api.openstack.wsgi.ControllerMetaclass to support
sub-classing wsgi.Controllers that define wsgi_actions.

Partial fix for bug #1039706

Change-Id: If795599d5150dea362279d75a75276f3166d0149
Include Schedule Hints deserialization to XML API

So far the xml format to schedule hints were not defined.
Once defined (in ML), this patch add support to its deserialization.

This patch also includes a xml deserialization method to get the Elements
between the childs of a node.

Partially fixes bug 1050997

Change-Id: I2a34dbbd6200755818d7eaa7330a96d61a043614
Add api samples to Scheduler hints extension

Change-Id: Ic324d796dac0cfc7b36c47a181b55e09cb1503e2
Make DeregisterImage respect AWS EC2 specification

The return value of current deregister_image implementation is the AMI id.
Howerver, according to Amazon EC2 API documentation, the return value of
DeregisterImageResponse should be boolean.

See more detailed documentation in:
http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-DeregisterImage.html

The example response:
<DeregisterImageResponse xmlns="http://ec2.amazonaws.com/doc/2012-08-15/">
  <requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId>
  <return>true</return>
</DeregisterImageResponse>

This patch changes the response and test case for deregister_image.

Fixes bug 1051752.

Change-Id: Ifd31b88ec4f575f50244079cdeed4c9ff57206f8
Add man pages

Add partially written manpages for:
* nova-all
* nova-api-ec2
* nova-api-metadata
* nova-api-os-compute
* nova-api-os-volume
* nova-api
* nova-cert
* nova-compute
* nova-console
* nova-consoleauth
* nova-dhcpbridge
* nova-network
* nova-novncproxy
* nova-objectstore
* nova-rootwrap
* nova-rpc-zmq-receiver
* nova-scheduler
* nova-volume-usage-audit
* nova-volume
* nova-xvpvncproxy

Change-Id: I3734831ce2f6b5d765e98b3f50fe8c1ad7965685
Improve entity validation in volumes APIs

Fixes bug #1048565

Use the new Controller.is_valid_body() helper to validate the entity
body in various volumes related POST/PUT handlers and return 422
as appropriate.

(Cherry picks commit dcecb586 from Cinder and adds similar fixes for
the volumes bits in the compute API)

Change-Id: I04127972981522c1ed81903893396c4f9665bcd3
Allows waiting timers in libvirt to raise NotFound

There are cases where an operation will fail when communicating with
libvirt. We were eating the exception even though the operation
failed, which has the potential to put the instance into an
unrecoverable state.

This patch allows NotFound exceptions to propogate up so that they
are caught by the state handling code and the task state can be
set to error.

Fixes bug 1002814

Change-Id: Iddc319b24aee0b7132155f50b9d3b0eee9bb3fa8
Reset the task state after backup done.

The compute manager needs to reset the task state after a backup
is complete. However it was only correctly reseting after a
snapshot due to the current expected state being hardcoded.
Now looks for the correct expected state depending on whether a
backup or snapshot was being executed.

Fixes bug 1051069

Change-Id: Ie91f7745b98232370be6c99d318a8033a93cc50c
Include volume_metadata with object on vol create

Fix for Bug 1029762

The symptom of this bug is that the response data of an
OSAPI create call always shows and empty dict for volume_metadata
regardless of what was passed in to created and actually used.

Upon the db create_volume call a reference to the volume
object is all that was being returned.  Since metadata is
specified and set, it should also be returned with the
create reference object.

This will result in the the osapi create call returning
a body with correct metdata info rather than always showing
and empty dict as it was previously.

Change-Id: I469e06941f446526bae39168f3b1ebfea851e0ef
Merge "Include Schedule Hints deserialization to XML API"
Merge "Add api samples to Scheduler hints extension"
Merge "Includes sec group quota details in limits API response"
Merge "Reset the task state after backup done."
Merge "Add man pages"
Merge "Include volume_metadata with object on vol create"
Fixes error handling during schedule_run_instance

If there are not enough hosts available during a multi-instance launch,
every failing instance should be updated to error state, instead of
just the first instance. Currently only the first instance is set
to Error and the rest stay in building.

This patch makes a number of fixes to error handling during scheduling.

 * Moves instance faults into compute utils so they can be created
   from the scheduler.
 * Moves error handling into the driver so that each instance can be
   updated separately.
 * Sets an instance fault for failed scheduling
 * Sets task state back to none if there is a scheduling failure
 * Modifies chance scheduler to stop returning a list of instances
   as it is not used.
 * Modifies tests to check for these states.

In addition to the included tests, the code was manually verified on
a devstack install

Fixes bug 1051066
Fixes bug 1019017

Change-Id: I49267ce4a21e2f7cc7a996fb2ed5d625f6794730
Merge "Add admin actions extension"
Merge "Allows waiting timers in libvirt to raise NotFound"
Merge "Fixes error handling during schedule_run_instance"