]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commit
Neutron RBAC API and network support
authorKevin Benton <blak111@gmail.com>
Wed, 17 Jun 2015 06:43:59 +0000 (23:43 -0700)
committerKevin Benton <blak111@gmail.com>
Fri, 21 Aug 2015 03:00:17 +0000 (20:00 -0700)
commit4595899f7f2b3774dc2dac2f8dd1a085b1e7973d
tree6006ddb99accbdd1911577b2c3689e194c0e3b0c
parentbbf213a87dc62a871c22c82e1a62d06df46f5ea8
Neutron RBAC API and network support

This adds the new API endpoint to create, update, and delete
role-based access control entries. These entries enable tenants
to grant access to other tenants to perform an action on an object
they do not own.

This was previously done using a single 'shared' flag; however, this
was too coarse because an object would either be private to a tenant
or it would be shared with every tenant.

In addition to introducing the API, this patch also adds support to
for the new entries in Neutron networks. This means tenants can now
share their networks with specific tenants as long as they know the
tenant ID.

This feature is backwards-compatible with the previous 'shared'
attribute in the API. So if a deployer doesn't want this new feature
enabled, all of the RBAC operations can be blocked in policy.json and
networks can still be globally shared in the legacy manner.

Even though this feature is referred to as role-based access control,
this first version only supports sharing networks with specific
tenant IDs because Neutron currently doesn't have integration with
Keystone to handle changes in a tenant's roles/groups/etc.

DocImpact
APIImpact

Change-Id: Ib90e2a931df068f417faf26e9c3780dc3c468867
Partially-Implements: blueprint rbac-networks
etc/policy.json
neutron/api/extensions.py
neutron/db/common_db_mixin.py
neutron/db/db_base_plugin_v2.py
neutron/db/rbac_db_mixin.py [new file with mode: 0644]
neutron/extensions/rbac.py [new file with mode: 0644]
neutron/services/rbac/__init__.py [new file with mode: 0644]
neutron/tests/api/admin/test_shared_network_extension.py
neutron/tests/etc/policy.json
neutron/tests/tempest/services/network/json/network_client.py
neutron/tests/unit/api/test_extensions.py