Re-attach volumes after instance resize

Fixes bug 1051600.

Update the compute manager to pass block_device_info to three
additional driver entry points and update all virtualization drivers
to accept it as an optional argument.

Within libvirt, migrate_disk_and_power_off() will now iterate and disconnect
any existing connections.  finish_migration() simply updates its use
of to_xml(), passing block_device_info, which returns a libvirt XML
fully populated with volumes.  Finally, finish_revert_migration() no
longer uses the on-disk XML file, instead generating it via to_xml; as
the former lacks volume configuration.

Change-Id: I7dccd03ef9cc7d2848f07764d4def3787e41e202
Fixes snat rules in complex networking configs

There is currently no way to disable nova's snat rule, which causes
problems for some network configurations with an external gateway.
This patch allows the snat to be completely disabled by setting
a blank value for routing_source_ip.

This patch also makes the snat rule a little more specific, only
snatting traffic that is destined for the public interface (or
the floating interface if it is defined). This allows the snat
to work without changing routing_source_ip and also ensures that
an instance assigned multiple ips from different floating pools
will connect from the appropriate address for each pool

Fixes bug 1048765

Change-Id: I18be88a3dbb7a9f4762db7beefc94e07b8310100
Added description of operators for extra_specs

There are several new operators added for extra_specs that are used
in compute capability filter and aggregate filter. These are
described in document in this patch. Fixed bug 1047036.

Change-Id: Id86c6672d7bda458ecb918f1900d6f8a9526ad41
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
Make compute/manager.py use self.host instead of FLAGS.host

This prevents the instances returned from getting a different
instance['host'] than was supplied to the manager. This shows up
during integrated testing of 'resize'.

Change-Id: Ifa4316bf7099dc2c60c4e87cfaafa93a4bc2e5b1
Add README for doc folder

In preparation for more more man pages

Change-Id: I55a9d332e5cbba90ff1e2a2cb0c0d24ae35fba5b
Clean up handling of project_only in network_get

There was some funky logic for getting networks to work around
the project only decorator. This changes the code to match what
we actually want which is:

In Flat and FlatDHCP mode non-admins should be able to access
networks that belong to their project or networks that have no
project_id assigned.

In VlanManager, project_id=None projects should not be accessible
as this means the project hasn't been assigned yet. The assignment
is done with an elevated context.

This patch adds some logic to model_query to allow None in the
project_only filter and makes network_get_all_by_uuids and
network_get use it.

fixes bug 1048869

Change-Id: I5377cea87dec8e9d0d9cec84e07128c5c6e8dca3
Fix XML deserialization of rebuild parameters

This picks up the following attributes which are currently ignored
when poking this via XML:
 - accessIPv4
 - accessIPv6
 - adminPass

Change-Id: I947aa2f942022d839919ae7516759955e5b06668
Add api_samples tests for servers actions

Change-Id: I67446ccd53c83b5fcfc3a1857a10e160263834dd
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
Deserialize user_data in xml servers request

Also adds better validation for b64 encoded data since python
will happily ignore illegal bytes in the base64 encoded data.

Fixes bug 1050797

Change-Id: I4f380d029ec2d51f130a6dbd581410873e414216
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
Merge "Make compute/manager.py use self.host instead of FLAGS.host"
Merge "Fix XML deserialization of rebuild parameters"
Merge "Add api_samples tests for servers actions"
Merge "Add README for doc folder"
Merge "Clean up handling of project_only in network_get"
Merge "Deserialize user_data in xml servers request"