objects: Make Resource Tracker use objects (partial)

Registered by Paul Murray on 2013-11-14

The resource tracker should use objects instead of conductor RPC

This will include extending the compute_node object to cover missing fields and replacing data structures used for compute_nodes, instances, migrations, etc. with their object equivalent.

Blueprint information

Status:
Complete
Approver:
John Garbutt
Priority:
High
Drafter:
Paul Murray
Direction:
Approved
Assignee:
Paul Murray
Definition:
Approved
Series goal:
Accepted for liberty
Implementation:
Implemented
Milestone target:
milestone icon 12.0.0
Started by
Paul Murray on 2013-12-02
Completed by
John Garbutt on 2015-07-15

Related branches

Sprints

Whiteboard

Sponsors: Dan Smith, Andrew Laski, John Garbutt

Kilo spec merged, updated URL, and re-approved spec. Please rebase patches, and update blueprint status accordingly --johnthetubaguy 17th October 2014

Gerrit topics:
https://review.openstack.org/#q,topic:bp/make-resource-tracker-use-objects,n,z
https://review.openstack.org/#/q/topic:pmurray_rt_objects,n,z

Merged changes:
==============

Addressed by: https://review.openstack.org/128964 <=== APPROVED NOVA-SPEC FOR KILO
    (Re)Propose: make resource tracker use objects

Addressed by: https://review.openstack.org/101355 <== MERGED
    Add ListOfDictOfNullableString field type

Addressed by: https://review.openstack.org/79294 <== MERGED
    Add host_ip to compute node object

Addressed by: https://review.openstack.org/125091 <== MERGED
    Add supported_instances to ComputeNode object

Addressed by: https://review.openstack.org/130957 <=== MERGED
    resource-tracker: Begin refactor unit tests

Addressed by: https://review.openstack.org/135798 <=== MERGED
    Adds new RT unit tests for _sync_compute_node

Addressed by: https://review.openstack.org/137847 <=== MERGED
    Add pci_device_pools to ComputeNode object

Addressed by: https://review.openstack.org/79324 <=== MERGED
    Use migration object in resource_tracker

Addressed by: https://review.openstack.org/136054 <=== MERGED
    Move coverage affecting migrations to test_tracker.py

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

Addressed by: https://review.openstack.org/138686 <=== MERGED
    Update some ResizeClaimTestCase tests

Addressed by: https://review.openstack.org/148904 <=== MERGED
    Move ComputeNode creation at init stage in ResourceTracker

Addressed by: https://review.openstack.org/159765 <=== MERGED
    Use compute_node consistently in ResourceTracker

Addressed by: https://review.openstack.org/178768 <=== APPROVED NOVA SPEC FOR LIBERTY
    (Re)Propose: make resource tracker use objects

Addressed by: https://review.openstack.org/179649 <=== MERGED
    Resource tracker: use instance objects for claims

Addressed by: https://review.openstack.org/161843 <=== MERGED
    Cleanups for pci stats in preparation for RT using ComputeNode

Addressed by: https://review.openstack.org/165037 <=== MERGED
    Add nova object equivalence and ComputeNode changes

Addressed by: https://review.openstack.org/160942 <=== MERGED
    Convert RT compute_node to be a ComputeNode object

Addressed by: https://review.openstack.org/188525 <=== MERGED
    Add virt resource update to ComputeNode object

Current changes up for review:
=========================

I am guessing, but this looks like it is complete now. --johnthetubaguy 15th July 2015

Functionally this is complete, but there is one small tidy up patch I am doing now to remove conductor_api from resource tracker. -- PaulMurray 15th July 2015

Addressed by: https://review.openstack.org/202501
    Remove conductor api from resource tracker

Addressed by: https://review.openstack.org/202690
    Fix test_tracker object mocks

(?)

Work Items

Work items:
Use flavor object in resource tracker: DONE
Use Service object in resource tracker: DONE
Add host_ip to ComputeNode: DONE
Add supported_instances to ComputeNode: DONE
Add pci_stats to ComputeNode: DONE

Dependency tree

* Blueprints in grey have been implemented.