nova/nova/objects
Sylvain Bauza 09f2d4d5ec Add a RequestSpec generation migration script
In Mitaka, we began to create and persist a RequestSpec object every time
a new instance was requested. Given that instances that were created before
that commit do not have a related RequestSpec, we needed to check
every time in the conductor methods whether the instance had a request spec
associated with it.

Now that we are in Newton, we can provide an online data migration script
that iterates over all the instances (using a marker), verify if the
RequestSpec object is created, and if not, try to persist into that object
the legacy fields we already know.

The marker uses the request_specs table for persisting itself, and
yes this is a hack, but that's the only solution we agreed for making sure
we were not looping every time on all the instances (which would be a
performance problem). When we finish looping over the instances, we
keep that marker so that the next call to that migration script
would not again iterate over all the instances (using the limit).

Change-Id: I61b9b50436d8bdb8ff06259cc2f876502d688b91
Partially-Implements: blueprint check-destination-on-migrations-newton
2016-05-17 10:57:48 +02:00
..
__init__.py Add metadata objects for device tagging 2016-04-04 09:46:39 +00:00
agent.py Remove obj_relationships from objects 2015-10-30 00:22:23 +00:00
aggregate.py Allocate uuids for aggregates as they are created or loaded 2016-02-24 07:48:09 -08:00
bandwidth_usage.py Cleanup NovaObjectDictCompat from BandwidthUsage 2016-04-04 10:26:55 +00:00
base.py objects: Rename PciDevice _migrate_parent_addr method 2016-02-15 10:47:24 +00:00
block_device.py Add tag column to vifs and bdm 2016-04-01 08:46:54 -07:00
build_request.py Change BuildRequest to contain a serialized instance 2016-04-21 09:22:55 -04:00
cell_mapping.py Add manage command for cell0. 2016-04-21 09:07:16 -04:00
compute_node.py Migrate compute node resource information to Inventory objects 2016-04-11 07:43:04 -07:00
dns_domain.py Remove DictCompat from DNSDomain 2016-01-11 16:38:06 +00:00
ec2.py Remove DictCompat from S3 object 2016-04-04 18:22:59 +00:00
external_event.py cleanup NovaObjectDictCompat from external_event 2015-08-26 17:01:02 +05:30
fields.py Add metadata objects for device tagging 2016-04-04 09:46:39 +00:00
fixed_ip.py Use version convert methods from oslo_utils.versionutils 2015-11-25 20:26:02 +08:00
flavor.py Fix flavor migration tests and edge case found 2016-04-04 20:47:19 +02:00
floating_ip.py Add new NeutronFloatingIP object 2016-04-08 14:50:38 +00:00
host_mapping.py Remove DictCompat from mapping objects 2016-04-04 18:55:03 +00:00
hv_spec.py Use version convert methods from oslo_utils.versionutils 2015-11-25 20:26:02 +08:00
image_meta.py add checking for new image metadata property 'hw_cpu_realtime_mask' 2016-03-07 06:47:05 +00:00
instance.py Add online migration to store keypairs with instances 2016-05-13 09:37:04 -07:00
instance_action.py Remove obj_relationships from objects 2015-10-30 00:22:23 +00:00
instance_fault.py Remove obj_relationships from objects 2015-10-30 00:22:23 +00:00
instance_group.py Merge "Fix the bug of "Error spelling of 'explicitely'"" 2015-12-08 23:51:32 +00:00
instance_info_cache.py Merge "Send Instance object to cells instance_update_at_top" 2015-06-12 01:33:13 +00:00
instance_mapping.py Instance mapping save, properly load cell mapping 2016-05-09 09:39:18 -05:00
instance_numa_topology.py objects: Allow instance to reset the NUMA topology 2016-02-26 19:22:52 +00:00
instance_pci_requests.py Use version convert methods from oslo_utils.versionutils 2015-11-25 20:26:02 +08:00
keypair.py Make Keypair object favor the API database 2016-05-13 09:37:04 -07:00
migrate_data.py objects: add HyperVLiveMigrateData stub 2016-02-29 12:28:35 +02:00
migration.py Add new APIs and deprecate old API for migrations 2016-02-26 14:25:48 +00:00
migration_context.py Remove obj_relationships from objects 2015-10-30 00:22:23 +00:00
monitor_metric.py Merge "Fix wrong CPU metric value in metrics_filter" 2015-12-12 22:00:07 +00:00
network.py Move config options from nova/objects/network.py 2016-04-01 16:45:35 +00:00
network_request.py Add NetworkRequestList.from_tuples helper 2016-03-25 17:12:15 -04:00
notification.py Generate doc for versioned notifications 2016-01-28 15:33:06 +01:00
numa.py virt: reserved number of mempages on compute host 2016-05-12 06:32:00 -04:00
pci_device.py Merge "pci: eliminate DB lookup PCI requests during claim" 2016-05-09 11:39:26 +00:00
pci_device_pool.py Merge "Return empty PciDevicePoolList obj instead of None" 2015-11-27 19:26:08 +00:00
quotas.py cleanup NovaObjectDictCompat from quota 2015-08-20 18:48:21 +00:00
request_spec.py Add a RequestSpec generation migration script 2016-05-17 10:57:48 +02:00
resource_provider.py Move resource provider staticmethods to proxies 2016-03-31 21:41:28 +00:00
security_group.py Remove obj_relationships from objects 2015-10-30 00:22:23 +00:00
security_group_rule.py Cleanup NovaObjectDictCompat from security_group_rule 2016-01-05 16:21:08 +00:00
service.py Merge "force_live_migration remove redundant check" 2016-05-15 08:49:37 +00:00
tag.py Added server tags controller 2016-04-06 16:37:22 +03:00
task_log.py Remove obj_relationships from objects 2015-10-30 00:22:23 +00:00
vcpu_model.py Untie subobject versions 2015-11-10 15:56:14 +00:00
virt_cpu_topology.py cleanup NovaObjectDictCompat from virt_cpu_topology 2015-08-05 08:56:30 +05:30
virt_device_metadata.py Add metadata objects for device tagging 2016-04-04 09:46:39 +00:00
virtual_interface.py Add tag column to vifs and bdm 2016-04-01 08:46:54 -07:00
volume_usage.py Add a VolumeUsage object 2015-08-23 18:45:38 +02:00