Don't detach root device volume

Detach a root device volume may cause various guest error. Although
we can argue that it's user response to not detach the root device
volume, a check in nova will be more helpful.

We can either give a warning message, or not allow it. This patch
forbids this operation, considering that even in real system, remove
root device does not make much sense.

Closes-Bug: #1279300

DocImpact

Change-Id: I01f086be668b35442a2f139f4d7dc96884a3bda6
Signed-off-by: Yunhong Jiang <yunhong.jiang@intel.com>
Fix docstring for shelve_offload_instance in compute manager

The shelve_offload_instance method in the compute manager is using an
instance object now but the docstring for the instance param said it was
a dict.

Change-Id: I9376f09402ac00e570a58f9b58b2f4aa56a7e16d
Make sure instance saves network_info when we go ACTIVE

This makes sure that when we do a save() on our instance during
creation, that we don't save the empty network_info we created
earlier over a potentially-full one built during the process.
This may happen since we wrap the networkinfo in the async helper.
This also moves the network_info.wait() out from under a conditional
which could cover up other issues leading to a case where it is
None (which shouldn't be possible). If we didn't call wait(),
then saving it wouldn't be productive or correct.

Change-Id: I9bd8dd0dce9e17cd128c7495acd52aa82119c57c
Related-bug: 1249065
VMware: fix rescue disk location when image is not linked clone

A rescue of a VM that has an image which is not linked clone would
create the rescue disk in the original VM's folder and not in the
rescue VM's folder. When the unrescue takes place the rescue disk
will not be deleted.

The patch adds unit tests that validates that the rescue disk location
is correct.

Change-Id: I17dfcade0a162057219bc6d108987bec53f526f9
Co-authored-by: Vui Lam<vui@vmware.com>
Closes-bug: #1293435
Make NovaObject report changed-ness of its children

This makes NovaObject implementations report the changed-ness of
their child objects. This avoids the case where a child object is
touched and the parent doesn't notice that it needs to be saved
back to the database.

Change-Id: Iabda4206b3662b46dab70c925c661fdedeebc432
Merge "Don't detach root device volume"
Merge "Fix docstring for shelve_offload_instance in compute manager"
Merge "Make sure instance saves network_info when we go ACTIVE"
Merge "VMware: fix rescue disk location when image is not linked clone"
Merge "Make NovaObject report changed-ness of its children"