Melange/StaticRoutes

The Flow:

1. ip_block created in Melange(through nova-manage) and associated with quantum network as usual

2. Static routes are associated with the ip block created in step 1 in Melange as follows:

To create static_routes, you will need to POST to this path: /ipam/tenants//ip_blocks//ip_routes with a body like: 'ip_route': { 'destination': "10.1.1.1", 'netmask': "255.255.255.0", 'gateway': "10.2.2.0", }

3. VM creation in compute calls allocate_for_instance on quantum network manager (as usual).

4. Quantum network manager calls ipam.get_v4_ips_by_interface (or v6_ips) as usual for ip address information. Along with ip address, block and gateway info, we return the list of static routes in this call. This would allow the network_info dict to be constructed along with the static_routes information as well.

Eg: GET /ipam/tenants//networks//interfaces//ip_allocations

RESPONSE:

{ 'ip_addresses': [        {           'id': "some_uuid", 'interface_id': "virt_interface_id", 'address': "10.2.2.2", 'version': "4", 'ip_block': { 'id': "ip_block_id", 'cidr': "10.2.2.0/24", 'broadcast': "10.2.2.255", 'gateway': "10.2.2.0", 'netmask': "255.255.255.0", 'dns1': "8.8.8.8", 'dns2': "8.8.4.4", 'ip_routes': [ { 'id': 'route1_id', 'destination': "10.1.1.0", 'netmask': "255.255.255.0", 'gateway': "10.2.2.0", },                                  {                                     'id': 'route2_id', 'destination': "10.5.5.0", 'netmask': "255.255.255.0", 'gateway': "10.2.2.0", },                               ]                }          },      ] }