Objects Work - kilo

Registered by Dan Smith

This is an umbrella blueprint for general convert-to-objects work in Kilo. Anything that falls in the realm of converting existing code to objects, or changes/improvements to the objects infrastructure go here. Anything that is part of a larger set of work, or is large enough of a theme should get its own blueprint.

Blueprint information

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

Related branches



Approving without a spec as per our new policy of only blueprints that need a design discussion need a spec. Normally a blueprint of this size would need a spec, but this is the continuation of a multi cycle effort that has already been vetted. -- jogo (Oct. 2 2014)

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

Addressed by: https://review.openstack.org/125756
    Finish objects conversion in the os-interface API

Addressed by: https://review.openstack.org/115749
    Make neutronapi get_floating*() methods return objects

Addressed by: https://review.openstack.org/115334
    Make neutronapi get networks operations return objects

Addressed by: https://review.openstack.org/115801
    Give the FloatingIP object an external_id field, because neutron

Gerrit topic: https://review.openstack.org/#q,topic:object-ify-flavors,n,z

Addressed by: https://review.openstack.org/122558
    object-ify flavors manager side of the RPC

Addressed by: https://review.openstack.org/121947
    WIP Instance sub object backporting

Addressed by: https://review.openstack.org/121946
    Generalize dependent object backporting

Addressed by: https://review.openstack.org/122557
    object-ify flavors api and compute/api side of RPC

Addressed by: https://review.openstack.org/131537
    Update docstring for check_instance_shared_storage_local

Addressed by: https://review.openstack.org/133083
    Make aggregate filters use objects

Addressed by: https://review.openstack.org/133663
    Convert service and servicegroup to objects

Addressed by: https://review.openstack.org/133664
    Remove and deprecate unused conductor service calls

Addressed by: https://review.openstack.org/133665
    Refactor some service tests and make them not require db

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

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

Addressed by: https://review.openstack.org/134969
    Make object namespace optional during serialization

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

Addressed by: https://review.openstack.org/134756
    Add console pool object

Addressed by: https://review.openstack.org/135035
    Add console object

Addressed by: https://review.openstack.org/135762
    initialize objects with context in compute api

Addressed by: https://review.openstack.org/135760
    initialize objects with context in resource tracker

Addressed by: https://review.openstack.org/135766
    initialize objects with context in network manager tests

Addressed by: https://review.openstack.org/135765
    initialize objects with context in flavors

Addressed by: https://review.openstack.org/135759
    initialize objects with context in server groups api

Addressed by: https://review.openstack.org/135758
    initialize objects with context in cells

Gerrit topic: https://review.openstack.org/#q,topic:ironic-use-instance-type,n,z

Addressed by: https://review.openstack.org/136095
    Add obj_set_defaults() to NovaObject

Gerrit topic: https://review.openstack.org/#q,topic:libvirt-use-instance-type,n,z

Gerrit topic: https://review.openstack.org/#q,topic:bp/flavor-instance-type-dedup,n,z

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

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

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

Addressed by: https://review.openstack.org/138522
    Remove compute/api.py::update()

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

Addressed by: https://review.openstack.org/139261
    Add obj_as_admin() to NovaPersistentObject

Addressed by: https://review.openstack.org/135763
    initialize objects with context in compute manager

Addressed by: https://review.openstack.org/140065
    Fix base obj_make_compatible() handling ListOfObjectsField

Addressed by: https://review.openstack.org/140127
    Fix cells RPC version 1.30 compatibility with dict-based Flavors

Addressed by: https://review.openstack.org/135764
    initialize objects with context in block device

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

Addressed by: https://review.openstack.org/142272
    initialize objects with context in Aggregate object tests

Addressed by: https://review.openstack.org/142273
    initialize objects with context in BlockDeviceMapping object tests

Addressed by: https://review.openstack.org/142274
    initialize objects with context in ComputeNode object tests

Addressed by: https://review.openstack.org/142275
    initialize objects with context in EC2 object tests

Addressed by: https://review.openstack.org/142276
    initialize objects with context in FixedIP object tests

Addressed by: https://review.openstack.org/142277
    initialize objects with context in Flavor object tests

Addressed by: https://review.openstack.org/142278
    initialize objects with context in Instance object tests

Addressed by: https://review.openstack.org/142279
    initialize objects with context in InstanceFault object tests

Addressed by: https://review.openstack.org/142280
    initialize objects with context in InstaceGroup object tests

Addressed by: https://review.openstack.org/142281
    initialize objects with context in InstanceNUMATopology object tests

Addressed by: https://review.openstack.org/142282
    initialize objects with context in KeyPair object tests

Addressed by: https://review.openstack.org/142283
    initialize objects with context in Migration object tests

Addressed by: https://review.openstack.org/142284
    initialize objects with context in base object tests

Addressed by: https://review.openstack.org/142285
    initialize objects with context in SecurityGroup object tests

Addressed by: https://review.openstack.org/142286
    initialize objects with context in SecurityGroupRule object tests

Addressed by: https://review.openstack.org/142287
    initialize objects with context in Service object tests

Addressed by: https://review.openstack.org/142288
    initialize objects with context in Tag object tests

Addressed by: https://review.openstack.org/142289
    initialize objects with context in VirtualInterface object tests

Addressed by: https://review.openstack.org/145308
    ec2: remove is_neutron check in _format_address

Addressed by: https://review.openstack.org/135037
    Using ConsolePool object instead db call

Addressed by: https://review.openstack.org/135036
    Using Console object instead db call

Addressed by: https://review.openstack.org/148788
    initialize objects with context in block device

Addressed by: https://review.openstack.org/149224
    Convert resource_tracker conductor service call to objects

Moving to kilo-3 --johnthetubaguy 26th Jan 2015

Addressed by: https://review.openstack.org/98608
    Add update_or_create flag to BDM objects create()

Addressed by: https://review.openstack.org/98609
    Make compute API create() use BDM objects

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

Addressed by: https://review.openstack.org/150868
    Convert nova-manage list to use Instance objects

Addressed by: https://review.openstack.org/151030
    Add recursive flag to obj_reset_changes()

Addressed by: https://review.openstack.org/152356
    fix call of DriverVolumeBlockDevice save in swap_volume

Addressed by: https://review.openstack.org/152970
    Make obj_set_defaults() more useful

Addressed by: https://review.openstack.org/156679
    Add a test for block_device_make_list_from_dicts

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

Addressed by: https://review.openstack.org/149746
    Add EC2Ids object and link to Instance object as optional attribute

Addressed by: https://review.openstack.org/158066
    Replace conductor get_ec2_ids() with new Instance.ec2_ids attribute

Gerrit topic: https://review.openstack.org/#q,topic:notify-usage-exists-use-objects,n,z

Addressed by: https://review.openstack.org/158430
    Make notifications use BandwidthUsageList object

Addressed by: https://review.openstack.org/158431
    Call notify_usage_exists() without conductor proxying

Addressed by: https://review.openstack.org/158933
    Use flavor stored with instance in libvirt driver

Addressed by: https://review.openstack.org/160374
    Fix some straggling uses of passing context to remotable methods in tests

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

Addressed by: https://review.openstack.org/160483
    Scheduler and filters use Flavor object

Addressed by: https://review.openstack.org/160494
    Add obj_alternate_context() helper

Addressed by: https://review.openstack.org/160495
    Fix up PciDevice remotable context usage

Addressed by: https://review.openstack.org/160496
    Remove cases of passing context to remotable methods in Instance

Addressed by: https://review.openstack.org/160497
    Remove cases of passing context to remotable methods in Flavor

Addressed by: https://review.openstack.org/160498
    Fix some cases of passing context to remotables with security groups

Addressed by: https://review.openstack.org/160499
    Fix several cases of passing context to quota-related remotable methods

Addressed by: https://review.openstack.org/160500
    Ban passing contexts to remotable methods

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

Addressed by: https://review.openstack.org/160538
    Use want_objects=True for os-server-password v3 API index

Addressed by: https://review.openstack.org/161546
    Use flavor stored with instance in ironic driver

Addressed by: https://review.openstack.org/161551
    Use flavor stored with instance in vmware driver

Addressed by: https://review.openstack.org/161844
    Fix Service.get_by_host_and_binary() when no record found

Addressed by: https://review.openstack.org/161860
    Make resize api of compute manager to send flavor object

Addressed by: https://review.openstack.org/161909
    Add delattr support to base object

Addressed by: https://review.openstack.org/162652
    Compute: no longer need to pass flavor to the spawn method

Addressed by: https://review.openstack.org/162705
    Fix a remaining case of passing context to a remotable in scheduler

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

Addressed by: https://review.openstack.org/137817
    objects: introduce numa topology limits objects

Since we have hit feature proposal freeze, marking this as partial and ready to review. Please no more "new code" should be uploaded as we try to get the current items merged before feature freeze. --johnthetubaguy 10th March 2015

Remaining patches that need a review:

Addressed by: https://review.openstack.org/164146
    Add a fixture for the NovaObject indirection API

Addressed by: https://review.openstack.org/149322
    Using Instance object instead of db call

Addressed by: https://review.openstack.org/164243
    Remove usage of remotable context parameter in agent, aggregate

Addressed by: https://review.openstack.org/164244
    Remove usage of remotable context parameter in bandwidth, block_device

Addressed by: https://review.openstack.org/164245
    Remove usage of remotable context parameter in ec2 object

Addressed by: https://review.openstack.org/164246
    Remove usage of remotable context parameter in fixed_ip, flavor, floating_ip

Addressed by: https://review.openstack.org/164247
    Remove usage of remotable context parameter in instance* objects

Addressed by: https://review.openstack.org/164248
    Remove usage of remotable context parameter in compute_node, keypair

Addressed by: https://review.openstack.org/164249
    Remove usage of remotable context parameter in migration, network

Addressed by: https://review.openstack.org/164250
    Remove usage of remotable context parameter in pci_device, quotas

Addressed by: https://review.openstack.org/164251
    Remove usage of remotable context parameter in security_group*

Addressed by: https://review.openstack.org/164252
    Remove usage of remotable context parameter in service, tag, vif

Addressed by: https://review.openstack.org/164253
    Actually stop passing context to remotable methods

Addressed by: https://review.openstack.org/164268
    Remove context from remotable call signature

Addressed by: https://review.openstack.org/165512
    Remove pci_device.update_device helper function

Addressed by: https://review.openstack.org/178056
    API/Object: Remove _get_flavor in simple_tenant_usage api


Work Items

This blueprint contains Public information 
Everyone can see this information.