9976d98aa59a16926777a46978fe8154b42a6304
* Implemented CRD 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:
{
"subnet_id": <uuid>/None,
"network_id": <uuid>/None,
"exclude": list of cidrs (e.g. ["0.0.0.0/31", "0.0.0.255/32"])
}
One of "subnet_id" or "network_id" is required. "exclude" is always
required. Only create, read, and delete operations are supported.
Only one policy is allowed per network. Thus, if a user would like to
"update" the policy on a network they would have to delete an existing
policy and create a new one.
If a network's IP policy excludes ranges outside of a subnet's cidr, the
IP policy exclusion is only applied as it intersects with the subnet's
cidr.
quark
Current Build Status
Why is nothing being commited to the database?
Quark uses and relies upon the transaction module, something at the end of the wsgi request needs to commit the transaction, or transaction aware databases (MySQL InnoDB, Postgres, et. al) will never commit.
The following neutron api-paste.ini enables repoze.tm2 to in the pipeline after authentication so transactions are started coming up the pipeline and commited coming down
[composite:neutron]
use = egg:Paste#urlmap
/: neutronversions
/v2.0: neutronapi_v2_0
[composite:neutronapi_v2_0]
use = call:neutron.auth:pipeline_factory
noauth = egg:repoze.tm2#tm extensions neutronapiapp_v2_0
keystone = authtoken keystonecontext egg:repoze.tm2#tm extensions neutronapiapp_v2_0
[filter:keystonecontext]
paste.filter_factory = neutron.auth:NeutronKeystoneContext.factory
[filter:authtoken]
paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory
[filter:extensions]
paste.filter_factory = neutron.api.extensions:plugin_aware_extension_middleware_factory
[app:neutronversions]
paste.app_factory = neutron.api.versions:Versions.factory
[app:neutronapiapp_v2_0]
paste.app_factory = neutron.api.v2.router:APIRouter.factoryDescription
Languages
Python
98.8%
Dockerfile
0.6%
Shell
0.5%
