Fixes Invalid tag name error when using k:v tagname

This patch fixes the invalid tag name error when k:v type
tagname appears in response of api during xml serialization,
the tagname which contains colon couldn't be supported by
default since it is reserved by xml namespace, this patch
solve it by adding the k of k:v tagname into namespace.

Fixes bug: #1213927

Change-Id: Ib20efb378425cbe5deef45fbac561955cbe0f7bc
(cherry picked from commit 80b11279ba9853a9ab743ec6987c3229fff0b5e4)
hyperv: Initialize target_iqn in attach_volume

The target_iqn is referenced before it is declared in the
case that an exception is encountered in _login_storage_target
or _get_mounted_disk_from_lun.  This causes the exception path
to cause an additional, misleading, traceback to be printed
after an exception is encountered.

This commit initializes target_iqn at the beginning of
attach_volume to avoid the traceback.

Closes-Bug: 1233837
Change-Id: I1cdfb9dfa054ee4f4f6918d7bc49081ccaebab9d
(cherry picked from commit 9baa186ebb578205c513c94fc621e254f4c13a08)
Cells: Fix instance deletes

A regression was introduced with object conversion that caused all
instances to be locally deleted in the API cell when cells is enabled.
This would happen before the child cell was told to delete the instance.

Additionally, if an instance record was created in a child cell but
failed to schedule to a host in such a way that the API cell has
no knowledge of the 'host', the instance would be deleted in the API
cell only.

Also, it appears that we would cast deletes to child cells twice due to
logic duplicated in cells_api.py that exists in api.py.

Closes-Bug: #1240247

Change-Id: I94cfddd9cef2d63b2cb31c0f2dae8e211a4418d9
(cherry picked from commit 0493c803ae9612f87ed028e1a39e880aead5bdcb)
Merge "Fixes Invalid tag name error when using k:v tagname" into stable/havana
Merge "Cells: Fix instance deletes" into stable/havana
Merge "hyperv: Initialize target_iqn in attach_volume" into stable/havana
Change gitreview to point to nectar

Change-Id: Ib31fa3b8522cf43adf70ebd76be83d6b82a3aa65
Use DB for cells tests
Send up AZ and instance_name in system metadata

Change-Id: I63bbc86b4dd4cf107b09f10000b7c9ab06822ad6
AZ support for cells
Support consoleauth at child cells
Restricted and direct only cell scheduler filters

Change-Id: I38a1a5c1fa90c9ec26ad9184deb0aa60f72abebf
Added scheduler filter to filter on hosts in aggregates that have
instance_name keys. These must match the requested instance_type.
(cherry picked from commit ed5d31011ddcee43cfd59df612fe3ebf2febe76c)

Signed-off-by: Kieran Spear <kispear@gmail.com>
Support flavor create call with cells

Change-Id: I695963448122e6c9951fc45e7b9e5fea0fd01b1f
Makes the host aggregate functionality work with cells

 + In the openstack api, it moves database access and other
   functionality to the nova.compute layer
 + It adds support for aggregates in nova.compute.cells_api
 + It adds the following host aggregate related functions to the cells
   rpcapi and messaging systems:
     * create_aggregate(self, ctxt, aggregate_name, availability_zone)
     * get_aggregate(self, ctxt, aggregate_id)
     * get_aggregate_list(self, ctxt, cell=None)
     * update_aggregate(self, ctxt, aggregate_id, values)
     * update_aggregate_metadata(self, ctxt, aggregate_id, metadata)
     * delete_aggregate(self, ctxt, aggregate_id)
     * add_host_to_aggregate(self, ctxt, aggregate_id, host_name)
     * remove_host_from_aggregate(self, ctxt, aggregate_id, host_name)
 + It increments the cells_api version from 1.19 to 1.20

blueprint cells-aggregate-support
Change-Id: I079f767ad1c4e966c22d6722c0dfea6d5f35c54d

Conflicts:
	nova/cells/manager.py
	nova/cells/messaging.py
	nova/cells/rpcapi.py
	nova/tests/cells/test_cells_manager.py
	nova/tests/cells/test_cells_messaging.py
	nova/tests/cells/test_cells_rpcapi.py
Update supported cells RPC version for NeCTAR mods

Change-Id: Ia75b3a91e2c0686d229b2d345bd0fcf77f89b7d1
Support public-ipv4 metadata lookup without floating IPs

Change-Id: I92dcdd1a5e0bbc0664d97b22c30b9c6990a8b03c
Expire reservations in cells manager

Normally reservations are expired by a periodic task in nova-scheduler.
In a cells deployment quotas are usually enabled only on the api-level
cell. This uses a separate DB from the scheduler, so any reservations
on the top level never get expired.

This change adds the same periodic task to the cells manager so
reservations at all levels have a chance to be expired. The task is
disabled by default and can be turned on with the
CONF.cells.expire_reservations option.

Change-Id: I217f5b5e947662a858eb295f2add5c3227c3b531
Cells: Event-based secgroup/rule/assoc syncing

- ec2 security groups with source groups
- create security group if it doesn't exist on rule create
- management command to force a sync of secgroups down cells
Support a list of hosts in RPC server_params

Change-Id: I2c45500476a55e4906818755fdd8547c09d86611