Compute Manager uses objects

Registered by Dan Smith on 2013-10-08

The nova compute manager (and associated utility routines) should use objects whenever possible instead of using raw conductor RPC APIs to fetch data from the database.

Blueprint information

Status:
Complete
Approver:
Russell Bryant
Priority:
Medium
Drafter:
Dan Smith
Direction:
Approved
Assignee:
Dan Smith
Definition:
Approved
Series goal:
Accepted for icehouse
Implementation:
Implemented
Milestone target:
milestone icon 2014.1
Started by
Russell Bryant on 2014-02-06
Completed by
Dan Smith on 2014-03-04

Related branches

Sprints

Whiteboard

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

Addressed by: https://review.openstack.org/50464
    Add missing key attribute to AggregateList.get_by_host()

Addressed by: https://review.openstack.org/50465
    Make aggregate methods use new-world objects

Addressed by: https://review.openstack.org/50466
    Make XenAPI use Aggregate object

Addressed by: https://review.openstack.org/50467
    Remove aggregate metadata methods from conductor and virtapi

Addressed by: https://review.openstack.org/51615
    Fix NovaObject versioning attribute usage

Addressed by: https://review.openstack.org/51745
    Fix DB API mismatch with sqlalchemy API

Addressed by: https://review.openstack.org/51746
    Make SecurityGroup receive context

Addressed by: https://review.openstack.org/51747
    Add CIDR field type

Addressed by: https://review.openstack.org/51748
    Make Object FieldType take an object name instead of a class

Addressed by: https://review.openstack.org/51749
    Add SecurityGroup.instances attribute

Addressed by: https://review.openstack.org/51750
    Add SecurityGroupRule object

Addressed by: https://review.openstack.org/51751
    Make InstanceInfoCache load deleted attribute

Addressed by: https://review.openstack.org/51752
    Make virt/firewall use objects for Security Groups and Rules

Addressed by: https://review.openstack.org/51753
    Remove security_group-related methods from VirtAPI

Addressed by: https://review.openstack.org/51893
    Make metadata server use objects for Instance and Security Groups

Addressed by: https://review.openstack.org/51894
    Deprecate two security_group-related methods from conductor

Addressed by: https://review.openstack.org/52450
    Fix NovaObject versioning attribute usage

Addressed by: https://review.openstack.org/53032
    Make security_group_get() more flexible about joins

Addressed by: https://review.openstack.org/53033
    Make security_group_rule_get_by_security_group() honor columns

Addressed by: https://review.openstack.org/54154
    Convert evacuation code to use objects

Addressed by: https://review.openstack.org/54161
    Make _get_instance_nw_info() use Instance object

Addressed by: https://review.openstack.org/54601
    Add compatibility for InstanceMetadata and primitives

Addressed by: https://review.openstack.org/56272
    Make compute manager _init_instance use native objects

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

Addressed by: https://review.openstack.org/56694
    Add FloatField for objects

Addressed by: https://review.openstack.org/56695
    Add Flavor object

Addressed by: https://review.openstack.org/56725
    Make flavor_access extension use Flavor object

Addressed by: https://review.openstack.org/57002
    Add {get,set}_flavor() to Instance object

Addressed by: https://review.openstack.org/57003
    Move resize and rebuild operations to Flavor objects

Gerrit topic: https://review.openstack.org/#q,topic:bp/recover-stuck-state,n,z

Addressed by: https://review.openstack.org/57797
    Add atomic flavor access project updates

Addressed by: https://review.openstack.org/58060
    Make ec2 use Flavor object

Addressed by: https://review.openstack.org/58199
    Correct and add missing attributes in ComputeNode object

Addressed by: https://review.openstack.org/59655
    Convert nova-compute-api get_instance_security_groups to object model modify security_groups and its test case

Addressed by: https://review.openstack.org/60729
    Add SecurityGroup.create()

Addressed by: https://review.openstack.org/61584
    Make rebuild use Instance objects

Addressed by: https://review.openstack.org/63217
    Make change_instance_metadata() use objects

Addressed by: https://review.openstack.org/63178
    Cleanup object usage in the rebuild path

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

Addressed by: https://review.openstack.org/64725
    Add instance_get_active_by_window_joined to InstanceList

Addressed by: https://review.openstack.org/64914
    Make the simple_tenant_usage API use objects

Addressed by: https://review.openstack.org/65351
    Make delete_instance_metadata() use objects

Addressed by: https://review.openstack.org/70215
    Add a post-hydration hook to NovaObject

Addressed by: https://review.openstack.org/71313
    Fix instance metadata tracking during resets

Addressed by: https://review.openstack.org/71364
    Make libvirt use Flavor object instead of using VirtAPI

Addressed by: https://review.openstack.org/71365
    Make baremetal driver use Flavor object instead of VirtAPI

Addressed by: https://review.openstack.org/71366
    Make compute manager use Flavor object

Addressed by: https://review.openstack.org/71368
    Make resource_tracker use Flavor object

Addressed by: https://review.openstack.org/71369
    Deprecate conductor instance_type_get() and remove from VirtAPI

Addressed by: https://review.openstack.org/71383
    Make compute manager use InstanceInfoCache object for deletes

Addressed by: https://review.openstack.org/75297
    Add compound fields for primitives

Addressed by: https://review.openstack.org/75298
    Add missing ComputeNode fields

Addressed by: https://review.openstack.org/75299
    Rename Service.compute_node to compute_nodes

Addressed by: https://review.openstack.org/75300
    Resource tracker object conversion

Addressed by: https://review.openstack.org/75301
    Remove conductor compute_node methods

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

Addressed by: https://review.openstack.org/75957
    Make interface attach and detach use objects

Addressed by: https://review.openstack.org/76001
    Make restore_instance pass the Instance object to compute manager

Addressed by: https://review.openstack.org/75948
    Pass instance object to soft_delete() and get_info()

Addressed by: https://review.openstack.org/75971
    Document virt driver methods that take Instance objects

Addressed by: https://review.openstack.org/76783
    Pass Instance obj to check_instance_shared_storage

Addressed by: https://review.openstack.org/76786
    Pass Instance obj to get_console_output

Addressed by: https://review.openstack.org/77000
    Send Instance obj to remove_volume_connection

Addressed by: https://review.openstack.org/77359
    Complete object conversion for get_rdp_console()

Addressed by: https://review.openstack.org/77360
    Use attribute style access in _delete_instance()

Addressed by: https://review.openstack.org/77475
    Make compute manager use Quota objects

Remaining topics with patches:
=========================

https://review.openstack.org/#/q/topic:bp/compute-manager-objects,n,z
https://review.openstack.org/#/q/topic:bp/virt-objects,n,z

Addressed by: https://review.openstack.org/99832
    Set SecurityGroup id attribute as read_only and add the create() function

Addressed by: https://review.openstack.org/99826
    Set SecurityGroupRule id attribute as read_only and add the create() function

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.