objects: Move flavor data from sysmeta to a JSON blob

Registered by Dan Smith

Flavor data is currently stored inefficiently in system_metadata and
should be moved to being stored as a blob in an appropriate place
per-instance. This will facilitate storing additional flavor details
that we badly need, such as extra_specs.

Blueprint information

John Garbutt
Dan Smith
Dan Smith
Series goal:
Accepted for kilo
Milestone target:
milestone icon 2015.1.0
Started by
John Garbutt
Completed by
John Garbutt

Related branches



Gerrit topic: https://review.openstack.org/#q,topic:bp/flavor-from-sysmeta-to-blob,n,z

Addressed by: https://review.openstack.org/125481
    Allow strategic loading of InstanceExtra columns

Addressed by: https://review.openstack.org/125480
    Fix instance_extra backref

Addressed by: https://review.openstack.org/125483
    Create instance_extra items atomically with the instance itself

Addressed by: https://review.openstack.org/125482
    Make pci_requests a proper field on Instance object

Addressed by: https://review.openstack.org/126361
    Allow passing columns_to_join to instance_get_all_by_host_and_node()

Addressed by: https://review.openstack.org/125484
    Add flavor column to instance_extra table

Addressed by: https://review.openstack.org/126363
    WIP Add flavor properties to Instance object

Addressed by: https://review.openstack.org/126362
    Support instance_extra fields in expected_attrs on Instance object

Addressed by: https://review.openstack.org/128316
    Use Instance.get_flavor() in more places

Addressed by: https://review.openstack.org/128315
    Refactor compute and conductor tests to use objects

Addressed by: https://review.openstack.org/128683
    Refactor compute tests to not use _objectify()

Approved spec, so approved BP --johnthetubaguy 17th October 2014

Addressed by: https://review.openstack.org/133768
    Refactor more compute tests to use Instance objects

Addressed by: https://review.openstack.org/134301
    Make notify_usage_exists() take an Instance object

Addressed by: https://review.openstack.org/134302
    Make notifications use Instance.get_flavor()

Addressed by: https://review.openstack.org/135067
    Add migrate_flavor_data to nova-manage

Addressed by: https://review.openstack.org/135698
    Make get_next_device_name() handle an instance object

Addressed by: https://review.openstack.org/135699
    Make get_image_metadata() use Instance.get_flavor()

Addressed by: https://review.openstack.org/135700
    Add flavor fields to Instance object

Addressed by: https://review.openstack.org/135701
    Add compat_instance() helper function

Addressed by: https://review.openstack.org/135733
    Make network/* use Instance.get_flavor()

Addressed by: https://review.openstack.org/135734
    Make compute/api.py::resize() use Instance.get_flavor()

Addressed by: https://review.openstack.org/135735
    Fix use of extract_flavor() in hyper-v driver

Addressed by: https://review.openstack.org/135736
    Make metadata server use Instance.get_flavor()

Gerrit topic: https://review.openstack.org/#q,topic:bp/kilo-objects,n,z

Addressed by: https://review.openstack.org/138429
    Fix a straggling non-object Instance update in compute manager

Addressed by: https://review.openstack.org/138865
    Make cells send Instance objects in build_instance()

Addressed by: https://review.openstack.org/141254
    Make instance_get_all_*() funtions support the smart extra.$foo columns

Addressed by: https://review.openstack.org/141255
    Replace the rest of the non-object-using test_compute tests

Addressed by: https://review.openstack.org/141261
    Cleanups in preparation of flavor attributes on Instance

Moving to kilo-2, as its not got all its changes merged yet. --johnthetubaguy 16th December 2014

Addressed by: https://review.openstack.org/143128
    Fix Instance relationships in two objects

Gerrit topic: https://review.openstack.org/#q,topic:flavorextra3,n,z

Addressed by: https://review.openstack.org/148331
    Fix up some instance object creation issues in tests

One remaining patch in the gate --johnthetubaguy



Work Items

This blueprint contains Public information 
Everyone can see this information.