Jump to: navigation, search

NovaNetNeutronParity

Revision as of 21:05, 9 December 2013 by Beagles (talk | contribs) (API Methods)

Making Parity Happen

Documentation

Quality of Default Implementation

Performance

Configuration

Communication

Scalability

HA Options

API Integration

Related Client Functions

<COL WIDTH=255> <COL WIDTH=391>

dns-create

Create a DNS entry for domain, name and ip.

dns-create-private-domain

Create the specified DNS domain.

dns-create-public-domain

Create the specified DNS domain.

dns-delete

Delete the specified DNS entry.

dns-delete-domain

Delete the specified DNS domain.

dns-domains

Print a list of available dns domains.

dns-list

List current DNS entries for domain and ip or domain and name.

Tenant Network Management

<COL WIDTH=323> <COL WIDTH=323>

fixed-ip-get

Get info on a fixed ip

fixed-ip-reserve

Reserve a fixed ip

fixed-ip-unreserve

Unreserve a fixed ip

remove-fixed-ip

Remove an IP address from a server.

remove-secgroup

Remove a Security Group from a server.

net

Show a network

net-create

Create a network

net-delete

Delete a network

net-list

List networks

network-associate-host

Associate host with network.

network-associate-project

Associate project with network.

network-create

Create a network.

network-disassociate

Disassociate host and/or project from the given network.

network-list

Print a list of available networks.

network-show

Show details about the given network.

reset-network

Reset network of an instance.



VM Network Configuration Management

<COL WIDTH=255> <COL WIDTH=391>

interface-attach

Attach a network interface to an instance.

interface-detach

Detach a network interface from an instance.

interface-list

List interfaces attached to an instance.

Floating IP Management

<COL WIDTH=323> <COL WIDTH=323>

add-fixed-ip

Add new IP address on a network to server.

add-floating-ip

Add a floating IP address to a server.

remove-floating-ip

Remove a floating IP address from a server.

floating-ip-bulk-create

Bulk create floating ips by range

floating-ip-bulk-delete

Bulk delete floating ips by range

floating-ip-bulk-list

List all floating ips

floating-ip-create

Allocate a floating IP for the current tenant.

floating-ip-delete

De-allocate a floating IP.

floating-ip-list

List floating ips for this tenant.

floating-ip-pool-list

List all floating ip pools.

Security Group Management

<COL WIDTH=255> <COL WIDTH=391>

add-secgroup

Add a Security Group to a server.

secgroup-add-group-rule

Add a source group rule to a security group.

secgroup-add-rule

Add a rule to a security group.

secgroup-create

Create a security group.

secgroup-delete

Delete a security group.

secgroup-delete-group-rule

Delete a source group rule from a security group.

secgroup-delete-rule

Delete a rule from a security group.

secgroup-list

List security groups for the current tenant.

secgroup-list-rules

List rules for a security group.

API Methods

<COL WIDTH=322> <COL WIDTH=322>

nova.network.rpcapi.NetworkAPI.migrate_instance_finish

nova.network.neutronv2.api.API.migrate_instance_finish

nova.network.rpcapi.NetworkAPI.deallocate_floating_ip

nova.network.neutronv2.api.API.release_floating_ip (?)

nova.network.rpcapi.NetworkAPI.get_instance_nw_info

nova.network.neutronv2.api.API.get_instance_nw_info

nova.network.rpcapi.NetworkAPI.get_fixed_ip_by_address

nova.network.neutronv2.api.API.get_fixed_ip_by_address

nova.network.rpcapi.NetworkAPI.deallocate_for_instance

nova.network.neutronv2.api.API.deallocate_for_instance

nova.network.rpcapi.NetworkAPI.delete_network

x

nova.network.rpcapi.NetworkAPI.get_floating_ips_by_fixed_address

nova.network.neutronv2.api.API.get_floating_ips_by_fixed_address

nova.network.rpcapi.NetworkAPI.get_fixed_ip

nova.network.neutronv2.api.API.get_fixed_ip

nova.network.rpcapi.NetworkAPI.lease_fixed_ip

nova.network.neutronv2.api.API.allocate_port_for_instance (?)

nova.network.rpcapi.NetworkAPI.disassociate_network

nova.network.neutronv2.api.API.disassociate (?)

nova.network.rpcapi.NetworkAPI.set_network_host

x

nova.network.rpcapi.NetworkAPI.add_network_to_project

nova.network.neutronv2.api.API.add_network_to_project

nova.network.rpcapi.NetworkAPI.create_public_dns_domain

nova.network.neutronv2.api.API.create_public_dns_domain

nova.network.rpcapi.NetworkAPI.get_instance_uuids_by_ip_filter

nova.network.neutronv2.api.API.get_instance_uuids_by_ip_filter

nova.network.rpcapi.NetworkAPI.setup_networks_on_host

nova.network.neutronv2.api.API.setup_networks_on_host

nova.network.rpcapi.NetworkAPI.associate

x

nova.network.rpcapi.NetworkAPI.get_all_networks

nova.network.neutronv2.api.API.list_ports (?)

nova.network.rpcapi.NetworkAPI.disassociate_floating_ip

nova.network.neutronv2.api.API.disassociate_floating_ip

nova.network.rpcapi.NetworkAPI.allocate_for_instance

nova.network.neutronv2.api.API.allocate_for_instance

nova.network.rpcapi.NetworkAPI.get_floating_ip_by_address

nova.network.neutronv2.api.API.get_floating_ip_by_address

nova.network.rpcapi.NetworkAPI.get_floating_ip

nova.network.neutronv2.api.API.get_floating_ip

nova.network.rpcapi.NetworkAPI.deallocate_fixed_ip

nova.network.neutronv2.api.API.deallocate_port_for_instance (?)

nova.network.rpcapi.NetworkAPI.add_fixed_ip_to_instance

nova.network.neutronv2.api.API.add_fixed_ip_to_instance

nova.network.rpcapi.NetworkAPI.create_networks

x

nova.network.rpcapi.NetworkAPI.create_private_dns_domain

nova.network.neutronv2.api.API.create_private_dns_domain

nova.network.rpcapi.NetworkAPI.migrate_instance_start

nova.network.neutronv2.api.API.migrate_instance_start

nova.network.rpcapi.NetworkAPI.get_floating_ips_by_project

nova.network.neutronv2.api.API.get_floating_ips_by_project

nova.network.rpcapi.NetworkAPI.rpc_setup_network_on_host

x

nova.network.rpcapi.NetworkAPI.get_vif_by_mac_address

nova.network.neutronv2.api.API.get_vif_by_mac_address

nova.network.rpcapi.NetworkAPI.get_vifs_by_instance

nova.network.neutronv2.api.API.get_vifs_by_instance

nova.network.rpcapi.NetworkAPI.associate_floating_ip

nova.network.neutronv2.api.API.associate_floating_ip

nova.network.rpcapi.NetworkAPI.get_instance_id_by_floating_address

nova.network.neutronv2.api.API.get_instance_id_by_floating_address

nova.network.rpcapi.NetworkAPI.get_dns_domains

nova.network.neutronv2.api.API.get_dns_domains

nova.network.rpcapi.NetworkAPI.remove_fixed_ip_from_instance

nova.network.neutronv2.api.API.remove_fixed_ip_from_instance

nova.network.rpcapi.NetworkAPI.delete_dns_domain

nova.network.neutronv2.api.API.delete_dns_domain

nova.network.rpcapi.NetworkAPI.release_fixed_ip

X nova.network.neutronv2.api.API.show_port

nova.network.rpcapi.NetworkAPI.get_floating_ip_pools

nova.network.neutronv2.api.API.get_floating_ip_pools

nova.network.rpcapi.NetworkAPI.update_dns

x

nova.network.rpcapi.NetworkAPI.modify_dns_entry

nova.network.neutronv2.api.API.modify_dns_entry

nova.network.rpcapi.NetworkAPI.get_network

nova.network.neutronv2.api.API.get

nova.network.rpcapi.NetworkAPI.get_dns_entries_by_name

nova.network.neutronv2.api.API.get_dns_entries_by_name

nova.network.rpcapi.NetworkAPI.allocate_floating_ip

nova.network.neutronv2.api.API.allocate_floating_ip

nova.network.rpcapi.NetworkAPI.get_dns_entries_by_address

nova.network.neutronv2.api.API.get_dns_entries_by_address

nova.network.rpcapi.NetworkAPI.add_dns_entry

nova.network.neutronv2.api.API.add_dns_entry

nova.network.rpcapi.NetworkAPI.validate_networks

nova.network.neutronv2.api.API.validate_networks

nova.network.rpcapi.NetworkAPI.delete_dns_entry

nova.network.neutronv2.api.API.delete_dns_entry



Security Group API Mapping



<COL WIDTH=322> <COL WIDTH=322>

nova.network.security_group.security_group_base.SecurityGroupBase.add_rules

nova.network.security_group.neutron_driver.SecurityGroupAPI.add_rules

nova.network.security_group.security_group_base.SecurityGroupBase.raise_not_found


nova.network.security_group.security_group_base.SecurityGroupBase.add_to_instance

nova.network.security_group.neutron_driver.SecurityGroupAPI.add_to_instance

nova.network.security_group.security_group_base.SecurityGroupBase.trigger_handler


nova.network.security_group.security_group_base.SecurityGroupBase.get_rule

nova.network.security_group.neutron_driver.SecurityGroupAPI.get_rule

nova.network.security_group.security_group_base.SecurityGroupBase.populate_security_groups

nova.network.security_group.neutron_driver.SecurityGroupAPI.populate_security_groups

nova.network.security_group.security_group_base.SecurityGroupBase.trigger_rules_refresh


nova.network.security_group.security_group_base.SecurityGroupBase.parse_cidr


nova.network.security_group.security_group_base.SecurityGroupBase.new_group_ingress_rule


nova.network.security_group.security_group_base.SecurityGroupBase.create_security_group

nova.network.security_group.neutron_driver.SecurityGroupAPI.create_security_group

nova.network.security_group.security_group_base.SecurityGroupBase.get_instance_security_groups

nova.network.security_group.neutron_driver.SecurityGroupAPI.get_instance_security_groups

nova.network.security_group.security_group_base.SecurityGroupBase.validate_property


nova.network.security_group.security_group_base.SecurityGroupBase.destroy

nova.network.security_group.neutron_driver.SecurityGroupAPI.destroy

nova.network.security_group.security_group_base.SecurityGroupBase.update_security_group

nova.network.security_group.neutron_driver.SecurityGroupAPI.update_security_group

nova.network.security_group.security_group_base.SecurityGroupBase.raise_over_quota


nova.network.security_group.security_group_base.SecurityGroupBase.raise_group_already_exists


nova.network.security_group.security_group_base.SecurityGroupBase.get

nova.network.security_group.neutron_driver.SecurityGroupAPI.get

nova.network.security_group.security_group_base.SecurityGroupBase.raise_invalid_property


nova.network.security_group.security_group_base.SecurityGroupBase.trigger_members_refresh


nova.network.security_group.security_group_base.SecurityGroupBase.raise_invalid_cidr


nova.network.security_group.security_group_base.SecurityGroupBase.new_cidr_ingress_rule


nova.network.security_group.security_group_base.SecurityGroupBase.remove_from_instance

nova.network.security_group.neutron_driver.SecurityGroupAPI.remove_from_instance

nova.network.security_group.security_group_base.SecurityGroupBase.ensure_default


nova.network.security_group.security_group_base.SecurityGroupBase.list

nova.network.security_group.neutron_driver.SecurityGroupAPI.list

nova.network.security_group.security_group_base.SecurityGroupBase.create_security_group_rule


nova.network.security_group.security_group_base.SecurityGroupBase.raise_invalid_group


nova.network.security_group.security_group_base.SecurityGroupBase.rule_exists


nova.network.security_group.security_group_base.SecurityGroupBase.remove_rules

nova.network.security_group.neutron_driver.SecurityGroupAPI.remove_rules


nova.network.security_group.neutron_driver.SecurityGroupAPI.get_instances_security_groups_bindings


nova.network.security_group.neutron_driver.SecurityGroupAPI.validate_id

Points to Look For

  • Throwing exceptions across the API boundary that differ than those thrown by alternate implementations may be a parity issue. (e.g. validate_networks in neutron throws in the presence of multiple networks, nova-network does not)
  • NotImplemented may be a significant parity issue. Even if addressed through alternate mechanisms, this is a testing /api binary compatible mismatch

Functional Parity

Network Manager Types

NovaNetNeutronRecipes

The FlatNetworkManager (thanks rkukura for spelling this out!):

(would this work for FlatDHCPNetworkManager as well?)

Multi-Host