Revert "Add manager for access rules config"

This reverts commit e1d31eda34.

In the Train PTG[1] we agreed to defer this feature until we had some
kind of traceability or discoverability for APIs and that this wasn't
feasible or useful until then.

This change was merged to master but never released, so I submit that
it is safe to revert.

[1] https://etherpad.openstack.org/p/keystone-train-ptg-application-credentials

Change-Id: I2cefe9363842101ac6b55947352b91fe9def7cc1
This commit is contained in:
Colleen Murphy 2019-05-28 08:36:28 -07:00
parent 135a5a03e6
commit 78d30c9331
4 changed files with 1 additions and 122 deletions

View File

@ -1,15 +0,0 @@
# Copyright 2019 SUSE Linux GmbH
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
from keystone.access_rules_config.core import * # noqa

View File

@ -1,59 +0,0 @@
# Copyright 2019 SUSE Linux GmbH
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
"""List access rules."""
from keystone.common import cache
from keystone.common import manager
import keystone.conf
CONF = keystone.conf.CONF
MEMOIZE = cache.get_memoization_decorator(group='access_rules_config')
class Manager(manager.Manager):
driver_namespace = 'keystone.access_rules_config'
_provides_api = 'access_rules_config_api'
def __init__(self):
super(Manager, self).__init__(CONF.access_rules_config.driver)
def list_access_rules_config(self, service=None):
"""List access rules config.
:param str service: filter by service type
:returns: a list of configured access rules. Access rules are
permission objects composing of a service, a URL path, and an
HTTP method.
"""
return self.driver.list_access_rules_config(service)
@MEMOIZE
def check_access_rule(self, service, request_path, request_method):
"""Check access rule.
:param str service: service type of rule to check
:param str request_path: endpoint path to check
:param str request_method: API HTTP method to check
:returns: boolean indicating whether the rule matches one of the
configured access rules
"""
return self.driver.check_access_rule(service, request_path,
request_method)

View File

@ -13,7 +13,6 @@ import sys
from oslo_log import log
from keystone import access_rules_config
from keystone import application_credential
from keystone import assignment
from keystone import auth
@ -49,8 +48,7 @@ def load_backends():
cache.configure_cache(region=identity.ID_MAPPING_REGION)
cache.configure_invalidation_region()
managers = [access_rules_config.Manager,
application_credential.Manager, assignment.Manager,
managers = [application_credential.Manager, assignment.Manager,
catalog.Manager, credential.Manager,
credential.provider.Manager, resource.DomainConfigManager,
endpoint_policy.Manager, federation.Manager,

View File

@ -1,45 +0,0 @@
# Copyright 2019 SUSE Linux GmbH
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
from keystone.common import provider_api
from keystone.tests import unit
from keystone.tests.unit.ksfixtures import access_rules_config
PROVIDERS = provider_api.ProviderAPIs
class AccessRulesConfigTest(unit.TestCase):
def setUp(self):
super(AccessRulesConfigTest, self).setUp()
rules_file = '%s/access_rules.json' % unit.TESTCONF
self.useFixture(access_rules_config.AccessRulesConfig(
self.config_fixture, rules_file=rules_file))
self.load_backends()
def test_list_access_rules_config(self):
rules = PROVIDERS.access_rules_config_api.list_access_rules_config()
self.assertIn('identity', rules)
self.assertIn('image', rules)
def test_list_access_rules_config_for_service(self):
rules = PROVIDERS.access_rules_config_api.list_access_rules_config(
service='image')
self.assertNotIn('identity', rules)
self.assertIn('image', rules)
def test_check_access_rule(self):
result = PROVIDERS.access_rules_config_api.check_access_rule(
'identity', '/v3/users', 'GET')
self.assertTrue(result)