Compute Manager uses objects

Registered by Dan Smith

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
Completed by
Dan Smith

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.