[openstack-dev] [api][neutron] Best API for generating subnets from pool
Jay Pipes
jaypipes at gmail.com
Fri Mar 20 18:18:51 UTC 2015
On 03/09/2015 09:05 AM, Salvatore Orlando wrote:
> POST /v2.0/subnets
> {'network_id': 'meh',
> 'gateway_ip': '0.0.0.1',
> 'prefix_len': 24,
> 'pool_id': 'some_pool'}
>
> would indicate that the user wishes to use the first address in the
> range as the gateway IP, and the API would return something like this:
Yeah, the above is definitely icky. (technical term, there...)
What about this instead?
POST /v2.0/subnets
{
'network_id': 'meh',
'gateway_ip_template': '*.*.*.1'
'prefix_len': 24,
'pool_id': 'some_pool'
}
At least that way it's clear the gateway attribute is not an IP, but a
template/string instead?
> 2) Is the action of creating a subnet from a pool better realized as a
> different way of creating a subnet, or should there be some sort of
> "pool action"? Eg.:
>
> POST /subnet_pools/my_pool_id/subnet
> {'prefix_len': 24}
>
> which would return a subnet response like this (note prefix_len might
> not be needed in this case)
>
> {'id': 'meh',
> 'cidr': '192.168.0.0/24 <http://192.168.0.0/24>',
> 'gateway_ip': '192.168.0.1',
> 'pool_id': 'my_pool_id'}
>
> I am generally not a big fan of RESTful actions. But in this case the
> semantics of the API operation are that of a subnet creation from within
> a pool, so that might be ok.
+1 to using resource subcollection semantics here.
> 3) Would it be possible to consider putting information about how to
> generate a subnet from a pool in the subnet request body as follows?
>
> POST /v2.0/subnets
> {
> 'pool_info':
> {'pool_id': my_pool_id,
> 'prefix_len': 24}
> }
-1. Too complicated IMO.
Best,
-jay
> This would return a response like the previous.
> This approach is in theory simple, but composite attributes proved to a
> difficult beast already - for instance you can look at
> external_gateway_info in the router definition [4]
>
> Thanks for your time and thanks in advance for your feedback.
> Salvatore
>
> [1]
> http://specs.openstack.org/openstack/neutron-specs/specs/kilo/subnet-allocation.html
> [2] https://review.openstack.org/#/c/148698/
> [3] https://review.openstack.org/#/c/157597/21/neutron/api/v2/attributes.py
> [4]
> http://git.openstack.org/cgit/openstack/neutron/tree/neutron/extensions/l3.py#n106
>
>
> __________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
More information about the OpenStack-dev
mailing list