Re-implemented IP policies with offset and length
* Implemented CRUD ip_policies plugin methods
* Implemented plugin ip_policy unit tests
* Added IP Policy logic to ipam.allocate_ip_address
* Implemented ip_policy ipam unit tests
* Implemented ip_policies extension
* Added ip_policies db models
* Implemented db_api ip_policy methods
* Implemented _make_ip_policy_dict view
* Fixed existing tests
An IP Policy is defined on a subnet or network definining what IPs to
exclude from allocation. From a user perspective an IP Policy looks
like the following:
{
"id": <id>,
"tenant_id": <tenant_id>,
"name": "foobar",
"subnet_ids": [] (list of uuids),
"network_ids": [] (list of uuids),
"exclude": list of dictionaries (e.g. [{"offset": -1, "length": 3}])
}
"exclude" is always required. One of "subnet_ids" or "network_ids"
is required. Only one policy is allowed per network.
A default policy is enabled on all subnets if no ip policies are
specified on that subnet or its network. This default policy is
established via JSON configuration as "default_ip_policy". The
default for "default_ip_policy" is no policy.
This commit is contained in:
@@ -42,6 +42,11 @@ class IPPoliciesController(wsgi.Controller):
|
||||
return {RESOURCE_NAME:
|
||||
self._plugin.create_ip_policy(request.context, body)}
|
||||
|
||||
def update(self, request, id, body=None):
|
||||
body = self._deserialize(request.body, request.get_content_type())
|
||||
return {RESOURCE_NAME:
|
||||
self._plugin.update_ip_policy(request.context, id, body)}
|
||||
|
||||
def index(self, request):
|
||||
context = request.context
|
||||
return {RESOURCE_COLLECTION:
|
||||
|
||||
Reference in New Issue
Block a user