Convert nova-network to use Nova objects

Registered by Russell Bryant on 2014-01-13

This blueprint covers updating nova-network to use the Nova object model for all database interaction. Once nova-network has been fully converted, we will also enable using nova-conductor with nova-network. This will result in significant performance improvements to nova-network since it will be able to better do work in parallel. It will also allow running compute nodes with no database access if you are using nova-network in multi-host mode.

Blueprint information

Status:
Complete
Approver:
Dan Smith
Priority:
Medium
Drafter:
None
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-05
Completed by
Russell Bryant on 2014-02-22

Related branches

Sprints

Whiteboard

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

Addressed by: https://review.openstack.org/66365
    Make nova-network use Service object

Addressed by: https://review.openstack.org/66371
    Make nova-network use Instance objects

Addressed by: https://review.openstack.org/66441
    Add Network object

Addressed by: https://review.openstack.org/66476
    Make nova-network use Network to create networks

Addressed by: https://review.openstack.org/66619
    Refactor CIDR field to use netaddr.IPNetwork

Addressed by: https://review.openstack.org/66634
    Make nova-network use Network object for get-all-by-host query

Addressed by: https://review.openstack.org/66650
    Add VirtualInterface object

Addressed by: https://review.openstack.org/66652
    Make nova-network use NetworkList for remaining "all" queries

Addressed by: https://review.openstack.org/66669
    Make nova-network use Network object for remaining "get" queries

Addressed by: https://review.openstack.org/66683
    Make nova-network use Network object for updates

Addressed by: https://review.openstack.org/66685
    Make nova-network use Network object for set_host() operation

Addressed by: https://review.openstack.org/66877
    Make nova-network use Network for associations

Addressed by: https://review.openstack.org/66885
    Make nova-network use Network object for deleting networks

Addressed by: https://review.openstack.org/66941
    Add FixedIP Object implementation

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

Addressed by: https://review.openstack.org/66950
    Remove unused method from network rpcapi

Addressed by: https://review.openstack.org/66951
    Remove get_vif_by_mac_address from network rpcapi

Addressed by: https://review.openstack.org/66965
    Update linux_net to use VirtualInterface

Addressed by: https://review.openstack.org/66964
    Update nova_ipam_lib to use VirtualInterface

Addressed by: https://review.openstack.org/66952
    Update network.manager to use VirtualInterface

Addressed by: https://review.openstack.org/66972
    Add FloatingIP object implementation

Addressed by: https://review.openstack.org/67205
    Add sort() method to ObjectListBase

Addressed by: https://review.openstack.org/67206
    Refactor return value of fixed_ip_associate calls

Addressed by: https://review.openstack.org/67207
    Make fixed_ip_get_by_address() take columns_to_join

Addressed by: https://review.openstack.org/67208
    Add FixedIP.floating_ips dynamic property

Addressed by: https://review.openstack.org/67209
    Make nova-network use FixedIP for get_by_address() queries

Addressed by: https://review.openstack.org/67229
    Make nova-network use FixedIP object for associations

Addressed by: https://review.openstack.org/67235
    Add DNSDomain object

Addressed by: https://review.openstack.org/67253
    Make nova-network use FixedIP for host and instance queries

Addressed by: https://review.openstack.org/67269
    Add db.dnsdomain_get_all() method

Addressed by: https://review.openstack.org/67270
    Remove some dead dnsdomain code

Addressed by: https://review.openstack.org/67271
    Update nova.network to use DNSDomain object

Addressed by: https://review.openstack.org/67291
    Make nova-network use FixedIP object for vif queries and bulk create

Addressed by: https://review.openstack.org/67297
    Make nova-network use FixedIP object for disassociations

Addressed by: https://review.openstack.org/67338
    Make nova-network use FixedIP object for updates

Addressed by: https://review.openstack.org/67351
    Make nova-network use FixedIP for timeouts

Addressed by: https://review.openstack.org/67492
    Make obj_to_primitive() handle netaddr types

Addressed by: https://review.openstack.org/67333
    Remove get_all_networks from nova.network.rpcapi

Addressed by: https://review.openstack.org/67332
    Remove get_network from nova.network.rpcapi

Addressed by: https://review.openstack.org/67518
    Make nova_ipam_lib use Network, FixedIP, and FloatingIP objects

Addressed by: https://review.openstack.org/67527
    Set objects indirection API in network service

Addressed by: https://review.openstack.org/67528
    Make floating_ips module use FixedIP object

Addressed by: https://review.openstack.org/67550
    Make floating_ips module use Network object

Addressed by: https://review.openstack.org/67554
    Make floating_ips module use Instance object

Addressed by: https://review.openstack.org/67559
    Make floating_ips module use Service object

Addressed by: https://review.openstack.org/67574
    update deallocate_for_instance to take instance obj

Addressed by: https://review.openstack.org/67575
    Remove db query from deallocate_fixed_ip

Addressed by: https://review.openstack.org/67576
    Make floating_ips module use FloatingIP for all get queries

Addressed by: https://review.openstack.org/67578
    Make floating_ips module use FloatingIP for (de-)allocations

Addressed by: https://review.openstack.org/67581
    Make floating_ips module use FloatingIP for updates

Addressed by: https://review.openstack.org/67589
    Make floating_ips module use FloatingIP for associations

Addressed by: https://review.openstack.org/67694
    Remove unused variable

Addressed by: https://review.openstack.org/69493
    Make service workers gracefully handle service creation race

Addressed by: https://review.openstack.org/69631
    Make nova-network a "conductor-using service"

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

Addressed by: https://review.openstack.org/79680
    Refactor network_get_associated_fixed_ips() for sanity

Addressed by: https://review.openstack.org/79714
    Add get_by_network() to FixedIPList

Addressed by: https://review.openstack.org/79715
    Make linux_net use objects for last fixed ip query

Addressed by: https://review.openstack.org/79716
    Block database access in nova-network binary

Addressed by: https://review.openstack.org/79826
    Make nova-network use quotas object

Addressed by: https://review.openstack.org/79949
    Make nova-network use conductor for security groups refresh

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.